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