]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
8a8cfa9cc7c969b595f6d75a52bb1328f3e7785e
[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                .78
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}.xz
36 # Source1-md5:  b91e8ee017f50af8bd038026935fff2d
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 >= 4.5-74
57 BuildRequires:  rpmbuild(macros) >= 1.652
58 BuildRequires:  xz >= 1:4.999.7
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 %{__xz} -dc %{SOURCE1} | patch -p1 -s
344 %endif
345
346 %patch0 -p1
347
348 # Fix EXTRAVERSION in main Makefile
349 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = -%{alt_kernel}#g' Makefile
350
351 # cleanup backups after patching
352 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
353
354 %build
355 BuildConfig() {
356         %{?debug:set -x}
357         # is this a special kernel we want to build?
358         Config="%{kernel_config}"
359         KernelVer=%{kernel_release}
360         echo "Building config file using $Config.conf..."
361         cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
362
363 %{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
364 %{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
365 %{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
366
367 }
368
369 BuildKernel() {
370         %{?debug:set -x}
371         echo "Building kernel $1 ..."
372         %{__make} %CrossOpts mrproper \
373                 RCS_FIND_IGNORE='-name build-done -prune -o'
374         ln -sf %{defconfig} .config
375
376         %{__make} %CrossOpts clean \
377                 RCS_FIND_IGNORE='-name build-done -prune -o'
378         %{__make} %CrossOpts include/linux/version.h \
379                 %{?with_verbose:V=1}
380
381         %{__make} %CrossOpts scripts/mkcompile_h \
382                 %{?with_verbose:V=1}
383
384         %{__make} %CrossOpts \
385                 %{?with_verbose:V=1}
386 }
387
388 PreInstallKernel() {
389         Config="%{kernel_config}"
390         KernelVer=%{kernel_release}
391
392         mkdir -p $KERNEL_INSTALL_DIR/boot
393         install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
394         install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
395         install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
396
397         %{__make} %CrossOpts modules_install firmware_install \
398                 %{?with_verbose:V=1} \
399                 DEPMOD=%DepMod \
400                 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
401                 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
402                 KERNELRELEASE=$KernelVer
403
404         # You'd probabelly want to make it somewhat different
405         install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
406         install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
407
408         echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
409         if [ %DepMod = /sbin/depmod ]; then
410                 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
411         fi
412         touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
413         echo "KERNEL RELEASE $KernelVer DONE"
414 }
415
416 KERNEL_BUILD_DIR=`pwd`
417 echo "-%{_localversion}" > localversion
418
419 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
420 rm -rf $KERNEL_INSTALL_DIR
421 BuildConfig
422 ln -sf %{defconfig} .config
423 BuildKernel
424 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated
425 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
426 install include/generated/autoconf.h \
427         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h
428 install include/generated/utsrelease.h \
429         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/
430 install include/linux/version.h \
431         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/
432 install .config \
433         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
434 PreInstallKernel
435
436 cp scripts/mkcompile_h{,.save}
437
438 %install
439 rm -rf $RPM_BUILD_ROOT
440 umask 022
441
442 export DEPMOD=%DepMod
443
444 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
445 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
446
447 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
448 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
449         l=l
450         rm -f $RPM_BUILD_ROOT/COPYING
451 fi
452
453 KERNEL_BUILD_DIR=`pwd`
454
455 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
456
457 if [ -e  $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
458         rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
459         ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
460         install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
461 fi
462
463 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
464
465 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
466
467 %{__make} %CrossOpts mrproper archclean \
468         RCS_FIND_IGNORE='-name build-done -prune -o'
469
470 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
471         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
472
473 %{__make} %CrossOpts mrproper
474 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
475 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
476 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/version.h \
477         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
478 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \
479         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
480 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \
481         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
482 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
483         $RPM_BUILD_ROOT%{_kernelsrcdir}
484 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
485 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
486
487 # collect module-build files and directories
488 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
489
490 # ghosted initrd
491 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.img
492 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
493
494 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
495 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
496 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
497
498 # remove unnecessary dir with dead symlink
499 rm -rf $RPM_BUILD_ROOT/arch/i386
500
501 install -d $RPM_BUILD_ROOT/etc/sysconfig
502 install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/kernel
503
504 %clean
505 rm -rf $RPM_BUILD_ROOT
506
507 %preun
508 if [ -x /sbin/new-kernel-pkg ]; then
509         /sbin/new-kernel-pkg --remove %{kernel_release}
510 fi
511
512 %post
513 %depmod %{kernel_release}
514
515 %posttrans
516 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
517 # generate simple initramfs/initrd image
518 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
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 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
529         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
530                 /sbin/update-grub >/dev/null
531         fi
532 fi
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/usb/gadget/g_midi.ko*
630 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
631 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
632 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
633 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
634 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
635 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
636 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
637
638 /lib/modules/%{kernel_release}/kernel/security
639
640 %ghost /lib/modules/%{kernel_release}/modules.*
641 # symlinks pointing to kernelsrcdir
642 %ghost /lib/modules/%{kernel_release}/build
643 %ghost /lib/modules/%{kernel_release}/source
644 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
645
646 %files vmlinux
647 %defattr(644,root,root,755)
648 /boot/vmlinux-%{kernel_release}
649
650 %files drm
651 %defattr(644,root,root,755)
652 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
653
654 %files pcmcia
655 %defattr(644,root,root,755)
656 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
659 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
663 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
664 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
665 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
666 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
667 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
668 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
669
670 %files sound-alsa
671 %defattr(644,root,root,755)
672 /lib/modules/%{kernel_release}/kernel/sound
673 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
674 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
675 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
676 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
677 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
678 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
679 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
680 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
681
682 %files sound-oss
683 %defattr(644,root,root,755)
684 /lib/modules/%{kernel_release}/kernel/sound/oss
685
686 %files headers
687 %defattr(644,root,root,755)
688 %dir %{_kernelsrcdir}
689 %{_kernelsrcdir}/include
690 %dir %{_kernelsrcdir}/arch
691 %dir %{_kernelsrcdir}/arch/[!K]*
692 %{_kernelsrcdir}/arch/*/include
693 %dir %{_kernelsrcdir}/security
694 %dir %{_kernelsrcdir}/security/selinux
695 %{_kernelsrcdir}/security/selinux/include
696 %{_kernelsrcdir}/config-dist
697 %{_kernelsrcdir}/Module.symvers-dist
698
699 %files module-build -f aux_files
700 %defattr(644,root,root,755)
701 # symlinks pointint to kernelsrcdir
702 %dir /lib/modules/%{kernel_release}
703 /lib/modules/%{kernel_release}/build
704 %{_kernelsrcdir}/Kbuild
705 %{_kernelsrcdir}/localversion
706 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
707 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
708 %{_kernelsrcdir}/arch/x86/syscalls/*.tbl
709 %{_kernelsrcdir}/arch/x86/syscalls/*.sh
710 %{_kernelsrcdir}/arch/x86/tools/relocs.c
711 %{_kernelsrcdir}/drivers/lguest/lg.h
712 %{_kernelsrcdir}/kernel/bounds.c
713 %dir %{_kernelsrcdir}/tools
714 %dir %{_kernelsrcdir}/tools/include
715 %dir %{_kernelsrcdir}/tools/include/tools
716 %{_kernelsrcdir}/tools/include/tools/*.h
717 %dir %{_kernelsrcdir}/scripts
718 %dir %{_kernelsrcdir}/scripts/kconfig
719 %{_kernelsrcdir}/scripts/Kbuild.include
720 %{_kernelsrcdir}/scripts/Makefile*
721 %{_kernelsrcdir}/scripts/basic
722 %{_kernelsrcdir}/scripts/mkmakefile
723 %{_kernelsrcdir}/scripts/mod
724 %{_kernelsrcdir}/scripts/module-common.lds
725 %{_kernelsrcdir}/scripts/setlocalversion
726 %{_kernelsrcdir}/scripts/*.c
727 %{_kernelsrcdir}/scripts/*.sh
728 %{_kernelsrcdir}/scripts/kconfig/*
729 %{_kernelsrcdir}/scripts/mkcompile_h
730 %dir %{_kernelsrcdir}/scripts/selinux
731 %{_kernelsrcdir}/scripts/selinux/Makefile
732 %dir %{_kernelsrcdir}/scripts/selinux/mdp
733 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
734 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
735 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
736 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
737 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
738
739 %files doc
740 %defattr(644,root,root,755)
741 %dir %{_kernelsrcdir}
742 %{_kernelsrcdir}/Documentation
743
744 %if %{with source}
745 %files source -f aux_files_exc
746 %defattr(644,root,root,755)
747 %{_kernelsrcdir}/arch/*/[!Mk]*
748 %{_kernelsrcdir}/arch/*/kernel/[!M]*
749 %{_kernelsrcdir}/arch/ia64/kvm
750 %{_kernelsrcdir}/arch/powerpc/kvm
751 %{_kernelsrcdir}/arch/s390/kvm
752 %{_kernelsrcdir}/arch/x86/kvm
753 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
754 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
755 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
756 %{_kernelsrcdir}/block
757 %{_kernelsrcdir}/crypto
758 %{_kernelsrcdir}/drivers
759 %{_kernelsrcdir}/firmware
760 %{_kernelsrcdir}/fs
761 %{_kernelsrcdir}/init
762 %{_kernelsrcdir}/ipc
763 %{_kernelsrcdir}/kernel
764 %exclude %{_kernelsrcdir}/kernel/bounds.c
765 %{_kernelsrcdir}/lib
766 %{_kernelsrcdir}/mm
767 %{_kernelsrcdir}/net
768 %{_kernelsrcdir}/samples
769 %{_kernelsrcdir}/scripts/*
770 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
771 %exclude %{_kernelsrcdir}/scripts/Makefile*
772 %exclude %{_kernelsrcdir}/scripts/basic
773 %exclude %{_kernelsrcdir}/scripts/kconfig
774 %exclude %{_kernelsrcdir}/scripts/mkmakefile
775 %exclude %{_kernelsrcdir}/scripts/mod
776 %exclude %{_kernelsrcdir}/scripts/setlocalversion
777 %exclude %{_kernelsrcdir}/scripts/*.c
778 %exclude %{_kernelsrcdir}/scripts/*.sh
779 %{_kernelsrcdir}/sound
780 %{_kernelsrcdir}/security
781 %{_kernelsrcdir}/tools/*
782 %{_kernelsrcdir}/usr
783 %{_kernelsrcdir}/virt
784 %{_kernelsrcdir}/COPYING
785 %{_kernelsrcdir}/CREDITS
786 %{_kernelsrcdir}/MAINTAINERS
787 %{_kernelsrcdir}/README
788 %{_kernelsrcdir}/REPORTING-BUGS
789 %{_kernelsrcdir}/.mailmap
790 %endif