forked from M-Labs/artiq-extrapkg
54 lines
1.9 KiB
Nix
54 lines
1.9 KiB
Nix
|
{
|
||
|
description = "Additional packages for ARTIQ";
|
||
|
|
||
|
inputs.artiq.url = git+https://github.com/m-labs/artiq.git;
|
||
|
|
||
|
outputs = { self, artiq }:
|
||
|
let
|
||
|
pkgs = import artiq.inputs.nixpkgs { system = "x86_64-linux"; };
|
||
|
|
||
|
condaDeps = with pkgs; [ zlib xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ];
|
||
|
# Use the full Anaconda distribution, which already contains conda-build and its many dependencies.
|
||
|
condaInstaller = pkgs.fetchurl {
|
||
|
url = "https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh";
|
||
|
sha256 = "sha256-/t+eNAA5VX97XoqKhq/6nSmfXpggFEvXuSrp9+4IrGA=";
|
||
|
};
|
||
|
condaInstallerEnv = pkgs.buildFHSUserEnv {
|
||
|
name = "conda-installer-env";
|
||
|
targetPkgs = pkgs: condaDeps;
|
||
|
};
|
||
|
condaInstalled = pkgs.stdenvNoCC.mkDerivation {
|
||
|
name = "conda-installed";
|
||
|
src = condaInstaller;
|
||
|
buildInputs = [ condaInstallerEnv ];
|
||
|
phases = [ "buildPhase" "installPhase" ];
|
||
|
buildPhase =
|
||
|
''
|
||
|
cp $src conda-installer.sh
|
||
|
chmod +x conda-installer.sh
|
||
|
# keep the same file length to avoid breaking embedded payload offsets
|
||
|
sed -i 0,/unset\ LD_LIBRARY_PATH/s//\#nset\ LD_LIBRARY_PATH/ conda-installer.sh
|
||
|
'';
|
||
|
installPhase =
|
||
|
''
|
||
|
conda-installer-env -c "./conda-installer.sh -p $out -b"
|
||
|
substituteInPlace $out/lib/python3.9/site-packages/conda/gateways/disk/__init__.py \
|
||
|
--replace "os.chmod(path, 0o2775)" "pass"
|
||
|
'';
|
||
|
};
|
||
|
condaBuilderEnv = pkgs.buildFHSUserEnv {
|
||
|
name = "conda-builder-env";
|
||
|
targetPkgs = pkgs: condaDeps ++ [ condaInstalled ];
|
||
|
};
|
||
|
|
||
|
in rec {
|
||
|
packages.x86_64-linux = {
|
||
|
inherit condaBuilderEnv;
|
||
|
};
|
||
|
|
||
|
hydraJobs = {
|
||
|
inherit (packages.x86_64-linux) condaBuilderEnv;
|
||
|
};
|
||
|
};
|
||
|
}
|