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