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