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