2016-11-14 01:26:59 +00:00
|
|
|
{ stdenv
|
|
|
|
, fetchFromGitHub
|
2017-11-07 03:47:20 +00:00
|
|
|
, autoreconfHook
|
|
|
|
, gnutar
|
|
|
|
, which
|
|
|
|
, gnugrep
|
|
|
|
, coreutils
|
|
|
|
, python
|
|
|
|
, e2fsprogs
|
|
|
|
, makeWrapper
|
|
|
|
, squashfsTools
|
|
|
|
, gzip
|
|
|
|
, gnused
|
|
|
|
, curl
|
|
|
|
, utillinux
|
|
|
|
}:
|
2016-11-14 01:26:59 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
name = "singularity-${version}";
|
2017-11-07 03:47:20 +00:00
|
|
|
version = "2.4";
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
patches = [ ./env.patch ];
|
|
|
|
|
|
|
|
preConfigure = ''
|
|
|
|
sed -i 's/-static//g' src/Makefile.am
|
|
|
|
patchShebangs .
|
|
|
|
'';
|
|
|
|
|
|
|
|
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
|
|
|
|
'';
|
2016-11-14 01:26:59 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "singularityware";
|
|
|
|
repo = "singularity";
|
|
|
|
rev = version;
|
2017-11-07 03:47:20 +00:00
|
|
|
sha256 = "1hi1ag1lb2x4djbz4x34wix83ymx0g9mzn2md6yrpiflc1d85rjz";
|
2016-11-14 01:26:59 +00:00
|
|
|
};
|
|
|
|
|
2017-11-07 03:47:20 +00:00
|
|
|
nativeBuildInputs = [ autoreconfHook makeWrapper ];
|
|
|
|
buildInputs = [ coreutils gnugrep python e2fsprogs which gnutar squashfsTools gzip gnused curl utillinux ];
|
2016-11-14 01:26:59 +00:00
|
|
|
|
|
|
|
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";
|
|
|
|
platforms = platforms.linux;
|
|
|
|
maintainers = [ maintainers.jbedo ];
|
|
|
|
};
|
|
|
|
}
|