]> git.pld-linux.org Git - packages/kernel.git/blame - kernel.spec
- add linux/version.h compatibility symlink
[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
301ecb4a 69%define rel 2
537831f9 70%define basever 3.7
4bf69007 71%define postver .1
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
4bf69007 114# Patch0-md5: c391dc1a1b4dae81aaef6f08a0594813
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
e915af4e
AM
167Patch51: http://downloads.sourceforge.net/project/reiser4/reiser4-for-linux-3.x/reiser4-for-3.6.4.patch.gz
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
4bf69007 185# http://vserver.13thfloor.at/Experimental/patch-3.7.1-vs2.3.5.3.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
a5585a68
AM
560
561%description source
351f379b
JR
562This is the source code for the Linux kernel. You can build a custom
563kernel that is better tuned to your particular hardware.
a5585a68 564
3a467bc1
JR
565%description source -l de.UTF-8
566Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
a5585a68 567Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
351f379b 568C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
3a467bc1 569im Kernel-Source definiert sind. Die Source-Dateien können auch
351f379b 570benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
a5585a68
AM
571Hardware ausgerichtet ist.
572
3a467bc1 573%description source -l fr.UTF-8
a5585a68 574Le package pour le kernel-source contient le code source pour le noyau
3a467bc1
JR
575linux. Ces sources sont nécessaires pour compiler la plupart des
576programmes C, car il dépend de constantes définies dans le code
577source. Les sources peuvent être aussi utilisée pour compiler un noyau
578personnalisé pour avoir de meilleures performances sur des matériels
a5585a68
AM
579particuliers.
580
3a467bc1
JR
581%description source -l pl.UTF-8
582Pakiet zawiera kod źródłowy jądra systemu.
a5585a68
AM
583
584%package doc
585Summary: Kernel documentation
351f379b
JR
586Summary(de.UTF-8): Kernel Dokumentation
587Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
588Group: Documentation
07ff8614 589AutoReqProv: no
a5585a68
AM
590
591%description doc
592This is the documentation for the Linux kernel, as found in
593/usr/src/linux/Documentation directory.
594
351f379b
JR
595%description doc -l de.UTF-8
596Dies ist die Kernel Dokumentation wie sie im 'Documentation'
597Verzeichniss vorgefunden werden kann.
598
3a467bc1
JR
599%description doc -l pl.UTF-8
600Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
a5585a68
AM
601/usr/src/linux/Documentation.
602
603%prep
351f379b
JR
604%setup -qc
605ln -s %{SOURCE7} kernel-module-build.pl
606ln -s %{SOURCE10} Makefile
67d87e28 607cd linux-%{basever}
a5585a68 608
1c5b0f0a 609%if "%{postver}" != ".0"
c6897157 610%patch0 -p1
351f379b 611%endif
a5585a68 612
7141a3b6 613%if %{without vanilla}
614
351f379b
JR
615%if %{with fbcondecor}
616%patch3 -p1
a5585a68 617%endif
351f379b 618%patch4 -p1
1414594b 619%patch5 -p1
a5585a68 620
351f379b
JR
621## netfilter
622#
a5585a68 623
351f379b
JR
624# kernel-pom-ng-IPV4OPTSSTRIP.patch
625%patch10 -p1
a5585a68 626
351f379b
JR
627# kernel-owner-xid.patch
628%if %{with vserver}
629%patch37 -p1
a5585a68 630%endif
a5585a68 631
351f379b
JR
632# kernel-layer7.patch
633%patch40 -p1
634
351f379b
JR
635##
636# end of netfilter
637
638# zph
639%patch49 -p1
640
641%if %{with imq}
642%patch50 -p1
a5585a68 643%endif
351f379b
JR
644
645# reiser4
646%if %{with reiser4}
647%patch51 -p1
a5585a68 648%endif
351f379b 649
351f379b 650# esfq
068b6c82
AM
651%if %{with esfq}
652%patch53 -p1
653%endif
351f379b 654
351f379b
JR
655%patch55 -p1
656%patch56 -p1
657
351f379b
JR
658# kernel-rndis_host-wm5.patch
659%patch59 -p1
660
661# hostap enhancements from/for aircrack-ng
662%patch85 -p1
663
351f379b
JR
664# vserver
665%if %{with vserver}
666%patch100 -p1
667%patch101 -p1
a5585a68 668%endif
351f379b 669
68184a5a
JR
670%patch110 -p1
671%patch111 -p1
672%patch112 -p1
673%patch113 -p1
674%patch114 -p1
675%patch115 -p1
676%patch116 -p1
677%patch117 -p1
678%patch118 -p1
679%patch119 -p1
680%patch120 -p1
681%patch121 -p1
682%patch122 -p1
683
7ce627cf 684# aufs3
20493b41 685%patch145 -p1
a5585a68 686
351f379b
JR
687%if %{with rescuecd}
688%patch7000 -p1
e981df17 689%endif
a5585a68 690
df4db69a 691# apparmor
df4db69a 692%patch5000 -p1
df4db69a 693
54fd642e 694%patch250 -p1
695
31f62932
AM
696# virtio-gl
697%patch400 -p1
698
7141a3b6 699%endif # vanilla
700
351f379b 701# Small fixes:
08aa9d92 702%patch2000 -p1
351f379b
JR
703%patch2001 -p1
704#%patch2003 -p1
a5585a68 705
73cc1c57 706# Do not remove this, please!
5d3a3ea2 707#%%patch50000 -p1
73cc1c57 708
351f379b 709# Fix EXTRAVERSION in main Makefile
7a8dfe5c 710sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
a5585a68 711
351f379b
JR
712# cleanup backups after patching
713find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
a5585a68 714
351f379b
JR
715%build
716install -d %{objdir}
717cat > %{targetobj}.mk <<'EOF'
718# generated by %{name}.spec
d85d4a9b 719KERNELSRC := %{srcdir}
351f379b
JR
720KERNELOUTPUT := %{objdir}
721
722SRCARCH := %{target_arch_dir}
723ARCH := %{_target_base_arch}
724Q := %{!?with_verbose:@}
725MAKE_OPTS := %{MakeOpts}
726DEFCONFIG := %{defconfig}
727EOF
a5585a68 728
351f379b
JR
729RescueConfig() {
730 set -x
731 cat <<-EOCONFIG > $1
732 # CONFIG_SOUND is not set
733 # CONFIG_AUDIT is not set
734 # CONFIG_TR is not set
735 # CONFIG_BT is not set
736 # CONFIG_VIDEO_DEV is not set
737 # CONFIG_DVB_CORE is not set
738 # CONFIG_HAMRADIO is not set
739 # CONFIG_ARCNET is not set
740 # CONFIG_FB is not set
741 # CONFIG_DRM is not set
742 # CONFIG_WATCHDOG is not set
743 # CONFIG_INPUT_JOYSTICK is not set
744 # CONFIG_DEBUG_KERNEL is not set
745 # CONFIG_ISDN is not set
746 # CONFIG_AGP is not set
747 # CONFIG_SECURITY is not set
748 # CONFIG_PARIDE is not set
749 # CONFIG_CPU_FREQ is not set
750 # CONFIG_GAMEPORT is not set
751 # CONFIG_KVM is not set
752 # CONFIG_PHONE is not set
dd55897d 753 # CONFIG_STRICT_DEVMEM is not set
6bab3a31 754 # CONFIG_IMA is not set
351f379b 755 CONFIG_AUFS=y
a899ef35 756 CONFIG_AUFS_FS=y
757 CONFIG_AUFS_BR_RAMFS=y
62fff140 758 CONFIG_AUFS_RDU=y
351f379b
JR
759 CONFIG_BLK_DEV_LOOP=y
760 CONFIG_ISO9660_FS=y
761 CONFIG_NLS_UTF8=y
6b79006d 762 CONFIG_SQUASHFS=y
351f379b
JR
763EOCONFIG
764
765 return 0
766}
a5585a68 767
351f379b
JR
768BuildConfig() {
769 %{?debug:set -x}
770 set -e
a5585a68 771
351f379b
JR
772 Config="kernel-%{target_arch_dir}.config"
773 echo >&2 "Building config file for %{_target_cpu} using $Config et al."
a5585a68 774
351f379b
JR
775 # prepare local and important options
776 cat <<-EOCONFIG > important.config
777 LOCALVERSION="-%{localversion}"
fb4e3822 778
351f379b
JR
779%if 0%{?debug:1}
780 CONFIG_DEBUG_SLAB=y
781 CONFIG_DEBUG_SLAB_LEAK=y
782 CONFIG_DEBUG_PREEMPT=y
783 CONFIG_RT_DEADLOCK_DETECT=y
a5585a68 784%endif
351f379b 785
351f379b
JR
786%if %{without ipv6}
787 CONFIG_IPV6=n
788%endif
a5585a68 789
351f379b
JR
790%ifarch i686 athlon pentium3 pentium4
791 %if %{with pae}
792 CONFIG_HIGHMEM4G=n
793 CONFIG_HIGHMEM64G=y
794 CONFIG_X86_PAE=y
7c99a84b 795 CONFIG_NUMA=n
351f379b
JR
796 %endif
797%endif
a5585a68 798
351f379b
JR
799%if %{without pcmcia}
800 CONFIG_PCMCIA=n
801%endif
a5585a68 802
351f379b
JR
803%if %{with fbcondecor}
804 CONFIG_FB_S3=n
805 CONFIG_FB_VT8623=n
806 CONFIG_FB_ARK=n
807 CONFIG_FB_TILEBLITTING=n
808 CONFIG_FB_CON_DECOR=y
809%endif
a5585a68 810
351f379b
JR
811%if %{with nfsroot}
812 CONFIG_NFS_FS=y
813 CONFIG_ROOT_NFS=y
814%endif
351f379b 815EOCONFIG
a5585a68 816
351f379b
JR
817%if %{with rescuecd}
818 RescueConfig rescue.config
351f379b 819%endif
351f379b
JR
820 # prepare kernel-style config file from multiple config files
821 %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
101ae904 822%if %{with myown}
823 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
824%endif
351f379b 825 important.config \
7141a3b6 826%if %{without vanilla}
351f379b
JR
827%if %{with rescuecd}
828 %{SOURCE58} \
351f379b
JR
829 rescue.config \
830%endif
831 \
351f379b
JR
832%if %{with reiser4}
833 %{SOURCE56} \
834%endif
351f379b
JR
835%if %{with imq}
836 %{SOURCE55} \
837%endif
838%if %{with vserver}
839 %{SOURCE43} \
351f379b 840%endif
351f379b 841 %{SOURCE41} %{?0:patches} \
7141a3b6 842%endif
351f379b
JR
843 %{SOURCE20} \
844 $RPM_SOURCE_DIR/$Config
845}
a5585a68 846
351f379b
JR
847cd %{objdir}
848install -d arch/%{target_arch_dir}
351f379b 849BuildConfig > %{defconfig}
351f379b
JR
850ln -sf %{defconfig} .config
851cd -
a5585a68 852
7856c5e8
AM
853%{__make} \
854 TARGETOBJ=%{targetobj} \
855 %{?with_verbose:V=1} \
856 oldconfig
a5585a68 857
351f379b 858%{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
a5585a68 859
351f379b 860# build kernel
7856c5e8
AM
861%{__make} \
862 TARGETOBJ=%{targetobj} \
863 %{?with_verbose:V=1} \
864 all
a5585a68 865
351f379b
JR
866%install
867rm -rf $RPM_BUILD_ROOT
4505b6c5 868%{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
351f379b
JR
869 -C %{objdir} \
870 %{?with_verbose:V=1} \
871 DEPMOD=%{DepMod} \
872 INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
873 INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
874 KERNELRELEASE=%{kernel_release}
875
876install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
877
101ae904 878# create directories which may be missing, to simplyfy %files
64d14572 879install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
101ae904 880
351f379b
JR
881# rpm obeys filelinkto checks for ghosted symlinks, convert to files
882rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
883touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
884
6d54bd67
ER
885# no point embed content for %ghost files. empty them
886for a in \
887 dep{,.bin} \
888 alias{,.bin} \
8ee3ac38
AM
889 devname \
890 softdep \
6d54bd67 891 symbols{,.bin} \
6d54bd67 892; do
09e63f4a 893 test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
6d54bd67
ER
894 > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
895done
896
351f379b
JR
897# /boot
898install -d $RPM_BUILD_ROOT/boot
899cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
900%ifarch %{ix86} %{x8664}
1db9a2c1
ER
901 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
902 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
351f379b
JR
903%endif
904%ifarch ppc ppc64
1db9a2c1
ER
905 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
906 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
a5585a68 907%endif
a5585a68 908%ifarch ia64
1db9a2c1
ER
909 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
910 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
911 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
351f379b
JR
912%endif
913%ifarch alpha sparc sparc64
914 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
915 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1db9a2c1
ER
916 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
917 %ifarch sparc
918 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
919 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
920 %endif
921 %ifarch sparc64
922 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
923 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
924 %endif
351f379b
JR
925%endif
926%ifarch arm
1db9a2c1 927 install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
a5585a68 928%endif
a5585a68 929
351f379b
JR
930# ghosted initrd
931touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1a30aaa8 932touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
a5585a68 933
7b6fa769 934%if "%{_target_base_arch}" != "%{_host_base_arch}"
351f379b
JR
935touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
936%endif
a5585a68 937
351f379b
JR
938# /etc/modrobe.d
939install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
a5585a68 940
351f379b 941# /usr/src/linux
82833fcc
AM
942install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
943
351f379b
JR
944# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
945if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
946 l=l
947 rm -f $RPM_BUILD_ROOT/COPYING
a5585a68 948fi
a5585a68 949
351f379b 950cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
29564a2e
JR
951cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
952cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
953cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
c122bff4
AM
954# copy arch/x86/include/generated
955for dir in $(cd %{objdir} && find arch -name generated -type d); do
956 cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
957 find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
958done
351f379b 959
301ecb4a
JR
960# version.h location changed in 3.7, but a lot of external modules don't know about it
961# add a compatibility symlink
962ln -s %{_kernelsrcdir}/include/generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
963
4217a9ad
JR
964# disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
965%{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
966
351f379b
JR
967# collect module-build files and directories
968# Usage: kernel-module-build.pl $rpmdir $fileoutdir
969fileoutdir=$(pwd)
970cd $RPM_BUILD_ROOT%{_kernelsrcdir}
971%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
972cd -
973
29564a2e
JR
974for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
975 ff=${f##%{objdir}/}
976 if [ -x "$f" ]; then
977 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
978 else
979 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
980 fi
981 echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
982 cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
983done
984
30f08736
ER
985# move to %{_docdir} so we wouldn't depend on any kernel package for dirs
986install -d $RPM_BUILD_ROOT%{_docdir}
987mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
988
d3a69071
ER
989rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
990rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
991rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
992rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
993
351f379b
JR
994%clean
995rm -rf $RPM_BUILD_ROOT
996
997%preun
998if [ -x /sbin/new-kernel-pkg ]; then
999 /sbin/new-kernel-pkg --remove %{kernel_release}
a5585a68 1000fi
351f379b
JR
1001
1002%post
1003%ifarch ia64
1004mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1fb73fcf 1005%{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
351f379b 1006ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1fb73fcf 1007%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
351f379b
JR
1008%endif
1009mv -f /boot/vmlinuz{,.old} 2> /dev/null
1fb73fcf 1010%{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
351f379b 1011mv -f /boot/System.map{,.old} 2> /dev/null
1fb73fcf 1012%{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
351f379b 1013ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1fb73fcf 1014%{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
351f379b 1015ln -sf System.map-%{kernel_release} /boot/System.map
1fb73fcf 1016%{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
351f379b
JR
1017
1018%depmod %{kernel_release}
1019
4dabe329
ER
1020%posttrans
1021# generate initrd after all dependant modules are installed
85518b78 1022/sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
351f379b 1023mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1fb73fcf 1024%{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
351f379b 1025ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1fb73fcf 1026%{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
351f379b 1027
54f0effc
JR
1028# if dracut is present then generate full-featured initramfs
1029if [ -x /sbin/dracut ]; then
c9fe0f6a 1030 /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
54f0effc
JR
1031fi
1032
4dabe329 1033# update boot loaders when old package files are gone from filesystem
c5de1ad5 1034if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
4dabe329
ER
1035 if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1036 /sbin/update-grub >/dev/null
c5de1ad5
ER
1037 fi
1038fi
351f379b
JR
1039if [ -x /sbin/new-kernel-pkg ]; then
1040 /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
1041fi
1042if [ -x /sbin/rc-boot ]; then
351f379b 1043 /sbin/rc-boot 1>&2 || :
a5585a68 1044fi
a5585a68 1045
351f379b
JR
1046%post vmlinux
1047mv -f /boot/vmlinux{,.old} 2> /dev/null
1048%{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1049ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1050%{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1051
351f379b
JR
1052%post drm
1053%depmod %{kernel_release}
a5585a68 1054
351f379b
JR
1055%postun drm
1056%depmod %{kernel_release}
a5585a68 1057
351f379b
JR
1058%post pcmcia
1059%depmod %{kernel_release}
a5585a68 1060
351f379b
JR
1061%postun pcmcia
1062%depmod %{kernel_release}
a5585a68 1063
351f379b
JR
1064%post sound-alsa
1065%depmod %{kernel_release}
a5585a68 1066
351f379b
JR
1067%postun sound-alsa
1068%depmod %{kernel_release}
a5585a68 1069
351f379b
JR
1070%post sound-oss
1071%depmod %{kernel_release}
a5585a68 1072
351f379b
JR
1073%postun sound-oss
1074%depmod %{kernel_release}
a5585a68
AM
1075
1076%post headers
1fb73fcf 1077ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
a5585a68
AM
1078
1079%postun headers
351f379b 1080if [ "$1" = "0" ]; then
1fb73fcf
ER
1081 if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1082 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1083 rm -f %{_prefix}/src/linux%{_alt_kernel}
a5585a68
AM
1084 fi
1085 fi
1086fi
1087
351f379b
JR
1088%triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1089ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1090ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1091
1092%triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1093if [ "$1" = 0 ]; then
1094 rm -f /lib/modules/%{kernel_release}/{build,source}
1095fi
1096
a5585a68
AM
1097%files
1098%defattr(644,root,root,755)
a5585a68 1099%ifarch sparc sparc64
351f379b 1100/boot/vmlinux.aout-%{kernel_release}
a5585a68
AM
1101%endif
1102%ifarch ia64
351f379b
JR
1103/boot/efi/vmlinuz-%{kernel_release}
1104%endif
1105/boot/vmlinuz-%{kernel_release}
1106/boot/System.map-%{kernel_release}
1107%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1a30aaa8 1108%ghost %{initrd_dir}/initramfs-%{kernel_release}.img
ae1c66e5 1109/lib/firmware/%{kernel_release}
351f379b
JR
1110
1111%dir /lib/modules/%{kernel_release}
1112%dir /lib/modules/%{kernel_release}/kernel
351f379b 1113/lib/modules/%{kernel_release}/kernel/arch
351f379b
JR
1114/lib/modules/%{kernel_release}/kernel/crypto
1115/lib/modules/%{kernel_release}/kernel/drivers
101ae904 1116%if %{have_drm}
351f379b
JR
1117%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1118%endif
1119/lib/modules/%{kernel_release}/kernel/fs
351f379b 1120/lib/modules/%{kernel_release}/kernel/kernel
351f379b
JR
1121/lib/modules/%{kernel_release}/kernel/lib
1122/lib/modules/%{kernel_release}/kernel/net
fecce547 1123/lib/modules/%{kernel_release}/kernel/mm
101ae904 1124%if %{have_sound}
351f379b
JR
1125%dir /lib/modules/%{kernel_release}/kernel/sound
1126/lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1127/lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1128%ifnarch sparc
2ba6f0dd
AM
1129%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1130%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1131%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
351f379b
JR
1132%endif
1133%endif
1134%dir /lib/modules/%{kernel_release}/misc
101ae904 1135%if %{have_pcmcia}
351f379b
JR
1136%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1137%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1138%exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1139%if %{without rescuecd}
1140%exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1141%exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1142%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1143%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
92d182d2 1144%exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
351f379b
JR
1145%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1146%endif
1147%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1148%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1149%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1150%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1151%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1152%exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
7eafdf33 1153%exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
351f379b
JR
1154%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1155%endif
101ae904 1156%if %{with myown}
1157/lib/modules/%{kernel_release}/kernel/sound
1158%endif
30812fb8 1159/lib/modules/%{kernel_release}/kernel/security
6d54bd67
ER
1160
1161%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1162
1163# provided by build
1164/lib/modules/%{kernel_release}/modules.order
8ee3ac38 1165/lib/modules/%{kernel_release}/modules.builtin*
6d54bd67
ER
1166
1167# rest modules.* are ghost (regenerated by post depmod -a invocation)
1168%ghost /lib/modules/%{kernel_release}/modules.alias
1169%ghost /lib/modules/%{kernel_release}/modules.alias.bin
6d54bd67
ER
1170%ghost /lib/modules/%{kernel_release}/modules.dep
1171%ghost /lib/modules/%{kernel_release}/modules.dep.bin
8ee3ac38 1172%ghost /lib/modules/%{kernel_release}/modules.devname
8ee3ac38 1173%ghost /lib/modules/%{kernel_release}/modules.softdep
6d54bd67
ER
1174%ghost /lib/modules/%{kernel_release}/modules.symbols
1175%ghost /lib/modules/%{kernel_release}/modules.symbols.bin
6d54bd67 1176
351f379b
JR
1177# symlinks pointing to kernelsrcdir
1178%ghost /lib/modules/%{kernel_release}/build
1179%ghost /lib/modules/%{kernel_release}/source
351f379b 1180
351f379b
JR
1181%ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1182%files vmlinux
a5585a68 1183%defattr(644,root,root,755)
351f379b 1184/boot/vmlinux-%{kernel_release}
a5585a68
AM
1185%endif
1186
101ae904 1187%if %{have_drm}
351f379b 1188%files drm
a5585a68 1189%defattr(644,root,root,755)
351f379b 1190/lib/modules/%{kernel_release}/kernel/drivers/gpu
a5585a68
AM
1191%endif
1192
101ae904 1193%if %{have_pcmcia}
351f379b 1194%files pcmcia
a5585a68 1195%defattr(644,root,root,755)
351f379b
JR
1196/lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1197/lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1198%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1199%if %{without rescuecd}
1200/lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1201/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1202/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
92d182d2 1203/lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
351f379b
JR
1204%endif
1205/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1206/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1207/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1208/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1209/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1210/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1211/lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
7eafdf33 1212/lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
351f379b
JR
1213/lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1214%endif
1215
101ae904 1216%if %{have_sound}
351f379b 1217%files sound-alsa
a5585a68 1218%defattr(644,root,root,755)
351f379b
JR
1219/lib/modules/%{kernel_release}/kernel/sound
1220%exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1221%exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1222%exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1223%if %{have_oss}
1224%exclude /lib/modules/%{kernel_release}/kernel/sound/oss
a5585a68 1225%endif
351f379b
JR
1226%ifnarch sparc
1227/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
2ba6f0dd
AM
1228/lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1229/lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1230/lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
a5585a68
AM
1231%endif
1232
101ae904 1233%if %{have_oss}
351f379b 1234%files sound-oss
a5585a68 1235%defattr(644,root,root,755)
351f379b 1236/lib/modules/%{kernel_release}/kernel/sound/oss
a5585a68 1237%endif
a5585a68
AM
1238%endif
1239
fecce547 1240%files headers -f files.headers_exclude_kbuild
a5585a68 1241%defattr(644,root,root,755)
30f08736 1242%dir %{_kernelsrcdir}
351f379b
JR
1243%{_kernelsrcdir}/include
1244%dir %{_kernelsrcdir}/arch
1245%dir %{_kernelsrcdir}/arch/[!K]*
1246%{_kernelsrcdir}/arch/*/include
1247%dir %{_kernelsrcdir}/security
1248%dir %{_kernelsrcdir}/security/selinux
1249%{_kernelsrcdir}/security/selinux/include
29564a2e
JR
1250%{_kernelsrcdir}/.config
1251%{_kernelsrcdir}/Module.symvers
351f379b 1252
fecce547 1253%files module-build -f files.mb_include_modulebuild_and_dirs
a5585a68 1254%defattr(644,root,root,755)
351f379b
JR
1255%ifarch ppc ppc64
1256%{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1257%endif
fecce547 1258%exclude %dir %{_kernelsrcdir}/arch/um
351f379b
JR
1259%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1260%{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1261%{_kernelsrcdir}/drivers/lguest/lg.h
2ba6f0dd 1262%{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
351f379b 1263%{_kernelsrcdir}/kernel/bounds.c
4217a9ad
JR
1264%{_kernelsrcdir}/scripts/basic/*.c
1265%attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1266%{_kernelsrcdir}/scripts/kconfig/*.in
1267%{_kernelsrcdir}/scripts/kconfig/*_shipped
1268%{_kernelsrcdir}/scripts/kconfig/*.pl
1269%{_kernelsrcdir}/scripts/kconfig/*.glade
1270%{_kernelsrcdir}/scripts/kconfig/*.gperf
1271%{_kernelsrcdir}/scripts/kconfig/*.cc
1272%{_kernelsrcdir}/scripts/kconfig/*.y
1273%{_kernelsrcdir}/scripts/kconfig/*.l
1274%{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1275%{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1276%{_kernelsrcdir}/scripts/kconfig/l*.h
1277%{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1278%{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1279%{_kernelsrcdir}/scripts/kconfig/lxdialog
1280%{_kernelsrcdir}/scripts/mod/*.c
1281%{_kernelsrcdir}/scripts/mod/[^e]*.h
29564a2e 1282%attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
351f379b 1283%{_kernelsrcdir}/scripts/mkmakefile
960d2e94 1284%{_kernelsrcdir}/scripts/module-common.lds
29564a2e 1285%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
351f379b 1286%{_kernelsrcdir}/scripts/*.c
29564a2e 1287%attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
9d6d5869 1288%{_kernelsrcdir}/scripts/selinux/genheaders/*.c
c78e408d 1289%{_kernelsrcdir}/scripts/selinux/mdp/*.c
fecce547 1290%exclude %dir %{_kernelsrcdir}/security
1291%exclude %dir %{_kernelsrcdir}/security/selinux
a5585a68 1292
1848fd38 1293%if %{with doc}
a5585a68
AM
1294%files doc
1295%defattr(644,root,root,755)
d3a69071
ER
1296%dir %{_docdir}/%{name}-%{version}
1297
1298%{_docdir}/%{name}-%{version}/[!jkz]*
1299%{_docdir}/%{name}-%{version}/[jkz]*.txt
1300%{_docdir}/%{name}-%{version}/kbuild
1301%{_docdir}/%{name}-%{version}/kdump
1302%lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1303%lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1304%lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1848fd38 1305%endif
a5585a68
AM
1306
1307%if %{with source}
fecce547 1308%files source -f files.source_exclude_modulebuild_and_dirs
a5585a68 1309%defattr(644,root,root,755)
351f379b
JR
1310%{_kernelsrcdir}/arch/*/[!Mik]*
1311%{_kernelsrcdir}/arch/*/kernel/[!M]*
351f379b
JR
1312%{_kernelsrcdir}/arch/ia64/install.sh
1313%{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1314%{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
fecce547 1315%{_kernelsrcdir}/arch/m68k/install.sh
351f379b
JR
1316%{_kernelsrcdir}/arch/parisc/install.sh
1317%{_kernelsrcdir}/arch/x86/ia32/[!M]*
1318%{_kernelsrcdir}/arch/ia64/kvm
1319%{_kernelsrcdir}/arch/powerpc/kvm
1320%ifarch ppc ppc64
1321%exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1322%endif
1323%{_kernelsrcdir}/arch/s390/kvm
1324%{_kernelsrcdir}/arch/x86/kvm
1325%exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1326%exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1327%exclude %{_kernelsrcdir}/drivers/lguest/lg.h
2ba6f0dd 1328%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
351f379b
JR
1329%{_kernelsrcdir}/block
1330%{_kernelsrcdir}/crypto
1331%{_kernelsrcdir}/drivers
1332%{_kernelsrcdir}/firmware
1333%{_kernelsrcdir}/fs
351f379b
JR
1334%{_kernelsrcdir}/init
1335%{_kernelsrcdir}/ipc
1336%{_kernelsrcdir}/kernel
1337%exclude %{_kernelsrcdir}/kernel/bounds.c
1338%{_kernelsrcdir}/lib
1339%{_kernelsrcdir}/mm
1340%{_kernelsrcdir}/net
1341%{_kernelsrcdir}/virt
1342%{_kernelsrcdir}/samples
1343%{_kernelsrcdir}/scripts/*
1344%exclude %{_kernelsrcdir}/scripts/Kbuild.include
1345%exclude %{_kernelsrcdir}/scripts/Makefile*
1346%exclude %{_kernelsrcdir}/scripts/basic
1347%exclude %{_kernelsrcdir}/scripts/kconfig
960d2e94 1348%exclude %{_kernelsrcdir}/scripts/mkcompile_h
351f379b
JR
1349%exclude %{_kernelsrcdir}/scripts/mkmakefile
1350%exclude %{_kernelsrcdir}/scripts/mod
960d2e94 1351%exclude %{_kernelsrcdir}/scripts/module-common.lds
351f379b
JR
1352%exclude %{_kernelsrcdir}/scripts/setlocalversion
1353%exclude %{_kernelsrcdir}/scripts/*.c
1354%exclude %{_kernelsrcdir}/scripts/*.sh
960d2e94 1355%exclude %dir %{_kernelsrcdir}/scripts/selinux
1356%exclude %{_kernelsrcdir}/scripts/selinux/Makefile
c78e408d
PZ
1357%exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1358%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1359%exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
960d2e94 1360%exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1361%exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1362%exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
351f379b
JR
1363%{_kernelsrcdir}/sound
1364%{_kernelsrcdir}/security
1365%exclude %{_kernelsrcdir}/security/selinux/include
94a92871 1366%{_kernelsrcdir}/tools/*
351f379b
JR
1367%{_kernelsrcdir}/usr
1368%{_kernelsrcdir}/COPYING
1369%{_kernelsrcdir}/CREDITS
1370%{_kernelsrcdir}/MAINTAINERS
1371%{_kernelsrcdir}/README
1372%{_kernelsrcdir}/REPORTING-BUGS
a5585a68 1373%endif
This page took 0.368002 seconds and 4 git commands to generate.