From 11c12cc19a2d9e75038b9ab7e57213fa63316abe Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 30 Apr 2018 14:41:30 -0400 Subject: [PATCH] deploy: Don't prune repo at finalization time by default Doing so can break rpm-ostree, which wants to own the cleanup process to ensure its baselayer refs are generated. Further, doing the cleanup at shutdown time adds latency. It's also going to be generally unnecessary as we expect repo pruning to have been done when writing the refs. Closes: #1567 Approved by: jlebon --- src/libostree/ostree-sysroot-deploy.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 4314520a..ea9dcb29 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -2799,13 +2799,23 @@ _ostree_sysroot_finalize_staged (OstreeSysroot *self, staged->staged = FALSE; g_ptr_array_remove_index (self->deployments, 0); - /* TODO: Proxy across flags too? */ - OstreeSysrootSimpleWriteDeploymentFlags flags = 0; + /* TODO: Proxy across flags too? + * + * But note that we always use NO_CLEAN to avoid adding more latency at + * shutdown, and also because e.g. rpm-ostree wants to own the cleanup + * process. + */ + OstreeSysrootSimpleWriteDeploymentFlags flags = + OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NO_CLEAN; if (!ostree_sysroot_simple_write_deployment (self, ostree_deployment_get_osname (staged), staged, merge_deployment, flags, cancellable, error)) return FALSE; + /* Do the basic cleanup that may impact /boot, but not the repo pruning */ + if (!ostree_sysroot_prepare_cleanup (self, cancellable, error)) + return FALSE; + return TRUE; }