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