Created
June 6, 2020 23:04
-
-
Save truatpasteurdotfr/1638e84aaa020527b1d94c9a7b81d31e to your computer and use it in GitHub Desktop.
ABUILD singularity 3.5.3 (build fines on 3.11/fails on 3.12)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Contributor: "Tru Huynh <[email protected]>" | |
# Maintainer: "Tru Huynh <[email protected]>" | |
pkgname=singularity | |
pkgver=3.5.3 | |
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 cryptsetup" | |
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="b8bb44539e78eaf74c1b97e5bae8fae1f390412456d76b573fffe2a90240b182db1aec60aee80715547c3edfbaa0607506e2727a575bc951223f9a7c3be0a97e singularity-3.5.3.tar.gz" |
but
APKBUILD:options="suid !check" # no testsuite
alpine-virt:~/singularity-build/3.5.3$ file /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
/home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid: setuid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID[sha1]=19d1248c3c3bfa78e03575af843eeab576503fb1, not stripped
alpine-virt:~/singularity-build/3.5.3$ scanelf --nobanner --etype ET_EXEC /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
ET_EXEC /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
alpine-virt:~/singularity-build/3.5.3$ ls -ld /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
-rwsr-xr-x 1 tru wheel 16610496 Jun 6 22:57 /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
3.11: ET_DYN usr/libexec/singularity/bin/starter-suid
go version go1.13.10 linux/amd64
3.12: ET_EXEC /home/tru/singularity-build/3.5.3/pkg/singularity/usr/libexec/singularity/bin/starter-suid
go version go1.13.11 linux/amd64
#alpine-devel: GOFLAGS was added on alpine 3.12
alpine-virt:~$ grep GO /etc/abuild.conf
export GOFLAGS="-buildmode=pie"
singularity-go-buildmode.patch
--- singularity.orig/mlocal/frags/go_common_opts.mk
+++ singularity/mlocal/frags/go_common_opts.mk
@@ -3,7 +3,7 @@
GO_TAGS := containers_image_openpgp sylog imgbuild_engine oci_engine singularity_engine fakeroot_engine
GO_TAGS_SUID := containers_image_openpgp sylog singularity_engine fakeroot_engine
GO_LDFLAGS :=
-GO_BUILDMODE := -buildmode=default
+GO_BUILDMODE := -buildmode=pie
GO_GCFLAGS :=
GO_ASMFLAGS :=
GO_MODFLAGS := $(if $(wildcard $(SOURCEDIR)/vendor/modules.txt),-mod=vendor,-mod=readonly)
APKBUILD:
source="${pkgname}-${pkgver}.tar.gz::https://github.com/sylabs/singularity/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz
singularity-go-buildmode.patch"
...
82c7fa0d695ad80395ae494abd3442e059581dae004e4f8eaecb31f777838e9f844a91c9a4c6ca4a0c4538c1ff4a6ddb5c926686387e89e07ce36b7f0522429c singularity-go-buildmode.patch"
works for me
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
failure on 3.12: