]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- up to 3.0.6
[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             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 #Source1:       http://www.kernel.org/pub/linux/kernel/v3.0/patch-%{version}.bz2
145
146 # for now: ftp://ftp.archlinux.org/other/linux/patch-3.0.6.gz
147 Source1:        patch-%{version}
148 # Source1-md5:  89dfaaa8791cdceef874ed5eda43930b
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-pre10.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 %if "%{postver}" != ".0"
670 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
671 %endif
672
673 %if %{without vanilla}
674
675 # tuxonice:
676 %if %{with tuxonice}
677 %patch69 -p1
678 %patch70 -p1
679 %endif
680
681 %if %{with fbcondecor}
682 %patch3 -p1
683 %endif
684 %patch4 -p1
685 %patch5 -p1
686
687 ## netfilter
688 #
689
690 # kernel-pom-ng-IPV4OPTSSTRIP.patch
691 %patch10 -p1
692
693 # kernel-pom-ng-mms-conntrack-nat.patch
694 %patch16 -p1
695
696 # kernel-pom-ng-rsh.patch
697 %patch22 -p1
698
699 # kernel-pom-ng-rpc.patch
700 %patch23 -p1
701
702 # kernel-nf_rtsp.patch
703 %patch36 -p1
704
705 # kernel-owner-xid.patch
706 %if %{with vserver}
707 %patch37 -p1
708 %endif
709
710 # kernel-layer7.patch
711 %patch40 -p1
712
713 ##
714 # end of netfilter
715
716 # zph
717 %patch49 -p1
718
719 %if %{with imq}
720 %patch50 -p1
721 %endif
722
723 # reiser4
724 %if %{with reiser4}
725 %patch51 -p1
726 %endif
727
728 # esfq
729 %if %{with esfq}
730 %patch53 -p1
731 %endif
732
733 %if %{with wrr}
734 %patch52 -p1
735 %endif
736
737 # toshiba_acpi
738 %patch54 -p1
739
740 %patch55 -p1
741 %patch56 -p1
742
743 # kernel-rndis_host-wm5.patch
744 %patch59 -p1
745
746 # hostap enhancements from/for aircrack-ng
747 %patch85 -p1
748
749 # vserver
750 %if %{with vserver}
751 %patch100 -p1
752 %patch101 -p1
753 %endif
754
755 # forcedeth
756 %patch130 -p1
757
758 # aufs2
759 %if %{with reiser4}
760 %patch148 -p1
761 %endif
762 %patch145 -p1
763 %patch146 -p1
764
765 # unionfs
766 %patch140 -p1
767
768 %if %{with rescuecd}
769 %patch7000 -p1
770 %endif
771
772 # grsecurity & pax stuff
773 #
774
775 %if %{with grsecurity}
776 %patch9999 -p1
777 # aufs needs this
778 %patch147 -p1
779 %{?with_vserver:%patch10000 -p1}
780 %{?with_vserver:%patch10001 -p1}
781 %{?with_vserver:%patch10002 -p1}
782 %endif
783 #
784 # end of grsecurity & pax stuff
785
786 # apparmor
787 %patch5000 -p1
788
789 %patch250 -p1
790
791 # virtio-gl
792 %patch400 -p1
793
794 %endif # vanilla
795
796 # Small fixes:
797 %patch2000 -p1
798 %patch2001 -p1
799 #%patch2003 -p1
800
801 # Do not remove this, please!
802 #%patch50000 -p1
803
804 # Fix EXTRAVERSION in main Makefile
805 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile
806
807 # cleanup backups after patching
808 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
809
810 %build
811 install -d %{objdir}
812 cat > %{targetobj}.mk <<'EOF'
813 # generated by %{name}.spec
814 KERNELSRC               := %{srcdir}
815 KERNELOUTPUT    := %{objdir}
816
817 SRCARCH         := %{target_arch_dir}
818 ARCH            := %{_target_base_arch}
819 Q                       := %{!?with_verbose:@}
820 MAKE_OPTS       := %{MakeOpts}
821 DEFCONFIG   := %{defconfig}
822 EOF
823
824 PaXconfig() {
825         set -x
826         cat <<-EOCONFIG > $1
827         %ifarch %{ix86}
828                 CONFIG_PAX_SEGMEXEC=y
829                 # performance impact on CPUs without NX bit
830                 CONFIG_PAX_PAGEEXEC=n
831                 # Testing KERNEXEC
832
833                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
834                 CONFIG_PCI_BIOS=n
835                 CONFIG_EFI=n
836         %endif
837
838         %ifarch ppc64
839                 CONFIG_PAX_NOELFRELOCS=n
840         %endif
841         %ifarch ppc
842                 CONFIG_PAX_EMUTRAMP=y
843                 CONFIG_PAX_EMUSIGRT=y
844                 CONFIG_PAX_EMUPLT=y
845         %endif
846
847         %ifarch sparc sparc64 alpha
848                 CONFIG_PAX_EMUPLT=y
849         %endif
850
851         # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
852         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
853         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
854         # PAX_HOOK_ACL_FLAGS.
855
856         %if %{with grsecurity}
857                 # Hardening grsec options if with pax
858                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
859                 # almost rational (see HIDESYM help)
860                 CONFIG_GRKERNSEC_HIDESYM=y
861
862                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
863         %else
864                 CONFIG_PAX_HAVE_ACL_FLAGS=n
865                 CONFIG_PAX_HOOK_ACL_FLAGS=y
866         %endif
867 EOCONFIG
868
869         return 0
870 }
871
872 RescueConfig() {
873         set -x
874         cat <<-EOCONFIG > $1
875                 # CONFIG_SOUND is not set
876                 # CONFIG_AUDIT is not set
877                 # CONFIG_TR is not set
878                 # CONFIG_BT is not set
879                 # CONFIG_VIDEO_DEV is not set
880                 # CONFIG_DVB_CORE is not set
881                 # CONFIG_HAMRADIO is not set
882                 # CONFIG_ARCNET is not set
883                 # CONFIG_FB is not set
884                 # CONFIG_DRM is not set
885                 # CONFIG_WATCHDOG is not set
886                 # CONFIG_INPUT_JOYSTICK is not set
887                 # CONFIG_DEBUG_KERNEL is not set
888                 # CONFIG_ISDN is not set
889                 # CONFIG_AGP is not set
890                 # CONFIG_SECURITY is not set
891                 # CONFIG_PARIDE is not set
892                 # CONFIG_CPU_FREQ is not set
893                 # CONFIG_GAMEPORT is not set
894                 # CONFIG_KVM is not set
895                 # CONFIG_PHONE is not set
896                 # CONFIG_STRICT_DEVMEM is not set
897                 # CONFIG_IMA is not set
898                 CONFIG_AUFS=y
899                 CONFIG_AUFS_FS=y
900                 CONFIG_AUFS_BR_RAMFS=y
901                 CONFIG_AUFS_RDU=y
902                 CONFIG_BLK_DEV_LOOP=y
903                 CONFIG_ISO9660_FS=y
904                 CONFIG_NLS_UTF8=y
905                 CONFIG_SQUASHFS=y
906 EOCONFIG
907
908         return 0
909 }
910
911 BuildConfig() {
912         %{?debug:set -x}
913         set -e
914
915         Config="kernel-%{target_arch_dir}.config"
916         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
917
918         # prepare local and important options
919         cat <<-EOCONFIG > important.config
920                 LOCALVERSION="-%{localversion}"
921
922 %if 0%{?debug:1}
923                 CONFIG_DEBUG_SLAB=y
924                 CONFIG_DEBUG_SLAB_LEAK=y
925                 CONFIG_DEBUG_PREEMPT=y
926                 CONFIG_RT_DEADLOCK_DETECT=y
927 %endif
928
929 %if %{without ipv6}
930                 CONFIG_IPV6=n
931 %endif
932
933 %ifarch i686 athlon pentium3 pentium4
934   %if %{with pae}
935                 CONFIG_HIGHMEM4G=n
936                 CONFIG_HIGHMEM64G=y
937                 CONFIG_X86_PAE=y
938                 CONFIG_NUMA=n
939   %endif
940 %endif
941
942 %if %{without pcmcia}
943                 CONFIG_PCMCIA=n
944 %endif
945
946 %if %{with fbcondecor}
947                 CONFIG_FB_S3=n
948                 CONFIG_FB_VT8623=n
949                 CONFIG_FB_ARK=n
950                 CONFIG_FB_TILEBLITTING=n
951                 CONFIG_FB_CON_DECOR=y
952 %endif
953
954 %if %{with nfsroot}
955                 CONFIG_NFS_FS=y
956                 CONFIG_ROOT_NFS=y
957 %endif
958
959 # Temporary disabled RELOCATABLE. Needed only on x86??
960 %if %{with pax} || %{with grsecurity}
961                 CONFIG_RELOCATABLE=n
962 %endif
963 EOCONFIG
964
965 %if %{with rescuecd}
966         RescueConfig rescue.config
967 %endif
968 %if %{with pax}
969         PaXconfig pax.config
970 %endif
971
972         # prepare kernel-style config file from multiple config files
973         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
974 %if %{with myown}
975                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
976 %endif
977                 important.config \
978 %if %{without vanilla}
979 %if %{with rescuecd}
980                 %{SOURCE58} \
981                 rescue.config \
982 %endif
983                 \
984 %if %{with pax}
985                 %{SOURCE45} \
986                 %{SOURCE49} \
987                 pax.config \
988 %else
989   %if %{with grsecurity}
990                 %{SOURCE45} \
991                 %{SOURCE50} \
992   %endif
993 %endif
994                 \
995 %if %{with reiser4}
996                 %{SOURCE56} \
997 %endif
998 %if %{with wrr}
999                 %{SOURCE57} \
1000 %endif
1001 %if %{with imq}
1002                 %{SOURCE55} \
1003 %endif
1004 %if %{with vserver}
1005                 %{SOURCE43} \
1006 %endif
1007 %if %{with tuxonice}
1008 %ifarch %{ix86} %{x8664} ia64 ppc ppc64
1009                 %{SOURCE42} \
1010 %endif
1011 %endif
1012                 %{SOURCE41} %{?0:patches} \
1013 %endif
1014                 %{SOURCE20} \
1015                 $RPM_SOURCE_DIR/$Config
1016 }
1017
1018 cd %{objdir}
1019 install -d arch/%{target_arch_dir}
1020 BuildConfig > %{defconfig}
1021 ln -sf %{defconfig} .config
1022 cd -
1023
1024 %{__make} \
1025         TARGETOBJ=%{targetobj} \
1026         %{?with_verbose:V=1} \
1027         oldconfig
1028
1029 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1030
1031 # build kernel
1032 %{__make} \
1033         TARGETOBJ=%{targetobj} \
1034         %{?with_verbose:V=1} \
1035         all
1036
1037 %install
1038 rm -rf $RPM_BUILD_ROOT
1039 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1040         -C %{objdir} \
1041         %{?with_verbose:V=1} \
1042         DEPMOD=%{DepMod} \
1043         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1044         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1045         KERNELRELEASE=%{kernel_release}
1046
1047 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1048
1049 # create directories which may be missing, to simplyfy %files
1050 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1051
1052 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1053 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1054 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1055
1056 # no point embed content for %ghost files. empty them
1057 for a in \
1058         dep{,.bin} \
1059         alias{,.bin} \
1060         devname \
1061         softdep \
1062         symbols{,.bin} \
1063         {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1064 ; do
1065         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1066         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1067 done
1068
1069 # /boot
1070 install -d $RPM_BUILD_ROOT/boot
1071 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1072 %ifarch %{ix86} %{x8664}
1073         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1074         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1075 %endif
1076 %ifarch ppc ppc64
1077         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1078         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1079 %endif
1080 %ifarch ia64
1081         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1082         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1083         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1084 %endif
1085 %ifarch alpha sparc sparc64
1086         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1087         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1088         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1089         %ifarch sparc
1090                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1091                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1092         %endif
1093         %ifarch sparc64
1094                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1095                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1096         %endif
1097 %endif
1098 %ifarch arm
1099         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1100 %endif
1101
1102 # ghosted initrd
1103 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1104
1105 %if "%{_target_base_arch}" != "%{_arch}"
1106 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1107 %endif
1108
1109 # /etc/modrobe.d
1110 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1111
1112 # /usr/src/linux
1113 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1114
1115 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1116 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1117         l=l
1118         rm -f $RPM_BUILD_ROOT/COPYING
1119 fi
1120
1121 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1122 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1123 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1124 cp -a %{objdir}/include/generated $RPM_BUILD_ROOT%{_kernelsrcdir}/include
1125 mv $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf{,-dist}.h
1126 cp -a %{objdir}/include/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1127 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
1128 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1129
1130 # collect module-build files and directories
1131 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1132 fileoutdir=$(pwd)
1133 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1134 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1135 cd -
1136
1137 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1138 install -d $RPM_BUILD_ROOT%{_docdir}
1139 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1140
1141 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1142 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1143 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1144 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1145
1146 %clean
1147 rm -rf $RPM_BUILD_ROOT
1148
1149 %preun
1150 if [ -x /sbin/new-kernel-pkg ]; then
1151         /sbin/new-kernel-pkg --remove %{kernel_release}
1152 fi
1153
1154 %post
1155 %ifarch ia64
1156 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1157 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1158 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1159 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1160 %endif
1161 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1162 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1163 mv -f /boot/System.map{,.old} 2> /dev/null
1164 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1165 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1166 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1167 ln -sf System.map-%{kernel_release} /boot/System.map
1168 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1169
1170 %depmod %{kernel_release}
1171
1172 %posttrans
1173 # generate initrd after all dependant modules are installed
1174 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1175 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1176 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1177 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1178 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1179
1180 # update boot loaders when old package files are gone from filesystem
1181 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1182         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1183                 /sbin/update-grub >/dev/null
1184         fi
1185 fi
1186 if [ -x /sbin/new-kernel-pkg ]; then
1187         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1188 fi
1189 if [ -x /sbin/rc-boot ]; then
1190         /sbin/rc-boot 1>&2 || :
1191 fi
1192
1193 %post vmlinux
1194 mv -f /boot/vmlinux{,.old} 2> /dev/null
1195 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1196 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1197 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1198
1199 %post drm
1200 %depmod %{kernel_release}
1201
1202 %postun drm
1203 %depmod %{kernel_release}
1204
1205 %post pcmcia
1206 %depmod %{kernel_release}
1207
1208 %postun pcmcia
1209 %depmod %{kernel_release}
1210
1211 %post sound-alsa
1212 %depmod %{kernel_release}
1213
1214 %postun sound-alsa
1215 %depmod %{kernel_release}
1216
1217 %post sound-oss
1218 %depmod %{kernel_release}
1219
1220 %postun sound-oss
1221 %depmod %{kernel_release}
1222
1223 %post headers
1224 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1225
1226 %postun headers
1227 if [ "$1" = "0" ]; then
1228         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1229                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1230                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1231                 fi
1232         fi
1233 fi
1234
1235 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1236 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1237 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1238
1239 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1240 if [ "$1" = 0 ]; then
1241         rm -f /lib/modules/%{kernel_release}/{build,source}
1242 fi
1243
1244 %files
1245 %defattr(644,root,root,755)
1246 %ifarch sparc sparc64
1247 /boot/vmlinux.aout-%{kernel_release}
1248 %endif
1249 %ifarch ia64
1250 /boot/efi/vmlinuz-%{kernel_release}
1251 %endif
1252 /boot/vmlinuz-%{kernel_release}
1253 /boot/System.map-%{kernel_release}
1254 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1255 /lib/firmware/%{kernel_release}
1256
1257 %dir /lib/modules/%{kernel_release}
1258 %dir /lib/modules/%{kernel_release}/kernel
1259 /lib/modules/%{kernel_release}/kernel/arch
1260 /lib/modules/%{kernel_release}/kernel/crypto
1261 /lib/modules/%{kernel_release}/kernel/drivers
1262 %if %{have_drm}
1263 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1264 %endif
1265 /lib/modules/%{kernel_release}/kernel/fs
1266 /lib/modules/%{kernel_release}/kernel/kernel
1267 /lib/modules/%{kernel_release}/kernel/lib
1268 /lib/modules/%{kernel_release}/kernel/net
1269 /lib/modules/%{kernel_release}/kernel/mm
1270 %if %{have_sound}
1271 %dir /lib/modules/%{kernel_release}/kernel/sound
1272 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1273 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1274 %ifnarch sparc
1275 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1276 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1277 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1278 %endif
1279 %endif
1280 %dir /lib/modules/%{kernel_release}/misc
1281 %if %{have_pcmcia}
1282 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1283 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1284 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1285 %if %{without rescuecd}
1286 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1287 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1288 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1289 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1290 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1291 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1292 %endif
1293 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1294 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1295 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1296 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1297 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1298 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1299 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1300 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1301 %endif
1302 %if %{with myown}
1303 /lib/modules/%{kernel_release}/kernel/sound
1304 %endif
1305 /lib/modules/%{kernel_release}/kernel/security
1306
1307 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1308
1309 # provided by build
1310 /lib/modules/%{kernel_release}/modules.order
1311 /lib/modules/%{kernel_release}/modules.builtin*
1312
1313 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1314 %ghost /lib/modules/%{kernel_release}/modules.alias
1315 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1316 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1317 %ghost /lib/modules/%{kernel_release}/modules.dep
1318 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1319 %ghost /lib/modules/%{kernel_release}/modules.devname
1320 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1321 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1322 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1323 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1324 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1325 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1326 %ghost /lib/modules/%{kernel_release}/modules.softdep
1327 %ghost /lib/modules/%{kernel_release}/modules.symbols
1328 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1329 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1330
1331 # symlinks pointing to kernelsrcdir
1332 %ghost /lib/modules/%{kernel_release}/build
1333 %ghost /lib/modules/%{kernel_release}/source
1334
1335 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1336 %files vmlinux
1337 %defattr(644,root,root,755)
1338 /boot/vmlinux-%{kernel_release}
1339 %endif
1340
1341 %if %{have_drm}
1342 %files drm
1343 %defattr(644,root,root,755)
1344 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1345 %endif
1346
1347 %if %{have_pcmcia}
1348 %files pcmcia
1349 %defattr(644,root,root,755)
1350 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1351 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1352 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1353 %if %{without rescuecd}
1354 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1355 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1356 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1357 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1358 %endif
1359 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1360 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1361 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1362 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1363 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1364 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1365 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1366 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1367 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1368 %endif
1369
1370 %if %{have_sound}
1371 %files sound-alsa
1372 %defattr(644,root,root,755)
1373 /lib/modules/%{kernel_release}/kernel/sound
1374 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1375 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1376 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1377 %if %{have_oss}
1378 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1379 %endif
1380 %ifnarch sparc
1381 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1382 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1383 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1384 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1385 %endif
1386
1387 %if %{have_oss}
1388 %files sound-oss
1389 %defattr(644,root,root,755)
1390 /lib/modules/%{kernel_release}/kernel/sound/oss
1391 %endif
1392 %endif
1393
1394 %files headers -f files.headers_exclude_kbuild
1395 %defattr(644,root,root,755)
1396 %dir %{_kernelsrcdir}
1397 %{_kernelsrcdir}/include
1398 %dir %{_kernelsrcdir}/arch
1399 %dir %{_kernelsrcdir}/arch/[!K]*
1400 %{_kernelsrcdir}/arch/*/include
1401 %dir %{_kernelsrcdir}/security
1402 %dir %{_kernelsrcdir}/security/selinux
1403 %{_kernelsrcdir}/security/selinux/include
1404 %{_kernelsrcdir}/config-dist
1405 %{_kernelsrcdir}/Module.symvers-dist
1406
1407 %files module-build -f files.mb_include_modulebuild_and_dirs
1408 %defattr(644,root,root,755)
1409 %ifarch ppc ppc64
1410 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1411 %endif
1412 %exclude %dir %{_kernelsrcdir}/arch/um
1413 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1414 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1415 %{_kernelsrcdir}/drivers/lguest/lg.h
1416 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1417 %{_kernelsrcdir}/kernel/bounds.c
1418 %dir %{_kernelsrcdir}/scripts
1419 %{_kernelsrcdir}/scripts/Kbuild.include
1420 %{_kernelsrcdir}/scripts/Makefile*
1421 %{_kernelsrcdir}/scripts/basic
1422 %{_kernelsrcdir}/scripts/kconfig
1423 %{_kernelsrcdir}/scripts/mkcompile_h
1424 %{_kernelsrcdir}/scripts/mkmakefile
1425 %{_kernelsrcdir}/scripts/mod
1426 %{_kernelsrcdir}/scripts/module-common.lds
1427 %{_kernelsrcdir}/scripts/setlocalversion
1428 %{_kernelsrcdir}/scripts/*.c
1429 %{_kernelsrcdir}/scripts/*.sh
1430 %dir %{_kernelsrcdir}/scripts/selinux
1431 %{_kernelsrcdir}/scripts/selinux/Makefile
1432 %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1433 %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1434 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1435 %dir %{_kernelsrcdir}/scripts/selinux/mdp
1436 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1437 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1438 %exclude %dir %{_kernelsrcdir}/security
1439 %exclude %dir %{_kernelsrcdir}/security/selinux
1440 %if %{with grsecurity}
1441 %{_kernelsrcdir}/tools/gcc/*.c
1442 %endif
1443
1444 %if %{with doc}
1445 %files doc
1446 %defattr(644,root,root,755)
1447 %dir %{_docdir}/%{name}-%{version}
1448
1449 %{_docdir}/%{name}-%{version}/[!jkz]*
1450 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1451 %{_docdir}/%{name}-%{version}/kbuild
1452 %{_docdir}/%{name}-%{version}/kdump
1453 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1454 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1455 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1456 %endif
1457
1458 %if %{with source}
1459 %files source -f files.source_exclude_modulebuild_and_dirs
1460 %defattr(644,root,root,755)
1461 %{_kernelsrcdir}/arch/*/[!Mik]*
1462 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1463 %{_kernelsrcdir}/arch/ia64/install.sh
1464 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1465 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1466 %{_kernelsrcdir}/arch/m68k/install.sh
1467 %{_kernelsrcdir}/arch/parisc/install.sh
1468 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1469 %{_kernelsrcdir}/arch/ia64/kvm
1470 %{_kernelsrcdir}/arch/powerpc/kvm
1471 %ifarch ppc ppc64
1472 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1473 %endif
1474 %{_kernelsrcdir}/arch/s390/kvm
1475 %{_kernelsrcdir}/arch/x86/kvm
1476 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1477 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1478 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1479 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1480 %{_kernelsrcdir}/block
1481 %{_kernelsrcdir}/crypto
1482 %{_kernelsrcdir}/drivers
1483 %{_kernelsrcdir}/firmware
1484 %{_kernelsrcdir}/fs
1485 %if %{with grsecurity} && %{without rescuecd}
1486 %{_kernelsrcdir}/grsecurity
1487 %endif
1488 %{_kernelsrcdir}/init
1489 %{_kernelsrcdir}/ipc
1490 %{_kernelsrcdir}/kernel
1491 %exclude %{_kernelsrcdir}/kernel/bounds.c
1492 %{_kernelsrcdir}/lib
1493 %{_kernelsrcdir}/mm
1494 %{_kernelsrcdir}/net
1495 %{_kernelsrcdir}/virt
1496 %{_kernelsrcdir}/samples
1497 %{_kernelsrcdir}/scripts/*
1498 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1499 %exclude %{_kernelsrcdir}/scripts/Makefile*
1500 %exclude %{_kernelsrcdir}/scripts/basic
1501 %exclude %{_kernelsrcdir}/scripts/kconfig
1502 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1503 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1504 %exclude %{_kernelsrcdir}/scripts/mod
1505 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1506 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1507 %exclude %{_kernelsrcdir}/scripts/*.c
1508 %exclude %{_kernelsrcdir}/scripts/*.sh
1509 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1510 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1511 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1512 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1513 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1514 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1515 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1516 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1517 %{_kernelsrcdir}/sound
1518 %{_kernelsrcdir}/security
1519 %exclude %{_kernelsrcdir}/security/selinux/include
1520 %{_kernelsrcdir}/tools/*
1521 %if %{with grsecurity}
1522 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1523 %endif
1524 %{_kernelsrcdir}/usr
1525 %{_kernelsrcdir}/COPYING
1526 %{_kernelsrcdir}/CREDITS
1527 %{_kernelsrcdir}/MAINTAINERS
1528 %{_kernelsrcdir}/README
1529 %{_kernelsrcdir}/REPORTING-BUGS
1530 %endif
This page took 0.238748 seconds and 4 git commands to generate.