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