diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 228 |
1 files changed, 171 insertions, 57 deletions
@@ -1,49 +1,146 @@ -# Maintainer: Mark Weiman (markzz) <mark.weiman@markzz.com> -# Maintainer: Katelyn Schiesser (slowbro) <katelyn.schiesser@gmail.com> +# Maintainer: +# Contributor: éclairevoyant +# Contributor: Mark Weiman (markzz) <mark.weiman@markzz.com> +# Contributor: Katelyn Schiesser (slowbro) <katelyn.schiesser@gmail.com> # Contributor: Dan Ziemba <zman0900@gmail.com> -# Upstream: Jan Alexander Steffens (heftig) <heftig@archlinux.org> -pkgbase=linux-vfio -pkgver=5.15.13.arch1 +## options +: ${_build_arch_patch:=true} + +: ${_build_clang:=false} +: ${_build_tracer:=true} +: ${_build_numa:=true} + +: ${_build_vfio:=true} +: ${_build_lts:=false} +: ${_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.8.9 pkgrel=1 pkgdesc='Linux' -_srctag=v${pkgver%.*}-${pkgver##*.} -url="https://github.com/archlinux/linux/commits/$_srctag" -arch=(x86_64) -license=(GPL2) +url='https://www.kernel.org' +license=('GPL-2.0-or-later') +arch=('x86_64') + makedepends=( - bc kmod libelf pahole cpio perl tar xz - xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick - git + bc + cpio + gettext + libelf + pahole + perl + python + tar + xz + + # htmldocs + graphviz + imagemagick + python-sphinx + python-yaml + texlive-latexextra ) options=('!strip') -_srcname=archlinux-linux -source=( - "$_srcname::git+https://github.com/archlinux/linux?signed#tag=$_srctag" - config # the main kernel config file - add-acs-overrides.patch - i915-vga-arbiter.patch +_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/-/raw/main/config +) +sha256sums+=( + 'f905f1238ea7a8e85314bacf283302e8097006010d25fcea726d0de0ea5bc9b6' + 'SKIP' + 'SKIP' ) validpgpkeys=( - 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds - '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman - 'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig) - 'C7E7849466FE2358343588377258734B41C31549' # David Runge <dvzrv@archlinux.org> + ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds + 647F28654894E3BD457199BE38DBBDC86092693E # Greg Kroah-Hartman + 83BC8889351B5DEBBB68416EB8AC08600F108CDF # Jan Alexander Steffens (heftig) ) -sha256sums=('SKIP' - '6000b247aac5620ba08ec862353063f5f8806a33c4c8f55263843c8f47027e63' - 'b90be7b79652be61f7d50691000f6a8c75a240dc2eee2667b68d984f67583f77' - '856230cfbdc2bb53a4920dfbcb6fb2d58427b7b184e5f94e21f08011d0a2fcc6') + +if [[ ${_build_vfio::1} == "t" ]]; then + source+=( + 1001-6.8.0-add-acs-overrides.patch # updated from https://lkml.org/lkml/2013/5/30/513 + 1002-6.8.0-i915-vga-arbiter.patch # updated from https://lkml.org/lkml/2014/5/9/517 + ) + sha256sums+=( + 'b35c26d5dc31fb9cfac68292de7b1ee8ca93b4647e4958efc77e2c77f586f1f2' + '966c15da4044a9a3b5f9d362c2cf08303f1265ad4489c9835c95973b71255d07' + ) +fi + +if [[ ${_build_arch_patch::1} == "t" ]]; then + _srctag=v${pkgver}-arch1 + _dl_url_arch='https://github.com/archlinux/linux' + + # if no new patch, use previous one + if grep 404 <(curl -sI $_dl_url_arch/releases/download/$_srctag/linux-$_srctag.patch.zst | head -1) > /dev/null; then + _srctag=v${pkgver::4}$((${pkgver##*.} - 1))-arch1 + fi + + source+=( + $_dl_url_arch/releases/download/$_srctag/linux-$_srctag.patch.zst{,.sig} + ) + sha256sums+=( + 'SKIP' + 'SKIP' + ) +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..." - scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux}" > localversion.20-pkgname @@ -51,36 +148,50 @@ prepare() { for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" + src="${src%.zst}" [[ $src = *.patch ]] || continue + echo echo "Applying patch $src..." - patch -Np1 < "../$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 $(<version)" + echo "Prepared $pkgbase version $(< version)" } build() { cd $_srcname make all - make htmldocs + make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1 + #make htmldocs } _package() { - pkgdesc="The $pkgdesc kernel and modules" - depends=(coreutils kmod initramfs) - optdepends=('crda: to set the correct wireless channels of your country' - 'linux-firmware: firmware images needed for some devices') - provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) - replaces=(virtualbox-guest-modules-arch wireguard-arch) + pkgdesc="The $pkgdesc kernel and modules (ACS override and i915 VGA arbiter patches)" + depends=( + coreutils + initramfs + kmod + ) + optdepends=( + 'wireless-regdb: to set the correct wireless channels of your country' + 'linux-firmware: firmware images needed for some devices' + ) + provides=( + KSMBD-MODULE + VIRTUALBOX-GUEST-MODULES + WIREGUARD-MODULE + ) cd $_srcname - local kernver="$(<version)" - local modulesdir="$pkgdir/usr/lib/modules/$kernver" + local modulesdir="$pkgdir/usr/lib/modules/$(< version)" echo "Installing boot image..." # systemd expects to find the kernel here to allow hibernation @@ -91,18 +202,19 @@ _package() { echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" echo "Installing modules..." - make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install + ZSTD_CLEVEL=19 make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \ + DEPMOD=/doesnt/exist modules_install # Suppress depmod - # remove build and source links - rm "$modulesdir"/{source,build} + # remove build link + rm "$modulesdir"/build } _package-headers() { - pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel" + pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel (ACS override and i915 VGA arbiter patches)" depends=(pahole) cd $_srcname - local builddir="$pkgdir/usr/lib/modules/$(<version)/build" + local builddir="$pkgdir/usr/lib/modules/$(< version)/build" echo "Installing build files..." install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ @@ -111,11 +223,11 @@ _package-headers() { install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile cp -t "$builddir" -a scripts - # add objtool for external module building and enabled VALIDATION_STACK option + # required when STACK_VALIDATION is enabled install -Dt "$builddir/tools/objtool" tools/objtool/objtool - # add xfs and shmem for aufs building - mkdir -p "$builddir"/{fs/xfs,mm} + # required when DEBUG_INFO_BTF_MODULES is enabled + install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids echo "Installing headers..." cp -t "$builddir" -a include @@ -125,10 +237,10 @@ _package-headers() { install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h - # http://bugs.archlinux.org/task/13146 + # https://bugs.archlinux.org/task/13146 install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h - # http://bugs.archlinux.org/task/20402 + # https://bugs.archlinux.org/task/20402 install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h @@ -159,12 +271,12 @@ _package-headers() { echo "Stripping build tools..." local file while read -rd '' file; do - case "$(file -bi "$file")" in - application/x-sharedlib\;*) # Libraries (.so) + case "$(file -Sib "$file")" in + application/x-sharedlib\;*) # Libraries (.so) strip -v $STRIP_SHARED "$file" ;; - application/x-archive\;*) # Libraries (.a) + application/x-archive\;*) # Libraries (.a) strip -v $STRIP_STATIC "$file" ;; - application/x-executable\;*) # Binaries + application/x-executable\;*) # Binaries strip -v $STRIP_BINARIES "$file" ;; application/x-pie-executable\;*) # Relocatable binaries strip -v $STRIP_SHARED "$file" ;; @@ -180,10 +292,10 @@ _package-headers() { } _package-docs() { - pkgdesc="Documentation for the $pkgdesc kernel" + pkgdesc="Documentation for the $pkgdesc kernel (ACS override and i915 VGA arbiter patches)" cd $_srcname - local builddir="$pkgdir/usr/lib/modules/$(<version)/build" + local builddir="$pkgdir/usr/lib/modules/$(< version)/build" echo "Installing documentation..." local src dst @@ -198,12 +310,14 @@ _package-docs() { ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase" } -pkgname=("$pkgbase" "$pkgbase-headers" "$pkgbase-docs") +pkgname=( + "$pkgbase" + "$pkgbase-headers" + #"$pkgbase-docs" +) for _p in "${pkgname[@]}"; do eval "package_$_p() { $(declare -f "_package${_p#$pkgbase}") _package${_p#$pkgbase} }" done - -# vim:set ts=8 sts=2 sw=2 et: |