singularity: 2.6.0 -> 3.0.1
This commit is contained in:
@@ -1,62 +1,78 @@
|
||||
{ stdenv
|
||||
{stdenv
|
||||
, removeReferencesTo
|
||||
, lib
|
||||
, fetchgit
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gnutar
|
||||
, which
|
||||
, gnugrep
|
||||
, utillinux
|
||||
, openssl
|
||||
, coreutils
|
||||
, python
|
||||
, e2fsprogs
|
||||
, gawk
|
||||
, go
|
||||
, which
|
||||
, makeWrapper
|
||||
, squashfsTools
|
||||
, gzip
|
||||
, gnused
|
||||
, curl
|
||||
, utillinux
|
||||
, libarchive
|
||||
, file
|
||||
}:
|
||||
, buildGoPackage}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
with lib;
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "singularity-${version}";
|
||||
version = "2.6.0";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [ ./env.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
sed -i 's/-static//g' src/Makefile.am
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
configureFlags = [ "--localstatedir=/var" ];
|
||||
installFlags = "CONTAINER_MOUNTDIR=dummy CONTAINER_FINALDIR=dummy CONTAINER_OVERLAY=dummy SESSIONDIR=dummy";
|
||||
|
||||
fixupPhase = ''
|
||||
patchShebangs $out
|
||||
for f in $out/libexec/singularity/helpers/help.sh $out/libexec/singularity/cli/*.exec $out/libexec/singularity/bootstrap-scripts/*.sh ; do
|
||||
chmod a+x $f
|
||||
sed -i 's| /sbin/| |g' $f
|
||||
sed -i 's| /bin/bash| ${stdenv.shell}|g' $f
|
||||
wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath buildInputs}
|
||||
done
|
||||
'';
|
||||
version = "3.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "singularityware";
|
||||
owner = "sylabs";
|
||||
repo = "singularity";
|
||||
rev = version;
|
||||
sha256 = "0bi7acgppbkfbra8r29s1ldq02lazdww0z2h1rfvv8spr8dzzi94";
|
||||
rev = "v${version}";
|
||||
sha256 = "1wpsd0il2ipa2n5cnbj8dzs095jycdryq2rx62kikbq7ahzz4fsi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook makeWrapper ];
|
||||
buildInputs = [ coreutils gnugrep python e2fsprogs which gnutar squashfsTools gzip gnused curl utillinux libarchive file ];
|
||||
goPackagePath = "github.com/sylabs/singularity";
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper ];
|
||||
propagatedBuildInputs = [ coreutils squashfsTools ];
|
||||
|
||||
postConfigure = ''
|
||||
find . -name vendor -type d -print0 | xargs -0 rm -rf
|
||||
|
||||
cd go/src/github.com/sylabs/singularity
|
||||
|
||||
patchShebangs .
|
||||
sed -i 's|defaultEnv := "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"|defaultEnv := "${stdenv.lib.makeBinPath propagatedBuildInputs}"|' src/cmd/singularity/cli/singularity.go
|
||||
|
||||
./mconfig -V ${version} -p $bin --localstatedir=/var
|
||||
touch builddir/.dep-done
|
||||
touch builddir/vendors-done
|
||||
|
||||
# Don't install SUID binaries
|
||||
sed -i 's/-m 4755/-m 755/g' builddir/Makefile
|
||||
|
||||
# Point to base gopath
|
||||
sed -i "s|^cni_vendor_GOPATH :=.*\$|cni_vendor_GOPATH := $NIX_BUILD_TOP/go/src/github.com/containernetworking/plugins/plugins|" builddir/Makefile
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
make -C builddir
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
make -C builddir install LOCALSTATEDIR=$bin/var
|
||||
chmod 755 $bin/libexec/singularity/bin/starter-suid
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
find $bin/ -type f -executable -exec remove-references-to -t ${go} '{}' + || true
|
||||
|
||||
# These etc scripts shouldn't have their paths patched
|
||||
cp etc/actions/* $bin/etc/singularity/actions/
|
||||
'';
|
||||
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://singularity.lbl.gov/;
|
||||
description = "Designed around the notion of extreme mobility of compute and reproducible science, Singularity enables users to have full control of their operating system environment";
|
||||
license = "BSD license with 2 modifications";
|
||||
homepage = http://www.sylabs.io/;
|
||||
description = "Application containers for linux";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.jbedo ];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user