%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_with vserver # support for VServer
+%bcond_without 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
%define have_pcmcia 0
%endif
-%define rel 0.1
-%define basever 4.1
-%define postver .0
+%define rel 1
+%define basever 4.4
+%define postver .178
# define this to '-%{basever}' for longterm branch
-%define versuffix %{nil}
+%define versuffix -%{basever}
# __alt_kernel is list of features, empty string if none set
# _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
%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}
License: GPL v2
Group: Base/Kernel
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
-# Source0-md5: fe9dc0f6729f36400ea81aa41d614c37
+# Source0-md5: 9a78fa2eb6c68ca5a40ed5af08142599
%if "%{postver}" != ".0"
Patch0: http://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
-# Patch0-md5: 30de8c55237264deee4d4fc60eee78fd
+# Patch0-md5: aeddd93b8fcf8595acaf120966f3e962
%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
# http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch
Patch85: kernel-hostap.patch
-%define vserver_patch 3.18.5-vs2.3.7.3
-# http://vserver.13thfloor.at/Experimental/patch-3.18.5-vs2.3.7.3.diff
+%define vserver_patch 4.4.161-vs2.3.9.8
+# http://vserver.13thfloor.at/Experimental/patch-4.4.161-vs2.3.9.8.diff
# note there are additional patches from above url:
# - *fix* are real fixes (we want these)
# - *feat* are new features/tests (we don't want these)
# 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.4 origin/aufs4.4
# cat aufs4-kbuild.patch aufs4-base.patch aufs4-mmap.patch aufs4-standalone.patch > ~/rpm/packages/kernel/kernel-aufs4.patch
-# mkdir linux
+# rm -rf linux && 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)
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.4/patch-4.4.30-rt41.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
-# bzr co lp:apparmor
-# ls apparmor/kernel-patches/3.12
+# git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
+# branch v4.2-aa2.8-out-of-tree
Patch5000: kernel-apparmor.patch
# for rescuecd
BuildRequires: uboot-mkimage
%endif
BuildRequires: /sbin/depmod
-BuildRequires: gcc >= 5:3.2
+BuildRequires: gcc >= 6:7.2.0-6
BuildRequires: xz >= 1:4.999.7
AutoReqProv: no
BuildRequires: hostname
BuildRequires: rpm-build >= 4.5-24
BuildRequires: rpmbuild(macros) >= 1.707
Requires(post): coreutils
-Requires(post): geninitrd >= 10000.32
+Requires(post): geninitrd >= 12749
Requires(post): kmod >= 12-2
Requires: /sbin/depmod
Requires: coreutils
-Requires: geninitrd >= 10000.32
+Requires: geninitrd >= 12749
Requires: kmod >= 12-2
%if %{with pae}
%ifarch i686 athlon pentium3 pentium4
Conflicts: rpm < 4.4.2-0.2
Conflicts: udev < 1:081
Conflicts: util-linux < 2.10o
-Conflicts: util-vserver < 0.30.216
+Conflicts: util-vserver < 0.30.216-1.pre3126.3
Conflicts: xfsprogs < 2.6.0
%if %{without pae}
ExclusiveArch: i686 pentium3 pentium4 athlon
%{?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')
#
# kernel-pom-ng-IPV4OPTSSTRIP.patch
+%if %{without rt}
+# fails on -Werror=incompatible-pointer-types
%patch10 -p1
+%endif
# kernel-owner-xid.patch
%if %{with vserver}
%patch53 -p1
%endif
+%if %{without rt}
+# fails on -Werror=incompatible-pointer-types
%patch55 -p1
%patch56 -p1
+%endif
# kernel-rndis_host-wm5.patch
%patch59 -p1
%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
%patch250 -p1
# virtio-gl
+%if %{without rt}
+# fails on -Werror=incompatible-pointer-types
%patch400 -p1
+%endif
%endif # vanilla
%if %{with imq}
%{SOURCE55} \
%endif
-%if %{with uksm}
- %{SOURCE56} \
-%endif
%if %{with vserver}
%{SOURCE43} \
+%endif
+%if %{with rt}
+ %{SOURCE44} \
%endif
%{SOURCE41} %{?0:patches} \
%endif
touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
%endif
-# /etc/modrobe.d
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
+# /etc/depmod.d /etc/modrobe.d
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{depmod.d,modprobe.d}/%{kernel_release}
install -d $RPM_BUILD_ROOT/etc/sysconfig
install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/kernel
/lib/modules/%{kernel_release}/kernel/sound
%endif
/lib/modules/%{kernel_release}/kernel/security
+/lib/modules/%{kernel_release}/kernel/virt
+%dir %{_sysconfdir}/depmod.d/%{kernel_release}
%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
# provided by build
%exclude %{_kernelsrcdir}/drivers/lguest/lg.h
%exclude %{_kernelsrcdir}/drivers/media/pci/bt8xx/bttv.h
%{_kernelsrcdir}/block
+%{_kernelsrcdir}/certs
%{_kernelsrcdir}/crypto
%{_kernelsrcdir}/drivers
%{_kernelsrcdir}/firmware