From baad5d7cb4ee715fe0743a6b160096f1515641fe Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sat, 18 Apr 2009 15:23:00 +0000 Subject: [PATCH] * GHC setup hook: don't generate wrappers around ghc etc., instead set GHC_PACKAGE_PATH. * Let Cabal generate a package configuration file ($out/nix-support/ghc-package.conf) instead of a registration script. svn path=/nixpkgs/trunk/; revision=15127 --- pkgs/development/compilers/ghc/setup-hook.sh | 39 ++++--------------- .../libraries/haskell/cabal/cabal.nix | 12 ++---- pkgs/top-level/haskell-packages.nix | 4 +- pkgs/top-level/release.nix | 1 - 4 files changed, 12 insertions(+), 44 deletions(-) diff --git a/pkgs/development/compilers/ghc/setup-hook.sh b/pkgs/development/compilers/ghc/setup-hook.sh index a73ddada026..dc7066f31b6 100644 --- a/pkgs/development/compilers/ghc/setup-hook.sh +++ b/pkgs/development/compilers/ghc/setup-hook.sh @@ -1,40 +1,15 @@ -# Support dir for isolating GHC -ghc_support=$TMPDIR/ghc-6.8-nix-support -ensureDir $ghc_support - # Create isolated package config -packages_db=$ghc_support/package.conf +packages_db=$TMPDIR/.package.conf cp @ghc@/lib/ghc-*/package.conf $packages_db -chmod +w $packages_db +chmod u+w $packages_db -# Generate wrappers for GHC that use the isolated package config -makeWrapper() { - wrapperName="$1" - wrapper="$ghc_support/$wrapperName" - shift #the other arguments are passed to the source app - echo '#!'"$SHELL" > "$wrapper" - echo "exec \"@ghc@/bin/$wrapperName\" $@" '"$@"' >> "$wrapper" - chmod +x "$wrapper" -} - -makeWrapper "ghc" "-no-user-package-conf -package-conf $packages_db" -makeWrapper "ghci" "-no-user-package-conf -package-conf $packages_db" -makeWrapper "runghc" "-no-user-package-conf -package-conf $packages_db" -makeWrapper "runhaskell" "-no-user-package-conf -package-conf $packages_db" -makeWrapper "ghc-pkg" "--global-conf $packages_db" - -# Add wrappers to search path -export _PATH=$ghc_support:$_PATH +export GHC_PACKAGE_PATH=$packages_db # Env hook to add packages to the package config -addLibToPackageConf () -{ - local regscript=$1/nix-support/register-ghclib.sh - if test -f $regscript; then - local oldpath=$PATH - export PATH=$ghc_support:$PATH - sh $regscript $package_db - export PATH=$oldpath +addLibToPackageConf () { + local confFile=$1/nix-support/ghc-package.conf + if test -f $confFile; then + @ghc@/bin/ghc-pkg register $confFile fi } diff --git a/pkgs/development/libraries/haskell/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix index bafcedced63..d46787b8630 100644 --- a/pkgs/development/libraries/haskell/cabal/cabal.nix +++ b/pkgs/development/libraries/haskell/cabal/cabal.nix @@ -78,16 +78,10 @@ attrs : eval "$preInstall" ./Setup copy - ./Setup register --gen-script - mkdir -p $out/nix-support - if test -f register.sh; then - sed -i 's/|.*\(ghc-pkg update\)/| \1/' register.sh - cp register.sh $out/nix-support/register-ghclib.sh - sed -i 's/\(ghc-pkg update\)/\1 --user/' register.sh - mkdir -p $out/bin - cp register.sh $out/bin/register-${self.name}.sh - fi + ensureDir $out/nix-support + ./Setup register --gen-pkg-config=$out/nix-support/ghc-package.conf + eval "$postInstall" ''; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 7e599a5acde..31200d6bd8b 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -113,8 +113,8 @@ rec { # Compilers. ehc = import ../development/compilers/ehc { - inherit ghc; - inherit (pkgs) fetchsvn stdenv coreutils m4 libtool uulib uuagc llvm; + inherit ghc uulib uuagc; + inherit (pkgs) fetchsvn stdenv coreutils m4 libtool llvm; }; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 9bfb1d65109..a2601c14ce0 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -293,7 +293,6 @@ in { wget = all; wine = ["i686-linux"]; wirelesstools = linux; - wxHaskell = linux; x11_ssh_askpass = linux; xchm = linux; xfig = x11Supported;