]> git.pld-linux.org Git - packages/kernel.git/blob - kernel.spec
- up to 3.8.12
[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.8
71 %define         postver         .12
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:  1c738edfc54e7c65faeb90c436104e2f
112 %if "%{postver}" != ".0"
113 Patch0:         http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
114 # Patch0-md5:   77cb3a52d24a05171006757abe4fd3fd
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/patches/patch-imqmq-3.5.diff.xz
166 Patch50:        kernel-imq.patch
167
168 Patch51:        http://downloads.sourceforge.net/reiser4/reiser4-for-3.6.4.patch.gz
169 # Patch51-md5:  4128aa3bd062d0289117dda6775a7f20
170
171 # http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
172 Patch53:        kernel-esfq.patch
173
174 # by Baggins request:
175 # derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
176 Patch55:        kernel-atm-vbr.patch
177 Patch56:        kernel-atmdd.patch
178
179 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
180 Patch59:        kernel-rndis_host-wm5.patch
181
182 # adds some ids for hostap suported cards and monitor_enable from/for aircrack-ng
183 # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
184 Patch85:        kernel-hostap.patch
185
186 # http://vserver.13thfloor.at/Experimental/patch-3.7.7-vs2.3.5.6.diff
187 # note there are additional patches from above url:
188 # - *fix* are real fixes (we want these)
189 # - *feat* are new features/tests (we don't want these)
190 Patch100:       kernel-vserver-2.3.patch
191 Patch101:       kernel-vserver-fixes.patch
192
193 # git clone git://kernel.opensuse.org/kernel-source.git
194 # patches.suse/ovl*
195 Patch110:       ovl01-vfs-add-i_op-dentry_open.patch
196 Patch111:       ovl02-vfs-export-do_splice_direct-to-modules.patch
197 Patch112:       ovl03-vfs-introduce-clone_private_mount.patch
198 Patch113:       ovl04-overlay-filesystem.patch
199 Patch114:       ovl05-overlayfs-add-statfs-support.patch
200 Patch115:       ovl06-overlayfs-implement-show_options.patch
201 Patch116:       ovl07-overlay-overlay-filesystem-documentation.patch
202 Patch117:       ovl08-fs-limit-filesystem-stacking-depth.patch
203 Patch118:       ovl09-overlayfs-fix-possible-leak-in-ovl_new_inode.patch
204 Patch119:       ovl10-overlayfs-create-new-inode-in-ovl_link.patch
205 Patch120:       ovl11-vfs-export-__inode_permission-to-modules.patch
206 Patch121:       ovl12-ovl-switch-to-__inode_permission.patch
207 Patch122:       ovl13-overlayfs-copy-up-i_uid-i_gid-from-the-underlying-in.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.8 origin/aufs3.8
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 # vserver
673 %if %{with vserver}
674 %patch100 -p1
675 %patch101 -p1
676 %endif
677
678 %patch110 -p1
679 %patch111 -p1
680 %patch112 -p1
681 %patch113 -p1
682 %patch114 -p1
683 %patch115 -p1
684 %patch116 -p1
685 %patch117 -p1
686 %patch118 -p1
687 %patch119 -p1
688 %patch120 -p1
689 %patch121 -p1
690 %patch122 -p1
691
692 # aufs3
693 %patch145 -p1
694
695 %if %{with rescuecd}
696 %patch7000 -p1
697 %endif
698
699 # apparmor
700 %patch5000 -p1
701
702 %patch250 -p1
703
704 # virtio-gl
705 %patch400 -p1
706
707 %endif # vanilla
708
709 # Small fixes:
710 %patch2000 -p1
711 %patch2001 -p1
712 #%patch2003 -p1
713
714 # Do not remove this, please!
715 #%%patch50000 -p1
716
717 # Fix EXTRAVERSION in main Makefile
718 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
719
720 # cleanup backups after patching
721 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
722
723 %build
724 install -d %{objdir}
725 cat > %{targetobj}.mk <<'EOF'
726 # generated by %{name}.spec
727 KERNELSRC               := %{srcdir}
728 KERNELOUTPUT    := %{objdir}
729
730 SRCARCH         := %{target_arch_dir}
731 ARCH            := %{_target_base_arch}
732 Q                       := %{!?with_verbose:@}
733 MAKE_OPTS       := %{MakeOpts}
734 DEFCONFIG   := %{defconfig}
735 EOF
736
737 RescueConfig() {
738         set -x
739         cat <<-EOCONFIG > $1
740                 # CONFIG_SOUND is not set
741                 # CONFIG_AUDIT is not set
742                 # CONFIG_TR is not set
743                 # CONFIG_BT is not set
744                 # CONFIG_VIDEO_DEV is not set
745                 # CONFIG_DVB_CORE is not set
746                 # CONFIG_HAMRADIO is not set
747                 # CONFIG_ARCNET is not set
748                 # CONFIG_FB is not set
749                 # CONFIG_DRM is not set
750                 # CONFIG_WATCHDOG is not set
751                 # CONFIG_INPUT_JOYSTICK is not set
752                 # CONFIG_DEBUG_KERNEL is not set
753                 # CONFIG_ISDN is not set
754                 # CONFIG_AGP is not set
755                 # CONFIG_SECURITY is not set
756                 # CONFIG_PARIDE is not set
757                 # CONFIG_CPU_FREQ is not set
758                 # CONFIG_GAMEPORT is not set
759                 # CONFIG_KVM is not set
760                 # CONFIG_PHONE is not set
761                 # CONFIG_STRICT_DEVMEM is not set
762                 # CONFIG_IMA is not set
763                 # CONFIG_MEDIA_SUPPORT is not set
764                 # CONFIG_UWB is not set
765                 # CONFIG_PWM is not set
766                 CONFIG_AUFS=y
767                 CONFIG_AUFS_FS=y
768                 CONFIG_AUFS_BR_RAMFS=y
769                 CONFIG_AUFS_RDU=y
770                 CONFIG_BLK_DEV_LOOP=y
771                 CONFIG_ISO9660_FS=y
772                 CONFIG_NLS_UTF8=y
773                 CONFIG_SQUASHFS=y
774 EOCONFIG
775
776         return 0
777 }
778
779 BuildConfig() {
780         %{?debug:set -x}
781         set -e
782
783         Config="kernel-%{target_arch_dir}.config"
784         echo >&2 "Building config file for %{_target_cpu} using $Config et al."
785
786         # prepare local and important options
787         cat <<-EOCONFIG > important.config
788                 LOCALVERSION="-%{localversion}"
789
790 %if 0%{?debug:1}
791                 CONFIG_DEBUG_SLAB=y
792                 CONFIG_DEBUG_SLAB_LEAK=y
793                 CONFIG_DEBUG_PREEMPT=y
794                 CONFIG_RT_DEADLOCK_DETECT=y
795 %endif
796
797 %if %{without ipv6}
798                 CONFIG_IPV6=n
799 %endif
800
801 %ifarch i686 athlon pentium3 pentium4
802   %if %{with pae}
803                 CONFIG_HIGHMEM4G=n
804                 CONFIG_HIGHMEM64G=y
805                 CONFIG_X86_PAE=y
806                 CONFIG_NUMA=n
807   %endif
808 %endif
809
810 %if %{without pcmcia}
811                 CONFIG_PCMCIA=n
812 %endif
813
814 %if %{with fbcondecor}
815                 CONFIG_FB_S3=n
816                 CONFIG_FB_VT8623=n
817                 CONFIG_FB_ARK=n
818                 CONFIG_FB_TILEBLITTING=n
819                 CONFIG_FB_CON_DECOR=y
820 %endif
821
822 %if %{with nfsroot}
823                 CONFIG_NFS_FS=y
824                 CONFIG_ROOT_NFS=y
825 %endif
826 EOCONFIG
827
828 %if %{with rescuecd}
829         RescueConfig rescue.config
830 %endif
831         # prepare kernel-style config file from multiple config files
832         %{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
833 %if %{with myown}
834                 $RPM_SOURCE_DIR/kernel-%{alt_kernel}.config \
835 %endif
836                 important.config \
837 %if %{without vanilla}
838 %if %{with rescuecd}
839                 %{SOURCE58} \
840                 rescue.config \
841 %endif
842                 \
843 %if %{with reiser4}
844                 %{SOURCE56} \
845 %endif
846 %if %{with imq}
847                 %{SOURCE55} \
848 %endif
849 %if %{with vserver}
850                 %{SOURCE43} \
851 %endif
852                 %{SOURCE41} %{?0:patches} \
853 %endif
854                 %{SOURCE20} \
855                 $RPM_SOURCE_DIR/$Config
856 }
857
858 cd %{objdir}
859 install -d arch/%{target_arch_dir}
860 BuildConfig > %{defconfig}
861 ln -sf %{defconfig} .config
862 cd -
863
864 %{__make} \
865         TARGETOBJ=%{targetobj} \
866         %{?with_verbose:V=1} \
867         oldconfig
868
869 %{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
870
871 # build kernel
872 %{__make} \
873         TARGETOBJ=%{targetobj} \
874         %{?with_verbose:V=1} \
875         all
876
877 %install
878 rm -rf $RPM_BUILD_ROOT
879 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install firmware_install \
880         -C %{objdir} \
881         %{?with_verbose:V=1} \
882         DEPMOD=%{DepMod} \
883         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
884         INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
885         KERNELRELEASE=%{kernel_release}
886
887 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
888
889 # create directories which may be missing, to simplyfy %files
890 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
891
892 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
893 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
894 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
895
896 # no point embed content for %ghost files. empty them
897 for a in \
898         dep{,.bin} \
899         alias{,.bin} \
900         devname \
901         softdep \
902         symbols{,.bin} \
903 ; do
904         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
905         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
906 done
907
908 # /boot
909 install -d $RPM_BUILD_ROOT/boot
910 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
911 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
912 %ifarch %{ix86} %{x8664}
913         cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
914         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
915 %endif
916 %ifarch ppc ppc64
917         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
918         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
919 %endif
920 %ifarch ia64
921         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
922         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
923         ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
924 %endif
925 %ifarch alpha sparc sparc64
926         %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
927         cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
928         install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
929         %ifarch sparc
930                 elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
931                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
932         %endif
933         %ifarch sparc64
934                 elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
935                 install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
936         %endif
937 %endif
938 %ifarch arm
939         install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
940 %endif
941
942 # ghosted initrd
943 touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
944 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
945
946 %if "%{_target_base_arch}" != "%{_host_base_arch}"
947 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
948 %endif
949
950 # /etc/modrobe.d
951 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
952
953 install -d $RPM_BUILD_ROOT/etc/sysconfig
954 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
955
956 # /usr/src/linux
957 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
958
959 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
960 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
961         l=l
962         rm -f $RPM_BUILD_ROOT/COPYING
963 fi
964
965 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
966 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
967 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
968 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
969 # copy arch/x86/include/generated
970 for dir in $(cd %{objdir} && find arch -name generated -type d); do
971         cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
972         find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
973 done
974
975 # version.h location changed in 3.7, but a lot of external modules don't know about it
976 # add a compatibility symlink
977 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
978
979 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
980 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
981
982 # collect module-build files and directories
983 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
984 fileoutdir=$(pwd)
985 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
986 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
987 cd -
988
989 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
990         ff=${f##%{objdir}/}
991         if [ -x "$f" ]; then
992                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
993         else
994                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
995         fi
996         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
997         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
998 done
999
1000 %if %{with doc}
1001 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
1002 install -d $RPM_BUILD_ROOT%{_docdir}
1003 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
1004
1005 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
1006 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
1007 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
1008 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
1009 %else
1010 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
1011 %endif
1012
1013 %clean
1014 rm -rf $RPM_BUILD_ROOT
1015
1016 %preun
1017 if [ -x /sbin/new-kernel-pkg ]; then
1018         /sbin/new-kernel-pkg --remove %{kernel_release}
1019 fi
1020
1021 %post
1022 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1023 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1024 %ifarch ia64
1025         mv -f /boot/efi/vmlinuz{,.old} 2> /dev/null
1026         ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz
1027 %if 0%{?alt_kernel:1}
1028         mv -f /boot/efi/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1029         ln -sf vmlinuz-%{kernel_release} /boot/efi/vmlinuz%{_alt_kernel}
1030 %endif
1031 %endif
1032         mv -f /boot/vmlinuz{,.old} 2> /dev/null
1033         mv -f /boot/System.map{,.old} 2> /dev/null
1034         ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz
1035         ln -sf System.map-%{kernel_release} /boot/System.map
1036 %if 0%{?alt_kernel:1}
1037         mv -f /boot/vmlinuz%{_alt_kernel}{,.old} 2> /dev/null
1038         mv -f /boot/System%{_alt_kernel}.map{,.old} 2> /dev/null
1039         ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz%{_alt_kernel}
1040         ln -sf System.map-%{kernel_release} /boot/System.map%{_alt_kernel}
1041 %endif
1042 fi
1043
1044 %depmod %{kernel_release}
1045
1046 %posttrans
1047 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1048 if [[ "$USE_GENINITRD" != [Nn][Oo] ]]; then
1049         # generate initrd after all dependant modules are installed
1050         /sbin/geninitrd -f --initrdfs=initramfs %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
1051 fi
1052 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1053         mv -f %{initrd_dir}/initrd{,.old} 2> /dev/null
1054         ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd
1055 %if 0%{?alt_kernel:1}
1056         mv -f %{initrd_dir}/initrd%{_alt_kernel}{,.old} 2> /dev/null
1057         ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd%{_alt_kernel}
1058 %endif
1059 fi
1060
1061 # if dracut is present then generate full-featured initramfs
1062 if [[ "$USE_DRACUT" != [Nn][Oo] ]] && [ -x /sbin/dracut ]; then
1063         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
1064 fi
1065
1066 # update boot loaders when old package files are gone from filesystem
1067 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
1068         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-no})" = "yes" ]; then
1069                 /sbin/update-grub >/dev/null
1070         fi
1071 fi
1072 if [ -x /sbin/new-kernel-pkg ]; then
1073         /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "PLD Linux (%{pld_release})%{?alt_kernel: / %{alt_kernel}}"
1074 fi
1075 if [ -x /sbin/rc-boot ]; then
1076         /sbin/rc-boot 1>&2 || :
1077 fi
1078
1079 %post vmlinux
1080 [ -f /etc/sysconfig/kernel ] && . /etc/sysconfig/kernel
1081 if [[ "$CREATE_SYMLINKS" != [Nn][Oo] ]]; then
1082         mv -f /boot/vmlinux{,.old} 2> /dev/null
1083         ln -sf vmlinux-%{kernel_release} /boot/vmlinux
1084 %if 0%{?alt_kernel:1}
1085         mv -f /boot/vmlinux-%{alt_kernel}{,.old} 2> /dev/null
1086         ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
1087 %endif
1088 fi
1089
1090 %post drm
1091 %depmod %{kernel_release}
1092
1093 %postun drm
1094 %depmod %{kernel_release}
1095
1096 %post pcmcia
1097 %depmod %{kernel_release}
1098
1099 %postun pcmcia
1100 %depmod %{kernel_release}
1101
1102 %post sound-alsa
1103 %depmod %{kernel_release}
1104
1105 %postun sound-alsa
1106 %depmod %{kernel_release}
1107
1108 %post sound-oss
1109 %depmod %{kernel_release}
1110
1111 %postun sound-oss
1112 %depmod %{kernel_release}
1113
1114 %post headers
1115 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
1116
1117 %postun headers
1118 if [ "$1" = "0" ]; then
1119         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
1120                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
1121                         rm -f %{_prefix}/src/linux%{_alt_kernel}
1122                 fi
1123         fi
1124 fi
1125
1126 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
1127 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
1128 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
1129
1130 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
1131 if [ "$1" = 0 ]; then
1132         rm -f /lib/modules/%{kernel_release}/{build,source}
1133 fi
1134
1135 %files
1136 %defattr(644,root,root,755)
1137 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/kernel
1138 %ifarch sparc sparc64
1139 /boot/vmlinux.aout-%{kernel_release}
1140 %endif
1141 %ifarch ia64
1142 /boot/efi/vmlinuz-%{kernel_release}
1143 %endif
1144 /boot/vmlinuz-%{kernel_release}
1145 /boot/System.map-%{kernel_release}
1146 /boot/config-%{kernel_release}
1147 %ghost %{initrd_dir}/initrd-%{kernel_release}.gz
1148 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
1149 /lib/firmware/%{kernel_release}
1150
1151 %dir /lib/modules/%{kernel_release}
1152 %dir /lib/modules/%{kernel_release}/kernel
1153 /lib/modules/%{kernel_release}/kernel/arch
1154 /lib/modules/%{kernel_release}/kernel/crypto
1155 /lib/modules/%{kernel_release}/kernel/drivers
1156 %if %{have_drm}
1157 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
1158 %endif
1159 /lib/modules/%{kernel_release}/kernel/fs
1160 /lib/modules/%{kernel_release}/kernel/kernel
1161 /lib/modules/%{kernel_release}/kernel/lib
1162 /lib/modules/%{kernel_release}/kernel/net
1163 /lib/modules/%{kernel_release}/kernel/mm
1164 %if %{have_sound}
1165 %dir /lib/modules/%{kernel_release}/kernel/sound
1166 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1167 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1168 %ifnarch sparc
1169 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1170 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1171 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1172 %endif
1173 %endif
1174 %dir /lib/modules/%{kernel_release}/misc
1175 %if %{have_pcmcia}
1176 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
1177 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
1178 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1179 %if %{without rescuecd}
1180 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1181 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1182 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1183 %exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1184 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1185 %endif
1186 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1187 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1188 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1189 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1190 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1191 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1192 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1193 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1194 %endif
1195 %if %{with myown}
1196 /lib/modules/%{kernel_release}/kernel/sound
1197 %endif
1198 /lib/modules/%{kernel_release}/kernel/security
1199
1200 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
1201
1202 # provided by build
1203 /lib/modules/%{kernel_release}/modules.order
1204 /lib/modules/%{kernel_release}/modules.builtin*
1205
1206 # rest modules.* are ghost (regenerated by post depmod -a invocation)
1207 %ghost /lib/modules/%{kernel_release}/modules.alias
1208 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
1209 %ghost /lib/modules/%{kernel_release}/modules.dep
1210 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
1211 %ghost /lib/modules/%{kernel_release}/modules.devname
1212 %ghost /lib/modules/%{kernel_release}/modules.softdep
1213 %ghost /lib/modules/%{kernel_release}/modules.symbols
1214 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
1215
1216 # symlinks pointing to kernelsrcdir
1217 %ghost /lib/modules/%{kernel_release}/build
1218 %ghost /lib/modules/%{kernel_release}/source
1219
1220 %ifarch alpha %{ix86} %{x8664} ppc ppc64 sparc sparc64
1221 %files vmlinux
1222 %defattr(644,root,root,755)
1223 /boot/vmlinux-%{kernel_release}
1224 %endif
1225
1226 %if %{have_drm}
1227 %files drm
1228 %defattr(644,root,root,755)
1229 /lib/modules/%{kernel_release}/kernel/drivers/gpu
1230 %endif
1231
1232 %if %{have_pcmcia}
1233 %files pcmcia
1234 %defattr(644,root,root,755)
1235 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
1236 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
1237 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
1238 %if %{without rescuecd}
1239 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
1240 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/avm_cs.ko*
1241 /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
1242 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
1243 %endif
1244 /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
1245 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
1246 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/b43
1247 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
1248 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_cs.ko*
1249 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
1250 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
1251 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
1252 %endif
1253
1254 %if %{have_sound}
1255 %files sound-alsa
1256 %defattr(644,root,root,755)
1257 /lib/modules/%{kernel_release}/kernel/sound
1258 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
1259 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
1260 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
1261 %if %{have_oss}
1262 %exclude /lib/modules/%{kernel_release}/kernel/sound/oss
1263 %endif
1264 %ifnarch sparc
1265 /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
1266 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
1267 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
1268 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
1269 %endif
1270
1271 %if %{have_oss}
1272 %files sound-oss
1273 %defattr(644,root,root,755)
1274 /lib/modules/%{kernel_release}/kernel/sound/oss
1275 %endif
1276 %endif
1277
1278 %files headers -f files.headers_exclude_kbuild
1279 %defattr(644,root,root,755)
1280 %dir %{_kernelsrcdir}
1281 %{_kernelsrcdir}/include
1282 %dir %{_kernelsrcdir}/arch
1283 %dir %{_kernelsrcdir}/arch/[!K]*
1284 %{_kernelsrcdir}/arch/*/include
1285 %dir %{_kernelsrcdir}/security
1286 %dir %{_kernelsrcdir}/security/selinux
1287 %{_kernelsrcdir}/security/selinux/include
1288 %{_kernelsrcdir}/.config
1289 %{_kernelsrcdir}/Module.symvers
1290
1291 %files module-build -f files.mb_include_modulebuild_and_dirs
1292 %defattr(644,root,root,755)
1293 %ifarch ppc ppc64
1294 %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1295 %endif
1296 %exclude %dir %{_kernelsrcdir}/arch/um
1297 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1298 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1299 %{_kernelsrcdir}/drivers/lguest/lg.h
1300 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1301 %{_kernelsrcdir}/kernel/bounds.c
1302 %{_kernelsrcdir}/scripts/basic/*.c
1303 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
1304 %{_kernelsrcdir}/scripts/kconfig/*.in
1305 %{_kernelsrcdir}/scripts/kconfig/*_shipped
1306 %{_kernelsrcdir}/scripts/kconfig/*.pl
1307 %{_kernelsrcdir}/scripts/kconfig/*.glade
1308 %{_kernelsrcdir}/scripts/kconfig/*.gperf
1309 %{_kernelsrcdir}/scripts/kconfig/*.cc
1310 %{_kernelsrcdir}/scripts/kconfig/*.y
1311 %{_kernelsrcdir}/scripts/kconfig/*.l
1312 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
1313 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
1314 %{_kernelsrcdir}/scripts/kconfig/l*.h
1315 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.c
1316 %{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
1317 %{_kernelsrcdir}/scripts/kconfig/lxdialog
1318 %{_kernelsrcdir}/scripts/mod/*.c
1319 %{_kernelsrcdir}/scripts/mod/[^e]*.h
1320 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
1321 %{_kernelsrcdir}/scripts/mkmakefile
1322 %{_kernelsrcdir}/scripts/module-common.lds
1323 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
1324 %{_kernelsrcdir}/scripts/*.c
1325 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
1326 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1327 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1328 %exclude %dir %{_kernelsrcdir}/security
1329 %exclude %dir %{_kernelsrcdir}/security/selinux
1330
1331 %if %{with doc}
1332 %files doc
1333 %defattr(644,root,root,755)
1334 %dir %{_docdir}/%{name}-%{version}
1335
1336 %{_docdir}/%{name}-%{version}/[!jkz]*
1337 %{_docdir}/%{name}-%{version}/[jkz]*.txt
1338 %{_docdir}/%{name}-%{version}/kbuild
1339 %{_docdir}/%{name}-%{version}/kdump
1340 %lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
1341 %lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
1342 %lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
1343 %endif
1344
1345 %if %{with source}
1346 %files source -f files.source_exclude_modulebuild_and_dirs
1347 %defattr(644,root,root,755)
1348 %{_kernelsrcdir}/arch/*/[!Mik]*
1349 %{_kernelsrcdir}/arch/*/kernel/[!M]*
1350 %{_kernelsrcdir}/arch/ia64/install.sh
1351 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
1352 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
1353 %{_kernelsrcdir}/arch/m68k/install.sh
1354 %{_kernelsrcdir}/arch/parisc/install.sh
1355 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
1356 %{_kernelsrcdir}/arch/ia64/kvm
1357 %{_kernelsrcdir}/arch/powerpc/kvm
1358 %ifarch ppc ppc64
1359 %exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
1360 %endif
1361 %{_kernelsrcdir}/arch/s390/kvm
1362 %{_kernelsrcdir}/arch/x86/kvm
1363 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
1364 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
1365 %exclude %{_kernelsrcdir}/drivers/lguest/lg.h
1366 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
1367 %{_kernelsrcdir}/block
1368 %{_kernelsrcdir}/crypto
1369 %{_kernelsrcdir}/drivers
1370 %{_kernelsrcdir}/firmware
1371 %{_kernelsrcdir}/fs
1372 %{_kernelsrcdir}/init
1373 %{_kernelsrcdir}/ipc
1374 %{_kernelsrcdir}/kernel
1375 %exclude %{_kernelsrcdir}/kernel/bounds.c
1376 %{_kernelsrcdir}/lib
1377 %{_kernelsrcdir}/mm
1378 %{_kernelsrcdir}/net
1379 %{_kernelsrcdir}/virt
1380 %{_kernelsrcdir}/samples
1381 %{_kernelsrcdir}/scripts/*
1382 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
1383 %exclude %{_kernelsrcdir}/scripts/Makefile*
1384 %exclude %{_kernelsrcdir}/scripts/basic
1385 %exclude %{_kernelsrcdir}/scripts/kconfig
1386 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
1387 %exclude %{_kernelsrcdir}/scripts/mkmakefile
1388 %exclude %{_kernelsrcdir}/scripts/mod
1389 %exclude %{_kernelsrcdir}/scripts/module-common.lds
1390 %exclude %{_kernelsrcdir}/scripts/setlocalversion
1391 %exclude %{_kernelsrcdir}/scripts/*.c
1392 %exclude %{_kernelsrcdir}/scripts/*.sh
1393 %exclude %dir %{_kernelsrcdir}/scripts/selinux
1394 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
1395 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
1396 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
1397 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
1398 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
1399 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
1400 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
1401 %{_kernelsrcdir}/sound
1402 %{_kernelsrcdir}/security
1403 %exclude %{_kernelsrcdir}/security/selinux/include
1404 %{_kernelsrcdir}/tools/*
1405 %{_kernelsrcdir}/usr
1406 %{_kernelsrcdir}/COPYING
1407 %{_kernelsrcdir}/CREDITS
1408 %{_kernelsrcdir}/MAINTAINERS
1409 %{_kernelsrcdir}/README
1410 %{_kernelsrcdir}/REPORTING-BUGS
1411 %endif
This page took 0.121951 seconds and 4 git commands to generate.