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