From 983af4a9213f75b0e8380d6e68fb7ead1f5d217f Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:17:18 -0400 Subject: [PATCH 1/3] Use variables for ca-bundle.crt and GHCJS_LIBDIR. --- pkgs/development/tools/haskell/ghcjs/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 4feffcd7f4c4..55e3d5875e7b 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -8,7 +8,7 @@ , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch , automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat -, haddock, hspec, xhtml, primitive +, haddock, hspec, xhtml, primitive, cacert, pkgs, ghc }: cabal.mkDerivation (self: rec { pname = "ghcjs"; @@ -79,14 +79,14 @@ cabal.mkDerivation (self: rec { ''; postInstall = '' export HOME=$(pwd) - export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + local GHCJS_LIBDIR=$out/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version} ensureDir $GHCJS_LIBDIR cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update From 1c9166f64999dc0a74c23574725bd62d4661e415 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:46:52 -0400 Subject: [PATCH 2/3] Factor out ghcjs's libdir better. --- pkgs/build-support/cabal/ghcjs.nix | 2 +- pkgs/development/tools/haskell/ghcjs/default.nix | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index d74c30180e29..e6bc50f45169 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -188,7 +188,7 @@ in done done - configureFlags+=" --package-db=${ghc.ghc}/share/ghcjs/x86_64-linux-0.1.0-7.8.2/ghcjs/package.conf.d" + configureFlags+=" --package-db=${ghc.ghc}${ghc.ghc.libdir}/ghcjs/package.conf.d" ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 55e3d5875e7b..7602bf708115 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -77,6 +77,7 @@ cabal.mkDerivation (self: rec { sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ src-bin/Boot.hs ''; + libdir = "/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}"; postInstall = '' export HOME=$(pwd) export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" @@ -86,7 +87,7 @@ cabal.mkDerivation (self: rec { git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version} + local GHCJS_LIBDIR=$out${libdir} ensureDir $GHCJS_LIBDIR cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update From 3e62d0b540c89257700c6f1dad73ad45d00316ba Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:47:02 -0400 Subject: [PATCH 3/3] Fix buildLocalCabalWithArgs. --- pkgs/top-level/haskell-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 4ca039d0d673..acc04974488b 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2791,7 +2791,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal2nix = callPackage ../development/tools/haskell/cabal2nix {}; # Build a cabal package given a local .cabal file - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix }: let + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? self.cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ name = "${name}.nix";