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