]> TLD Linux GIT Repositories - packages/kernel.git/blobdiff - kernel.spec
- renamed to "kernel", updated to 4.9.309
[packages/kernel.git] / kernel.spec
diff --git a/kernel.spec b/kernel.spec
new file mode 100644 (file)
index 0000000..da45fad
--- /dev/null
@@ -0,0 +1,768 @@
+# 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         4.9
+%define                postver         309
+%define                rel             1
+
+%define                alt_kernel      4.9
+
+# 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%{_alt_kernel}
+Version:       %{basever}.%{postver}
+Release:       %{rel}
+Epoch:         3
+License:       GPL v2
+Group:         Base/Kernel
+Source0:       http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
+# Source0-md5: 0a68ef3615c64bd5ee54a3320e46667d
+%if "%{postver}" != "0"
+Source1:       http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
+# Source1-md5: f6543693793209202831577ef0c7583b
+%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%{_alt_kernel}-vanilla
+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-%(%{kgcc} -dumpversion)
+
+%define                _kernelsrcdir   /usr/src/linux%{_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
+%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
+
+%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
+
+%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 firmware_install \
+       -C %{objdir} \
+       %{?with_verbose:V=1} \
+       DEPMOD=%{DepMod} \
+       mod_compress_cmd=true \
+       INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
+       INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
+       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%{_alt_kernel}
+
+%postun headers
+if [ "$1" = "0" ]; then
+       if [ -L %{_prefix}/src/linux%{_alt_kernel} ]; then
+               if [ "$(readlink %{_prefix}/src/linux%{_alt_kernel})" = "linux%{_alt_kernel}-%{version}" ]; then
+                       rm -f %{_prefix}/src/linux%{_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
+/lib/firmware/%{kernel_release}
+
+%dir /lib/modules/%{kernel_release}
+%dir /lib/modules/%{kernel_release}/kernel
+/lib/modules/%{kernel_release}/kernel/arch
+/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/isdn/hardware/avm/avm_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_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/isdn/hardware/avm/avm_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/*_cs.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
+%{_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/*.in
+%{_kernelsrcdir}/scripts/kconfig/*_shipped
+%{_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-u]*.c
+%{_kernelsrcdir}/scripts/kconfig/[m-u]*.h
+%{_kernelsrcdir}/scripts/kconfig/lxdialog
+%{_kernelsrcdir}/scripts/mod/*.c
+%{_kernelsrcdir}/scripts/mod/modpost.h
+%attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
+%{_kernelsrcdir}/scripts/mkmakefile
+%{_kernelsrcdir}/scripts/module-common.lds
+%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
+%{_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}/[jkz]*.txt
+%{_docdir}/%{name}-%{version}/kbuild
+%{_docdir}/%{name}-%{version}/kdump
+%{_docdir}/%{name}-%{version}/kernel-documentation.rst
+%lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
+%lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
+%lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
+%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/arm/kvm
+%{_kernelsrcdir}/arch/arm64/kvm
+%{_kernelsrcdir}/arch/mips/kvm
+%{_kernelsrcdir}/arch/powerpc/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}/firmware
+%{_kernelsrcdir}/fs
+%{_kernelsrcdir}/init
+%{_kernelsrcdir}/ipc
+%{_kernelsrcdir}/kernel
+%exclude %{_kernelsrcdir}/kernel/bounds.c
+%{_kernelsrcdir}/lib
+%{_kernelsrcdir}/mm
+%{_kernelsrcdir}/net
+%{_kernelsrcdir}/virt
+%{_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/mkmakefile
+%exclude %{_kernelsrcdir}/scripts/mod
+%exclude %{_kernelsrcdir}/scripts/module-common.lds
+%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}/MAINTAINERS
+%{_kernelsrcdir}/README
+%{_kernelsrcdir}/REPORTING-BUGS
+%endif