Since 9f309c8792 ("stdenv: mesonFlags: use canExecute in needs_exe_wrapper"),
glib's tests are built (but not run by default) in pkgsStatic. This
broke the build because some of the tests required shared libraries.
This patch (which is awaiting review upstream) disables building those
libraries and any tests that depend on them in a static-only build.
This will allow OfBorg to run the GLib tests, which it didn't do
before. To do this correctly for the glib we're building, we need to
override it rather than taking glib as an input.
finalAttrs.finalPackage is not overrideable, so instead we need to use
overrideAttrs. Since we can now consult finalAttrs.doCheck, there's
no longer any need for a separate doCheck option, so I've removed it
in favour of overrideAttrs.
This patch shouldn't have any effect on builds that don't run the
tests, so it doesn't need to be conditionally applied. Applying it
unconditionally will make it easier to notice if it breaks e.g. when
updating glib.
Doing this in preCheck means that the tests will already have been
built before the substitutions are made, so they'll have to be rebuilt
after the substitutions. Move the substitution earlier in the build,
to avoid this unnecessary extra work.
I've made the substitutions run even if tests aren't being run, to
avoid a repeat of the situation where a glib update breaks the tests
due to paths changing.
Since the switch to Meson, we're already in the build directory in
preCheck, so we need to update the relative paths we're using
accordingly.
Fixes: 0149459f42 ("glib: 2.56.0 → 2.58.1")
/bin/true hasn't been hardcoded in this file since Glib 2.55.0.
2.56.0, the first stable version to include this change, was released
in 2018.
Fixes: 0973618e4e ("gnome3: automated update")
Previously, bash completion scripts were installed in the "out"
output, which didn't contain any binaries. With this change, the
completion scripts are installed in the outputs containing the
corresponding binaries. Namely, gapplication, gdbus, gio, and
gsettings completion scripts go to $bin, and gresource to $dev. The
result is that the completions work out of the box, when the binaries
are available to the user.
This change adds man pages for commands provided by glib. Namely, the
$bin output now includes man pages (section 1) for:
gapplication gdbus gio gsettings
The $dev output for:
gdbus-codegen gio-querymodules glib-compile-resources
glib-compile-schemas glib-genmarshal glib-gettextize glib-mkenums
gobject-query gresource gtester-report gtester
GNOME Console (aka King’s Cross) is the default terminal emulator in GNOME 42.
Let’s make GLib aware of it so that apps relying on it (e.g. GNOME Shell)
can launch terminal apps like htop.
This is a downstream patch since GLib does not want to add any more
terminal emulators: https://gitlab.gnome.org/GNOME/glib/-/issues/2618
It's not clear why this is required, but glib includes CoreServices
headers and calls CoreServices functions, so it's reasonable to link
against the framework explicitly.