From eeaf674db40f5c86bb516d7e5404b5c3006dbe02 Mon Sep 17 00:00:00 2001 From: Zdenek Behan Date: Thu, 13 Oct 2011 18:31:28 +0200 Subject: [PATCH] update hooks: 3c1d3d8be6f0f8b3cc34fb762f997b39d4cc9c36, take two 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: Idabf5475516ed58b76ceee6ffdc817a5f46839ad Reviewed-on: http://gerrit.chromium.org/gerrit/10022 Reviewed-by: Sameer Nanda Tested-by: 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