From e505891a5c8feafd272a1d372829df69f2a15035 Mon Sep 17 00:00:00 2001 From: Kosyrev Serge <_deepfire@feelingofgreen.ru> Date: Wed, 30 Jan 2019 04:50:56 +0300 Subject: [PATCH] haskell/generic-buidler: make installPhase handle Cabal 2.5's lax fields --- pkgs/development/haskell-modules/generic-builder.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 2a71e7e92d1e..2724ff5d6220 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -377,6 +377,10 @@ stdenv.mkDerivation ({ runHook postHaddock ''; + # The scary sed expression handles two cases in v2.5 Cabal's package configs: + # 1. 'id: short-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO' + # 2. 'id:\n + # very-long-descriptive-useful-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO' installPhase = '' runHook preInstall @@ -391,7 +395,7 @@ stdenv.mkDerivation ({ rmdir "$packageConfFile" fi for packageConfFile in "$packageConfDir/"*; do - local pkgId=$( ${gnused}/bin/sed -n -e 's|^id:[ ]\+||p' $packageConfFile ) + local pkgId=$( ${gnused}/bin/sed -n -e ':a' -e '/^id:$/N; s/id:\n[ ]*\([^\n]*\).*$/\1/p; s/id:[ ]*\([^\n]*\)$/\1/p; ta' $packageConfFile ) mv $packageConfFile $packageConfDir/$pkgId.conf done