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