]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
- updated to 3.4.41
[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.4
8 %define         _postver                .41
9 %define         _rel                    1
10
11 %define         _enable_debug_packages                  0
12
13 %define         alt_kernel      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:  967f72983655e2479f951195953e8480
34 %if "%{_postver}" != "%{nil}"
35 Source1:        http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
36 # Source1-md5:  48af478d8be7351ad4c2f362fecf7a0e
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         %{__make} %CrossOpts include/linux/version.h \
378                 %{?with_verbose:V=1}
379
380         %{__make} %CrossOpts scripts/mkcompile_h \
381                 %{?with_verbose:V=1}
382
383         %{__make} %CrossOpts \
384                 %{?with_verbose:V=1}
385 }
386
387 PreInstallKernel() {
388         Config="%{kernel_config}"
389         KernelVer=%{kernel_release}
390
391         mkdir -p $KERNEL_INSTALL_DIR/boot
392         install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
393         install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
394         install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
395
396         %{__make} %CrossOpts modules_install firmware_install \
397                 %{?with_verbose:V=1} \
398                 DEPMOD=%DepMod \
399                 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
400                 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
401                 KERNELRELEASE=$KernelVer
402
403         # You'd probabelly want to make it somewhat different
404         install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
405         install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
406
407         echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
408         if [ %DepMod = /sbin/depmod ]; then
409                 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
410         fi
411         touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
412         echo "KERNEL RELEASE $KernelVer DONE"
413 }
414
415 KERNEL_BUILD_DIR=`pwd`
416 echo "-%{_localversion}" > localversion
417
418 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
419 rm -rf $KERNEL_INSTALL_DIR
420 BuildConfig
421 ln -sf %{defconfig} .config
422 BuildKernel
423 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated
424 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
425 install include/generated/autoconf.h \
426         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h
427 install include/generated/utsrelease.h \
428         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/
429 install include/linux/version.h \
430         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/
431 install .config \
432         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
433 PreInstallKernel
434
435 cp scripts/mkcompile_h{,.save}
436
437 %install
438 rm -rf $RPM_BUILD_ROOT
439 umask 022
440
441 export DEPMOD=%DepMod
442
443 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
444 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
445
446 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
447 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
448         l=l
449         rm -f $RPM_BUILD_ROOT/COPYING
450 fi
451
452 KERNEL_BUILD_DIR=`pwd`
453
454 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
455
456 if [ -e  $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
457         rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
458         ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
459         install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
460 fi
461
462 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
463
464 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
465
466 %{__make} %CrossOpts mrproper archclean \
467         RCS_FIND_IGNORE='-name build-done -prune -o'
468
469 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
470         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
471
472 %{__make} %CrossOpts mrproper
473 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
474 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
475 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/version.h \
476         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
477 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \
478         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
479 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \
480         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
481 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
482         $RPM_BUILD_ROOT%{_kernelsrcdir}
483 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
484 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
485
486 # collect module-build files and directories
487 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
488
489 # ghosted initrd
490 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img
491 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
492
493 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
494 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
495 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
496
497 # remove unnecessary dir with dead symlink
498 rm -rf $RPM_BUILD_ROOT/arch/i386
499
500 install -d $RPM_BUILD_ROOT/etc/sysconfig
501 install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/kernel
502
503 %clean
504 rm -rf $RPM_BUILD_ROOT
505
506 %preun
507 if [ -x /sbin/new-kernel-pkg ]; then
508         /sbin/new-kernel-pkg --remove %{kernel_release}
509 fi
510
511 %post
512 %depmod %{kernel_release}
513
514 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
515 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
516         # generate initrd after all dependant modules are installed
517         /sbin/geninitrd -f %{initrd_dir}/initrd-%{kernel_release}.img %{kernel_release}
518 fi
519
520 # if dracut is present then generate full-featured initramfs
521 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
522         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
523 fi
524
525 # update boot loaders when old package files are gone from filesystem
526 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
527         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
528                 /sbin/update-grub >/dev/null
529         fi
530 fi
531
532 if [ -x /sbin/new-kernel-pkg ]; then
533         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux %{alt_kernel}"
534 fi
535
536 if [ -x /sbin/rc-boot ]; then
537         /sbin/rc-boot 1>&2 || :
538 fi
539
540 %post drm
541 %depmod %{kernel_release}
542
543 %postun drm
544 %depmod %{kernel_release}
545
546 %post pcmcia
547 %depmod %{kernel_release}
548
549 %postun pcmcia
550 %depmod %{kernel_release}
551
552 %post sound-alsa
553 %depmod %{kernel_release}
554
555 %postun sound-alsa
556 %depmod %{kernel_release}
557
558 %post sound-oss
559 %depmod %{kernel_release}
560
561 %postun sound-oss
562 %depmod %{kernel_release}
563
564 %post headers
565 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
566
567 %postun headers
568 if [ "$1" = "0" ]; then
569         if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
570                 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
571                         rm -f %{_prefix}/src/linux-%{alt_kernel}
572                 fi
573         fi
574 fi
575
576 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
577 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
578 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
579
580 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
581 if [ "$1" = 0 ]; then
582         rm -f /lib/modules/%{kernel_release}/{build,source}
583 fi
584
585 %files
586 %defattr(644,root,root,755)
587 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
588 /boot/vmlinuz-%{kernel_release}
589 /boot/System.map-%{kernel_release}
590 %ghost %{initrd_dir}/initrd-%{kernel_release}.img
591 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
592 /lib/firmware/%{kernel_release}
593 %dir /lib/modules/%{kernel_release}
594 %dir /lib/modules/%{kernel_release}/kernel
595 /lib/modules/%{kernel_release}/kernel/arch
596 /lib/modules/%{kernel_release}/kernel/crypto
597 /lib/modules/%{kernel_release}/kernel/drivers
598
599 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
600
601 /lib/modules/%{kernel_release}/kernel/fs
602 /lib/modules/%{kernel_release}/kernel/kernel
603 /lib/modules/%{kernel_release}/kernel/lib
604
605 %ifarch x86_64
606 /lib/modules/%{kernel_release}/kernel/mm
607 %endif
608
609 /lib/modules/%{kernel_release}/kernel/net
610
611 %dir /lib/modules/%{kernel_release}/kernel/sound
612 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
613 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
616 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
617
618 %dir /lib/modules/%{kernel_release}/misc
619
620 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
621 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
622 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
623 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
624 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
625 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
626 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
627 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
628 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
629 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
630 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
631 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
632 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
633 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
634 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
635 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
636
637 /lib/modules/%{kernel_release}/kernel/security
638
639 %ghost /lib/modules/%{kernel_release}/modules.*
640 # symlinks pointing to kernelsrcdir
641 %ghost /lib/modules/%{kernel_release}/build
642 %ghost /lib/modules/%{kernel_release}/source
643 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
644
645 %files vmlinux
646 %defattr(644,root,root,755)
647 /boot/vmlinux-%{kernel_release}
648
649 %files drm
650 %defattr(644,root,root,755)
651 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
652
653 %files pcmcia
654 %defattr(644,root,root,755)
655 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
656 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
658 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
663 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
664 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
665 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
666 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
667 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
668
669 %files sound-alsa
670 %defattr(644,root,root,755)
671 /lib/modules/%{kernel_release}/kernel/sound
672 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
673 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
674 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
675 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
676 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
677 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
678 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
679 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
680
681 %files sound-oss
682 %defattr(644,root,root,755)
683 /lib/modules/%{kernel_release}/kernel/sound/oss
684
685 %files headers
686 %defattr(644,root,root,755)
687 %dir %{_kernelsrcdir}
688 %{_kernelsrcdir}/include
689 %dir %{_kernelsrcdir}/arch
690 %dir %{_kernelsrcdir}/arch/[!K]*
691 %{_kernelsrcdir}/arch/*/include
692 %dir %{_kernelsrcdir}/security
693 %dir %{_kernelsrcdir}/security/selinux
694 %{_kernelsrcdir}/security/selinux/include
695 %{_kernelsrcdir}/config-dist
696 %{_kernelsrcdir}/Module.symvers-dist
697
698 %files module-build -f aux_files
699 %defattr(644,root,root,755)
700 # symlinks pointint to kernelsrcdir
701 %dir /lib/modules/%{kernel_release}
702 /lib/modules/%{kernel_release}/build
703 %{_kernelsrcdir}/Kbuild
704 %{_kernelsrcdir}/localversion
705 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
706 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
707 %{_kernelsrcdir}/drivers/lguest/lg.h
708 %{_kernelsrcdir}/kernel/bounds.c
709 %dir %{_kernelsrcdir}/scripts
710 %dir %{_kernelsrcdir}/scripts/kconfig
711 %{_kernelsrcdir}/scripts/Kbuild.include
712 %{_kernelsrcdir}/scripts/Makefile*
713 %{_kernelsrcdir}/scripts/basic
714 %{_kernelsrcdir}/scripts/mkmakefile
715 %{_kernelsrcdir}/scripts/mod
716 %{_kernelsrcdir}/scripts/module-common.lds
717 %{_kernelsrcdir}/scripts/setlocalversion
718 %{_kernelsrcdir}/scripts/*.c
719 %{_kernelsrcdir}/scripts/*.sh
720 %{_kernelsrcdir}/scripts/kconfig/*
721 %{_kernelsrcdir}/scripts/mkcompile_h
722 %dir %{_kernelsrcdir}/scripts/selinux
723 %{_kernelsrcdir}/scripts/selinux/Makefile
724 %dir %{_kernelsrcdir}/scripts/selinux/mdp
725 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
726 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
727 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
728 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
729 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
730
731 %files doc
732 %defattr(644,root,root,755)
733 %dir %{_kernelsrcdir}
734 %{_kernelsrcdir}/Documentation
735
736 %if %{with source}
737 %files source -f aux_files_exc
738 %defattr(644,root,root,755)
739 %{_kernelsrcdir}/arch/*/[!Mk]*
740 %{_kernelsrcdir}/arch/*/kernel/[!M]*
741 %{_kernelsrcdir}/arch/ia64/kvm
742 %{_kernelsrcdir}/arch/powerpc/kvm
743 %{_kernelsrcdir}/arch/s390/kvm
744 %{_kernelsrcdir}/arch/x86/kvm
745 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
746 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
747 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
748 %{_kernelsrcdir}/block
749 %{_kernelsrcdir}/crypto
750 %{_kernelsrcdir}/drivers
751 %{_kernelsrcdir}/firmware
752 %{_kernelsrcdir}/fs
753 %{_kernelsrcdir}/init
754 %{_kernelsrcdir}/ipc
755 %{_kernelsrcdir}/kernel
756 %exclude %{_kernelsrcdir}/kernel/bounds.c
757 %{_kernelsrcdir}/lib
758 %{_kernelsrcdir}/mm
759 %{_kernelsrcdir}/net
760 %{_kernelsrcdir}/samples
761 %{_kernelsrcdir}/scripts/*
762 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
763 %exclude %{_kernelsrcdir}/scripts/Makefile*
764 %exclude %{_kernelsrcdir}/scripts/basic
765 %exclude %{_kernelsrcdir}/scripts/kconfig
766 %exclude %{_kernelsrcdir}/scripts/mkmakefile
767 %exclude %{_kernelsrcdir}/scripts/mod
768 %exclude %{_kernelsrcdir}/scripts/setlocalversion
769 %exclude %{_kernelsrcdir}/scripts/*.c
770 %exclude %{_kernelsrcdir}/scripts/*.sh
771 %{_kernelsrcdir}/sound
772 %{_kernelsrcdir}/security
773 %{_kernelsrcdir}/tools
774 %{_kernelsrcdir}/usr
775 %{_kernelsrcdir}/virt
776 %{_kernelsrcdir}/COPYING
777 %{_kernelsrcdir}/CREDITS
778 %{_kernelsrcdir}/MAINTAINERS
779 %{_kernelsrcdir}/README
780 %{_kernelsrcdir}/REPORTING-BUGS
781 %{_kernelsrcdir}/.mailmap
782 %endif