diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 2e1f7f69..130351d7 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -1398,9 +1398,18 @@ flatpak_dir_ensure_repo (FlatpakDir *self, if (!g_file_query_exists (repodir, cancellable)) { - if (!ostree_repo_create (repo, - OSTREE_REPO_MODE_BARE_USER, - cancellable, error)) + OstreeRepoMode mode = OSTREE_REPO_MODE_BARE_USER; + +#if OSTREE_CHECK_VERSION(2017, 3) + { + const char *mode_env = g_getenv ("FLATPAK_OSTREE_REPO_MODE"); + + if (g_strcmp0 (mode_env, "user-only") == 0) + mode = OSTREE_REPO_MODE_BARE_USER_ONLY; + } +#endif + + if (!ostree_repo_create (repo, mode, cancellable, error)) { flatpak_rm_rf (repodir, cancellable, NULL); goto out; @@ -4529,9 +4538,9 @@ flatpak_dir_create_system_child_repo (FlatpakDir *self, repo_dir_config = g_file_get_child (repo_dir, "config"); if (!g_file_query_exists (repo_dir_config, NULL)) { - if (!ostree_repo_create (new_repo, - OSTREE_REPO_MODE_BARE_USER, - NULL, error)) + OstreeRepoMode parent_mode = ostree_repo_get_mode (self->repo); + + if (!ostree_repo_create (new_repo, parent_mode, NULL, error)) return NULL; } else