# Conditional build: %bcond_without source # don't build kernel-source package %bcond_without doc # don't build kernel-doc package %bcond_with verbose # verbose build (V=1) %define basever 6.6 %define postver 23 %define rel 1 %define __alt_kernel %{nil} %if "%{__alt_kernel}" != "" %define alt_kernel %{__alt_kernel} %endif %define versuffix -%{basever} # kernel release (used in filesystem and eventually in uname -r) # modules will be looked from /lib/modules/%{kernel_release} # localversion is just that without version for "> localversion" %define localversion %{rel} %define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion} Summary: The Linux kernel (the core of the Linux operating system) Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems) Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum) Summary(fr.UTF-8): Le Kernel-Linux (La partie centrale du systeme) Summary(pl.UTF-8): Jądro Linuksa Name: kernel%{versuffix}%{_alt_kernel} Version: %{basever}.%{postver} Release: %{rel} Epoch: 3 License: GPL v2 Group: Base/Kernel Source0: http://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz # Source0-md5: 452098d80ba925af3a4ab35998f3aef5 %if "%{postver}" != "0" Source1: http://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz # Source1-md5: 9f0b496cafec819580f5890bda60891e %endif Source2: kernel-module-build.pl Source3: kernel.make Source10: kernel-x86.config Source11: kernel-x86_64.config URL: http://www.kernel.org/ BuildRequires: binutils >= 3:2.18 BuildRequires: bison BuildRequires: /sbin/depmod BuildRequires: elfutils-devel BuildRequires: flex BuildRequires: gcc >= 5:3.2 BuildRequires: gcc-plugin-devel BuildRequires: xz >= 1:4.999.7 AutoReqProv: no BuildRequires: hostname BuildRequires: kmod BuildRequires: openssl-devel BuildRequires: perl-base BuildRequires: rpm >= 4.5-74 BuildRequires: rpmbuild(macros) >= 1.652 Requires(post): coreutils Requires(post): dracut Requires(post): kmod >= 12-2 Requires: /sbin/depmod Requires: coreutils Requires: dracut Requires: kmod >= 12-2 %ifarch i686 Requires: cpuinfo(pae) %endif Suggests: keyutils Suggests: linux-firmware Provides: %{name}(netfilter) = 20070806 Provides: %{name}(vermagic) = %{kernel_release} Obsoletes: kernel-firmware Obsoletes: kernel-modules Conflicts: e2fsprogs < 1.29 Conflicts: isdn4k-utils < 3.1pre1 Conflicts: jfsutils < 1.1.3 Conflicts: linux-firmware < 20120720 Conflicts: lvm2 < 2.02.40 Conflicts: module-init-tools < 3.16 Conflicts: nfs-utils < 1.0.5 Conflicts: oprofile < 0.9 Conflicts: ppp < 1:2.4.0 Conflicts: procps < 3.2.0 Conflicts: quota-tools < 3.09 Conflicts: reiserfsprogs < 3.6.3 Conflicts: rpm < 4.4.2-0.2 Conflicts: udev < 1:081 Conflicts: util-linux < 2.10o Conflicts: xfsprogs < 2.6.0 ExclusiveArch: i686 x86_64 ExclusiveOS: Linux BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %ifarch i686 x86_64 %define target_arch_dir x86 %else %define target_arch_dir %{_target_base_arch} %endif %define defconfig arch/%{target_arch_dir}/defconfig # No ELF objects there to strip (skips processing 27k files) %define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\) %define _noautochrpath .*%{_kernelsrcdir}/.* %define _enable_debug_packages 0 %define initrd_dir /boot %define topdir %{_builddir}/%{name}-%{version} %define srcdir %{topdir}/linux-%{basever} %define objdir %{topdir}/%{targetobj} %define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion) %define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version} %if "%{_target_base_arch}" != "%{_host_base_arch}" %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux- %define DepMod /bin/true %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386" %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}" %define DepMod /sbin/depmod %endif %else %define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}" %define DepMod /sbin/depmod %endif # use 64-bit offsets for fixdeps to work with 64-bit inodes %define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64" %description This package contains the Linux kernel that is used to boot and run your system. It contains few device drivers for specific hardware. Most hardware is instead supported by modules loaded after booting. %description -l de.UTF-8 Das Kernel-Paket enthält den Linux-Kernel (vmlinuz), den Kern des Linux-Betriebssystems. Der Kernel ist für grundliegende Systemfunktionen verantwortlich: Speicherreservierung, Prozeß-Management, Geräte Ein- und Ausgaben, usw. %description -l fr.UTF-8 Le package kernel contient le kernel linux (vmlinuz), la partie centrale d'un système d'exploitation Linux. Le noyau traite les fonctions basiques d'un système d'exploitation: allocation mémoire, allocation de process, entrée/sortie de peripheriques, etc. %description -l pl.UTF-8 Pakiet zawiera jądro Linuksa niezbędne do prawidłowego działania Twojego komputera. Zawiera w sobie sterowniki do sprzętu znajdującego się w komputerze, takiego jak sterowniki dysków itp. %package vmlinux Summary: vmlinux - uncompressed kernel image Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra Group: Base/Kernel Obsoletes: kernel-smp-vmlinux %description vmlinux vmlinux - uncompressed kernel image. %description vmlinux -l de.UTF-8 vmlinux - dekompressiertes Kernel Bild. %description vmlinux -l pl.UTF-8 vmlinux - rozpakowany obraz jądra. %package drm Summary: DRM kernel modules Summary(de.UTF-8): DRM Kernel Treiber Summary(pl.UTF-8): Sterowniki DRM Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-drm AutoReqProv: no %description drm DRM kernel modules. %description drm -l de.UTF-8 DRM Kernel Treiber. %description drm -l pl.UTF-8 Sterowniki DRM. %package pcmcia Summary: PCMCIA modules Summary(de.UTF-8): PCMCIA Module Summary(pl.UTF-8): Moduły PCMCIA Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-pcmcia Conflicts: pcmcia-cs < 3.1.21 Conflicts: pcmciautils < 004 AutoReqProv: no %description pcmcia PCMCIA modules. %description pcmcia -l de.UTF-8 PCMCIA Module. %description pcmcia -l pl.UTF-8 Moduły PCMCIA. %package sound-alsa Summary: ALSA kernel modules Summary(de.UTF-8): ALSA Kernel Module Summary(pl.UTF-8): Sterowniki dźwięku ALSA Group: Base/Kernel Requires(postun): %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release} Obsoletes: kernel-smp-sound-alsa AutoReqProv: no %description sound-alsa ALSA (Advanced Linux Sound Architecture) sound drivers. %description sound-alsa -l de.UTF-8 ALSA (Advanced Linux Sound Architecture) Sound-Treiber. %description sound-alsa -l pl.UTF-8 Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture). %package headers Summary: Header files for the Linux kernel Summary(de.UTF-8): Header Dateien für den Linux-Kernel Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa Group: Development/Building Provides: %{name}-headers(netfilter) = 20070806 AutoReqProv: no %description headers These are the C header files for the Linux kernel, which define structures and constants that are needed when rebuilding the kernel or building kernel modules. %description headers -l de.UTF-8 Dies sind die C Header Dateien für den Linux-Kernel, die definierte Strukturen und Konstante beinhalten, die beim rekompilieren des Kernels oder bei Kernel Modul kompilationen gebraucht werden. %description headers -l pl.UTF-8 Pakiet zawiera pliki nagłówkowe jądra, niezbędne do rekompilacji jądra oraz budowania modułów jądra. %package module-build Summary: Development files for building kernel modules Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebraucht werden Summary(pl.UTF-8): Pliki służące do budowania modułów jądra Group: Development/Building Requires: %{name}-headers = %{epoch}:%{version}-%{release} Conflicts: rpmbuild(macros) < 1.652 AutoReqProv: no %description module-build Development files from kernel source tree needed to build Linux kernel modules from external packages. %description module-build -l de.UTF-8 Development Dateien des Linux-Kernels die beim kompilieren externer Kernel Module gebraucht werden. %description module-build -l pl.UTF-8 Pliki ze drzewa źródeł jądra potrzebne do budowania modułów jądra Linuksa z zewnętrznych pakietów. %package source Summary: Kernel source tree Summary(de.UTF-8): Der Kernel Quelltext Summary(pl.UTF-8): Kod źródłowy jądra Linuksa Group: Development/Building Requires: %{name}-module-build = %{epoch}:%{version}-%{release} AutoReqProv: no %description source This is the source code for the Linux kernel. You can build a custom kernel that is better tuned to your particular hardware. %description source -l de.UTF-8 Das Kernel-Source-Paket enthält den source code (C/Assembler-Code) des Linux-Kernels. Die Source-Dateien werden gebraucht, um viele C-Programme zu kompilieren, da sie auf Konstanten zurückgreifen, die im Kernel-Source definiert sind. Die Source-Dateien können auch benutzt werden, um einen Kernel zu kompilieren, der besser auf Ihre Hardware ausgerichtet ist. %description source -l fr.UTF-8 Le package pour le kernel-source contient le code source pour le noyau linux. Ces sources sont nécessaires pour compiler la plupart des programmes C, car il dépend de constantes définies dans le code source. Les sources peuvent être aussi utilisée pour compiler un noyau personnalisé pour avoir de meilleures performances sur des matériels particuliers. %description source -l pl.UTF-8 Pakiet zawiera kod źródłowy jądra systemu. %package doc Summary: Kernel documentation Summary(de.UTF-8): Kernel Dokumentation Summary(pl.UTF-8): Dokumentacja do jądra Linuksa Group: Documentation AutoReqProv: no %description doc This is the documentation for the Linux kernel, as found in /usr/src/linux/Documentation directory. %description doc -l de.UTF-8 Dies ist die Kernel Dokumentation wie sie im 'Documentation' Verzeichniss vorgefunden werden kann. %description doc -l pl.UTF-8 Pakiet zawiera dokumentację do jądra Linuksa pochodzącą z katalogu /usr/src/linux/Documentation. %prep %setup -qc ln -s %{SOURCE2} kernel-module-build.pl ln -s %{SOURCE3} Makefile cd linux-%{basever} %if "%{postver}" != "0" %{__xz} -dc %{SOURCE1} | patch -p1 -s %endif # Fix EXTRAVERSION in main Makefile sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f find -name '*.py' -print0 | \ xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \ -e '1s,/usr/bin/env python$,%{__python},' \ -e '1s,/usr/bin/env python3$,%{__python3},' %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \ -e '1s,/usr/bin/env python$,%{__python},' \ -e '1s,/usr/bin/env python3$,%{__python3},' \ scripts/bloat-o-meter \ scripts/diffconfig \ scripts/dtc/dt-extract-compatibles \ scripts/jobserver-exec \ scripts/show_delta \ tools/hv/vmbus_testing \ tools/kvm/kvm_stat/kvm_stat \ tools/testing/selftests/exec/binfmt_script.py find -name '*.pl' -print0 | \ xargs -0 %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \ %{__sed} -i -e '1s,/usr/bin/env perl,%{__perl},' \ scripts/dtc/dt_to_config \ scripts/cleanfile \ scripts/cleanpatch \ scripts/documentation-file-ref-check \ scripts/get_dvb_firmware \ scripts/kernel-doc \ scripts/sphinx-pre-install \ scripts/stackdelta %{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \ tools/testing/selftests/powerpc/security/mitigation-patching.sh \ scripts/config \ scripts/coccicheck %build install -d %{objdir} cat > %{targetobj}.mk <<'EOF' # generated by %{name}.spec KERNELSRC := %{srcdir} KERNELOUTPUT := %{objdir} SRCARCH := %{target_arch_dir} ARCH := %{_target_base_arch} Q := %{!?with_verbose:@} MAKE_OPTS := %{MakeOpts} DEFCONFIG := %{defconfig} EOF cd %{objdir} install -d arch/%{target_arch_dir} %ifarch i686 cat %{SOURCE10} > %{defconfig} %endif %ifarch x86_64 cat %{SOURCE11} > %{defconfig} %endif sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig} ln -sf %{defconfig} .config cd - %{__make} \ TARGETOBJ=%{targetobj} \ %{?with_verbose:V=1} \ oldconfig # build kernel %{__make} \ TARGETOBJ=%{targetobj} \ %{?with_verbose:V=1} \ all %install rm -rf $RPM_BUILD_ROOT %{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install \ -C %{objdir} \ %{?with_verbose:V=1} \ DEPMOD=%{DepMod} \ mod_compress_cmd=true \ INSTALL_MOD_PATH=$RPM_BUILD_ROOT \ KERNELRELEASE=%{kernel_release} install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc # create directories which may be missing, to simplyfy %files install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/kernel/{arch,sound,mm} # rpm obeys filelinkto checks for ghosted symlinks, convert to files rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source} # no point embed content for %ghost files. empty them for a in \ dep{,.bin} \ alias{,.bin} \ devname \ softdep \ symbols{,.bin} \ ; do test -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a > $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.$a done # /boot install -d $RPM_BUILD_ROOT/boot cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release} cp -aL %{objdir}/.config $RPM_BUILD_ROOT/boot/config-%{kernel_release} cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release} install -p %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release} # ghosted initrd touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img %if "%{_target_base_arch}" != "%{_host_base_arch}" touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep %endif # /etc/modrobe.d install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release} # /usr/src/linux install -d $RPM_BUILD_ROOT%{_kernelsrcdir} # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then l=l rm -f $RPM_BUILD_ROOT/COPYING fi cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir} cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir} cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir} cp -a %{objdir}/include $RPM_BUILD_ROOT%{_kernelsrcdir} # copy arch/x86/include/generated for dir in $(cd %{objdir} && find arch -name generated -type d); do cp -a %{objdir}/$dir $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";" done # version.h location changed in 3.7, but a lot of external modules don't know about it # add a compatibility symlink ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h # disable this here, causes a lot of build-time problems and our rpm-build disables it anyway %{__sed} -i -e 's|\(CONSTIFY_PLUGIN.*:=.*\)|# \1|' $RPM_BUILD_ROOT%{_kernelsrcdir}/Makefile # collect module-build files and directories # Usage: kernel-module-build.pl $rpmdir $fileoutdir fileoutdir=$(pwd) cd $RPM_BUILD_ROOT%{_kernelsrcdir} %{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir cd - for f in `find %{objdir}/scripts -type f -print | grep -v "/\.\|\.o$"` ; do ff=${f##%{objdir}/} if [ -x "$f" ]; then echo "%attr(755,root,root) %{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs else echo "%{_kernelsrcdir}/$ff" >>files.mb_include_modulebuild_and_dirs fi echo "%exclude %{_kernelsrcdir}/$ff" >>files.source_exclude_modulebuild_and_dirs cp -a "$f" "$RPM_BUILD_ROOT%{_kernelsrcdir}/$ff" done %if %{with doc} # move to %{_docdir} so we wouldn't depend on any kernel package for dirs install -d $RPM_BUILD_ROOT%{_docdir} mv $RPM_BUILD_ROOT{%{_kernelsrcdir}/Documentation,%{_docdir}/%{name}-%{version}} %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/dontdiff %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/Makefile #%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/Makefile %{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/*/*/Makefile %else %{__rm} -r $RPM_BUILD_ROOT%{_kernelsrcdir}/Documentation %endif %clean rm -rf $RPM_BUILD_ROOT %preun if [ -x /sbin/new-kernel-pkg ]; then /sbin/new-kernel-pkg --remove %{kernel_release} fi %post %depmod %{kernel_release} %posttrans # generate initramfs if [ -x /sbin/dracut ]; then /sbin/dracut --force --quiet /boot/initramfs-%{kernel_release}.img %{kernel_release} fi # update boot loader if [ -x /sbin/update-grub -a -f /etc/sysconfig/grub ]; then if [ "$(. /etc/sysconfig/grub; echo ${UPDATE_GRUB:-yes})" = "yes" ]; then /sbin/update-grub >/dev/null fi fi %post drm %depmod %{kernel_release} %postun drm %depmod %{kernel_release} %post pcmcia %depmod %{kernel_release} %postun pcmcia %depmod %{kernel_release} %post sound-alsa %depmod %{kernel_release} %postun sound-alsa %depmod %{kernel_release} %post headers ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_alt_kernel} %postun headers if [ "$1" = "0" ]; then if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel} fi fi fi %triggerin module-build -- %{name} = %{epoch}:%{version}-%{release} ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/build ln -sfn %{_kernelsrcdir} /lib/modules/%{kernel_release}/source %triggerun module-build -- %{name} = %{epoch}:%{version}-%{release} if [ "$1" = 0 ]; then rm -f /lib/modules/%{kernel_release}/{build,source} fi %files %defattr(644,root,root,755) /boot/vmlinuz-%{kernel_release} /boot/System.map-%{kernel_release} /boot/config-%{kernel_release} %ghost %{initrd_dir}/initramfs-%{kernel_release}.img %dir /lib/modules/%{kernel_release} %dir /lib/modules/%{kernel_release}/kernel /lib/modules/%{kernel_release}/kernel/arch /lib/modules/%{kernel_release}/kernel/block /lib/modules/%{kernel_release}/kernel/crypto /lib/modules/%{kernel_release}/kernel/drivers %exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu /lib/modules/%{kernel_release}/kernel/fs /lib/modules/%{kernel_release}/kernel/kernel /lib/modules/%{kernel_release}/kernel/lib /lib/modules/%{kernel_release}/kernel/net /lib/modules/%{kernel_release}/kernel/mm %dir /lib/modules/%{kernel_release}/kernel/sound /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko* /lib/modules/%{kernel_release}/kernel/sound/sound*.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko* %dir /lib/modules/%{kernel_release}/misc %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/[!p]* %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pd6729.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia %exclude /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko* %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko* /lib/modules/%{kernel_release}/kernel/security /lib/modules/%{kernel_release}/kernel/virt %dir %{_sysconfdir}/modprobe.d/%{kernel_release} # provided by build /lib/modules/%{kernel_release}/modules.order /lib/modules/%{kernel_release}/modules.builtin* # rest modules.* are ghost (regenerated by post depmod -a invocation) %ghost /lib/modules/%{kernel_release}/modules.alias %ghost /lib/modules/%{kernel_release}/modules.alias.bin %ghost /lib/modules/%{kernel_release}/modules.dep %ghost /lib/modules/%{kernel_release}/modules.dep.bin %ghost /lib/modules/%{kernel_release}/modules.devname %ghost /lib/modules/%{kernel_release}/modules.softdep %ghost /lib/modules/%{kernel_release}/modules.symbols %ghost /lib/modules/%{kernel_release}/modules.symbols.bin # symlinks pointing to kernelsrcdir %ghost /lib/modules/%{kernel_release}/build %ghost /lib/modules/%{kernel_release}/source %files vmlinux %defattr(644,root,root,755) /boot/vmlinux-%{kernel_release} %files drm %defattr(644,root,root,755) /lib/modules/%{kernel_release}/kernel/drivers/gpu %files pcmcia %defattr(644,root,root,755) /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/*ko* /lib/modules/%{kernel_release}/kernel/drivers/*/pcmcia %exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko* /lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko* /lib/modules/%{kernel_release}/kernel/drivers/parport/parport_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/tty/serial/8250/serial_cs.ko* /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko* %files sound-alsa %defattr(644,root,root,755) /lib/modules/%{kernel_release}/kernel/sound %exclude %dir /lib/modules/%{kernel_release}/kernel/sound %exclude /lib/modules/%{kernel_release}/kernel/sound/ac97_bus.ko* %exclude /lib/modules/%{kernel_release}/kernel/sound/sound*.ko* /lib/modules/%{kernel_release}/kernel/drivers/media/pci/cx88/cx88-alsa.ko* /lib/modules/%{kernel_release}/kernel/drivers/media/usb/em28xx/em28xx-alsa.ko* /lib/modules/%{kernel_release}/kernel/drivers/media/pci/saa7134/saa7134-alsa.ko* %files headers -f files.headers_exclude_kbuild %defattr(644,root,root,755) %dir %{_kernelsrcdir} %{_kernelsrcdir}/include %dir %{_kernelsrcdir}/arch %dir %{_kernelsrcdir}/arch/[!K]* %{_kernelsrcdir}/arch/*/include %dir %{_kernelsrcdir}/security %dir %{_kernelsrcdir}/security/selinux %{_kernelsrcdir}/security/selinux/include %dir %{_kernelsrcdir}/usr %dir %{_kernelsrcdir}/usr/include %{_kernelsrcdir}/.config %{_kernelsrcdir}/Module.symvers %files module-build -f files.mb_include_modulebuild_and_dirs %defattr(644,root,root,755) %exclude %dir %{_kernelsrcdir}/arch/um %{_kernelsrcdir}/arch/*/kernel/asm-offsets* %{_kernelsrcdir}/arch/*/kernel/sigframe*.h %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h %{_kernelsrcdir}/kernel/bounds.c %{_kernelsrcdir}/scripts/basic/*.c %attr(755,root,root) %{_kernelsrcdir}/scripts/kconfig/*.sh %{_kernelsrcdir}/scripts/kconfig/*.pl %{_kernelsrcdir}/scripts/kconfig/*.glade %{_kernelsrcdir}/scripts/kconfig/*.cc %{_kernelsrcdir}/scripts/kconfig/*.y %{_kernelsrcdir}/scripts/kconfig/*.l %{_kernelsrcdir}/scripts/kconfig/[c-k]*.c %{_kernelsrcdir}/scripts/kconfig/[c-k]*.h %{_kernelsrcdir}/scripts/kconfig/l*.h %{_kernelsrcdir}/scripts/kconfig/[m-o]*.c %{_kernelsrcdir}/scripts/kconfig/[m-o]*.h %{_kernelsrcdir}/scripts/kconfig/preprocess.c %{_kernelsrcdir}/scripts/kconfig/[q-u]*.c %{_kernelsrcdir}/scripts/kconfig/[q-u]*.h %{_kernelsrcdir}/scripts/kconfig/lxdialog %{_kernelsrcdir}/scripts/mod/*.c %{_kernelsrcdir}/scripts/mod/modpost.h %attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h %attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion %{_kernelsrcdir}/scripts/subarch.include %{_kernelsrcdir}/scripts/*.c %{_kernelsrcdir}/scripts/*.h %attr(755,root,root) %{_kernelsrcdir}/scripts/*.sh %{_kernelsrcdir}/scripts/selinux/genheaders/*.c %{_kernelsrcdir}/scripts/selinux/mdp/*.c %exclude %dir %{_kernelsrcdir}/security %exclude %dir %{_kernelsrcdir}/security/selinux %if %{with doc} %files doc %defattr(644,root,root,755) %dir %{_docdir}/%{name}-%{version} %{_docdir}/%{name}-%{version}/[!jkz]* %{_docdir}/%{name}-%{version}/kbuild %{_docdir}/%{name}-%{version}/kernel-hacking %endif %if %{with source} %files source -f files.source_exclude_modulebuild_and_dirs %defattr(644,root,root,755) %{_kernelsrcdir}/arch/*/[!Mik]* %{_kernelsrcdir}/arch/*/kernel/[!M]* %{_kernelsrcdir}/arch/ia64/install.sh %{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]* %{_kernelsrcdir}/arch/m68k/ifpsp060/MISC %{_kernelsrcdir}/arch/m68k/install.sh %{_kernelsrcdir}/arch/parisc/install.sh %{_kernelsrcdir}/arch/x86/ia32/[!M]* %{_kernelsrcdir}/arch/arm64/kvm %{_kernelsrcdir}/arch/mips/kvm %{_kernelsrcdir}/arch/powerpc/kexec %{_kernelsrcdir}/arch/powerpc/kvm %{_kernelsrcdir}/arch/riscv/kvm %{_kernelsrcdir}/arch/s390/kvm %{_kernelsrcdir}/arch/x86/kvm %exclude %{_kernelsrcdir}/arch/*/kernel/asm-offsets* %exclude %{_kernelsrcdir}/arch/*/kernel/sigframe*.h %exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h %{_kernelsrcdir}/block %{_kernelsrcdir}/certs %{_kernelsrcdir}/crypto %{_kernelsrcdir}/drivers %{_kernelsrcdir}/fs %{_kernelsrcdir}/init %{_kernelsrcdir}/io_uring %{_kernelsrcdir}/ipc %{_kernelsrcdir}/kernel %exclude %{_kernelsrcdir}/kernel/bounds.c %{_kernelsrcdir}/lib %{_kernelsrcdir}/mm %{_kernelsrcdir}/net %{_kernelsrcdir}/virt %{_kernelsrcdir}/rust %{_kernelsrcdir}/samples %{_kernelsrcdir}/scripts/* %exclude %{_kernelsrcdir}/scripts/Kbuild.include %exclude %{_kernelsrcdir}/scripts/Makefile* %exclude %{_kernelsrcdir}/scripts/basic %exclude %{_kernelsrcdir}/scripts/kconfig %exclude %{_kernelsrcdir}/scripts/mkcompile_h %exclude %{_kernelsrcdir}/scripts/mod %exclude %{_kernelsrcdir}/scripts/setlocalversion %exclude %{_kernelsrcdir}/scripts/*.c %exclude %{_kernelsrcdir}/scripts/*.h %exclude %{_kernelsrcdir}/scripts/*.sh %exclude %dir %{_kernelsrcdir}/scripts/selinux %exclude %{_kernelsrcdir}/scripts/selinux/Makefile %exclude %dir %{_kernelsrcdir}/scripts/selinux/genheaders %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/Makefile %exclude %{_kernelsrcdir}/scripts/selinux/genheaders/*.c %exclude %dir %{_kernelsrcdir}/scripts/selinux/mdp %exclude %{_kernelsrcdir}/scripts/selinux/mdp/Makefile %exclude %{_kernelsrcdir}/scripts/selinux/mdp/*.c %{_kernelsrcdir}/sound %{_kernelsrcdir}/security %exclude %{_kernelsrcdir}/security/selinux/include %{_kernelsrcdir}/tools/* %{_kernelsrcdir}/usr %{_kernelsrcdir}/COPYING %{_kernelsrcdir}/CREDITS %{_kernelsrcdir}/LICENSES %{_kernelsrcdir}/MAINTAINERS %{_kernelsrcdir}/README %endif