From 388faed25c88e2304d37a190e43e97a9a2ae23c5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 17 Jan 2019 00:15:20 +0100 Subject: [PATCH] glib.setupHook: fix gsettings-schemas location 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 --- pkgs/development/libraries/glib/setup-hook.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh index 5275529991f7..a1cb1f40c58a 100644 --- a/pkgs/development/libraries/glib/setup-hook.sh +++ b/pkgs/development/libraries/glib/setup-hook.sh @@ -15,9 +15,9 @@ preInstallPhases+=" glibPreInstallPhase" glibPreFixupPhase() { # Move gschemas in case the install flag didn't help - if [ -d "${!outputLib}/share/glib-2.0/schemas" ]; then + if [ -d "$prefix/share/glib-2.0/schemas" ]; then mkdir -p "${!outputLib}/share/gsettings-schemas/$name/glib-2.0" - mv "${!outputLib}/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/" + mv "$prefix/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/" fi addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name"