summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-05-03 10:27:36 +0200
committerAlexander Larsson <alexl@redhat.com>2016-05-03 10:27:36 +0200
commit663cfcf3a8f2f84c048cb501e6c988a3f7b02d2c (patch)
tree1e841689e107cfb8a9dbc47ae3e8b46d152e1291 /common
parent1df3e4845b49081685966b957933f485bb22cbae (diff)
downloadxdg-app-663cfcf3a8f2f84c048cb501e6c988a3f7b02d2c.tar.gz
Fix make check if uninstalled
This uses various environment variables set during make check to find the trigger, bwrap and xdg-app-dbusproxy from the build/source dir rather than the installed location.
Diffstat (limited to 'common')
-rw-r--r--common/xdg-app-dir.c11
-rw-r--r--common/xdg-app-run.c11
-rw-r--r--common/xdg-app-utils.c9
-rw-r--r--common/xdg-app-utils.h2
4 files changed, 27 insertions, 6 deletions
diff --git a/common/xdg-app-dir.c b/common/xdg-app-dir.c
index 59d752b..1cc74b1 100644
--- a/common/xdg-app-dir.c
+++ b/common/xdg-app-dir.c
@@ -1752,10 +1752,15 @@ xdg_app_dir_run_triggers (XdgAppDir *self,
g_autoptr(GFileInfo) child_info = NULL;
g_autoptr(GFile) triggersdir = NULL;
GError *temp_error = NULL;
+ const char *triggerspath;
- g_debug ("running triggers");
+ triggerspath = g_getenv ("XDG_APP_TRIGGERSDIR");
+ if (triggerspath == NULL)
+ triggerspath = XDG_APP_TRIGGERDIR;
- triggersdir = g_file_new_for_path (XDG_APP_TRIGGERDIR);
+ g_debug ("running triggers from %s", triggerspath);
+
+ triggersdir = g_file_new_for_path (triggerspath);
dir_enum = g_file_enumerate_children (triggersdir, "standard::type,standard::name",
0, cancellable, error);
@@ -1784,7 +1789,7 @@ xdg_app_dir_run_triggers (XdgAppDir *self,
g_ptr_array_add (argv_array, g_file_get_path (child));
g_ptr_array_add (argv_array, g_file_get_path (self->basedir));
#else
- g_ptr_array_add (argv_array, g_strdup (HELPER));
+ g_ptr_array_add (argv_array, g_strdup (xdg_app_get_bwrap ()));
g_ptr_array_add (argv_array, g_strdup ("--unshare-ipc"));
g_ptr_array_add (argv_array, g_strdup ("--unshare-net"));
g_ptr_array_add (argv_array, g_strdup ("--unshare-pid"));
diff --git a/common/xdg-app-run.c b/common/xdg-app-run.c
index f0d7660..e4d32f7 100644
--- a/common/xdg-app-run.c
+++ b/common/xdg-app-run.c
@@ -2320,6 +2320,7 @@ add_dbus_proxy_args (GPtrArray *argv_array,
GError **error)
{
char x = 'x';
+ const char *proxy;
if (dbus_proxy_argv->len == 0)
return TRUE;
@@ -2338,7 +2339,11 @@ add_dbus_proxy_args (GPtrArray *argv_array,
add_args (argv_array, "--sync-fd", fd_str, NULL);
}
- g_ptr_array_insert (dbus_proxy_argv, 0, g_strdup (DBUSPROXY));
+ proxy = g_getenv ("XDG_APP_DBUSPROXY");
+ if (proxy == NULL)
+ proxy = DBUSPROXY;
+
+ g_ptr_array_insert (dbus_proxy_argv, 0, g_strdup (proxy));
g_ptr_array_insert (dbus_proxy_argv, 1, g_strdup_printf ("--fd=%d", sync_fds[1]));
if (enable_logging)
g_ptr_array_insert (dbus_proxy_argv, 2, g_strdup ("--log"));
@@ -2951,7 +2956,7 @@ xdg_app_run_app (const char *app_ref,
}
real_argv_array = g_ptr_array_new_with_free_func (g_free);
- g_ptr_array_add (real_argv_array, g_strdup (HELPER));
+ g_ptr_array_add (real_argv_array, g_strdup (xdg_app_get_bwrap ()));
{
gsize len;
@@ -2989,7 +2994,7 @@ xdg_app_run_app (const char *app_ref,
}
else
{
- if (execvpe (HELPER, (char **)real_argv_array->pdata, envp) == -1)
+ if (execvpe (xdg_app_get_bwrap (), (char **)real_argv_array->pdata, envp) == -1)
{
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "Unable to start app");
return FALSE;
diff --git a/common/xdg-app-utils.c b/common/xdg-app-utils.c
index 46906ce..cbf5031 100644
--- a/common/xdg-app-utils.c
+++ b/common/xdg-app-utils.c
@@ -216,6 +216,15 @@ xdg_app_get_arch (void)
return arch;
}
+const char *
+xdg_app_get_bwrap (void)
+{
+ const char *e = g_getenv ("XDG_APP_BWRAP");
+ if (e != NULL)
+ return e;
+ return HELPER;
+}
+
static gboolean
is_valid_initial_name_character (gint c)
{
diff --git a/common/xdg-app-utils.h b/common/xdg-app-utils.h
index 9b5e7c0..5f0fbcc 100644
--- a/common/xdg-app-utils.h
+++ b/common/xdg-app-utils.h
@@ -41,6 +41,8 @@ const char * xdg_app_path_match_prefix (const char *pattern,
const char * xdg_app_get_arch (void);
+const char * xdg_app_get_bwrap (void);
+
GBytes * xdg_app_read_stream (GInputStream *in,
gboolean null_terminate,
GError **error);