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