]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
- update grub.cfg by default
[packages/kernel.git] / kernel-vanilla.spec
1 # Conditional build:
2 %bcond_without  source          # don't build kernel-vanilla-source package
3 %bcond_with     verbose         # verbose build (V=1)
4
5 %{?debug:%define with_verbose 1}
6
7 %define         _basever                3.8
8 %define         _postver                .8
9 %define         _rel                    1
10
11 %define         _enable_debug_packages                  0
12
13 %define         alt_kernel      3.8-vanilla
14
15 # kernel release (used in filesystem and eventually in uname -r)
16 # modules will be looked from /lib/modules/%{kernel_release}
17 # _localversion is just that without version for "> localversion"
18 %define         _localversion %{_rel}
19 %define         kernel_release %{version}-%{alt_kernel}-%{_localversion}
20
21 Summary:        The Linux kernel (the core of the Linux operating system)
22 Summary(de.UTF-8):      Der Linux-Kernel (Kern des Linux-Betriebssystems)
23 Summary(et.UTF-8):      Linuxi kernel (ehk operatsioonisüsteemi tuum)
24 Summary(fr.UTF-8):      Le Kernel-Linux (La partie centrale du systeme)
25 Summary(pl.UTF-8):      Jądro Linuksa
26 Name:           kernel-%{alt_kernel}
27 Version:        %{_basever}%{_postver}
28 Release:        %{_rel}
29 Epoch:          3
30 License:        GPL v2
31 Group:          Base/Kernel
32 Source0:        http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{_basever}.tar.xz
33 # Source0-md5:  1c738edfc54e7c65faeb90c436104e2f
34 %if "%{_postver}" != "%{nil}"
35 Source1:        http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
36 # Source1-md5:  95224572ecb1f4c7089683c1f06ef2b4
37 %endif
38
39 Source2:        kernel-vanilla-autoconf.h
40 Source3:        kernel-vanilla-config.h
41 Source4:        kernel-vanilla-module-build.pl
42 Source5:        kernel.sysconfig
43
44 Source10:       kernel-vanilla-x86.config
45 Source11:       kernel-vanilla-x86_64.config
46
47 Patch0:         kernel-vanilla-small_fixes.patch
48
49 URL:            http://www.kernel.org/
50 BuildRequires:  binutils >= 3:2.18
51 BuildRequires:  /sbin/depmod
52 BuildRequires:  gcc >= 5:3.2
53 # for hostname command
54 BuildRequires:  net-tools
55 BuildRequires:  perl-base
56 BuildRequires:  rpm-build >= 4.4.9-56
57 BuildRequires:  rpmbuild(macros) >= 1.217
58 Autoreqprov:    no
59 Requires(post): coreutils
60 Requires(post): geninitrd >= 12639-1
61 Requires(post): virtual(module-tools)
62 Requires:       /sbin/depmod
63 Requires:       coreutils
64 Requires:       geninitrd >= 12639-1
65 Requires:       virtual(module-tools)
66 Obsoletes:      kernel%{_alt_kernel}-firmware
67 Obsoletes:      kernel%{_alt_kernel}-isdn-mISDN
68 Obsoletes:      kernel-misc-acer_acpi
69 Obsoletes:      kernel-misc-fuse
70 Obsoletes:      kernel-misc-uvc
71 Obsoletes:      kernel-modules
72 Obsoletes:      kernel-net-ar81
73 Obsoletes:      kernel-net-hostap
74 Obsoletes:      kernel-net-ieee80211
75 Obsoletes:      kernel-net-ipp2p
76 Obsoletes:      kernel-smp
77 Conflicts:      e2fsprogs < 1.29
78 Conflicts:      isdn4k-utils < 3.1pre1
79 Conflicts:      jfsutils < 1.1.3
80 Conflicts:      module-init-tools < 3.16
81 Conflicts:      nfs-utils < 1.0.5
82 Conflicts:      oprofile < 0.9
83 Conflicts:      ppp < 1:2.4.0
84 Conflicts:      procps < 3.2.0
85 Conflicts:      quota-tools < 3.09
86 Conflicts:      reiserfsprogs < 3.6.3
87 Conflicts:      udev < 1:071
88 Conflicts:      util-linux < 2.10o
89 Conflicts:      xfsprogs < 2.6.0
90 ExclusiveArch:  i686 x86_64
91 ExclusiveOS:    Linux
92 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
93
94 %ifarch i686 x86_64
95 %define         target_arch_dir         x86
96 %else
97 %define         target_arch_dir         %{_target_base_arch}
98 %endif
99
100 %ifarch i686
101 %define         kernel_config           x86
102 %else
103 %define         kernel_config           %{_target_base_arch}
104 %endif
105
106 %define         defconfig       arch/%{target_arch_dir}/defconfig
107
108 # No ELF objects there to strip (skips processing 27k files)
109 %define         _noautostrip    .*%{_kernelsrcdir}/.*
110 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
111
112 %define         initrd_dir      /boot
113
114 %define         _kernelsrcdir   /usr/src/linux-%{version}-%{alt_kernel}
115
116 %if "%{_target_base_arch}" != "%{_arch}"
117         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
118         %define DepMod /bin/true
119
120         %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
121         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
122         %define DepMod /sbin/depmod
123         %endif
124
125 %else
126         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
127         %define DepMod /sbin/depmod
128 %endif
129
130 %description
131 This package contains the Linux kernel that is used to boot and run
132 your system. It contains few device drivers for specific hardware.
133 Most hardware is instead supported by modules loaded after booting.
134
135 %description -l de.UTF-8
136 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
137 Linux-Betriebssystems. Der Kernel ist für grundliegende
138 Systemfunktionen verantwortlich: Speicherreservierung,
139 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
140
141 %description -l fr.UTF-8
142 Le package kernel contient le kernel linux (vmlinuz), la partie
143 centrale d'un système d'exploitation Linux. Le noyau traite les
144 fonctions basiques d'un système d'exploitation: allocation mémoire,
145 allocation de process, entrée/sortie de peripheriques, etc.
146
147 %description -l pl.UTF-8
148 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
149 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
150 się w komputerze, takiego jak sterowniki dysków itp.
151
152 %package vmlinux
153 Summary:        vmlinux - uncompressed kernel image
154 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
155 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jądra
156 Group:          Base/Kernel
157 Obsoletes:      kernel-smp-vmlinux
158
159 %description vmlinux
160 vmlinux - uncompressed kernel image.
161
162 %description vmlinux -l de.UTF-8
163 vmlinux - dekompressiertes Kernel Bild.
164
165 %description vmlinux -l pl.UTF-8
166 vmlinux - rozpakowany obraz jądra.
167
168 %package drm
169 Summary:        DRM kernel modules
170 Summary(de.UTF-8):      DRM Kernel Treiber
171 Summary(pl.UTF-8):      Sterowniki DRM
172 Group:          Base/Kernel
173 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
174 Requires:       %{name} = %{epoch}:%{version}-%{release}
175 Obsoletes:      kernel-smp-drm
176 Autoreqprov:    no
177
178 %description drm
179 DRM kernel modules.
180
181 %description drm -l de.UTF-8
182 DRM Kernel Treiber.
183
184 %description drm -l pl.UTF-8
185 Sterowniki DRM.
186
187 %package pcmcia
188 Summary:        PCMCIA modules
189 Summary(de.UTF-8):      PCMCIA Module
190 Summary(pl.UTF-8):      Moduły PCMCIA
191 Group:          Base/Kernel
192 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
193 Requires:       %{name} = %{epoch}:%{version}-%{release}
194 Obsoletes:      kernel-smp-pcmcia
195 Conflicts:      pcmcia-cs < 3.1.21
196 Conflicts:      pcmciautils < 004
197 Autoreqprov:    no
198
199 %description pcmcia
200 PCMCIA modules.
201
202 %description pcmcia -l de.UTF-8
203 PCMCIA Module.
204
205 %description pcmcia -l pl.UTF-8
206 Moduły PCMCIA.
207
208 %package sound-alsa
209 Summary:        ALSA kernel modules
210 Summary(de.UTF-8):      ALSA Kernel Module
211 Summary(pl.UTF-8):      Sterowniki dźwięku ALSA
212 Group:          Base/Kernel
213 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
214 Requires:       %{name} = %{epoch}:%{version}-%{release}
215 Obsoletes:      kernel-smp-sound-alsa
216 Autoreqprov:    no
217
218 %description sound-alsa
219 ALSA (Advanced Linux Sound Architecture) sound drivers.
220
221 %description sound-alsa -l de.UTF-8
222 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
223
224 %description sound-alsa -l pl.UTF-8
225 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
226
227 %package sound-oss
228 Summary:        OSS kernel modules
229 Summary(de.UTF-8):      OSS Kernel Module
230 Summary(pl.UTF-8):      Sterowniki dźwięku OSS
231 Group:          Base/Kernel
232 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
233 Requires:       %{name} = %{epoch}:%{version}-%{release}
234 Obsoletes:      kernel-smp-sound-oss
235 Autoreqprov:    no
236
237 %description sound-oss
238 OSS (Open Sound System) drivers.
239
240 %description sound-oss -l de.UTF-8
241 OSS (Open Sound System) Treiber.
242
243 %description sound-oss -l pl.UTF-8
244 Sterowniki dźwięku OSS (Open Sound System).
245
246 %package headers
247 Summary:        Header files for the Linux kernel
248 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
249 Summary(pl.UTF-8):      Pliki nagłówkowe jądra Linuksa
250 Group:          Development/Building
251 Autoreqprov:    no
252
253 %description headers
254 These are the C header files for the Linux kernel, which define
255 structures and constants that are needed when rebuilding the kernel or
256 building kernel modules.
257
258 %description headers -l de.UTF-8
259 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
260 Strukturen und Konstante beinhalten, die beim rekompilieren des
261 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
262
263 %description headers -l pl.UTF-8
264 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
265 oraz budowania modułów jądra.
266
267 %package module-build
268 Summary:        Development files for building kernel modules
269 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
270 Summary(pl.UTF-8):      Pliki służące do budowania modułów jądra
271 Group:          Development/Building
272 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
273 Conflicts:      rpmbuild(macros) < 1.321
274 Autoreqprov:    no
275
276 %description module-build
277 Development files from kernel source tree needed to build Linux kernel
278 modules from external packages.
279
280 %description module-build -l de.UTF-8
281 Development Dateien des Linux-Kernels die beim kompilieren externer
282 Kernel Module gebraucht werden.
283
284 %description module-build -l pl.UTF-8
285 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
286 Linuksa z zewnętrznych pakietów.
287
288 %package source
289 Summary:        Kernel source tree
290 Summary(de.UTF-8):      Der Kernel Quelltext
291 Summary(pl.UTF-8):      Kod źródłowy jądra Linuksa
292 Group:          Development/Building
293 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
294 Autoreqprov:    no
295
296 %description source
297 This is the source code for the Linux kernel. You can build a custom
298 kernel that is better tuned to your particular hardware.
299
300 %description source -l de.UTF-8
301 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
302 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
303 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
304 im Kernel-Source definiert sind. Die Source-Dateien können auch
305 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
306 Hardware ausgerichtet ist.
307
308 %description source -l fr.UTF-8
309 Le package pour le kernel-source contient le code source pour le noyau
310 linux. Ces sources sont nécessaires pour compiler la plupart des
311 programmes C, car il dépend de constantes définies dans le code
312 source. Les sources peuvent être aussi utilisée pour compiler un noyau
313 personnalisé pour avoir de meilleures performances sur des matériels
314 particuliers.
315
316 %description source -l pl.UTF-8
317 Pakiet zawiera kod źródłowy jądra systemu.
318
319 %package doc
320 Summary:        Kernel documentation
321 Summary(de.UTF-8):      Kernel Dokumentation
322 Summary(pl.UTF-8):      Dokumentacja do jądra Linuksa
323 Group:          Documentation
324 Autoreqprov:    no
325
326 %description doc
327 This is the documentation for the Linux kernel, as found in
328 /usr/src/linux/Documentation directory.
329
330 %description doc -l de.UTF-8
331 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
332 Verzeichniss vorgefunden werden kann.
333
334 %description doc -l pl.UTF-8
335 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
336 /usr/src/linux/Documentation.
337
338 %prep
339 %setup -q -n linux-%{_basever}
340
341 %if "%{_postver}" != "%{nil}"
342 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
343 %endif
344
345 %patch0 -p1
346
347 # Fix EXTRAVERSION in main Makefile
348 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = -%{alt_kernel}#g' Makefile
349
350 # cleanup backups after patching
351 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
352
353 %build
354 BuildConfig() {
355         %{?debug:set -x}
356         # is this a special kernel we want to build?
357         Config="%{kernel_config}"
358         KernelVer=%{kernel_release}
359         echo "Building config file using $Config.conf..."
360         cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
361
362 %{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
363 %{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
364 %{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
365
366 }
367
368 BuildKernel() {
369         %{?debug:set -x}
370         echo "Building kernel $1 ..."
371         %{__make} %CrossOpts mrproper \
372                 RCS_FIND_IGNORE='-name build-done -prune -o'
373         ln -sf %{defconfig} .config
374
375         %{__make} %CrossOpts clean \
376                 RCS_FIND_IGNORE='-name build-done -prune -o'
377
378         %{__make} %CrossOpts scripts/mkcompile_h \
379                 %{?with_verbose:V=1}
380
381         %{__make} %CrossOpts \
382                 %{?with_verbose:V=1}
383 }
384
385 PreInstallKernel() {
386         Config="%{kernel_config}"
387         KernelVer=%{kernel_release}
388
389         mkdir -p $KERNEL_INSTALL_DIR/boot
390         install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
391         install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
392         install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
393
394         %{__make} %CrossOpts modules_install firmware_install \
395                 %{?with_verbose:V=1} \
396                 DEPMOD=%DepMod \
397                 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
398                 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
399                 KERNELRELEASE=$KernelVer
400
401         # You'd probabelly want to make it somewhat different
402         install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
403         install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
404
405         echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
406         if [ %DepMod = /sbin/depmod ]; then
407                 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
408         fi
409         touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
410         echo "KERNEL RELEASE $KernelVer DONE"
411 }
412
413 KERNEL_BUILD_DIR=`pwd`
414 echo "-%{_localversion}" > localversion
415
416 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
417 rm -rf $KERNEL_INSTALL_DIR
418 BuildConfig
419 ln -sf %{defconfig} .config
420 BuildKernel
421 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated
422 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
423 install include/generated/autoconf.h \
424         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h
425 install include/generated/utsrelease.h \
426         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/
427 install .config \
428         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
429 PreInstallKernel
430
431 cp scripts/mkcompile_h{,.save}
432
433 %install
434 rm -rf $RPM_BUILD_ROOT
435 umask 022
436
437 export DEPMOD=%DepMod
438
439 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
440 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
441
442 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
443 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
444         l=l
445         rm -f $RPM_BUILD_ROOT/COPYING
446 fi
447
448 KERNEL_BUILD_DIR=`pwd`
449
450 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
451
452 if [ -e  $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
453         rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
454         ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
455         install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
456 fi
457
458 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
459
460 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
461
462 %{__make} %CrossOpts mrproper archclean \
463         RCS_FIND_IGNORE='-name build-done -prune -o'
464
465 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
466         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
467
468 %{__make} %CrossOpts mrproper
469 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
470 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
471 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \
472         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
473 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \
474         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
475 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
476         $RPM_BUILD_ROOT%{_kernelsrcdir}
477 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
478 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
479
480 # collect module-build files and directories
481 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
482
483 # ghosted initrd
484 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img
485 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
486
487 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
488 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
489 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
490
491 # remove unnecessary dir with dead symlink
492 rm -rf $RPM_BUILD_ROOT/arch/i386
493
494 install -d $RPM_BUILD_ROOT/etc/sysconfig
495 install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/kernel
496
497 %clean
498 rm -rf $RPM_BUILD_ROOT
499
500 %preun
501 if [ -x /sbin/new-kernel-pkg ]; then
502         /sbin/new-kernel-pkg --remove %{kernel_release}
503 fi
504
505 %post
506 %depmod %{kernel_release}
507
508 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
509 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
510         # generate initrd after all dependant modules are installed
511         /sbin/geninitrd -f %{initrd_dir}/initrd-%{kernel_release}.img %{kernel_release}
512 fi
513
514 # if dracut is present then generate full-featured initramfs
515 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
516         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
517 fi
518
519 # update boot loader
520 [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ] && . /etc/sysconfig/grub
521 if [[ "$UPDATE_GRUB" != [Nn][Oo] ]]; then
522         /sbin/update-grub
523 fi
524
525 if [ -x /sbin/new-kernel-pkg ]; then
526         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux %{alt_kernel}"
527 fi
528
529 if [ -x /sbin/rc-boot ]; then
530         /sbin/rc-boot 1>&2 || :
531 fi
532
533 %post drm
534 %depmod %{kernel_release}
535
536 %postun drm
537 %depmod %{kernel_release}
538
539 %post pcmcia
540 %depmod %{kernel_release}
541
542 %postun pcmcia
543 %depmod %{kernel_release}
544
545 %post sound-alsa
546 %depmod %{kernel_release}
547
548 %postun sound-alsa
549 %depmod %{kernel_release}
550
551 %post sound-oss
552 %depmod %{kernel_release}
553
554 %postun sound-oss
555 %depmod %{kernel_release}
556
557 %post headers
558 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
559
560 %postun headers
561 if [ "$1" = "0" ]; then
562         if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
563                 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
564                         rm -f %{_prefix}/src/linux-%{alt_kernel}
565                 fi
566         fi
567 fi
568
569 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
570 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
571 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
572
573 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
574 if [ "$1" = 0 ]; then
575         rm -f /lib/modules/%{kernel_release}/{build,source}
576 fi
577
578 %files
579 %defattr(644,root,root,755)
580 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
581 /boot/vmlinuz-%{kernel_release}
582 /boot/System.map-%{kernel_release}
583 %ghost %{initrd_dir}/initrd-%{kernel_release}.img
584 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
585 /lib/firmware/%{kernel_release}
586 %dir /lib/modules/%{kernel_release}
587 %dir /lib/modules/%{kernel_release}/kernel
588 /lib/modules/%{kernel_release}/kernel/arch
589 /lib/modules/%{kernel_release}/kernel/crypto
590 /lib/modules/%{kernel_release}/kernel/drivers
591
592 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
593
594 /lib/modules/%{kernel_release}/kernel/fs
595 /lib/modules/%{kernel_release}/kernel/kernel
596 /lib/modules/%{kernel_release}/kernel/lib
597
598 %ifarch x86_64
599 /lib/modules/%{kernel_release}/kernel/mm
600 %endif
601
602 /lib/modules/%{kernel_release}/kernel/net
603
604 %dir /lib/modules/%{kernel_release}/kernel/sound
605 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
606 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
607
608 %dir /lib/modules/%{kernel_release}/misc
609
610 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
611 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
612 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
616 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
617 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
618 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
619 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
620 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
621 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
622 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
623 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
624 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
625 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
626
627 /lib/modules/%{kernel_release}/kernel/security
628
629 %ghost /lib/modules/%{kernel_release}/modules.*
630 # symlinks pointing to kernelsrcdir
631 %ghost /lib/modules/%{kernel_release}/build
632 %ghost /lib/modules/%{kernel_release}/source
633 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
634
635 %files vmlinux
636 %defattr(644,root,root,755)
637 /boot/vmlinux-%{kernel_release}
638
639 %files drm
640 %defattr(644,root,root,755)
641 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
642
643 %files pcmcia
644 %defattr(644,root,root,755)
645 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
646 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
647 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
648 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
649 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
650 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
651 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
652 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
653 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
654 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
655 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
656 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
658
659 %files sound-alsa
660 %defattr(644,root,root,755)
661 /lib/modules/%{kernel_release}/kernel/sound
662 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
663 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
664 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
665 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
666 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
667
668 %files sound-oss
669 %defattr(644,root,root,755)
670 /lib/modules/%{kernel_release}/kernel/sound/oss
671
672 %files headers
673 %defattr(644,root,root,755)
674 %dir %{_kernelsrcdir}
675 %{_kernelsrcdir}/include
676 %dir %{_kernelsrcdir}/arch
677 %dir %{_kernelsrcdir}/arch/[!K]*
678 %{_kernelsrcdir}/arch/*/include
679 %dir %{_kernelsrcdir}/security
680 %dir %{_kernelsrcdir}/security/selinux
681 %{_kernelsrcdir}/security/selinux/include
682 %{_kernelsrcdir}/config-dist
683 %{_kernelsrcdir}/Module.symvers-dist
684
685 %files module-build -f aux_files
686 %defattr(644,root,root,755)
687 # symlinks pointint to kernelsrcdir
688 %dir /lib/modules/%{kernel_release}
689 /lib/modules/%{kernel_release}/build
690 %{_kernelsrcdir}/Kbuild
691 %{_kernelsrcdir}/localversion
692 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
693 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
694 %{_kernelsrcdir}/drivers/lguest/lg.h
695 %{_kernelsrcdir}/kernel/bounds.c
696 %dir %{_kernelsrcdir}/scripts
697 %dir %{_kernelsrcdir}/scripts/kconfig
698 %{_kernelsrcdir}/scripts/Kbuild.include
699 %{_kernelsrcdir}/scripts/Makefile*
700 %{_kernelsrcdir}/scripts/basic
701 %{_kernelsrcdir}/scripts/mkmakefile
702 %{_kernelsrcdir}/scripts/mod
703 %{_kernelsrcdir}/scripts/module-common.lds
704 %{_kernelsrcdir}/scripts/setlocalversion
705 %{_kernelsrcdir}/scripts/*.c
706 %{_kernelsrcdir}/scripts/*.sh
707 %{_kernelsrcdir}/scripts/kconfig/*
708 %{_kernelsrcdir}/scripts/mkcompile_h
709 %dir %{_kernelsrcdir}/scripts/selinux
710 %{_kernelsrcdir}/scripts/selinux/Makefile
711 %dir %{_kernelsrcdir}/scripts/selinux/mdp
712 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
713 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
714 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
715 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
716 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
717
718 %files doc
719 %defattr(644,root,root,755)
720 %dir %{_kernelsrcdir}
721 %{_kernelsrcdir}/Documentation
722
723 %if %{with source}
724 %files source -f aux_files_exc
725 %defattr(644,root,root,755)
726 %{_kernelsrcdir}/arch/*/[!Mk]*
727 %{_kernelsrcdir}/arch/*/kernel/[!M]*
728 %{_kernelsrcdir}/arch/ia64/kvm
729 %{_kernelsrcdir}/arch/powerpc/kvm
730 %{_kernelsrcdir}/arch/s390/kvm
731 %{_kernelsrcdir}/arch/x86/kvm
732 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
733 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
734 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
735 %{_kernelsrcdir}/block
736 %{_kernelsrcdir}/crypto
737 %{_kernelsrcdir}/drivers
738 %{_kernelsrcdir}/firmware
739 %{_kernelsrcdir}/fs
740 %{_kernelsrcdir}/init
741 %{_kernelsrcdir}/ipc
742 %{_kernelsrcdir}/kernel
743 %exclude %{_kernelsrcdir}/kernel/bounds.c
744 %{_kernelsrcdir}/lib
745 %{_kernelsrcdir}/mm
746 %{_kernelsrcdir}/net
747 %{_kernelsrcdir}/samples
748 %{_kernelsrcdir}/scripts/*
749 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
750 %exclude %{_kernelsrcdir}/scripts/Makefile*
751 %exclude %{_kernelsrcdir}/scripts/basic
752 %exclude %{_kernelsrcdir}/scripts/kconfig
753 %exclude %{_kernelsrcdir}/scripts/mkmakefile
754 %exclude %{_kernelsrcdir}/scripts/mod
755 %exclude %{_kernelsrcdir}/scripts/setlocalversion
756 %exclude %{_kernelsrcdir}/scripts/*.c
757 %exclude %{_kernelsrcdir}/scripts/*.sh
758 %{_kernelsrcdir}/sound
759 %{_kernelsrcdir}/security
760 %{_kernelsrcdir}/tools
761 %{_kernelsrcdir}/usr
762 %{_kernelsrcdir}/virt
763 %{_kernelsrcdir}/COPYING
764 %{_kernelsrcdir}/CREDITS
765 %{_kernelsrcdir}/MAINTAINERS
766 %{_kernelsrcdir}/README
767 %{_kernelsrcdir}/REPORTING-BUGS
768 %{_kernelsrcdir}/.mailmap
769 %endif