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