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