From 8b06bd59261bcfe35aaebd0c6e3b45b0b890c1f2 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 4 Jun 2012 19:59:32 -0400 Subject: [PATCH] update hooks: migrate paths to userpriv settings (part 2) The previous upgrade hook didn't change all the perms on files in the host distdir because the default value expands to a symlink which `find` did not walk. Add the -H flag to make that happen. For people who haven't upgraded yet, stub out the existing 38 hook. BUG=chromium-os:3616 TEST=add a root owned file to host distdir, run ./update_chroot, see file owners fixed Change-Id: I3f5f88b4fb1d27ce588a342331ad10e957961bcc Reviewed-on: https://gerrit.chromium.org/gerrit/24459 Reviewed-by: Zdenek Behan Commit-Ready: Mike Frysinger Tested-by: Mike Frysinger --- chroot_version_hooks.d/38_host_userpriv | 16 +++------------- chroot_version_hooks.d/39_host_userpriv_better | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 chroot_version_hooks.d/39_host_userpriv_better diff --git a/chroot_version_hooks.d/38_host_userpriv b/chroot_version_hooks.d/38_host_userpriv index 8178f88069..9b297056db 100644 --- a/chroot_version_hooks.d/38_host_userpriv +++ b/chroot_version_hooks.d/38_host_userpriv @@ -2,16 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# Migrate to userpriv for building things. We need to clean out old -# dirs that might have files owned by root:root. - -eval $(portageq envvar -v PORTAGE_{TMPDIR,USERNAME,GRPNAME} DISTDIR PKGDIR) -: ${PORTAGE_TMPDIR:=/var/tmp/portage} -: ${PORTAGE_USERNAME:=${USER}} -: ${PORTAGE_GRPNAME:=portage} -: ${DISTDIR:=/var/cache/distfiles/host} -: ${PKGDIR:=/var/lib/portage/pkgs} - -exec sudo find "${PORTAGE_TMPDIR}" "${DISTDIR}" "${PKGDIR}" \ - '(' -uid 0 -o -gid 0 ')' \ - -exec chown -h "${PORTAGE_USERNAME}:${PORTAGE_GRPNAME}" {} + +# The previous one had a bug, so we moved it to 39 and fixed the bug +# (missing -H flag to find). +exit 0 diff --git a/chroot_version_hooks.d/39_host_userpriv_better b/chroot_version_hooks.d/39_host_userpriv_better new file mode 100644 index 0000000000..056c9cf6f4 --- /dev/null +++ b/chroot_version_hooks.d/39_host_userpriv_better @@ -0,0 +1,17 @@ +# Copyright (c) 2012 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. + +# Migrate to userpriv for building things. We need to clean out old +# dirs that might have files owned by root:root. + +eval $(portageq envvar -v PORTAGE_{TMPDIR,USERNAME,GRPNAME} DISTDIR PKGDIR) +: ${PORTAGE_TMPDIR:=/var/tmp/portage} +: ${PORTAGE_USERNAME:=${USER}} +: ${PORTAGE_GRPNAME:=portage} +: ${DISTDIR:=/var/cache/distfiles/host} +: ${PKGDIR:=/var/lib/portage/pkgs} + +exec sudo find -H "${PORTAGE_TMPDIR}" "${DISTDIR}" "${PKGDIR}" \ + '(' -uid 0 -o -gid 0 ')' \ + -exec chown -h "${PORTAGE_USERNAME}:${PORTAGE_GRPNAME}" {} +