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