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