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