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