From cfe0988e481a669b257bcc4e0f2b33befe97a11f Mon Sep 17 00:00:00 2001 From: Holger Hoefling Date: Sun, 24 Apr 2022 20:36:29 +0200 Subject: [PATCH] update conda from 4.6.14 to 4.11.0 --- .../package-management/conda/default.nix | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/pkgs/tools/package-management/conda/default.nix b/pkgs/tools/package-management/conda/default.nix index bc11203bb4ae..744b0978c9b6 100644 --- a/pkgs/tools/package-management/conda/default.nix +++ b/pkgs/tools/package-management/conda/default.nix @@ -8,10 +8,11 @@ , libarchive , libGL , xorg +, zlib # Conda installs its packages and environments under this directory , installationPath ? "~/.conda" # Conda manages most pkgs itself, but expects a few to be on the system. -, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ] +, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL zlib] # Any extra nixpkgs you'd like available in the FHS env for Conda to use , extraPkgs ? [ ] }: @@ -30,24 +31,37 @@ # $ conda-shell # $ conda install spyder let - version = "4.6.14"; + version = "4.11.0"; src = fetchurl { - url = "https://repo.continuum.io/miniconda/Miniconda3-${version}-Linux-x86_64.sh"; - sha256 = "1gn43z1y5zw4yv93q1qajwbmmqs83wx5ls5x4i4llaciba4j6sqd"; + url = "https://repo.continuum.io/miniconda/Miniconda3-py39_${version}-Linux-x86_64.sh"; + sha256 = "sha256-TunDqlMynNemO0mHfAurtJsZt+WvKYB7eTp2vbHTYrQ="; }; + conda = ( + let + libPath = lib.makeLibraryPath [ + zlib # libz.so.1 + ]; + in + runCommand "conda-install" { buildInputs = [ makeWrapper zlib]; } + # on line 10, we have 'unset LD_LIBRARY_PATH' + # we have to comment it out however in a way that the number of bytes in the + # file does not change. So we replace the 'u' in the line with a '#' + # The reason is that the binary payload is encoded as number + # of bytes from the top of the installer script + # and unsetting the library path prevents the zlib library from being discovered + '' + mkdir -p $out/bin - conda = runCommand "conda-install" { buildInputs = [ makeWrapper ]; } - '' - mkdir -p $out/bin - cp ${src} $out/bin/miniconda-installer.sh - chmod +x $out/bin/miniconda-installer.sh + sed 's/unset LD_LIBRARY_PATH/#nset LD_LIBRARY_PATH/' ${src} > $out/bin/miniconda-installer.sh + chmod +x $out/bin/miniconda-installer.sh - makeWrapper \ - $out/bin/miniconda-installer.sh \ - $out/bin/conda-install \ - --add-flags "-p ${installationPath}" \ - --add-flags "-b" - ''; + makeWrapper \ + $out/bin/miniconda-installer.sh \ + $out/bin/conda-install \ + --add-flags "-p ${installationPath}" \ + --add-flags "-b" \ + --prefix "LD_LIBRARY_PATH" : "${libPath}" + ''); in buildFHSUserEnv { name = "conda-shell";