diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization/singularity/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/virtualization/singularity/default.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix new file mode 100644 index 000000000000..ab9416fd3d68 --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix @@ -0,0 +1,78 @@ +{stdenv +, removeReferencesTo +, lib +, fetchgit +, fetchFromGitHub +, utillinux +, openssl +, coreutils +, gawk +, go +, which +, makeWrapper +, squashfsTools +, buildGoPackage}: + +with lib; + +buildGoPackage rec { + name = "singularity-${version}"; + 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 ]; + + 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://www.sylabs.io/; + description = "Application containers for linux"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = [ maintainers.jbedo ]; + }; +} |