From 52c8b2de4e0da703abc262ba2eb4c5fe747425b7 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Wed, 12 May 2021 12:44:53 +0200 Subject: [PATCH 1/2] haskellPackages.hnix: remove now unnecessary patch New release 0.13.0.1 introduced support with ref-tf >= 0.5, so we can remove our patch for that purpose. --- .../haskell-modules/configuration-common.nix | 9 ----- .../patches/hnix-ref-tf-0.5-support.patch | 34 ------------------- 2 files changed, 43 deletions(-) delete mode 100644 pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index a7a72f09cf8..2da8504e52b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -174,15 +174,6 @@ self: super: { hnix = generateOptparseApplicativeCompletion "hnix" (overrideCabal super.hnix (drv: { doCheck = false; - prePatch = '' - # fix encoding problems when patching - ${pkgs.dos2unix}/bin/dos2unix hnix.cabal - '' + (drv.prePatch or ""); - patches = [ - # support ref-tf in hnix 0.12.0.1, can be removed after - # https://github.com/haskell-nix/hnix/pull/918 - ./patches/hnix-ref-tf-0.5-support.patch - ] ++ (drv.patches or []); })); # Fails for non-obvious reasons while attempting to use doctest. diff --git a/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch b/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch deleted file mode 100644 index 5a4d0446e71..00000000000 --- a/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/hnix.cabal hnix-patched/hnix.cabal ---- hnix-0.12.0.1/hnix.cabal 2001-09-09 03:46:40.000000000 +0200 -+++ hnix-patched/hnix.cabal 2021-05-05 12:07:38.388267353 +0200 -@@ -430,7 +430,7 @@ - , parser-combinators >= 1.0.1 && < 1.3 - , prettyprinter >= 1.7.0 && < 1.8 - , process >= 1.6.3 && < 1.7 -- , ref-tf >= 0.4.0 && < 0.5 -+ , ref-tf >= 0.5 - , regex-tdfa >= 1.2.3 && < 1.4 - , scientific >= 0.3.6 && < 0.4 - , semialign >= 1 && < 1.2 -diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/src/Nix/Fresh.hs hnix-patched/src/Nix/Fresh.hs ---- hnix-0.12.0.1/src/Nix/Fresh.hs 2001-09-09 03:46:40.000000000 +0200 -+++ hnix-patched/src/Nix/Fresh.hs 2021-05-05 12:07:45.841267497 +0200 -@@ -65,18 +65,3 @@ - - runFreshIdT :: Functor m => Var m i -> FreshIdT i m a -> m a - runFreshIdT i m = runReaderT (unFreshIdT m) i -- ---- Orphan instance needed by Infer.hs and Lint.hs -- ---- Since there's no forking, it's automatically atomic. --instance MonadAtomicRef (ST s) where -- atomicModifyRef r f = do -- v <- readRef r -- let (a, b) = f v -- writeRef r a -- return b -- atomicModifyRef' r f = do -- v <- readRef r -- let (a, b) = f v -- writeRef r $! a -- return b From ad52ecce408cb3331944a980d2cdff041435fef8 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Wed, 12 May 2021 13:14:33 +0200 Subject: [PATCH 2/2] haskellPackages.hnix: fix build with stackage relude and semialign https://github.com/haskell-nix/hnix/pull/922 removed a few build-depends from hnix.cabal which are still required until the following constraints apply to stackage: * relude >= 1.0.0.0 * semialign >= 1.2 Luckily, we can simply revert a few commits from master and add semialign-indexed to resolve this without too much hassle nor extra-packages (which may cause us trouble through propagation of a newer relude). --- .../haskell-modules/configuration-common.nix | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2da8504e52b..e5a737dae3a 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -170,10 +170,40 @@ self: super: { # base bound digit = doJailbreak super.digit; - # 2020-06-05: HACK: does not pass own build suite - `dontCheck` hnix = generateOptparseApplicativeCompletion "hnix" (overrideCabal super.hnix (drv: { + # 2020-06-05: HACK: does not pass own build suite - `dontCheck` doCheck = false; + # 2021-05-12: Revert a few dependency cleanups which depend on release + # that are not in stackage yet: + # * Depend on semialign-indexed for Data.Semialign.Indexed + # (remove when semialign >= 1.2 in stackage) + # * Readd dependencies to text and unordered-containers. + # (remove when relude >= 1.0.0.0 is in stackage, see + # https://github.com/haskell-nix/hnix/issues/933) + libraryHaskellDepends = [ + self.semialign-indexed + ] ++ drv.libraryHaskellDepends; + patches = [ + # depend on semialign-indexed again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/16fc342a4f2974f855968472252cd9274609f177.patch"; + sha256 = "0gm4gy3jpn4dqnrhnqlsavfpw9c1j1xa8002v54knnlw6vpk9niy"; + revert = true; + }) + # depend on text again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/73057618576e86bb87dfd42f62b855d24bbdf469.patch"; + sha256 = "03cyk96d5ad362i1pnz9bs8ifr84kpv8phnr628gys4j6a0bqwzc"; + revert = true; + }) + # depend on unordered-containers again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/70643481883ed448b51221a030a76026fb5eb731.patch"; + sha256 = "0pqmijfkysjixg3gb4kmrqdif7s2saz8qi6k337jf15i0npzln8d"; + revert = true; + }) + ] ++ (drv.patches or []); })); # Fails for non-obvious reasons while attempting to use doctest.