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