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