about summary refs log tree commit diff
path: root/pkgs/tools/package-management/conda/default.nix
diff options
context:
space:
mode:
authorHolger Hoefling <hhoeflin@gmail.com>2022-04-24 20:36:29 +0200
committerHolger Hoefling <hhoeflin@gmail.com>2022-04-24 20:36:29 +0200
commitcfe0988e481a669b257bcc4e0f2b33befe97a11f (patch)
treec912cb90643b57fc0991efb6a306fed8e2986e4b /pkgs/tools/package-management/conda/default.nix
parente66cf9c6c81a99864b15c7c75bc7f0f192ba30e6 (diff)
update conda from 4.6.14 to 4.11.0
Diffstat (limited to 'pkgs/tools/package-management/conda/default.nix')
-rw-r--r--pkgs/tools/package-management/conda/default.nix44
1 files changed, 29 insertions, 15 deletions
diff --git a/pkgs/tools/package-management/conda/default.nix b/pkgs/tools/package-management/conda/default.nix
index bc11203bb4ae2..744b0978c9b60 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";