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