# Contributor: "Tru Huynh <tru@pasteur.fr>"
# Maintainer: "Tru Huynh <tru@pasteur.fr>"
pkgname=singularity
pkgver=3.2.0
pkgrel=2
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
	c0f9abf5d9877372bff12127fd7294c2e962e1ab.patch"
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="854425ada71d0bbe05623674c64173320dfddb2b8aa05cc94d8fd0b1655b86763acd60280be783547c09e473b3cdc28210d391da32f217a31644731b7d732d3c  singularity-3.2.0.tar.gz
0ac10ce764caae55d2850d32d4d9c428d5cea4b2a6b0eec3e95bf0e0e0240ec8eaca3394db62fa65e7f7b9ab202e0df54117104e08a8c1e0f185ceee5116bbc9  c0f9abf5d9877372bff12127fd7294c2e962e1ab.patch"
