]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel-vanilla.spec
- updated BRs
[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                .4
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:  02adf3e0450969dec6219ca52ff2a68a
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         %else
360         sed -i 's:CONFIG_M586=y# CONFIG_M586 is not set::' $1
361         sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
362         %endif
363         return 0
364 %endif
365 }
366
367 BuildConfig() {
368         %{?debug:set -x}
369         # is this a special kernel we want to build?
370         Config="%{kernel_config}"
371         KernelVer=%{kernel_release}
372         echo "Building config file using $Config.conf..."
373         cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
374         TuneUpConfigForIX86 %{defconfig}
375
376 %{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
377 %{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
378 %{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
379
380 }
381
382 BuildKernel() {
383         %{?debug:set -x}
384         echo "Building kernel $1 ..."
385         %{__make} %CrossOpts mrproper \
386                 RCS_FIND_IGNORE='-name build-done -prune -o'
387         ln -sf %{defconfig} .config
388
389         %{__make} %CrossOpts clean \
390                 RCS_FIND_IGNORE='-name build-done -prune -o'
391         %{__make} %CrossOpts include/linux/version.h \
392                 %{?with_verbose:V=1}
393
394         %{__make} %CrossOpts scripts/mkcompile_h \
395                 %{?with_verbose:V=1}
396
397         %{__make} %CrossOpts \
398                 %{?with_verbose:V=1}
399 }
400
401 PreInstallKernel() {
402         Config="%{kernel_config}"
403         KernelVer=%{kernel_release}
404
405         mkdir -p $KERNEL_INSTALL_DIR/boot
406         install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
407         install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
408         install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
409
410         %{__make} %CrossOpts modules_install firmware_install \
411                 %{?with_verbose:V=1} \
412                 DEPMOD=%DepMod \
413                 INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
414                 INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
415                 KERNELRELEASE=$KernelVer
416
417         # You'd probabelly want to make it somewhat different
418         install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
419         install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
420
421         echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
422         if [ %DepMod = /sbin/depmod ]; then
423                 /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
424         fi
425         touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
426         echo "KERNEL RELEASE $KernelVer DONE"
427 }
428
429 KERNEL_BUILD_DIR=`pwd`
430 echo "-%{_localversion}" > localversion
431
432 KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
433 rm -rf $KERNEL_INSTALL_DIR
434 BuildConfig
435 ln -sf %{defconfig} .config
436 BuildKernel
437 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated
438 install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
439 install include/generated/autoconf.h \
440         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h
441 install include/generated/utsrelease.h \
442         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/
443 install include/linux/version.h \
444         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/
445 install .config \
446         $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
447 PreInstallKernel
448
449 cp scripts/mkcompile_h{,.save}
450
451 %install
452 rm -rf $RPM_BUILD_ROOT
453 umask 022
454
455 export DEPMOD=%DepMod
456
457 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
458 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
459
460 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
461 if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
462         l=l
463         rm -f $RPM_BUILD_ROOT/COPYING
464 fi
465
466 KERNEL_BUILD_DIR=`pwd`
467
468 cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
469
470 if [ -e  $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
471         rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
472         ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
473         install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
474 fi
475
476 find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
477
478 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
479
480 %{__make} %CrossOpts mrproper archclean \
481         RCS_FIND_IGNORE='-name build-done -prune -o'
482
483 cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
484         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
485
486 %{__make} %CrossOpts mrproper
487 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
488 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
489 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/version.h \
490         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
491 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \
492         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
493 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \
494         $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
495 install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
496         $RPM_BUILD_ROOT%{_kernelsrcdir}
497 install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
498 install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
499
500 # collect module-build files and directories
501 perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
502
503 # ghosted initrd
504 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
505
506 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
507 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
508 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
509
510 # remove unnecessary dir with dead symlink
511 rm -rf $RPM_BUILD_ROOT/arch/i386
512
513 %clean
514 rm -rf $RPM_BUILD_ROOT
515
516 %preun
517 if [ -x /sbin/new-kernel-pkg ]; then
518         /sbin/new-kernel-pkg --remove %{kernel_release}
519 fi
520
521 %post
522 mv -f /boot/vmlinuz-%{alt_kernel} /boot/vmlinuz-%{alt_kernel}.old 2> /dev/null > /dev/null
523 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz-%{alt_kernel}
524 mv -f /boot/System.map-%{alt_kernel} /boot/System.map-%{alt_kernel}.old 2> /dev/null > /dev/null
525 ln -sf System.map-%{kernel_release} /boot/System.map-%{alt_kernel}
526
527 %depmod %{kernel_release}
528
529 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
530 mv -f %{initrd_dir}/initrd-%{alt_kernel} %{initrd_dir}/initrd-%{alt_kernel}.old 2> /dev/null > /dev/null
531 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd-%{alt_kernel}
532
533 if [ -x /sbin/new-kernel-pkg ]; then
534         if [ -f /etc/pld-release ]; then
535                 title=$(sed 's/^[0-9.]\+ //' < /etc/pld-release)
536         else
537                 title='PLD Linux'
538         fi
539
540         title="$title %{alt_kernel}"
541
542         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "$title"
543 elif [ -x /sbin/rc-boot ]; then
544         /sbin/rc-boot 1>&2 || :
545 fi
546
547 %post vmlinux
548 mv -f /boot/vmlinux-%{alt_kernel} /boot/vmlinux-%{alt_kernel}.old 2> /dev/null > /dev/null
549 ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
550
551 %post drm
552 %depmod %{kernel_release}
553
554 %postun drm
555 %depmod %{kernel_release}
556
557 %post pcmcia
558 %depmod %{kernel_release}
559
560 %postun pcmcia
561 %depmod %{kernel_release}
562
563 %post sound-alsa
564 %depmod %{kernel_release}
565
566 %postun sound-alsa
567 %depmod %{kernel_release}
568
569 %post sound-oss
570 %depmod %{kernel_release}
571
572 %postun sound-oss
573 %depmod %{kernel_release}
574
575 %post headers
576 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
577
578 %postun headers
579 if [ "$1" = "0" ]; then
580         if [ -L %{_prefix}/src/linux-%{alt_kernel} ]; then
581                 if [ "$(readlink %{_prefix}/src/linux-%{alt_kernel})" = "linux-%{version}-%{alt_kernel}" ]; then
582                         rm -f %{_prefix}/src/linux-%{alt_kernel}
583                 fi
584         fi
585 fi
586
587 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
588 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
589 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
590
591 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
592 if [ "$1" = 0 ]; then
593         rm -f /lib/modules/%{kernel_release}/{build,source}
594 fi
595
596 %files
597 %defattr(644,root,root,755)
598 /boot/vmlinuz-%{kernel_release}
599 /boot/System.map-%{kernel_release}
600 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
601 /lib/firmware/%{kernel_release}
602 %dir /lib/modules/%{kernel_release}
603 %dir /lib/modules/%{kernel_release}/kernel
604 /lib/modules/%{kernel_release}/kernel/arch
605 /lib/modules/%{kernel_release}/kernel/crypto
606 /lib/modules/%{kernel_release}/kernel/drivers
607
608 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
609
610 /lib/modules/%{kernel_release}/kernel/fs
611 # this directory will be removed after disabling rcutorture mod. in 2.6.20.
612 /lib/modules/%{kernel_release}/kernel/kernel
613 /lib/modules/%{kernel_release}/kernel/lib
614
615 %ifarch x86_64
616 /lib/modules/%{kernel_release}/kernel/mm
617 %endif
618
619 /lib/modules/%{kernel_release}/kernel/net
620
621 %dir /lib/modules/%{kernel_release}/kernel/sound
622 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
623 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
624 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
625 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
626 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
627
628 %dir /lib/modules/%{kernel_release}/misc
629
630 %dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
631 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
632 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
633 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
634 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
635 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
636 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
637 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
638 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
639 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
640 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
641 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
642 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
643 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
644 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
645 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
646 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
647
648 /lib/modules/%{kernel_release}/kernel/security
649
650 %ghost /lib/modules/%{kernel_release}/modules.*
651 # symlinks pointing to kernelsrcdir
652 %ghost /lib/modules/%{kernel_release}/build
653 %ghost /lib/modules/%{kernel_release}/source
654 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
655
656 %files vmlinux
657 %defattr(644,root,root,755)
658 /boot/vmlinux-%{kernel_release}
659
660 %files drm
661 %defattr(644,root,root,755)
662 /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
663
664 %files pcmcia
665 %defattr(644,root,root,755)
666 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
667 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
668 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
669 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
670 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
671 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
672 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
673 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
674 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
675 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
676 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
677 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
678 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
679 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
680
681 %files sound-alsa
682 %defattr(644,root,root,755)
683 /lib/modules/%{kernel_release}/kernel/sound
684 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
685 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
686 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
687 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
688 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
689 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
690 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
691 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
692
693 %files sound-oss
694 %defattr(644,root,root,755)
695 /lib/modules/%{kernel_release}/kernel/sound/oss
696
697 %files headers
698 %defattr(644,root,root,755)
699 %dir %{_kernelsrcdir}
700 %{_kernelsrcdir}/include
701 %dir %{_kernelsrcdir}/arch
702 %dir %{_kernelsrcdir}/arch/[!K]*
703 %{_kernelsrcdir}/arch/*/include
704 %dir %{_kernelsrcdir}/security
705 %dir %{_kernelsrcdir}/security/selinux
706 %{_kernelsrcdir}/security/selinux/include
707 %{_kernelsrcdir}/config-dist
708 %{_kernelsrcdir}/Module.symvers-dist
709
710 %files module-build -f aux_files
711 %defattr(644,root,root,755)
712 # symlinks pointint to kernelsrcdir
713 %dir /lib/modules/%{kernel_release}
714 /lib/modules/%{kernel_release}/build
715 %{_kernelsrcdir}/Kbuild
716 %{_kernelsrcdir}/localversion
717 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
718 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
719 %{_kernelsrcdir}/drivers/lguest/lg.h
720 %{_kernelsrcdir}/kernel/bounds.c
721 %dir %{_kernelsrcdir}/scripts
722 %dir %{_kernelsrcdir}/scripts/kconfig
723 %{_kernelsrcdir}/scripts/Kbuild.include
724 %{_kernelsrcdir}/scripts/Makefile*
725 %{_kernelsrcdir}/scripts/basic
726 %{_kernelsrcdir}/scripts/mkmakefile
727 %{_kernelsrcdir}/scripts/mod
728 %{_kernelsrcdir}/scripts/module-common.lds
729 %{_kernelsrcdir}/scripts/setlocalversion
730 %{_kernelsrcdir}/scripts/*.c
731 %{_kernelsrcdir}/scripts/*.sh
732 %{_kernelsrcdir}/scripts/kconfig/*
733 %{_kernelsrcdir}/scripts/mkcompile_h
734 %dir %{_kernelsrcdir}/scripts/selinux
735 %{_kernelsrcdir}/scripts/selinux/Makefile
736 %dir %{_kernelsrcdir}/scripts/selinux/mdp
737 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
738 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
739 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
740 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
741 %{_kernelsrcdir}/scripts/selinux/genheaders/*.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