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