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