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