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