%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 pae # build PAE (HIGHMEM64G) support on 32bit i686 athlon pentium3 pentium4
%bcond_with nfsroot # build with root on NFS support
%bcond_without imq # imq support
%{?debug:%define with_verbose 1}
%define have_drm 1
+%ifarch %{ix86} %{x8664} x32 alpha %{arm} ia64 ppc ppc64 sparc sparc64
%define have_ide 1
+%else
+%define have_ide 0
+%endif
%define have_sound 1
%define have_pcmcia 1
%define have_pcmcia 0
%endif
-%define rel 0.1
-%define basever 5.4
-%define postver .0
+%define rel 1
+%define basever 5.10
+%define postver .5
# define this to '-%{basever}' for longterm branch
%define versuffix %{nil}
%if %{with vanilla}
%define alt_kernel vanilla
%endif
-%if %{without pae}
-%define alt_kernel nopae
+%if %{with pae}
+%define alt_kernel pae
%endif
%if %{with rt}
%define alt_kernel rt
License: GPL v2
Group: Base/Kernel
Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{basever}.tar.xz
-# Source0-md5: ce9b2d974d27408a61c53a30d3f98fb9
+# Source0-md5: 753adc474bf799d569dec4f165ed92c3
%if "%{postver}" != ".0"
Patch0: https://www.kernel.org/pub/linux/kernel/v5.x/patch-%{version}.xz
-# Patch0-md5: ad2aad6f5f47ce3cddc87d0beb11d37c
+# Patch0-md5: b777628725d554440fba32da5c95ba12
%endif
Source1: kernel.sysconfig
# Patch creation:
# git clone git://github.com/sfjro/aufs5-standalone.git
# cd aufs5-standalone
-# git checkout -b aufs5.2 origin/aufs5.2
+# git checkout -b aufs5.8 origin/aufs5.8
# cat aufs5-kbuild.patch aufs5-base.patch aufs5-mmap.patch aufs5-standalone.patch > ~/rpm/packages/kernel/kernel-aufs5.patch
# 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-aufs5.patch
Patch2000: kernel-small_fixes.patch
Patch2001: kernel-pwc-uncompress.patch
Patch2003: kernel-regressions.patch
-Patch2004: xfs-reclaim-hack.patch
# for rescuecd
# based on ftp://ftp.leg.uct.ac.za/pub/linux/rip/tmpfs_root-2.6.30.diff.gz
Patch7000: kernel-inittmpfs.patch
+# ARM only
+Patch8000: rpi-wm8804.patch
+
# Do not remove this line, please. It is easier for me to uncomment two lines, then patch
# kernel.spec every time.
#Patch50000: kernel-usb_reset.patch
BuildRequires: kmod >= %{kmod_ver}
BuildRequires: libstdc++-devel
BuildRequires: openssl-devel
+BuildRequires: openssl-tools
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.5-24
BuildRequires: rpmbuild(macros) >= 1.743
%endif
BuildRequires: xz >= 1:4.999.7
Requires(post): coreutils
-Requires(post): geninitrd >= 12757-8
+Requires(post): geninitrd >= 12787-6
Requires(post): kmod >= %{kmod_ver}
Requires: /sbin/depmod
Requires: coreutils
-Requires: geninitrd >= 12757-8
+Requires: geninitrd >= 12787-6
Requires: kmod >= %{kmod_ver}
%if %{with pae}
%ifarch i686 athlon pentium3 pentium4
Conflicts: e2fsprogs < 1.29
Conflicts: isdn4k-utils < 3.1pre1
Conflicts: jfsutils < 1.1.3
+Conflicts: libcap-libs < 1:2.34
Conflicts: libusb < 1.0.9
Conflicts: linux-firmware < 20120720
Conflicts: lvm2 < 2.02.40
Conflicts: util-linux < 2.10o
Conflicts: util-vserver < 0.30.216
Conflicts: xfsprogs < 2.6.0
-%if %{without pae}
+%if %{with pae}
ExclusiveArch: i686 pentium3 pentium4 athlon
%else
-ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha arm ia64 ppc ppc64 sparc sparc64
+ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 alpha %{arm} ia64 ppc ppc64 sparc sparc64 aarch64
%endif
ExclusiveOS: Linux
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%ifarch sparc sparc64
%define target_arch_dir sparc
%endif
-%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64
+%ifarch aarch64
+%define target_arch_dir arm64
+%endif
+%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparc64 aarch64
%define target_arch_dir %{_target_base_arch}
%endif
%ifarch ppc ppc64
%define CrossOpts ARCH=powerpc CC="%{__cc}"
%else
+ %ifarch aarch64
+ %define CrossOpts ARCH=arm64 CC="%{__cc}"
+ %else
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%endif
+ %endif
%define DepMod /sbin/depmod
%endif
# use 64-bit offsets for fixdeps to work with 64-bit inodes
Group: Base/Kernel
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
+Provides: kernel(vboxvideo) = %{kernel_release}
Obsoletes: kernel-smp-drm
AutoReqProv: no
%patch7000 -p1
%endif
+%ifarch %{arm} aarch64
+%patch8000 -p1
+%endif
+
%if %{with rt}
%patch500 -p1
rm -f localversion-rt
%patch2000 -p1
%patch2001 -p1
#%patch2003 -p1
-%patch2004 -p1
# Do not remove this, please!
#%%patch50000 -p1
# 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},' \
+ drivers/staging/greybus/tools/lbtest \
+ scripts/bloat-o-meter \
+ scripts/diffconfig \
+ scripts/jobserver-exec \
+ scripts/show_delta \
+ tools/hv/vmbus_testing \
+ tools/kvm/kvm_stat/kvm_stat \
+ tools/testing/selftests/exec/binfmt_script
+
+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/stackdelta
+
%build
install -d %{objdir}
cat > %{targetobj}.mk <<'EOF'
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
%endif
+
+%ifarch x32
+ CONFIG_BPF_PRELOAD=n
+%endif
EOCONFIG
%if %{with rescuecd}
INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
KERNELRELEASE=%{kernel_release}
+%ifarch %{arm} aarch64
+%{__make} %{MakeOpts} %{!?with_verbose:-s} dtbs_install \
+ -C %{objdir} \
+ %{?with_verbose:V=1} \
+ INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/boot/dtb-%{kernel_release}
+%endif
+
install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
# create directories which may be missing, to simplyfy %files
install -p %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
%endif
%endif
-%ifarch arm
+%ifarch %{arm}
install -p %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
%endif
+%ifarch aarch64
+ cp -a %{objdir}/arch/%{target_arch_dir}/boot/Image.gz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
+%endif
# ghosted initrd
touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
%{__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
%ifarch ia64
/boot/efi/vmlinuz-%{kernel_release}
%endif
+%ifarch %{arm} aarch64
+/boot/dtb-%{kernel_release}
+%endif
/boot/vmlinuz-%{kernel_release}
/boot/System.map-%{kernel_release}
/boot/config-%{kernel_release}
%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*
+%exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/gadget/legacy/g_midi.ko*
%endif
%endif
%dir /lib/modules/%{kernel_release}/misc
%if %{without rescuecd}
%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/staging/isdn/avm/avm_cs.ko*
-%exclude /lib/modules/%{kernel_release}/kernel/drivers/staging/isdn/avm/b1pcmcia.ko*
-%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*
/lib/modules/%{kernel_release}/kernel/sound
%endif
/lib/modules/%{kernel_release}/kernel/security
+%ifarch %{ix86} %{x8664} x32
/lib/modules/%{kernel_release}/kernel/virt
+%endif
%dir %{_sysconfdir}/depmod.d/%{kernel_release}
%dir %{_sysconfdir}/modprobe.d/%{kernel_release}
%exclude /lib/modules/%{kernel_release}/kernel/drivers/pcmcia/pcmcia*ko*
%if %{without rescuecd}
/lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/staging/isdn/avm/avm_cs.ko*
-/lib/modules/%{kernel_release}/kernel/drivers/staging/isdn/avm/b1pcmcia.ko*
/lib/modules/%{kernel_release}/kernel/drivers/ata/pata_pcmcia.ko*
%endif
/lib/modules/%{kernel_release}/kernel/drivers/ide/ide-cs.ko*
%{_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/subarch.include
%{_kernelsrcdir}/scripts/*.c
%dir %{_docdir}/%{name}-%{version}
%{_docdir}/%{name}-%{version}/[!jkz]*
-%{_docdir}/%{name}-%{version}/[jkz]*.txt
%{_docdir}/%{name}-%{version}/kbuild
%{_docdir}/%{name}-%{version}/kernel-hacking
%endif
%{_kernelsrcdir}/arch/m68k/install.sh
%{_kernelsrcdir}/arch/parisc/install.sh
%{_kernelsrcdir}/arch/x86/ia32/[!M]*
+%{_kernelsrcdir}/arch/powerpc/kexec
%{_kernelsrcdir}/arch/powerpc/kvm
%ifarch ppc ppc64
%exclude %{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
%endif
-%{_kernelsrcdir}/arch/arm/kvm
%{_kernelsrcdir}/arch/arm64/kvm
%{_kernelsrcdir}/arch/mips/kvm
%{_kernelsrcdir}/arch/s390/kvm
%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/subarch.include
%exclude %{_kernelsrcdir}/scripts/*.c