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