summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorzer0def2021-05-15 06:27:43 +0200
committerzer0def2021-05-15 08:03:48 +0200
commit8f78807fe6f686ce7d52daf67d6a26b3664e9c01 (patch)
tree433eb1ca2cbe85837734feaeeaa62479008fa1ff /PKGBUILD
parent8c50f1ee85601cb265a6e2f834428babcc1ca2a6 (diff)
downloadaur-8f78807fe6f686ce7d52daf67d6a26b3664e9c01.tar.gz
Kata 1.x has been archived, move Kata 2.x as expected release and bump to 2.1.0
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD224
1 files changed, 172 insertions, 52 deletions
diff --git a/PKGBUILD b/PKGBUILD
index e5ff1c905fed..b4134eba81ae 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,89 +3,209 @@
# Contributor: Stefan Zwanenburg <stefan cat zwanenburg dog info>
pkgbase=kata-containers
pkgname=(
- kata-ksm-throttler
+ kata-agent
kata-runtime
- kata-proxy
- kata-shim
+ kata-linux-container
+ #kata-containers-image
)
-pkgver=1.12.1
+pkgver=2.1.0
_pkgver=${pkgver/\~/-}
pkgrel=1
-pkgdesc="Lightweight virtual machines for containers"
+pkgdesc="Lightweight virtual machines for containers, version 2"
arch=('x86_64')
url="https://katacontainers.io/"
license=('Apache')
makedepends=(
- 'go'
- #'yq2-bin'
+ 'go' 'bc' 'rust'
+ #'yq2-bin' # quietly pulled by Kata's codebase to read versions.yaml from source repo
+ 'mkinitcpio' # initrd build
+ 'pacman' 'udisks2' # rootless image build
)
+
_gh_org="github.com/kata-containers"
+_kata_kernel_ver="${KATA_KERNEL_VER:-5.10.25}"
+
source=(
- "ksm-throttler-${_pkgver}.tar.gz::https://${_gh_org}/ksm-throttler/archive/${_pkgver}.tar.gz"
- "proxy-${_pkgver}.tar.gz::https://${_gh_org}/proxy/archive/${_pkgver}.tar.gz"
- "runtime-${_pkgver}.tar.gz::https://${_gh_org}/runtime/archive/${_pkgver}.tar.gz"
- "shim-${_pkgver}.tar.gz::https://${_gh_org}/shim/archive/${_pkgver}.tar.gz"
- #"3082.patch" # https://github.com/kata-containers/runtime/pull/3082 fixing https://github.com/kata-containers/runtime/issues/2982
+ "${pkgbase}-${_pkgver}.tar.gz::https://${_gh_org}/kata-containers/archive/${_pkgver}.tar.gz"
+ "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.xz"
+ "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.sign"
+
+ # mknitcpio-busybox
+ "mkinitcpio-agent.conf"
+ "install_kata-agent.tpl"
+ "image_builder.sh" # image build
+
+ # mknitpcio-systemd
+ "install_sd-kata-agent.tpl"
+ "kata-agent.service.in"
+ "kata-containers.target"
+
+ # https://lkml.org/lkml/2021/1/23/75
+ "0001-config-preemption.diff"
)
sha512sums=(
- 5653a4110e57f3145041b0aef1b9f4b8be67d8d0c04144dfbb3b613362bdb6ce67199e9f34d1224cbf08255efe6d191a6e03ba40c35d4d0650004e2582774de4
- 9bd64016374354364d45522239a81b12a7cd3436b0842793e2964bc5b8bc79f6c8be57d71b7384985c416889293688f8c65dffacba23dbf653d9a0ba916263d9
- c831eaa3d0fcddbb5dca0e18f3dfb4e616d45edb42031532c8ea52243a73e685d8f888671a27665f09d0aed41e27ac2035c78ff491f836a044a036d05f922dd7
- acc1592a91f56057a5dc3380824811d436cd82a17e41e028289eb8837aa5fbbb8b811cec51844789f7611b7c009b2050f07bd8c69f7ab28842e4f5fe7accc0b3
- #87568f7db71a816f4953245af4b302da2f0a19543a706bce9d84e9c7e9de8f6ef54f410e426f05c4faf46bcfb330f802fa8261848beda3aaa965bfc11408a5ca
+ "ccfc712168738fce1f26b14fbe4a0dcecd9d1f3a0698c06487d98091173951be141c06b4314712ea9b67cda93d2efa8701c3b9afc8770458147defa5adbabf1a"
+ "${KATA_KERNEL_SUM_SHA512:-20d81a5930f4877e4a67930c8fc52406767bc1c1ca65a78037e4f42738bae54009a59d1a21e3bfde773f67af608a763e67a8829564b3665cae937dbc19947c13}"
+ "SKIP"
+
+ "182a249aecbab33b8704e9567e96d33b535ee59e6d2f52f0c30fbc3d12813f60192886539cc745933caaf59268925d78db9e0b6b427321e2bac932ebde77d62e"
+ "0250e52251986f36cfb9e378d848f755caaf5253daa8ff7d87172f2622754c1eb4180b338a497e3fbeb880e232eef19d5e512f5a8e610e7a6eb468f210849a08"
+ "6f476297d9001eef9a0665689f752cf5124907522cfc87240df16488379a5c7c9820a6e33a576dbf7f75c4fdfa7cab7a0e395b05c9339069dedbdaac42fb6c04"
+
+ "60e2dee0afcfc52b6075309b4eeb55c75dc4a8f063274f2cd481a0056fae0e78e414f0422af26acddff93edb43a23cb52c26aefd92677160fd8eb6a685b6a6d6"
+ "8f927f482d54a762ae5c952883034355a76c5547993ed4245a434a74014aa96e6c5182e3ece0a431e075c1d2f86e99ed0d0d8d839586821c5a7cdf053ec6963d"
+ "b599a62d07f4451f52747eaf185142fbe8eeb9aced211369fc83d88c43483ef1008f87615fcfcf30d74a557569b89d5fcb4a61326ffc8cb0559ec51807d808ca"
+
+ "76c27fe0e2b84a9ae0d4b0e2a96ef0c07777811991b4aae21c88494b91fa2837fb67be335cebf4874e5e3235b5ba4641ec4544f9e055765e2dcf399d9d875e8c"
)
b2sums=(
- c930d082e0a9faa4a90751b3d67e91868bda12dea4ee6f3f565a24c1d074e7b4ed09a93ba14f9696e0891452e2d69a685ec837e7183bc9ff86b479034ed40fc9
- 206bfe0e7d8be050f934ffbd7516543dfc3aca7339e83b318db8acd6323d4c3e68e8bb4f1dfa3530b7b5404960b27867a79396154d0fc61ec3445a5f0e70a78f
- 72d9995a45997c2d407f411f9a177207e23f382b40c08c1930c07029d76bcb3b703d3e80a209e98dc7646d6b1736cab4a1047974a2fb917419a4a6d94e796dd5
- a73a3ce69ff54e7d172ef30e73678d4aaf12ab725798fe6e057f0ca163a95d7ce43c599fec9e7767259b4b793543febd1b7478678400e7f01204a1df89af9556
- #d4f55b660a26ff6dc9e9a7f4eab80f3a45a228b9780054ae0a8d1080ca8db29333818e9e83235c4e6a128117473fe8fcb8f9e5831042aaf71d4defca09808ef2
+ "ee14536ba48ece1beba2409082446b18b80450233335bf2b9644604cf3d97404caa9f58a0ca1de69da50cd900e0b7ee5f9b046e206b9235ed77b9deccb2399d6"
+ "${KATA_KERNEL_SUM_B2:-1aa774dcd894f4f5a24cc26375dac4dfe0b8d1c37e58c6878dd81c2f6466a8fbb635b46e881bec75b00c041c6d0c73c545bd10ff25afde6a5bca1e63e165e51c}"
+ "SKIP"
+
+ "43c81141a65fd14b60ae72c5b98168bec531990903cc7c8b224b416c71d1d05c1cf3f73891954604e0b0c6f48c52a3a41a8e9e78874a79e72b14282373108e8b"
+ "9abf2208af353019ba177d8a48ba613401742cd21258a79c5d9cb8518a51f4f22a41dc386b71f2d6521d03f6ff65d8710dc59d1ca9c7c1dc5f94061c7374286c"
+ "1745aa5d5df0af2452381de163e3964511172e045c13736a062bb2c932e3306250d24992b2bdbc534ced188b35d3b1f4958a5680c99356afd3097d11c84aee31"
+
+ "1ce51ec8cfac8149e3d421d58ec4cb5df2119f4c4d6371da3406297f87a35b6453a9a91bfce9b3b6ac81945b9c8c8237d5818b7321198635614148a8001e3da7"
+ "8b5371fe7b1858dc61dcf4153b58f9c7a5ba564299d657c2bc4eac2328801346e9ca3f6f441dcca710e89495e5b7f9d35b002a8e031eb3cbd4a4fa850566309a"
+ "60bb47bec6e35ccc460ac066d7205d084ab8bdc7d1749918ce0497983a6e7eb770ca9fd996f44b05dbdbfc35390bf2d02b7e8abc619fa6d9df298988d5f19053"
+
+ "919319ddcaac3f7c5b1c1998fced9920f3e7e9d4660c83e380495fc3a14d5f4e82736ac9435fdb78512576f1d90f80b1ad017529f2b42e013b844ed3ec4bc99f"
)
+validpgpkeys=(
+ 647F28654894E3BD457199BE38DBBDC86092693E # kernel
+)
+
+case "${CARCH}" in
+ x86_64) _KARCH=x86_64;;
+ aarch64) _KARCH=arm64;;
+ s390|s390x) _KARCH=s390;;
+ ppc64le) _KARCH=powerpc;;
+esac
+
+_kernel_prepare(){
+ # kata2-linux-container prep (ref: https://github.com/kata-containers/packaging/tree/master/kernel )
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ #for p in $(find "${srcdir}/${pkgbase}-${_pkgver}/tools/packaging/kernel/patches" -type f -name "*.patch"); do
+ # patch -p1 <"${p}"
+ #done
+
+ # 5.4.71
+ #patch -p1 <"${srcdir}/0001-config-preemption.diff"
+
+ # kernel config prep from upstream ("${srcdir}/${pkgbase}-${_pkgver}/tools/packaging/obs-packaging/linux-container/kata-linux-container.spec-template")
+ make -s mrproper
+ rm -f .config
+
+ local -r _KCONFIG="$(find "${srcdir}/${pkgbase}-${_pkgver}/tools/packaging/kernel/configs" -type f -name "${_KARCH}_kata_kvm_${_kata_kernel_ver%.*}.x")"
+ if [ -z "${_KCONFIG}" ]; then
+ KCONFIG_CONFIG=.config ARCH=${_KARCH} scripts/kconfig/merge_config.sh -r -n "${srcdir}/${pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/common/"*.conf "${srcdir}/${pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/${_KARCH}/"*.conf
+ else
+ install -Dm 0644 "${_KCONFIG}" .config
+ fi
+ make -s ARCH="${_KARCH}" oldconfig
+}
prepare(){
+ _kernel_prepare
+
#install -dm0755 "${srcdir}/bin"
#ln -sf "$(command -v yq)" "${srcdir}/bin/yq"
- install -dm0755 "${srcdir}/src/${_gh_org}"
- for i in ksm-throttler proxy runtime shim; do
- rm -rf "${srcdir}/src/${_gh_org}/${i}"
- mv "${srcdir}/${i}-${_pkgver}" "${srcdir}/src/${_gh_org}/${i}"
- done
- cd "${srcdir}/src/${_gh_org}/runtime"
- #patch -p1 <"${srcdir}/3082.patch"
+ # agent-based initrd
+ BINSRC="${srcdir}/${pkgbase}-${_pkgver}/src/agent/target/${_KARCH}-unknown-linux-gnu/release/kata-agent" envsubst <"${srcdir}/install_kata-agent.tpl" >"${srcdir}/install_kata-agent"
+ install -Dm0644 "${srcdir}/install_kata-agent" "${srcdir}/initcpio-agent/install/kata-agent"
+
+ # systemd units
+ install -Dm0644 "${srcdir}/kata-agent.service.in" "${srcdir}/${pkgbase}-${_pkgver}/src/agent/kata-agent.service.in"
+ install -Dm0644 "${srcdir}/kata-containers.target" "${srcdir}/${pkgbase}-${_pkgver}/src/agent/kata-containers.target"
+
+ # systemd-based initrd
+ SRCDIR="${srcdir}/${pkgbase}-${_pkgver}/src/agent" KARCH="${_KARCH}" envsubst <"${srcdir}/install_sd-kata-agent.tpl" >"${srcdir}/install_sd-kata-agent"
+ install -Dm0644 "${srcdir}/install_sd-kata-agent" "${srcdir}/initcpio-systemd/install/sd-kata-agent"
+
+ # remove subrepos without the `install` makefile target
+ sed -i \
+ -e '/COMPONENTS += trace-forwarder/d' \
+ -e '/TOOLS += agent-ctl/d' \
+ "${srcdir}/${pkgbase}-${_pkgver}/Makefile"
+ install -m0755 "${srcdir}/image_builder.sh" "${srcdir}/${pkgbase}-${_pkgver}/tools/osbuilder/image-builder/image_builder.sh"
+}
+
+_kata_image_build() {
+ install -dm0755 "${srcdir}/pkgcache" "${srcdir}/alpmdb" "${srcdir}/rootfs"
+ fakeroot -- pacman -r "${srcdir}/rootfs" -b "${srcdir}/alpmdb" --cachedir "${srcdir}/pkgcache" --noconfirm -Sy systemd chrony iptables kmod libseccomp
+ pushd "${srcdir}/rootfs/sbin"
+ ln -sf ../lib/systemd/systemd init
+ popd
+
+ install -Dm0755 "${srcdir}/${pkgbase}-${_pkgver}/src/agent/target/${_KARCH}-unknown-linux-gnu/release/kata-agent" "${srcdir}/rootfs/usr/bin/kata-agent"
+ install -Dm0644 "${srcdir}/${pkgbase}-${_pkgver}/src/agent/kata-containers.target" "${srcdir}/rootfs/usr/lib/systemd/system/kata-containers.target"
+ sed -e 's#@BINDIR@#/usr/bin#' -e 's#@AGENT_NAME@#kata-agent#' "${srcdir}/${pkgbase}-${_pkgver}/src/agent/kata-agent.service.in" >"${srcdir}/rootfs/usr/lib/systemd/system/kata-agent.service"
+
+ # rootfs image (builds filesystem with uid:gid of building system user! beware!)
+ cd "${srcdir}/${pkgbase}-${_pkgver}/tools/osbuilder/image-builder"
+ ./image_builder.sh -f ext4 "${srcdir}/rootfs"
}
build(){
- for i in ksm-throttler proxy runtime shim; do
- cd "${srcdir}/src/${_gh_org}/${i}"
- GOPATH="${srcdir}" make DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
- done
+ cd "${srcdir}/${pkgbase}-${_pkgver}"
+ GOPATH="${srcdir}" make BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
+
+ # kernel build
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ make -s ARCH="${_KARCH}"
+
+ mkinitcpio -c "${srcdir}/mkinitcpio-agent.conf" -g "${srcdir}/initrd-arch-agent.img" -D "${srcdir}/initcpio-agent"
+ #mkinitcpio -c "${srcdir}/mkinitcpio-systemd.conf" -g "${srcdir}/initrd-arch-systemd.img" -D "${srcdir}/initcpio-systemd"
+ #_kata_image_build
+}
+
+package_kata-agent(){
+ cd "${srcdir}/${pkgbase}-${_pkgver}/src/agent"
+ GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
+
+ # install hooks
+ install -dm0755 "${pkgdir}/usr/lib/initcpio/install"
+ BINSRC="/usr/bin/kata-agent" envsubst <"${srcdir}/install_kata-agent.tpl" >"${pkgdir}/usr/lib/initcpio/install/kata-agent"
+ #SRCDIR="${srcdir}/${pkgbase}-${_pkgver}/src/agent" KARCH="${_KARCH}" envsubst <"${srcdir}/install_sd-kata-agent.tpl" >"${srcdir}/install_sd-kata-agent"
}
-package_kata-ksm-throttler(){
- cd "${srcdir}/src/${_gh_org}/ksm-throttler"
- GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
- install -d -m 0755 "${pkgdir}/var/lib/vc/{firecracker,sbs,uuid}"
+package_kata-containers-image(){
+ install=kata2-guest.install
+ local -r _img_filename="kata-containers-${_pkgver%%~*}-arch-systemd-image.img" _initrd_filename="kata-containers-${_pkgver%%~*}-arch-agent-initrd.img"
+ install -Dm 0644 "${srcdir}/${pkgbase}-${_pkgver}/tools/osbuilder/image-builder/kata-containers.img" "${pkgdir}/usr/share/kata-containers/${_img_filename}"
+ #install -Dm 0644 "${srcdir}/initrd-arch-agent.img" "${pkgdir}/usr/share/kata-containers/${_initrd_filename}"
+ pushd "${pkgdir}/usr/share/kata-containers"
+ ln -sf "${_img_filename}" "kata-containers-arch.img"
+ #ln -sf "${_initrd_filename}" "kata-containers-arch-initrd.img"
+ popd
}
-package_kata-proxy(){
- cd "${srcdir}/src/${_gh_org}/proxy"
- GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
+package_kata-linux-container(){
+ install -Dm 0644 "${srcdir}/linux-${_kata_kernel_ver}/arch/${_KARCH}/boot/bzImage" "${pkgdir}/usr/share/kata-containers/vmlinux-${_kata_kernel_ver}.container"
+ #install -Dm 0644 "${srcdir}/linux-${_kata_kernel_ver}/vmlinux" "${pkgdir}/usr/share/kata-containers/vmlinux-${_kata_kernel_ver}.container"
+ pushd "${pkgdir}/usr/share/kata-containers"
+ ln -sf "vmlinux-${_kata_kernel_ver}.container" vmlinux.container
+ if [ "${_KARCH}" = "powerpc" ]; then
+ ln -sf "vmlinux-${_kata_kernel_ver}.container" "vmlinuz-${_kata_kernel_ver}.container"
+ ln -sf "vmlinuz-${_kata_kernel_ver}.container" vmlinuz.container
+ else
+ # param out bzImage for other archs?
+ install -Dm 0644 "${srcdir}/linux-${_kata_kernel_ver}/arch/${_KARCH}/boot/bzImage" "${pkgdir}/usr/share/kata-containers/vmlinuz-${_kata_kernel_ver}.container"
+ ln -sf "vmlinuz-${_kata_kernel_ver}.container" vmlinuz.container
+ fi
+ popd
}
package_kata-runtime(){
- depends=('qemu-headless' "kata-proxy=${pkgver}" "kata-shim=${pkgver}" "kata-linux-container" "kata-containers-image")
+ depends=('qemu-headless' "kata-linux-container" "kata-containers-image")
optdepends=(
- "kata-ksm-throttler=${pkgver}"
- 'firecracker<0.22.0'
- 'cloud-hypervisor<0.9.0'
+ 'firecracker<0.24.0'
+ 'cloud-hypervisor<16.0'
)
- install=kata-runtime.install
- cd "${srcdir}/src/${_gh_org}/runtime"
- GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
-}
-
-package_kata-shim(){
- cd "${srcdir}/src/${_gh_org}/shim"
- GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
+ install=kata2-runtime.install
+ cd "${srcdir}/${pkgbase}-${_pkgver}/src/runtime"
+ GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
}