aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix30
1 files changed, 22 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
index a316952a010..54663f9c5e6 100644
--- a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -1,22 +1,32 @@
-{ stdenv, fetchFromGitHub, python }:
+{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
stdenv.mkDerivation rec {
- version = "0.12";
+ version = "0.18";
pname = "charliecloud";
src = fetchFromGitHub {
owner = "hpc";
repo = "charliecloud";
rev = "v${version}";
- sha256 = "177rcf1klcxsp6x9cw75cmz3y2izgd1hvi1rb9vc6iz9qx1nmk3v";
+ sha256 = "0x2kvp95ld0yii93z9i0k9sknfx7jkgy4rkw9l369fl7f73ghsiq";
};
- buildInputs = [ python ];
+ 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 = ''
- substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
patchShebangs test/
+ substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
'';
makeFlags = [
@@ -24,12 +34,16 @@ stdenv.mkDerivation rec {
"LIBEXEC_DIR=lib/charliecloud"
];
+ # Charliecloud calls some external system tools.
+ # Here we wrap those deps so they are resolved inside nixpkgs.
postInstall = ''
- mkdir -p $out/share/charliecloud
- mv $out/lib/charliecloud/examples $out/share/charliecloud
- mv $out/lib/charliecloud/test $out/share/charliecloud
+ 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 = ''