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