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