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