summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2013-07-05 17:29:07 -0400
committerColin Walters <walters@verbum.org>2013-07-05 17:29:07 -0400
commitecb3f0de035c09d8b280ac116eeede483638fd5d (patch)
treea67835449169e25ad7674262d39ada3296b10fd2
parente8cba55a343fd192d71834aec99d2f3f10e209b4 (diff)
downloadostree-ecb3f0de035c09d8b280ac116eeede483638fd5d.tar.gz
deploy: Error out if we see usr/etc
This version of the code doesn't know what to do with new-model trees, so just abort if we see that. We'll likely never care about upgrades from 1.0 to 2.0.
-rw-r--r--src/ostree/ot-admin-builtin-deploy.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ostree/ot-admin-builtin-deploy.c b/src/ostree/ot-admin-builtin-deploy.c
index 45697618..c13ac56b 100644
--- a/src/ostree/ot-admin-builtin-deploy.c
+++ b/src/ostree/ot-admin-builtin-deploy.c
@@ -509,6 +509,7 @@ deploy_tree (OtAdminDeploy *self,
{
ProcessOneCheckoutData checkout_data;
ot_lobj GFile *triggers_run_path = NULL;
+ gs_unref_object GFile *usr_etc_path = NULL;
g_print ("ostadmin: Creating deployment %s\n",
gs_file_get_path_cached (self->deploy_target_path));
@@ -528,6 +529,14 @@ deploy_tree (OtAdminDeploy *self,
if (checkout_data.caught_error)
goto out;
+ usr_etc_path = g_file_resolve_relative_path (deploy_target_path_tmp, "usr/etc");
+ if (g_file_query_exists (usr_etc_path, NULL))
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
+ "Error: This tree contains usr/etc; it is likely an OS in version 2.0 format, and this version of OSTree does not support it");
+ goto out;
+ }
+
triggers_run_path = g_file_resolve_relative_path (deploy_target_path_tmp, "usr/share/ostree/triggers-run");
if (!g_file_query_exists (triggers_run_path, NULL))