aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-12-24 08:12:59 -0500
committerMike Frysinger <vapier@gentoo.org>2009-12-24 08:14:55 -0500
commit8bba06bce04fa3124f29d3c4a2f9a5b7b10487fe (patch)
treec7e511438e7e162a0b96f4bf46e9c70cb8efc82a
parentsite: revert files to last release (diff)
downloadcrossdev-8bba06bce04fa3124f29d3c4a2f9a5b7b10487fe.tar.gz
crossdev-8bba06bce04fa3124f29d3c4a2f9a5b7b10487fe.tar.bz2
crossdev-8bba06bce04fa3124f29d3c4a2f9a5b7b10487fe.zip
crossdev: store ABI in /etc/portage/env/
Storing the ABI in the per-package env should fix upgrades down without crossdev in the mix. URL: http://bugs.gentoo.org/261070 Reported-by: Thomas Capricelli <orzel@freehackers.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rwxr-xr-xcrossdev21
1 files changed, 18 insertions, 3 deletions
diff --git a/crossdev b/crossdev
index e3d9b29..5325d5c 100755
--- a/crossdev
+++ b/crossdev
@@ -256,10 +256,13 @@ uninstall() {
f="/etc/portage/${f}"
if [[ -d ${f} ]] ; then
rm -f "${f}"/cross-${CTARGET}
+ rmdir "${f}" 2>/dev/null
elif [[ -f ${f} ]] ; then
sed -i -e "/cross-${CTARGET}\//d" "${f}"
fi
done
+ rm -rf /etc/portage/env/cross-${CTARGET}
+ rmdir /etc/portage/env 2>/dev/null
rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
@@ -561,6 +564,20 @@ set_links() {
ln -s "${srcdir}"/${cat}/${pkg} "${d}"
fi
}
+set_env() {
+ local pkg=$1
+ mkdir -p env/cross-${CTARGET}
+
+ cat <<-EOF > env/cross-${CTARGET}/${pkg}
+ # make sure multilib crap doesn't screw us over
+ ABI=${ABI:-pos}
+ LIBDIR_pos="lib"
+ CFLAGS_pos=
+ CPPFLAGS_pos=
+ CXXFLAGS_pos=
+ LDFLAGS_pos=
+ EOF
+}
set_portage() {
local cat=$1 pkg=$2 ver=$3
shift ; shift ; shift
@@ -571,6 +588,7 @@ set_portage() {
set_keywords ${pkg} ${ver}
set_use ${pkg} ${use}
set_links ${cat} ${pkg}
+ set_env ${pkg}
}
mkdir -p /etc/portage
@@ -653,9 +671,6 @@ export FEATURES="${FEATURES} -stricter"
# maybe someday this work, but that day != today
USE="${USE} -selinux"
-# make sure multilib crap doesn't screw us over
-export ABI=${ABI:-pos} LIBDIR_pos="lib" CFLAGS_pos="" LDFLAGS_pos=""
-
# only allow UCLIBC_CPU from env, not from make.conf/profile
export UCLIBC_CPU=${UCLIBC_CPU}