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