]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- up to 3.3.3
[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.3
94 %define         postver         .3
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:  7133f5a2086a7d7ef97abac610c094f5
135 %if "%{postver}" != ".0"
136 Patch0:         http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
137 # Patch0-md5:   5f05cdc9be1bdacdcae0d397e04ceba6
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.3.1-vs2.3.3.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.2.2.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 # 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch
248 # 0002-AppArmor-compatibility-patch-for-v5-interface.patch
249 # from http://kernel.org/pub/linux/security/apparmor/apparmor-2.6.36-patches.tgz
250 Patch5000:      kernel-apparmor.patch
251
252 # for rescuecd
253 # based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
254 Patch7000:      kernel-inittmpfs.patch
255
256 # based on http://grsecurity.net/~spender/grsecurity-2.2.2-3.1.1-201111181902.patch
257 # NOTE: put raw upstream patches on kernel-grsec_full.patch:GRSECURITY_RAW for reference
258 #       (since upstream deletes older patches)
259 # NOTE: mirror of old grsecurity patches:
260 #       https://github.com/slashbeast/grsecurity-scrape/tree/master/test
261 Patch9999:      kernel-grsec_full.patch
262 Patch10000:     kernel-grsec-caps.patch
263 Patch10001:     kernel-grsec-common.patch
264 Patch10002:     kernel-grsec_fixes.patch
265
266 # Do not remove this line, please. It is easier for me to uncomment two lines, then patch
267 # kernel.spec every time.
268 #Patch50000:    kernel-usb_reset.patch
269
270 URL:            http://www.kernel.org/
271 BuildRequires:  binutils >= 3:2.18
272 %ifarch sparc sparc64
273 BuildRequires:  elftoaout
274 %endif
275 %ifarch ppc
276 BuildRequires:  uboot-mkimage
277 %endif
278 BuildRequires:  /sbin/depmod
279 BuildRequires:  gcc >= 5:3.2
280 BuildRequires:  xz >= 1:4.999.7
281 AutoReqProv:    no
282 BuildRequires:  hostname
283 BuildRequires:  virtual(module-tools)
284 BuildRequires:  perl-base
285 BuildRequires:  rpm-build >= 4.5-24
286 BuildRequires:  rpmbuild(macros) >= 1.217
287 Requires(post): coreutils
288 Requires(post): geninitrd >= 10000-3
289 Requires(post): virtual(module-tools)
290 Requires:       /sbin/depmod
291 Requires:       coreutils
292 Requires:       geninitrd >= 10000-3
293 Requires:       virtual(module-tools)
294 %if %{with pae}
295 %ifarch i686 athlon pentium3 pentium4
296 Requires:       cpuinfo(pae)
297 %endif
298 %endif
299 Suggests:       dracut
300 Suggests:       keyutils
301 Suggests:       linux-firmware
302 Provides:       %{name}(netfilter) = 20070806
303 Provides:       %{name}(vermagic) = %{kernel_release}
304 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ene0100
305 Obsoletes:      kernel%{_alt_kernel}-char-lirc-it87
306 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ite8709
307 Obsoletes:      kernel%{_alt_kernel}-char-lirc-mceusb
308 Obsoletes:      kernel%{_alt_kernel}-char-lirc-streamzap
309 Obsoletes:      kernel%{_alt_kernel}-isdn-mISDN
310 Obsoletes:      kernel-firmware
311 Obsoletes:      kernel-misc-acer_acpi
312 Obsoletes:      kernel-misc-fuse
313 Obsoletes:      kernel-misc-uvc
314 Obsoletes:      kernel-modules
315 Obsoletes:      kernel-net-ar81
316 Obsoletes:      kernel-net-hostap
317 Obsoletes:      kernel-net-ieee80211
318 Obsoletes:      kernel-net-ipp2p
319 Obsoletes:      kernel-net-rt61
320 Obsoletes:      kernel-smp
321 Conflicts:      e2fsprogs < 1.29
322 Conflicts:      isdn4k-utils < 3.1pre1
323 Conflicts:      jfsutils < 1.1.3
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}" != "%{_arch}"
376         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
377         %define DepMod /bin/true
378
379         %if "%{_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 "%{_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 "%{_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.642
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 # aufs2
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
926         # prepare kernel-style config file from multiple config files
927         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
928 %if %{with myown}
929                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
930 %endif
931                 important.config \
932 %if %{without vanilla}
933 %if %{with rescuecd}
934                 %{SOURCE58} \
935                 rescue.config \
936 %endif
937                 \
938 %if %{with pax}
939                 %{SOURCE45} \
940                 %{SOURCE49} \
941                 pax.config \
942 %else
943   %if %{with grsecurity}
944                 %{SOURCE45} \
945                 %{SOURCE50} \
946   %endif
947 %endif
948                 \
949 %if %{with reiser4}
950                 %{SOURCE56} \
951 %endif
952 %if %{with imq}
953                 %{SOURCE55} \
954 %endif
955 %if %{with vserver}
956                 %{SOURCE43} \
957 %endif
958                 %{SOURCE41} %{?0:patches} \
959 %endif
960                 %{SOURCE20} \
961                 $RPM_SOURCE_DIR/$Config
962 }
963
964 cd %{objdir}
965 install -d arch/%{target_arch_dir}
966 BuildConfig > %{defconfig}
967 ln -sf %{defconfig} .config
968 cd -
969
970 %{__make} \
971         TARGETOBJ=%{targetobj} \
972         %{?with_verbose:V=1} \
973         oldconfig
974
975 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
976
977 # build kernel
978 %{__make} \
979         TARGETOBJ=%{targetobj} \
980         %{?with_verbose:V=1} \
981         all
982
983 %install
984 rm -rf $RPM_BUILD_ROOT
985 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
986         -C %{objdir} \
987         %{?with_verbose:V=1} \
988         DEPMOD=%{DepMod} \
989         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
990         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
991         KERNELRELEASE=%{kernel_release}
992
993 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
994
995 # create directories which may be missing, to simplyfy %files
996 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
997
998 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
999 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1000 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1001
1002 # no point embed content for %ghost files. empty them
1003 for a in \
1004         dep{,.bin} \
1005         alias{,.bin} \
1006         devname \
1007         softdep \
1008         symbols{,.bin} \
1009         {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1010 ; do
1011         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1012         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1013 done
1014
1015 # /boot
1016 install -d $RPM_BUILD_ROOT/boot
1017 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1018 %ifarch %{ix86} %{x8664}
1019         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1020         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1021 %endif
1022 %ifarch ppc ppc64
1023         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1024         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1025 %endif
1026 %ifarch ia64
1027         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1028         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1029         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1030 %endif
1031 %ifarch alpha sparc sparc64
1032         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1033         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1034         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1035         %ifarch sparc
1036                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1037                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1038         %endif
1039         %ifarch sparc64
1040                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1041                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1042         %endif
1043 %endif
1044 %ifarch arm
1045         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1046 %endif
1047
1048 # ghosted initrd
1049 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1050
1051 %if "%{_target_base_arch}" != "%{_arch}"
1052 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1053 %endif
1054
1055 # /etc/modrobe.d
1056 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1057
1058 # /usr/src/linux
1059 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1060
1061 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1062 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1063         l=l
1064         rm -f $RPM_BUILD_ROOT/COPYING
1065 fi
1066
1067 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1068 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1069 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1070 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1071 # copy arch/x86/include/generated
1072 for dir in $(cd %{objdir} && find arch -name generated -type d); do
1073         cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
1074         find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
1075 done
1076
1077 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1078 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1079
1080 # collect module-build files and directories
1081 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1082 fileoutdir=$(pwd)
1083 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1084 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1085 cd -
1086
1087 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1088         ff=${f##%{objdir}/}
1089         if [ -x "$f" ]; then
1090                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1091         else
1092                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1093         fi
1094         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1095         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1096 done
1097
1098 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1099 install -d $RPM_BUILD_ROOT%{_docdir}
1100 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1101
1102 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1103 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1104 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1105 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1106
1107 %clean
1108 rm -rf $RPM_BUILD_ROOT
1109
1110 %preun
1111 if [ -x /sbin/new-kernel-pkg ]; then
1112         /sbin/new-kernel-pkg --remove %{kernel_release}
1113 fi
1114
1115 %post
1116 %ifarch ia64
1117 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1118 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1119 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1120 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1121 %endif
1122 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1123 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1124 mv -f /boot/System.map{,.old} 2> /dev/null
1125 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1126 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1127 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1128 ln -sf System.map-%{kernel_release} /boot/System.map
1129 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1130
1131 %depmod %{kernel_release}
1132
1133 %posttrans
1134 # generate initrd after all dependant modules are installed
1135 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1136 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1137 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1138 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1139 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1140
1141 # if dracut is present then generate full-featured initramfs
1142 if [ -x /sbin/dracut ]; then
1143         /sbin/dracut --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1144 fi
1145
1146 # update boot loaders when old package files are gone from filesystem
1147 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1148         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1149                 /sbin/update-grub >/dev/null
1150         fi
1151 fi
1152 if [ -x /sbin/new-kernel-pkg ]; then
1153         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1154 fi
1155 if [ -x /sbin/rc-boot ]; then
1156         /sbin/rc-boot 1>&2 || :
1157 fi
1158
1159 %post vmlinux
1160 mv -f /boot/vmlinux{,.old} 2> /dev/null
1161 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1162 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1163 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1164
1165 %post drm
1166 %depmod %{kernel_release}
1167
1168 %postun drm
1169 %depmod %{kernel_release}
1170
1171 %post pcmcia
1172 %depmod %{kernel_release}
1173
1174 %postun pcmcia
1175 %depmod %{kernel_release}
1176
1177 %post sound-alsa
1178 %depmod %{kernel_release}
1179
1180 %postun sound-alsa
1181 %depmod %{kernel_release}
1182
1183 %post sound-oss
1184 %depmod %{kernel_release}
1185
1186 %postun sound-oss
1187 %depmod %{kernel_release}
1188
1189 %post headers
1190 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1191
1192 %postun headers
1193 if [ "$1" = "0" ]; then
1194         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1195                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1196                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1197                 fi
1198         fi
1199 fi
1200
1201 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1202 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1203 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1204
1205 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1206 if [ "$1" = 0 ]; then
1207         rm -f /lib/modules/%{kernel_release}/{build,source}
1208 fi
1209
1210 %files
1211 %defattr(644,root,root,755)
1212 %ifarch sparc sparc64
1213 /boot/vmlinux.aout-%{kernel_release}
1214 %endif
1215 %ifarch ia64
1216 /boot/efi/vmlinuz-%{kernel_release}
1217 %endif
1218 /boot/vmlinuz-%{kernel_release}
1219 /boot/System.map-%{kernel_release}
1220 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1221 /lib/firmware/%{kernel_release}
1222
1223 %dir /lib/modules/%{kernel_release}
1224 %dir /lib/modules/%{kernel_release}/kernel
1225 /lib/modules/%{kernel_release}/kernel/arch
1226 /lib/modules/%{kernel_release}/kernel/crypto
1227 /lib/modules/%{kernel_release}/kernel/drivers
1228 %if %{have_drm}
1229 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1230 %endif
1231 /lib/modules/%{kernel_release}/kernel/fs
1232 /lib/modules/%{kernel_release}/kernel/kernel
1233 /lib/modules/%{kernel_release}/kernel/lib
1234 /lib/modules/%{kernel_release}/kernel/net
1235 /lib/modules/%{kernel_release}/kernel/mm
1236 %if %{have_sound}
1237 %dir /lib/modules/%{kernel_release}/kernel/sound
1238 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1239 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1240 %ifnarch sparc
1241 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1242 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1243 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1244 %endif
1245 %endif
1246 %dir /lib/modules/%{kernel_release}/misc
1247 %if %{have_pcmcia}
1248 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1249 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1250 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1251 %if %{without rescuecd}
1252 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1253 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1254 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1255 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1256 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1257 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1258 %endif
1259 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1260 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1261 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1262 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1263 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1264 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1265 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1266 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1267 %endif
1268 %if %{with myown}
1269 /lib/modules/%{kernel_release}/kernel/sound
1270 %endif
1271 /lib/modules/%{kernel_release}/kernel/security
1272
1273 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1274
1275 # provided by build
1276 /lib/modules/%{kernel_release}/modules.order
1277 /lib/modules/%{kernel_release}/modules.builtin*
1278
1279 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1280 %ghost /lib/modules/%{kernel_release}/modules.alias
1281 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1282 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1283 %ghost /lib/modules/%{kernel_release}/modules.dep
1284 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1285 %ghost /lib/modules/%{kernel_release}/modules.devname
1286 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1287 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1288 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1289 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1290 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1291 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1292 %ghost /lib/modules/%{kernel_release}/modules.softdep
1293 %ghost /lib/modules/%{kernel_release}/modules.symbols
1294 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1295 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1296
1297 # symlinks pointing to kernelsrcdir
1298 %ghost /lib/modules/%{kernel_release}/build
1299 %ghost /lib/modules/%{kernel_release}/source
1300
1301 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1302 %files vmlinux
1303 %defattr(644,root,root,755)
1304 /boot/vmlinux-%{kernel_release}
1305 %endif
1306
1307 %if %{have_drm}
1308 %files drm
1309 %defattr(644,root,root,755)
1310 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1311 %endif
1312
1313 %if %{have_pcmcia}
1314 %files pcmcia
1315 %defattr(644,root,root,755)
1316 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1317 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1318 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1319 %if %{without rescuecd}
1320 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1321 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1322 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1323 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1324 %endif
1325 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1326 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1327 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1328 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1329 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1330 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1331 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1332 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1333 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1334 %endif
1335
1336 %if %{have_sound}
1337 %files sound-alsa
1338 %defattr(644,root,root,755)
1339 /lib/modules/%{kernel_release}/kernel/sound
1340 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1341 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1342 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1343 %if %{have_oss}
1344 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1345 %endif
1346 %ifnarch sparc
1347 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1348 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1349 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1350 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1351 %endif
1352
1353 %if %{have_oss}
1354 %files sound-oss
1355 %defattr(644,root,root,755)
1356 /lib/modules/%{kernel_release}/kernel/sound/oss
1357 %endif
1358 %endif
1359
1360 %files headers -f files.headers_exclude_kbuild
1361 %defattr(644,root,root,755)
1362 %dir %{_kernelsrcdir}
1363 %{_kernelsrcdir}/include
1364 %dir %{_kernelsrcdir}/arch
1365 %dir %{_kernelsrcdir}/arch/[!K]*
1366 %{_kernelsrcdir}/arch/*/include
1367 %dir %{_kernelsrcdir}/security
1368 %dir %{_kernelsrcdir}/security/selinux
1369 %{_kernelsrcdir}/security/selinux/include
1370 %{_kernelsrcdir}/.config
1371 %{_kernelsrcdir}/Module.symvers
1372
1373 %files module-build -f files.mb_include_modulebuild_and_dirs
1374 %defattr(644,root,root,755)
1375 %ifarch ppc ppc64
1376 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1377 %endif
1378 %exclude %dir %{_kernelsrcdir}/arch/um
1379 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1380 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1381 %{_kernelsrcdir}/drivers/lguest/lg.h
1382 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1383 %{_kernelsrcdir}/kernel/bounds.c
1384 %{_kernelsrcdir}/scripts/basic/*.c
1385 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1386 %{_kernelsrcdir}/scripts/kconfig/*.in
1387 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1388 %{_kernelsrcdir}/scripts/kconfig/*.pl
1389 %{_kernelsrcdir}/scripts/kconfig/*.glade
1390 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1391 %{_kernelsrcdir}/scripts/kconfig/*.cc
1392 %{_kernelsrcdir}/scripts/kconfig/*.y
1393 %{_kernelsrcdir}/scripts/kconfig/*.l
1394 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1395 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1396 %{_kernelsrcdir}/scripts/kconfig/l*.h
1397 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1398 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1399 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1400 %{_kernelsrcdir}/scripts/mod/*.c
1401 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1402 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1403 %{_kernelsrcdir}/scripts/mkmakefile
1404 %{_kernelsrcdir}/scripts/module-common.lds
1405 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1406 %{_kernelsrcdir}/scripts/*.c
1407 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1408 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1409 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1410 %exclude %dir %{_kernelsrcdir}/security
1411 %exclude %dir %{_kernelsrcdir}/security/selinux
1412 %if %{with grsecurity}
1413 %{_kernelsrcdir}/tools/gcc/*.c
1414 %endif
1415
1416 %if %{with doc}
1417 %files doc
1418 %defattr(644,root,root,755)
1419 %dir %{_docdir}/%{name}-%{version}
1420
1421 %{_docdir}/%{name}-%{version}/[!jkz]*
1422 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1423 %{_docdir}/%{name}-%{version}/kbuild
1424 %{_docdir}/%{name}-%{version}/kdump
1425 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1426 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1427 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1428 %endif
1429
1430 %if %{with source}
1431 %files source -f files.source_exclude_modulebuild_and_dirs
1432 %defattr(644,root,root,755)
1433 %{_kernelsrcdir}/arch/*/[!Mik]*
1434 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1435 %{_kernelsrcdir}/arch/ia64/install.sh
1436 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1437 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1438 %{_kernelsrcdir}/arch/m68k/install.sh
1439 %{_kernelsrcdir}/arch/parisc/install.sh
1440 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1441 %{_kernelsrcdir}/arch/ia64/kvm
1442 %{_kernelsrcdir}/arch/powerpc/kvm
1443 %ifarch ppc ppc64
1444 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1445 %endif
1446 %{_kernelsrcdir}/arch/s390/kvm
1447 %{_kernelsrcdir}/arch/x86/kvm
1448 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1449 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1450 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1451 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1452 %{_kernelsrcdir}/block
1453 %{_kernelsrcdir}/crypto
1454 %{_kernelsrcdir}/drivers
1455 %{_kernelsrcdir}/firmware
1456 %{_kernelsrcdir}/fs
1457 %if %{with grsecurity} && %{without rescuecd}
1458 %{_kernelsrcdir}/grsecurity
1459 %endif
1460 %{_kernelsrcdir}/init
1461 %{_kernelsrcdir}/ipc
1462 %{_kernelsrcdir}/kernel
1463 %exclude %{_kernelsrcdir}/kernel/bounds.c
1464 %{_kernelsrcdir}/lib
1465 %{_kernelsrcdir}/mm
1466 %{_kernelsrcdir}/net
1467 %{_kernelsrcdir}/virt
1468 %{_kernelsrcdir}/samples
1469 %{_kernelsrcdir}/scripts/*
1470 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1471 %exclude %{_kernelsrcdir}/scripts/Makefile*
1472 %exclude %{_kernelsrcdir}/scripts/basic
1473 %exclude %{_kernelsrcdir}/scripts/kconfig
1474 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1475 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1476 %exclude %{_kernelsrcdir}/scripts/mod
1477 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1478 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1479 %exclude %{_kernelsrcdir}/scripts/*.c
1480 %exclude %{_kernelsrcdir}/scripts/*.sh
1481 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1482 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1483 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1484 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1485 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1486 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1487 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1488 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1489 %{_kernelsrcdir}/sound
1490 %{_kernelsrcdir}/security
1491 %exclude %{_kernelsrcdir}/security/selinux/include
1492 %{_kernelsrcdir}/tools/*
1493 %if %{with grsecurity}
1494 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1495 %endif
1496 %{_kernelsrcdir}/usr
1497 %{_kernelsrcdir}/COPYING
1498 %{_kernelsrcdir}/CREDITS
1499 %{_kernelsrcdir}/MAINTAINERS
1500 %{_kernelsrcdir}/README
1501 %{_kernelsrcdir}/REPORTING-BUGS
1502 %endif
This page took 0.19505 seconds and 4 git commands to generate.