# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=apptainer
pkgver=1.3.6
pkgrel=5
pkgdesc="Application containers for Linux"
url="https://apptainer.org/"
# loongarch64: blocked by github.com/cilium/ebpf
arch="all !loongarch64"
license="BSD-3-Clause AND BSD-3-Clause-LBNL"
# Lots of tests fail due to:
# - no root privilege
# - no apptainer configuration at /etc/apptainer/apptainer.conf
options="net suid !check"
depends="fakeroot squashfs-tools"
makedepends="
	bash
	cni-plugins
	cryptsetup
	go
	libseccomp-dev
	"
subpackages="
	$pkgname-doc
	$pkgname-suid:_suid
	$pkgname-bash-completion
	"
source="apptainer-$pkgver.tar.gz::https://github.com/apptainer/apptainer/archive/refs/tags/v$pkgver.tar.gz
	update-container-storage.patch
	"

# secfixes:
#   1.1.8-r0:
#     - CVE-2023-30549
#   1.1.6-r0:
#     - CVE-2022-23538
#   1.1.2-r0:
#     - CVE-2022-39237

export GOPATH="$srcdir"
export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

prepare() {
	default_prepare
	echo "$pkgver" > "$builddir"/VERSION
}

build() {
	# override git dir so it picks up our version above
	GIT_DIR=. ./mconfig \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var \
		--without-network \
		--with-suid

	make -e -C builddir
}

package() {
	make -C builddir DESTDIR="$pkgdir" GOFLAGS="$GOFLAGS" install

	install -Dm644 -t "$pkgdir"/usr/share/doc/$pkgname README.md
}

_suid() {
	pkgdesc="$pkgdesc (SUID helper binary)"
	depends="$pkgname=$pkgver-r$pkgrel"

	amove usr/libexec/apptainer/bin/starter-suid
}

sha512sums="
3c1e4f08b9337dd1de9340ab411bd67ee29770231a45594273ea8fd17d822cef7a68e8467d96eb8e6e7fe81c7954f38ddf98cc2bd96919dd1968ec9b958c4362  apptainer-1.3.6.tar.gz
bc2abde7b66f878d1fa28a45f6e7c7a023eea7d10e9aa82cef5b62ae55f31efd162f28e3ffb571245eed7048144d696b569ee4599419fe80aba5bbabed55f836  update-container-storage.patch
"
