]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
2cd7e2459d80b67ff63e8be4033a865a3ecbfea8
[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                .64
9 %define         _rel                    1
10
11 %define         _enable_debug_packages                  0
12
13 %define         alt_kernel      3.4-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:  a00dab906f866532c6e3f63f58e9d65f
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 loader
526 [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ] && . /etc/sysconfig/grub
527 if [[ "$UPDATE_GRUB" != [Nn][Oo] ]]; then
528         /sbin/update-grub
529 fi
530
531 if [ -x /sbin/new-kernel-pkg ]; then
532         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.img --install %{kernel_release} --banner "TLD Linux %{alt_kernel}"
533 fi
534
535 if [ -x /sbin/rc-boot ]; then
536         /sbin/rc-boot 1>&2 || :
537 fi
538
539 %post drm
540 %depmod %{kernel_release}
541
542 %postun drm
543 %depmod %{kernel_release}
544
545 %post pcmcia
546 %depmod %{kernel_release}
547
548 %postun pcmcia
549 %depmod %{kernel_release}
550
551 %post sound-alsa
552 %depmod %{kernel_release}
553
554 %postun sound-alsa
555 %depmod %{kernel_release}
556
557 %post sound-oss
558 %depmod %{kernel_release}
559
560 %postun sound-oss
561 %depmod %{kernel_release}
562
563 %post headers
564 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
565
566 %postun headers
567 if [ "$1" = "0" ]; then
568         if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
569                 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
570                         rm -f %{_prefix}/src/linux-%{alt_kernel}
571                 fi
572         fi
573 fi
574
575 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
576 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
577 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
578
579 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
580 if [ "$1" = 0 ]; then
581         rm -f /lib/modules/%{kernel_release}/{build,source}
582 fi
583
584 %files
585 %defattr(644,root,root,755)
586 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
587 /boot/vmlinuz-%{kernel_release}
588 /boot/System.map-%{kernel_release}
589 %ghost %{initrd_dir}/initrd-%{kernel_release}.img
590 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
591 /lib/firmware/%{kernel_release}
592 %dir /lib/modules/%{kernel_release}
593 %dir /lib/modules/%{kernel_release}/kernel
594 /lib/modules/%{kernel_release}/kernel/arch
595 /lib/modules/%{kernel_release}/kernel/crypto
596 /lib/modules/%{kernel_release}/kernel/drivers
597
598 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
599
600 /lib/modules/%{kernel_release}/kernel/fs
601 /lib/modules/%{kernel_release}/kernel/kernel
602 /lib/modules/%{kernel_release}/kernel/lib
603
604 %ifarch x86_64
605 /lib/modules/%{kernel_release}/kernel/mm
606 %endif
607
608 /lib/modules/%{kernel_release}/kernel/net
609
610 %dir /lib/modules/%{kernel_release}/kernel/sound
611 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
612 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
616
617 %dir /lib/modules/%{kernel_release}/misc
618
619 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
620 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
621 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
622 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
623 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
624 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
625 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
626 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
627 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
628 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
629 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
630 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
631 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
632 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
633 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
634 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
635
636 /lib/modules/%{kernel_release}/kernel/security
637
638 %ghost /lib/modules/%{kernel_release}/modules.*
639 # symlinks pointing to kernelsrcdir
640 %ghost /lib/modules/%{kernel_release}/build
641 %ghost /lib/modules/%{kernel_release}/source
642 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
643
644 %files vmlinux
645 %defattr(644,root,root,755)
646 /boot/vmlinux-%{kernel_release}
647
648 %files drm
649 %defattr(644,root,root,755)
650 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
651
652 %files pcmcia
653 %defattr(644,root,root,755)
654 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
655 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
656 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
657 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
663 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
664 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
665 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
666 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
667
668 %files sound-alsa
669 %defattr(644,root,root,755)
670 /lib/modules/%{kernel_release}/kernel/sound
671 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
672 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
673 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
674 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
675 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
676 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
677 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
678 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
679
680 %files sound-oss
681 %defattr(644,root,root,755)
682 /lib/modules/%{kernel_release}/kernel/sound/oss
683
684 %files headers
685 %defattr(644,root,root,755)
686 %dir %{_kernelsrcdir}
687 %{_kernelsrcdir}/include
688 %dir %{_kernelsrcdir}/arch
689 %dir %{_kernelsrcdir}/arch/[!K]*
690 %{_kernelsrcdir}/arch/*/include
691 %dir %{_kernelsrcdir}/security
692 %dir %{_kernelsrcdir}/security/selinux
693 %{_kernelsrcdir}/security/selinux/include
694 %{_kernelsrcdir}/config-dist
695 %{_kernelsrcdir}/Module.symvers-dist
696
697 %files module-build -f aux_files
698 %defattr(644,root,root,755)
699 # symlinks pointint to kernelsrcdir
700 %dir /lib/modules/%{kernel_release}
701 /lib/modules/%{kernel_release}/build
702 %{_kernelsrcdir}/Kbuild
703 %{_kernelsrcdir}/localversion
704 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
705 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
706 %{_kernelsrcdir}/arch/x86/syscalls/*.tbl
707 %{_kernelsrcdir}/arch/x86/syscalls/*.sh
708 %{_kernelsrcdir}/arch/x86/tools/relocs.c
709 %{_kernelsrcdir}/drivers/lguest/lg.h
710 %{_kernelsrcdir}/kernel/bounds.c
711 %dir %{_kernelsrcdir}/tools
712 %dir %{_kernelsrcdir}/tools/include
713 %dir %{_kernelsrcdir}/tools/include/tools
714 %{_kernelsrcdir}/tools/include/tools/*.h
715 %dir %{_kernelsrcdir}/scripts
716 %dir %{_kernelsrcdir}/scripts/kconfig
717 %{_kernelsrcdir}/scripts/Kbuild.include
718 %{_kernelsrcdir}/scripts/Makefile*
719 %{_kernelsrcdir}/scripts/basic
720 %{_kernelsrcdir}/scripts/mkmakefile
721 %{_kernelsrcdir}/scripts/mod
722 %{_kernelsrcdir}/scripts/module-common.lds
723 %{_kernelsrcdir}/scripts/setlocalversion
724 %{_kernelsrcdir}/scripts/*.c
725 %{_kernelsrcdir}/scripts/*.sh
726 %{_kernelsrcdir}/scripts/kconfig/*
727 %{_kernelsrcdir}/scripts/mkcompile_h
728 %dir %{_kernelsrcdir}/scripts/selinux
729 %{_kernelsrcdir}/scripts/selinux/Makefile
730 %dir %{_kernelsrcdir}/scripts/selinux/mdp
731 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
732 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
733 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
734 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
735 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
736
737 %files doc
738 %defattr(644,root,root,755)
739 %dir %{_kernelsrcdir}
740 %{_kernelsrcdir}/Documentation
741
742 %if %{with source}
743 %files source -f aux_files_exc
744 %defattr(644,root,root,755)
745 %{_kernelsrcdir}/arch/*/[!Mk]*
746 %{_kernelsrcdir}/arch/*/kernel/[!M]*
747 %{_kernelsrcdir}/arch/ia64/kvm
748 %{_kernelsrcdir}/arch/powerpc/kvm
749 %{_kernelsrcdir}/arch/s390/kvm
750 %{_kernelsrcdir}/arch/x86/kvm
751 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
752 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
753 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
754 %{_kernelsrcdir}/block
755 %{_kernelsrcdir}/crypto
756 %{_kernelsrcdir}/drivers
757 %{_kernelsrcdir}/firmware
758 %{_kernelsrcdir}/fs
759 %{_kernelsrcdir}/init
760 %{_kernelsrcdir}/ipc
761 %{_kernelsrcdir}/kernel
762 %exclude %{_kernelsrcdir}/kernel/bounds.c
763 %{_kernelsrcdir}/lib
764 %{_kernelsrcdir}/mm
765 %{_kernelsrcdir}/net
766 %{_kernelsrcdir}/samples
767 %{_kernelsrcdir}/scripts/*
768 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
769 %exclude %{_kernelsrcdir}/scripts/Makefile*
770 %exclude %{_kernelsrcdir}/scripts/basic
771 %exclude %{_kernelsrcdir}/scripts/kconfig
772 %exclude %{_kernelsrcdir}/scripts/mkmakefile
773 %exclude %{_kernelsrcdir}/scripts/mod
774 %exclude %{_kernelsrcdir}/scripts/setlocalversion
775 %exclude %{_kernelsrcdir}/scripts/*.c
776 %exclude %{_kernelsrcdir}/scripts/*.sh
777 %{_kernelsrcdir}/sound
778 %{_kernelsrcdir}/security
779 %{_kernelsrcdir}/tools/*
780 %{_kernelsrcdir}/usr
781 %{_kernelsrcdir}/virt
782 %{_kernelsrcdir}/COPYING
783 %{_kernelsrcdir}/CREDITS
784 %{_kernelsrcdir}/MAINTAINERS
785 %{_kernelsrcdir}/README
786 %{_kernelsrcdir}/REPORTING-BUGS
787 %{_kernelsrcdir}/.mailmap
788 %endif