From f0cf5a75c49cc238be932e28e25a203ebbb42ce2 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 13 Apr 2009 21:21:53 +0000 Subject: Make portage.bsd_chflags correspond to FEATURES=chflags so that it can be used for related conditionals in shell code. svn path=/main/trunk/; revision=13342 --- bin/ebuild-helpers/prepall | 4 ++-- bin/ebuild.sh | 2 +- bin/misc-functions.sh | 6 ++---- pym/portage/__init__.py | 3 +++ 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/bin/ebuild-helpers/prepall b/bin/ebuild-helpers/prepall index eec5c814c..da37f571d 100755 --- a/bin/ebuild-helpers/prepall +++ b/bin/ebuild-helpers/prepall @@ -5,7 +5,7 @@ source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh -if type -P chflags > /dev/null && type -P mtree > /dev/null ; then +if hasq chflags $FEATURES ; then # Save all the file flags for restoration at the end of prepall. mtree -c -p "${D}" -k flags > "${T}/bsdflags.mtree" # Remove all the file flags so that prepall can do anything necessary. @@ -18,7 +18,7 @@ prepallinfo prepallstrip -if type -P chflags > /dev/null && type -P mtree > /dev/null; then +if hasq chflags $FEATURES ; then # Restore all the file flags that were saved at the beginning of prepall. mtree -U -e -p "${D}" -k flags < "${T}/bsdflags.mtree" &> /dev/null fi diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 8fad20b87..6e5d483e3 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -698,7 +698,7 @@ dyn_clean() { elif [ ! -d "${PORTAGE_BUILDDIR}" ] ; then return 0 fi - if type -P chflags > /dev/null ; then + if hasq chflags $FEATURES ; then chflags -R noschg,nouchg,nosappnd,nouappnd "${PORTAGE_BUILDDIR}" chflags -R nosunlnk,nouunlnk "${PORTAGE_BUILDDIR}" 2>/dev/null fi diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index 9ffbe0ecc..5e7d29b79 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -492,8 +492,7 @@ install_mask() { } preinst_bsdflags() { - type -P chflags > /dev/null || return 0 - type -P mtree > /dev/null || return 1 + hasq chflags $FEATURES || return # Save all the file flags for restoration after installation. mtree -c -p "${D}" -k flags > "${T}/bsdflags.mtree" # Remove all the file flags so that the merge phase can do anything @@ -503,8 +502,7 @@ preinst_bsdflags() { } postinst_bsdflags() { - type -P chflags > /dev/null || return 0 - type -P mtree > /dev/null || return 1 + hasq chflags $FEATURES || return # Restore all the file flags that were saved before installation. mtree -e -p "${ROOT}" -U -k flags < "${T}/bsdflags.mtree" &> /dev/null } diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index a658f90a3..520eb61d8 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -1842,6 +1842,9 @@ class config(object): if "usersandbox" in self.features: self.features.remove("usersandbox") + if bsd_chflags: + self.features.add('chflags') + self["FEATURES"] = " ".join(sorted(self.features)) self.backup_changes("FEATURES") global _glep_55_enabled, _validate_cache_for_unsupported_eapis -- cgit v1.2.3-1-g7c22