about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/flatpak
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-10-20 22:09:03 +0000
committerAlyssa Ross <hi@alyssa.is>2023-10-20 22:09:03 +0000
commit50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e (patch)
treef2556b911180125ccbb7ed0e78a54e92da89adce /nixpkgs/pkgs/development/libraries/flatpak
parent4c16d4548a98563c9d9ad76f4e5b2202864ccd54 (diff)
parentcfc75eec4603c06503ae750f88cf397e00796ea8 (diff)
downloadnixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar.gz
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar.bz2
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar.lz
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar.xz
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.tar.zst
nixlib-50c21d167f7114fa1dbd95e5c4fb30eeb1a2d02e.zip
Merge commit 'cfc75eec4603c06503ae750f88cf397e00796ea8'
Conflicts:
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/flatpak')
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/binary-path.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch8
3 files changed, 39 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/binary-path.patch b/nixpkgs/pkgs/development/libraries/flatpak/binary-path.patch
new file mode 100644
index 000000000000..9da437df91b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/flatpak/binary-path.patch
@@ -0,0 +1,29 @@
+diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
+index eba81fef..134024e2 100644
+--- a/common/flatpak-dir.c
++++ b/common/flatpak-dir.c
+@@ -7532,8 +7532,13 @@ export_desktop_file (const char         *app,
+       g_key_file_remove_key (keyfile, groups[i], "X-GNOME-Bugzilla-ExtraInfoScript", NULL);
+ 
+       new_exec = g_string_new ("");
+-      if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
+-        flatpak = FLATPAK_BINDIR "/flatpak";
++      if (g_str_has_suffix (name, ".service"))
++      {
++        flatpak = "/run/current-system/sw/bin/flatpak";
++      } else {
++        if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
++          flatpak = "flatpak";
++      }
+ 
+       g_string_append_printf (new_exec,
+                               "%s run --branch=%s --arch=%s",
+@@ -8867,7 +8872,7 @@ flatpak_dir_deploy (FlatpakDir          *self,
+                                        error))
+         return FALSE;
+       if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
+-        flatpak = FLATPAK_BINDIR "/flatpak";
++        flatpak = "flatpak";
+ 
+       bin_data = g_strdup_printf ("#!/bin/sh\nexec %s run --branch=%s --arch=%s %s \"$@\"\n",
+                                   flatpak, escaped_branch, escaped_arch, escaped_app);
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/default.nix b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
index 69dca4c50446..0c44b99db8d9 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
@@ -89,6 +89,11 @@ stdenv.mkDerivation (finalAttrs: {
     # https://github.com/NixOS/nixpkgs/issues/53441
     ./unset-env-vars.patch
 
+    # Use flatpak from PATH to avoid references to `/nix/store` in `/desktop` files.
+    # Applications containing `DBusActivatable` entries should be able to find the flatpak binary.
+    # https://github.com/NixOS/nixpkgs/issues/138956
+    ./binary-path.patch
+
     # The icon validator needs to access the gdk-pixbuf loaders in the Nix store
     # and cannot bind FHS paths since those are not available on NixOS.
     finalAttrs.passthru.icon-validator-patch
@@ -176,13 +181,6 @@ stdenv.mkDerivation (finalAttrs: {
     PATH=${lib.makeBinPath [vsc-py]}:$PATH patchShebangs --build subprojects/variant-schema-compiler/variant-schema-compiler
   '';
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Use flatpak from PATH in exported assets (e.g. desktop files).
-      --set FLATPAK_BINARY flatpak
-    )
-  '';
-
   passthru = {
     icon-validator-patch = substituteAll {
       src = ./fix-icon-validation.patch;
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
index 683cdbcaf18c..da1475009009 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
@@ -180,14 +180,16 @@ index d9fc8251..d8ddb96e 100755
 @@ -1,10 +1,10 @@
  #!/bin/sh
  
- if command -v gtk-update-icon-cache >/dev/null && test -d "$1/exports/share/icons/hicolor"; then
+-if command -v gtk-update-icon-cache >/dev/null && test -d "$1/exports/share/icons/hicolor"; then
 -    cp /usr/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/"
-+    cp @hicolorIconTheme@/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/"
++if test -d "$1/exports/share/icons/hicolor"; then
++    @coreutils@/bin/cp -f @hicolorIconTheme@/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/"
      for dir in "$1"/exports/share/icons/*; do
          if test -f "$dir/index.theme"; then
 -            if ! gtk-update-icon-cache --quiet "$dir"; then
+-                echo "Failed to run gtk-update-icon-cache for $dir"
 +            if ! @gtk3@/bin/gtk-update-icon-cache --quiet "$dir"; then
-                 echo "Failed to run gtk-update-icon-cache for $dir"
++                @coreutils@/bin/echo "Failed to run gtk-update-icon-cache for $dir"
                  exit 1
              fi
 diff --git a/triggers/mime-database.trigger b/triggers/mime-database.trigger