]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- package modules under kernel/mm
[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.32
114 %define         postver         %{nil}
115 %define         rel             0.1
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:  260551284ac224c3a43c4adac7df4879
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/tuxonice-3.0.99.32-for-2.6.32.patch.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.32-vs2.3.0.36.26.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.3_for_2.6.31.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.6-200911151724.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 # FIXME
809 #%patch58 -p1
810
811 # kernel-rndis_host-wm5.patch
812 %patch59 -p1
813
814 # hostap enhancements from/for aircrack-ng
815 %patch85 -p1
816
817 # LSI MPT Fusion driver update (by LSI via SUSE folks)
818 # FIXME!
819 #%patch90 -p1
820
821 # vserver
822 %if %{with vserver}
823 %patch100 -p1
824 %patch101 -p1
825 %endif
826
827 # forcedeth
828 %patch130 -p1
829
830 # unionfs (problems with aufs2, needed for aufs1 patch)
831 %if %{without rescuecd}
832 %patch140 -p1
833 %endif
834
835 %if %{with rescuecd}
836 # aufs2
837 %patch148 -p1
838 %else
839 # aufs1
840 #patch145 -p1
841 #patch146 -p1
842 %endif
843
844 %patch2500 -p1
845
846 %if %{with rescuecd}
847 %patch7000 -p1
848 %endif
849
850 # grsecurity & pax stuff
851 #
852
853 # remember that we have the same config file for grsec_minimal and
854 # grsec_full, but the patches are different.
855
856 %if %{with grsecurity}
857 %if %{with grsec_minimal}
858 %patch1000 -p1
859 %else
860 # grsec_full and/or pax
861 %patch9999 -p1
862 %{?with_vserver:%patch10000 -p1}
863 %{?with_vserver:%patch10001 -p1}
864 %{?with_vserver:%patch10002 -p1}
865 %{?with_vserver:%patch10003 -p1}
866 %endif
867 %endif
868 #
869 # end of grsecurity & pax stuff
870
871 # apparmor
872 %if %{with apparmor}
873 %patch5000 -p1
874 %endif
875
876 # FIXME
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
891 # Fix EXTRAVERSION in main Makefile
892 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}%{?alt_kernel:_%{alt_kernel}}#g' Makefile
893
894 # cleanup backups after patching
895 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
896
897 %build
898 install -d %{objdir}
899 cat > %{targetobj}.mk <<'EOF'
900 # generated by %{name}.spec
901 KERNELSRC               := %{_builddir}/%{name}-%{version}/linux-%{basever}
902 KERNELOUTPUT    := %{objdir}
903
904 SRCARCH         := %{target_arch_dir}
905 ARCH            := %{_target_base_arch}
906 Q                       := %{!?with_verbose:@}
907 MAKE_OPTS       := %{MakeOpts}
908 DEFCONFIG   := %{defconfig}
909 EOF
910
911 PaXconfig() {
912         set -x
913         cat <<-EOCONFIG > $1
914         %ifarch %{ix86}
915                 CONFIG_PAX_SEGMEXEC=y
916                 # performance impact on CPUs without NX bit
917                 CONFIG_PAX_PAGEEXEC=n
918                 # Testing KERNEXEC
919
920                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
921                 CONFIG_PCI_BIOS=n
922                 CONFIG_EFI=n
923         %endif
924
925         %ifarch ppc64
926                 CONFIG_PAX_NOELFRELOCS=n
927         %endif
928         %ifarch ppc
929                 CONFIG_PAX_EMUTRAMP=y
930                 CONFIG_PAX_EMUSIGRT=y
931                 CONFIG_PAX_EMUPLT=y
932         %endif
933
934         %ifarch sparc sparc64 alpha
935                 CONFIG_PAX_EMUPLT=y
936         %endif
937
938         # Now we have to check MAC system integration. Grsecurity (full) uses PAX_HAVE_ACL_FLAGS
939         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
940         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
941         # PAX_HOOK_ACL_FLAGS. 
942
943         %if %{with grsec_full}
944                 # Hardening grsec options if with pax
945                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
946                 # almost rational (see HIDESYM help)
947                 CONFIG_GRKERNSEC_HIDESYM=y
948
949                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
950         %else
951                 CONFIG_PAX_HAVE_ACL_FLAGS=n
952                 CONFIG_PAX_HOOK_ACL_FLAGS=y
953         %endif
954 EOCONFIG
955
956         return 0
957 }
958
959 RescueConfig() {
960         set -x
961         cat <<-EOCONFIG > $1
962                 # CONFIG_SOUND is not set
963                 # CONFIG_AUDIT is not set
964                 # CONFIG_TR is not set
965                 # CONFIG_BT is not set
966                 # CONFIG_VIDEO_DEV is not set
967                 # CONFIG_DVB_CORE is not set
968                 # CONFIG_HAMRADIO is not set
969                 # CONFIG_ARCNET is not set
970                 # CONFIG_FB is not set
971                 # CONFIG_DRM is not set
972                 # CONFIG_WATCHDOG is not set
973                 # CONFIG_INPUT_JOYSTICK is not set
974                 # CONFIG_DEBUG_KERNEL is not set
975                 # CONFIG_ISDN is not set
976                 # CONFIG_AGP is not set
977                 # CONFIG_SECURITY is not set
978                 # CONFIG_PARIDE is not set
979                 # CONFIG_CPU_FREQ is not set
980                 # CONFIG_GAMEPORT is not set
981                 # CONFIG_KVM is not set
982                 # CONFIG_PHONE is not set
983                 # CONFIG_STRICT_DEVMEM is not set
984                 # CONFIG_IMA is not set
985                 CONFIG_AUFS=y
986                 CONFIG_AUFS_FS=y
987                 CONFIG_AUFS_BR_RAMFS=y
988                 CONFIG_AUFS_RDU=y
989                 CONFIG_BLK_DEV_LOOP=y
990                 CONFIG_ISO9660_FS=y
991                 CONFIG_NLS_UTF8=y
992 EOCONFIG
993
994         return 0
995 }
996
997 BuildConfig() {
998         %{?debug:set -x}
999         set -e
1000
1001         Config="kernel-%{target_arch_dir}.config"
1002         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
1003
1004         # prepare local and important options
1005         cat <<-EOCONFIG > important.config
1006                 LOCALVERSION="-%{localversion}"
1007
1008 %if 0%{?debug:1}
1009                 CONFIG_DEBUG_SLAB=y
1010                 CONFIG_DEBUG_SLAB_LEAK=y
1011                 CONFIG_DEBUG_PREEMPT=y
1012                 CONFIG_RT_DEADLOCK_DETECT=y
1013 %endif
1014
1015 # apparmor, will be moved to external file if works
1016 %if %{with apparmor}
1017                 CONFIG_SECURITY_APPARMOR=y
1018                 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
1019                 CONFIG_SECURITY_APPARMOR_DISABLE=n
1020                 CONFIG_SECURITY_APPARMOR_NETWORK=y
1021 %endif
1022
1023 %if %{without ipv6}
1024                 CONFIG_IPV6=n
1025 %endif
1026
1027 %ifarch i686 athlon pentium3 pentium4
1028   %if %{with pae}
1029                 CONFIG_HIGHMEM4G=n
1030                 CONFIG_HIGHMEM64G=y
1031                 CONFIG_X86_PAE=y
1032                 CONFIG_NUMA=n
1033   %endif
1034 %endif
1035
1036 %if %{without pcmcia}
1037                 CONFIG_PCMCIA=n
1038 %endif
1039
1040 %if %{with fbcondecor}
1041                 CONFIG_FB_S3=n
1042                 CONFIG_FB_VT8623=n
1043                 CONFIG_FB_ARK=n
1044                 CONFIG_FB_TILEBLITTING=n
1045                 CONFIG_FB_CON_DECOR=y
1046 %endif
1047
1048 %if %{with nfsroot}
1049                 CONFIG_NFS_FS=y
1050                 CONFIG_ROOT_NFS=y
1051 %endif
1052
1053 # Temporary disabled RELOCATABLE. Needed only on x86??
1054 %if %{with pax} || %{with grsec_full}
1055                 CONFIG_RELOCATABLE=n
1056 %endif
1057 EOCONFIG
1058
1059 %if %{with rescuecd}
1060         RescueConfig rescue.config
1061 %endif
1062 %if %{with pax}
1063         PaXconfig pax.config
1064 %endif
1065
1066         # prepare kernel-style config file from multiple config files
1067         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
1068 %if %{with myown}
1069                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
1070 %endif
1071                 important.config \
1072 %if %{with rescuecd}
1073                 %{SOURCE58} \
1074                 %{SOURCE59} \
1075                 rescue.config \
1076 %endif
1077                 \
1078 %if %{with pax}
1079                 %{SOURCE45} \
1080                 %{SOURCE49} \
1081                 pax.config \
1082 %else
1083   %if %{with grsec_full}
1084                 %{SOURCE45} \
1085                 %{SOURCE50} \
1086   %else
1087         %if %{with grsec_minimal}
1088                 %{SOURCE51} \
1089         %endif
1090   %endif
1091 %endif
1092                 \
1093 %if %{with reiser4}
1094                 %{SOURCE56} \
1095 %endif
1096 %if %{with wrr}
1097                 %{SOURCE57} \
1098 %endif
1099 %if %{with imq}
1100                 %{SOURCE55} \
1101 %endif
1102 %if %{with vserver}
1103                 %{SOURCE43} \
1104 %endif
1105 %if %{with tuxonice}
1106 %ifarch %{ix86} %{x8664} ia64 ppc ppc64
1107                 %{SOURCE42} \
1108 %endif
1109 %endif
1110                 %{SOURCE40} %{?0:netfilter} \
1111                 %{SOURCE41} %{?0:patches} \
1112                 %{SOURCE20} \
1113                 $RPM_SOURCE_DIR/$Config
1114 }
1115
1116 cd %{objdir}
1117 install -d arch/%{target_arch_dir}
1118 BuildConfig > %{defconfig}
1119 ln -sf %{defconfig} .config
1120 cd -
1121
1122 %{__make} \
1123         TARGETOBJ=%{targetobj} \
1124         %{?with_verbose:V=1} \
1125         oldconfig
1126
1127 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1128
1129 # build kernel
1130 %{__make} \
1131         TARGETOBJ=%{targetobj} \
1132         %{?with_verbose:V=1} \
1133         all
1134
1135 %install
1136 rm -rf $RPM_BUILD_ROOT
1137 %{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install firmware_install \
1138         -C %{objdir} \
1139         %{?with_verbose:V=1} \
1140         DEPMOD=%{DepMod} \
1141         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1142         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1143         KERNELRELEASE=%{kernel_release}
1144
1145 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1146
1147 %if %{with myown}
1148 # create directories which may be missing, to simplyfy %files
1149 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/sound
1150 %endif
1151
1152 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1153 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1154 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1155
1156 # /boot
1157 install -d $RPM_BUILD_ROOT/boot
1158 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1159 %ifarch %{ix86} %{x8664}
1160 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1161 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1162 %endif
1163 %ifarch ppc ppc64
1164 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1165 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1166 %endif
1167 %ifarch ia64
1168 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1169 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1170 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1171 %endif
1172 %ifarch alpha sparc sparc64
1173         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1174         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1175         install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1176 %ifarch sparc
1177         elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1178         install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1179 %endif
1180 %ifarch sparc64
1181         elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1182         install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1183 %endif
1184 %ifarch arm
1185         install %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1186 %endif
1187 %endif
1188
1189 # ghosted initrd
1190 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1191
1192 %if "%{_target_base_arch}" != "%{_arch}"
1193 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1194 %endif
1195
1196 # /etc/modrobe.d
1197 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1198
1199 # /usr/src/linux
1200 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1201 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1202 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1203         l=l
1204         rm -f $RPM_BUILD_ROOT/COPYING
1205 fi
1206
1207 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1208 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1209 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1210 cp -a %{objdir}/include/linux/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf-dist.h
1211 cp -a %{objdir}/include/linux/{utsrelease,version}.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1212 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
1213 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1214
1215 # collect module-build files and directories
1216 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1217 fileoutdir=$(pwd)
1218 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1219 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1220 cd -
1221
1222 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1223 install -d $RPM_BUILD_ROOT%{_docdir}
1224 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1225
1226 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1227 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1228 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1229 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1230
1231 %clean
1232 rm -rf $RPM_BUILD_ROOT
1233
1234 %preun
1235 if [ -x /sbin/new-kernel-pkg ]; then
1236         /sbin/new-kernel-pkg --remove %{kernel_release}
1237 fi
1238
1239 %post
1240 %ifarch ia64
1241 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1242 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1243 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1244 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1245 %endif
1246 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1247 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1248 mv -f /boot/System.map{,.old} 2> /dev/null
1249 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1250 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1251 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1252 ln -sf System.map-%{kernel_release} /boot/System.map
1253 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1254
1255 %depmod %{kernel_release}
1256
1257 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1258 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1259 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1260 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1261 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1262
1263 if [ -x /sbin/new-kernel-pkg ]; then
1264         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1265 elif [ -x /sbin/rc-boot ]; then
1266         /sbin/rc-boot 1>&2 || :
1267 fi
1268
1269 %post vmlinux
1270 mv -f /boot/vmlinux{,.old} 2> /dev/null
1271 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1272 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1273 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1274
1275 %post libs
1276 %{_sbindir}/mkvmlinuz /boot/zImage-%{kernel_release} %{kernel_release}
1277
1278 %post drm
1279 %depmod %{kernel_release}
1280
1281 %postun drm
1282 %depmod %{kernel_release}
1283
1284 %post pcmcia
1285 %depmod %{kernel_release}
1286
1287 %postun pcmcia
1288 %depmod %{kernel_release}
1289
1290 %post sound-alsa
1291 %depmod %{kernel_release}
1292
1293 %postun sound-alsa
1294 %depmod %{kernel_release}
1295
1296 %post sound-oss
1297 %depmod %{kernel_release}
1298
1299 %postun sound-oss
1300 %depmod %{kernel_release}
1301
1302 %post headers
1303 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1304
1305 %postun headers
1306 if [ "$1" = "0" ]; then
1307         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1308                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1309                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1310                 fi
1311         fi
1312 fi
1313
1314 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1315 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1316 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1317
1318 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1319 if [ "$1" = 0 ]; then
1320         rm -f /lib/modules/%{kernel_release}/{build,source}
1321 fi
1322
1323 %files
1324 %defattr(644,root,root,755)
1325 %ifarch sparc sparc64
1326 /boot/vmlinux.aout-%{kernel_release}
1327 %endif
1328 %ifarch ia64
1329 /boot/efi/vmlinuz-%{kernel_release}
1330 %endif
1331 /boot/vmlinuz-%{kernel_release}
1332 /boot/System.map-%{kernel_release}
1333 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1334 /lib/firmware/%{kernel_release}
1335
1336 %dir /lib/modules/%{kernel_release}
1337 %dir /lib/modules/%{kernel_release}/kernel
1338 %ifnarch sparc
1339 /lib/modules/%{kernel_release}/kernel/arch
1340 %endif
1341 /lib/modules/%{kernel_release}/kernel/crypto
1342 /lib/modules/%{kernel_release}/kernel/drivers
1343 %if %{have_drm}
1344 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1345 %endif
1346 /lib/modules/%{kernel_release}/kernel/fs
1347 /lib/modules/%{kernel_release}/kernel/kernel
1348 /lib/modules/%{kernel_release}/kernel/lib
1349 /lib/modules/%{kernel_release}/kernel/net
1350 /lib/modules/%{kernel_release}/kernel/mm
1351 %if %{have_sound}
1352 %dir /lib/modules/%{kernel_release}/kernel/sound
1353 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1354 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1355 %ifnarch sparc
1356 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1357 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1358 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1359 %endif
1360 %endif
1361 %dir /lib/modules/%{kernel_release}/misc
1362 %if %{have_pcmcia}
1363 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1364 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1365 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1366 %if %{without rescuecd}
1367 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1368 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1369 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1370 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1371 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1372 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1373 %endif
1374 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1375 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1376 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1377 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1378 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1379 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1380 %exclude /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1381 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1382 %endif
1383 %if %{with myown}
1384 /lib/modules/%{kernel_release}/kernel/sound
1385 %endif
1386 %ghost /lib/modules/%{kernel_release}/modules.*
1387 # symlinks pointing to kernelsrcdir
1388 %ghost /lib/modules/%{kernel_release}/build
1389 %ghost /lib/modules/%{kernel_release}/source
1390 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1391
1392 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1393 %files vmlinux
1394 %defattr(644,root,root,755)
1395 /boot/vmlinux-%{kernel_release}
1396 %endif
1397
1398 %if %{have_drm}
1399 %files drm
1400 %defattr(644,root,root,755)
1401 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1402 %endif
1403
1404 %if %{have_pcmcia}
1405 %files pcmcia
1406 %defattr(644,root,root,755)
1407 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1408 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1409 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1410 %if %{without rescuecd}
1411 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1412 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1413 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1414 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1415 %endif
1416 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1417 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1418 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1419 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1420 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1421 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1422 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1423 /lib/modules/%{kernel_release}/kernel/drivers/serial/serial_cs.ko*
1424 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1425 %endif
1426
1427 %ifarch ppc-broken
1428 %if "%{_arch}" == "ppc"
1429 %files libs
1430 %defattr(644,root,root,755)
1431 %dir /boot/libs-%{kernel_release}
1432 /boot/libs-%{kernel_release}/common
1433 /boot/libs-%{kernel_release}/kernel
1434 /boot/libs-%{kernel_release}/lib
1435 /boot/libs-%{kernel_release}/of1275
1436 /boot/libs-%{kernel_release}/openfirmware
1437 /boot/libs-%{kernel_release}/simple
1438 %dir /boot/libs-%{kernel_release}/utils
1439 %attr(755,root,root) /boot/libs-%{kernel_release}/utils/*
1440 /boot/libs-%{kernel_release}/ld.script
1441 %endif
1442 %endif
1443
1444 %if %{have_sound}
1445 %files sound-alsa
1446 %defattr(644,root,root,755)
1447 /lib/modules/%{kernel_release}/kernel/sound
1448 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1449 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1450 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1451 %if %{have_oss}
1452 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1453 %endif
1454 %ifnarch sparc
1455 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1456 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1457 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1458 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1459 %endif
1460
1461 %if %{have_oss}
1462 %files sound-oss
1463 %defattr(644,root,root,755)
1464 /lib/modules/%{kernel_release}/kernel/sound/oss
1465 %endif
1466 %endif
1467
1468 %files headers -f files.headers_exclude_kbuild
1469 %defattr(644,root,root,755)
1470 %dir %{_kernelsrcdir}
1471 %{_kernelsrcdir}/include
1472 %dir %{_kernelsrcdir}/arch
1473 %dir %{_kernelsrcdir}/arch/[!K]*
1474 %{_kernelsrcdir}/arch/*/include
1475 %dir %{_kernelsrcdir}/security
1476 %dir %{_kernelsrcdir}/security/selinux
1477 %{_kernelsrcdir}/security/selinux/include
1478 %{_kernelsrcdir}/config-dist
1479 %{_kernelsrcdir}/Module.symvers-dist
1480
1481 %files module-build -f files.mb_include_modulebuild_and_dirs
1482 %defattr(644,root,root,755)
1483 %ifarch ppc ppc64
1484 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1485 %endif
1486 %exclude %dir %{_kernelsrcdir}/arch/m68knommu
1487 %exclude %dir %{_kernelsrcdir}/arch/um
1488 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1489 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1490 %{_kernelsrcdir}/drivers/lguest/lg.h
1491 %{_kernelsrcdir}/kernel/bounds.c
1492 %dir %{_kernelsrcdir}/scripts
1493 %{_kernelsrcdir}/scripts/Kbuild.include
1494 %{_kernelsrcdir}/scripts/Makefile*
1495 %{_kernelsrcdir}/scripts/basic
1496 %{_kernelsrcdir}/scripts/kconfig
1497 %{_kernelsrcdir}/scripts/mkcompile_h
1498 %{_kernelsrcdir}/scripts/mkmakefile
1499 %{_kernelsrcdir}/scripts/mod
1500 %{_kernelsrcdir}/scripts/module-common.lds
1501 %{_kernelsrcdir}/scripts/setlocalversion
1502 %{_kernelsrcdir}/scripts/*.c
1503 %{_kernelsrcdir}/scripts/*.sh
1504 %dir %{_kernelsrcdir}/scripts/selinux
1505 %{_kernelsrcdir}/scripts/selinux/Makefile
1506 %dir %{_kernelsrcdir}/scripts/selinux/mdp
1507 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1508 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1509 %exclude %dir %{_kernelsrcdir}/security
1510 %exclude %dir %{_kernelsrcdir}/security/selinux
1511
1512 %files doc
1513 %defattr(644,root,root,755)
1514 %dir %{_docdir}/%{name}-%{version}
1515
1516 %{_docdir}/%{name}-%{version}/[!jkz]*
1517 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1518 %{_docdir}/%{name}-%{version}/kbuild
1519 %{_docdir}/%{name}-%{version}/kdump
1520 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1521 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1522 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1523
1524 %if %{with source}
1525 %files source -f files.source_exclude_modulebuild_and_dirs
1526 %defattr(644,root,root,755)
1527 %{_kernelsrcdir}/arch/*/[!Mik]*
1528 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1529 %{_kernelsrcdir}/arch/ia64/ia32/[!M]*
1530 %{_kernelsrcdir}/arch/ia64/install.sh
1531 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1532 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1533 %{_kernelsrcdir}/arch/m68k/install.sh
1534 %{_kernelsrcdir}/arch/parisc/install.sh
1535 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1536 %{_kernelsrcdir}/arch/ia64/kvm
1537 %{_kernelsrcdir}/arch/powerpc/kvm
1538 %ifarch ppc ppc64
1539 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1540 %endif
1541 %{_kernelsrcdir}/arch/s390/kvm
1542 %{_kernelsrcdir}/arch/x86/kvm
1543 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1544 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1545 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1546 %{_kernelsrcdir}/block
1547 %{_kernelsrcdir}/crypto
1548 %{_kernelsrcdir}/drivers
1549 %{_kernelsrcdir}/firmware
1550 %{_kernelsrcdir}/fs
1551 %if %{with grsecurity} && %{without rescuecd}
1552 %{_kernelsrcdir}/grsecurity
1553 %endif
1554 %{_kernelsrcdir}/init
1555 %{_kernelsrcdir}/ipc
1556 %{_kernelsrcdir}/kernel
1557 %exclude %{_kernelsrcdir}/kernel/bounds.c
1558 %{_kernelsrcdir}/lib
1559 %{_kernelsrcdir}/mm
1560 %{_kernelsrcdir}/net
1561 %{_kernelsrcdir}/virt
1562 %{_kernelsrcdir}/samples
1563 %{_kernelsrcdir}/scripts/*
1564 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1565 %exclude %{_kernelsrcdir}/scripts/Makefile*
1566 %exclude %{_kernelsrcdir}/scripts/basic
1567 %exclude %{_kernelsrcdir}/scripts/kconfig
1568 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1569 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1570 %exclude %{_kernelsrcdir}/scripts/mod
1571 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1572 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1573 %exclude %{_kernelsrcdir}/scripts/*.c
1574 %exclude %{_kernelsrcdir}/scripts/*.sh
1575 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1576 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1577 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1578 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1579 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1580 %{_kernelsrcdir}/sound
1581 %{_kernelsrcdir}/security
1582 %exclude %{_kernelsrcdir}/security/selinux/include
1583 %{_kernelsrcdir}/tools
1584 %{_kernelsrcdir}/usr
1585 %{_kernelsrcdir}/COPYING
1586 %{_kernelsrcdir}/CREDITS
1587 %{_kernelsrcdir}/MAINTAINERS
1588 %{_kernelsrcdir}/README
1589 %{_kernelsrcdir}/REPORTING-BUGS
1590 %endif
This page took 0.171616 seconds and 4 git commands to generate.