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