###############################################################################
name = kernel
-version = 4.6.7
-release = 2
+version = 6.0.6
+release = 0.23
thisapp = linux-%{version}
maintainer = Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
localversion = %{release}.%{DISTRO_DISTTAG}.%{DISTRO_ARCH}
fullver = %{version}-%{localversion}
-source_dl = http://www.kernel.org/pub/linux/kernel/v4.x/
+source_dl = https://www.kernel.org/pub/linux/kernel/v6.x/
sources = %{thisapp}.tar.xz
build
- kernel_logo = /usr/share/pixmaps/kernel-logo.ppm
-
requires
asciidoc
- audit-devel
bc
binutils >= 2.25
binutils-devel
bison
elfutils-devel
flex
- gcc >= 4.9
+ gcc >= 8
gcc-plugin-devel
gettext
hostname
ncurses-devel
net-tools
newt-devel
+ openssl
pciutils-devel
perl
+ python3
python-devel
+ rsync
openssl-devel
slang-devel
xmlto
xz
+ zstd
/sbin/depmod
- %{kernel_logo}
end
- # A list of kernels to build.
- kernels =
-
- # Arguments that are passed to the kernel build command
- # Clearning any host CFLAGS or LDFLAGS for kernel build
- kernel_build_flags = CFLAGS= LDFLAGS=
-
kernel_arch = %{DISTRO_PLATFORM}
kernel_target = bzImage
kernel_image = arch/%{kernel_arch}/boot/%{kernel_target}
- if "%{DISTRO_ARCH}" == "x86_64"
- build_kernel_default = 1
- end
-
if "%{DISTRO_ARCH}" == "aarch64"
- build_kernel_default = 1
-
kernel_arch = arm64
kernel_target = Image.gz
end
- if "%{DISTRO_ARCH}" == "armv7hl"
- # Build the default unified kernel.
- build_kernel_default = 1
-
- kernel_target = zImage
- end
-
- # mkimage is a requirement to build uImage images.
- if "%{kernel_target}" == "uImage"
- requires += u-boot-tools
- end
-
- # Build default kernel.
- if "%{build_kernel_default}" == "1"
- kernels += default
- end
-
- perf_make = make %{PARALLELISMFLAGS} -C tools/perf V=1 WERROR=0 \
- NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 \
- NO_STRLCPY=1 NO_BIONIC=1 prefix=%{prefix} perfexecdir=lib/perf-core
-
prepare_cmds
# Disable the colorize plugin.
# It's generally very nice but it clutters our
sed -e "/^COLORIZE_PLUGIN_CFLAGS/d" \
-i Makefile
- sed -e "s/^HOSTCFLAGS.*=.*/& -fPIC/g" -i Makefile
-
- cp -vf %{kernel_logo} \
- drivers/video/logo/logo_linux_clut224.ppm
+ sed -e "s/\$(HOST_LFS_CFLAGS)/& -fPIC/g" -i Makefile
# Get rid of unwanted files resulting from patch fuzz.
find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
configure_kernel() {
local flavour=${1}
local suffix
- if [ "${flavour}" != "default" ]; then
+ if [ "${flavour}" != "generic" ]; then
suffix="-${flavour}"
fi
- scripts/configure --kernel-dir=%{DIR_APP} \
+ bash scripts/configure --kernel-dir=%{DIR_APP} \
merge %{DISTRO_ARCH} ${flavour} %{DIR_APP}/configs/config.${flavour}
}
# Generate configuration files for all kernels we are going to
# build.
- for kernel in %{kernels}; do
- configure_kernel ${kernel}
- done
-
- # Tools
- # Prevent perf from installing any files in /usr/libexec
- sed -i %{DIR_APP}/tools/perf/config/Makefile -e "s/libexec/lib/g"
+ configure_kernel "generic"
end
build
local suffix
local localversion="%{localversion}"
local fullversion="%{fullver}"
- if [ "${flavour}" != "default" ]; then
+ if [ "${flavour}" != "generic" ]; then
suffix="-${flavour}"
localversion="${localversion}.${flavour}"
fullversion="${fullversion}.${flavour}"
cat .config
# Run the build.
- make ARCH=%{kernel_arch} oldnoconfig >/dev/null
- make ARCH=%{kernel_arch} CC="gcc -fno-PIE" %{kernel_target} modules \
- %{kernel_build_flags} %{PARALLELISMFLAGS}
+ make ARCH=%{kernel_arch} olddefconfig >/dev/null
+ make ARCH=%{kernel_arch} %{kernel_target} modules \
+ KERNELRELEASE=${fullversion} %{PARALLELISMFLAGS}
# Compile Flattened Device Tree database
case "${DISTRO_ARCH}" in
- aarch64|arm*)
+ aarch64)
make ARCH=%{kernel_arch} dtbs
mkdir -pv %{BUILDROOT}/boot/dtb-${fullversion}
make ARCH=%{kernel_arch} INSTALL_MOD_PATH=%{BUILDROOT}/usr mod-fw= V=1 \
KERNELRELEASE=${fullversion} modules_install
- # Create an empty settings file for dracut
- mkdir -p %{BUILDROOT}/etc/ld.so.conf.d
- echo "# Placeholder file, no vDSO hwcap entries used in this kernel." \
- > %{BUILDROOT}/etc/ld.so.conf.d/kernel-${fullversion}.conf
-
# And now the scary looking part.
#
# Recreate source and build links.
-exec chmod 644 {} \;
find %{BUILDROOT}/usr/src/kernels -name ".*.cmd" -exec rm -f {} \;
- }
- for kernel in %{kernels}; do
- build_kernel ${kernel}
- done
+ # remove device tree compiler because there are dead links
+ rm -rf %{BUILDROOT}/usr/src/kernels/*/scripts/dtc
+ }
- # Build tools.
- # perf
- #%{perf_make} DESTDIR=%{BUILDROOT} all
+ # Build the kernel
+ build_kernel "generic"
# cpupower
chmod +x tools/power/cpupower/utils/version-gen.sh
make -C tools/power/cpupower CPUFREQ_BENCH=false %{PARALLELISMFLAGS}
- if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
- pushd tools/power/cpupower/debug/x86_64
- make %{PARALLELISMFLAGS} centrino-decode powernow-k8-decode
- popd
-
- pushd tools/power/x86/x86_energy_perf_policy
- make
- popd
-
- pushd tools/power/x86/turbostat
- make
- popd
- fi
-
pushd tools/thermal/tmon
make
popd
rm -rfv %{BUILDROOT}/lib/firmware
# Install tools.
- #%{perf_make} DESTDIR=%{BUILDROOT} install-bin install-python_ext
-
# cpupower
make -C tools/power/cpupower DESTDIR=%{BUILDROOT} libdir=%{libdir} \
mandir=%{mandir} CPUFREQ_BENCH=false install
- if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
- pushd tools/power/cpupower/debug/x86_64
- install -m 755 centrino-decode \
- %{BUILDROOT}/usr/bin/centrino-decode
- install -m 755 powernow-k8-decode \
- %{BUILDROOT}/usr/bin/powernow-k8-decode
- popd
- fi
-
chmod 0755 %{BUILDROOT}%{libdir}/libcpupower.so*
- # This should be built for all x86 architectures
- if [ "%{DISTRO_ARCH}" = "x86_64" ]; then
- mkdir -pv %{BUILDROOT}%{mandir}/man8
-
- pushd tools/power/x86/x86_energy_perf_policy
- make DESTDIR=%{BUILDROOT} install
- popd
-
- pushd tools/power/x86/turbostat
- make DESTDIR=%{BUILDROOT} install
- popd
- fi
-
# tmon
pushd tools/thermal/tmon
make INSTALL_ROOT=%{BUILDROOT} install
end
packages
- template KERNEL
- kernel_name = kernel
- kernel_release = %{fullver}
+ package kernel-tools
+ summary = Assortment of tools for the Linux kernel.
+ description = %{summary}
+
+ filter_requires
+ perl>=[0-9]\:.*
+ end
+ end
- summary = The Linux kernel %{kernel_release}.
+ package kernel
+ summary = The Linux kernel %{fullver}
prerequires
/sbin/depmod
end
provides
- kernel=%{kernel_release}
+ kernel = %{fullver}
end
requires
dracut
- grubby
+ kernel-updater
linux-firmware
+ intel-microcode
end
files
- /boot/System.map-%{kernel_release}
- /boot/dtb-%{kernel_release}
- /boot/vmlinuz-%{kernel_release}
- /boot/initramfs-%{kernel_release}.img
- /etc/ld.so.conf.d/kernel-%{kernel_release}.conf
- /usr/lib/modules/%{kernel_release}
+ /boot/System.map-%{fullver}
+ /boot/dtb-%{fullver}
+ /boot/vmlinuz-%{fullver}
+ /boot/initramfs-%{fullver}.img
+ /usr/lib/modules/%{fullver}
end
_posttrans
- /sbin/new-kernel-pkg --package %{kernel_name} --mkinitrd --dracut --depmod --update %{kernel_release}
- /sbin/new-kernel-pkg --package %{kernel_name} --rpmposttrans %{kernel_release}
+ kernel-updater install %{fullver}
end
script posttransin
%{_posttrans}
end
- script postin
- /sbin/new-kernel-pkg --package %{kernel_name} --install %{kernel_release}
- end
-
- script postup
- /sbin/new-kernel-pkg --package %{kernel_name} --install %{kernel_release}
- end
-
- script preun
- /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{kernel_release}
+ script postun
+ kernel-updater uninstall %{fullver}
end
end
- template KERNELDEVEL
- kernel_release = %{fullver}
-
- summary = Development files of kernel-%{kernel_release}.
+ package kernel-devel
+ summary = Development files of kernel-%{fullver}
description
%{summary}
Install this package in order to compile modules for
- kernel release %{kernel_release}.
+ kernel release %{fullver}.
end
provides
end
files
- /usr/lib/modules/%{kernel_release}/build
- /usr/lib/modules/%{kernel_release}/source
- /usr/src/kernels/%{kernel_release}
- end
- end
-
- if "%{build_kernel_default}" == "1"
- if "%{DISTRO_ARCH}" == "armv7hl"
- package kernel
- template KERNEL
-
- kernel_name = kernel
- kernel_release = %{fullver}
-
- # Replace the Exynos kernel.
- obsoletes += kernel-exynos < %{kernel_release}
- conflicts += kernel-exynos < %{kernel_release}
-
- # Replace the OMAP kernel.
- obsoletes += kernel-omap < %{kernel_release}
- conflicts += kernel-omap < %{kernel_release}
- end
-
- package kernel-devel
- template KERNELDEVEL
-
- kernel_name = kernel
- kernel_release = %{fullver}
-
- # Replace the Exynos kernel.
- obsoletes += kernel-exynos-devel < %{kernel_release}
- conflicts += kernel-exynos-devel < %{kernel_release}
-
- # Replace the OMAP kernel.
- obsoletes += kernel-omap-devel < %{kernel_release}
- conflicts += kernel-omap-devel < %{kernel_release}
- end
-
- else
- package kernel
- template KERNEL
-
- kernel_name = kernel
- kernel_release = %{fullver}
- end
-
- package kernel-devel
- template KERNELDEVEL
-
- kernel_name = kernel
- kernel_release = %{fullver}
- end
+ /usr/lib/modules/%{fullver}/build
+ /usr/lib/modules/%{fullver}/source
+ /usr/src/kernels/%{fullver}
end
end
package kernel-headers
- summary = Header files of the kernel release %{fullver}.
+ summary = Header files of the kernel release %{fullver}
desciption = %{summary}
files
/usr/include
end
end
-
- package kernel-tools
- summary = Assortment of tools for the Linux kernel.
- description = %{summary}
-
- filter_requires
- perl>=[0-9]\:.*
- end
-
- files
- /
- !/boot
- !/usr/include
- !/usr/lib/modules
- !/usr/src
- !/usr/src/debug
- !/usr/lib/debug
- end
- end
end