Skip to content

Commit

Permalink
singularity: 2.6.0 -> 3.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
jbedo committed Jan 30, 2019
1 parent 654f3c4 commit 5611397
Show file tree
Hide file tree
Showing 4 changed files with 733 additions and 74 deletions.
100 changes: 58 additions & 42 deletions pkgs/applications/virtualization/singularity/default.nix
@@ -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}:

with lib;

stdenv.mkDerivation rec {
buildGoPackage rec {
name = "singularity-${version}";
version = "2.6.0";
version = "3.0.1";

src = fetchFromGitHub {
owner = "sylabs";
repo = "singularity";
rev = "v${version}";
sha256 = "1wpsd0il2ipa2n5cnbj8dzs095jycdryq2rx62kikbq7ahzz4fsi";
};

goPackagePath = "github.com/sylabs/singularity";
goDeps = ./deps.nix;

buildInputs = [ openssl ];
nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper ];
propagatedBuildInputs = [ coreutils squashfsTools ];

enableParallelBuilding = true;
postConfigure = ''
find . -name vendor -type d -print0 | xargs -0 rm -rf
patches = [ ./env.patch ];
cd go/src/github.com/sylabs/singularity
preConfigure = ''
sed -i 's/-static//g' src/Makefile.am
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
'';

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
buildPhase = ''
make -C builddir
'';

src = fetchFromGitHub {
owner = "singularityware";
repo = "singularity";
rev = version;
sha256 = "0bi7acgppbkfbra8r29s1ldq02lazdww0z2h1rfvv8spr8dzzi94";
};
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/
'';

nativeBuildInputs = [ autoreconfHook makeWrapper ];
buildInputs = [ coreutils gnugrep python e2fsprogs which gnutar squashfsTools gzip gnused curl utillinux libarchive file ];

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 ];
};
Expand Down

0 comments on commit 5611397

Please sign in to comment.