From 3c1d3d8be6f0f8b3cc34fb762f997b39d4cc9c36 Mon Sep 17 00:00:00 2001 From: Zdenek Behan Date: Fri, 7 Oct 2011 01:36:36 +0200 Subject: [PATCH] update hooks: add a hook for fixing all pending config updates BUG=chromium-os:13987 TEST=below 1) export CONFIG_PROTECT="/etc /usr/share" 2) checkout as old as possible revision of cros-overlay, update chroot to it 3) checkout HEAD and update back 4) run the hook, see it update thousands of files correctly Change-Id: I4213de8ccba6e573541e96591ea0d033a10218a5 Reviewed-on: http://gerrit.chromium.org/gerrit/8938 Tested-by: Zdenek Behan Reviewed-by: Brian Harring Commit-Ready: Zdenek Behan --- .../12_clean_old_config_files | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 chroot_version_hooks.d/12_clean_old_config_files diff --git a/chroot_version_hooks.d/12_clean_old_config_files b/chroot_version_hooks.d/12_clean_old_config_files new file mode 100644 index 0000000000..a0a194bdc9 --- /dev/null +++ b/chroot_version_hooks.d/12_clean_old_config_files @@ -0,0 +1,24 @@ +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +info "Cleaning old configuration files, crosbug.com/13987" + +# The filesystem may be polluted by a lot of pending config file updates +# at this point. By changing CONFIG_PROTECT, several of these have become +# permanently stale, as neither tool considers them updates anymore. + +# First discard all updates in config files that are still protected, as +# governed by the current CONFIG_PROTECT. +# Autodiscard is option "-9" followed by the "YES" confirmation. +info "Discarding bad updates" +printf '%s\nYES\n' -9 | sudo etc-update + +# Overload CONFIG_PROTECT and automerge all possible updates in all sensible +# locations, that is all updates that should've been merged immediately in +# the first place. +# Automerge is the "-5" option. +info "Automerging good updates" +echo "-5" | sudo CONFIG_PROTECT="/etc /usr/share" etc-update + +exit 0