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