summaryrefslogtreecommitdiffstats
path: root/bin/prepall
diff options
context:
space:
mode:
Diffstat (limited to 'bin/prepall')
-rwxr-xr-xbin/prepall13
1 files changed, 13 insertions, 0 deletions
diff --git a/bin/prepall b/bin/prepall
index 118b85d8b..68af880dc 100755
--- a/bin/prepall
+++ b/bin/prepall
@@ -5,6 +5,14 @@
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
+if type -p chflags &>/dev/null && type -p mtree &>/dev/null; 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.
+ chflags -R noschg,nouchg,nosappnd,nouappnd "${D}"
+ chflags -R nosunlnk,nouunlnk "${D}" 2>/dev/null
+fi
+
prepallman
prepallinfo
prepallstrip
@@ -88,3 +96,8 @@ for d in "${D}"lib* "${D}"usr/lib* ; do
done
fi
+
+if type -p chflags &>/dev/null && type -p mtree &>/dev/null; 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