]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
cf9ed796ec6cf9e1841813eaa5af531071156d5d
[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 # use 64-bit offsets for fixdeps to work with 64-bit inodes
413 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
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.652
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-owner-xid.patch
678 %if %{with vserver}
679 %patch37 -p1
680 %endif
681
682 # kernel-layer7.patch
683 %patch40 -p1
684
685 ##
686 # end of netfilter
687
688 # zph
689 %patch49 -p1
690
691 %if %{with imq}
692 %patch50 -p1
693 %endif
694
695 # reiser4
696 %if %{with reiser4}
697 %patch51 -p1
698 %endif
699
700 # esfq
701 %if %{with esfq}
702 %patch53 -p1
703 %endif
704
705 %patch55 -p1
706 %patch56 -p1
707
708 # kernel-rndis_host-wm5.patch
709 %patch59 -p1
710
711 # hostap enhancements from/for aircrack-ng
712 %patch85 -p1
713
714 # vserver
715 %if %{with vserver}
716 %patch100 -p1
717 %patch101 -p1
718 %endif
719
720 # aufs3
721 %if %{with reiser4}
722 %patch148 -p1
723 %endif
724 %patch145 -p1
725 %patch146 -p1
726
727 # unionfs
728 %patch140 -p1
729
730 %if %{with rescuecd}
731 %patch7000 -p1
732 %endif
733
734 # grsecurity & pax stuff
735 #
736 %if %{with grsecurity}
737 exit 0
738 %patch9999 -p1
739 # aufs needs this
740 %patch147 -p1
741 %{?with_vserver:%patch10000 -p1}
742 %{?with_vserver:%patch10001 -p1}
743 %{?with_vserver:%patch10002 -p1}
744 %endif
745 #
746 # end of grsecurity & pax stuff
747
748 # apparmor
749 %patch5000 -p1
750
751 %patch250 -p1
752
753 # virtio-gl
754 %patch400 -p1
755
756 %endif # vanilla
757
758 # Small fixes:
759 %patch2000 -p1
760 %patch2001 -p1
761 #%patch2003 -p1
762
763 # Do not remove this, please!
764 #%patch50000 -p1
765
766 # Fix EXTRAVERSION in main Makefile
767 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
768
769 # cleanup backups after patching
770 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
771
772 %build
773 install -d %{objdir}
774 cat > %{targetobj}.mk <<'EOF'
775 # generated by %{name}.spec
776 KERNELSRC               := %{srcdir}
777 KERNELOUTPUT    := %{objdir}
778
779 SRCARCH         := %{target_arch_dir}
780 ARCH            := %{_target_base_arch}
781 Q                       := %{!?with_verbose:@}
782 MAKE_OPTS       := %{MakeOpts}
783 DEFCONFIG   := %{defconfig}
784 EOF
785
786 PaXconfig() {
787         set -x
788         cat <<-EOCONFIG > $1
789         %ifarch %{ix86}
790                 CONFIG_PAX_SEGMEXEC=y
791                 # performance impact on CPUs without NX bit
792                 CONFIG_PAX_PAGEEXEC=n
793                 # Testing KERNEXEC
794
795                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
796                 CONFIG_PCI_BIOS=n
797                 CONFIG_EFI=n
798         %endif
799
800         %ifarch ppc64
801                 CONFIG_PAX_NOELFRELOCS=n
802         %endif
803         %ifarch ppc
804                 CONFIG_PAX_EMUTRAMP=y
805                 CONFIG_PAX_EMUSIGRT=y
806                 CONFIG_PAX_EMUPLT=y
807         %endif
808
809         %ifarch sparc sparc64 alpha
810                 CONFIG_PAX_EMUPLT=y
811         %endif
812
813         # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
814         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
815         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
816         # PAX_HOOK_ACL_FLAGS.
817
818         %if %{with grsecurity}
819                 # Hardening grsec options if with pax
820                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
821                 # almost rational (see HIDESYM help)
822                 CONFIG_GRKERNSEC_HIDESYM=y
823
824                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
825         %else
826                 CONFIG_PAX_HAVE_ACL_FLAGS=n
827                 CONFIG_PAX_HOOK_ACL_FLAGS=y
828         %endif
829 EOCONFIG
830
831         return 0
832 }
833
834 RescueConfig() {
835         set -x
836         cat <<-EOCONFIG > $1
837                 # CONFIG_SOUND is not set
838                 # CONFIG_AUDIT is not set
839                 # CONFIG_TR is not set
840                 # CONFIG_BT is not set
841                 # CONFIG_VIDEO_DEV is not set
842                 # CONFIG_DVB_CORE is not set
843                 # CONFIG_HAMRADIO is not set
844                 # CONFIG_ARCNET is not set
845                 # CONFIG_FB is not set
846                 # CONFIG_DRM is not set
847                 # CONFIG_WATCHDOG is not set
848                 # CONFIG_INPUT_JOYSTICK is not set
849                 # CONFIG_DEBUG_KERNEL is not set
850                 # CONFIG_ISDN is not set
851                 # CONFIG_AGP is not set
852                 # CONFIG_SECURITY is not set
853                 # CONFIG_PARIDE is not set
854                 # CONFIG_CPU_FREQ is not set
855                 # CONFIG_GAMEPORT is not set
856                 # CONFIG_KVM is not set
857                 # CONFIG_PHONE is not set
858                 # CONFIG_STRICT_DEVMEM is not set
859                 # CONFIG_IMA is not set
860                 CONFIG_AUFS=y
861                 CONFIG_AUFS_FS=y
862                 CONFIG_AUFS_BR_RAMFS=y
863                 CONFIG_AUFS_RDU=y
864                 CONFIG_BLK_DEV_LOOP=y
865                 CONFIG_ISO9660_FS=y
866                 CONFIG_NLS_UTF8=y
867                 CONFIG_SQUASHFS=y
868 EOCONFIG
869
870         return 0
871 }
872
873 BuildConfig() {
874         %{?debug:set -x}
875         set -e
876
877         Config="kernel-%{target_arch_dir}.config"
878         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
879
880         # prepare local and important options
881         cat <<-EOCONFIG > important.config
882                 LOCALVERSION="-%{localversion}"
883
884 %if 0%{?debug:1}
885                 CONFIG_DEBUG_SLAB=y
886                 CONFIG_DEBUG_SLAB_LEAK=y
887                 CONFIG_DEBUG_PREEMPT=y
888                 CONFIG_RT_DEADLOCK_DETECT=y
889 %endif
890
891 %if %{without ipv6}
892                 CONFIG_IPV6=n
893 %endif
894
895 %ifarch i686 athlon pentium3 pentium4
896   %if %{with pae}
897                 CONFIG_HIGHMEM4G=n
898                 CONFIG_HIGHMEM64G=y
899                 CONFIG_X86_PAE=y
900                 CONFIG_NUMA=n
901   %endif
902 %endif
903
904 %if %{without pcmcia}
905                 CONFIG_PCMCIA=n
906 %endif
907
908 %if %{with fbcondecor}
909                 CONFIG_FB_S3=n
910                 CONFIG_FB_VT8623=n
911                 CONFIG_FB_ARK=n
912                 CONFIG_FB_TILEBLITTING=n
913                 CONFIG_FB_CON_DECOR=y
914 %endif
915
916 %if %{with nfsroot}
917                 CONFIG_NFS_FS=y
918                 CONFIG_ROOT_NFS=y
919 %endif
920
921 # Temporary disabled RELOCATABLE. Needed only on x86??
922 %if %{with pax} || %{with grsecurity}
923                 CONFIG_RELOCATABLE=n
924 %endif
925 EOCONFIG
926
927 %if %{with rescuecd}
928         RescueConfig rescue.config
929 %endif
930 %if %{with pax}
931         PaXconfig pax.config
932 %endif
933
934         # prepare kernel-style config file from multiple config files
935         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
936 %if %{with myown}
937                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
938 %endif
939                 important.config \
940 %if %{without vanilla}
941 %if %{with rescuecd}
942                 %{SOURCE58} \
943                 rescue.config \
944 %endif
945                 \
946 %if %{with pax}
947                 %{SOURCE45} \
948                 %{SOURCE49} \
949                 pax.config \
950 %else
951   %if %{with grsecurity}
952                 %{SOURCE45} \
953                 %{SOURCE50} \
954   %endif
955 %endif
956                 \
957 %if %{with reiser4}
958                 %{SOURCE56} \
959 %endif
960 %if %{with imq}
961                 %{SOURCE55} \
962 %endif
963 %if %{with vserver}
964                 %{SOURCE43} \
965 %endif
966                 %{SOURCE41} %{?0:patches} \
967 %endif
968                 %{SOURCE20} \
969                 $RPM_SOURCE_DIR/$Config
970 }
971
972 cd %{objdir}
973 install -d arch/%{target_arch_dir}
974 BuildConfig > %{defconfig}
975 ln -sf %{defconfig} .config
976 cd -
977
978 %{__make} \
979         TARGETOBJ=%{targetobj} \
980         %{?with_verbose:V=1} \
981         oldconfig
982
983 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
984
985 # build kernel
986 %{__make} \
987         TARGETOBJ=%{targetobj} \
988         %{?with_verbose:V=1} \
989         all
990
991 %install
992 rm -rf $RPM_BUILD_ROOT
993 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
994         -C %{objdir} \
995         %{?with_verbose:V=1} \
996         DEPMOD=%{DepMod} \
997         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
998         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
999         KERNELRELEASE=%{kernel_release}
1000
1001 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1002
1003 # create directories which may be missing, to simplyfy %files
1004 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1005
1006 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1007 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1008 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1009
1010 # no point embed content for %ghost files. empty them
1011 for a in \
1012         dep{,.bin} \
1013         alias{,.bin} \
1014         devname \
1015         softdep \
1016         symbols{,.bin} \
1017 ; do
1018         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1019         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1020 done
1021
1022 # /boot
1023 install -d $RPM_BUILD_ROOT/boot
1024 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1025 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
1026 %ifarch %{ix86} %{x8664}
1027         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1028         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1029 %endif
1030 %ifarch ppc ppc64
1031         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1032         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1033 %endif
1034 %ifarch ia64
1035         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1036         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1037         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1038 %endif
1039 %ifarch alpha sparc sparc64
1040         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1041         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1042         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1043         %ifarch sparc
1044                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1045                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1046         %endif
1047         %ifarch sparc64
1048                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1049                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1050         %endif
1051 %endif
1052 %ifarch arm
1053         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1054 %endif
1055
1056 # ghosted initrd
1057 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1058 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1059
1060 %if "%{_target_base_arch}" != "%{_host_base_arch}"
1061 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1062 %endif
1063
1064 # /etc/modrobe.d
1065 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1066
1067 install -d $RPM_BUILD_ROOT/etc/sysconfig
1068 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
1069
1070 # /usr/src/linux
1071 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1072
1073 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1074 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1075         l=l
1076         rm -f $RPM_BUILD_ROOT/COPYING
1077 fi
1078
1079 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1080 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1081 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1082 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1083 # copy arch/x86/include/generated
1084 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1085         cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1086         find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1087 done
1088
1089 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1090 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1091
1092 # collect module-build files and directories
1093 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1094 fileoutdir=$(pwd)
1095 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1096 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1097 cd -
1098
1099 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1100         ff=${f##%{objdir}/}
1101         if [ -x "$f" ]; then
1102                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1103         else
1104                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1105         fi
1106         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1107         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1108 done
1109
1110 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1111 install -d $RPM_BUILD_ROOT%{_docdir}
1112 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1113
1114 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1115 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1116 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1117 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1118
1119 %clean
1120 rm -rf $RPM_BUILD_ROOT
1121
1122 %preun
1123 if [ -x /sbin/new-kernel-pkg ]; then
1124         /sbin/new-kernel-pkg --remove %{kernel_release}
1125 fi
1126
1127 %post
1128 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1129 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1130 %ifarch ia64
1131         mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1132         ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1133 %if 0%{?alt_kernel:1}
1134         mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1135         ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1136 %endif
1137 %endif
1138         mv -f /boot/vmlinuz{,.old} 2> /dev/null
1139         mv -f /boot/System.map{,.old} 2> /dev/null
1140         ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1141         ln -sf System.map-%{kernel_release} /boot/System.map
1142 %if 0%{?alt_kernel:1}
1143         mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1144         mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1145         ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1146         ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1147 %endif
1148 fi
1149
1150 %depmod %{kernel_release}
1151
1152 %posttrans
1153 # use posttrans to generate initrd after all dependant module packages (-drm, etc) are installed
1154 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1155 initrd_file=""
1156 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1157         /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release} || :
1158         initrd_file="initrd-%{kernel_release}.gz"
1159 fi
1160
1161 # if dracut is present then generate full-featured initramfs
1162 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1163         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1164         [ -n "$initrd_file" ] || initrd_file="initramfs-%{kernel_release}.img"
1165 fi
1166
1167 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1168         mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1169         if [ -n "$initrd_file" ] ; then
1170             ln -sf "$initrd_file" %{initrd_dir}/initrd
1171         fi
1172 %if 0%{?alt_kernel:1}
1173         mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1174         if [ -n "$initrd_file" ] ; then
1175             ln -sf "$initrd_file" %{initrd_dir}/initrd%{_alt_kernel}
1176         fi
1177 %endif
1178 fi
1179
1180 # update boot loaders when old package files are gone from filesystem
1181 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1182         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1183                 /sbin/update-grub >/dev/null
1184         fi
1185 fi
1186 if [ -x /sbin/new-kernel-pkg ]; then
1187         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1188 fi
1189 if [ -x /sbin/rc-boot ]; then
1190         /sbin/rc-boot 1>&2 || :
1191 fi
1192 if [ -x /sbin/efi-boot-update ]; then
1193         /sbin/efi-boot-update --auto || :
1194 fi
1195
1196 %post vmlinux
1197 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1198 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1199         mv -f /boot/vmlinux{,.old} 2> /dev/null
1200         ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1201 %if 0%{?alt_kernel:1}
1202         mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1203         ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1204 %endif
1205 fi
1206
1207 %post drm
1208 %depmod %{kernel_release}
1209
1210 %postun drm
1211 %depmod %{kernel_release}
1212
1213 %post pcmcia
1214 %depmod %{kernel_release}
1215
1216 %postun pcmcia
1217 %depmod %{kernel_release}
1218
1219 %post sound-alsa
1220 %depmod %{kernel_release}
1221
1222 %postun sound-alsa
1223 %depmod %{kernel_release}
1224
1225 %post sound-oss
1226 %depmod %{kernel_release}
1227
1228 %postun sound-oss
1229 %depmod %{kernel_release}
1230
1231 %post headers
1232 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1233
1234 %postun headers
1235 if [ "$1" = "0" ]; then
1236         if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
1237                 if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
1238                         rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
1239                 fi
1240         fi
1241 fi
1242
1243 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1244 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1245 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1246
1247 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1248 if [ "$1" = 0 ]; then
1249         rm -f /lib/modules/%{kernel_release}/{build,source}
1250 fi
1251
1252 %files
1253 %defattr(644,root,root,755)
1254 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1255 %ifarch sparc sparc64
1256 /boot/vmlinux.aout-%{kernel_release}
1257 %endif
1258 %ifarch ia64
1259 /boot/efi/vmlinuz-%{kernel_release}
1260 %endif
1261 /boot/vmlinuz-%{kernel_release}
1262 /boot/System.map-%{kernel_release}
1263 /boot/config-%{kernel_release}
1264 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1265 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1266 /lib/firmware/%{kernel_release}
1267
1268 %dir /lib/modules/%{kernel_release}
1269 %dir /lib/modules/%{kernel_release}/kernel
1270 /lib/modules/%{kernel_release}/kernel/arch
1271 /lib/modules/%{kernel_release}/kernel/crypto
1272 /lib/modules/%{kernel_release}/kernel/drivers
1273 %if %{have_drm}
1274 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1275 %endif
1276 /lib/modules/%{kernel_release}/kernel/fs
1277 /lib/modules/%{kernel_release}/kernel/kernel
1278 /lib/modules/%{kernel_release}/kernel/lib
1279 /lib/modules/%{kernel_release}/kernel/net
1280 /lib/modules/%{kernel_release}/kernel/mm
1281 %if %{have_sound}
1282 %dir /lib/modules/%{kernel_release}/kernel/sound
1283 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1284 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1285 %ifnarch sparc
1286 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1287 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1288 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1289 %endif
1290 %endif
1291 %dir /lib/modules/%{kernel_release}/misc
1292 %if %{have_pcmcia}
1293 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1294 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1295 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1296 %if %{without rescuecd}
1297 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1298 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1299 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1300 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1301 %exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1302 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1303 %endif
1304 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1305 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1306 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1307 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1308 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1309 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1310 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1311 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1312 %endif
1313 %if %{with myown}
1314 /lib/modules/%{kernel_release}/kernel/sound
1315 %endif
1316 /lib/modules/%{kernel_release}/kernel/security
1317
1318 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1319
1320 # provided by build
1321 /lib/modules/%{kernel_release}/modules.order
1322 /lib/modules/%{kernel_release}/modules.builtin*
1323
1324 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1325 %ghost /lib/modules/%{kernel_release}/modules.alias
1326 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1327 %ghost /lib/modules/%{kernel_release}/modules.dep
1328 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1329 %ghost /lib/modules/%{kernel_release}/modules.devname
1330 %ghost /lib/modules/%{kernel_release}/modules.softdep
1331 %ghost /lib/modules/%{kernel_release}/modules.symbols
1332 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1333
1334 # symlinks pointing to kernelsrcdir
1335 %ghost /lib/modules/%{kernel_release}/build
1336 %ghost /lib/modules/%{kernel_release}/source
1337
1338 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1339 %files vmlinux
1340 %defattr(644,root,root,755)
1341 /boot/vmlinux-%{kernel_release}
1342 %endif
1343
1344 %if %{have_drm}
1345 %files drm
1346 %defattr(644,root,root,755)
1347 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1348 %endif
1349
1350 %if %{have_pcmcia}
1351 %files pcmcia
1352 %defattr(644,root,root,755)
1353 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1354 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1355 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1356 %if %{without rescuecd}
1357 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1358 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1359 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1360 /lib/modules/%{kernel_release}/kernel/drivers/staging/telephony/ixj_pcmcia.ko*
1361 %endif
1362 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1363 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1364 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1365 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1366 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1367 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1368 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1369 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1370 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1371 %endif
1372
1373 %if %{have_sound}
1374 %files sound-alsa
1375 %defattr(644,root,root,755)
1376 /lib/modules/%{kernel_release}/kernel/sound
1377 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1378 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1379 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1380 %if %{have_oss}
1381 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1382 %endif
1383 %ifnarch sparc
1384 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1385 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1386 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1387 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1388 %endif
1389
1390 %if %{have_oss}
1391 %files sound-oss
1392 %defattr(644,root,root,755)
1393 /lib/modules/%{kernel_release}/kernel/sound/oss
1394 %endif
1395 %endif
1396
1397 %files headers -f files.headers_exclude_kbuild
1398 %defattr(644,root,root,755)
1399 %dir %{_kernelsrcdir}
1400 %{_kernelsrcdir}/include
1401 %dir %{_kernelsrcdir}/arch
1402 %dir %{_kernelsrcdir}/arch/[!K]*
1403 %{_kernelsrcdir}/arch/*/include
1404 %dir %{_kernelsrcdir}/security
1405 %dir %{_kernelsrcdir}/security/selinux
1406 %{_kernelsrcdir}/security/selinux/include
1407 %{_kernelsrcdir}/.config
1408 %{_kernelsrcdir}/Module.symvers
1409
1410 %files module-build -f files.mb_include_modulebuild_and_dirs
1411 %defattr(644,root,root,755)
1412 %ifarch ppc ppc64
1413 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1414 %endif
1415 %exclude %dir %{_kernelsrcdir}/arch/um
1416 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1417 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1418 %{_kernelsrcdir}/drivers/lguest/lg.h
1419 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1420 %{_kernelsrcdir}/kernel/bounds.c
1421 %{_kernelsrcdir}/scripts/basic/*.c
1422 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1423 %{_kernelsrcdir}/scripts/kconfig/*.in
1424 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1425 %{_kernelsrcdir}/scripts/kconfig/*.pl
1426 %{_kernelsrcdir}/scripts/kconfig/*.glade
1427 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1428 %{_kernelsrcdir}/scripts/kconfig/*.cc
1429 %{_kernelsrcdir}/scripts/kconfig/*.y
1430 %{_kernelsrcdir}/scripts/kconfig/*.l
1431 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1432 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1433 %{_kernelsrcdir}/scripts/kconfig/l*.h
1434 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1435 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1436 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1437 %{_kernelsrcdir}/scripts/mod/*.c
1438 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1439 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1440 %{_kernelsrcdir}/scripts/mkmakefile
1441 %{_kernelsrcdir}/scripts/module-common.lds
1442 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1443 %{_kernelsrcdir}/scripts/*.c
1444 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1445 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1446 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1447 %exclude %dir %{_kernelsrcdir}/security
1448 %exclude %dir %{_kernelsrcdir}/security/selinux
1449 %if %{with grsecurity}
1450 %{_kernelsrcdir}/tools/gcc/*.c
1451 %endif
1452
1453 %if %{with doc}
1454 %files doc
1455 %defattr(644,root,root,755)
1456 %dir %{_docdir}/%{name}-%{version}
1457
1458 %{_docdir}/%{name}-%{version}/[!jkz]*
1459 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1460 %{_docdir}/%{name}-%{version}/kbuild
1461 %{_docdir}/%{name}-%{version}/kdump
1462 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1463 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1464 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1465 %endif
1466
1467 %if %{with source}
1468 %files source -f files.source_exclude_modulebuild_and_dirs
1469 %defattr(644,root,root,755)
1470 %{_kernelsrcdir}/arch/*/[!Mik]*
1471 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1472 %{_kernelsrcdir}/arch/ia64/install.sh
1473 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1474 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1475 %{_kernelsrcdir}/arch/m68k/install.sh
1476 %{_kernelsrcdir}/arch/parisc/install.sh
1477 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1478 %{_kernelsrcdir}/arch/ia64/kvm
1479 %{_kernelsrcdir}/arch/powerpc/kvm
1480 %ifarch ppc ppc64
1481 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1482 %endif
1483 %{_kernelsrcdir}/arch/s390/kvm
1484 %{_kernelsrcdir}/arch/x86/kvm
1485 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1486 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1487 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1488 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1489 %{_kernelsrcdir}/block
1490 %{_kernelsrcdir}/crypto
1491 %{_kernelsrcdir}/drivers
1492 %{_kernelsrcdir}/firmware
1493 %{_kernelsrcdir}/fs
1494 %if %{with grsecurity} && %{without rescuecd}
1495 %{_kernelsrcdir}/grsecurity
1496 %endif
1497 %{_kernelsrcdir}/init
1498 %{_kernelsrcdir}/ipc
1499 %{_kernelsrcdir}/kernel
1500 %exclude %{_kernelsrcdir}/kernel/bounds.c
1501 %{_kernelsrcdir}/lib
1502 %{_kernelsrcdir}/mm
1503 %{_kernelsrcdir}/net
1504 %{_kernelsrcdir}/virt
1505 %{_kernelsrcdir}/samples
1506 %{_kernelsrcdir}/scripts/*
1507 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1508 %exclude %{_kernelsrcdir}/scripts/Makefile*
1509 %exclude %{_kernelsrcdir}/scripts/basic
1510 %exclude %{_kernelsrcdir}/scripts/kconfig
1511 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1512 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1513 %exclude %{_kernelsrcdir}/scripts/mod
1514 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1515 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1516 %exclude %{_kernelsrcdir}/scripts/*.c
1517 %exclude %{_kernelsrcdir}/scripts/*.sh
1518 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1519 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1520 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1521 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1522 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1523 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1524 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1525 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1526 %{_kernelsrcdir}/sound
1527 %{_kernelsrcdir}/security
1528 %exclude %{_kernelsrcdir}/security/selinux/include
1529 %{_kernelsrcdir}/tools/*
1530 %if %{with grsecurity}
1531 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1532 %endif
1533 %{_kernelsrcdir}/usr
1534 %{_kernelsrcdir}/COPYING
1535 %{_kernelsrcdir}/CREDITS
1536 %{_kernelsrcdir}/MAINTAINERS
1537 %{_kernelsrcdir}/README
1538 %{_kernelsrcdir}/REPORTING-BUGS
1539 %endif
This page took 0.140961 seconds and 2 git commands to generate.