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