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