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