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