Lines 7-21
CROSSDEV_VER="@CDEVPV@"
Link Here
|
7 |
cd / |
7 |
cd / |
8 |
umask 0022 #159111 |
8 |
umask 0022 #159111 |
9 |
|
9 |
|
10 |
: ${ROOT:=/} |
10 |
EPREFIX="@GENTOO_PORTAGE_EPREFIX@" |
11 |
if [[ ${ROOT} != "/" ]] ; then |
11 |
[[ "${EPREFIX}" != "@"GENTOO_PORTAGE_EPREFIX"@" ]] || \ |
|
|
12 |
EPREFIX="" |
13 |
|
14 |
: ${ROOT:=${EPREFIX}} |
15 |
if [[ ${ROOT} != "${EPREFIX}" ]] ; then |
12 |
echo "Sorry, but crossdev does not support ROOT." 1>&2 |
16 |
echo "Sorry, but crossdev does not support ROOT." 1>&2 |
13 |
exit 2 |
17 |
exit 2 |
14 |
fi |
18 |
fi |
15 |
|
19 |
|
|
|
20 |
: ${PORTAGE_CONFIGROOT:="${EPREFIX}"} |
16 |
CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage" |
21 |
CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage" |
17 |
|
22 |
|
18 |
source /etc/init.d/functions.sh || exit 1 |
23 |
source "${EPREFIX}"/etc/init.d/functions.sh || exit 1 |
19 |
esyslog() { :; } |
24 |
esyslog() { :; } |
20 |
die_logs() { |
25 |
die_logs() { |
21 |
echo |
26 |
echo |
Lines 400-406
setup_portage_vars() {
Link Here
|
400 |
fi |
405 |
fi |
401 |
|
406 |
|
402 |
# make sure we have a valid logdir |
407 |
# make sure we have a valid logdir |
403 |
: ${PORT_LOGDIR:=/var/log/portage} |
408 |
: ${PORT_LOGDIR:="${EPREFIX}"/var/log/portage} |
404 |
xmkdir -p "${PORT_LOGDIR}" |
409 |
xmkdir -p "${PORT_LOGDIR}" |
405 |
} |
410 |
} |
406 |
|
411 |
|
Lines 421-428
uninstall() {
Link Here
|
421 |
done |
426 |
done |
422 |
rm -rf "${CONFIGROOT}"/env/cross-${CTARGET} |
427 |
rm -rf "${CONFIGROOT}"/env/cross-${CTARGET} |
423 |
rmdir "${CONFIGROOT}"/env 2>/dev/null |
428 |
rmdir "${CONFIGROOT}"/env 2>/dev/null |
424 |
rm -f /etc/revdep-rebuild/05cross-${CTARGET} |
429 |
rm -f "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET} |
425 |
rmdir /etc/revdep-rebuild 2>/dev/null |
430 |
rmdir "${EPREFIX}"/etc/revdep-rebuild 2>/dev/null |
426 |
|
431 |
|
427 |
# Unmerge all toolchain packages for this target. |
432 |
# Unmerge all toolchain packages for this target. |
428 |
qmerge -Uqy $(qlist -IC "cross-${CTARGET}/") |
433 |
qmerge -Uqy $(qlist -IC "cross-${CTARGET}/") |
Lines 433-461
uninstall() {
Link Here
|
433 |
gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \ |
438 |
gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \ |
434 |
ranlib readelf size strings strip windmc windres |
439 |
ranlib readelf size strings strip windmc windres |
435 |
do |
440 |
do |
436 |
rm -f /usr/bin/${CTARGET}-${f} /usr/${CTARGET}/bin/${f} |
441 |
rm -f "${EPREFIX}"/usr/bin/${CTARGET}-${f} "${EPREFIX}"/usr/${CTARGET}/bin/${f} |
437 |
done |
442 |
done |
438 |
rm -f /usr/${CTARGET}/{sys-include,usr} |
443 |
rm -f "${EPREFIX}"/usr/${CTARGET}/{sys-include,usr} |
439 |
rmdir /usr/${CTARGET}/{include/asm,include} 2>/dev/null |
444 |
rmdir "${EPREFIX}"/usr/${CTARGET}/{include/asm,include} 2>/dev/null |
440 |
rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov} |
445 |
rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov} |
441 |
rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET} |
446 |
rm -f "${EPREFIX}"/etc/env.d/{binutils,gcc}/config-${CTARGET} |
442 |
|
447 |
|
443 |
# clean out files from crossdev itself |
448 |
# clean out files from crossdev itself |
444 |
[[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET} |
449 |
[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET} |
445 |
rm -f /usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} /usr/bin/emerge-${CTARGET} |
450 |
rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET} |
446 |
|
451 |
|
447 |
for f in make.{conf,globals,profile} ; do |
452 |
for f in make.{conf,globals,profile} ; do |
448 |
f="/usr/${CTARGET}/etc/${f}" |
453 |
f="${EPREFIX}/usr/${CTARGET}/etc/${f}" |
449 |
[[ -L ${f} ]] && rm -f ${f} |
454 |
[[ -L ${f} ]] && rm -f ${f} |
450 |
f="/usr/${CTARGET}/etc/portage/${f##*/}" |
455 |
f="${EPREFIX}/usr/${CTARGET}/etc/portage/${f##*/}" |
451 |
[[ -L ${f} ]] && rm -f ${f} |
456 |
[[ -L ${f} ]] && rm -f ${f} |
452 |
done |
457 |
done |
453 |
find /usr/share/crossdev/etc/ -type f | \ |
458 |
find "${EPREFIX}"/usr/share/crossdev/etc/ -type f | \ |
454 |
while read f ; do |
459 |
while read f ; do |
455 |
f1=${f} |
460 |
f1=${f} |
456 |
[[ ! -e ${f1} ]] && continue |
461 |
[[ ! -e ${f1} ]] && continue |
457 |
m1=$(set -- `md5sum ${f1}`; echo $1) |
462 |
m1=$(set -- `md5sum ${f1}`; echo $1) |
458 |
f2=/usr/${CTARGET}${f#/usr/share/crossdev} |
463 |
f2=${EPREFIX}/usr/${CTARGET}${f#/usr/share/crossdev} |
459 |
[[ ! -e ${f2} ]] && continue |
464 |
[[ ! -e ${f2} ]] && continue |
460 |
m2=$(set -- `md5sum ${f2}`; echo $1) |
465 |
m2=$(set -- `md5sum ${f2}`; echo $1) |
461 |
if [[ ${m1} == ${m2} ]] ; then |
466 |
if [[ ${m1} == ${m2} ]] ; then |
Lines 464-470
uninstall() {
Link Here
|
464 |
done |
469 |
done |
465 |
|
470 |
|
466 |
# clean out the sysroot, prompting the user if need be |
471 |
# clean out the sysroot, prompting the user if need be |
467 |
for d in /usr/lib/gcc{,-lib}/${CTARGET} /usr/${CTARGET} ; do |
472 |
for d in "${EPREFIX}"/usr/lib/gcc{,-lib}/${CTARGET} "${EPREFIX}"/usr/${CTARGET} ; do |
468 |
if [[ ! -d ${d} ]] ; then |
473 |
if [[ ! -d ${d} ]] ; then |
469 |
rm -f "${d}" |
474 |
rm -f "${d}" |
470 |
else |
475 |
else |
Lines 540-548
hr() {
Link Here
|
540 |
|| c=${c##* } |
545 |
|| c=${c##* } |
541 |
fi |
546 |
fi |
542 |
local ext=${1:- _ - ~ -} |
547 |
local ext=${1:- _ - ~ -} |
543 |
local sext=${ext//?/ } |
548 |
local sext=${ext/?/ } |
544 |
local br=$(printf "%$((c + ${#ext}))s") |
549 |
local br=$(printf "%$((c + ${#ext}))s") |
545 |
local banner=${br//${sext}/${ext}} |
550 |
local banner=${br/${sext}/${ext}} |
546 |
echo "${banner:0:${c}}" |
551 |
echo "${banner:0:${c}}" |
547 |
} |
552 |
} |
548 |
ver_get_op() { |
553 |
ver_get_op() { |
Lines 970-976
set_env() {
Link Here
|
970 |
output="env/cross-${CTARGET}/${pkg}.conf" |
975 |
output="env/cross-${CTARGET}/${pkg}.conf" |
971 |
cat <<-EOF > "${output}" |
976 |
cat <<-EOF > "${output}" |
972 |
SYMLINK_LIB=no |
977 |
SYMLINK_LIB=no |
973 |
COLLISION_IGNORE="\${COLLISION_IGNORE} /usr/lib/debug/.build-id" |
978 |
COLLISION_IGNORE="\${COLLISION_IGNORE} ${EPREFIX}/usr/lib/debug/.build-id" |
974 |
$(printf '%b' "${env}") |
979 |
$(printf '%b' "${env}") |
975 |
$(printf '%b' "${AENV}") |
980 |
$(printf '%b' "${AENV}") |
976 |
EOF |
981 |
EOF |
Lines 1124-1138
for_each_extra_pkg set_portage X
Link Here
|
1124 |
set_metadata |
1129 |
set_metadata |
1125 |
|
1130 |
|
1126 |
# filter out revdep rebuild stuff #182601 |
1131 |
# filter out revdep rebuild stuff #182601 |
1127 |
xmkdir -p /etc/revdep-rebuild |
1132 |
xmkdir -p "${EPREFIX}"/etc/revdep-rebuild |
1128 |
echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET} |
1133 |
echo "SEARCH_DIRS_MASK=${EPREFIX}/usr/${CTARGET}" > "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET} |
1129 |
|
1134 |
|
1130 |
hr |
1135 |
hr |
1131 |
|
1136 |
|
1132 |
####################################### |
1137 |
####################################### |
1133 |
### Create links for helper scripts ### |
1138 |
### Create links for helper scripts ### |
1134 |
|
1139 |
|
1135 |
xmkdir -p /usr/${CTARGET} |
1140 |
xmkdir -p "${EPREFIX}"/usr/${CTARGET} |
1136 |
emerge-wrapper --target ${CTARGET} --init || exit 1 |
1141 |
emerge-wrapper --target ${CTARGET} --init || exit 1 |
1137 |
|
1142 |
|
1138 |
################# |
1143 |
################# |