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