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