summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorzer0def2020-08-29 09:15:23 +0200
committerzer0def2020-08-29 18:35:21 +0200
commitc64ed7d7120045ef2c08123b7184846ed9fc2004 (patch)
tree15b5509816e35419640d2ed91ac3a8c25104d5e0 /PKGBUILD
parent24d469f4a12161f45b8cb9ba6d1fba2df6851c19 (diff)
downloadaur-c64ed7d7120045ef2c08123b7184846ed9fc2004.tar.gz
Bypass broken yq makedep pull.
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD145
1 files changed, 135 insertions, 10 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 2d1f27d3e95d..334faa7c4b25 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,33 +1,104 @@
pkgbase=kata-containers-git
-pkgname=(kata-ksm-throttler-git kata-proxy-git kata-runtime-git kata-shim-git kata-agent-git)
-pkgver=1.11.0~alpha1~runtime.r52.6e398f7c
+pkgname=(
+ kata-agent-git
+ kata-ksm-throttler-git
+ kata-runtime-git
+ kata-proxy-git
+ kata-shim-git
+
+ #kata-linux-container-git
+ #kata-containers-image-git
+)
+pkgver=1.12.0~alpha0~runtime.r72.a1d993fa
pkgrel=1
pkgdesc="Lightweight virtual machines for containers (Git version)"
arch=('x86_64')
url="https://katacontainers.io/"
license=('Apache')
-makedepends=('go')
+makedepends=('go' 'yq2-bin' 'bc')
_gh_org="github.com/kata-containers"
+_kata_kernel_ver="5.4.60"
source=(
"agent::git+https://${_gh_org}/agent"
"ksm-throttler::git+https://${_gh_org}/ksm-throttler"
"osbuilder::git+https://${_gh_org}/osbuilder"
+ "packaging::git+https://${_gh_org}/packaging"
"proxy::git+https://${_gh_org}/proxy"
"runtime::git+https://${_gh_org}/runtime"
"shim::git+https://${_gh_org}/shim"
)
-sha512sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
+sha512sums=(SKIP SKIP SKIP SKIP SKIP SKIP SKIP)
+
+if [[ " ${pkgname[@]} " =~ " kata-linux-container-git " ]]; then
+ source+=(
+ "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.xz"
+ "http://mirrors.evowise.com/archlinux/iso/2020.08.01/archlinux-bootstrap-2020.08.01-x86_64.tar.gz"
+ "http://mirrors.evowise.com/archlinux/iso/2020.08.01/archlinux-bootstrap-2020.08.01-x86_64.tar.gz.sig"
+
+ "0001-osbuilder-goversion.patch"
+ "rootfs-builder-config.sh"
+ "rootfs-builder-Dockerfile.in" # unfit for use yet
+ "rootfs-builder-lib.sh"
+ )
+ sha512sums+=(
+ fb9ebada932c17d0adbc099a1df31a7d97afe3be694665b1f8171e7159bda84a36a435ceecfdce6d492d8e5075ed4253c68029dcdf952e75a3fe7ee36646327b
+ 24044fb5a9870dbe13ec7eafb60d99e664cec10d50d80a73a0445d1368c0fa95881003d92e0a1c0446f76c1bbe89b098f35ceffd0ef24e9beaa51f1a83494b98
+ SKIP
+
+ 0cac0aa5d0f7f0d49da9185bc71ce05a089d6339ad0d660905e18724b30381cbe3fb84b56b0de21def793ca52c945f02b99f81a6b4e77e2398da250ec8e4ff6b
+ 375990194988a019f2429ed85eb996222929a028a52ec609de106df8939704db6654af6d92aec5e192693d7758fc9561f236bbb29df319c2d506b5b2d2b16553
+ 352c9ac91eb03d5fd28da6e6f1d1fce7daa0d557d34457e624dadc0dd28e6051cdcf580029c793558980391d86df54d22b59daaf85b00590bec430c3f4f06c89
+ e987501a16828636b3da5cfa7b4c3af5e981aab20dee4b97d10daf8625de92e77203f7ccbfa2beff8700b32371ffa4d9f94f97216fe6abb13a475984cdf5d6e3
+ )
+ noextract=('archlinux-bootstrap-2020.08.01-x86_64.tar.gz')
+ _build_artifacts="yes"
+fi
+
+case "${CARCH}" in
+ x86_64) _KARCH=x86_64;;
+ aarch64) _KARCH=arm64;;
+ s390|s390x) _KARCH=s390;;
+ ppc64le) _KARCH=powerpc;;
+esac
pkgver(){
- cd "${srcdir}/src/${_gh_org}/runtime"
- GITTAG="$(git describe --abbrev=0 --tags 2>/dev/null)"
- printf '%s.r%s.%s' \
- "${GITTAG/-/\~}~runtime" \
- "$(git rev-list --count ${GITTAG}..)" \
- "$(git rev-parse --short HEAD)"
+ cd "${srcdir}/src/${_gh_org}/runtime"
+ GITTAG="$(git describe --abbrev=0 --tags 2>/dev/null)"
+ printf '%s.r%s.%s' \
+ "${GITTAG/-/\~}~runtime" \
+ "$(git rev-list --count ${GITTAG}..)" \
+ "$(git rev-parse --short HEAD)"
}
prepare(){
+ if [ "${_build_artifacts}" = "yes" ]; then
+ # kata-linux-container prep (ref: https://github.com/kata-containers/packaging/tree/master/kernel )
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ #for p in $(find "${srcdir}/packaging/obs-packaging/linux-container/patches" -type f -name "*.patch"); do
+ # patch -p1 <"${p}"
+ #done
+
+ # kernel config prep from upstream ("${srcdir}/packaging/obs-packaging/linux-container/kata-linux-container.spec-template")
+ make -s mrproper
+ rm -f .config
+
+ _KCONFIG="$(find "${srcdir}/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}/packaging/kernel/configs/fragments/common/"*.conf "${srcdir}/packaging/kernel/configs/fragments/${_KARCH}/"*.conf
+ else
+ install -D -m 0644 "${_KCONFIG}" .config
+ fi
+ make -s ARCH="${_KARCH}" oldconfig
+
+ # kata-container-image osbuilder fix
+ cd "${srcdir}/osbuilder"
+ patch -p1 < "${srcdir}/0001-osbuilder-goversion.patch"
+ fi
+
+ # kata-runtime makedep
+ mkdir -p "${srcdir}/bin"
+ ln -sf "$(type -p yq)" "${srcdir}/bin/yq"
+
mkdir -p "${srcdir}/src/${_gh_org}"
for i in agent ksm-throttler proxy runtime shim; do
rm -rf "${srcdir}/src/${_gh_org}/${i}"
@@ -37,8 +108,36 @@ prepare(){
build(){
cd "${srcdir}/src/${_gh_org}/agent"
+ echo "Building kata-agent…"
GOPATH="${srcdir}" LDFLAGS="" make
+ if [ "${_build_artifacts}" = "yes" ]; then
+ # kernel build
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ echo "Building kata-linux-container…"
+ make -s ARCH="${_KARCH}"
+
+ # rootfs and initrd build (it's horrid, but somewhat works)
+ echo "Building kata-containers-image…"
+ _ROOTFS_DIR="${srcdir}/osbuilder/rootfs-builder/rootfs"
+
+ # build rootfs
+ install -D -m 0644 "${srcdir}/rootfs-builder-config.sh" "${srcdir}/osbuilder/rootfs-builder/archlinux/config.sh"
+ install -D -m 0644 "${srcdir}/rootfs-builder-Dockerfile.in" "${srcdir}/osbuilder/rootfs-builder/archlinux/Dockerfile.in"
+ install -D -m 0644 "${srcdir}/rootfs-builder-lib.sh" "${srcdir}/osbuilder/rootfs-builder/archlinux/rootfs_lib.sh"
+
+ cd "${srcdir}/osbuilder/rootfs-builder"
+ GOPATH="${srcdir}" AGENT_SOURCE_BIN="${srcdir}/src/${_gh_org}/agent/kata-agent" ROOTFS_DIR="${_ROOTFS_DIR}" ./rootfs.sh archlinux
+
+ # rootfs image (need to bypass root requirement somehow)
+ cd "${srcdir}/osbuilder/image-builder"
+ #./image_builder.sh "${_ROOTFS_DIR}"
+
+ # initrd
+ cd "${srcdir}/osbuilder/initrd-builder"
+ ./initrd_builder.sh "${_ROOTFS_DIR}"
+ fi
+
for i in ksm-throttler proxy runtime shim; do
echo "Building kata-${i}…"
cd "${srcdir}/src/${_gh_org}/${i}"
@@ -53,6 +152,16 @@ package_kata-agent-git(){
GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib"
}
+package_kata-containers-image-git(){
+ conflicts=('kata-containers-image')
+ provides=('kata-containers-image')
+ #install -D -m 0644 "${srcdir}/osbuilder/image-builder/kata-containers.img" "${pkgdir}/usr/share/kata-containers/kata-containers-image_archlinux_${pkgver%%~*}_agent_git.img"
+ install -D -m 0644 "${srcdir}/osbuilder/initrd-builder/kata-containers-initrd.img" "${pkgdir}/usr/share/kata-containers/kata-containers-initrd_archlinux_${pkgver%%~*}_agent_git.initrd"
+ cd "${pkgdir}/usr/share/kata-containers"
+ #ln -sf "kata-containers-image_archlinux_${pkgver%%~*}_agent_git.img" "kata-containers.img"
+ ln -sf "kata-containers-initrd_archlinux_${pkgver%%~*}_agent_git.initrd" "kata-containers-initrd.img"
+}
+
package_kata-ksm-throttler-git(){
conflicts=('kata-ksm-throttler')
provides=('kata-ksm-throttler')
@@ -61,6 +170,22 @@ package_kata-ksm-throttler-git(){
install -d -m 0755 "${pkgdir}/var/lib/vc/{firecracker,sbs,uuid}"
}
+package_kata-linux-container-git(){
+ conflicts=('kata-linux-container')
+ provides=('kata-linux-container')
+ install -D -m 0644 "${srcdir}/linux-${_kata_kernel_ver}/vmlinux" "${pkgdir}/usr/share/kata-containers/vmlinux-${_kata_kernel_ver}.container"
+ cd "${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 -D -m 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
+}
+
package_kata-proxy-git(){
conflicts=('kata-proxy')
provides=('kata-proxy')