# Contributor: "Tru Huynh <tru@pasteur.fr>"
# Maintainer: "Tru Huynh <tru@pasteur.fr>"
pkgname=singularity
pkgver=3.1.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="fc425039802859135cf82c25e20e25d3970ef21338072747d771013cfc907dd13123a5893f7a6d7797143c9ffdc0a7b2111cbe00ad2da9a880bf86114f7264f0  singularity-3.1.1.tar.gz"
