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