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