Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Haskell package set to LTS 15.8 (plus other fixes) #85178

Merged
merged 15 commits into from Apr 17, 2020
Merged

Conversation

peti
Copy link
Member

@peti peti commented Apr 13, 2020

This PR is test-built by Hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. I'll fix up the remaining errors and merge it on Friday, 2020-04-17 20:00 CET. You can watch this live on Twitch at https://www.twitch.tv/peti343. In addition to the chat features offered by Twitch, there is also a voice conference at https://discord.gg/YTEa3XR that viewers can use to chat with me and with each other.

TODO

@nh2
Copy link
Contributor

nh2 commented Apr 17, 2020

One thing I'd like us to look into:

My CI failure against master says:

Configuring ghc-lib-parser-ex-8.8.5.8...
Setup: Encountered missing dependencies:
ghc-lib-parser -any

builder for '/nix/store/4bhjr2nz9i2lyffp6ivqwxf7dxakx4ch-ghc-lib-parser-ex-8.8.5.8.drv' failed with exit code 1

And indeed, hackage-packages.nix doesn't list in "ghc-lib-parser-ex" a dependency on ghc-lib-parser, even though the cabal file of that version lists the dependency.

@cdepillabout
Copy link
Member

@nh2 It looks like that dependency is behind a flag, which is maybe why cabal2nix isn't picking it up.

https://hackage.haskell.org/package/ghc-lib-parser-ex-8.8.5.8/ghc-lib-parser-ex.cabal

@nh2
Copy link
Contributor

nh2 commented Apr 17, 2020

It looks like that dependency is behind a flag, which is maybe why cabal2nix isn't picking it up.

@cdepillabout Thanks! And it looks like the logic is changing again: shayne-fletcher/ghc-lib-parser-ex#42

I've asked in shayne-fletcher/ghc-lib-parser-ex#42 (comment).

@guibou
Copy link
Contributor

guibou commented Apr 17, 2020

krank author here. I'm really happy that you are trying krank to track outdated overrides. Please, let me know (here or in krank issue tracker) if there is any improvement I can do.

@nh2
Copy link
Contributor

nh2 commented Apr 17, 2020

@guibou I hadn't known about krank until now, that sounds really useful also for my own projects (and especially ugprades of NixOS!).

No specific requests yet, but I noticed one thing: Given that krank is a Haskell program, could you add it to Stackage? That would significantly increase the chances that it itself will not break in nixpkgs (reducing maintenance effort over here), and will also make it much easier to get it to build e.g. in static-haskell-nix.

peti and others added 9 commits April 17, 2020 20:49
This update was generated by hackage2nix v2.15.1 from Hackage revision
commercialhaskell/all-cabal-hashes@fcda256.
* ghcHEAD: bump to 8.11.20200403

* ghcHead: reduce diff vs. 8.10.1

dontAddExtraLibs was removed by accident (IMO) in ea19a8e

* ghcHEAD: add ability to use system libffi

- enable nixpkgs' libffi
- minimise diffs against 8.10.1
- remove patching

* remove configure warning about --with-curses-includes

configure: WARNING: unrecognized options: --with-curses-includes
jappeace and others added 5 commits April 17, 2020 20:50
This also unbreaks `haskell-ci`.
- get the current Git head of haskell-tensorflow
- adjust dependencies
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.
@peti peti merged commit e9687df into master Apr 17, 2020
@peti
Copy link
Member Author

peti commented Apr 24, 2020

Next week we'll merge #85926.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet