# Contributor: "Tru Huynh <tru@pasteur.fr>"
# Maintainer: "Tru Huynh <tru@pasteur.fr>"
pkgname=singularity
pkgver=3.2.1
pkgrel=1
pkgdesc="Singularity: Application containers for Linux"
url="https://www.sylabs.io/singularity"
arch="x86_64"
# https://spdx.org/licenses/BSD-3-Clause-LBNL.html
license="BSD-3-Clause-LBNL"
depends="squashfs-tools"
makedepends="gawk go libc-dev linux-headers libressl-dev libuuid util-linux-dev libseccomp-dev"
install=""
subpackages="$pkgname-doc $pkgname-examples"
source="${pkgname}-${pkgver}.tar.gz::https://github.com/sylabs/singularity/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz
	"
options="suid !check" # no testsuite
builddir="$srcdir/go/src/github.com/sylabs/${pkgname}"

prepare() {
	mkdir -p "$srcdir/go/src/github.com/sylabs/${pkgname}"
	mv "$srcdir/$pkgname"  "$srcdir/go/src/github.com/sylabs"
        cd "$builddir"
	for i in $source; do
		case $i in
		*.patch)
			msg "Applying $i"
			patch -p1 -i "$srcdir"/$i || return 1
			;;
		esac
	done
        ./mconfig \
                -b $CBUILD \
                --prefix=/usr \
                --exec-prefix=/usr \
                --bindir=/usr/bin \
                --libexecdir=/usr/libexec \
                --sysconfdir=/etc \
                --sharedstatedir=/var/lib \
                --mandir=/usr/share/man \
                --localstatedir=/var \
		--libdir=/usr/lib \
                || return 1
}

build() {
	export GOPATH="$srcdir/go"
        cd $CBUILD && \
        make -j 1 || return 1
}

package() {
        cd "$builddir" && \
        cd $CBUILD && \
        make -j 1 DESTDIR="$pkgdir" install || return 1
}

doc() {
	arch="noarch"
        cd "$builddir" && \
        mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname" || return 1
	# Doc files
	_docs="CONTRIBUTING.md CONTRIBUTORS.md COPYRIGHT.md INSTALL.md LICENSE-LBNL.md LICENSE.md README.md VERSION"
	for _doc in $_docs; do
		install -Dm644 $_doc \
			"$subpkgdir"/usr/share/doc/$pkgname/$_doc || return 1
	done
	mkdir -p "$pkgdir"/usr/share/man/man1/ 
        cd "$builddir" && \
        cd $CBUILD && \
        make -j 1 DESTDIR="$pkgdir" install man || return 1
	gzip "$pkgdir"/usr/share/man/man1/*.1 || return 1
}

examples() {
	arch="noarch"
        # Put the examples into a seperate package
        cd "$builddir"
        mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"/examples || return 1
        mv examples/* "$subpkgdir"/usr/share/doc/"$pkgname"/examples || return 1
}


sha512sums="29beb748e460405334d8b6a633c5bdf6ac789474df40f9e2a4b28a45ac01f2fcf1f154f9a415e85f7cca95afd01e741f16aee5856e8304ebfd99c1083ed0e8e3  singularity-3.2.1.tar.gz"
