You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Cabal file for gio specifies a pkgconfig dependency on gio. However, that name gets re-written to glib because gio is part of glib in Nixpkgs. So we end up in a situation where there generated expression has a dependency on both the Haskell package glib in buildDepends and the system package glib in pkgconfigDepends. Since both have the same name, we cannot pass both! haskell2nix decides that the glib reference to the Haskell package set will be found automatically by callPackage and does nothing for that. For the pkgconfig reference, it generates an override to set glib = pkgs.glib. The net result is that the Haskell package reference will not be included and the build fails as reported in NixOS/nixpkgs#5863.
The text was updated successfully, but these errors were encountered:
The post-process hook filters any package from pkgconfigDepends that is
also part of buildDepends. In other words, if some package depends on
the Haskell library "glib", then we filter "glib" from pkgconfigDepends.
As a result, the bogus resolver in "hackage2nix" won't fire.
Of course, this means that the system library is now missing from those
builds that had their pkgconfigDepends stripped. We counter this by
adding the appropriate system package to the propagatedBuildInputs field
of the their corresponding Haskell library. For example, the Haskell
package "glib" exports the system library "glib" to all its users -- so
these users don't have to depend on it anymore.
The real solution is to fix the resolver, of course, but this change
will hopefully fix a number of builds *right now* without much of an
effort to do the right thing(tm).
peti
added a commit
to NixOS/nixpkgs
that referenced
this issue
Jan 22, 2015
The Cabal file for
gio
specifies a pkgconfig dependency ongio
. However, that name gets re-written toglib
becausegio
is part ofglib
in Nixpkgs. So we end up in a situation where there generated expression has a dependency on both the Haskell packageglib
inbuildDepends
and the system packageglib
inpkgconfigDepends
. Since both have the same name, we cannot pass both!haskell2nix
decides that theglib
reference to the Haskell package set will be found automatically bycallPackage
and does nothing for that. For the pkgconfig reference, it generates an override to setglib = pkgs.glib
. The net result is that the Haskell package reference will not be included and the build fails as reported in NixOS/nixpkgs#5863.The text was updated successfully, but these errors were encountered: