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