From 835542154cc7757b01587b967c7d893393e0b1a8 Mon Sep 17 00:00:00 2001 From: Zdenek Behan Date: Mon, 21 Nov 2011 03:18:33 +0000 Subject: [PATCH] cros_workon: recreate all workon file symlinks unconditionally Also, remove legacy conversion code slated for deletion long ago. BUG=chromium-os:23096 TEST=have a chroot with invalid symlink in package.*/ and observe the fix Change-Id: I04ecdf28038b63d48cf7d0768c0ccf5ac8f0c0d2 Reviewed-on: https://gerrit.chromium.org/gerrit/11978 Reviewed-by: Mandeep Singh Baines Commit-Ready: Zdenek Behan Tested-by: Zdenek Behan --- cros_workon | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/cros_workon b/cros_workon index 6272217caa..6f4ecc2593 100755 --- a/cros_workon +++ b/cros_workon @@ -77,25 +77,22 @@ UNMASK_FILE=${UNMASK_DIR}/cros-workon CHROME_ATOM=chromeos-base/chromeos-chrome CHROME_SET_VER=${CHROMITE_DIR}/bin/chrome_set_ver.py -# TODO(msb): remove the backward compatibility after 10/01/2010 -if [ -d "${WORKON_DIR}" ]; then - sudo chown -R "${USER}" "${WORKON_DIR}" -fi - mkdir -p "${WORKON_DIR}" || die "mkdir -p ${WORKON_DIR}" touch "${WORKON_FILE}" || die "touch ${WORKON_FILE}" sudo mkdir -p "${KEYWORDS_DIR}" "${UNMASK_DIR}" || \ die "mkdir -p ${KEYWORDS_DIR} ${UNMASK_DIR}" -if [ ! -L "${KEYWORDS_FILE}" ]; then - sudo rm -f "${KEYWORDS_FILE}" - sudo ln -s "${WORKON_FILE}" "${KEYWORDS_FILE}" || \ - die "ln -s ${WORKON_FILE} ${KEYWORDS_FILE}" -fi -if [ ! -L "${UNMASK_FILE}" ]; then - [ -f "${UNMASK_FILE}" ] && sudo mv "${UNMASK_FILE}" "${WORKON_FILE}" - sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \ - die "ln -s ${WORKON_FILE} ${UNMASK_FILE}" -fi + +# Clobber and re-create the WORKON_FILE symlinks every time. This +# is a trivial operation and eliminates all kinds of corner cases +# as well as any possible future renames of WORKON_FILE. +# In particular, chroot is usually built as "amd64-host" but becomes +# just "host" after installation. crosbug.com/23096 +sudo rm -f "${KEYWORDS_FILE}" "${UNMASK_FILE}" +sudo ln -s "${WORKON_FILE}" "${KEYWORDS_FILE}" || \ + die "ln -s ${WORKON_FILE} ${KEYWORDS_FILE}" +sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \ + die "ln -s ${WORKON_FILE} ${UNMASK_FILE}" + find_keyword_workon_ebuilds() { local keyword="${1}"