2 %bcond_without source # don't build kernel-vanilla-source package
3 %bcond_without pcmcia # don't build pcmcia
4 %bcond_with verbose # verbose build (V=1)
5 %bcond_with pae # build PAE (HIGHMEM64G) support on uniprocessor
7 %{?debug:%define with_verbose 1}
14 %define _basever 2.6.32
18 %define _enable_debug_packages 0
20 %define alt_kernel vanilla%{?with_pae:-pae}
22 # kernel release (used in filesystem and eventually in uname -r)
23 # modules will be looked from /lib/modules/%{kernel_release}
24 # _localversion is just that without version for "> localversion"
25 %define _localversion %{_rel}
26 %define kernel_release %{version}-%{alt_kernel}-%{_localversion}
28 Summary: The Linux kernel (the core of the Linux operating system)
29 Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
30 Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
31 Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
32 Summary(pl.UTF-8): Jądro Linuksa
33 Name: kernel-%{alt_kernel}
34 Version: %{_basever}%{_postver}
39 Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{_basever}.tar.bz2
40 # Source0-md5: 260551284ac224c3a43c4adac7df4879
41 %if "%{_postver}" != "%{nil}"
42 Source1: http://www.kernel.org/pub/linux/kernel/v2.6/patch-%{version}.bz2
43 # Source1-md5: e3346e3b4b92f048b8ecded829f45cdf
46 Source2: kernel-vanilla-autoconf.h
47 Source3: kernel-vanilla-config.h
48 Source4: kernel-vanilla-module-build.pl
50 Source10: kernel-vanilla-x86.config
51 Source11: kernel-vanilla-x86_64.config
53 URL: http://www.kernel.org/
54 BuildRequires: binutils >= 3:2.18
55 BuildRequires: /sbin/depmod
56 BuildRequires: gcc >= 5:3.2
57 # for hostname command
58 BuildRequires: net-tools
59 BuildRequires: perl-base
60 BuildRequires: rpm-build >= 4.4.9-56
61 BuildRequires: rpmbuild(macros) >= 1.217
63 Requires(post): coreutils
64 Requires(post): geninitrd >= 2.57
65 Requires(post): module-init-tools >= 0.9.9
66 Requires: /sbin/depmod
68 Requires: geninitrd >= 2.57
69 Requires: module-init-tools >= 0.9.9
70 Obsoletes: kernel%{_alt_kernel}-firmware
71 Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
72 Obsoletes: kernel-misc-acer_acpi
73 Obsoletes: kernel-misc-fuse
74 Obsoletes: kernel-misc-uvc
75 Obsoletes: kernel-modules
76 Obsoletes: kernel-net-ar81
77 Obsoletes: kernel-net-hostap
78 Obsoletes: kernel-net-ieee80211
79 Obsoletes: kernel-net-ipp2p
81 Conflicts: e2fsprogs < 1.29
82 Conflicts: isdn4k-utils < 3.1pre1
83 Conflicts: jfsutils < 1.1.3
84 Conflicts: module-init-tools < 0.9.10
85 Conflicts: nfs-utils < 1.0.5
86 Conflicts: oprofile < 0.9
87 Conflicts: ppp < 1:2.4.0
88 Conflicts: procps < 3.2.0
89 Conflicts: quota-tools < 3.09
90 Conflicts: reiserfsprogs < 3.6.3
91 Conflicts: udev < 1:071
92 Conflicts: util-linux < 2.10o
93 Conflicts: xfsprogs < 2.6.0
95 ExclusiveArch: %{ix86}
96 ExcludeArch: i386 i486 i586
98 ExclusiveArch: %{ix86} %{x8664}
101 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
103 %ifarch %{ix86} %{x8664}
104 %define target_arch_dir x86
106 %ifnarch %{ix86} %{x8664}
107 %define target_arch_dir %{_target_base_arch}
111 %define kernel_config x86
113 %define kernel_config %{_target_base_arch}
116 %define defconfig arch/%{target_arch_dir}/defconfig
118 # No ELF objects there to strip (skips processing 27k files)
119 %define _noautostrip .*%{_kernelsrcdir}/.*
120 %define _noautochrpath .*%{_kernelsrcdir}/.*
122 %define initrd_dir /boot
124 %define _kernelsrcdir /usr/src/linux-%{version}-%{alt_kernel}
126 %if "%{_target_base_arch}" != "%{_arch}"
127 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
128 %define DepMod /bin/true
130 %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
131 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
132 %define DepMod /sbin/depmod
136 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
137 %define DepMod /sbin/depmod
140 %define Features %(echo "%{__features}" | sed '/^$/d')
143 This package contains the Linux kernel that is used to boot and run
144 your system. It contains few device drivers for specific hardware.
145 Most hardware is instead supported by modules loaded after booting.
149 %description -l de.UTF-8
150 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
151 Linux-Betriebssystems. Der Kernel ist für grundliegende
152 Systemfunktionen verantwortlich: Speicherreservierung,
153 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
157 %description -l fr.UTF-8
158 Le package kernel contient le kernel linux (vmlinuz), la partie
159 centrale d'un système d'exploitation Linux. Le noyau traite les
160 fonctions basiques d'un système d'exploitation: allocation mémoire,
161 allocation de process, entrée/sortie de peripheriques, etc.
165 %description -l pl.UTF-8
166 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
167 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
168 się w komputerze, takiego jak sterowniki dysków itp.
173 Summary: vmlinux - uncompressed kernel image
174 Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
175 Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
177 Obsoletes: kernel-smp-vmlinux
180 vmlinux - uncompressed kernel image.
182 %description vmlinux -l de.UTF-8
183 vmlinux - dekompressiertes Kernel Bild.
185 %description vmlinux -l pl.UTF-8
186 vmlinux - rozpakowany obraz jądra.
189 Summary: DRM kernel modules
190 Summary(de.UTF-8): DRM Kernel Treiber
191 Summary(pl.UTF-8): Sterowniki DRM
193 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
194 Requires: %{name} = %{epoch}:%{version}-%{release}
195 Obsoletes: kernel-smp-drm
201 %description drm -l de.UTF-8
204 %description drm -l pl.UTF-8
208 Summary: PCMCIA modules
209 Summary(de.UTF-8): PCMCIA Module
210 Summary(pl.UTF-8): Moduły PCMCIA
212 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
213 Requires: %{name} = %{epoch}:%{version}-%{release}
214 Obsoletes: kernel-smp-pcmcia
215 Conflicts: pcmcia-cs < 3.1.21
216 Conflicts: pcmciautils < 004
222 %description pcmcia -l de.UTF-8
225 %description pcmcia -l pl.UTF-8
229 Summary: ALSA kernel modules
230 Summary(de.UTF-8): ALSA Kernel Module
231 Summary(pl.UTF-8): Sterowniki dźwięku ALSA
233 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
234 Requires: %{name} = %{epoch}:%{version}-%{release}
235 Obsoletes: kernel-smp-sound-alsa
238 %description sound-alsa
239 ALSA (Advanced Linux Sound Architecture) sound drivers.
241 %description sound-alsa -l de.UTF-8
242 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
244 %description sound-alsa -l pl.UTF-8
245 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
248 Summary: OSS kernel modules
249 Summary(de.UTF-8): OSS Kernel Module
250 Summary(pl.UTF-8): Sterowniki dźwięku OSS
252 Requires(postun): %{name} = %{epoch}:%{version}-%{release}
253 Requires: %{name} = %{epoch}:%{version}-%{release}
254 Obsoletes: kernel-smp-sound-oss
257 %description sound-oss
258 OSS (Open Sound System) drivers.
260 %description sound-oss -l de.UTF-8
261 OSS (Open Sound System) Treiber.
263 %description sound-oss -l pl.UTF-8
264 Sterowniki dźwięku OSS (Open Sound System).
267 Summary: Header files for the Linux kernel
268 Summary(de.UTF-8): Header Dateien für den Linux-Kernel
269 Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
270 Group: Development/Building
274 These are the C header files for the Linux kernel, which define
275 structures and constants that are needed when rebuilding the kernel or
276 building kernel modules.
278 %description headers -l de.UTF-8
279 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
280 Strukturen und Konstante beinhalten, die beim rekompilieren des
281 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
283 %description headers -l pl.UTF-8
284 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
285 oraz budowania modułów jądra.
287 %package module-build
288 Summary: Development files for building kernel modules
289 Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
290 Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
291 Group: Development/Building
292 Requires: %{name}-headers = %{epoch}:%{version}-%{release}
293 Conflicts: rpmbuild(macros) < 1.321
296 %description module-build
297 Development files from kernel source tree needed to build Linux kernel
298 modules from external packages.
300 %description module-build -l de.UTF-8
301 Development Dateien des Linux-Kernels die beim kompilieren externer
302 Kernel Module gebraucht werden.
304 %description module-build -l pl.UTF-8
305 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
306 Linuksa z zewnętrznych pakietów.
309 Summary: Kernel source tree
310 Summary(de.UTF-8): Der Kernel Quelltext
311 Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
312 Group: Development/Building
313 Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
317 This is the source code for the Linux kernel. You can build a custom
318 kernel that is better tuned to your particular hardware.
320 %description source -l de.UTF-8
321 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
322 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
323 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
324 im Kernel-Source definiert sind. Die Source-Dateien können auch
325 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
326 Hardware ausgerichtet ist.
328 %description source -l fr.UTF-8
329 Le package pour le kernel-source contient le code source pour le noyau
330 linux. Ces sources sont nécessaires pour compiler la plupart des
331 programmes C, car il dépend de constantes définies dans le code
332 source. Les sources peuvent être aussi utilisée pour compiler un noyau
333 personnalisé pour avoir de meilleures performances sur des matériels
336 %description source -l pl.UTF-8
337 Pakiet zawiera kod źródłowy jądra systemu.
340 Summary: Kernel documentation
341 Summary(de.UTF-8): Kernel Dokumentation
342 Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
347 This is the documentation for the Linux kernel, as found in
348 /usr/src/linux/Documentation directory.
350 %description doc -l de.UTF-8
351 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
352 Verzeichniss vorgefunden werden kann.
354 %description doc -l pl.UTF-8
355 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
356 /usr/src/linux/Documentation.
359 %setup -q -n linux-%{_basever}
361 %if "%{_postver}" != "%{nil}"
362 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
365 # Fix EXTRAVERSION in main Makefile
366 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{_postver}-%{alt_kernel}#g' Makefile
368 # on sparc this line causes CONFIG_INPUT=m (instead of =y), thus breaking build
369 sed -i -e '/select INPUT/d' net/bluetooth/hidp/Kconfig
371 # cleanup backups after patching
372 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
375 TuneUpConfigForIX86 () {
379 [ "$2" = "yes" ] && pae=yes
384 sed -i 's:CONFIG_M386=y:# CONFIG_M386 is not set:' $1
387 sed -i 's:# CONFIG_M486 is not set:CONFIG_M486=y:' $1
390 sed -i 's:# CONFIG_M586 is not set:CONFIG_M586=y:' $1
393 sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
396 sed -i 's:# CONFIG_MPENTIUMIII is not set:CONFIG_MPENTIUMIII=y:' $1
399 sed -i 's:# CONFIG_MPENTIUM4 is not set:CONFIG_MPENTIUM4=y:' $1
402 sed -i 's:# CONFIG_MK7 is not set:CONFIG_MK7=y:' $1
404 %ifarch i686 athlon pentium3 pentium4
405 if [ "$pae" = "yes" ]; then
406 sed -i "s:CONFIG_HIGHMEM4G=y:# CONFIG_HIGHMEM4G is not set:" $1
407 sed -i "s:# CONFIG_HIGHMEM64G is not set:CONFIG_HIGHMEM64G=y\nCONFIG_X86_PAE=y:" $1
409 sed -i 's:CONFIG_MATH_EMULATION=y:# CONFIG_MATH_EMULATION is not set:' $1
417 # is this a special kernel we want to build?
418 Config="%{kernel_config}"
419 KernelVer=%{kernel_release}
420 echo "Building config file using $Config.conf..."
421 cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
422 TuneUpConfigForIX86 %{defconfig}
424 %{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
425 %{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
426 %{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
432 echo "Building kernel $1 ..."
433 %{__make} %CrossOpts mrproper \
434 RCS_FIND_IGNORE='-name build-done -prune -o'
435 ln -sf %{defconfig} .config
437 %{__make} %CrossOpts clean \
438 RCS_FIND_IGNORE='-name build-done -prune -o'
439 %{__make} %CrossOpts include/linux/version.h \
442 %{__make} %CrossOpts scripts/mkcompile_h \
445 %{__make} %CrossOpts \
450 Config="%{kernel_config}"
451 KernelVer=%{kernel_release}
453 mkdir -p $KERNEL_INSTALL_DIR/boot
454 install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
455 %ifarch %{ix86} %{x8664}
456 install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
457 install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
460 %{__make} %CrossOpts modules_install firmware_install \
461 %{?with_verbose:V=1} \
463 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
464 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
465 KERNELRELEASE=$KernelVer
467 # You'd probabelly want to make it somewhat different
468 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
469 install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
471 echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
472 if [ %DepMod = /sbin/depmod ]; then
473 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
475 touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
476 echo "KERNEL RELEASE $KernelVer DONE"
479 KERNEL_BUILD_DIR=`pwd`
480 echo "-%{_localversion}" > localversion
482 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
483 rm -rf $KERNEL_INSTALL_DIR
485 ln -sf %{defconfig} .config
486 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
487 rm -f include/linux/autoconf.h
488 %{__make} %CrossOpts include/linux/autoconf.h
489 install include/linux/autoconf.h \
490 $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/autoconf-dist.h
492 $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
496 %{__make} %CrossOpts include/linux/utsrelease.h
497 cp include/linux/utsrelease.h{,.save}
498 cp include/linux/version.h{,.save}
499 cp scripts/mkcompile_h{,.save}
502 rm -rf $RPM_BUILD_ROOT
505 export DEPMOD=%DepMod
507 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
508 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
510 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
511 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
513 rm -f $RPM_BUILD_ROOT/COPYING
516 KERNEL_BUILD_DIR=`pwd`
518 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
520 if [ -e $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
521 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
522 ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
523 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
526 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
528 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
530 %{__make} %CrossOpts mrproper archclean \
531 RCS_FIND_IGNORE='-name build-done -prune -o'
533 if [ -e $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h ]; then
534 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h \
535 $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
536 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
537 $RPM_BUILD_ROOT%{_kernelsrcdir}
540 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
541 $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
543 %{__make} %CrossOpts mrproper
544 mv -f include/linux/utsrelease.h.save $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/utsrelease.h
545 cp include/linux/version.h{.save,}
546 cp scripts/mkcompile_h{.save,}
547 rm -rf include/linux/version.h.save
548 rm -rf scripts/mkcompile_h.save
549 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
550 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
552 # collect module-build files and directories
553 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
556 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
558 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
559 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
560 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
562 # remove unnecessary dir with dead symlink
563 rm -rf $RPM_BUILD_ROOT/arch/i386
566 rm -rf $RPM_BUILD_ROOT
569 if [ -x /sbin/new-kernel-pkg ]; then
570 /sbin/new-kernel-pkg --remove %{kernel_release}
574 mv -f /boot/vmlinuz-%{alt_kernel} /boot/vmlinuz-%{alt_kernel}.old 2> /dev/null > /dev/null
575 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz-%{alt_kernel}
576 mv -f /boot/System.map-%{alt_kernel} /boot/System.map-%{alt_kernel}.old 2> /dev/null > /dev/null
577 ln -sf System.map-%{kernel_release} /boot/System.map-%{alt_kernel}
579 %depmod %{kernel_release}
581 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
582 mv -f %{initrd_dir}/initrd-%{alt_kernel} %{initrd_dir}/initrd-%{alt_kernel}.old 2> /dev/null > /dev/null
583 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd-%{alt_kernel}
585 if [ -x /sbin/new-kernel-pkg ]; then
586 if [ -f /etc/tld-release ]; then
587 title=$(sed 's/^[0-9.]\+ //' < /etc/tld-release)
592 title="$title %{alt_kernel}"
594 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "$title"
595 elif [ -x /sbin/rc-boot ]; then
596 /sbin/rc-boot 1>&2 || :
600 mv -f /boot/vmlinux-%{alt_kernel} /boot/vmlinux-%{alt_kernel}.old 2> /dev/null > /dev/null
601 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
604 %depmod %{kernel_release}
607 %depmod %{kernel_release}
610 %depmod %{kernel_release}
613 %depmod %{kernel_release}
616 %depmod %{kernel_release}
619 %depmod %{kernel_release}
622 %depmod %{kernel_release}
625 %depmod %{kernel_release}
628 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
631 if [ "$1" = "0" ]; then
632 if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
633 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
634 rm -f %{_prefix}/src/linux-%{alt_kernel}
639 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
640 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
641 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
643 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
644 if [ "$1" = 0 ]; then
645 rm -f /lib/modules/%{kernel_release}/{build,source}
649 %defattr(644,root,root,755)
650 /boot/vmlinuz-%{kernel_release}
651 /boot/System.map-%{kernel_release}
652 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
653 /lib/firmware/%{kernel_release}
654 %dir /lib/modules/%{kernel_release}
655 %dir /lib/modules/%{kernel_release}/kernel
656 /lib/modules/%{kernel_release}/kernel/arch
657 /lib/modules/%{kernel_release}/kernel/crypto
658 /lib/modules/%{kernel_release}/kernel/drivers
660 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
662 /lib/modules/%{kernel_release}/kernel/fs
664 # this directory will be removed after disabling rcutorture mod. in 2.6.20.
665 /lib/modules/%{kernel_release}/kernel/kernel
667 /lib/modules/%{kernel_release}/kernel/lib
669 /lib/modules/%{kernel_release}/kernel/mm
671 /lib/modules/%{kernel_release}/kernel/net
673 %dir /lib/modules/%{kernel_release}/kernel/sound
674 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
675 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
676 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
677 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
678 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
680 %dir /lib/modules/%{kernel_release}/misc
682 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
683 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
684 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
685 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
686 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
687 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
688 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
689 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
690 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
691 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
692 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
693 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
694 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
695 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
696 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
697 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
698 %exclude /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
699 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
701 %ghost /lib/modules/%{kernel_release}/modules.*
702 # symlinks pointing to kernelsrcdir
703 %ghost /lib/modules/%{kernel_release}/build
704 %ghost /lib/modules/%{kernel_release}/source
705 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
708 %defattr(644,root,root,755)
709 /boot/vmlinux-%{kernel_release}
713 %defattr(644,root,root,755)
714 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
719 %defattr(644,root,root,755)
720 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
721 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
722 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
723 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
724 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
725 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
726 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
727 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
728 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
729 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
730 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
731 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
732 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
733 /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
734 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
739 %defattr(644,root,root,755)
740 /lib/modules/%{kernel_release}/kernel/sound
741 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
742 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
743 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
745 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
747 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
748 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
749 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
750 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
754 %defattr(644,root,root,755)
755 /lib/modules/%{kernel_release}/kernel/sound/oss
760 %defattr(644,root,root,755)
761 %dir %{_kernelsrcdir}
762 %{_kernelsrcdir}/include
763 %dir %{_kernelsrcdir}/arch
764 %dir %{_kernelsrcdir}/arch/[!K]*
765 %{_kernelsrcdir}/arch/*/include
766 %dir %{_kernelsrcdir}/security
767 %dir %{_kernelsrcdir}/security/selinux
768 %{_kernelsrcdir}/security/selinux/include
769 %{_kernelsrcdir}/config-dist
770 %{_kernelsrcdir}/Module.symvers-dist
772 %files module-build -f aux_files
773 %defattr(644,root,root,755)
774 # symlinks pointint to kernelsrcdir
775 %dir /lib/modules/%{kernel_release}
776 /lib/modules/%{kernel_release}/build
777 %{_kernelsrcdir}/Kbuild
778 %{_kernelsrcdir}/localversion
779 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
780 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
781 %{_kernelsrcdir}/drivers/lguest/lg.h
782 %{_kernelsrcdir}/kernel/bounds.c
783 %dir %{_kernelsrcdir}/scripts
784 %dir %{_kernelsrcdir}/scripts/kconfig
785 %{_kernelsrcdir}/scripts/Kbuild.include
786 %{_kernelsrcdir}/scripts/Makefile*
787 %{_kernelsrcdir}/scripts/basic
788 %{_kernelsrcdir}/scripts/mkmakefile
789 %{_kernelsrcdir}/scripts/mod
790 %{_kernelsrcdir}/scripts/module-common.lds
791 %{_kernelsrcdir}/scripts/setlocalversion
792 %{_kernelsrcdir}/scripts/*.c
793 %{_kernelsrcdir}/scripts/*.sh
794 %{_kernelsrcdir}/scripts/kconfig/*
795 %{_kernelsrcdir}/scripts/mkcompile_h
796 %dir %{_kernelsrcdir}/scripts/selinux
797 %{_kernelsrcdir}/scripts/selinux/Makefile
798 %dir %{_kernelsrcdir}/scripts/selinux/mdp
799 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
800 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
803 %defattr(644,root,root,755)
804 %dir %{_kernelsrcdir}
805 %{_kernelsrcdir}/Documentation
808 %files source -f aux_files_exc
809 %defattr(644,root,root,755)
810 %{_kernelsrcdir}/arch/*/[!Mk]*
811 %{_kernelsrcdir}/arch/*/kernel/[!M]*
812 %{_kernelsrcdir}/arch/ia64/kvm
813 %{_kernelsrcdir}/arch/powerpc/kvm
814 %{_kernelsrcdir}/arch/s390/kvm
815 %{_kernelsrcdir}/arch/x86/kvm
816 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
817 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
818 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
819 %{_kernelsrcdir}/block
820 %{_kernelsrcdir}/crypto
821 %{_kernelsrcdir}/drivers
822 %{_kernelsrcdir}/firmware
824 %{_kernelsrcdir}/init
826 %{_kernelsrcdir}/kernel
827 %exclude %{_kernelsrcdir}/kernel/bounds.c
831 %{_kernelsrcdir}/samples
832 %{_kernelsrcdir}/scripts/*
833 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
834 %exclude %{_kernelsrcdir}/scripts/Makefile*
835 %exclude %{_kernelsrcdir}/scripts/basic
836 %exclude %{_kernelsrcdir}/scripts/kconfig
837 %exclude %{_kernelsrcdir}/scripts/mkmakefile
838 %exclude %{_kernelsrcdir}/scripts/mod
839 %exclude %{_kernelsrcdir}/scripts/setlocalversion
840 %exclude %{_kernelsrcdir}/scripts/*.c
841 %exclude %{_kernelsrcdir}/scripts/*.sh
842 %{_kernelsrcdir}/sound
843 %{_kernelsrcdir}/security
844 %{_kernelsrcdir}/tools
846 %{_kernelsrcdir}/virt
847 %{_kernelsrcdir}/COPYING
848 %{_kernelsrcdir}/CREDITS
849 %{_kernelsrcdir}/MAINTAINERS
850 %{_kernelsrcdir}/README
851 %{_kernelsrcdir}/REPORTING-BUGS
852 %{_kernelsrcdir}/.mailmap