]> git.pld-linux.org Git - packages/kernel.git/blame_incremental - kernel.spec
- add doc bcond
[packages/kernel.git] / kernel.spec
... / ...
CommitLineData
1#
2# NOTE:
3# the following bcond combos will not work
4# - without_vserver and any of the following
5# - with_apparmor
6# - with_grsec_minimal
7# - with_grsec_full
8#
9# TODO:
10# - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
11# - add a subpackage (kernel-firmware?) for ~35 firmware files
12# - update or remove tahoe9xx patch2
13# - update or remove mpt-fusion patch90
14# - update grsec_minimal patch1000:
15# fs/proc/base.c:1484: error: 'struct task_struct' has no member named 'uid'
16#
17# HOWTO update configuration files:
18# - run build
19# - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
20# - sort configuration files using:
21# ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86_84.config
22# ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
23#
24# Conditional build:
25%bcond_without source # don't build kernel-source package
26%bcond_without doc # don't build kernel-doc package
27%bcond_without pcmcia # don't build pcmcia
28
29%bcond_with verbose # verbose build (V=1)
30%bcond_without reiser4 # support for reiser4 fs (experimental)
31
32%bcond_without grsecurity # don't build grsecurity nor pax at all
33%bcond_without grsec_full # build full grsecurity
34%bcond_with grsec_minimal # build only minimal subset (proc,link,fifo,shm)
35%bcond_with pax # build pax and full grsecurity (ie. grsec_full && pax)
36
37%bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
38%bcond_with pae # build PAE (HIGHMEM64G) support on uniprocessor
39%bcond_with nfsroot # build with root on NFS support
40
41%bcond_without imq # imq support
42%bcond_without wrr # wrr support
43%bcond_without esfq # esfq support
44%bcond_without ipv6 # ipv6 support
45
46%bcond_without vserver # support for VServer (enabled by default)
47%bcond_without tuxonice # support for tuxonice (ex-suspend2) (enabled by default)
48%bcond_without apparmor # build kernel with apparmor (exerimental mix)
49
50%bcond_with rescuecd # build kernel for our rescue
51
52%bcond_with myown # build with your own config (kernel-myown.config)
53
54%{?debug:%define with_verbose 1}
55
56%if %{without grsecurity}
57%unglobal with_grsec_full
58%unglobal with_grsec_minimal
59%unglobal with_pax
60%endif
61
62%if %{with pax}
63%unglobal with_grsec_minimal
64%define with_grsec_full 1
65%define with_grsecurity 1
66%define with_pax 1
67%endif
68
69%if %{with grsec_minimal}
70%unglobal with_pax
71%unglobal with_grsec_full
72%define with_grsecurity 1
73%endif
74
75%if %{with grsec_full}
76%unglobal with_grsec_minimal
77%define with_grsecurity 1
78%endif
79
80%define have_drm 1
81%define have_oss 1
82%define have_sound 1
83%define have_pcmcia 1
84
85%if %{with rescuecd}
86%unglobal with_apparmor
87%unglobal with_tuxonice
88%unglobal with_grsecurity
89%unglobal with_grsec_full
90%unglobal with_grsec_minimal
91%unglobal with_pax
92%unglobal with_vserver
93%define have_drm 0
94%define have_sound 0
95%endif
96
97%if %{with myown}
98%define have_drm 0
99%define have_oss 0
100%define have_sound 0
101%define have_pcmcia 0
102%endif
103
104%ifarch sparc sparc64
105%unglobal with_pcmcia
106%define have_drm 0
107%define have_oss 0
108%endif
109
110%if %{without pcmcia}
111%define have_pcmcia 0
112%endif
113
114%define basever 2.6.32
115%define postver .2
116%define rel 1
117
118%define _enable_debug_packages 0
119
120%define tuxonice_version 3.0.1
121%define netfilter_snap 20070806
122
123%if %{with myown}
124%if "%{_alt_kernel}" == ""
125%define alt_kernel myown
126%endif
127%else
128%if %{without rescuecd}
129%define __alt_kernel %{?with_pax:pax}%{!?with_grsec_full:nogrsecurity}%{!?with_apparmor:noaa}%{?with_pae:pae}
130%if "%{__alt_kernel}" != ""
131%define alt_kernel %{__alt_kernel}
132%endif
133%else
134%define alt_kernel rescuecd
135%endif
136%endif
137
138# kernel release (used in filesystem and eventually in uname -r)
139# modules will be looked from /lib/modules/%{kernel_release}
140# localversion is just that without version for "> localversion"
141%define localversion %{rel}
142%define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion}
143
144Summary: The Linux kernel (the core of the Linux operating system)
145Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems)
146Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum)
147Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme)
148Summary(pl.UTF-8): JÄ…dro Linuksa
149Name: kernel%{_alt_kernel}
150Version: %{basever}%{postver}
151Release: %{rel}
152Epoch: 3
153License: GPL v2
154Group: Base/Kernel
155Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{basever}.tar.bz2
156# Source0-md5: 260551284ac224c3a43c4adac7df4879
157%if "%{postver}" != "%{nil}"
158Source1: http://www.kernel.org/pub/linux/kernel/v2.6/patch-%{version}.bz2
159# Source1-md5: 924b7aa0fcd6e54c12ecc9b3c3082f59
160%endif
161
162Source3: kernel-autoconf.h
163Source4: kernel-config.h
164Source6: kernel-config.awk
165Source7: kernel-module-build.pl
166Source8: kernel-track-config-change.awk
167# not used by kernel.spec, but it's good to have it in SOURCES
168Source9: kernel-config-sort.pl
169Source10: kernel.make
170
171Source20: kernel-multiarch.config
172Source21: kernel-x86.config
173Source22: kernel-sparc.config
174Source23: kernel-alpha.config
175Source24: kernel-powerpc.config
176Source25: kernel-ia64.config
177
178Source40: kernel-netfilter.config
179Source41: kernel-patches.config
180Source42: kernel-tuxonice.config
181Source43: kernel-vserver.config
182Source45: kernel-grsec.config
183
184Source49: kernel-pax.config
185Source50: kernel-no-pax.config
186Source51: kernel-grsec_minimal.config
187Source55: kernel-imq.config
188Source56: kernel-reiser4.config
189Source57: kernel-wrr.config
190
191Source58: kernel-inittmpfs.config
192Source59: kernel-bzip2-lzma.config
193
194# tahoe9xx http://www.tahoe.pl/drivers/tahoe9xx-2.6.24.patch
195Patch2: kernel-tahoe9xx.patch
196
197# http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch
198Patch3: kernel-fbcondecor.patch
199Patch4: kernel-fbcon-margins.patch
200
201# netfilter related stuff mostly based on patch-o-matic-ng
202# snapshot 20070806 with some fixes. Some modules
203# were ported to nf_conntrack.
204
205Patch10: kernel-pom-ng-IPV4OPTSSTRIP.patch
206Patch11: kernel-pom-ng-ipv4options.patch
207
208Patch14: kernel-pom-ng-ROUTE.patch
209Patch16: kernel-pom-ng-mms-conntrack-nat.patch
210Patch22: kernel-pom-ng-rsh.patch
211Patch23: kernel-pom-ng-rpc.patch
212
213# based on http://mike.it-loops.com/rtsp/rtsp-2.6.26.patch
214Patch36: kernel-nf_rtsp.patch
215
216# http://ftp.linux-vserver.org/pub/people/dhozac/p/k/delta-owner-xid-feat02.diff
217Patch37: kernel-owner-xid.patch
218
219# based on http://www.svn.barbara.eu.org/ipt_account/attachment/wiki/Software/ipt_account-0.1.21-20070804164729.tar.gz?format=raw
220Patch38: kernel-ipt_account.patch
221
222# based on http://www.intra2net.com/de/produkte/opensource/ipt_account/pom-ng-ipt_ACCOUNT-1.12.tgz
223Patch39: kernel-ipt_ACCOUNT.patch
224
225# based on kernel-2.6.25-layer7-2.20.patch from
226# http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
227Patch40: kernel-layer7.patch
228
229# http://www.ssi.bg/~ja/nfct/ipvs-nfct-2.6.28-1.diff
230Patch41: kernel-ipvs-nfct.patch
231
232### End netfilter
233
234# http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
235Patch49: kernel-zph.patch
236
237# based on http://www.linuximq.net/patchs/linux-2.6.29.1-imq-test2.diff
238Patch50: kernel-imq.patch
239
240# http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.28.patch.bz2
241Patch51: kernel-reiser4.patch
242
243# http://www.zz9.dk/patches/wrr-linux-071203-2.6.25.patch.gz
244Patch52: kernel-wrr.patch
245
246# http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
247Patch53: kernel-esfq.patch
248
249# http://memebeam.org/free-software/toshiba_acpi/toshiba_acpi-dev_toshiba_test5-linux_2.6.26.patch
250Patch54: kernel-toshiba_acpi.patch
251
252# by Baggins request:
253# derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
254Patch55: kernel-atm-vbr.patch
255Patch56: kernel-atmdd.patch
256
257# http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
258Patch59: kernel-rndis_host-wm5.patch
259
260# Project suspend2 renamed to tuxonice
261# http://www.tuxonice.net/downloads/all/tuxonice-3.0.99.32-for-2.6.32.patch.bz2
262Patch69: kernel-tuxonice.patch
263Patch70: kernel-tuxonice-headers.patch
264
265# adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
266# http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
267Patch85: kernel-hostap.patch
268
269# Taken from http://download.opensuse.org/factory/repo/src-oss/suse/src/kernel-source-2.6.30-10.3.src.rpm
270Patch90: kernel-mpt-fusion.patch
271
272# based on http://vserver.13thfloor.at/Experimental/patch-2.6.32.1-vs2.3.0.36.27.diff
273Patch100: kernel-vserver-2.3.patch
274Patch101: kernel-vserver-fixes.patch
275
276# Wake-On-Lan fix for nForce drivers; using http://atlas.et.tudelft.nl/verwei90/nforce2/wol.html
277# Fix verified for that kernel version.
278Patch130: kernel-forcedeth-WON.patch
279
280# http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.3_for_2.6.31.diff.gz
281Patch140: kernel-unionfs.patch
282
283# aufs1, http://aufs.sourceforge.net/
284# aufs1 is NOT maintained since Jan 2009.
285Patch145: kernel-aufs.patch
286Patch146: kernel-aufs-support.patch
287
288Patch148: kernel-aufs2.patch
289
290Patch150: kernel-ppc-crtsavres.patch
291
292# git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-devel.git
293Patch160: kernel-squashfs-lzma.patch
294
295Patch200: kernel-ppc-ICE-hacks.patch
296
297# The following patch extend the routing functionality in Linux
298# to support static routes (defined by user), new way to use the
299# alternative routes, the reverse path protection (rp_filter),
300# the NAT processing to use correctly the routing when multiple
301# gateways are used.
302# http://www.ssi.bg/~ja/routes-2.6.28-16.diff
303Patch300: kernel-routes.patch
304
305Patch1000: kernel-grsec-minimal.patch
306
307Patch2000: kernel-small_fixes.patch
308Patch2001: kernel-pwc-uncompress.patch
309Patch2003: kernel-regressions.patch
310
311# kill some thousands of warnings
312# (only warnings, so just remove parts of this patch if conflics)
313Patch2500: kernel-warnings.patch
314
315# git://kernel.ubuntu.com/ubuntu/ubuntu-karmic.git
316# see ubuntu/apparmor dir
317Patch5000: kernel-apparmor.patch
318
319# for rescuecd
320# based on http://ftp.leg.uct.ac.za/pub/linux/rip/inittmpfs-2.6.14.diff.gz
321Patch7000: kernel-inittmpfs.patch
322
323# based on http://www.grsecurity.net/~spender/grsecurity-2.1.14-2.6.32.1-200912151746.patch kernel-grsec_full.patch
324# NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
325# (since upstream deletes older patches)
326Patch9999: kernel-grsec_full.patch
327Patch10000: kernel-grsec-caps.patch
328Patch10001: kernel-grsec-common.patch
329Patch10002: kernel-grsec_fixes.patch
330
331URL: http://www.kernel.org/
332BuildRequires: binutils >= 3:2.18
333%ifarch sparc sparc64
334BuildRequires: elftoaout
335%endif
336%ifarch ppc
337BuildRequires: uboot-mkimage
338%endif
339AutoReqProv: no
340BuildRequires: /sbin/depmod
341BuildRequires: gcc >= 5:3.2
342BuildRequires: xz >= 1:4.999.7
343# for hostname command
344BuildRequires: net-tools
345BuildRequires: perl-base
346BuildRequires: rpm-build >= 4.5-24
347BuildRequires: rpmbuild(macros) >= 1.217
348Requires(post): coreutils
349Requires(post): geninitrd >= 10000-3
350Requires(post): module-init-tools >= 0.9.9
351Requires: /sbin/depmod
352Requires: coreutils
353Requires: geninitrd >= 10000-3
354Requires: module-init-tools >= 0.9.9
355Provides: %{name}(netfilter) = %{netfilter_snap}
356Provides: %{name}(vermagic) = %{kernel_release}
357Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
358Obsoletes: kernel-misc-acer_acpi
359Obsoletes: kernel-misc-fuse
360Obsoletes: kernel-misc-uvc
361Obsoletes: kernel-modules
362Obsoletes: kernel-net-ar81
363Obsoletes: kernel-net-hostap
364Obsoletes: kernel-net-ieee80211
365Obsoletes: kernel-net-ipp2p
366Obsoletes: kernel-net-rt61
367Obsoletes: kernel-smp
368Conflicts: e2fsprogs < 1.29
369Conflicts: isdn4k-utils < 3.1pre1
370Conflicts: jfsutils < 1.1.3
371Conflicts: module-init-tools < 0.9.10
372Conflicts: nfs-utils < 1.0.5
373Conflicts: oprofile < 0.9
374Conflicts: ppp < 1:2.4.0
375Conflicts: procps < 3.2.0
376Conflicts: quota-tools < 3.09
377%if %{with reiserfs4}
378Conflicts: reiser4progs < 1.0.0
379%endif
380Conflicts: reiserfsprogs < 3.6.3
381Conflicts: udev < 1:081
382Conflicts: util-linux < 2.10o
383Conflicts: util-vserver < 0.30.216
384Conflicts: xfsprogs < 2.6.0
385%if %{with pae}
386ExcludeArch: i386 i486 i586
387%else
388ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
389%endif
390ExclusiveOS: Linux
391BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
392
393%ifarch %{ix86} %{x8664}
394%define target_arch_dir x86
395%endif
396%ifarch ppc ppc64
397%define target_arch_dir powerpc
398%endif
399%ifarch sparc sparc64
400%define target_arch_dir sparc
401%endif
402%ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
403%define target_arch_dir %{_target_base_arch}
404%endif
405
406%define defconfig arch/%{target_arch_dir}/defconfig
407
408# No ELF objects there to strip (skips processing 27k files)
409%define _noautostrip '(.*%{_kernelsrcdir}/.*|.*/vmlinux.*)'
410%define _noautochrpath .*%{_kernelsrcdir}/.*
411
412%ifarch ia64
413%define initrd_dir /boot/efi
414%else
415%define initrd_dir /boot
416%endif
417
418%define topdir %{_builddir}/%{name}-%{version}
419%define srcdir %{topdir}/linux-%{basever}
420%define objdir %{topdir}/%{targetobj}
421%define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
422
423%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
424
425%if "%{_target_base_arch}" != "%{_arch}"
426 %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
427 %define DepMod /bin/true
428
429 %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
430 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
431 %define DepMod /sbin/depmod
432 %endif
433
434 %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
435 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
436 %define DepMod /sbin/depmod
437 %endif
438
439 %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
440 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
441 %define DepMod /sbin/depmod
442 %endif
443
444 %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
445 %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
446 %endif
447%else
448 %ifarch ppc ppc64
449 %define CrossOpts ARCH=powerpc CC="%{__cc}"
450 %else
451 %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
452 %endif
453 %define DepMod /sbin/depmod
454%endif
455%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
456
457%define __features Netfilter module dated: %{netfilter_snap}\
458%{?with_grsec_full:Grsecurity support - enabled}\
459%{?with_grsec_minimal:Grsecurity minimal support /proc,link,fifo,shm/ - enabled}\
460%{?with_pax:PaX support - enabled}\
461%{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
462%{?with_nfsroot:Root on NFS - enabled}\
463%{?with_apparmor:apparmor support - enabled}\
464
465%define Features %(echo "%{__features}" | sed '/^$/d')
466
467%description
468This package contains the Linux kernel that is used to boot and run
469your system. It contains few device drivers for specific hardware.
470Most hardware is instead supported by modules loaded after booting.
471
472%{Features}
473
474%description -l de.UTF-8
475Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
476Linux-Betriebssystems. Der Kernel ist für grundliegende
477Systemfunktionen verantwortlich: Speicherreservierung,
478Prozeß-Management, Geräte Ein- und Ausgaben, usw.
479
480%{Features}
481
482%description -l fr.UTF-8
483Le package kernel contient le kernel linux (vmlinuz), la partie
484centrale d'un système d'exploitation Linux. Le noyau traite les
485fonctions basiques d'un système d'exploitation: allocation mémoire,
486allocation de process, entrée/sortie de peripheriques, etc.
487
488%{Features}
489
490%description -l pl.UTF-8
491Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
492Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
493się w komputerze, takiego jak sterowniki dysków itp.
494
495%{Features}
496
497%package vmlinux
498Summary: vmlinux - uncompressed kernel image
499Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
500Summary(pl.UTF-8): vmlinux - rozpakowany obraz jÄ…dra
501Group: Base/Kernel
502Obsoletes: kernel-smp-vmlinux
503
504%description vmlinux
505vmlinux - uncompressed kernel image.
506
507%description vmlinux -l de.UTF-8
508vmlinux - dekompressiertes Kernel Bild.
509
510%description vmlinux -l pl.UTF-8
511vmlinux - rozpakowany obraz jÄ…dra.
512
513%package drm
514Summary: DRM kernel modules
515Summary(de.UTF-8): DRM Kernel Treiber
516Summary(pl.UTF-8): Sterowniki DRM
517Group: Base/Kernel
518Requires(postun): %{name} = %{epoch}:%{version}-%{release}
519Requires: %{name} = %{epoch}:%{version}-%{release}
520Obsoletes: kernel-smp-drm
521AutoReqProv: no
522
523%description drm
524DRM kernel modules.
525
526%description drm -l de.UTF-8
527DRM Kernel Treiber.
528
529%description drm -l pl.UTF-8
530Sterowniki DRM.
531
532%package pcmcia
533Summary: PCMCIA modules
534Summary(de.UTF-8): PCMCIA Module
535Summary(pl.UTF-8): Moduły PCMCIA
536Group: Base/Kernel
537Requires(postun): %{name} = %{epoch}:%{version}-%{release}
538Requires: %{name} = %{epoch}:%{version}-%{release}
539Obsoletes: kernel-smp-pcmcia
540Conflicts: pcmcia-cs < 3.1.21
541Conflicts: pcmciautils < 004
542AutoReqProv: no
543
544%description pcmcia
545PCMCIA modules.
546
547%description pcmcia -l de.UTF-8
548PCMCIA Module.
549
550%description pcmcia -l pl.UTF-8
551Moduły PCMCIA.
552
553%package sound-alsa
554Summary: ALSA kernel modules
555Summary(de.UTF-8): ALSA Kernel Module
556Summary(pl.UTF-8): Sterowniki dźwięku ALSA
557Group: Base/Kernel
558Requires(postun): %{name} = %{epoch}:%{version}-%{release}
559Requires: %{name} = %{epoch}:%{version}-%{release}
560Obsoletes: kernel-smp-sound-alsa
561AutoReqProv: no
562
563%description sound-alsa
564ALSA (Advanced Linux Sound Architecture) sound drivers.
565
566%description sound-alsa -l de.UTF-8
567ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
568
569%description sound-alsa -l pl.UTF-8
570Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
571
572%package sound-oss
573Summary: OSS kernel modules
574Summary(de.UTF-8): OSS Kernel Module
575Summary(pl.UTF-8): Sterowniki dźwięku OSS
576Group: Base/Kernel
577Requires(postun): %{name} = %{epoch}:%{version}-%{release}
578Requires: %{name} = %{epoch}:%{version}-%{release}
579Obsoletes: kernel-smp-sound-oss
580AutoReqProv: no
581
582%description sound-oss
583OSS (Open Sound System) drivers.
584
585%description sound-oss -l de.UTF-8
586OSS (Open Sound System) Treiber.
587
588%description sound-oss -l pl.UTF-8
589Sterowniki dźwięku OSS (Open Sound System).
590
591%package headers
592Summary: Header files for the Linux kernel
593Summary(de.UTF-8): Header Dateien für den Linux-Kernel
594Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
595Group: Development/Building
596Provides: %{name}-headers(netfilter) = %{netfilter_snap}
597AutoReqProv: no
598
599%description headers
600These are the C header files for the Linux kernel, which define
601structures and constants that are needed when rebuilding the kernel or
602building kernel modules.
603
604%description headers -l de.UTF-8
605Dies sind die C Header Dateien für den Linux-Kernel, die definierte
606Strukturen und Konstante beinhalten, die beim rekompilieren des
607Kernels oder bei Kernel Modul kompilationen gebraucht werden.
608
609%description headers -l pl.UTF-8
610Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
611oraz budowania modułów jądra.
612
613%package module-build
614Summary: Development files for building kernel modules
615Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden
616Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
617Group: Development/Building
618Requires: %{name}-headers = %{epoch}:%{version}-%{release}
619Conflicts: rpmbuild(macros) < 1.321
620AutoReqProv: no
621
622%description module-build
623Development files from kernel source tree needed to build Linux kernel
624modules from external packages.
625
626%description module-build -l de.UTF-8
627Development Dateien des Linux-Kernels die beim kompilieren externer
628Kernel Module gebraucht werden.
629
630%description module-build -l pl.UTF-8
631Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
632Linuksa z zewnętrznych pakietów.
633
634%package source
635Summary: Kernel source tree
636Summary(de.UTF-8): Der Kernel Quelltext
637Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
638Group: Development/Building
639Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
640AutoReqProv: no
641
642%description source
643This is the source code for the Linux kernel. You can build a custom
644kernel that is better tuned to your particular hardware.
645
646%description source -l de.UTF-8
647Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
648Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
649C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
650im Kernel-Source definiert sind. Die Source-Dateien können auch
651benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
652Hardware ausgerichtet ist.
653
654%description source -l fr.UTF-8
655Le package pour le kernel-source contient le code source pour le noyau
656linux. Ces sources sont nécessaires pour compiler la plupart des
657programmes C, car il dépend de constantes définies dans le code
658source. Les sources peuvent être aussi utilisée pour compiler un noyau
659personnalisé pour avoir de meilleures performances sur des matériels
660particuliers.
661
662%description source -l pl.UTF-8
663Pakiet zawiera kod źródłowy jądra systemu.
664
665%package doc
666Summary: Kernel documentation
667Summary(de.UTF-8): Kernel Dokumentation
668Summary(pl.UTF-8): Dokumentacja do jÄ…dra Linuksa
669Group: Documentation
670AutoReqProv: no
671
672%description doc
673This is the documentation for the Linux kernel, as found in
674/usr/src/linux/Documentation directory.
675
676%description doc -l de.UTF-8
677Dies ist die Kernel Dokumentation wie sie im 'Documentation'
678Verzeichniss vorgefunden werden kann.
679
680%description doc -l pl.UTF-8
681Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
682/usr/src/linux/Documentation.
683
684%prep
685%setup -qc
686ln -s %{SOURCE7} kernel-module-build.pl
687ln -s %{SOURCE10} Makefile
688cd linux-%{basever}
689
690# hack against warning in pax/grsec
691sed -i 's/-Werror//' arch/alpha/kernel/Makefile
692
693%if "%{postver}" != "%{nil}"
694%{__bzip2} -dc %{SOURCE1} | patch -p1 -s
695%endif
696
697# tuxonice:
698%if %{with tuxonice}
699%patch69 -p1
700%patch70 -p1
701%endif
702
703# tahoe9xx: 2.6.29 - need update
704#%patch2 -p1
705
706%if %{with fbcondecor}
707%patch3 -p1
708%endif
709%patch4 -p1
710
711## netfilter
712#
713
714# kernel-pom-ng-IPV4OPTSSTRIP.patch
715%patch10 -p1
716
717# kernel-pom-ng-ipv4options.patch
718%patch11 -p1
719
720# kernel-pom-ng-ROUTE.patch
721%patch14 -p1
722
723# kernel-pom-ng-mms-conntrack-nat.patch
724%patch16 -p1
725
726# kernel-pom-ng-rsh.patch
727%patch22 -p1
728
729# kernel-pom-ng-rpc.patch
730%patch23 -p1
731
732# kernel-nf_rtsp.patch
733%patch36 -p1
734
735# kernel-owner-xid.patch
736%if %{with vserver}
737%patch37 -p1
738%endif
739
740# kernel-ipt_account.patch
741%patch38 -p1
742
743# kernel-ipt_ACCOUNT.patch
744%patch39 -p1
745
746# kernel-layer7.patch
747%patch40 -p1
748
749# ipvs-nfct
750%patch41 -p1
751
752##
753# end of netfilter
754
755# zph
756%patch49 -p1
757
758%if %{with imq}
759%patch50 -p1
760%endif
761
762# reiser4
763%if %{with reiser4}
764%patch51 -p1
765%endif
766
767# esfq
768%if %{with esfq}
769%patch53 -p1
770%endif
771
772%if %{with wrr}
773%patch52 -p1
774%endif
775
776# toshiba_acpi
777%patch54 -p1
778
779%patch55 -p1
780%patch56 -p1
781
782# kernel-rndis_host-wm5.patch
783%patch59 -p1
784
785# hostap enhancements from/for aircrack-ng
786%patch85 -p1
787
788# LSI MPT Fusion driver update (by LSI via SUSE folks)
789# FIXME!
790#%patch90 -p1
791
792# vserver
793%if %{with vserver}
794%patch100 -p1
795%patch101 -p1
796%endif
797
798# forcedeth
799%patch130 -p1
800
801# unionfs (problems with aufs2, needed for aufs1 patch)
802%if %{without rescuecd}
803%patch140 -p1
804%endif
805
806%if %{with rescuecd}
807# aufs2
808%patch148 -p1
809%else
810# aufs1
811#patch145 -p1
812#patch146 -p1
813%endif
814
815%patch2500 -p1
816
817%if %{with rescuecd}
818%patch7000 -p1
819%endif
820
821# grsecurity & pax stuff
822#
823
824# remember that we have the same config file for grsec_minimal and
825# grsec_full, but the patches are different.
826
827%if %{with grsecurity}
828%if %{with grsec_minimal}
829%patch1000 -p1
830%else
831# grsec_full and/or pax
832%patch9999 -p1
833%{?with_vserver:%patch10000 -p1}
834%{?with_vserver:%patch10001 -p1}
835%{?with_vserver:%patch10002 -p1}
836%endif
837%endif
838#
839# end of grsecurity & pax stuff
840
841# apparmor
842%if %{with apparmor}
843%patch5000 -p1
844%endif
845
846# FIXME
847#%patch150 -p1
848
849%patch160 -p1
850
851%ifarch ppc ppc64
852#patch200 -p1
853%endif
854
855# routes
856%patch300 -p1
857
858# Small fixes:
859%patch2000 -p1
860%patch2001 -p1
861#%patch2003 -p1
862
863# Fix EXTRAVERSION in main Makefile
864sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}%{?alt_kernel:_%{alt_kernel}}#g' Makefile
865
866# cleanup backups after patching
867find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
868
869%build
870install -d %{objdir}
871cat > %{targetobj}.mk <<'EOF'
872# generated by %{name}.spec
873KERNELSRC := %{_builddir}/%{name}-%{version}/linux-%{basever}
874KERNELOUTPUT := %{objdir}
875
876SRCARCH := %{target_arch_dir}
877ARCH := %{_target_base_arch}
878Q := %{!?with_verbose:@}
879MAKE_OPTS := %{MakeOpts}
880DEFCONFIG := %{defconfig}
881EOF
882
883PaXconfig() {
884 set -x
885 cat <<-EOCONFIG > $1
886 %ifarch %{ix86}
887 CONFIG_PAX_SEGMEXEC=y
888 # performance impact on CPUs without NX bit
889 CONFIG_PAX_PAGEEXEC=n
890 # Testing KERNEXEC
891
892 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
893 CONFIG_PCI_BIOS=n
894 CONFIG_EFI=n
895 %endif
896
897 %ifarch ppc64
898 CONFIG_PAX_NOELFRELOCS=n
899 %endif
900 %ifarch ppc
901 CONFIG_PAX_EMUTRAMP=y
902 CONFIG_PAX_EMUSIGRT=y
903 CONFIG_PAX_EMUPLT=y
904 %endif
905
906 %ifarch sparc sparc64 alpha
907 CONFIG_PAX_EMUPLT=y
908 %endif
909
910 # Now we have to check MAC system integration. Grsecurity (full) uses PAX_HAVE_ACL_FLAGS
911 # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
912 # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
913 # PAX_HOOK_ACL_FLAGS.
914
915 %if %{with grsec_full}
916 # Hardening grsec options if with pax
917 CONFIG_GRKERNSEC_PROC_MEMMAP=y
918 # almost rational (see HIDESYM help)
919 CONFIG_GRKERNSEC_HIDESYM=y
920
921 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
922 %else
923 CONFIG_PAX_HAVE_ACL_FLAGS=n
924 CONFIG_PAX_HOOK_ACL_FLAGS=y
925 %endif
926EOCONFIG
927
928 return 0
929}
930
931RescueConfig() {
932 set -x
933 cat <<-EOCONFIG > $1
934 # CONFIG_SOUND is not set
935 # CONFIG_AUDIT is not set
936 # CONFIG_TR is not set
937 # CONFIG_BT is not set
938 # CONFIG_VIDEO_DEV is not set
939 # CONFIG_DVB_CORE is not set
940 # CONFIG_HAMRADIO is not set
941 # CONFIG_ARCNET is not set
942 # CONFIG_FB is not set
943 # CONFIG_DRM is not set
944 # CONFIG_WATCHDOG is not set
945 # CONFIG_INPUT_JOYSTICK is not set
946 # CONFIG_DEBUG_KERNEL is not set
947 # CONFIG_ISDN is not set
948 # CONFIG_AGP is not set
949 # CONFIG_SECURITY is not set
950 # CONFIG_PARIDE is not set
951 # CONFIG_CPU_FREQ is not set
952 # CONFIG_GAMEPORT is not set
953 # CONFIG_KVM is not set
954 # CONFIG_PHONE is not set
955 # CONFIG_STRICT_DEVMEM is not set
956 # CONFIG_IMA is not set
957 CONFIG_AUFS=y
958 CONFIG_AUFS_FS=y
959 CONFIG_AUFS_BR_RAMFS=y
960 CONFIG_AUFS_RDU=y
961 CONFIG_BLK_DEV_LOOP=y
962 CONFIG_ISO9660_FS=y
963 CONFIG_NLS_UTF8=y
964EOCONFIG
965
966 return 0
967}
968
969BuildConfig() {
970 %{?debug:set -x}
971 set -e
972
973 Config="kernel-%{target_arch_dir}.config"
974 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
975
976 # prepare local and important options
977 cat <<-EOCONFIG > important.config
978 LOCALVERSION="-%{localversion}"
979
980%if 0%{?debug:1}
981 CONFIG_DEBUG_SLAB=y
982 CONFIG_DEBUG_SLAB_LEAK=y
983 CONFIG_DEBUG_PREEMPT=y
984 CONFIG_RT_DEADLOCK_DETECT=y
985%endif
986
987# apparmor, will be moved to external file if works
988%if %{with apparmor}
989 CONFIG_SECURITY_APPARMOR=y
990 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
991 CONFIG_SECURITY_APPARMOR_DISABLE=n
992 CONFIG_SECURITY_APPARMOR_NETWORK=y
993%endif
994
995%if %{without ipv6}
996 CONFIG_IPV6=n
997%endif
998
999%ifarch i686 athlon pentium3 pentium4
1000 %if %{with pae}
1001 CONFIG_HIGHMEM4G=n
1002 CONFIG_HIGHMEM64G=y
1003 CONFIG_X86_PAE=y
1004 CONFIG_NUMA=n
1005 %endif
1006%endif
1007
1008%if %{without pcmcia}
1009 CONFIG_PCMCIA=n
1010%endif
1011
1012%if %{with fbcondecor}
1013 CONFIG_FB_S3=n
1014 CONFIG_FB_VT8623=n
1015 CONFIG_FB_ARK=n
1016 CONFIG_FB_TILEBLITTING=n
1017 CONFIG_FB_CON_DECOR=y
1018%endif
1019
1020%if %{with nfsroot}
1021 CONFIG_NFS_FS=y
1022 CONFIG_ROOT_NFS=y
1023%endif
1024
1025# Temporary disabled RELOCATABLE. Needed only on x86??
1026%if %{with pax} || %{with grsec_full}
1027 CONFIG_RELOCATABLE=n
1028%endif
1029EOCONFIG
1030
1031%if %{with rescuecd}
1032 RescueConfig rescue.config
1033%endif
1034%if %{with pax}
1035 PaXconfig pax.config
1036%endif
1037
1038 # prepare kernel-style config file from multiple config files
1039 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
1040%if %{with myown}
1041 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
1042%endif
1043 important.config \
1044%if %{with rescuecd}
1045 %{SOURCE58} \
1046 %{SOURCE59} \
1047 rescue.config \
1048%endif
1049 \
1050%if %{with pax}
1051 %{SOURCE45} \
1052 %{SOURCE49} \
1053 pax.config \
1054%else
1055 %if %{with grsec_full}
1056 %{SOURCE45} \
1057 %{SOURCE50} \
1058 %else
1059 %if %{with grsec_minimal}
1060 %{SOURCE51} \
1061 %endif
1062 %endif
1063%endif
1064 \
1065%if %{with reiser4}
1066 %{SOURCE56} \
1067%endif
1068%if %{with wrr}
1069 %{SOURCE57} \
1070%endif
1071%if %{with imq}
1072 %{SOURCE55} \
1073%endif
1074%if %{with vserver}
1075 %{SOURCE43} \
1076%endif
1077%if %{with tuxonice}
1078%ifarch %{ix86} %{x8664} ia64 ppc ppc64
1079 %{SOURCE42} \
1080%endif
1081%endif
1082 %{SOURCE40} %{?0:netfilter} \
1083 %{SOURCE41} %{?0:patches} \
1084 %{SOURCE20} \
1085 $RPM_SOURCE_DIR/$Config
1086}
1087
1088cd %{objdir}
1089install -d arch/%{target_arch_dir}
1090BuildConfig > %{defconfig}
1091ln -sf %{defconfig} .config
1092cd -
1093
1094%{__make} \
1095 TARGETOBJ=%{targetobj} \
1096 %{?with_verbose:V=1} \
1097 oldconfig
1098
1099%{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1100
1101# build kernel
1102%{__make} \
1103 TARGETOBJ=%{targetobj} \
1104 %{?with_verbose:V=1} \
1105 all
1106
1107%install
1108rm -rf $RPM_BUILD_ROOT
1109%{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install firmware_install \
1110 -C %{objdir} \
1111 %{?with_verbose:V=1} \
1112 DEPMOD=%{DepMod} \
1113 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1114 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1115 KERNELRELEASE=%{kernel_release}
1116
1117install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1118
1119# create directories which may be missing, to simplyfy %files
1120install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1121
1122# rpm obeys filelinkto checks for ghosted symlinks, convert to files
1123rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1124touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1125
1126# /boot
1127install -d $RPM_BUILD_ROOT/boot
1128cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1129%ifarch %{ix86} %{x8664}
1130cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1131install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1132%endif
1133%ifarch ppc ppc64
1134install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1135install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1136%endif
1137%ifarch ia64
1138%{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1139cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1140ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1141%endif
1142%ifarch alpha sparc sparc64
1143 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1144 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1145 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1146%ifarch sparc
1147 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1148 install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1149%endif
1150%ifarch sparc64
1151 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1152 install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1153%endif
1154%ifarch arm
1155 install %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1156%endif
1157%endif
1158
1159# ghosted initrd
1160touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1161
1162%if "%{_target_base_arch}" != "%{_arch}"
1163touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1164%endif
1165
1166# /etc/modrobe.d
1167install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1168
1169# /usr/src/linux
1170install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1171# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1172if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1173 l=l
1174 rm -f $RPM_BUILD_ROOT/COPYING
1175fi
1176
1177cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1178cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1179cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1180cp -a %{objdir}/include/linux/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf-dist.h
1181cp -a %{objdir}/include/linux/{utsrelease,version}.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1182cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
1183cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1184
1185# collect module-build files and directories
1186# Usage: kernel-module-build.pl $rpmdir $fileoutdir
1187fileoutdir=$(pwd)
1188cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1189%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1190cd -
1191
1192# move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1193install -d $RPM_BUILD_ROOT%{_docdir}
1194mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1195
1196rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1197rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1198rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1199rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1200
1201%clean
1202rm -rf $RPM_BUILD_ROOT
1203
1204%preun
1205if [ -x /sbin/new-kernel-pkg ]; then
1206 /sbin/new-kernel-pkg --remove %{kernel_release}
1207fi
1208
1209%post
1210%ifarch ia64
1211mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1212%{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1213ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1214%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1215%endif
1216mv -f /boot/vmlinuz{,.old} 2> /dev/null
1217%{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1218mv -f /boot/System.map{,.old} 2> /dev/null
1219%{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1220ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1221%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1222ln -sf System.map-%{kernel_release} /boot/System.map
1223%{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1224
1225%depmod %{kernel_release}
1226
1227/sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1228mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1229%{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1230ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1231%{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1232
1233if [ -x /sbin/new-kernel-pkg ]; then
1234 /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1235elif [ -x /sbin/rc-boot ]; then
1236 /sbin/rc-boot 1>&2 || :
1237fi
1238
1239%post vmlinux
1240mv -f /boot/vmlinux{,.old} 2> /dev/null
1241%{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1242ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1243%{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1244
1245%post drm
1246%depmod %{kernel_release}
1247
1248%postun drm
1249%depmod %{kernel_release}
1250
1251%post pcmcia
1252%depmod %{kernel_release}
1253
1254%postun pcmcia
1255%depmod %{kernel_release}
1256
1257%post sound-alsa
1258%depmod %{kernel_release}
1259
1260%postun sound-alsa
1261%depmod %{kernel_release}
1262
1263%post sound-oss
1264%depmod %{kernel_release}
1265
1266%postun sound-oss
1267%depmod %{kernel_release}
1268
1269%post headers
1270ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1271
1272%postun headers
1273if [ "$1" = "0" ]; then
1274 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1275 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1276 rm -f %{_prefix}/src/linux%{_alt_kernel}
1277 fi
1278 fi
1279fi
1280
1281%triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1282ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1283ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1284
1285%triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1286if [ "$1" = 0 ]; then
1287 rm -f /lib/modules/%{kernel_release}/{build,source}
1288fi
1289
1290%files
1291%defattr(644,root,root,755)
1292%ifarch sparc sparc64
1293/boot/vmlinux.aout-%{kernel_release}
1294%endif
1295%ifarch ia64
1296/boot/efi/vmlinuz-%{kernel_release}
1297%endif
1298/boot/vmlinuz-%{kernel_release}
1299/boot/System.map-%{kernel_release}
1300%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1301/lib/firmware/%{kernel_release}
1302
1303%dir /lib/modules/%{kernel_release}
1304%dir /lib/modules/%{kernel_release}/kernel
1305/lib/modules/%{kernel_release}/kernel/arch
1306/lib/modules/%{kernel_release}/kernel/crypto
1307/lib/modules/%{kernel_release}/kernel/drivers
1308%if %{have_drm}
1309%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1310%endif
1311/lib/modules/%{kernel_release}/kernel/fs
1312/lib/modules/%{kernel_release}/kernel/kernel
1313/lib/modules/%{kernel_release}/kernel/lib
1314/lib/modules/%{kernel_release}/kernel/net
1315/lib/modules/%{kernel_release}/kernel/mm
1316%if %{have_sound}
1317%dir /lib/modules/%{kernel_release}/kernel/sound
1318/lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1319/lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1320%ifnarch sparc
1321%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1322%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1323%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1324%endif
1325%endif
1326%dir /lib/modules/%{kernel_release}/misc
1327%if %{have_pcmcia}
1328%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1329%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1330%exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1331%if %{without rescuecd}
1332%exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1333%exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1334%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1335%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1336%exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1337%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1338%endif
1339%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1340%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1341%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1342%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1343%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1344%exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1345%exclude /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1346%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1347%endif
1348%if %{with myown}
1349/lib/modules/%{kernel_release}/kernel/sound
1350%endif
1351%ghost /lib/modules/%{kernel_release}/modules.*
1352# symlinks pointing to kernelsrcdir
1353%ghost /lib/modules/%{kernel_release}/build
1354%ghost /lib/modules/%{kernel_release}/source
1355%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1356
1357%ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1358%files vmlinux
1359%defattr(644,root,root,755)
1360/boot/vmlinux-%{kernel_release}
1361%endif
1362
1363%if %{have_drm}
1364%files drm
1365%defattr(644,root,root,755)
1366/lib/modules/%{kernel_release}/kernel/drivers/gpu
1367%endif
1368
1369%if %{have_pcmcia}
1370%files pcmcia
1371%defattr(644,root,root,755)
1372/lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1373/lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1374%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1375%if %{without rescuecd}
1376/lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1377/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1378/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1379/lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1380%endif
1381/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1382/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1383/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1384/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1385/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1386/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1387/lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1388/lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1389/lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1390%endif
1391
1392%if %{have_sound}
1393%files sound-alsa
1394%defattr(644,root,root,755)
1395/lib/modules/%{kernel_release}/kernel/sound
1396%exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1397%exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1398%exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1399%if %{have_oss}
1400%exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1401%endif
1402%ifnarch sparc
1403/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1404/lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1405/lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1406/lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1407%endif
1408
1409%if %{have_oss}
1410%files sound-oss
1411%defattr(644,root,root,755)
1412/lib/modules/%{kernel_release}/kernel/sound/oss
1413%endif
1414%endif
1415
1416%files headers -f files.headers_exclude_kbuild
1417%defattr(644,root,root,755)
1418%dir %{_kernelsrcdir}
1419%{_kernelsrcdir}/include
1420%dir %{_kernelsrcdir}/arch
1421%dir %{_kernelsrcdir}/arch/[!K]*
1422%{_kernelsrcdir}/arch/*/include
1423%dir %{_kernelsrcdir}/security
1424%dir %{_kernelsrcdir}/security/selinux
1425%{_kernelsrcdir}/security/selinux/include
1426%{_kernelsrcdir}/config-dist
1427%{_kernelsrcdir}/Module.symvers-dist
1428
1429%files module-build -f files.mb_include_modulebuild_and_dirs
1430%defattr(644,root,root,755)
1431%ifarch ppc ppc64
1432%{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1433%endif
1434%exclude %dir %{_kernelsrcdir}/arch/m68knommu
1435%exclude %dir %{_kernelsrcdir}/arch/um
1436%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1437%{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1438%{_kernelsrcdir}/drivers/lguest/lg.h
1439%{_kernelsrcdir}/kernel/bounds.c
1440%dir %{_kernelsrcdir}/scripts
1441%{_kernelsrcdir}/scripts/Kbuild.include
1442%{_kernelsrcdir}/scripts/Makefile*
1443%{_kernelsrcdir}/scripts/basic
1444%{_kernelsrcdir}/scripts/kconfig
1445%{_kernelsrcdir}/scripts/mkcompile_h
1446%{_kernelsrcdir}/scripts/mkmakefile
1447%{_kernelsrcdir}/scripts/mod
1448%{_kernelsrcdir}/scripts/module-common.lds
1449%{_kernelsrcdir}/scripts/setlocalversion
1450%{_kernelsrcdir}/scripts/*.c
1451%{_kernelsrcdir}/scripts/*.sh
1452%dir %{_kernelsrcdir}/scripts/selinux
1453%{_kernelsrcdir}/scripts/selinux/Makefile
1454%dir %{_kernelsrcdir}/scripts/selinux/mdp
1455%{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1456%{_kernelsrcdir}/scripts/selinux/mdp/*.c
1457%exclude %dir %{_kernelsrcdir}/security
1458%exclude %dir %{_kernelsrcdir}/security/selinux
1459
1460%if %{with doc}
1461%files doc
1462%defattr(644,root,root,755)
1463%dir %{_docdir}/%{name}-%{version}
1464
1465%{_docdir}/%{name}-%{version}/[!jkz]*
1466%{_docdir}/%{name}-%{version}/[jkz]*.txt
1467%{_docdir}/%{name}-%{version}/kbuild
1468%{_docdir}/%{name}-%{version}/kdump
1469%{_docdir}/%{name}-%{version}/kvm
1470%lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1471%lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1472%lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1473%endif
1474
1475%if %{with source}
1476%files source -f files.source_exclude_modulebuild_and_dirs
1477%defattr(644,root,root,755)
1478%{_kernelsrcdir}/arch/*/[!Mik]*
1479%{_kernelsrcdir}/arch/*/kernel/[!M]*
1480%{_kernelsrcdir}/arch/ia64/ia32/[!M]*
1481%{_kernelsrcdir}/arch/ia64/install.sh
1482%{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1483%{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1484%{_kernelsrcdir}/arch/m68k/install.sh
1485%{_kernelsrcdir}/arch/parisc/install.sh
1486%{_kernelsrcdir}/arch/x86/ia32/[!M]*
1487%{_kernelsrcdir}/arch/ia64/kvm
1488%{_kernelsrcdir}/arch/powerpc/kvm
1489%ifarch ppc ppc64
1490%exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1491%endif
1492%{_kernelsrcdir}/arch/s390/kvm
1493%{_kernelsrcdir}/arch/x86/kvm
1494%exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1495%exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1496%exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1497%{_kernelsrcdir}/block
1498%{_kernelsrcdir}/crypto
1499%{_kernelsrcdir}/drivers
1500%{_kernelsrcdir}/firmware
1501%{_kernelsrcdir}/fs
1502%if %{with grsecurity} && %{without rescuecd}
1503%{_kernelsrcdir}/grsecurity
1504%endif
1505%{_kernelsrcdir}/init
1506%{_kernelsrcdir}/ipc
1507%{_kernelsrcdir}/kernel
1508%exclude %{_kernelsrcdir}/kernel/bounds.c
1509%{_kernelsrcdir}/lib
1510%{_kernelsrcdir}/mm
1511%{_kernelsrcdir}/net
1512%{_kernelsrcdir}/virt
1513%{_kernelsrcdir}/samples
1514%{_kernelsrcdir}/scripts/*
1515%exclude %{_kernelsrcdir}/scripts/Kbuild.include
1516%exclude %{_kernelsrcdir}/scripts/Makefile*
1517%exclude %{_kernelsrcdir}/scripts/basic
1518%exclude %{_kernelsrcdir}/scripts/kconfig
1519%exclude %{_kernelsrcdir}/scripts/mkcompile_h
1520%exclude %{_kernelsrcdir}/scripts/mkmakefile
1521%exclude %{_kernelsrcdir}/scripts/mod
1522%exclude %{_kernelsrcdir}/scripts/module-common.lds
1523%exclude %{_kernelsrcdir}/scripts/setlocalversion
1524%exclude %{_kernelsrcdir}/scripts/*.c
1525%exclude %{_kernelsrcdir}/scripts/*.sh
1526%exclude %dir %{_kernelsrcdir}/scripts/selinux
1527%exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1528%exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1529%exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1530%exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1531%{_kernelsrcdir}/sound
1532%{_kernelsrcdir}/security
1533%exclude %{_kernelsrcdir}/security/selinux/include
1534%{_kernelsrcdir}/tools
1535%{_kernelsrcdir}/usr
1536%{_kernelsrcdir}/COPYING
1537%{_kernelsrcdir}/CREDITS
1538%{_kernelsrcdir}/MAINTAINERS
1539%{_kernelsrcdir}/README
1540%{_kernelsrcdir}/REPORTING-BUGS
1541%endif
This page took 0.045829 seconds and 4 git commands to generate.