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