# Maintainer: zer0def pkgbase=linux-kata pkgname=( linux-kata linux-kata-btrfs ) pkgver="${KATA_KERNEL_VER:-5.10.37}" pkgrel=1 pkgdesc="Kata Containers container kernel image" arch=('x86_64') url="https://katacontainers.io/" license=('GPL2') validpgpkeys=('647F28654894E3BD457199BE38DBBDC86092693E') _kata_version="2.1.0" source=( "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${pkgver}.tar.xz" "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${pkgver}.tar.sign" "kata-containers-${_kata_version}.tar.gz::https://github.com/kata-containers/kata-containers/archive/${_kata_version}.tar.gz" "btrfs.config" # https://lkml.org/lkml/2021/1/23/75 "0001-config-preemption.diff" # 5.4 ) sha512sums=( "${KATA_KERNEL_SUM_SHA512:-8df1383c0a2e4f92ca4b2c075df305db955be3c2fae1c3c97744d37bfd62c50313265c8b86c446548b41b116fdc1e6dc007c501b3836bc8e9456137db858f147}" "SKIP" "ccfc712168738fce1f26b14fbe4a0dcecd9d1f3a0698c06487d98091173951be141c06b4314712ea9b67cda93d2efa8701c3b9afc8770458147defa5adbabf1a" "ed3011a9fee8dd2fb16a004305b23e6b79158afcfe6d88ccdf471b177a8fbe4a9da92924e437284de83a69cebdf5cca2312b614906c404c0d22692aeca491510" "76c27fe0e2b84a9ae0d4b0e2a96ef0c07777811991b4aae21c88494b91fa2837fb67be335cebf4874e5e3235b5ba4641ec4544f9e055765e2dcf399d9d875e8c" ) b2sums=( "${KATA_KERNEL_SUM_B2:-74ad5bf6102af7ce8ea575200131c1db9e7e0b044496659896205b9da7239f0c8d9e3fb9400a4b001952a5fc34842069ba71aadad30c1a18855b94371c89fe00}" "SKIP" "ee14536ba48ece1beba2409082446b18b80450233335bf2b9644604cf3d97404caa9f58a0ca1de69da50cd900e0b7ee5f9b046e206b9235ed77b9deccb2399d6" "803eb3483722e7eab50102b8d0f9dc1ea7f38781d1f61e5998137469e019cb49d944a30c97f465c5b03916322955fcf29629af27ac47f2e19210bee3d63c488e" "919319ddcaac3f7c5b1c1998fced9920f3e7e9d4660c83e380495fc3a14d5f4e82736ac9435fdb78512576f1d90f80b1ad017529f2b42e013b844ed3ec4bc99f" ) case "${CARCH}" in x86_64) _KARCH=x86_64;; aarch64) _KARCH=arm64;; s390|s390x) _KARCH=s390;; ppc64le) _KARCH=powerpc;; esac _prepare(){ # ref: https://github.com/kata-containers/packaging/tree/master/kernel local suffix="${1}"; shift cp -a "${srcdir}/linux-${pkgver}" "${srcdir}/linux-${pkgver}-${suffix}" pushd "${srcdir}/linux-${pkgver}-${suffix}" #for p in $(find "${srcdir}/kata-containers-${_kata_version}/obs-packaging/linux-container/patches" -type f -name "*.patch"); do # patch -p1 <"${p}" #done #patch -p1 <"${srcdir}/0001-config-preemption.diff" # kernel config prep from upstream ("${srcdir}/kata-containers-${_kata_version}/obs-packaging/linux-container/kata-linux-container.spec-template") make -s mrproper rm -f .config local _KCONFIG="$(find "${srcdir}/kata-containers-${_kata_version}/kernel/configs" -type f -name "${_KARCH}_kata_kvm_${pkgver%.*}.x")" if [ -z "${_KCONFIG}" ]; then KCONFIG_CONFIG=.config ARCH=${_KARCH} scripts/kconfig/merge_config.sh -r -n "${srcdir}/kata-containers-${_kata_version}/tools/packaging/kernel/configs/fragments/common/"*.conf "${srcdir}/kata-containers-${_kata_version}/tools/packaging/kernel/configs/fragments/${_KARCH}/"*.conf else install -D -m 0644 "${_KCONFIG}" .config fi [ -z "${@}" ] || cat "${@}" >> .config make -s ARCH="${_KARCH}" oldconfig popd } prepare(){ _prepare vanilla _prepare btrfs "${srcdir}/btrfs.config" } _build(){ pushd "${srcdir}/linux-${pkgver}-${1}" make -s ARCH="${_KARCH}" popd } build(){ _build vanilla _build btrfs } _package_linux_kata(){ local suffix="${1:+-${1}}" _path="${2}" install -dm0755 "${pkgdir}/usr/share/kata-containers" pushd "${pkgdir}/usr/share/kata-containers" install -D -m 0644 "${_path}/arch/${_KARCH}/boot/bzImage" "${pkgdir}/usr/share/kata-containers/vmlinux-${pkgver}${suffix}.container" #install -D -m 0644 "${_path}/vmlinux" "${pkgdir}/usr/share/kata-containers/vmlinux-${pkgver}${suffix}.container" ln -sf "vmlinux-${pkgver}${suffix}.container" "vmlinux${suffix}.container" if [ "${_KARCH}" = "powerpc" ]; then ln -sf "vmlinux-${pkgver}${suffix}.container" "vmlinuz-${pkgver}${suffix}.container" ln -sf "vmlinuz-${pkgver}${suffix}.container" "vmlinuz${suffix}.container" else # param out bzImage for other archs? install -D -m 0644 "${_path}/arch/${_KARCH}/boot/bzImage" "${pkgdir}/usr/share/kata-containers/vmlinuz-${pkgver}${suffix}.container" ln -sf "vmlinuz-${pkgver}${suffix}.container" "vmlinuz${suffix}.container" fi popd } package_linux-kata(){ provides=('kata1-linux-container' 'kata2-linux-container' 'kata-linux-container') conflicts=('kata1-linux-container' 'kata2-linux-container' 'kata-linux-container') _package_linux_kata '' "${srcdir}/linux-${pkgver}-vanilla" } package_linux-kata-btrfs(){ provides=('linux-kata' 'kata1-linux-container' 'kata2-linux-container' 'kata-linux-container') _package_linux_kata btrfs "${srcdir}/linux-${pkgver}-btrfs" }