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