]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- unionfs-2.5.3_for_2.6.31.diff
[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.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 # fix regression in XFS with 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 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1228 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1229 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1230 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1231
1232 %clean
1233 rm -rf $RPM_BUILD_ROOT
1234
1235 %preun
1236 if [ -x /sbin/new-kernel-pkg ]; then
1237         /sbin/new-kernel-pkg --remove %{kernel_release}
1238 fi
1239
1240 %post
1241 %ifarch ia64
1242 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1243 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1244 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1245 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1246 %endif
1247 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1248 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1249 mv -f /boot/System.map{,.old} 2> /dev/null
1250 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1251 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1252 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1253 ln -sf System.map-%{kernel_release} /boot/System.map
1254 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1255
1256 %depmod %{kernel_release}
1257
1258 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1259 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1260 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1261 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1262 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1263
1264 if [ -x /sbin/new-kernel-pkg ]; then
1265         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1266 elif [ -x /sbin/rc-boot ]; then
1267         /sbin/rc-boot 1>&2 || :
1268 fi
1269
1270 %post vmlinux
1271 mv -f /boot/vmlinux{,.old} 2> /dev/null
1272 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1273 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1274 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1275
1276 %post libs
1277 %{_sbindir}/mkvmlinuz /boot/zImage-%{kernel_release} %{kernel_release}
1278
1279 %post drm
1280 %depmod %{kernel_release}
1281
1282 %postun drm
1283 %depmod %{kernel_release}
1284
1285 %post pcmcia
1286 %depmod %{kernel_release}
1287
1288 %postun pcmcia
1289 %depmod %{kernel_release}
1290
1291 %post sound-alsa
1292 %depmod %{kernel_release}
1293
1294 %postun sound-alsa
1295 %depmod %{kernel_release}
1296
1297 %post sound-oss
1298 %depmod %{kernel_release}
1299
1300 %postun sound-oss
1301 %depmod %{kernel_release}
1302
1303 %post headers
1304 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1305
1306 %postun headers
1307 if [ "$1" = "0" ]; then
1308         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1309                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1310                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1311                 fi
1312         fi
1313 fi
1314
1315 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1316 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1317 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1318
1319 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1320 if [ "$1" = 0 ]; then
1321         rm -f /lib/modules/%{kernel_release}/{build,source}
1322 fi
1323
1324 %files
1325 %defattr(644,root,root,755)
1326 %ifarch sparc sparc64
1327 /boot/vmlinux.aout-%{kernel_release}
1328 %endif
1329 %ifarch ia64
1330 /boot/efi/vmlinuz-%{kernel_release}
1331 %endif
1332 /boot/vmlinuz-%{kernel_release}
1333 /boot/System.map-%{kernel_release}
1334 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1335 /lib/firmware/%{kernel_release}
1336
1337 %dir /lib/modules/%{kernel_release}
1338 %dir /lib/modules/%{kernel_release}/kernel
1339 %ifnarch sparc
1340 /lib/modules/%{kernel_release}/kernel/arch
1341 %endif
1342 /lib/modules/%{kernel_release}/kernel/crypto
1343 /lib/modules/%{kernel_release}/kernel/drivers
1344 %if %{have_drm}
1345 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1346 %endif
1347 /lib/modules/%{kernel_release}/kernel/fs
1348 /lib/modules/%{kernel_release}/kernel/kernel
1349 /lib/modules/%{kernel_release}/kernel/lib
1350 /lib/modules/%{kernel_release}/kernel/net
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
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 aux_files
1482 %defattr(644,root,root,755)
1483 %ifarch ppc ppc64
1484 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1485 %endif
1486 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1487 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1488 %{_kernelsrcdir}/drivers/lguest/lg.h
1489 %{_kernelsrcdir}/kernel/bounds.c
1490 %dir %{_kernelsrcdir}/scripts
1491 %dir %{_kernelsrcdir}/scripts/kconfig
1492 %{_kernelsrcdir}/scripts/Kbuild.include
1493 %{_kernelsrcdir}/scripts/Makefile*
1494 %{_kernelsrcdir}/scripts/basic
1495 %{_kernelsrcdir}/scripts/mkmakefile
1496 %{_kernelsrcdir}/scripts/mod
1497 %{_kernelsrcdir}/scripts/setlocalversion
1498 %{_kernelsrcdir}/scripts/*.c
1499 %{_kernelsrcdir}/scripts/*.sh
1500 %{_kernelsrcdir}/scripts/kconfig/*
1501 %{_kernelsrcdir}/scripts/mkcompile_h
1502 %dir %{_kernelsrcdir}/scripts/selinux
1503 %{_kernelsrcdir}/scripts/selinux/Makefile
1504 %dir %{_kernelsrcdir}/scripts/selinux/mdp
1505 %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1506 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1507
1508 %files doc
1509 %defattr(644,root,root,755)
1510 %dir %{_docdir}/%{name}-%{version}
1511
1512 %{_docdir}/%{name}-%{version}/[!jkz]*
1513 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1514 %{_docdir}/%{name}-%{version}/kbuild
1515 %{_docdir}/%{name}-%{version}/kdump
1516 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1517 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1518 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1519
1520 %if %{with source}
1521 %files source -f aux_files_exc
1522 %defattr(644,root,root,755)
1523 %{_kernelsrcdir}/arch/*/[!Mik]*
1524 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1525 %{_kernelsrcdir}/arch/ia64/ia32/[!M]*
1526 %{_kernelsrcdir}/arch/ia64/install.sh
1527 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1528 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1529 %{_kernelsrcdir}/arch/parisc/install.sh
1530 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1531 %{_kernelsrcdir}/arch/ia64/kvm
1532 %{_kernelsrcdir}/arch/powerpc/kvm
1533 %ifarch ppc ppc64
1534 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1535 %endif
1536 %{_kernelsrcdir}/arch/s390/kvm
1537 %{_kernelsrcdir}/arch/x86/kvm
1538 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1539 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1540 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1541 %{_kernelsrcdir}/block
1542 %{_kernelsrcdir}/crypto
1543 %{_kernelsrcdir}/drivers
1544 %{_kernelsrcdir}/firmware
1545 %{_kernelsrcdir}/fs
1546 %if %{with grsecurity} && %{without rescuecd}
1547 %{_kernelsrcdir}/grsecurity
1548 %endif
1549 %{_kernelsrcdir}/init
1550 %{_kernelsrcdir}/ipc
1551 %{_kernelsrcdir}/kernel
1552 %exclude %{_kernelsrcdir}/kernel/bounds.c
1553 %{_kernelsrcdir}/lib
1554 %{_kernelsrcdir}/mm
1555 %{_kernelsrcdir}/net
1556 %{_kernelsrcdir}/virt
1557 %{_kernelsrcdir}/samples
1558 %{_kernelsrcdir}/scripts/*
1559 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1560 %exclude %{_kernelsrcdir}/scripts/Makefile*
1561 %exclude %{_kernelsrcdir}/scripts/basic
1562 %exclude %{_kernelsrcdir}/scripts/kconfig
1563 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1564 %exclude %{_kernelsrcdir}/scripts/mod
1565 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1566 %exclude %{_kernelsrcdir}/scripts/*.c
1567 %exclude %{_kernelsrcdir}/scripts/*.sh
1568 %{_kernelsrcdir}/sound
1569 %{_kernelsrcdir}/security
1570 %exclude %{_kernelsrcdir}/security/selinux/include
1571 %{_kernelsrcdir}/usr
1572 %{_kernelsrcdir}/COPYING
1573 %{_kernelsrcdir}/CREDITS
1574 %{_kernelsrcdir}/MAINTAINERS
1575 %{_kernelsrcdir}/README
1576 %{_kernelsrcdir}/REPORTING-BUGS
1577 %endif
This page took 0.13694 seconds and 4 git commands to generate.