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