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