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