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