summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2015-05-21 18:52:13 +0200
committerAlexander Larsson <alexl@redhat.com>2015-05-21 18:54:06 +0200
commit8ffacee14c150bdbdb69b1b82f69e1066414f3da (patch)
tree2d32721a24dcfb62808a7ea237932912e4a9c14b
parent3a68d242a6cd96c7262fea799b5bcf6193da2e38 (diff)
downloadxdg-app-8ffacee14c150bdbdb69b1b82f69e1066414f3da.tar.gz
Change /self to /app
This changes the application prefix to /app, which has the advantage of being the same length as /usr. This may help making some packages relocatable. We make /self a symlink to /app for now, to keep existing images work, but at some point we will probably remove this.
-rw-r--r--doc/xdg-app-build.xml2
-rw-r--r--doc/xdg-app-run.xml2
-rwxr-xr-xtriggers/desktop-database.trigger4
-rwxr-xr-xtriggers/gtk-icon-cache.trigger6
-rwxr-xr-xtriggers/mime-database.trigger4
-rw-r--r--xdg-app-builtins-run.c2
-rw-r--r--xdg-app-helper.c28
-rw-r--r--xdg-app-run.c20
8 files changed, 35 insertions, 33 deletions
diff --git a/doc/xdg-app-build.xml b/doc/xdg-app-build.xml
index 41581c1..a1659b7 100644
--- a/doc/xdg-app-build.xml
+++ b/doc/xdg-app-build.xml
@@ -48,7 +48,7 @@
The sdk that is specfied in the <filename>metadata</filename> file
in the directory is mounted at <filename>/usr</filename> and the
<filename>files</filename> and <filename>var</filename> subdirectories
- are mounted at <filename>/self</filename> and <filename>/var</filename>,
+ are mounted at <filename>/app</filename> and <filename>/var</filename>,
respectively. They are writable, and their contents are preserved between
build commands, to allow accumulating build artifacts there.
</para>
diff --git a/doc/xdg-app-run.xml b/doc/xdg-app-run.xml
index 4ddee7b..d5e1728 100644
--- a/doc/xdg-app-run.xml
+++ b/doc/xdg-app-run.xml
@@ -49,7 +49,7 @@
xdg-app creates a sandboxed environment for the application to run in
by mounting the right runtime at <filename>/usr</filename> and a writable
directory at <filename>/var</filename>, whose content is preserved between
- application runs. The application itself is mounted at <filename>/self</filename>.
+ application runs. The application itself is mounted at <filename>/app</filename>.
</para>
<para>
The details of the sandboxed environment are controlled by the application
diff --git a/triggers/desktop-database.trigger b/triggers/desktop-database.trigger
index 8270383..ec89865 100755
--- a/triggers/desktop-database.trigger
+++ b/triggers/desktop-database.trigger
@@ -1,5 +1,5 @@
#!/bin/sh
-if test \( -x "$(which update-desktop-database 2>/dev/null)" \) -a \( -d /self/exports/share/applications \); then
- exec update-desktop-database -q /self/exports/share/applications
+if test \( -x "$(which update-desktop-database 2>/dev/null)" \) -a \( -d /app/exports/share/applications \); then
+ exec update-desktop-database -q /app/exports/share/applications
fi
diff --git a/triggers/gtk-icon-cache.trigger b/triggers/gtk-icon-cache.trigger
index 9b02b9c..1afa239 100755
--- a/triggers/gtk-icon-cache.trigger
+++ b/triggers/gtk-icon-cache.trigger
@@ -1,8 +1,8 @@
#!/bin/sh
-if test \( -x "$(which gtk-update-icon-cache 2>/dev/null)" \) -a \( -d /self/exports/share/icons/hicolor \); then
- cp /usr/share/icons/hicolor/index.theme /self/exports/share/icons/hicolor/
- for dir in /self/exports/share/icons/*; do
+if test \( -x "$(which gtk-update-icon-cache 2>/dev/null)" \) -a \( -d /app/exports/share/icons/hicolor \); then
+ cp /usr/share/icons/hicolor/index.theme /app/exports/share/icons/hicolor/
+ for dir in /app/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"
diff --git a/triggers/mime-database.trigger b/triggers/mime-database.trigger
index 8a6d3ae..f8edc17 100755
--- a/triggers/mime-database.trigger
+++ b/triggers/mime-database.trigger
@@ -1,5 +1,5 @@
#!/bin/sh
-if test \( -x "$(which update-mime-database 2>/dev/null)" \) -a \( -d /self/exports/share/mime/packages \); then
- exec update-mime-database /self/exports/share/mime
+if test \( -x "$(which update-mime-database 2>/dev/null)" \) -a \( -d /app/exports/share/mime/packages \); then
+ exec update-mime-database /app/exports/share/mime
fi
diff --git a/xdg-app-builtins-run.c b/xdg-app-builtins-run.c
index fd8a9c7..190374a 100644
--- a/xdg-app-builtins-run.c
+++ b/xdg-app-builtins-run.c
@@ -66,7 +66,7 @@ add_extension_arg (const char *directory,
is_app = strcmp (type, "app") == 0;
- full_directory = g_build_filename (is_app ? "/self" : "/usr", directory, NULL);
+ full_directory = g_build_filename (is_app ? "/app" : "/usr", directory, NULL);
extension_ref = g_build_filename (type, extension, arch, branch, NULL);
deploy = xdg_app_find_deploy_dir_for_ref (extension_ref, cancellable, NULL);
diff --git a/xdg-app-helper.c b/xdg-app-helper.c
index 4f33376..61abf3e 100644
--- a/xdg-app-helper.c
+++ b/xdg-app-helper.c
@@ -298,11 +298,11 @@ usage (char **argv)
fprintf (stderr, "usage: %s [OPTIONS...] RUNTIMEPATH COMMAND [ARGS...]\n\n", argv[0]);
fprintf (stderr,
- " -a Specify path for application (mounted at /self)\n"
- " -b SOURCE=DEST Bind extra source directory into DEST (must be in /usr, /self, /run/host)\n"
+ " -a Specify path for application (mounted at /app)\n"
+ " -b SOURCE=DEST Bind extra source directory into DEST (must be in /usr, /app, /run/host)\n"
" -d SOCKETPATH Use SOCKETPATH as dbus session bus\n"
" -D SOCKETPATH Use SOCKETPATH as dbus system bus\n"
- " -e Make /self/exports writable\n"
+ " -e Make /app/exports writable\n"
" -E Make /etc a pure symlink to /usr/etc\n"
" -f Mount the host filesystems\n"
" -g Allow use of direct rendering graphics\n"
@@ -316,7 +316,7 @@ usage (char **argv)
" -p SOCKETPATH Use SOCKETPATH as pulseaudio connection\n"
" -s Share Shm namespace with session\n"
" -v PATH Mount PATH as /var\n"
- " -w Make /self writable\n"
+ " -w Make /app writable\n"
" -W Make /usr writable\n"
" -x SOCKETPATH Use SOCKETPATH as X display\n"
" -y SOCKETPATH Use SOCKETPATH as Wayland display\n"
@@ -388,7 +388,9 @@ static const create_table_t create[] = {
{ FILE_TYPE_DIR, ".oldroot", 0755 },
{ FILE_TYPE_DIR, "usr", 0755 },
{ FILE_TYPE_DIR, "tmp", 01777 },
- { FILE_TYPE_DIR, "self", 0755},
+ { FILE_TYPE_DIR, "app", 0755},
+ /* Backwards compat, the app prefix used to be /self */
+ { FILE_TYPE_SYMLINK, "self", 0755, "app"},
{ FILE_TYPE_DIR, "run", 0755},
{ FILE_TYPE_DIR, "run/host", 0755},
{ FILE_TYPE_DIR, "run/dbus", 0755},
@@ -469,7 +471,7 @@ static const mount_table_t mount_table[] = {
const char *dont_mount_in_root[] = {
".", "..", "lib", "lib32", "lib64", "bin", "sbin", "usr", "boot", "root",
- "tmp", "etc", "self", "run", "proc", "sys", "dev", "var"
+ "tmp", "etc", "self", "app", "run", "proc", "sys", "dev", "var"
};
typedef enum {
@@ -1514,9 +1516,9 @@ main (int argc,
die ("Too many extra directories");
if (strncmp (optarg, "/usr/", strlen ("/usr/")) != 0 &&
- strncmp (optarg, "/self/", strlen ("/self/")) != 0 &&
+ strncmp (optarg, "/app/", strlen ("/app/")) != 0 &&
strncmp (optarg, "/run/host/", strlen ("/run/host/")) != 0)
- die ("Extra directories must be in /usr, /self or /run/host");
+ die ("Extra directories must be in /usr, /app or /run/host");
extra_dirs[n_extra_dirs].dest = optarg + 1;
extra_dirs[n_extra_dirs].src = tmp;
@@ -1705,18 +1707,18 @@ main (int argc,
if (app_path != NULL)
{
- if (bind_mount (app_path, "self", BIND_PRIVATE | (writable_app?0:BIND_READONLY)))
- die_with_error ("mount self");
+ if (bind_mount (app_path, "app", BIND_PRIVATE | (writable_app?0:BIND_READONLY)))
+ die_with_error ("mount app");
if (lock_files)
- add_lock_dir ("self");
+ add_lock_dir ("app");
if (!writable_app && writable_exports)
{
char *exports = strconcat (app_path, "/exports");
- if (bind_mount (exports, "self/exports", BIND_PRIVATE))
- die_with_error ("mount self/exports");
+ if (bind_mount (exports, "app/exports", BIND_PRIVATE))
+ die_with_error ("mount app/exports");
free (exports);
}
diff --git a/xdg-app-run.c b/xdg-app-run.c
index afe00de..3eed49b 100644
--- a/xdg-app-run.c
+++ b/xdg-app-run.c
@@ -390,21 +390,21 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
}
static const struct {const char *env; const char *val;} default_exports[] = {
- {"PATH","/self/bin:/usr/bin"},
+ {"PATH","/app/bin:/usr/bin"},
{"LD_LIBRARY_PATH", ""},
- {"_LD_LIBRARY_PATH", "/self/lib"},
- {"XDG_CONFIG_DIRS","/self/etc/xdg:/etc/xdg"},
- {"XDG_DATA_DIRS","/self/share:/usr/share"},
- {"GI_TYPELIB_PATH","/self/lib/girepository-1.0"},
+ {"_LD_LIBRARY_PATH", "/app/lib"},
+ {"XDG_CONFIG_DIRS","/app/etc/xdg:/etc/xdg"},
+ {"XDG_DATA_DIRS","/app/share:/usr/share"},
+ {"GI_TYPELIB_PATH","/app/lib/girepository-1.0"},
{"SHELL","/bin/sh"},
};
static const struct {const char *env; const char *val;} devel_exports[] = {
- {"ACLOCAL_PATH","/self/share/aclocal"},
- {"C_INCLUDE_PATH","/self/include"},
- {"CPLUS_INCLUDE_PATH","/self/include"},
- {"LDFLAGS","-L/self/lib "},
- {"PKG_CONFIG_PATH","/self/lib/pkgconfig:/self/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"},
+ {"ACLOCAL_PATH","/app/share/aclocal"},
+ {"C_INCLUDE_PATH","/app/include"},
+ {"CPLUS_INCLUDE_PATH","/app/include"},
+ {"LDFLAGS","-L/app/lib "},
+ {"PKG_CONFIG_PATH","/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"},
{"LC_ALL","en_US.utf8"},
};