summary refs log tree commit diff
path: root/pkgs/applications/virtualization/charliecloud/default.nix
blob: a316952a010dfe2a4dae7b03501f2b9c22353c63 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{ stdenv, fetchFromGitHub, python }:

stdenv.mkDerivation rec {

  version = "0.12";
  pname = "charliecloud";

  src = fetchFromGitHub {
    owner = "hpc";
    repo = "charliecloud";
    rev = "v${version}";
    sha256 = "177rcf1klcxsp6x9cw75cmz3y2izgd1hvi1rb9vc6iz9qx1nmk3v";
  };

  buildInputs = [ python ];

  preConfigure = ''
    substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
    patchShebangs test/
  '';

  makeFlags = [
    "PREFIX=$(out)"
    "LIBEXEC_DIR=lib/charliecloud"
  ];

  postInstall = ''
    mkdir -p $out/share/charliecloud
    mv $out/lib/charliecloud/examples $out/share/charliecloud
    mv $out/lib/charliecloud/test $out/share/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;
  };

}