summary refs log tree commit diff
path: root/pkgs/development/libraries/glib/default.nix
diff options
context:
space:
mode:
authorTor Hedin Brønner <torhedinbronner@gmail.com>2018-09-14 13:50:04 +0200
committerJan Tojnar <jtojnar@gmail.com>2018-11-30 21:35:15 +0100
commit38c529f57aa50c1cdb36c1af0488dac363629b72 (patch)
tree1aea03ce06133d7cfeed5bfe610f0e355571eb02 /pkgs/development/libraries/glib/default.nix
parent9d8ea55e301d56fdc1f4062c8623d36e2eb3dc90 (diff)
downloadnixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar.gz
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar.bz2
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar.lz
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar.xz
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.tar.zst
nixpkgs-38c529f57aa50c1cdb36c1af0488dac363629b72.zip
glib: use absolute path for `gio-launch-desktop`
glib tries to look up `gio-launch-desktop` in the path which obviously can fail.
Specifically this now happens when launching gnome-shell.
Diffstat (limited to 'pkgs/development/libraries/glib/default.nix')
-rw-r--r--pkgs/development/libraries/glib/default.nix15
1 files changed, 14 insertions, 1 deletions
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index de56b6a5d10..1eb50fc4f10 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -59,7 +59,11 @@ stdenv.mkDerivation rec {
     ++ optionals stdenv.hostPlatform.isMusl [
       ./quark_init_on_demand.patch
       ./gobject_init_on_demand.patch
-    ] ++ [ ./schema-override-variable.patch ];
+    ] ++ [
+      ./schema-override-variable.patch
+      # Require substituteInPlace in postPatch
+      ./fix-gio-launch-desktop-path.patch
+    ];
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
   outputBin = "dev";
@@ -88,6 +92,10 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace meson.build --replace "install_dir : 'bin'," "install_dir : glib_bindir,"
+
+    # substitute fix-gio-launch-desktop-path.patch
+    substituteInPlace gio/gdesktopappinfo.c --replace "@bindir@" "$out/bin"
+
     chmod +x gio/tests/gengiotypefuncs.py
     patchShebangs gio/tests/gengiotypefuncs.py
     patchShebangs glib/gen-unicode-tables.pl
@@ -106,6 +114,11 @@ stdenv.mkDerivation rec {
       mv "$dev/bin/$app" "$bin/bin"
     done
 
+    # Add gio-launch-desktop to $out so we can refer to it from $dev
+    mkdir $out/bin
+    mv "$dev/bin/gio-launch-desktop" "$out/bin/"
+    ln -s "$out/bin/gio-launch-desktop" "$bin/bin/"
+
     moveToOutput "share/glib-2.0" "$dev"
     substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev"
     sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|"