summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/ebuild-helpers/prepall4
-rwxr-xr-xbin/ebuild.sh2
-rwxr-xr-xbin/misc-functions.sh6
-rw-r--r--pym/portage/__init__.py3
4 files changed, 8 insertions, 7 deletions
diff --git a/bin/ebuild-helpers/prepall b/bin/ebuild-helpers/prepall
index eec5c814..da37f571 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 8fad20b8..6e5d483e 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 9ffbe0ec..5e7d29b7 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 8db058d0..ea30cdc4 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1832,6 +1832,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