# Conditional build:
-%bcond_without source # don't build kernel-vanilla-source package
+%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)
-%{?debug:%define with_verbose 1}
+%define basever 4.14
+%define postver 78
+%define rel 1
-%define have_drm 1
-%define have_oss 1
-%define have_sound 1
-%define have_isa 1
-
-%define _basever 3.2
-%define _postver .4
-%define _rel 0.1
-
-%define _enable_debug_packages 0
-
-%define alt_kernel vanilla
+%define alt_kernel 4.14-vanilla
# 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}-%{_localversion}
+# 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}
+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/v3.x/linux-%{_basever}.tar.bz2
-# Source0-md5: 7ceb61f87c097fc17509844b71268935
-%if "%{_postver}" != "%{nil}"
-Source1: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Source1-md5: 02adf3e0450969dec6219ca52ff2a68a
+Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
+# Source0-md5: bacdb9ffdcd922aa069a5e1520160e24
+%if "%{postver}" != "0"
+Source1: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
+# Source1-md5: 3b8eb812969309ef3ee246fc9e578027
%endif
-Source2: kernel-vanilla-autoconf.h
-Source3: kernel-vanilla-config.h
-Source4: kernel-vanilla-module-build.pl
+Source2: kernel-module-build.pl
+Source3: kernel.make
Source10: kernel-vanilla-x86.config
Source11: kernel-vanilla-x86_64.config
-Patch0: kernel-vanilla-small_fixes.patch
-
URL: http://www.kernel.org/
BuildRequires: binutils >= 3:2.18
BuildRequires: /sbin/depmod
BuildRequires: gcc >= 5:3.2
-# for hostname command
-BuildRequires: net-tools
+BuildRequires: gcc-plugin-devel
+BuildRequires: xz >= 1:4.999.7
+AutoReqProv: no
+BuildRequires: hostname
+BuildRequires: kmod
BuildRequires: perl-base
-BuildRequires: rpm-build >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.217
-Autoreqprov: no
+BuildRequires: rpm >= 4.5-74
+BuildRequires: rpmbuild(macros) >= 1.652
Requires(post): coreutils
-Requires(post): geninitrd >= 2.57
-Requires(post): module-init-tools >= 0.9.9
+Requires(post): dracut
+Requires(post): kmod >= 12-2
Requires: /sbin/depmod
Requires: coreutils
-Requires: geninitrd >= 2.57
-Requires: module-init-tools >= 0.9.9
-Obsoletes: kernel%{_alt_kernel}-firmware
+Requires: dracut
+Requires: kmod >= 12-2
+%ifarch i686
+Requires: cpuinfo(pae)
+%endif
+Suggests: crda
+Suggests: keyutils
+Suggests: linux-firmware
+Provides: %{name}(netfilter) = 20070806
+Provides: %{name}(vermagic) = %{kernel_release}
+Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
+Obsoletes: kernel%{_alt_kernel}-char-lirc-it87
+Obsoletes: kernel%{_alt_kernel}-char-lirc-ite8709
+Obsoletes: kernel%{_alt_kernel}-char-lirc-mceusb
+Obsoletes: kernel%{_alt_kernel}-char-lirc-streamzap
Obsoletes: kernel%{_alt_kernel}-isdn-mISDN
+Obsoletes: kernel-firmware
Obsoletes: kernel-misc-acer_acpi
Obsoletes: kernel-misc-fuse
Obsoletes: kernel-misc-uvc
Obsoletes: kernel-net-hostap
Obsoletes: kernel-net-ieee80211
Obsoletes: kernel-net-ipp2p
+Obsoletes: kernel-net-rt61
Obsoletes: kernel-smp
Conflicts: e2fsprogs < 1.29
Conflicts: isdn4k-utils < 3.1pre1
Conflicts: jfsutils < 1.1.3
-Conflicts: module-init-tools < 0.9.10
+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: udev < 1:071
+Conflicts: rpm < 4.4.2-0.2
+Conflicts: udev < 1:081
Conflicts: util-linux < 2.10o
Conflicts: xfsprogs < 2.6.0
-ExclusiveArch: i586 i686 x86_64
+ExclusiveArch: i686 x86_64
ExclusiveOS: Linux
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%ifarch i586 i686 x86_64
+%ifarch i686 x86_64
%define target_arch_dir x86
%else
%define target_arch_dir %{_target_base_arch}
%endif
-%ifarch i586 i686
-%define kernel_config x86
-%else
-%define kernel_config %{_target_base_arch}
-%endif
-
%define defconfig arch/%{target_arch_dir}/defconfig
# No ELF objects there to strip (skips processing 27k files)
-%define _noautostrip .*%{_kernelsrcdir}/.*
+%define _noautostrip \\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
%define _noautochrpath .*%{_kernelsrcdir}/.*
+%define _enable_debug_packages 0
%define initrd_dir /boot
-%define _kernelsrcdir /usr/src/linux-%{version}-%{alt_kernel}
+%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}" != "%{_arch}"
- %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
+%if "%{_target_base_arch}" != "%{_host_base_arch}"
+ %define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
%define DepMod /bin/true
- %if "%{_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
+ %if "%{_host_base_arch}" == "x86_64" && "%{_target_base_arch}" == "i386"
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
-
-%define Features %(echo "%{__features}" | sed '/^$/d')
+%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.
-%{Features}
-
%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.
-%{Features}
-
%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.
-%{Features}
-
%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.
-%{Features}
-
%package vmlinux
Summary: vmlinux - uncompressed kernel image
Summary(de.UTF-8): vmlinux - dekompressiertes Kernel Bild
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: kernel-smp-drm
-Autoreqprov: no
+AutoReqProv: no
%description drm
DRM kernel modules.
Obsoletes: kernel-smp-pcmcia
Conflicts: pcmcia-cs < 3.1.21
Conflicts: pcmciautils < 004
-Autoreqprov: no
+AutoReqProv: no
%description pcmcia
PCMCIA modules.
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: kernel-smp-sound-alsa
-Autoreqprov: no
+AutoReqProv: no
%description sound-alsa
ALSA (Advanced Linux Sound Architecture) sound drivers.
%description sound-alsa -l pl.UTF-8
Sterowniki dźwięku ALSA (Advanced Linux Sound Architecture).
-%package sound-oss
-Summary: OSS kernel modules
-Summary(de.UTF-8): OSS Kernel Module
-Summary(pl.UTF-8): Sterowniki dźwięku OSS
-Group: Base/Kernel
-Requires(postun): %{name} = %{epoch}:%{version}-%{release}
-Requires: %{name} = %{epoch}:%{version}-%{release}
-Obsoletes: kernel-smp-sound-oss
-Autoreqprov: no
-
-%description sound-oss
-OSS (Open Sound System) drivers.
-
-%description sound-oss -l de.UTF-8
-OSS (Open Sound System) Treiber.
-
-%description sound-oss -l pl.UTF-8
-Sterowniki dźwięku OSS (Open Sound System).
-
%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
-Autoreqprov: no
+Provides: %{name}-headers(netfilter) = 20070806
+AutoReqProv: no
%description headers
These are the C header files for the Linux kernel, which define
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.321
-Autoreqprov: no
+Conflicts: rpmbuild(macros) < 1.652
+AutoReqProv: no
%description module-build
Development files from kernel source tree needed to build Linux kernel
Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
Group: Development/Building
Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
-Autoreqprov: no
+AutoReqProv: no
%description source
This is the source code for the Linux kernel. You can build a custom
Summary(de.UTF-8): Kernel Dokumentation
Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
Group: Documentation
-Autoreqprov: no
+AutoReqProv: no
%description doc
This is the documentation for the Linux kernel, as found in
/usr/src/linux/Documentation.
%prep
-%setup -q -n linux-%{_basever}
+%setup -qc
+ln -s %{SOURCE2} kernel-module-build.pl
+ln -s %{SOURCE3} Makefile
+cd linux-%{basever}
-%if "%{_postver}" != "%{nil}"
-%{__bzip2} -dc %{SOURCE1} | patch -p1 -s
+%if "%{postver}" != "0"
+%{__xz} -dc %{SOURCE1} | patch -p1 -s
%endif
-%patch0 -p1
-
# Fix EXTRAVERSION in main Makefile
-sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{_postver}-%{alt_kernel}#g' 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
-TuneUpConfigForIX86 () {
- set -x
-%ifarch i586 i686
- %ifarch i586
- sed -i "s:# CONFIG_HIGHMEM4G is not set:CONFIG_HIGHMEM4G=y:" $1
- sed -i "s:CONFIG_HIGHMEM64G=y:# CONFIG_HIGHMEM64G is not set:" $1
- sed -i ":CONFIG_X86_PAE=y:d" $1
- %else
- sed -i 's:CONFIG_M586=y# CONFIG_M586 is not set::' $1
- sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
- %endif
- return 0
+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
-}
-
-BuildConfig() {
- %{?debug:set -x}
- # is this a special kernel we want to build?
- Config="%{kernel_config}"
- KernelVer=%{kernel_release}
- echo "Building config file using $Config.conf..."
- cat $RPM_SOURCE_DIR/kernel-vanilla-$Config.config > %{defconfig}
- TuneUpConfigForIX86 %{defconfig}
-
-%{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
-%{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
-%{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
-
-}
-
-BuildKernel() {
- %{?debug:set -x}
- echo "Building kernel $1 ..."
- %{__make} %CrossOpts mrproper \
- RCS_FIND_IGNORE='-name build-done -prune -o'
- ln -sf %{defconfig} .config
-
- %{__make} %CrossOpts clean \
- RCS_FIND_IGNORE='-name build-done -prune -o'
- %{__make} %CrossOpts include/linux/version.h \
- %{?with_verbose:V=1}
-
- %{__make} %CrossOpts scripts/mkcompile_h \
- %{?with_verbose:V=1}
-
- %{__make} %CrossOpts \
- %{?with_verbose:V=1}
-}
-
-PreInstallKernel() {
- Config="%{kernel_config}"
- KernelVer=%{kernel_release}
-
- mkdir -p $KERNEL_INSTALL_DIR/boot
- install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
- install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
- install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
-
- %{__make} %CrossOpts modules_install firmware_install \
- %{?with_verbose:V=1} \
- DEPMOD=%DepMod \
- INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
- INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
- KERNELRELEASE=$KernelVer
-
- # You'd probabelly want to make it somewhat different
- install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
- install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
-
- echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
- if [ %DepMod = /sbin/depmod ]; then
- /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
- fi
- touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
- echo "KERNEL RELEASE $KernelVer DONE"
-}
-
-KERNEL_BUILD_DIR=`pwd`
-echo "-%{_localversion}" > localversion
+%ifarch x86_64
+ cat %{SOURCE11} > %{defconfig}
+%endif
+sed -i "s:CONFIG_LOCALVERSION=\"\":CONFIG_LOCALVERSION=\"-%{localversion}\":" %{defconfig}
-KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
-rm -rf $KERNEL_INSTALL_DIR
-BuildConfig
ln -sf %{defconfig} .config
-BuildKernel
-install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated
-install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
-install include/generated/autoconf.h \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/autoconf-dist.h
-install include/generated/utsrelease.h \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/generated/
-install include/linux/version.h \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/
-install .config \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
-PreInstallKernel
-
-cp scripts/mkcompile_h{,.save}
+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
-umask 022
+%{__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}
-export DEPMOD=%DepMod
+install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
-install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
+# 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 COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
+if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
l=l
rm -f $RPM_BUILD_ROOT/COPYING
fi
-KERNEL_BUILD_DIR=`pwd`
+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
-cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
-
-if [ -e $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
- rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
- ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
- install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
-fi
-
-find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
-
-cd $RPM_BUILD_ROOT%{_kernelsrcdir}
+# 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
-%{__make} %CrossOpts mrproper archclean \
- RCS_FIND_IGNORE='-name build-done -prune -o'
-
-cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
-
-%{__make} %CrossOpts mrproper
-install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
-install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
-install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/version.h \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
-install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/autoconf-dist.h \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
-install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/generated/utsrelease.h \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated
-install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
- $RPM_BUILD_ROOT%{_kernelsrcdir}
-install %{SOURCE2} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/generated/autoconf.h
-install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.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
-perl %{SOURCE4} %{_kernelsrcdir} $KERNEL_BUILD_DIR
-
-# ghosted initrd
-touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
-
-# 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}
+# Usage: kernel-module-build.pl $rpmdir $fileoutdir
+fileoutdir=$(pwd)
+cd $RPM_BUILD_ROOT%{_kernelsrcdir}
+%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
+cd -
-# remove unnecessary dir with dead symlink
-rm -rf $RPM_BUILD_ROOT/arch/i386
+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
fi
%post
-mv -f /boot/vmlinuz-%{alt_kernel} /boot/vmlinuz-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf vmlinuz-%{kernel_release} /boot/vmlinuz-%{alt_kernel}
-mv -f /boot/System.map-%{alt_kernel} /boot/System.map-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf System.map-%{kernel_release} /boot/System.map-%{alt_kernel}
-
%depmod %{kernel_release}
-/sbin/geninitrd -f --initrdfs=rom %{initrd_dir}/initrd-%{kernel_release}.gz %{kernel_release}
-mv -f %{initrd_dir}/initrd-%{alt_kernel} %{initrd_dir}/initrd-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf initrd-%{kernel_release}.gz %{initrd_dir}/initrd-%{alt_kernel}
-
-if [ -x /sbin/new-kernel-pkg ]; then
- if [ -f /etc/pld-release ]; then
- title=$(sed 's/^[0-9.]\+ //' < /etc/pld-release)
- else
- title='PLD Linux'
+%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
-
- title="$title %{alt_kernel}"
-
- /sbin/new-kernel-pkg --initrdfile=%{initrd_dir}/initrd-%{kernel_release}.gz --install %{kernel_release} --banner "$title"
-elif [ -x /sbin/rc-boot ]; then
- /sbin/rc-boot 1>&2 || :
fi
-%post vmlinux
-mv -f /boot/vmlinux-%{alt_kernel} /boot/vmlinux-%{alt_kernel}.old 2> /dev/null > /dev/null
-ln -sf vmlinux-%{kernel_release} /boot/vmlinux-%{alt_kernel}
-
%post drm
%depmod %{kernel_release}
%postun sound-alsa
%depmod %{kernel_release}
-%post sound-oss
-%depmod %{kernel_release}
-
-%postun sound-oss
-%depmod %{kernel_release}
-
%post headers
-ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux-%{alt_kernel}
+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-%{version}-%{alt_kernel}" ]; then
- rm -f %{_prefix}/src/linux-%{alt_kernel}
+ 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
%defattr(644,root,root,755)
/boot/vmlinuz-%{kernel_release}
/boot/System.map-%{kernel_release}
-%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
-/lib/firmware/%{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
-
-%if %{have_drm}
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
-%endif
-
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/gpu
/lib/modules/%{kernel_release}/kernel/fs
-# this directory will be removed after disabling rcutorture mod. in 2.6.20.
/lib/modules/%{kernel_release}/kernel/kernel
/lib/modules/%{kernel_release}/kernel/lib
-
-%ifarch x86_64
-/lib/modules/%{kernel_release}/kernel/mm
-%endif
-
/lib/modules/%{kernel_release}/kernel/net
-
-%if %{have_sound}
+/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/video/cx88/cx88-alsa.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.ko*
-%endif
-
+%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
-
-%dir /lib/modules/%{kernel_release}/kernel/drivers/pcmcia
-/lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
%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/telephony/ixj_pcmcia.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.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/net/wireless/b43
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_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
-%ghost /lib/modules/%{kernel_release}/modules.*
# symlinks pointing to kernelsrcdir
%ghost /lib/modules/%{kernel_release}/build
%ghost /lib/modules/%{kernel_release}/source
-%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
%files vmlinux
%defattr(644,root,root,755)
/boot/vmlinux-%{kernel_release}
-%if %{have_drm}
%files drm
%defattr(644,root,root,755)
-/lib/modules/%{kernel_release}/kernel/drivers/gpu/drm
-%endif
+/lib/modules/%{kernel_release}/kernel/drivers/gpu
%files pcmcia
%defattr(644,root,root,755)
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
/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/telephony/ixj_pcmcia.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/net/wireless/b43
-/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/hostap/hostap_cs.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/libertas/*_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*
-%if %{have_sound}
%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*
-%if %{have_oss}
-%exclude /lib/modules/%{kernel_release}/kernel/sound/oss
-%endif
-/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/g_midi.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/cx88/cx88-alsa.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/em28xx/em28xx-alsa.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/media/video/saa7134/saa7134-alsa.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*
-%if %{have_oss}
-%files sound-oss
-%defattr(644,root,root,755)
-/lib/modules/%{kernel_release}/kernel/sound/oss
-%endif
-%endif
-
-%files headers
+%files headers -f files.headers_exclude_kbuild
%defattr(644,root,root,755)
%dir %{_kernelsrcdir}
%{_kernelsrcdir}/include
%dir %{_kernelsrcdir}/security
%dir %{_kernelsrcdir}/security/selinux
%{_kernelsrcdir}/security/selinux/include
-%{_kernelsrcdir}/config-dist
-%{_kernelsrcdir}/Module.symvers-dist
+%{_kernelsrcdir}/.config
+%{_kernelsrcdir}/Module.symvers
-%files module-build -f aux_files
+%files module-build -f files.mb_include_modulebuild_and_dirs
%defattr(644,root,root,755)
-# symlinks pointint to kernelsrcdir
-%dir /lib/modules/%{kernel_release}
-/lib/modules/%{kernel_release}/build
-%{_kernelsrcdir}/Kbuild
-%{_kernelsrcdir}/localversion
+%exclude %dir %{_kernelsrcdir}/arch/um
%{_kernelsrcdir}/arch/*/kernel/asm-offsets*
%{_kernelsrcdir}/arch/*/kernel/sigframe*.h
-%{_kernelsrcdir}/drivers/lguest/lg.h
+%{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
%{_kernelsrcdir}/kernel/bounds.c
-%dir %{_kernelsrcdir}/scripts
-%dir %{_kernelsrcdir}/scripts/kconfig
-%{_kernelsrcdir}/scripts/Kbuild.include
-%{_kernelsrcdir}/scripts/Makefile*
-%{_kernelsrcdir}/scripts/basic
+%{_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/mod
%{_kernelsrcdir}/scripts/module-common.lds
-%{_kernelsrcdir}/scripts/setlocalversion
+%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
%{_kernelsrcdir}/scripts/*.c
-%{_kernelsrcdir}/scripts/*.sh
-%{_kernelsrcdir}/scripts/kconfig/*
-%{_kernelsrcdir}/scripts/mkcompile_h
-%dir %{_kernelsrcdir}/scripts/selinux
-%{_kernelsrcdir}/scripts/selinux/Makefile
-%dir %{_kernelsrcdir}/scripts/selinux/mdp
-%dir %{_kernelsrcdir}/scripts/selinux/genheaders
-%{_kernelsrcdir}/scripts/selinux/mdp/Makefile
-%{_kernelsrcdir}/scripts/selinux/mdp/*.c
-%{_kernelsrcdir}/scripts/selinux/genheaders/Makefile
+%{_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 %{_kernelsrcdir}
-%{_kernelsrcdir}/Documentation
+%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-hacking
+%endif
%if %{with source}
-%files source -f aux_files_exc
+%files source -f files.source_exclude_modulebuild_and_dirs
%defattr(644,root,root,755)
-%{_kernelsrcdir}/arch/*/[!Mk]*
+%{_kernelsrcdir}/arch/*/[!Mik]*
%{_kernelsrcdir}/arch/*/kernel/[!M]*
-%{_kernelsrcdir}/arch/ia64/kvm
+%{_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/lguest/lg.h
+%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
%{_kernelsrcdir}/block
+%{_kernelsrcdir}/certs
%{_kernelsrcdir}/crypto
%{_kernelsrcdir}/drivers
%{_kernelsrcdir}/firmware
%{_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
-%{_kernelsrcdir}/tools
+%exclude %{_kernelsrcdir}/security/selinux/include
+%{_kernelsrcdir}/tools/*
%{_kernelsrcdir}/usr
-%{_kernelsrcdir}/virt
%{_kernelsrcdir}/COPYING
%{_kernelsrcdir}/CREDITS
%{_kernelsrcdir}/MAINTAINERS
%{_kernelsrcdir}/README
-%{_kernelsrcdir}/REPORTING-BUGS
-%{_kernelsrcdir}/.mailmap
%endif