Skip to content

Commit

Permalink
flatpak: Don't hardcode flatpak binary path in launchers
Browse files Browse the repository at this point in the history
The hardcoded flatpak path breaks all installed applications when flatpak is
updated.

fixes: NixOS#43581
  • Loading branch information
hedning committed Aug 2, 2018
1 parent 3af8557 commit e5e91ef
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
1 change: 1 addition & 0 deletions pkgs/development/libraries/flatpak/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ in stdenv.mkDerivation rec {
})
# patch taken from gtk_doc
./respect-xml-catalog-files-var.patch
./use-flatpak-from-path.patch
];

nativeBuildInputs = [
Expand Down
48 changes: 48 additions & 0 deletions pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
--- a/common/flatpak-dir.c
+++ b/common/flatpak-dir.c
@@ -5467,7 +5467,7 @@ export_desktop_file (const char *app,

new_exec = g_string_new ("");
g_string_append_printf (new_exec,
- FLATPAK_BINDIR "/flatpak run --branch=%s --arch=%s",
+ "flatpak run --branch=%s --arch=%s",
escaped_branch,
escaped_arch);

@@ -6644,8 +6644,8 @@ flatpak_dir_deploy (FlatpakDir *self,
error))
return FALSE;

- bin_data = g_strdup_printf ("#!/bin/sh\nexec %s/flatpak run --branch=%s --arch=%s %s \"$@\"\n",
- FLATPAK_BINDIR, escaped_branch, escaped_arch, escaped_app);
+ bin_data = g_strdup_printf ("#!/bin/sh\nexec flatpak run --branch=%s --arch=%s %s \"$@\"\n",
+ escaped_branch, escaped_arch, escaped_app);
if (!g_file_replace_contents (wrapper, bin_data, strlen (bin_data), NULL, FALSE,
G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error))
return FALSE;
diff --git a/tests/test-bundle.sh b/tests/test-bundle.sh
index 6937b041..01f8add7 100755
--- a/tests/test-bundle.sh
+++ b/tests/test-bundle.sh
@@ -59,7 +59,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
# Ensure Exec key is rewritten
-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png

diff --git a/tests/test-run.sh b/tests/test-run.sh
index 9d83d82e..234e4ec6 100755
--- a/tests/test-run.sh
+++ b/tests/test-run.sh
@@ -42,7 +42,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
# Ensure Exec key is rewritten
-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
assert_not_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/dont-export.png
assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png

0 comments on commit e5e91ef

Please sign in to comment.