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