# Maintainer: # Contributor: Andreas Radke ## options : ${_build_arch_patch:=true} : ${_build_clang:=false} : ${_build_tracer:=true} : ${_build_numa:=true} : ${_build_vfio:=true} : ${_build_lts:=true} : ${_build_v3:=false} unset _pkgtype [[ "${_build_vfio::1}" == "t" ]] && _pkgtype+="-vfio" [[ "${_build_lts::1}" == "t" ]] && _pkgtype+="-lts" [[ "${_build_v3::1}" == "t" ]] && _pkgtype+="-v3" ## basic info _gitname="linux" _pkgname="$_gitname${_pkgtype:-}" pkgbase="$_pkgname" pkgver=6.6.27 pkgrel=1 pkgdesc='LTS Linux' url='https://www.kernel.org' license=('GPL-2.0-or-later') arch=('x86_64') makedepends=( bc cpio gettext libelf pahole perl python tar xz # htmldocs graphviz imagemagick python-sphinx texlive-latexextra ) options=('!strip') _srcname=linux-$pkgver source+=( https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} "config-$pkgver"::https://gitlab.archlinux.org/archlinux/packaging/packages/linux-lts/-/raw/main/config ) sha256sums+=( '639e50060e3c8f23ed017cb10cfeacc6ba88ff5583812bb76859b4cc6a128291' 'SKIP' 'SKIP' ) validpgpkeys=( ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds 647F28654894E3BD457199BE38DBBDC86092693E # Greg Kroah-Hartman 83BC8889351B5DEBBB68416EB8AC08600F108CDF # Jan Alexander Steffens (heftig) ) if [[ ${_build_vfio::1} == "t" ]] ; then source+=( 1001-6.6.7-add-acs-overrides.patch # updated from https://lkml.org/lkml/2013/5/30/513 1002-6.6.7-i915-vga-arbiter.patch # updated from https://lkml.org/lkml/2014/5/9/517 ) sha256sums+=( 'f342986bd27980c96c952b0dd8103d3e21a942d87f18df1308fab370e20010fb' '2a3c732d4d61a631c98b2a3e4afb1fa5dbf8be5c43519b2a59d0e65170c9d8db' ) fi if [[ ${_build_arch_patch::1} == "t" ]] ; then _dl_url_arch='https://gitlab.archlinux.org/archlinux/packaging/packages/linux-lts/-/raw/main' source+=( "0001-$pkgver-disallow-unprivileged-CLONE_NEWUSER.patch"::"$_dl_url_arch/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch" "0002-$pkgver-nvidia-skip-simpledrm.patch"::"$_dl_url_arch/0002-skip-simpledrm-if-nvidia-drm.modeset=1-is.patch" ) sha256sums+=( '21195509fded29d0256abfce947b5a8ce336d0d3e192f3f8ea90bde9dd95a889' '2f23be91455e529d16aa2bbf5f2c7fe3d10812749828fc752240c21b2b845849' ) fi if [[ ${_build_clang::1} == "t" ]] ; then makedepends+=(clang llvm lld) export LLVM=1 export LLVM_IAS=1 fi if [[ "${_build_v3::1}" == "t" ]] ; then export KCFLAGS="-march=x86-64-v3 -mtune=generic -O3" export HOSTCFLAGS="-march=x86-64-v3 -mtune=generic -O3" export HOSTCXXFLAGS="-march=x86-64-v3 -mtune=generic -O3" fi export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" _prepare_extra() { # remove extra version suffix sed -E 's&^(EXTRAVERSION =).*$&\1&' -i Makefile if [[ "${_build_clang::1}" == "t" ]] ; then scripts/config --disable LTO_CLANG_FULL scripts/config --enable LTO_CLANG_THIN fi if [[ "${_build_clang::1}" == "t" ]] || [[ "${_build_tracer::1}" != "t" ]] ; then echo "Disabling Tracers..." scripts/config \ --disable CONFIG_FTRACE \ --disable CONFIG_FUNCTION_TRACER \ --disable CONFIG_STACK_TRACER fi if [[ "${_build_numa::1}" != "t" ]] ; then echo "Disabling NUMA..." scripts/config --disable CONFIG_NUMA fi } prepare() { cp "config-$pkgver" "config" cd $_srcname echo "Setting version..." echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux}" > localversion.20-pkgname local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" src="${src%.zst}" [[ $src = *.patch ]] || continue echo echo "Applying patch $src..." patch -Np1 -F100 -i "../$src" done echo "Setting config..." cp ../config .config make olddefconfig diff -u ../config .config || : _prepare_extra make -s kernelrelease > version echo "Prepared $pkgbase version $(