]> TLD Linux GIT Repositories - packages/kernel.git/blob - kernel.spec
- updated to 6.6.4, NFY
[packages/kernel.git] / kernel.spec
1 # Conditional build:
2 %bcond_without  source          # don't build kernel-source package
3 %bcond_without  doc             # don't build kernel-doc package
4 %bcond_with     verbose         # verbose build (V=1)
5
6 %define         basever         6.6
7 %define         postver         4
8 %define         rel             0.1
9
10 %define         alt_kernel      6.6
11
12 # kernel release (used in filesystem and eventually in uname -r)
13 # modules will be looked from /lib/modules/%{kernel_release}
14 # localversion is just that without version for "> localversion"
15 %define         localversion    %{rel}
16 %define         kernel_release  %{version}%{?alt_kernel:-%{alt_kernel}}-%{localversion}
17
18 Summary:        The Linux kernel (the core of the Linux operating system)
19 Summary(de.UTF-8):      Der Linux-Kernel (Kern des Linux-Betriebssystems)
20 Summary(et.UTF-8):      Linuxi kernel (ehk operatsioonisüsteemi tuum)
21 Summary(fr.UTF-8):      Le Kernel-Linux (La partie centrale du systeme)
22 Summary(pl.UTF-8):      Jądro Linuksa
23 Name:           kernel%{_alt_kernel}
24 Version:        %{basever}.%{postver}
25 Release:        %{rel}
26 Epoch:          3
27 License:        GPL v2
28 Group:          Base/Kernel
29 Source0:        http://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
30 # Source0-md5:  452098d80ba925af3a4ab35998f3aef5
31 %if "%{postver}" != "0"
32 Source1:        http://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
33 # Source1-md5:  0d2c1c3ef1c023d9c5f34d19eaad4cb0
34 %endif
35
36 Source2:        kernel-module-build.pl
37 Source3:        kernel.make
38
39 Source10:       kernel-x86.config
40 Source11:       kernel-x86_64.config
41
42 URL:            http://www.kernel.org/
43 BuildRequires:  binutils >= 3:2.18
44 BuildRequires:  bison
45 BuildRequires:  /sbin/depmod
46 BuildRequires:  elfutils-devel
47 BuildRequires:  flex
48 BuildRequires:  gcc >= 5:3.2
49 BuildRequires:  gcc-plugin-devel
50 BuildRequires:  xz >= 1:4.999.7
51 AutoReqProv:    no
52 BuildRequires:  hostname
53 BuildRequires:  kmod
54 BuildRequires:  openssl-devel
55 BuildRequires:  perl-base
56 BuildRequires:  rpm >= 4.5-74
57 BuildRequires:  rpmbuild(macros) >= 1.652
58 Requires(post): coreutils
59 Requires(post): dracut
60 Requires(post): kmod >= 12-2
61 Requires:       /sbin/depmod
62 Requires:       coreutils
63 Requires:       dracut
64 Requires:       kmod >= 12-2
65 %ifarch i686
66 Requires:       cpuinfo(pae)
67 %endif
68 Suggests:       keyutils
69 Suggests:       linux-firmware
70 Provides:       %{name}(netfilter) = 20070806
71 Provides:       %{name}(vermagic) = %{kernel_release}
72 Obsoletes:      kernel%{_alt_kernel}-vanilla
73 Obsoletes:      kernel-firmware
74 Obsoletes:      kernel-modules
75 Conflicts:      e2fsprogs < 1.29
76 Conflicts:      isdn4k-utils < 3.1pre1
77 Conflicts:      jfsutils < 1.1.3
78 Conflicts:      linux-firmware < 20120720
79 Conflicts:      lvm2 < 2.02.40
80 Conflicts:      module-init-tools < 3.16
81 Conflicts:      nfs-utils < 1.0.5
82 Conflicts:      oprofile < 0.9
83 Conflicts:      ppp < 1:2.4.0
84 Conflicts:      procps < 3.2.0
85 Conflicts:      quota-tools < 3.09
86 Conflicts:      reiserfsprogs < 3.6.3
87 Conflicts:      rpm < 4.4.2-0.2
88 Conflicts:      udev < 1:081
89 Conflicts:      util-linux < 2.10o
90 Conflicts:      xfsprogs < 2.6.0
91 ExclusiveArch:  i686 x86_64
92 ExclusiveOS:    Linux
93 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
94
95 %ifarch i686 x86_64
96 %define         target_arch_dir         x86
97 %else
98 %define         target_arch_dir         %{_target_base_arch}
99 %endif
100
101 %define         defconfig       arch/%{target_arch_dir}/defconfig
102
103 # No ELF objects there to strip (skips processing 27k files)
104 %define         _noautostrip    \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
105 %define         _noautochrpath  .*%{_kernelsrcdir}/.*
106 %define         _enable_debug_packages  0
107
108 %define         initrd_dir      /boot
109
110 %define         topdir          %{_builddir}/%{name}-%{version}
111 %define         srcdir          %{topdir}/linux-%{basever}
112 %define         objdir          %{topdir}/%{targetobj}
113 %define         targetobj       %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
114
115 %define         _kernelsrcdir   /usr/src/linux%{_alt_kernel}-%{version}
116
117 %if "%{_target_base_arch}" != "%{_host_base_arch}"
118         %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
119         %define DepMod /bin/true
120
121         %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
122         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
123         %define DepMod /sbin/depmod
124         %endif
125
126 %else
127         %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
128         %define DepMod /sbin/depmod
129 %endif
130 %define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
131
132 %description
133 This package contains the Linux kernel that is used to boot and run
134 your system. It contains few device drivers for specific hardware.
135 Most hardware is instead supported by modules loaded after booting.
136
137 %description -l de.UTF-8
138 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des
139 Linux-Betriebssystems. Der Kernel ist für grundliegende
140 Systemfunktionen verantwortlich: Speicherreservierung,
141 Prozeß-Management, Geräte Ein- und Ausgaben, usw.
142
143 %description -l fr.UTF-8
144 Le package kernel contient le kernel linux (vmlinuz), la partie
145 centrale d'un système d'exploitation Linux. Le noyau traite les
146 fonctions basiques d'un système d'exploitation: allocation mémoire,
147 allocation de process, entrée/sortie de peripheriques, etc.
148
149 %description -l pl.UTF-8
150 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania
151 Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego
152 się w komputerze, takiego jak sterowniki dysków itp.
153
154 %package vmlinux
155 Summary:        vmlinux - uncompressed kernel image
156 Summary(de.UTF-8):      vmlinux - dekompressiertes Kernel Bild
157 Summary(pl.UTF-8):      vmlinux - rozpakowany obraz jądra
158 Group:          Base/Kernel
159 Obsoletes:      kernel-smp-vmlinux
160 Obsoletes:      kernel%{_alt_kernel}-vanilla-vmlinux
161
162 %description vmlinux
163 vmlinux - uncompressed kernel image.
164
165 %description vmlinux -l de.UTF-8
166 vmlinux - dekompressiertes Kernel Bild.
167
168 %description vmlinux -l pl.UTF-8
169 vmlinux - rozpakowany obraz jądra.
170
171 %package drm
172 Summary:        DRM kernel modules
173 Summary(de.UTF-8):      DRM Kernel Treiber
174 Summary(pl.UTF-8):      Sterowniki DRM
175 Group:          Base/Kernel
176 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
177 Requires:       %{name} = %{epoch}:%{version}-%{release}
178 Obsoletes:      kernel-smp-drm
179 Obsoletes:      kernel%{_alt_kernel}-vanilla-drm
180 AutoReqProv:    no
181
182 %description drm
183 DRM kernel modules.
184
185 %description drm -l de.UTF-8
186 DRM Kernel Treiber.
187
188 %description drm -l pl.UTF-8
189 Sterowniki DRM.
190
191 %package pcmcia
192 Summary:        PCMCIA modules
193 Summary(de.UTF-8):      PCMCIA Module
194 Summary(pl.UTF-8):      Moduły PCMCIA
195 Group:          Base/Kernel
196 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
197 Requires:       %{name} = %{epoch}:%{version}-%{release}
198 Obsoletes:      kernel-smp-pcmcia
199 Obsoletes:      kernel%{_alt_kernel}-vanilla-pcmcia
200 Conflicts:      pcmcia-cs < 3.1.21
201 Conflicts:      pcmciautils < 004
202 AutoReqProv:    no
203
204 %description pcmcia
205 PCMCIA modules.
206
207 %description pcmcia -l de.UTF-8
208 PCMCIA Module.
209
210 %description pcmcia -l pl.UTF-8
211 Moduły PCMCIA.
212
213 %package sound-alsa
214 Summary:        ALSA kernel modules
215 Summary(de.UTF-8):      ALSA Kernel Module
216 Summary(pl.UTF-8):      Sterowniki dźwięku ALSA
217 Group:          Base/Kernel
218 Requires(postun):       %{name} = %{epoch}:%{version}-%{release}
219 Requires:       %{name} = %{epoch}:%{version}-%{release}
220 Obsoletes:      kernel-smp-sound-alsa
221 Obsoletes:      kernel%{_alt_kernel}-vanilla-sound-alsa
222 AutoReqProv:    no
223
224 %description sound-alsa
225 ALSA (Advanced Linux Sound Architecture) sound drivers.
226
227 %description sound-alsa -l de.UTF-8
228 ALSA (Advanced Linux Sound Architecture) Sound-Treiber.
229
230 %description sound-alsa -l pl.UTF-8
231 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
232
233 %package headers
234 Summary:        Header files for the Linux kernel
235 Summary(de.UTF-8):      Header Dateien für den Linux-Kernel
236 Summary(pl.UTF-8):      Pliki nagłówkowe jądra Linuksa
237 Group:          Development/Building
238 Provides:       %{name}-headers(netfilter) = 20070806
239 Obsoletes:      kernel%{_alt_kernel}-vanilla-headers
240 AutoReqProv:    no
241
242 %description headers
243 These are the C header files for the Linux kernel, which define
244 structures and constants that are needed when rebuilding the kernel or
245 building kernel modules.
246
247 %description headers -l de.UTF-8
248 Dies sind die C Header Dateien für den Linux-Kernel, die definierte
249 Strukturen und Konstante beinhalten, die beim rekompilieren des
250 Kernels oder bei Kernel Modul kompilationen gebraucht werden.
251
252 %description headers -l pl.UTF-8
253 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra
254 oraz budowania modułów jądra.
255
256 %package module-build
257 Summary:        Development files for building kernel modules
258 Summary(de.UTF-8):      Development Dateien die beim Kernel Modul kompilationen gebraucht werden
259 Summary(pl.UTF-8):      Pliki służące do budowania modułów jądra
260 Group:          Development/Building
261 Requires:       %{name}-headers = %{epoch}:%{version}-%{release}
262 Obsoletes:      kernel%{_alt_kernel}-vanilla-module-build
263 Conflicts:      rpmbuild(macros) < 1.652
264 AutoReqProv:    no
265
266 %description module-build
267 Development files from kernel source tree needed to build Linux kernel
268 modules from external packages.
269
270 %description module-build -l de.UTF-8
271 Development Dateien des Linux-Kernels die beim kompilieren externer
272 Kernel Module gebraucht werden.
273
274 %description module-build -l pl.UTF-8
275 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra
276 Linuksa z zewnętrznych pakietów.
277
278 %package source
279 Summary:        Kernel source tree
280 Summary(de.UTF-8):      Der Kernel Quelltext
281 Summary(pl.UTF-8):      Kod źródłowy jądra Linuksa
282 Group:          Development/Building
283 Requires:       %{name}-module-build = %{epoch}:%{version}-%{release}
284 Obsoletes:      kernel%{_alt_kernel}-vanilla-source
285 AutoReqProv:    no
286
287 %description source
288 This is the source code for the Linux kernel. You can build a custom
289 kernel that is better tuned to your particular hardware.
290
291 %description source -l de.UTF-8
292 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des
293 Linux-Kernels. Die Source-Dateien werden gebraucht, um viele
294 C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die
295 im Kernel-Source definiert sind. Die Source-Dateien können auch
296 benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre
297 Hardware ausgerichtet ist.
298
299 %description source -l fr.UTF-8
300 Le package pour le kernel-source contient le code source pour le noyau
301 linux. Ces sources sont nécessaires pour compiler la plupart des
302 programmes C, car il dépend de constantes définies dans le code
303 source. Les sources peuvent être aussi utilisée pour compiler un noyau
304 personnalisé pour avoir de meilleures performances sur des matériels
305 particuliers.
306
307 %description source -l pl.UTF-8
308 Pakiet zawiera kod źródłowy jądra systemu.
309
310 %package doc
311 Summary:        Kernel documentation
312 Summary(de.UTF-8):      Kernel Dokumentation
313 Summary(pl.UTF-8):      Dokumentacja do jądra Linuksa
314 Group:          Documentation
315 Obsoletes:      kernel%{_alt_kernel}-vanilla-doc
316 AutoReqProv:    no
317
318 %description doc
319 This is the documentation for the Linux kernel, as found in
320 /usr/src/linux/Documentation directory.
321
322 %description doc -l de.UTF-8
323 Dies ist die Kernel Dokumentation wie sie im 'Documentation'
324 Verzeichniss vorgefunden werden kann.
325
326 %description doc -l pl.UTF-8
327 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu
328 /usr/src/linux/Documentation.
329
330 %prep
331 %setup -qc
332 ln -s %{SOURCE2} kernel-module-build.pl
333 ln -s %{SOURCE3} Makefile
334 cd linux-%{basever}
335
336 %if "%{postver}" != "0"
337 %{__xz} -dc %{SOURCE1} | patch -p1 -s
338 %endif
339
340 # Fix EXTRAVERSION in main Makefile
341 sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:-%{alt_kernel}}#g' Makefile
342
343 # cleanup backups after patching
344 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
345
346 find -name '*.py' -print0 | \
347         xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
348                 -e '1s,/usr/bin/env python$,%{__python},' \
349                 -e '1s,/usr/bin/env python3$,%{__python3},'
350
351 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \
352         -e '1s,/usr/bin/env python$,%{__python},' \
353         -e '1s,/usr/bin/env python3$,%{__python3},' \
354                 scripts/bloat-o-meter \
355                 scripts/diffconfig \
356                 scripts/jobserver-exec \
357                 scripts/show_delta \
358                 tools/hv/vmbus_testing \
359                 tools/kvm/kvm_stat/kvm_stat \
360                 tools/testing/selftests/exec/binfmt_script.py
361
362 find -name '*.pl' -print0 | \
363         xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
364
365 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \
366         scripts/dtc/dt_to_config \
367         scripts/cleanfile \
368         scripts/cleanpatch \
369         scripts/documentation-file-ref-check \
370         scripts/get_dvb_firmware \
371         scripts/kernel-doc \
372         scripts/sphinx-pre-install \
373         scripts/stackdelta
374
375 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\\1,' \
376         scripts/config
377
378 %{__sed} -i -e '1s,/usr/bin/awk,/bin/awk,' \
379         scripts/ld-version.sh
380
381 %build
382 install -d %{objdir}
383 cat > %{targetobj}.mk <<'EOF'
384 # generated by %{name}.spec
385 KERNELSRC               := %{srcdir}
386 KERNELOUTPUT    := %{objdir}
387
388 SRCARCH         := %{target_arch_dir}
389 ARCH            := %{_target_base_arch}
390 Q               := %{!?with_verbose:@}
391 MAKE_OPTS       := %{MakeOpts}
392 DEFCONFIG   := %{defconfig}
393 EOF
394
395 cd %{objdir}
396 install -d arch/%{target_arch_dir}
397 %ifarch i686
398         cat %{SOURCE10} > %{defconfig}
399 %endif
400 %ifarch x86_64
401         cat %{SOURCE11} > %{defconfig}
402 %endif
403 sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
404
405 ln -sf %{defconfig} .config
406 cd -
407
408 %{__make} \
409         TARGETOBJ=%{targetobj} \
410         %{?with_verbose:V=1} \
411         oldconfig
412
413 # build kernel
414 %{__make} \
415         TARGETOBJ=%{targetobj} \
416         %{?with_verbose:V=1} \
417         all
418
419 %install
420 rm -rf $RPM_BUILD_ROOT
421 %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install \
422         -C %{objdir} \
423         %{?with_verbose:V=1} \
424         DEPMOD=%{DepMod} \
425         mod_compress_cmd=true \
426         INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
427         KERNELRELEASE=%{kernel_release}
428
429 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
430
431 # create directories which may be missing, to simplyfy %files
432 install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm}
433
434 # rpm obeys filelinkto checks for ghosted symlinks, convert to files
435 rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
436 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
437
438 # no point embed content for %ghost files. empty them
439 for a in \
440         dep{,.bin} \
441         alias{,.bin} \
442         devname \
443         softdep \
444         symbols{,.bin} \
445 ; do
446         test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
447         > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a
448 done
449
450 # /boot
451 install -d $RPM_BUILD_ROOT/boot
452 cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
453 cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release}
454 cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
455 install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
456
457 # ghosted initrd
458 touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img
459
460 %if "%{_target_base_arch}" != "%{_host_base_arch}"
461 touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
462 %endif
463
464 # /etc/modrobe.d
465 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
466
467 # /usr/src/linux
468 install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
469
470 # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
471 if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
472         l=l
473         rm -f $RPM_BUILD_ROOT/COPYING
474 fi
475
476 cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
477 cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}
478 cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}
479 cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir}
480 # copy arch/x86/include/generated
481 for dir in $(cd %{objdir} && find arch -name generated -type d); do
482         cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir
483         find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
484 done
485
486 # version.h location changed in 3.7, but a lot of external modules don't know about it
487 # add a compatibility symlink
488 ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h
489
490 # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway
491 %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile
492
493 # collect module-build files and directories
494 # Usage: kernel-module-build.pl $rpmdir $fileoutdir
495 fileoutdir=$(pwd)
496 cd $RPM_BUILD_ROOT%{_kernelsrcdir}
497 %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
498 cd -
499
500 for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do
501         ff=${f##%{objdir}/}
502         if [ -x "$f" ]; then
503                 echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
504         else
505                 echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs
506         fi
507         echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs
508         cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff"
509 done
510
511 %if %{with doc}
512 # move to %{_docdir} so we wouldn't depend on any kernel package for dirs
513 install -d $RPM_BUILD_ROOT%{_docdir}
514 mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}}
515
516 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff
517 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile
518 #%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile
519 %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile
520 %else
521 %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation
522 %endif
523
524 %clean
525 rm -rf $RPM_BUILD_ROOT
526
527 %preun
528 if [ -x /sbin/new-kernel-pkg ]; then
529         /sbin/new-kernel-pkg --remove %{kernel_release}
530 fi
531
532 %post
533 %depmod %{kernel_release}
534
535 %posttrans
536 # generate initramfs
537 if [ -x /sbin/dracut ]; then
538         /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release}
539 fi
540 # update boot loader
541 if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then
542         if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then
543                 /sbin/update-grub >/dev/null
544         fi
545 fi
546
547 %post drm
548 %depmod %{kernel_release}
549
550 %postun drm
551 %depmod %{kernel_release}
552
553 %post pcmcia
554 %depmod %{kernel_release}
555
556 %postun pcmcia
557 %depmod %{kernel_release}
558
559 %post sound-alsa
560 %depmod %{kernel_release}
561
562 %postun sound-alsa
563 %depmod %{kernel_release}
564
565 %post headers
566 ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
567
568 %postun headers
569 if [ "$1" = "0" ]; then
570         if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
571                 if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
572                         rm -f %{_prefix}/src/linux%{_alt_kernel}
573                 fi
574         fi
575 fi
576
577 %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release}
578 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build
579 ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source
580
581 %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release}
582 if [ "$1" = 0 ]; then
583         rm -f /lib/modules/%{kernel_release}/{build,source}
584 fi
585
586 %files
587 %defattr(644,root,root,755)
588 /boot/vmlinuz-%{kernel_release}
589 /boot/System.map-%{kernel_release}
590 /boot/config-%{kernel_release}
591 %ghost %{initrd_dir}/initramfs-%{kernel_release}.img
592
593 %dir /lib/modules/%{kernel_release}
594 %dir /lib/modules/%{kernel_release}/kernel
595 /lib/modules/%{kernel_release}/kernel/arch
596 /lib/modules/%{kernel_release}/kernel/block
597 /lib/modules/%{kernel_release}/kernel/crypto
598 /lib/modules/%{kernel_release}/kernel/drivers
599 %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
600 /lib/modules/%{kernel_release}/kernel/fs
601 /lib/modules/%{kernel_release}/kernel/kernel
602 /lib/modules/%{kernel_release}/kernel/lib
603 /lib/modules/%{kernel_release}/kernel/net
604 /lib/modules/%{kernel_release}/kernel/mm
605 %dir /lib/modules/%{kernel_release}/kernel/sound
606 /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
607 /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
608 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
609 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
610 %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
611 %dir /lib/modules/%{kernel_release}/misc
612 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]*
613 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko*
614 %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
615 %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
616 %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
617 %exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
618 %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
619 %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
620 %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
621 /lib/modules/%{kernel_release}/kernel/security
622 /lib/modules/%{kernel_release}/kernel/virt
623
624 %dir %{_sysconfdir}/modprobe.d/%{kernel_release}
625
626 # provided by build
627 /lib/modules/%{kernel_release}/modules.order
628 /lib/modules/%{kernel_release}/modules.builtin*
629
630 # rest modules.* are ghost (regenerated by post depmod -a invocation)
631 %ghost /lib/modules/%{kernel_release}/modules.alias
632 %ghost /lib/modules/%{kernel_release}/modules.alias.bin
633 %ghost /lib/modules/%{kernel_release}/modules.dep
634 %ghost /lib/modules/%{kernel_release}/modules.dep.bin
635 %ghost /lib/modules/%{kernel_release}/modules.devname
636 %ghost /lib/modules/%{kernel_release}/modules.softdep
637 %ghost /lib/modules/%{kernel_release}/modules.symbols
638 %ghost /lib/modules/%{kernel_release}/modules.symbols.bin
639
640 # symlinks pointing to kernelsrcdir
641 %ghost /lib/modules/%{kernel_release}/build
642 %ghost /lib/modules/%{kernel_release}/source
643
644 %files vmlinux
645 %defattr(644,root,root,755)
646 /boot/vmlinux-%{kernel_release}
647
648 %files drm
649 %defattr(644,root,root,755)
650 /lib/modules/%{kernel_release}/kernel/drivers/gpu
651
652 %files pcmcia
653 %defattr(644,root,root,755)
654 /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko*
655 /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia
656 %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
657 /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
658 /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
659 /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.ko*
660 /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko*
661 /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko*
662 /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko*
663
664 %files sound-alsa
665 %defattr(644,root,root,755)
666 /lib/modules/%{kernel_release}/kernel/sound
667 %exclude %dir /lib/modules/%{kernel_release}/kernel/sound
668 %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko*
669 %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko*
670 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko*
671 /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko*
672 /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko*
673
674 %files headers -f files.headers_exclude_kbuild
675 %defattr(644,root,root,755)
676 %dir %{_kernelsrcdir}
677 %{_kernelsrcdir}/include
678 %dir %{_kernelsrcdir}/arch
679 %dir %{_kernelsrcdir}/arch/[!K]*
680 %{_kernelsrcdir}/arch/*/include
681 %dir %{_kernelsrcdir}/security
682 %dir %{_kernelsrcdir}/security/selinux
683 %{_kernelsrcdir}/security/selinux/include
684 %dir %{_kernelsrcdir}/usr
685 %dir %{_kernelsrcdir}/usr/include
686 %{_kernelsrcdir}/.config
687 %{_kernelsrcdir}/Module.symvers
688
689 %files module-build -f files.mb_include_modulebuild_and_dirs
690 %defattr(644,root,root,755)
691 %exclude %dir %{_kernelsrcdir}/arch/um
692 %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
693 %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
694 %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
695 %{_kernelsrcdir}/kernel/bounds.c
696 %{_kernelsrcdir}/scripts/basic/*.c
697 %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh
698 %{_kernelsrcdir}/scripts/kconfig/*.pl
699 %{_kernelsrcdir}/scripts/kconfig/*.glade
700 %{_kernelsrcdir}/scripts/kconfig/*.cc
701 %{_kernelsrcdir}/scripts/kconfig/*.y
702 %{_kernelsrcdir}/scripts/kconfig/*.l
703 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c
704 %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h
705 %{_kernelsrcdir}/scripts/kconfig/l*.h
706 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.c
707 %{_kernelsrcdir}/scripts/kconfig/[m-o]*.h
708 %{_kernelsrcdir}/scripts/kconfig/preprocess.c
709 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.c
710 %{_kernelsrcdir}/scripts/kconfig/[q-u]*.h
711 %{_kernelsrcdir}/scripts/kconfig/lxdialog
712 %{_kernelsrcdir}/scripts/mod/*.c
713 %{_kernelsrcdir}/scripts/mod/modpost.h
714 %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
715 %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
716 %{_kernelsrcdir}/scripts/subarch.include
717 %{_kernelsrcdir}/scripts/*.c
718 %{_kernelsrcdir}/scripts/*.h
719 %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh
720 %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
721 %{_kernelsrcdir}/scripts/selinux/mdp/*.c
722 %exclude %dir %{_kernelsrcdir}/security
723 %exclude %dir %{_kernelsrcdir}/security/selinux
724
725 %if %{with doc}
726 %files doc
727 %defattr(644,root,root,755)
728 %dir %{_docdir}/%{name}-%{version}
729
730 %{_docdir}/%{name}-%{version}/[!jkz]*
731 %{_docdir}/%{name}-%{version}/kbuild
732 %{_docdir}/%{name}-%{version}/kernel-hacking
733 %endif
734
735 %if %{with source}
736 %files source -f files.source_exclude_modulebuild_and_dirs
737 %defattr(644,root,root,755)
738 %{_kernelsrcdir}/arch/*/[!Mik]*
739 %{_kernelsrcdir}/arch/*/kernel/[!M]*
740 %{_kernelsrcdir}/arch/ia64/install.sh
741 %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
742 %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
743 %{_kernelsrcdir}/arch/m68k/install.sh
744 %{_kernelsrcdir}/arch/parisc/install.sh
745 %{_kernelsrcdir}/arch/x86/ia32/[!M]*
746 %{_kernelsrcdir}/arch/arm64/kvm
747 %{_kernelsrcdir}/arch/mips/kvm
748 %{_kernelsrcdir}/arch/powerpc/kexec
749 %{_kernelsrcdir}/arch/powerpc/kvm
750 %{_kernelsrcdir}/arch/riscv/kvm
751 %{_kernelsrcdir}/arch/s390/kvm
752 %{_kernelsrcdir}/arch/x86/kvm
753 %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets*
754 %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h
755 %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
756 %{_kernelsrcdir}/block
757 %{_kernelsrcdir}/certs
758 %{_kernelsrcdir}/crypto
759 %{_kernelsrcdir}/drivers
760 %{_kernelsrcdir}/fs
761 %{_kernelsrcdir}/init
762 %{_kernelsrcdir}/io_uring
763 %{_kernelsrcdir}/ipc
764 %{_kernelsrcdir}/kernel
765 %exclude %{_kernelsrcdir}/kernel/bounds.c
766 %{_kernelsrcdir}/lib
767 %{_kernelsrcdir}/mm
768 %{_kernelsrcdir}/net
769 %{_kernelsrcdir}/virt
770 %{_kernelsrcdir}/rust
771 %{_kernelsrcdir}/samples
772 %{_kernelsrcdir}/scripts/*
773 %exclude %{_kernelsrcdir}/scripts/Kbuild.include
774 %exclude %{_kernelsrcdir}/scripts/Makefile*
775 %exclude %{_kernelsrcdir}/scripts/basic
776 %exclude %{_kernelsrcdir}/scripts/kconfig
777 %exclude %{_kernelsrcdir}/scripts/mkcompile_h
778 %exclude %{_kernelsrcdir}/scripts/mod
779 %exclude %{_kernelsrcdir}/scripts/setlocalversion
780 %exclude %{_kernelsrcdir}/scripts/*.c
781 %exclude %{_kernelsrcdir}/scripts/*.h
782 %exclude %{_kernelsrcdir}/scripts/*.sh
783 %exclude %dir %{_kernelsrcdir}/scripts/selinux
784 %exclude %{_kernelsrcdir}/scripts/selinux/Makefile
785 %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders
786 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
787 %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c
788 %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp
789 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile
790 %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c
791 %{_kernelsrcdir}/sound
792 %{_kernelsrcdir}/security
793 %exclude %{_kernelsrcdir}/security/selinux/include
794 %{_kernelsrcdir}/tools/*
795 %{_kernelsrcdir}/usr
796 %{_kernelsrcdir}/COPYING
797 %{_kernelsrcdir}/CREDITS
798 %{_kernelsrcdir}/LICENSES
799 %{_kernelsrcdir}/MAINTAINERS
800 %{_kernelsrcdir}/README
801 %endif