]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
up to 3.0.50
[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_without  pae             # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
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         basever         3.0
96 %define         postver         .50
97 %define         rel             0.1
98
99 %define         _enable_debug_packages                  0
100
101 %define         tuxonice_version        3.2
102
103 %if %{with myown}
104 %if "%{_alt_kernel}" == ""
105 %define         alt_kernel      myown
106 %endif
107 %else # not myown:
108 %if %{with vanilla}
109 %define         alt_kernel      vanilla
110 %else # not vanilla:
111 %if %{with rescuecd}
112 %define         alt_kernel      rescuecd
113 %else # not rescuecd:
114 %define         __alt_kernel    %{?with_pax:.pax}%{!?with_grsecurity:.nogrsecurity}
115 %if "%{__alt_kernel}" != ""
116 %define         alt_kernel      %{__alt_kernel}
117 %endif
118 %endif # not rescuecd
119 %endif # not vanilla
120 %endif # not myown
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:  ecf932280e2441bdd992423ef3d55f8f
141 %if "%{postver}" != ".0"
142 Patch0:         http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
143 # Patch0-md5:   d278411821f5fa342ca3ac8bb2563618
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.25-vs2.3.2.3.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.11_for_3.0.18.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 https://github.com/slashbeast/grsecurity-scrape/blob/master/test/grsecurity-2.2.2-3.0.9-201111161802.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:  virtual(module-tools)
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): virtual(module-tools)
318 Requires:       /sbin/depmod
319 Requires:       coreutils
320 Requires:       geninitrd >= 10000-3
321 Requires:       virtual(module-tools)
322 %if %{with pae}
323 %ifarch i686 athlon pentium3 pentium4
324 Requires:       cpuinfo(pae)
325 %endif
326 %endif
327 Suggests:       keyutils
328 Suggests:       dracut
329 Provides:       %{name}(netfilter) = 20070806
330 Provides:       %{name}(vermagic) = %{kernel_release}
331 Obsoletes:      kernel%{_alt_kernel}-isdn-mISDN
332 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ene0100
333 Obsoletes:      kernel%{_alt_kernel}-char-lirc-it87
334 Obsoletes:      kernel%{_alt_kernel}-char-lirc-ite8709
335 Obsoletes:      kernel%{_alt_kernel}-char-lirc-mceusb
336 Obsoletes:      kernel%{_alt_kernel}-char-lirc-streamzap
337 Obsoletes:      kernel-firmware
338 Obsoletes:      kernel-misc-acer_acpi
339 Obsoletes:      kernel-misc-fuse
340 Obsoletes:      kernel-misc-uvc
341 Obsoletes:      kernel-modules
342 Obsoletes:      kernel-net-ar81
343 Obsoletes:      kernel-net-hostap
344 Obsoletes:      kernel-net-ieee80211
345 Obsoletes:      kernel-net-ipp2p
346 Obsoletes:      kernel-net-rt61
347 Obsoletes:      kernel-smp
348 Conflicts:      e2fsprogs < 1.29
349 Conflicts:      isdn4k-utils < 3.1pre1
350 Conflicts:      jfsutils < 1.1.3
351 Conflicts:      lvm2 < 2.02.40
352 Conflicts:      module-init-tools < 3.16
353 Conflicts:      nfs-utils < 1.0.5
354 Conflicts:      oprofile < 0.9
355 Conflicts:      ppp < 1:2.4.0
356 Conflicts:      procps < 3.2.0
357 Conflicts:      quota-tools < 3.09
358 %{?with_reiserfs4:Conflicts:    reiser4progs < 1.0.0}
359 Conflicts:      reiserfsprogs < 3.6.3
360 Conflicts:      rpm < 4.4.2-0.2
361 Conflicts:      udev < 1:081
362 Conflicts:      util-linux < 2.10o
363 Conflicts:      util-vserver < 0.30.216
364 Conflicts:      xfsprogs < 2.6.0
365 ExclusiveArch:  %{ix86} %{x8664} alpha arm ia64 ppc ppc64 sparc sparc64
366 ExclusiveOS:    Linux
367 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
368
369 %ifarch %{ix86} %{x8664}
370 %define         target_arch_dir         x86
371 %endif
372 %ifarch ppc ppc64
373 %define         target_arch_dir         powerpc
374 %endif
375 %ifarch sparc sparc64
376 %define         target_arch_dir         sparc
377 %endif
378 %ifnarch %{ix86} %{x8664} ppc ppc64 sparc sparc64
379 %define         target_arch_dir         %{_target_base_arch}
380 %endif
381
382 %define         defconfig       arch/%{target_arch_dir}/defconfig
383
384 # No ELF objects there to strip (skips processing 27k files)
385 %define         _noautostrip    \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
386 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
387
388 %ifarch ia64
389 %define         initrd_dir      /boot/efi
390 %else
391 %define         initrd_dir      /boot
392 %endif
393
394 %define         topdir          %{_builddir}/%{name}-%{version}
395 %define         srcdir          %{topdir}/linux-%{basever}
396 %define         objdir          %{topdir}/%{targetobj}
397 %define         targetobj       %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
398
399 %define         _kernelsrcdir   /usr/src/linux%{_alt_kernel}-%{version}
400
401 %if "%{_target_base_arch}" != "%{_arch}"
402         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
403         %define DepMod /bin/true
404
405         %if "%{_arch}" == "sparc" && "%{_target_base_arch}" == "sparc64"
406         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
407         %define DepMod /sbin/depmod
408         %endif
409
410         %if "%{_arch}" == "sparc64" && "%{_target_base_arch}" == "sparc"
411         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
412         %define DepMod /sbin/depmod
413         %endif
414
415         %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
416         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
417         %define DepMod /sbin/depmod
418         %endif
419
420         %if "%{_target_base_arch}" == "ppc" || "%{_target_base_arch}" == "ppc64"
421         %define CrossOpts ARCH=powerpc CROSS_COMPILE=%{_target_cpu}-pld-linux-
422         %endif
423 %else
424         %ifarch ppc ppc64
425         %define CrossOpts ARCH=powerpc CC="%{__cc}"
426         %else
427         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
428         %endif
429         %define DepMod /sbin/depmod
430 %endif
431 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
432
433 %define __features \
434 %{?with_grsecurity:Grsecurity support - enabled}\
435 %{?with_pax:PaX support - enabled}\
436 %{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
437 %{?with_nfsroot:Root on NFS - enabled}\
438
439 %define Features %(echo "%{__features}" | sed '/^$/d')
440
441 %description
442 This package contains the Linux kernel that is used to boot and run
443 your system. It contains few device drivers for specific hardware.
444 Most hardware is instead supported by modules loaded after booting.
445
446 %{Features}
447
448 %description -l de.UTF-8
449 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
450 Linux-Betriebssystems. Der Kernel ist für grundliegende
451 Systemfunktionen verantwortlich: Speicherreservierung,
452 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
453
454 %{Features}
455
456 %description -l fr.UTF-8
457 Le package kernel contient le kernel linux (vmlinuz), la partie
458 centrale d'un système d'exploitation Linux. Le noyau traite les
459 fonctions basiques d'un système d'exploitation: allocation mémoire,
460 allocation de process, entrée/sortie de peripheriques, etc.
461
462 %{Features}
463
464 %description -l pl.UTF-8
465 Pakiet zawiera jÄ…dro Linuksa niezbÄ™dne do prawidÅ‚owego dziaÅ‚ania
466 Twojego komputera. Zawiera w sobie sterowniki do sprzÄ™tu znajdujÄ…cego
467 siÄ™ w komputerze, takiego jak sterowniki dysków itp.
468
469 %{Features}
470
471 %package vmlinux
472 Summary:        vmlinux - uncompressed kernel image
473 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
474 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jÄ…dra
475 Group:          Base/Kernel
476 Obsoletes:      kernel-smp-vmlinux
477
478 %description vmlinux
479 vmlinux - uncompressed kernel image.
480
481 %description vmlinux -l de.UTF-8
482 vmlinux - dekompressiertes Kernel Bild.
483
484 %description vmlinux -l pl.UTF-8
485 vmlinux - rozpakowany obraz jÄ…dra.
486
487 %package drm
488 Summary:        DRM kernel modules
489 Summary(de.UTF-8):      DRM Kernel Treiber
490 Summary(pl.UTF-8):      Sterowniki DRM
491 Group:          Base/Kernel
492 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
493 Requires:       %{name} = %{epoch}:%{version}-%{release}
494 Obsoletes:      kernel-smp-drm
495 AutoReqProv:    no
496
497 %description drm
498 DRM kernel modules.
499
500 %description drm -l de.UTF-8
501 DRM Kernel Treiber.
502
503 %description drm -l pl.UTF-8
504 Sterowniki DRM.
505
506 %package pcmcia
507 Summary:        PCMCIA modules
508 Summary(de.UTF-8):      PCMCIA Module
509 Summary(pl.UTF-8):      ModuÅ‚y PCMCIA
510 Group:          Base/Kernel
511 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
512 Requires:       %{name} = %{epoch}:%{version}-%{release}
513 Obsoletes:      kernel-smp-pcmcia
514 Conflicts:      pcmcia-cs < 3.1.21
515 Conflicts:      pcmciautils < 004
516 AutoReqProv:    no
517
518 %description pcmcia
519 PCMCIA modules.
520
521 %description pcmcia -l de.UTF-8
522 PCMCIA Module.
523
524 %description pcmcia -l pl.UTF-8
525 ModuÅ‚y PCMCIA.
526
527 %package sound-alsa
528 Summary:        ALSA kernel modules
529 Summary(de.UTF-8):      ALSA Kernel Module
530 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku ALSA
531 Group:          Base/Kernel
532 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
533 Requires:       %{name} = %{epoch}:%{version}-%{release}
534 Obsoletes:      kernel-smp-sound-alsa
535 AutoReqProv:    no
536
537 %description sound-alsa
538 ALSA (Advanced Linux Sound Architecture) sound drivers.
539
540 %description sound-alsa -l de.UTF-8
541 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
542
543 %description sound-alsa -l pl.UTF-8
544 Sterowniki dźwiÄ™ku ALSA (Advanced Linux Sound Architecture).
545
546 %package sound-oss
547 Summary:        OSS kernel modules
548 Summary(de.UTF-8):      OSS Kernel Module
549 Summary(pl.UTF-8):      Sterowniki dźwiÄ™ku OSS
550 Group:          Base/Kernel
551 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
552 Requires:       %{name} = %{epoch}:%{version}-%{release}
553 Obsoletes:      kernel-smp-sound-oss
554 AutoReqProv:    no
555
556 %description sound-oss
557 OSS (Open Sound System) drivers.
558
559 %description sound-oss -l de.UTF-8
560 OSS (Open Sound System) Treiber.
561
562 %description sound-oss -l pl.UTF-8
563 Sterowniki dźwiÄ™ku OSS (Open Sound System).
564
565 %package headers
566 Summary:        Header files for the Linux kernel
567 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
568 Summary(pl.UTF-8):      Pliki nagłówkowe jÄ…dra Linuksa
569 Group:          Development/Building
570 Provides:       %{name}-headers(netfilter) = 20070806
571 AutoReqProv:    no
572
573 %description headers
574 These are the C header files for the Linux kernel, which define
575 structures and constants that are needed when rebuilding the kernel or
576 building kernel modules.
577
578 %description headers -l de.UTF-8
579 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
580 Strukturen und Konstante beinhalten, die beim rekompilieren des
581 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
582
583 %description headers -l pl.UTF-8
584 Pakiet zawiera pliki nagłówkowe jÄ…dra, niezbÄ™dne do rekompilacji jÄ…dra
585 oraz budowania modułów jÄ…dra.
586
587 %package module-build
588 Summary:        Development files for building kernel modules
589 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
590 Summary(pl.UTF-8):      Pliki sÅ‚użące do budowania modułów jÄ…dra
591 Group:          Development/Building
592 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
593 Conflicts:      rpmbuild(macros) < 1.642
594 AutoReqProv:    no
595
596 %description module-build
597 Development files from kernel source tree needed to build Linux kernel
598 modules from external packages.
599
600 %description module-build -l de.UTF-8
601 Development Dateien des Linux-Kernels die beim kompilieren externer
602 Kernel Module gebraucht werden.
603
604 %description module-build -l pl.UTF-8
605 Pliki ze drzewa ÅºródeÅ‚ jÄ…dra potrzebne do budowania modułów jÄ…dra
606 Linuksa z zewnÄ™trznych pakietów.
607
608 %package source
609 Summary:        Kernel source tree
610 Summary(de.UTF-8):      Der Kernel Quelltext
611 Summary(pl.UTF-8):      Kod ÅºródÅ‚owy jÄ…dra Linuksa
612 Group:          Development/Building
613 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
614 AutoReqProv:    no
615
616 %description source
617 This is the source code for the Linux kernel. You can build a custom
618 kernel that is better tuned to your particular hardware.
619
620 %description source -l de.UTF-8
621 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
622 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
623 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
624 im Kernel-Source definiert sind. Die Source-Dateien können auch
625 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
626 Hardware ausgerichtet ist.
627
628 %description source -l fr.UTF-8
629 Le package pour le kernel-source contient le code source pour le noyau
630 linux. Ces sources sont nécessaires pour compiler la plupart des
631 programmes C, car il dépend de constantes définies dans le code
632 source. Les sources peuvent Ãªtre aussi utilisée pour compiler un noyau
633 personnalisé pour avoir de meilleures performances sur des matériels
634 particuliers.
635
636 %description source -l pl.UTF-8
637 Pakiet zawiera kod ÅºródÅ‚owy jÄ…dra systemu.
638
639 %package doc
640 Summary:        Kernel documentation
641 Summary(de.UTF-8):      Kernel Dokumentation
642 Summary(pl.UTF-8):      Dokumentacja do jÄ…dra Linuksa
643 Group:          Documentation
644 AutoReqProv:    no
645
646 %description doc
647 This is the documentation for the Linux kernel, as found in
648 /usr/src/linux/Documentation directory.
649
650 %description doc -l de.UTF-8
651 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
652 Verzeichniss vorgefunden werden kann.
653
654 %description doc -l pl.UTF-8
655 Pakiet zawiera dokumentacjÄ™ do jÄ…dra Linuksa pochodzÄ…cÄ… z katalogu
656 /usr/src/linux/Documentation.
657
658 %prep
659 %setup -qc
660 ln -s %{SOURCE7} kernel-module-build.pl
661 ln -s %{SOURCE10} Makefile
662 cd linux-%{basever}
663
664 # hack against warning in pax/grsec
665 sed -i 's/-Werror//' arch/alpha/kernel/Makefile
666
667
668 %if "%{postver}" != ".0"
669 %patch0 -p1
670 %endif
671
672 %if %{without vanilla}
673
674 # tuxonice:
675 %if %{with tuxonice}
676 %patch69 -p1
677 %patch70 -p1
678 %endif
679
680 %if %{with fbcondecor}
681 %patch3 -p1
682 %endif
683 %patch4 -p1
684 %patch5 -p1
685
686 ## netfilter
687 #
688
689 # kernel-pom-ng-IPV4OPTSSTRIP.patch
690 %patch10 -p1
691
692 # kernel-pom-ng-mms-conntrack-nat.patch
693 %patch16 -p1
694
695 # kernel-pom-ng-rsh.patch
696 %patch22 -p1
697
698 # kernel-pom-ng-rpc.patch
699 %patch23 -p1
700
701 # kernel-nf_rtsp.patch
702 %patch36 -p1
703
704 # kernel-owner-xid.patch
705 %if %{with vserver}
706 %patch37 -p1
707 %endif
708
709 # kernel-layer7.patch
710 %patch40 -p1
711
712 ##
713 # end of netfilter
714
715 # zph
716 %patch49 -p1
717
718 %if %{with imq}
719 %patch50 -p1
720 %endif
721
722 # reiser4
723 %if %{with reiser4}
724 %patch51 -p1
725 %endif
726
727 # esfq
728 %if %{with esfq}
729 %patch53 -p1
730 %endif
731
732 %if %{with wrr}
733 %patch52 -p1
734 %endif
735
736 # toshiba_acpi
737 %patch54 -p1
738
739 %patch55 -p1
740 %patch56 -p1
741
742 # kernel-rndis_host-wm5.patch
743 %patch59 -p1
744
745 # hostap enhancements from/for aircrack-ng
746 %patch85 -p1
747
748 # vserver
749 %if %{with vserver}
750 %patch100 -p1
751 %patch101 -p1
752 %endif
753
754 # forcedeth
755 %patch130 -p1
756
757 # aufs2
758 %if %{with reiser4}
759 %patch148 -p1
760 %endif
761 %patch145 -p1
762 %patch146 -p1
763
764 # unionfs
765 %patch140 -p1
766
767 %if %{with rescuecd}
768 %patch7000 -p1
769 %endif
770
771 # grsecurity & pax stuff
772 #
773
774 %if %{with grsecurity}
775 %patch9999 -p1
776 # aufs needs this
777 %patch147 -p1
778 %{?with_vserver:%patch10000 -p1}
779 %{?with_vserver:%patch10001 -p1}
780 %{?with_vserver:%patch10002 -p1}
781 %endif
782 #
783 # end of grsecurity & pax stuff
784
785 # apparmor
786 %patch5000 -p1
787
788 %patch250 -p1
789
790 # virtio-gl
791 %patch400 -p1
792
793 %endif # vanilla
794
795 # Small fixes:
796 %patch2000 -p1
797 %patch2001 -p1
798 #%patch2003 -p1
799
800 # Do not remove this, please!
801 #%patch50000 -p1
802
803 # Fix EXTRAVERSION in main Makefile
804 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
805
806 # cleanup backups after patching
807 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
808
809 %build
810 install -d %{objdir}
811 cat > %{targetobj}.mk <<'EOF'
812 # generated by %{name}.spec
813 KERNELSRC               := %{srcdir}
814 KERNELOUTPUT    := %{objdir}
815
816 SRCARCH         := %{target_arch_dir}
817 ARCH            := %{_target_base_arch}
818 Q                       := %{!?with_verbose:@}
819 MAKE_OPTS       := %{MakeOpts}
820 DEFCONFIG   := %{defconfig}
821 EOF
822
823 PaXconfig() {
824         set -x
825         cat <<-EOCONFIG > $1
826         %ifarch %{ix86}
827                 CONFIG_PAX_SEGMEXEC=y
828                 # performance impact on CPUs without NX bit
829                 CONFIG_PAX_PAGEEXEC=n
830                 # Testing KERNEXEC
831
832                 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=n
833                 CONFIG_PCI_BIOS=n
834                 CONFIG_EFI=n
835         %endif
836
837         %ifarch ppc64
838                 CONFIG_PAX_NOELFRELOCS=n
839         %endif
840         %ifarch ppc
841                 CONFIG_PAX_EMUTRAMP=y
842                 CONFIG_PAX_EMUSIGRT=y
843                 CONFIG_PAX_EMUPLT=y
844         %endif
845
846         %ifarch sparc sparc64 alpha
847                 CONFIG_PAX_EMUPLT=y
848         %endif
849
850         # Now we have to check MAC system integration. Grsecurity uses PAX_HAVE_ACL_FLAGS
851         # setting (direct acces). grsec_minimal probably have no idea about PaX so we probably
852         # could use PAX_NO_ACL_FLAGS, but for testing the hooks setting will be used
853         # PAX_HOOK_ACL_FLAGS.
854
855         %if %{with grsecurity}
856                 # Hardening grsec options if with pax
857                 CONFIG_GRKERNSEC_PROC_MEMMAP=y
858                 # almost rational (see HIDESYM help)
859                 CONFIG_GRKERNSEC_HIDESYM=y
860
861                 # no change needed CONFIG=PAX_HAVE_ACL_FLAGS=y is taken from the kernel-pax.config
862         %else
863                 CONFIG_PAX_HAVE_ACL_FLAGS=n
864                 CONFIG_PAX_HOOK_ACL_FLAGS=y
865         %endif
866 EOCONFIG
867
868         return 0
869 }
870
871 RescueConfig() {
872         set -x
873         cat <<-EOCONFIG > $1
874                 # CONFIG_SOUND is not set
875                 # CONFIG_AUDIT is not set
876                 # CONFIG_TR is not set
877                 # CONFIG_BT is not set
878                 # CONFIG_VIDEO_DEV is not set
879                 # CONFIG_DVB_CORE is not set
880                 # CONFIG_HAMRADIO is not set
881                 # CONFIG_ARCNET is not set
882                 # CONFIG_FB is not set
883                 # CONFIG_DRM is not set
884                 # CONFIG_WATCHDOG is not set
885                 # CONFIG_INPUT_JOYSTICK is not set
886                 # CONFIG_DEBUG_KERNEL is not set
887                 # CONFIG_ISDN is not set
888                 # CONFIG_AGP is not set
889                 # CONFIG_SECURITY is not set
890                 # CONFIG_PARIDE is not set
891                 # CONFIG_CPU_FREQ is not set
892                 # CONFIG_GAMEPORT is not set
893                 # CONFIG_KVM is not set
894                 # CONFIG_PHONE is not set
895                 # CONFIG_STRICT_DEVMEM is not set
896                 # CONFIG_IMA is not set
897                 CONFIG_AUFS=y
898                 CONFIG_AUFS_FS=y
899                 CONFIG_AUFS_BR_RAMFS=y
900                 CONFIG_AUFS_RDU=y
901                 CONFIG_BLK_DEV_LOOP=y
902                 CONFIG_ISO9660_FS=y
903                 CONFIG_NLS_UTF8=y
904                 CONFIG_SQUASHFS=y
905 EOCONFIG
906
907         return 0
908 }
909
910 BuildConfig() {
911         %{?debug:set -x}
912         set -e
913
914         Config="kernel-%{target_arch_dir}.config"
915         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
916
917         # prepare local and important options
918         cat <<-EOCONFIG > important.config
919                 LOCALVERSION="-%{localversion}"
920
921 %if 0%{?debug:1}
922                 CONFIG_DEBUG_SLAB=y
923                 CONFIG_DEBUG_SLAB_LEAK=y
924                 CONFIG_DEBUG_PREEMPT=y
925                 CONFIG_RT_DEADLOCK_DETECT=y
926 %endif
927
928 %if %{without ipv6}
929                 CONFIG_IPV6=n
930 %endif
931
932 %ifarch i686 athlon pentium3 pentium4
933   %if %{with pae}
934                 CONFIG_HIGHMEM4G=n
935                 CONFIG_HIGHMEM64G=y
936                 CONFIG_X86_PAE=y
937                 CONFIG_NUMA=n
938   %endif
939 %endif
940
941 %if %{without pcmcia}
942                 CONFIG_PCMCIA=n
943 %endif
944
945 %if %{with fbcondecor}
946                 CONFIG_FB_S3=n
947                 CONFIG_FB_VT8623=n
948                 CONFIG_FB_ARK=n
949                 CONFIG_FB_TILEBLITTING=n
950                 CONFIG_FB_CON_DECOR=y
951 %endif
952
953 %if %{with nfsroot}
954                 CONFIG_NFS_FS=y
955                 CONFIG_ROOT_NFS=y
956 %endif
957
958 # Temporary disabled RELOCATABLE. Needed only on x86??
959 %if %{with pax} || %{with grsecurity}
960                 CONFIG_RELOCATABLE=n
961 %endif
962 EOCONFIG
963
964 %if %{with rescuecd}
965         RescueConfig rescue.config
966 %endif
967 %if %{with pax}
968         PaXconfig pax.config
969 %endif
970
971         # prepare kernel-style config file from multiple config files
972         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
973 %if %{with myown}
974                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
975 %endif
976                 important.config \
977 %if %{without vanilla}
978 %if %{with rescuecd}
979                 %{SOURCE58} \
980                 rescue.config \
981 %endif
982                 \
983 %if %{with pax}
984                 %{SOURCE45} \
985                 %{SOURCE49} \
986                 pax.config \
987 %else
988   %if %{with grsecurity}
989                 %{SOURCE45} \
990                 %{SOURCE50} \
991   %endif
992 %endif
993                 \
994 %if %{with reiser4}
995                 %{SOURCE56} \
996 %endif
997 %if %{with wrr}
998                 %{SOURCE57} \
999 %endif
1000 %if %{with imq}
1001                 %{SOURCE55} \
1002 %endif
1003 %if %{with vserver}
1004                 %{SOURCE43} \
1005 %endif
1006 %if %{with tuxonice}
1007 %ifarch %{ix86} %{x8664} ia64 ppc ppc64
1008                 %{SOURCE42} \
1009 %endif
1010 %endif
1011                 %{SOURCE41} %{?0:patches} \
1012 %endif
1013                 %{SOURCE20} \
1014                 $RPM_SOURCE_DIR/$Config
1015 }
1016
1017 cd %{objdir}
1018 install -d arch/%{target_arch_dir}
1019 BuildConfig > %{defconfig}
1020 ln -sf %{defconfig} .config
1021 cd -
1022
1023 %{__make} \
1024         TARGETOBJ=%{targetobj} \
1025         %{?with_verbose:V=1} \
1026         oldconfig
1027
1028 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
1029
1030 # build kernel
1031 %{__make} \
1032         TARGETOBJ=%{targetobj} \
1033         %{?with_verbose:V=1} \
1034         all
1035
1036 %install
1037 rm -rf $RPM_BUILD_ROOT
1038 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
1039         -C %{objdir} \
1040         %{?with_verbose:V=1} \
1041         DEPMOD=%{DepMod} \
1042         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
1043         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
1044         KERNELRELEASE=%{kernel_release}
1045
1046 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
1047
1048 # create directories which may be missing, to simplyfy %files
1049 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
1050
1051 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
1052 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1053 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
1054
1055 # no point embed content for %ghost files. empty them
1056 for a in \
1057         dep{,.bin} \
1058         alias{,.bin} \
1059         devname \
1060         softdep \
1061         symbols{,.bin} \
1062         {pci,usb,ccw,isapnp,input,ieee1394,serio,of}map \
1063 ; do
1064         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1065         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
1066 done
1067
1068 # /boot
1069 install -d $RPM_BUILD_ROOT/boot
1070 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
1071 %ifarch %{ix86} %{x8664}
1072         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1073         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1074 %endif
1075 %ifarch ppc ppc64
1076         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1077         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
1078 %endif
1079 %ifarch ia64
1080         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1081         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
1082         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1083 %endif
1084 %ifarch alpha sparc sparc64
1085         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
1086         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1087         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1088         %ifarch sparc
1089                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
1090                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1091         %endif
1092         %ifarch sparc64
1093                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
1094                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
1095         %endif
1096 %endif
1097 %ifarch arm
1098         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
1099 %endif
1100
1101 # ghosted initrd
1102 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
1103 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
1104
1105 %if "%{_target_base_arch}" != "%{_arch}"
1106 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
1107 %endif
1108
1109 # /etc/modrobe.d
1110 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
1111
1112 # /usr/src/linux
1113 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
1114
1115 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
1116 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
1117         l=l
1118         rm -f $RPM_BUILD_ROOT/COPYING
1119 fi
1120
1121 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
1122 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
1123 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
1124 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
1125
1126 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
1127 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
1128
1129 # collect module-build files and directories
1130 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
1131 fileoutdir=$(pwd)
1132 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
1133 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
1134 cd -
1135
1136 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
1137         ff=${f##%{objdir}/}
1138         if [ -x "$f" ]; then
1139                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1140         else
1141                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
1142         fi
1143         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
1144         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
1145 done
1146
1147 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1148 install -d $RPM_BUILD_ROOT%{_docdir}
1149 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1150
1151 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1152 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1153 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1154 rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1155
1156 %clean
1157 rm -rf $RPM_BUILD_ROOT
1158
1159 %preun
1160 if [ -x /sbin/new-kernel-pkg ]; then
1161         /sbin/new-kernel-pkg --remove %{kernel_release}
1162 fi
1163
1164 %post
1165 %ifarch ia64
1166 mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1167 %{?alt_kernel:mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1168 ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1169 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}}
1170 %endif
1171 mv -f /boot/vmlinuz{,.old} 2> /dev/null
1172 %{?alt_kernel:mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null}
1173 mv -f /boot/System.map{,.old} 2> /dev/null
1174 %{?alt_kernel:mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null}
1175 ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1176 %{?alt_kernel:ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}}
1177 ln -sf System.map-%{kernel_release} /boot/System.map
1178 %{?alt_kernel:ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}}
1179
1180 %depmod %{kernel_release}
1181
1182 %posttrans
1183 # generate initrd after all dependant modules are installed
1184 /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1185 mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1186 %{?alt_kernel:mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null}
1187 ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1188 %{?alt_kernel:ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}}
1189
1190 # if dracut is present then generate full-featured initramfs
1191 if [ -x /sbin/dracut ]; then
1192         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1193 fi
1194
1195 # update boot loaders when old package files are gone from filesystem
1196 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1197         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1198                 /sbin/update-grub >/dev/null
1199         fi
1200 fi
1201 if [ -x /sbin/new-kernel-pkg ]; then
1202         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1203 fi
1204 if [ -x /sbin/rc-boot ]; then
1205         /sbin/rc-boot 1>&2 || :
1206 fi
1207
1208 %post vmlinux
1209 mv -f /boot/vmlinux{,.old} 2> /dev/null
1210 %{?alt_kernel:mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null}
1211 ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1212 %{?alt_kernel:ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}}
1213
1214 %post drm
1215 %depmod %{kernel_release}
1216
1217 %postun drm
1218 %depmod %{kernel_release}
1219
1220 %post pcmcia
1221 %depmod %{kernel_release}
1222
1223 %postun pcmcia
1224 %depmod %{kernel_release}
1225
1226 %post sound-alsa
1227 %depmod %{kernel_release}
1228
1229 %postun sound-alsa
1230 %depmod %{kernel_release}
1231
1232 %post sound-oss
1233 %depmod %{kernel_release}
1234
1235 %postun sound-oss
1236 %depmod %{kernel_release}
1237
1238 %post headers
1239 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1240
1241 %postun headers
1242 if [ "$1" = "0" ]; then
1243         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1244                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1245                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1246                 fi
1247         fi
1248 fi
1249
1250 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1251 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1252 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1253
1254 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1255 if [ "$1" = 0 ]; then
1256         rm -f /lib/modules/%{kernel_release}/{build,source}
1257 fi
1258
1259 %files
1260 %defattr(644,root,root,755)
1261 %ifarch sparc sparc64
1262 /boot/vmlinux.aout-%{kernel_release}
1263 %endif
1264 %ifarch ia64
1265 /boot/efi/vmlinuz-%{kernel_release}
1266 %endif
1267 /boot/vmlinuz-%{kernel_release}
1268 /boot/System.map-%{kernel_release}
1269 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1270 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1271 /lib/firmware/%{kernel_release}
1272
1273 %dir /lib/modules/%{kernel_release}
1274 %dir /lib/modules/%{kernel_release}/kernel
1275 /lib/modules/%{kernel_release}/kernel/arch
1276 /lib/modules/%{kernel_release}/kernel/crypto
1277 /lib/modules/%{kernel_release}/kernel/drivers
1278 %if %{have_drm}
1279 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1280 %endif
1281 /lib/modules/%{kernel_release}/kernel/fs
1282 /lib/modules/%{kernel_release}/kernel/kernel
1283 /lib/modules/%{kernel_release}/kernel/lib
1284 /lib/modules/%{kernel_release}/kernel/net
1285 /lib/modules/%{kernel_release}/kernel/mm
1286 %if %{have_sound}
1287 %dir /lib/modules/%{kernel_release}/kernel/sound
1288 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1289 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1290 %ifnarch sparc
1291 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1292 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1293 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1294 %endif
1295 %endif
1296 %dir /lib/modules/%{kernel_release}/misc
1297 %if %{have_pcmcia}
1298 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1299 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1300 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1301 %if %{without rescuecd}
1302 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1303 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1304 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1305 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1306 %exclude /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1307 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1308 %endif
1309 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1310 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1311 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1312 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1313 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1314 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1315 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1316 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1317 %endif
1318 %if %{with myown}
1319 /lib/modules/%{kernel_release}/kernel/sound
1320 %endif
1321 /lib/modules/%{kernel_release}/kernel/security
1322
1323 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1324
1325 # provided by build
1326 /lib/modules/%{kernel_release}/modules.order
1327 /lib/modules/%{kernel_release}/modules.builtin*
1328
1329 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1330 %ghost /lib/modules/%{kernel_release}/modules.alias
1331 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1332 %ghost /lib/modules/%{kernel_release}/modules.ccwmap
1333 %ghost /lib/modules/%{kernel_release}/modules.dep
1334 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1335 %ghost /lib/modules/%{kernel_release}/modules.devname
1336 %ghost /lib/modules/%{kernel_release}/modules.ieee1394map
1337 %ghost /lib/modules/%{kernel_release}/modules.inputmap
1338 %ghost /lib/modules/%{kernel_release}/modules.isapnpmap
1339 %ghost /lib/modules/%{kernel_release}/modules.ofmap
1340 %ghost /lib/modules/%{kernel_release}/modules.pcimap
1341 %ghost /lib/modules/%{kernel_release}/modules.seriomap
1342 %ghost /lib/modules/%{kernel_release}/modules.softdep
1343 %ghost /lib/modules/%{kernel_release}/modules.symbols
1344 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1345 %ghost /lib/modules/%{kernel_release}/modules.usbmap
1346
1347 # symlinks pointing to kernelsrcdir
1348 %ghost /lib/modules/%{kernel_release}/build
1349 %ghost /lib/modules/%{kernel_release}/source
1350
1351 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1352 %files vmlinux
1353 %defattr(644,root,root,755)
1354 /boot/vmlinux-%{kernel_release}
1355 %endif
1356
1357 %if %{have_drm}
1358 %files drm
1359 %defattr(644,root,root,755)
1360 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1361 %endif
1362
1363 %if %{have_pcmcia}
1364 %files pcmcia
1365 %defattr(644,root,root,755)
1366 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1367 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1368 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1369 %if %{without rescuecd}
1370 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1371 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1372 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1373 /lib/modules/%{kernel_release}/kernel/drivers/telephony/ixj_pcmcia.ko*
1374 %endif
1375 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1376 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1377 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1378 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1379 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1380 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1381 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1382 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/serial_cs.ko*
1383 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1384 %endif
1385
1386 %if %{have_sound}
1387 %files sound-alsa
1388 %defattr(644,root,root,755)
1389 /lib/modules/%{kernel_release}/kernel/sound
1390 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1391 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1392 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1393 %if %{have_oss}
1394 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1395 %endif
1396 %ifnarch sparc
1397 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1398 /lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
1399 /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
1400 /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
1401 %endif
1402
1403 %if %{have_oss}
1404 %files sound-oss
1405 %defattr(644,root,root,755)
1406 /lib/modules/%{kernel_release}/kernel/sound/oss
1407 %endif
1408 %endif
1409
1410 %files headers -f files.headers_exclude_kbuild
1411 %defattr(644,root,root,755)
1412 %dir %{_kernelsrcdir}
1413 %{_kernelsrcdir}/include
1414 %dir %{_kernelsrcdir}/arch
1415 %dir %{_kernelsrcdir}/arch/[!K]*
1416 %{_kernelsrcdir}/arch/*/include
1417 %dir %{_kernelsrcdir}/security
1418 %dir %{_kernelsrcdir}/security/selinux
1419 %{_kernelsrcdir}/security/selinux/include
1420 %{_kernelsrcdir}/.config
1421 %{_kernelsrcdir}/Module.symvers
1422
1423 %files module-build -f files.mb_include_modulebuild_and_dirs
1424 %defattr(644,root,root,755)
1425 %ifarch ppc ppc64
1426 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1427 %endif
1428 %exclude %dir %{_kernelsrcdir}/arch/um
1429 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1430 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1431 %{_kernelsrcdir}/drivers/lguest/lg.h
1432 %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1433 %{_kernelsrcdir}/kernel/bounds.c
1434 %{_kernelsrcdir}/scripts/basic/*.c
1435 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1436 %{_kernelsrcdir}/scripts/kconfig/*.in
1437 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1438 %{_kernelsrcdir}/scripts/kconfig/*.pl
1439 %{_kernelsrcdir}/scripts/kconfig/*.glade
1440 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1441 %{_kernelsrcdir}/scripts/kconfig/*.cc
1442 %{_kernelsrcdir}/scripts/kconfig/*.y
1443 %{_kernelsrcdir}/scripts/kconfig/*.l
1444 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1445 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1446 %{_kernelsrcdir}/scripts/kconfig/l*.h
1447 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1448 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1449 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1450 %{_kernelsrcdir}/scripts/mod/*.c
1451 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1452 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1453 %{_kernelsrcdir}/scripts/mkmakefile
1454 %{_kernelsrcdir}/scripts/module-common.lds
1455 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1456 %{_kernelsrcdir}/scripts/*.c
1457 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1458 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1459 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1460 %exclude %dir %{_kernelsrcdir}/security
1461 %exclude %dir %{_kernelsrcdir}/security/selinux
1462 %if %{with grsecurity}
1463 %{_kernelsrcdir}/tools/gcc/*.c
1464 %endif
1465
1466 %if %{with doc}
1467 %files doc
1468 %defattr(644,root,root,755)
1469 %dir %{_docdir}/%{name}-%{version}
1470
1471 %{_docdir}/%{name}-%{version}/[!jkz]*
1472 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1473 %{_docdir}/%{name}-%{version}/kbuild
1474 %{_docdir}/%{name}-%{version}/kdump
1475 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1476 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1477 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1478 %endif
1479
1480 %if %{with source}
1481 %files source -f files.source_exclude_modulebuild_and_dirs
1482 %defattr(644,root,root,755)
1483 %{_kernelsrcdir}/arch/*/[!Mik]*
1484 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1485 %{_kernelsrcdir}/arch/ia64/install.sh
1486 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1487 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1488 %{_kernelsrcdir}/arch/m68k/install.sh
1489 %{_kernelsrcdir}/arch/parisc/install.sh
1490 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1491 %{_kernelsrcdir}/arch/ia64/kvm
1492 %{_kernelsrcdir}/arch/powerpc/kvm
1493 %ifarch ppc ppc64
1494 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1495 %endif
1496 %{_kernelsrcdir}/arch/s390/kvm
1497 %{_kernelsrcdir}/arch/x86/kvm
1498 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1499 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1500 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1501 %exclude %{_kernelsrcdir}/drivers/media/video/bt8xx/bttv.h
1502 %{_kernelsrcdir}/block
1503 %{_kernelsrcdir}/crypto
1504 %{_kernelsrcdir}/drivers
1505 %{_kernelsrcdir}/firmware
1506 %{_kernelsrcdir}/fs
1507 %if %{with grsecurity} && %{without rescuecd}
1508 %{_kernelsrcdir}/grsecurity
1509 %endif
1510 %{_kernelsrcdir}/init
1511 %{_kernelsrcdir}/ipc
1512 %{_kernelsrcdir}/kernel
1513 %exclude %{_kernelsrcdir}/kernel/bounds.c
1514 %{_kernelsrcdir}/lib
1515 %{_kernelsrcdir}/mm
1516 %{_kernelsrcdir}/net
1517 %{_kernelsrcdir}/virt
1518 %{_kernelsrcdir}/samples
1519 %{_kernelsrcdir}/scripts/*
1520 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1521 %exclude %{_kernelsrcdir}/scripts/Makefile*
1522 %exclude %{_kernelsrcdir}/scripts/basic
1523 %exclude %{_kernelsrcdir}/scripts/kconfig
1524 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1525 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1526 %exclude %{_kernelsrcdir}/scripts/mod
1527 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1528 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1529 %exclude %{_kernelsrcdir}/scripts/*.c
1530 %exclude %{_kernelsrcdir}/scripts/*.sh
1531 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1532 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1533 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1534 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1535 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1536 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1537 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1538 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1539 %{_kernelsrcdir}/sound
1540 %{_kernelsrcdir}/security
1541 %exclude %{_kernelsrcdir}/security/selinux/include
1542 %{_kernelsrcdir}/tools/*
1543 %if %{with grsecurity}
1544 %exclude %{_kernelsrcdir}/tools/gcc/*.c
1545 %endif
1546 %{_kernelsrcdir}/usr
1547 %{_kernelsrcdir}/COPYING
1548 %{_kernelsrcdir}/CREDITS
1549 %{_kernelsrcdir}/MAINTAINERS
1550 %{_kernelsrcdir}/README
1551 %{_kernelsrcdir}/REPORTING-BUGS
1552 %endif
This page took 0.267367 seconds and 3 git commands to generate.