%bcond_without source # don't build kernel-source package
%bcond_without doc # don't build kernel-doc package
%bcond_without pcmcia # don't build pcmcia
-%bcond_without firmware # don't build firmware into main package
%bcond_with verbose # verbose build (V=1)
%bcond_with fbcondecor # build fbcondecor (disable FB_TILEBLITTING and affected fb modules)
%bcond_without pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
%bcond_with nfsroot # build with root on NFS support
-%bcond_with uksm # build with UKSM patch, http://kerneldedup.org/projects/uksm/
%bcond_without imq # imq support
-%bcond_without esfq # esfq support
%bcond_without ipv6 # ipv6 support
+%bcond_without aufs # aufs4 support
+%bcond_without apparmor # UBUNTU SAUCE apparmor patches
+
%bcond_with vserver # support for VServer
+%bcond_with rt # real-time kernel (CONFIG_PREEMPT_RT) for low latencies
+
%bcond_with vanilla # don't include any patches
%bcond_with rescuecd # build kernel for our rescue
%bcond_with myown # build with your own config (kernel-myown.config)
%define have_drm 1
%define have_ide 1
-%define have_oss 1
%define have_sound 1
%define have_pcmcia 1
%if %{with myown}
%define have_drm 0
%define have_ide 0
-%define have_oss 0
%define have_sound 0
%define have_pcmcia 0
%endif
%ifarch sparc sparc64
%unglobal with_pcmcia
%define have_drm 0
-%define have_oss 0
%endif
%if %{without pcmcia}
%endif
%define rel 1
-%define basever 4.2
-%define postver .5
+%define basever 4.16
+%define postver .8
# define this to '-%{basever}' for longterm branch
%define versuffix %{nil}
%if %{without pae}
%define alt_kernel nopae
%endif
+%if %{with rt}
+%define alt_kernel rt
+%endif
# kernel release (used in filesystem and eventually in uname -r)
# modules will be looked from /lib/modules/%{kernel_release}
Epoch: 3
License: GPL v2
Group: Base/Kernel
-Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
-# Source0-md5: 3d5ea06d767e2f35c999eeadafc76523
+Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
+# Source0-md5: 1357fb4ee7c288fdeac5d4e0048f5c18
%if "%{postver}" != ".0"
-Patch0: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
-# Patch0-md5: 19e47863ca441b2e11f90f25fb6c41ec
+Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
+# Patch0-md5: d9fa8a5d6450d6c2700f31243928dd93
%endif
Source1: kernel.sysconfig
Source41: kernel-patches.config
Source43: kernel-vserver.config
+Source44: kernel-rt.config
Source55: kernel-imq.config
-Source56: kernel-uksm.config
Source58: kernel-inittmpfs.config
### End netfilter
-# http://zph.bratcheda.org/linux-2.6.26.3-zph.patch
-Patch49: kernel-zph.patch
-
# http://www.linuximq.net
Patch50: kernel-imq.patch
-# http://fatooh.org/esfq-2.6/sfq-2.6.24.1.tar.bz2
-Patch53: kernel-esfq.patch
-
# by Baggins request:
# derived from ftp://ftp.cmf.nrl.navy.mil/pub/chas/linux-atm/vbr/vbr-kernel-diffs
Patch55: kernel-atm-vbr.patch
# Patch creation:
# git clone git://github.com/sfjro/aufs4-standalone.git
# cd aufs4-standalone
-# git checkout -b aufs4.1 origin/aufs4.1
+# git checkout -b aufs4.14 origin/aufs4.14
# cat aufs4-kbuild.patch aufs4-base.patch aufs4-mmap.patch aufs4-standalone.patch > ~/rpm/packages/kernel/kernel-aufs4.patch
-# mkdir linux
-# cp -a Documentation fs include linux
-# diff -urN /usr/share/empty linux >> ~/rpm/packages/kernel/kernel-aufs4.patch
-# drop hunk at the end of patch (hunk is patching include/linux/Kbuild with single line change)
+# rm -rf linux && mkdir linux; cp -a Documentation fs include linux
+# diff -urN /usr/share/empty linux | filterdiff -x linux/include/uapi/linux/Kbuild >> ~/rpm/packages/kernel/kernel-aufs4.patch
# cat aufs4-loopback.patch >> ~/rpm/packages/kernel/kernel-aufs4.patch
#
Patch145: kernel-aufs4.patch
Patch146: kernel-aufs4+vserver.patch
-%define uksm_major_version 0.1.2.3
-%define uksm_version %{uksm_major_version}-for-v3.18
-Patch150: http://kerneldedup.org/download/uksm/%{uksm_major_version}/uksm-%{uksm_version}.patch
-# Patch150-md5: b6a2b2aae9c2844d0c74690632d7019e
-
# Show normal colors in menuconfig with ncurses ABI 6
Patch250: kernel-fix_256colors_menuconfig.patch
-# https://patchwork.kernel.org/patch/236261/
-Patch400: kernel-virtio-gl-accel.patch
+# https://rt.wiki.kernel.org/
+# https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/patch-4.9.6-rt4.patch.xz
+Patch500: kernel-rt.patch
Patch2000: kernel-small_fixes.patch
Patch2001: kernel-pwc-uncompress.patch
Patch2003: kernel-regressions.patch
-Patch2004: kernel-libata-ahci-pm.patch
-# git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
-# branch v4.2-aa2.8-out-of-tree
-Patch5000: kernel-apparmor.patch
+# https://gitlab.com/apparmor/apparmor/tree/master/kernel-patches/v4.15
+Patch5001: 0001-apparmor-add-base-infastructure-for-socket-mediation.patch
+Patch5002: 0002-apparmor-af_unix-mediation.patch
# for rescuecd
# based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
# kernel.spec every time.
#Patch50000: kernel-usb_reset.patch
-URL: http://www.kernel.org/
+URL: https://www.kernel.org/
+AutoReqProv: no
+BuildRequires: /sbin/depmod
BuildRequires: bc
BuildRequires: binutils >= 3:2.18
%ifarch sparc sparc64
BuildRequires: elftoaout
%endif
-%ifarch ppc
-BuildRequires: uboot-mkimage
-%endif
-BuildRequires: /sbin/depmod
-BuildRequires: gcc >= 5:3.2
-BuildRequires: xz >= 1:4.999.7
-AutoReqProv: no
+BuildRequires: elfutils-devel
+BuildRequires: gcc >= 6:7.2.0-6
+BuildRequires: gcc-plugin-devel
BuildRequires: hostname
BuildRequires: kmod >= 12-2
+BuildRequires: openssl-devel
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.5-24
BuildRequires: rpmbuild(macros) >= 1.707
+%ifarch ppc
+BuildRequires: uboot-mkimage
+%endif
+BuildRequires: xz >= 1:4.999.7
Requires(post): coreutils
-Requires(post): geninitrd >= 12749
+Requires(post): geninitrd >= 12757-8
Requires(post): kmod >= 12-2
Requires: /sbin/depmod
Requires: coreutils
-Requires: geninitrd >= 12749
+Requires: geninitrd >= 12757-8
Requires: kmod >= 12-2
%if %{with pae}
%ifarch i686 athlon pentium3 pentium4
Suggests: crda
Suggests: dracut
Suggests: keyutils
-Suggests: kernel%{versuffix}-ide = %{epoch}:%{version}-%{release}
-%if %{with firmware}
-Suggests: linux-firmware
-%else
Requires: linux-firmware
-%endif
Provides: %{name}(netfilter) = 20070806
Provides: %{name}(vermagic) = %{kernel_release}
Obsoletes: kernel%{_alt_kernel}-char-lirc-ene0100
%{?with_fbcondecor:Fbsplash/fbcondecor - enabled }\
%{?with_nfsroot:Root on NFS - enabled}\
%{?with_vserver:Linux-VServer - %{vserver_patch}}\
+%{?with_rt:CONFIG_PREEMPT_RT - enabled}\
%define Features %(echo "%{__features}" | sed '/^$/d')
%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 służące do budowania modułów jądra
Group: Development/Building
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
+Requires: elfutils-devel
Requires: make
Conflicts: rpmbuild(macros) < 1.704
AutoReqProv: no
##
# end of netfilter
-# zph
-%patch49 -p1
-
%if %{with imq}
-%patch50 -p1
-%endif
-
-# esfq
-%if %{with esfq}
-%patch53 -p1
+#%patch50 -p1
%endif
%patch55 -p1
%patch101 -p1
%endif
-# aufs3
+%if %{with aufs}
+# aufs4
%patch145 -p1
%if %{with vserver}
%patch146 -p1
%endif
-
-# UKSM
-%if %{with uksm}
-%patch150 -p1
%endif
%if %{with rescuecd}
%patch7000 -p1
%endif
+%if %{with rt}
+%patch500 -p1
+rm -f localversion-rt
+%endif
+
# apparmor
-%patch5000 -p1
+%if %{with apparmor}
+%patch5001 -p1
+%patch5002 -p1
+%endif
%patch250 -p1
-# virtio-gl
-%patch400 -p1
-
%endif # vanilla
# Small fixes:
%patch2000 -p1
%patch2001 -p1
#%patch2003 -p1
-%patch2004 -p1
# Do not remove this, please!
#%%patch50000 -p1
+chmod 755 tools/objtool/sync-check.sh
+
# Fix EXTRAVERSION in main Makefile
sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:.%{alt_kernel}}#g' Makefile
RescueConfig() {
set -x
- cat <<-EOCONFIG > $1
# CONFIG_SOUND is not set
# CONFIG_AUDIT is not set
# CONFIG_TR is not set
%if %{with imq}
%{SOURCE55} \
%endif
-%if %{with uksm}
- %{SOURCE56} \
-%endif
%if %{with vserver}
%{SOURCE43} \
+%endif
+%if %{with rt}
+ %{SOURCE44} \
%endif
%{SOURCE41} %{?0:patches} \
%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install %{?with_firmware:firmware_install} \
+%{__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 \
- INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
KERNELRELEASE=%{kernel_release}
install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";"
done
+%ifarch %{x8664} x32
+# Needed for CONFIG_STACK_VALIDATION / ORC_UNWINDER enabled builds
+install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
+cp -a %{objdir}/tools/objtool/fixdep $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
+cp -a %{objdir}/tools/objtool/objtool $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool
+%endif
+
# 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
%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%{versuffix}%{_alt_kernel}
/boot/config-%{kernel_release}
%ghost %{initrd_dir}/initrd-%{kernel_release}.gz
%ghost %{initrd_dir}/initramfs-%{kernel_release}.img
-%if %{with firmware}
-/lib/firmware/%{kernel_release}
-%endif
%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/usb/gadget/legacy/g_midi.ko*
%endif
%exclude /lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/arcnet/com20020_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/can/softing/softing_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c574_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c589_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/axnet_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/pcnet_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/amd/nmclan_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/xircom/xirc2ps_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/net/wireless/atmel/*_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/cisco/*_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/hostap/hostap_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/orinoco/*_cs.ko*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/net/wireless/marvell/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/sound
%endif
/lib/modules/%{kernel_release}/kernel/security
+/lib/modules/%{kernel_release}/kernel/virt
%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
%endif
/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/arcnet/com20020_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/can/softing/softing_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c574_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/3com/3c589_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/axnet_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/8390/pcnet_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/amd/nmclan_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/ethernet/xircom/xirc2ps_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/net/wireless/atmel/*_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/cisco/*_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/hostap/hostap_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/intersil/orinoco/*_cs.ko*
+/lib/modules/%{kernel_release}/kernel/drivers/net/wireless/marvell/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*
%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
%ifnarch sparc
/lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.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*
%endif
-
-%if %{have_oss}
-%files sound-oss
-%defattr(644,root,root,755)
-/lib/modules/%{kernel_release}/kernel/sound/oss
-%endif
%endif
%files headers -f files.headers_exclude_kbuild
%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
%{_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/*.gperf
%{_kernelsrcdir}/scripts/kconfig/*.cc
%{_kernelsrcdir}/scripts/kconfig/*.y
%{_kernelsrcdir}/scripts/kconfig/*.l
%{_kernelsrcdir}/scripts/selinux/mdp/*.c
%exclude %dir %{_kernelsrcdir}/security
%exclude %dir %{_kernelsrcdir}/security/selinux
+%ifarch %{x8664} x32
+%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/fixdep
+%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/objtool
+%endif
%if %{with doc}
%files doc
%{_docdir}/%{name}-%{version}/[jkz]*.txt
%{_docdir}/%{name}-%{version}/kbuild
%{_docdir}/%{name}-%{version}/kdump
-%lang(ja) %{_docdir}/%{name}-%{version}/ja_JP
-%lang(ko) %{_docdir}/%{name}-%{version}/ko_KR
-%lang(zh_CN) %{_docdir}/%{name}-%{version}/zh_CN
+%{_docdir}/%{name}-%{version}/kernel-hacking
%endif
%if %{with source}
%{_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}/security
%exclude %{_kernelsrcdir}/security/selinux/include
%{_kernelsrcdir}/tools/*
+%ifarch %{x8664} x32
+%exclude %{_kernelsrcdir}/tools/objtool/fixdep
+%exclude %{_kernelsrcdir}/tools/objtool/objtool
+%endif
%{_kernelsrcdir}/usr
%{_kernelsrcdir}/COPYING
%{_kernelsrcdir}/CREDITS
%{_kernelsrcdir}/MAINTAINERS
%{_kernelsrcdir}/README
-%{_kernelsrcdir}/REPORTING-BUGS
%endif