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