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.
(It was requested by them.)
I left one case due to fetching from their personal repo:
pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
GNOME Shell monitors XDG_DATA_DIRS for changes using inotify for the
purpose of updating the list of applications displayed in the overview
as they are installed or removed. Because the relevant directories are
symlinks under NixOS and are swapped on change, Shell never notices it.
To remedy this, also monitor various profile directories to signal an
update whenever profiles are changed.
This uses a patch from Guix, slightly modified to also encompass user
environment profiles (/etc/profiles/per-user/$USER) in addition to the
system profile (/nix/var/nix/profiles/system) as well as regular user
profiles (/nix/var/nix/profiles/per-user/$USER/profile).
rebased the schema override patch, adding the same upstream safety but
not duplicating the ability to pass multiple directories as this does
not appear to be necessary for nix overrides