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