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