GLib setup hook expects GSettings schemas to be installed in ${!outputLib}
and tries to move them to gsettings-schemas/$name subdirectory to prevent
conflicts. But the schemas will only end up in the library output when
the build system recognizes makeFlags set by the setup hook, and in that case
the move is not necessary, since the flag already includes the subdirectory.
Normally, this is not an issue, since most packages relying on GSettings
schemas either still use Autotools with gsettings.m4, or do not have a lib
output set. But with the promulgation of multiple outputs in Nixpkgs and
more and more projects switching to Meson, the issue will become increasingly
common.
We first noticed this problem with nm-applet.
Closes https://github.com/NixOS/nixpkgs/issues/45043
Glib uses gobject introspection to generate documentation.
If we would want to cross-compile those, we would need native binaries
from the previous build stage. Instead we can simply just copy over
the generated documentation.
gsettingsschemedir only works in make where you can set any variable
from the command line as in “make VAR=VAL”. Other build systems may
not support this kind of loose overriding of variables. This broke a
scons build here:
https://hydra.nixos.org/build/84073119/
This changes the way how the `glib` dependecy cycles are broken to make
the tested `glib` the default.
`glib-tested` is no longer needed as packages now use the checked version when
`doCheckByDefault` is set, since it was not used anywhere, I removed it.
This makes the command ‘nix-env -qa -f. --arg config '{skipAliases =
true;}'’ work in Nixpkgs.
Misc...
- qtikz: use libsForQt5.callPackage
This ensures we get the right poppler.
- rewrites:
docbook5_xsl -> docbook_xsl_ns
docbook_xml_xslt -> docbook_xsl
diffpdf: fixup
For some reason, the GNOME 3.26 update broke the overrides. It turns
out the overrides now need to come before the overriden schemas in the
XDG_DATA_DIRS variable. This is not possible in general due to applications
prefixing the variable (e.g. in wrapGAppsHook).
To fix this, a new environment variable NIX_GSETTINGS_OVERRIDES_DIR
was introduced. It has greater priority than XDG_DATA_DIRS but lower
than GSETTINGS_SCHEMA_DIR. A separate variable was chosen in order not
to block the built-in one for users.
This is a squash commit of the joint work from:
* Jan Tojnar (@jtojnar)
* Linus Heckemann (@lheckemann)
* Ryan Mulligan (@ryantm)
* romildo (@romildo)
* Tom Hunger (@teh)