%bcond_without doc # don't build kernel-doc package
%bcond_with verbose # verbose build (V=1)
-%define basever 5.10
-%define postver 109
-%define rel 1
+%define basever 5.15
+%define postver 164
+%define rel 2
-%define alt_kernel 5.10
+%define __alt_kernel %{nil}
+
+%if "%{__alt_kernel}" != ""
+%define alt_kernel %{__alt_kernel}
+%endif
+
+%define versuffix -%{basever}
# 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}
+%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}
+Name: kernel%{versuffix}%{_alt_kernel}
Version: %{basever}.%{postver}
Release: %{rel}
Epoch: 3
License: GPL v2
Group: Base/Kernel
Source0: http://www.kernel.org/pub/linux/kernel/v5.x/linux-%{basever}.tar.xz
-# Source0-md5: 753adc474bf799d569dec4f165ed92c3
+# Source0-md5: 071d49ff4e020d58c04f9f3f76d3b594
%if "%{postver}" != "0"
Source1: http://www.kernel.org/pub/linux/kernel/v5.x/patch-%{version}.xz
-# Source1-md5: eb1e3841c0ce05b8630754bcbddb8f74
+# Source1-md5: e35f7dcea22c18b48ac29d0a53f36c58
%endif
+Patch0: solo6x10_mem_fix.patch
+
Source2: kernel-module-build.pl
Source3: kernel.make
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
%define topdir %{_builddir}/%{name}-%{version}
%define srcdir %{topdir}/linux-%{basever}
%define objdir %{topdir}/%{targetobj}
-%define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
+%define targetobj %{_target_base_arch}-gcc-%(%{__cc} -dumpversion)
-%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
+%define _kernelsrcdir /usr/src/linux%{versuffix}%{_alt_kernel}-%{version}
%if "%{_target_base_arch}" != "%{_host_base_arch}"
%define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-tld-linux-
%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
%define DepMod /sbin/depmod
%endif
-%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
+# use 64-bit offsets for fixdeps to work with 64-bit inodes
+%define MakeOpts %{CrossOpts} HOSTCC="%{__cc} -D_FILE_OFFSET_BITS=64"
%description
This package contains the Linux kernel that is used to boot and run
Summary(pl.UTF-8): vmlinux - rozpakowany obraz jądra
Group: Base/Kernel
Obsoletes: kernel-smp-vmlinux
-Obsoletes: kernel%{_alt_kernel}-vanilla-vmlinux
%description vmlinux
vmlinux - uncompressed kernel image.
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: kernel-smp-drm
-Obsoletes: kernel%{_alt_kernel}-vanilla-drm
AutoReqProv: no
%description drm
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: kernel-smp-pcmcia
-Obsoletes: kernel%{_alt_kernel}-vanilla-pcmcia
Conflicts: pcmcia-cs < 3.1.21
Conflicts: pcmciautils < 004
AutoReqProv: no
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: kernel-smp-sound-alsa
-Obsoletes: kernel%{_alt_kernel}-vanilla-sound-alsa
AutoReqProv: no
%description sound-alsa
Summary(pl.UTF-8): Pliki nagłówkowe jądra Linuksa
Group: Development/Building
Provides: %{name}-headers(netfilter) = 20070806
-Obsoletes: kernel%{_alt_kernel}-vanilla-headers
AutoReqProv: no
%description headers
Summary(pl.UTF-8): Pliki służące do budowania modułów jądra
Group: Development/Building
Requires: %{name}-headers = %{epoch}:%{version}-%{release}
-Obsoletes: kernel%{_alt_kernel}-vanilla-module-build
Conflicts: rpmbuild(macros) < 1.652
AutoReqProv: no
Summary(pl.UTF-8): Kod źródłowy jądra Linuksa
Group: Development/Building
Requires: %{name}-module-build = %{epoch}:%{version}-%{release}
-Obsoletes: kernel%{_alt_kernel}-vanilla-source
AutoReqProv: no
%description source
Summary(de.UTF-8): Kernel Dokumentation
Summary(pl.UTF-8): Dokumentacja do jądra Linuksa
Group: Documentation
-Obsoletes: kernel%{_alt_kernel}-vanilla-doc
AutoReqProv: no
%description doc
%{__xz} -dc %{SOURCE1} | patch -p1 -s
%endif
+%patch0 -p1
+
# Fix EXTRAVERSION in main Makefile
-sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:-%{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
%{__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
+ 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},' \
scripts/sphinx-pre-install \
scripts/stackdelta
-%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\\1,' \
+%{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \
+ tools/testing/selftests/powerpc/security/mitigation-patching.sh \
scripts/config
-%{__sed} -i -e '1s,/usr/bin/awk,/bin/awk,' \
- scripts/ld-version.sh
-
%build
install -d %{objdir}
cat > %{targetobj}.mk <<'EOF'
%depmod %{kernel_release}
%post headers
-ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{_alt_kernel}
+ln -snf %{basename:%{_kernelsrcdir}} %{_prefix}/src/linux%{versuffix}%{_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}
+ if [ -L %{_prefix}/src/linux%{versuffix}%{_alt_kernel} ]; then
+ if [ "$(readlink %{_prefix}/src/linux%{versuffix}%{_alt_kernel})" = "linux%{versuffix}%{_alt_kernel}-%{version}" ]; then
+ rm -f %{_prefix}/src/linux%{versuffix}%{_alt_kernel}
fi
fi
fi
%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/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/pcmcia/pcmcia*ko*
/lib/modules/%{kernel_release}/kernel/drivers/bluetooth/*_cs.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*
%{_kernelsrcdir}/scripts/mod/*.c
%{_kernelsrcdir}/scripts/mod/modpost.h
%attr(755,root,root) %{_kernelsrcdir}/scripts/mkcompile_h
-%{_kernelsrcdir}/scripts/mkmakefile
%attr(755,root,root) %{_kernelsrcdir}/scripts/setlocalversion
%{_kernelsrcdir}/scripts/subarch.include
%{_kernelsrcdir}/scripts/*.c
%exclude %{_kernelsrcdir}/scripts/basic
%exclude %{_kernelsrcdir}/scripts/kconfig
%exclude %{_kernelsrcdir}/scripts/mkcompile_h
-%exclude %{_kernelsrcdir}/scripts/mkmakefile
%exclude %{_kernelsrcdir}/scripts/mod
%exclude %{_kernelsrcdir}/scripts/setlocalversion
%exclude %{_kernelsrcdir}/scripts/*.c