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