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