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