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 1
1
This file contains a summary of changes to Haskell.nix and ` nix-tools `
2
2
that will impact users.
3
3
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
+
4
34
## Jul 27, 2022
5
35
* Removed reliance on ` builtins.currentSystem ` . It was used it to provide
6
36
` 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 {
133
133
pkgconfigSelector = mkOption {
134
134
type = unspecified ;
135
135
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
+ '' ;
136
145
} ;
137
146
} ;
138
147
}
You can’t perform that action at this time.
0 commit comments