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