Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
haskellPackages.ghcWithPackages: fix for GHC 8.10
This closes #79441. ghcWithPackages is using `ghc-pkg recache` to build its package database. By doing so, it overrides the `package.cache[.lock]` files. Details are unclear, but GHC 8.10 changed a bit the behavior. Previously, it was unconditionally replacing the files by new ones. Now it tries to open (for modification) the files. These files are symlinks to another nix derivation, which is hence read-only. This commit removes the files before running `ghc-pkg recache`, hence it will just write the new files. Tested with `haskellPackages.ghcWithPackages` (i.e. GHC 8.8) and `haskell.packages.ghc8101.ghcWithPackages` (i.e GHC 8.10) with the following nix file, at the root of the nixpkgs repository: ``` with import ./. { overlays = [ ( self: super: { haskellPackages = super.haskell.packages.ghc8101.override { overrides = selfh: superh: { th-lift-instances = super.haskell.lib.doJailbreak superh.th-lift-instances; th-expand-syns = super.haskell.lib.doJailbreak superh.th-expand-syns; th-reify-many = super.haskell.lib.doJailbreak superh.th-reify-many; th-orphans = super.haskell.lib.doJailbreak superh.th-orphans; haskell-src-meta = super.haskell.lib.doJailbreak superh.haskell-src-meta; }; }; } ) ]; }; haskellPackages.ghcWithPackages(p:[p.PyF]) ``` This will test with GHC 8.10. Comment out the `overlays` to test with GHC 8.8.
- Loading branch information
abc4f96
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peti @guibou Could we cherry pick this into the 20.03 release? Right now GHC 8.10 is unusable there because of this.
abc4f96
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If anyone feels like cherry-picking the commit, testing that it actually works, and submitting a PR, then I'd certainly be happy to merge it.
abc4f96
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, I will do that now. Thanks!