From 475c8bfb7d13de76d6e0ff1c052ad95b2754d7e2 Mon Sep 17 00:00:00 2001 From: Christian Gram Kalhauge Date: Wed, 20 Jul 2016 14:21:53 +0200 Subject: [PATCH 1/4] Fix DLYD problem with haskell libraries on Darwin This commit fixes a problem that occurs with externally linked haskell libraries on Darwin. It does this by adding the libraries to the --extra-lib-dirs flag and the DYLD_LIBRARY_PATH environment variable. --- pkgs/development/haskell-modules/generic-builder.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 72110227140..2bcf6ee854f 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -193,6 +193,9 @@ stdenv.mkDerivation ({ fi if [ -d "$p/lib" ]; then configureFlags+=" --extra-lib-dirs=$p/lib" + if [[ ${ if stdenv.isDarwin then "yes" else "no"} = "yes" ]]; then + export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib; + fi fi done ${ghcCommand}-pkg --${packageDbFlag}="$packageConfDir" recache From de5a2ee03476180fef621a35d1efbdfdd4b1bb86 Mon Sep 17 00:00:00 2001 From: Christian Gram Kalhauge Date: Thu, 21 Jul 2016 11:39:52 +0200 Subject: [PATCH 2/4] Reduce computation time for non-darwin users --- pkgs/development/haskell-modules/generic-builder.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 2bcf6ee854f..faca3f2dff1 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -192,10 +192,12 @@ stdenv.mkDerivation ({ configureFlags+=" --extra-include-dirs=$p/include" fi if [ -d "$p/lib" ]; then - configureFlags+=" --extra-lib-dirs=$p/lib" - if [[ ${ if stdenv.isDarwin then "yes" else "no"} = "yes" ]]; then - export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib; - fi + configureFlags+=" --extra-lib-dirs=$p/lib"${ + if stdenv.isDarwin then + "; export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib;" + else + "" + } fi done ${ghcCommand}-pkg --${packageDbFlag}="$packageConfDir" recache From 9bca29d4efe614e12578b8dbf1d60df94b517ab6 Mon Sep 17 00:00:00 2001 From: Christian Gram Kalhauge Date: Thu, 21 Jul 2016 14:23:56 +0200 Subject: [PATCH 3/4] Change if to optionalString --- pkgs/development/haskell-modules/generic-builder.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index faca3f2dff1..48467acbca6 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -193,10 +193,8 @@ stdenv.mkDerivation ({ fi if [ -d "$p/lib" ]; then configureFlags+=" --extra-lib-dirs=$p/lib"${ - if stdenv.isDarwin then + stdenv.lib.optionalString stdenv.isDarwin "; export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib;" - else - "" } fi done From 1a088053586cc41c54144175769427ac787fef0f Mon Sep 17 00:00:00 2001 From: Christian Gram Kalhauge Date: Thu, 21 Jul 2016 14:56:45 +0200 Subject: [PATCH 4/4] Make the implementation clean --- pkgs/development/haskell-modules/generic-builder.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 48467acbca6..5eb4e1fac83 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -192,9 +192,9 @@ stdenv.mkDerivation ({ configureFlags+=" --extra-include-dirs=$p/include" fi if [ -d "$p/lib" ]; then - configureFlags+=" --extra-lib-dirs=$p/lib"${ - stdenv.lib.optionalString stdenv.isDarwin - "; export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib;" + configureFlags+=" --extra-lib-dirs=$p/lib" + ${ stdenv.lib.optionalString stdenv.isDarwin + "export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$p/lib" } fi done