File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change 11This file contains a summary of changes to Haskell.nix and ` nix-tools `
22that will impact users.
33
4+ ## Sep 6, 2022
5+ * A ` pkgconfigSelector ` must now be passed to cabal projects that have
6+ ` pkgconfig-depends ` . Use the pkg-config names. For instance if the
7+ project uses ` gi-gtk ` pass:
8+ ```
9+ pkgconfigSelector = p: [ p."gtk+-3.0" p."gobject-introspection-1.0" ];
10+ ```
11+ The dependencies of gtk will be included automatically.
12+
13+ Why?
14+
15+ Cabal 3.8 fixes a bug https://github.com/haskell/cabal/issues/6771
16+ that haskell.nix relied on (probably wrongly), to create a plan
17+ for a haskell project without knowing the pkg-config versions
18+ available ahead of time.
19+
20+ This was probably a bad idea.
21+
22+ We could try to provide every pkg-config derivation in nixpkgs to
23+ the derivation that generates the cabal plan. Unfortunately:
24+ * That would introduce a massive dependency tree to the plan-nix
25+ dervaition.
26+ * Some of those packages may not build.
27+
28+ The ` pkgconfigSelector ` allows haskell.nix to filter out only the
29+ packages we need from the available map (` lib/pkgconf-nixpkgs-map.nix ` ).
30+
31+ It should be thought of as the haskell.nix equivalent of installing
32+ your pkg-config dependencies before running ` cabal build ` .
33+
434## Jul 27, 2022
535* Removed reliance on ` builtins.currentSystem ` . It was used it to provide
636 ` pkgs.evalPackages ` via an overlay that it used to run derivations
Original file line number Diff line number Diff line change @@ -133,6 +133,15 @@ in {
133133 pkgconfigSelector = mkOption {
134134 type = unspecified ;
135135 default = ( _ : [ ] ) ;
136+ description = ''
137+ Choose the pkg-config packages that should be made available to
138+ cabal configure. Use the pkg-config names. For instance if the
139+ project uses `gi-gtk` pass:
140+ ```
141+ pkgconfigSelector = p: [ p."gtk+-3.0" p."gobject-introspection-1.0" ];
142+ ```
143+ The dependencies of gtk will be included automatically.
144+ '' ;
136145 } ;
137146 } ;
138147}
You can’t perform that action at this time.
0 commit comments