]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- restore grub2 hook, disabled in config by default
[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         %{nil}
118 %define         rel             0.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:  7f615dd3b4a3b19fb86e479996a2deb5
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.1.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-201003071645.patch kernel-grsec_full.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 %if %{with reiserfs4}
382 Conflicts:      reiser4progs < 1.0.0
383 %endif
384 Conflicts:      reiserfsprogs < 3.6.3
385 Conflicts:      udev < 1:081
386 Conflicts:      util-linux < 2.10o
387 Conflicts:      util-vserver < 0.30.216
388 Conflicts:      xfsprogs < 2.6.0
389 %if %{with pae}
390 ExcludeArch:    i386 i486 i586
391 %else
392 ExclusiveArch:  %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
393 %endif
394 ExclusiveOS:    Linux
395 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
396
397 %ifarch %{ix86} %{x8664}
398 %define         target_arch_dir         x86
399 %endif
400 %ifarch ppc ppc64
401 %define         target_arch_dir         powerpc
402 %endif
403 %ifarch sparc sparc64
404 %define         target_arch_dir         sparc
405 %endif
406 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
407 %define         target_arch_dir         %{_target_base_arch}
408 %endif
409
410 %define         defconfig       arch/%{target_arch_dir}/defconfig
411
412 # No ELF objects there to strip (skips processing 27k files)
413 %define         _noautostrip    \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
414 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
415
416 %ifarch ia64
417 %define         initrd_dir      /boot/efi
418 %else
419 %define         initrd_dir      /boot
420 %endif
421
422 %define         topdir          %{_builddir}/%{name}-%{version}
423 %define         srcdir          %{topdir}/linux-%{basever}
424 %define         objdir          %{topdir}/%{targetobj}
425 %define         targetobj       %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
426
427 %define         _kernelsrcdir   /usr/src/linux%{_alt_kernel}-%{version}
428
429 %if "%{_target_base_arch}" != "%{_arch}"
430         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
431         %define DepMod /bin/true
432
433         %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
434         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
435         %define DepMod /sbin/depmod
436         %endif
437
438         %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
439         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
440         %define DepMod /sbin/depmod
441         %endif
442
443         %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
444         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
445         %define DepMod /sbin/depmod
446         %endif
447
448         %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
449         %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
450         %endif
451 %else
452         %ifarch ppc ppc64
453         %define CrossOpts ARCH=powerpc CC="%{__cc}"
454         %else
455         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
456         %endif
457         %define DepMod /sbin/depmod
458 %endif
459 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
460
461 %define __features Netfilter module dated: %{netfilter_snap}\
462 %{?with_grsec_full:Grsecurity support - enabled}\
463 %{?with_grsec_minimal:Grsecurity minimal support /proc,link,fifo,shm/ - enabled}\
464 %{?with_pax:PaX support - enabled}\
465 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
466 %{?with_nfsroot:Root on NFS - enabled}\
467 %{?with_apparmor:apparmor support - enabled}\
468
469 %define Features %(echo "%{__features}" | sed '/^$/d')
470
471 %description
472 This package contains the Linux kernel that is used to boot and run
473 your system. It contains few device drivers for specific hardware.
474 Most hardware is instead supported by modules loaded after booting.
475
476 %{Features}
477
478 %description -l de.UTF-8
479 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
480 Linux-Betriebssystems. Der Kernel ist für grundliegende
481 Systemfunktionen verantwortlich: Speicherreservierung,
482 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
483
484 %{Features}
485
486 %description -l fr.UTF-8
487 Le package kernel contient le kernel linux (vmlinuz), la partie
488 centrale d'un système d'exploitation Linux. Le noyau traite les
489 fonctions basiques d'un système d'exploitation: allocation mémoire,
490 allocation de process, entrée/sortie de peripheriques, etc.
491
492 %{Features}
493
494 %description -l pl.UTF-8
495 Pakiet zawiera jÄ…dro Linuksa niezbÄ™dne do prawidÅ‚owego dziaÅ‚ania
496 Twojego komputera. Zawiera w sobie sterowniki do sprzÄ™tu znajdujÄ…cego
497 siÄ™ w komputerze, takiego jak sterowniki dysków itp.
498
499 %{Features}
500
501 %package vmlinux
502 Summary:        vmlinux - uncompressed kernel image
503 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
504 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jÄ…dra
505 Group:          Base/Kernel
506 Obsoletes:      kernel-smp-vmlinux
507
508 %description vmlinux
509 vmlinux - uncompressed kernel image.
510
511 %description vmlinux -l de.UTF-8
512 vmlinux - dekompressiertes Kernel Bild.
513
514 %description vmlinux -l pl.UTF-8
515 vmlinux - rozpakowany obraz jÄ…dra.
516
517 %package drm
518 Summary:        DRM kernel modules
519 Summary(de.UTF-8):      DRM Kernel Treiber
520 Summary(pl.UTF-8):      Sterowniki DRM
521 Group:          Base/Kernel
522 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
523 Requires:       %{name} = %{epoch}:%{version}-%{release}
524 Obsoletes:      kernel-smp-drm
525 AutoReqProv:    no
526
527 %description drm
528 DRM kernel modules.
529
530 %description drm -l de.UTF-8
531 DRM Kernel Treiber.
532
533 %description drm -l pl.UTF-8
534 Sterowniki DRM.
535
536 %package pcmcia
537 Summary:        PCMCIA modules
538 Summary(de.UTF-8):      PCMCIA Module
539 Summary(pl.UTF-8):      ModuÅ‚y PCMCIA
540 Group:          Base/Kernel
541 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
542 Requires:       %{name} = %{epoch}:%{version}-%{release}
543 Obsoletes:      kernel-smp-pcmcia
544 Conflicts:      pcmcia-cs < 3.1.21
545 Conflicts:      pcmciautils < 004
546 AutoReqProv:    no
547
548 %description pcmcia
549 PCMCIA modules.
550
551 %description pcmcia -l de.UTF-8
552 PCMCIA Module.
553
554 %description pcmcia -l pl.UTF-8
555 ModuÅ‚y PCMCIA.
556
557 %package sound-alsa
558 Summary:        ALSA kernel modules
559 Summary(de.UTF-8):      ALSA Kernel Module
560 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku ALSA
561 Group:          Base/Kernel
562 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
563 Requires:       %{name} = %{epoch}:%{version}-%{release}
564 Obsoletes:      kernel-smp-sound-alsa
565 AutoReqProv:    no
566
567 %description sound-alsa
568 ALSA (Advanced Linux Sound Architecture) sound drivers.
569
570 %description sound-alsa -l de.UTF-8
571 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
572
573 %description sound-alsa -l pl.UTF-8
574 Sterowniki dźwiÄ™ku ALSA (Advanced Linux Sound Architecture).
575
576 %package sound-oss
577 Summary:        OSS kernel modules
578 Summary(de.UTF-8):      OSS Kernel Module
579 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku OSS
580 Group:          Base/Kernel
581 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
582 Requires:       %{name} = %{epoch}:%{version}-%{release}
583 Obsoletes:      kernel-smp-sound-oss
584 AutoReqProv:    no
585
586 %description sound-oss
587 OSS (Open Sound System) drivers.
588
589 %description sound-oss -l de.UTF-8
590 OSS (Open Sound System) Treiber.
591
592 %description sound-oss -l pl.UTF-8
593 Sterowniki dźwiÄ™ku OSS (Open Sound System).
594
595 %package headers
596 Summary:        Header files for the Linux kernel
597 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
598 Summary(pl.UTF-8):      Pliki nagłówkowe jÄ…dra Linuksa
599 Group:          Development/Building
600 Provides:       %{name}-headers(netfilter) = %{netfilter_snap}
601 AutoReqProv:    no
602
603 %description headers
604 These are the C header files for the Linux kernel, which define
605 structures and constants that are needed when rebuilding the kernel or
606 building kernel modules.
607
608 %description headers -l de.UTF-8
609 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
610 Strukturen und Konstante beinhalten, die beim rekompilieren des
611 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
612
613 %description headers -l pl.UTF-8
614 Pakiet zawiera pliki nagłówkowe jÄ…dra, niezbÄ™dne do rekompilacji jÄ…dra
615 oraz budowania modułów jÄ…dra.
616
617 %package module-build
618 Summary:        Development files for building kernel modules
619 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
620 Summary(pl.UTF-8):      Pliki sÅ‚użące do budowania modułów jÄ…dra
621 Group:          Development/Building
622 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
623 Conflicts:      rpmbuild(macros) < 1.547
624 AutoReqProv:    no
625
626 %description module-build
627 Development files from kernel source tree needed to build Linux kernel
628 modules from external packages.
629
630 %description module-build -l de.UTF-8
631 Development Dateien des Linux-Kernels die beim kompilieren externer
632 Kernel Module gebraucht werden.
633
634 %description module-build -l pl.UTF-8
635 Pliki ze drzewa ÅºródeÅ‚ jÄ…dra potrzebne do budowania modułów jÄ…dra
636 Linuksa z zewnÄ™trznych pakietów.
637
638 %package source
639 Summary:        Kernel source tree
640 Summary(de.UTF-8):      Der Kernel Quelltext
641 Summary(pl.UTF-8):      Kod ÅºródÅ‚owy jÄ…dra Linuksa
642 Group:          Development/Building
643 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
644 AutoReqProv:    no
645
646 %description source
647 This is the source code for the Linux kernel. You can build a custom
648 kernel that is better tuned to your particular hardware.
649
650 %description source -l de.UTF-8
651 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
652 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
653 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
654 im Kernel-Source definiert sind. Die Source-Dateien können auch
655 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
656 Hardware ausgerichtet ist.
657
658 %description source -l fr.UTF-8
659 Le package pour le kernel-source contient le code source pour le noyau
660 linux. Ces sources sont nécessaires pour compiler la plupart des
661 programmes C, car il dépend de constantes définies dans le code
662 source. Les sources peuvent Ãªtre aussi utilisée pour compiler un noyau
663 personnalisé pour avoir de meilleures performances sur des matériels
664 particuliers.
665
666 %description source -l pl.UTF-8
667 Pakiet zawiera kod ÅºródÅ‚owy jÄ…dra systemu.
668
669 %package doc
670 Summary:        Kernel documentation
671 Summary(de.UTF-8):      Kernel Dokumentation
672 Summary(pl.UTF-8):      Dokumentacja do jÄ…dra Linuksa
673 Group:          Documentation
674 AutoReqProv:    no
675
676 %description doc
677 This is the documentation for the Linux kernel, as found in
678 /usr/src/linux/Documentation directory.
679
680 %description doc -l de.UTF-8
681 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
682 Verzeichniss vorgefunden werden kann.
683
684 %description doc -l pl.UTF-8
685 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
686 /usr/src/linux/Documentation.
687
688 %prep
689 %setup -qc
690 ln -s %{SOURCE7} kernel-module-build.pl
691 ln -s %{SOURCE10} Makefile
692 cd linux-%{basever}
693
694 # hack against warning in pax/grsec
695 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
696
697 %if "%{postver}" != "%{nil}"
698 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
699 %endif
700
701 # tuxonice:
702 %if %{with tuxonice}
703 %patch69 -p1
704 %patch70 -p1
705 %endif
706
707 # tahoe9xx: 2.6.29 - need update
708 #%patch2 -p1
709
710 %if %{with fbcondecor}
711 %patch3 -p1
712 %endif
713 %patch4 -p1
714
715 ## netfilter
716 #
717
718 # kernel-pom-ng-IPV4OPTSSTRIP.patch
719 %patch10 -p1
720
721 # kernel-pom-ng-ipv4options.patch
722 %patch11 -p1
723
724 # kernel-pom-ng-ROUTE.patch
725 %patch14 -p1
726
727 # kernel-pom-ng-mms-conntrack-nat.patch
728 %patch16 -p1
729
730 # kernel-pom-ng-rsh.patch
731 %patch22 -p1
732
733 # kernel-pom-ng-rpc.patch
734 %patch23 -p1
735
736 # kernel-nf_rtsp.patch
737 %patch36 -p1
738
739 # kernel-owner-xid.patch
740 %if %{with vserver}
741 %patch37 -p1
742 %endif
743
744 # kernel-ipt_account.patch
745 %patch38 -p1
746
747 # kernel-ipt_ACCOUNT.patch
748 %patch39 -p1
749
750 # kernel-layer7.patch
751 %patch40 -p1
752
753 # ipvs-nfct
754 %patch41 -p1
755
756 ##
757 # end of netfilter
758
759 # zph
760 %patch49 -p1
761
762 %if %{with imq}
763 %patch50 -p1
764 %endif
765
766 # reiser4
767 %if %{with reiser4}
768 %patch51 -p1
769 %endif
770
771 # esfq
772 %if %{with esfq}
773 %patch53 -p1
774 %endif
775
776 %if %{with wrr}
777 %patch52 -p1
778 %endif
779
780 # toshiba_acpi
781 %patch54 -p1
782
783 %patch55 -p1
784 %patch56 -p1
785
786 # kernel-rndis_host-wm5.patch
787 %patch59 -p1
788
789 # hostap enhancements from/for aircrack-ng
790 %patch85 -p1
791
792 # LSI MPT Fusion driver update (by LSI via SUSE folks)
793 # FIXME!
794 #%patch90 -p1
795
796 # vserver
797 %if %{with vserver}
798 %patch100 -p1
799 %patch101 -p1
800 %endif
801
802 # forcedeth
803 %patch130 -p1
804
805 # unionfs (problems with aufs2, needed for aufs1 patch)
806 %if %{without rescuecd}
807 %patch140 -p1
808 %endif
809
810 %if %{with rescuecd}
811 # aufs2
812 %patch148 -p1
813 %else
814 # aufs1
815 #patch145 -p1
816 #patch146 -p1
817 %endif
818
819 %patch2500 -p1
820
821 %if %{with rescuecd}
822 %patch7000 -p1
823 %endif
824
825 # grsecurity & pax stuff
826 #
827
828 # remember that we have the same config file for grsec_minimal and
829 # grsec_full, but the patches are different.
830
831 %if %{with grsecurity}
832 %if %{with grsec_minimal}
833 %patch1000 -p1
834 %else
835 # grsec_full and/or pax
836 %patch9999 -p1
837 %{?with_vserver:%patch10000 -p1}
838 %{?with_vserver:%patch10001 -p1}
839 %{?with_vserver:%patch10002 -p1}
840 %endif
841 %endif
842 #
843 # end of grsecurity & pax stuff
844
845 # apparmor
846 %if %{with apparmor}
847 %patch5000 -p1
848 %endif
849
850 # FIXME
851 #%patch150 -p1
852
853 %patch160 -p1
854 %patch161 -p1
855
856 %ifarch ppc ppc64
857 #patch200 -p1
858 %endif
859
860 # routes
861 %patch300 -p1
862
863 # Small fixes:
864 %patch2000 -p1
865 %patch2001 -p1
866 #%patch2003 -p1
867
868 # Fix EXTRAVERSION in main Makefile
869 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}%{?alt_kernel:_%{alt_kernel}}#g' Makefile
870
871 # cleanup backups after patching
872 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
873
874 %build
875 install -d %{objdir}
876 cat > %{targetobj}.mk <<'EOF'
877 # generated by %{name}.spec
878 KERNELSRC               := %{_builddir}/%{name}-%{version}/linux-%{basever}
879 KERNELOUTPUT    := %{objdir}
880
881 SRCARCH         := %{target_arch_dir}
882 ARCH            := %{_target_base_arch}
883 Q                       := %{!?with_verbose:@}
884 MAKE_OPTS       := %{MakeOpts}
885 DEFCONFIG   := %{defconfig}
886 EOF
887
888 PaXconfig() {
889         set -x
890         cat <<-EOCONFIG > $1
891         %ifarch %{ix86}
892                 CONFIG_PAX_SEGMEXEC=y
893                 # performance impact on CPUs without NX bit
894                 CONFIG_PAX_PAGEEXEC=n
895                 # Testing KERNEXEC
896
897                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
898                 CONFIG_PCI_BIOS=n
899                 CONFIG_EFI=n
900         %endif
901
902         %ifarch ppc64
903                 CONFIG_PAX_NOELFRELOCS=n
904         %endif
905         %ifarch ppc
906                 CONFIG_PAX_EMUTRAMP=y
907                 CONFIG_PAX_EMUSIGRT=y
908                 CONFIG_PAX_EMUPLT=y
909         %endif
910
911         %ifarch sparc sparc64 alpha
912                 CONFIG_PAX_EMUPLT=y
913         %endif
914
915         # Now we have to check MAC system integration. Grsecurity (full) uses PAX_HAVE_ACL_FLAGS
916         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
917         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
918         # PAX_HOOK_ACL_FLAGS.
919
920         %if %{with grsec_full}
921                 # Hardening grsec options if with pax
922                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
923                 # almost rational (see HIDESYM help)
924                 CONFIG_GRKERNSEC_HIDESYM=y
925
926                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
927         %else
928                 CONFIG_PAX_HAVE_ACL_FLAGS=n
929                 CONFIG_PAX_HOOK_ACL_FLAGS=y
930         %endif
931 EOCONFIG
932
933         return 0
934 }
935
936 RescueConfig() {
937         set -x
938         cat <<-EOCONFIG > $1
939                 # CONFIG_SOUND is not set
940                 # CONFIG_AUDIT is not set
941                 # CONFIG_TR is not set
942                 # CONFIG_BT is not set
943                 # CONFIG_VIDEO_DEV is not set
944                 # CONFIG_DVB_CORE is not set
945                 # CONFIG_HAMRADIO is not set
946                 # CONFIG_ARCNET is not set
947                 # CONFIG_FB is not set
948                 # CONFIG_DRM is not set
949                 # CONFIG_WATCHDOG is not set
950                 # CONFIG_INPUT_JOYSTICK is not set
951                 # CONFIG_DEBUG_KERNEL is not set
952                 # CONFIG_ISDN is not set
953                 # CONFIG_AGP is not set
954                 # CONFIG_SECURITY is not set
955                 # CONFIG_PARIDE is not set
956                 # CONFIG_CPU_FREQ is not set
957                 # CONFIG_GAMEPORT is not set
958                 # CONFIG_KVM is not set
959                 # CONFIG_PHONE is not set
960                 # CONFIG_STRICT_DEVMEM is not set
961                 # CONFIG_IMA is not set
962                 CONFIG_AUFS=y
963                 CONFIG_AUFS_FS=y
964                 CONFIG_AUFS_BR_RAMFS=y
965                 CONFIG_AUFS_RDU=y
966                 CONFIG_BLK_DEV_LOOP=y
967                 CONFIG_ISO9660_FS=y
968                 CONFIG_NLS_UTF8=y
969 EOCONFIG
970
971         return 0
972 }
973
974 BuildConfig() {
975         %{?debug:set -x}
976         set -e
977
978         Config="kernel-%{target_arch_dir}.config"
979         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
980
981         # prepare local and important options
982         cat <<-EOCONFIG > important.config
983                 LOCALVERSION="-%{localversion}"
984
985 %if 0%{?debug:1}
986                 CONFIG_DEBUG_SLAB=y
987                 CONFIG_DEBUG_SLAB_LEAK=y
988                 CONFIG_DEBUG_PREEMPT=y
989                 CONFIG_RT_DEADLOCK_DETECT=y
990 %endif
991
992 # apparmor, will be moved to external file if works
993 %if %{with apparmor}
994                 CONFIG_SECURITY_APPARMOR=y
995                 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
996                 CONFIG_SECURITY_APPARMOR_DISABLE=n
997                 CONFIG_SECURITY_APPARMOR_NETWORK=y
998 %endif
999
1000 %if %{without ipv6}
1001                 CONFIG_IPV6=n
1002 %endif
1003
1004 %ifarch i686 athlon pentium3 pentium4
1005   %if %{with pae}
1006                 CONFIG_HIGHMEM4G=n
1007                 CONFIG_HIGHMEM64G=y
1008                 CONFIG_X86_PAE=y
1009                 CONFIG_NUMA=n
1010   %endif
1011 %endif
1012
1013 %if %{without pcmcia}
1014                 CONFIG_PCMCIA=n
1015 %endif
1016
1017 %if %{with fbcondecor}
1018                 CONFIG_FB_S3=n
1019                 CONFIG_FB_VT8623=n
1020                 CONFIG_FB_ARK=n
1021                 CONFIG_FB_TILEBLITTING=n
1022                 CONFIG_FB_CON_DECOR=y
1023 %endif
1024
1025 %if %{with nfsroot}
1026                 CONFIG_NFS_FS=y
1027                 CONFIG_ROOT_NFS=y
1028 %endif
1029
1030 # Temporary disabled RELOCATABLE. Needed only on x86??
1031 %if %{with pax} || %{with grsec_full}
1032                 CONFIG_RELOCATABLE=n
1033 %endif
1034 EOCONFIG
1035
1036 %if %{with rescuecd}
1037         RescueConfig rescue.config
1038 %endif
1039 %if %{with pax}
1040         PaXconfig pax.config
1041 %endif
1042
1043         # prepare kernel-style config file from multiple config files
1044         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
1045 %if %{with myown}
1046                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
1047 %endif
1048                 important.config \
1049 %if %{with rescuecd}
1050                 %{SOURCE58} \
1051                 %{SOURCE59} \
1052                 rescue.config \
1053 %endif
1054                 \
1055 %if %{with pax}
1056                 %{SOURCE45} \
1057                 %{SOURCE49} \
1058                 pax.config \
1059 %else
1060   %if %{with grsec_full}
1061                 %{SOURCE45} \
1062                 %{SOURCE50} \
1063   %else
1064         %if %{with grsec_minimal}
1065                 %{SOURCE51} \
1066         %endif
1067   %endif
1068 %endif
1069                 \
1070 %if %{with reiser4}
1071                 %{SOURCE56} \
1072 %endif
1073 %if %{with wrr}
1074                 %{SOURCE57} \
1075 %endif
1076 %if %{with imq}
1077                 %{SOURCE55} \
1078 %endif
1079 %if %{with vserver}
1080                 %{SOURCE43} \
1081 %endif
1082 %if %{with tuxonice}
1083 %ifarch %{ix86} %{x8664} ia64 ppc ppc64
1084                 %{SOURCE42} \
1085 %endif
1086 %endif
1087                 %{SOURCE40} %{?0:netfilter} \
1088                 %{SOURCE41} %{?0:patches} \
1089                 %{SOURCE20} \
1090                 $RPM_SOURCE_DIR/$Config
1091 }
1092
1093 cd %{objdir}
1094 install -d arch/%{target_arch_dir}
1095 BuildConfig > %{defconfig}
1096 ln -sf %{defconfig} .config
1097 cd -
1098
1099 %{__make} \
1100         TARGETOBJ=%{targetobj} \
1101         %{?with_verbose:V=1} \
1102         oldconfig
1103
1104 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1105
1106 # build kernel
1107 %{__make} \
1108         TARGETOBJ=%{targetobj} \
1109         %{?with_verbose:V=1} \
1110         all
1111
1112 %install
1113 rm -rf $RPM_BUILD_ROOT
1114 %{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install firmware_install \
1115         -C %{objdir} \
1116         %{?with_verbose:V=1} \
1117         DEPMOD=%{DepMod} \
1118         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1119         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1120         KERNELRELEASE=%{kernel_release}
1121
1122 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1123
1124 # create directories which may be missing, to simplyfy %files
1125 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1126
1127 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1128 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1129 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1130
1131 # no point embed content for %ghost files. empty them
1132 for a in \
1133         dep{,.bin} \
1134         alias{,.bin} \
1135         symbols{,.bin} \
1136         {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1137 ; do
1138         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1139         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1140 done
1141
1142 # /boot
1143 install -d $RPM_BUILD_ROOT/boot
1144 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1145 %ifarch %{ix86} %{x8664}
1146 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1147 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1148 %endif
1149 %ifarch ppc ppc64
1150 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1151 install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1152 %endif
1153 %ifarch ia64
1154 %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1155 cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1156 ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1157 %endif
1158 %ifarch alpha sparc sparc64
1159         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1160         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1161         install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1162 %ifarch sparc
1163         elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1164         install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1165 %endif
1166 %ifarch sparc64
1167         elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1168         install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1169 %endif
1170 %ifarch arm
1171         install %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1172 %endif
1173 %endif
1174
1175 # ghosted initrd
1176 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1177
1178 %if "%{_target_base_arch}" != "%{_arch}"
1179 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1180 %endif
1181
1182 # /etc/modrobe.d
1183 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1184
1185 # /usr/src/linux
1186 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
1187 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1188 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1189         l=l
1190         rm -f $RPM_BUILD_ROOT/COPYING
1191 fi
1192
1193 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1194 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
1195 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
1196 cp -a %{objdir}/include/generated/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf-dist.h
1197 cp -a %{objdir}/include/generated/utsrelease.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
1198 cp -a %{objdir}/include/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
1199 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
1200 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
1201
1202 # collect module-build files and directories
1203 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1204 fileoutdir=$(pwd)
1205 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1206 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1207 cd -
1208
1209 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1210 install -d $RPM_BUILD_ROOT%{_docdir}
1211 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1212
1213 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1214 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1215 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1216 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1217
1218 %clean
1219 rm -rf $RPM_BUILD_ROOT
1220
1221 %preun
1222 if [ -x /sbin/new-kernel-pkg ]; then
1223         /sbin/new-kernel-pkg --remove %{kernel_release}
1224 fi
1225
1226 %post
1227 %ifarch ia64
1228 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1229 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1230 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1231 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1232 %endif
1233 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1234 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1235 mv -f /boot/System.map{,.old} 2> /dev/null
1236 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1237 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1238 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1239 ln -sf System.map-%{kernel_release} /boot/System.map
1240 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1241
1242 %depmod %{kernel_release}
1243
1244 /sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1245 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1246 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1247 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1248 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1249
1250 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1251         . /etc/sysconfig/grub
1252         if [ "$UPDATE_GRUB" = "yes" ]; then
1253                 /sbin/update-grub >/dev/null 2>&1
1254         fi
1255 fi
1256
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.187016 seconds and 3 git commands to generate.