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