aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
new file mode 100644
index 000000000000..a7e8260765fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
+
+stdenv.mkDerivation rec {
+
+ version = "0.19";
+ pname = "charliecloud";
+
+ src = fetchFromGitHub {
+ owner = "hpc";
+ repo = "charliecloud";
+ rev = "v${version}";
+ sha256 = "1rmvm0s1jdpzfg32b3hwsbdkzws7gsy4xq227hmzv3n2dv64svm6";
+ };
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper ];
+ buildInputs = [
+ docker
+ (python3.withPackages (ps: [ ps.lark-parser ps.requests ]))
+ ];
+
+ configureFlags = let
+ pythonEnv = python3.withPackages (ps: [ ps.lark-parser ps.requests ]);
+ in [
+ "--with-python=${pythonEnv}/bin/python3"
+ ];
+
+ preConfigure = ''
+ patchShebangs test/
+ substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "LIBEXEC_DIR=lib/charliecloud"
+ ];
+
+ # Charliecloud calls some external system tools.
+ # Here we wrap those deps so they are resolved inside nixpkgs.
+ postInstall = ''
+ for file in $out/bin/* ; do \
+ wrapProgram $file --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils docker gnused gnutar gzip findutils sudo ]}
+ done
+ '';
+
+ passthru.tests.charliecloud = nixosTests.charliecloud;
+
+ meta = {
+ description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
+ longDescription = ''
+ Charliecloud uses Linux user namespaces to run containers with no
+ privileged operations or daemons and minimal configuration changes on
+ center resources. This simple approach avoids most security risks
+ while maintaining access to the performance and functionality already
+ on offer.
+ '';
+ homepage = "https://hpc.github.io/charliecloud";
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.bzizou ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+
+}