Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 384167 | Differences between
and this patch

Collapse All | Expand All

(-)a/Makefile (+2 lines)
Lines 4-9 Link Here
4
include settings.mk
4
include settings.mk
5
5
6
all:
6
all:
7
	sed -i -e "s,@GENTOO_PORTAGE_EPREFIX@,$(EPREFIX),g" crossdev
8
	$(MAKE) -C wrappers
7
9
8
install:
10
install:
9
	$(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/
11
	$(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/
(-)a/crossdev (-26 / +32 lines)
Lines 12-20 if [[ ${ROOT:-/} != "/" ]] ; then Link Here
12
	exit 2
12
	exit 2
13
fi
13
fi
14
14
15
EPREFIX="/home/benda/gnto"
16
if [[ ${EPREFIX} == "@"GENTOO_PORTAGE_EPREFIX"@" ]] ; then
17
	EPREFIX=""
18
fi
19
20
: ${PORTAGE_CONFIGROOT:="${EPREFIX}"}
15
CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage"
21
CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage"
16
22
17
source /etc/init.d/functions.sh || exit 1
23
source "${EPREFIX}"/etc/init.d/functions.sh || exit 1
18
esyslog() { :; }
24
esyslog() { :; }
19
die_logs() {
25
die_logs() {
20
	echo
26
	echo
Lines 316-322 setup_portage_vars() { Link Here
316
	CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *}
322
	CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *}
317
323
318
	# make sure we have a valid logdir
324
	# make sure we have a valid logdir
319
	: ${PORT_LOGDIR:=/var/log/portage}
325
	: ${PORT_LOGDIR:=${EPREFIX}/var/log/portage}
320
	mkdir -p "${PORT_LOGDIR}"
326
	mkdir -p "${PORT_LOGDIR}"
321
}
327
}
322
328
Lines 337-349 uninstall() { Link Here
337
	done
343
	done
338
	rm -rf "${CONFIGROOT}"/env/cross-${CTARGET}
344
	rm -rf "${CONFIGROOT}"/env/cross-${CTARGET}
339
	rmdir "${CONFIGROOT}"/env 2>/dev/null
345
	rmdir "${CONFIGROOT}"/env 2>/dev/null
340
	rm -f /etc/revdep-rebuild/05cross-${CTARGET}
346
	rm -f "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET}
341
	rmdir /etc/revdep-rebuild 2>/dev/null
347
	rmdir "${EPREFIX}"/etc/revdep-rebuild 2>/dev/null
342
348
343
	rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
349
	rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET} 2>/dev/null
344
	if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
350
	if [[ -d ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] ; then
345
		export CLEAN_DELAY=0
351
		export CLEAN_DELAY=0
346
		cd /var/db/pkg
352
		cd "${EPREFIX}"/var/db/pkg
347
		local pkgs=( cross-${CTARGET}/* )
353
		local pkgs=( cross-${CTARGET}/* )
348
		emerge -qC ${pkgs[@]/#/=} || exit 1
354
		emerge -qC ${pkgs[@]/#/=} || exit 1
349
	else
355
	else
Lines 356-384 uninstall() { Link Here
356
		gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \
362
		gcc-{ar,nm,ranlib} gccbug gprof ld nm objcopy objdump \
357
		ranlib readelf size strings strip windmc windres
363
		ranlib readelf size strings strip windmc windres
358
	do
364
	do
359
		rm -f /usr/bin/${CTARGET}-${f} /usr/${CTARGET}/bin/${f}
365
		rm -f "${EPREFIX}"/usr/bin/${CTARGET}-${f} "${EPREFIX}"/usr/${CTARGET}/bin/${f}
360
	done
366
	done
361
	rm -f /usr/${CTARGET}/{sys-include,usr}
367
	rm -f "${EPREFIX}"/usr/${CTARGET}/{sys-include,usr}
362
	rmdir /usr/${CTARGET}/{include/asm,include} 2>/dev/null
368
	rmdir "${EPREFIX}"/usr/${CTARGET}/{include/asm,include} 2>/dev/null
363
	rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov}
369
	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov}
364
	rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET}
370
	rm -f "${EPREFIX}"/etc/env.d/{binutils,gcc}/config-${CTARGET}
365
371
366
	# clean out files from crossdev itself
372
	# clean out files from crossdev itself
367
	[[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
373
	[[ -e ${EPREFIX}/var/db/pkg/cross-${CTARGET} ]] && rmdir "${EPREFIX}"/var/db/pkg/cross-${CTARGET}
368
	rm -f /usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} /usr/bin/emerge-${CTARGET}
374
	rm -f "${EPREFIX}"/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} "${EPREFIX}"/usr/bin/emerge-${CTARGET}
369
375
370
	for f in make.{conf,globals,profile} ; do
376
	for f in make.{conf,globals,profile} ; do
371
		f="/usr/${CTARGET}/etc/${f}"
377
		f="${EPREFIX}/usr/${CTARGET}/etc/${f}"
372
		[[ -L ${f} ]] && rm -f ${f}
378
		[[ -L ${f} ]] && rm -f ${f}
373
		f="/usr/${CTARGET}/etc/portage/${f##*/}"
379
		f="${EPREFIX}/usr/${CTARGET}/etc/portage/${f##*/}"
374
		[[ -L ${f} ]] && rm -f ${f}
380
		[[ -L ${f} ]] && rm -f ${f}
375
	done
381
	done
376
	find /usr/share/crossdev/etc/ -type f | \
382
	find "${EPREFIX}"/usr/share/crossdev/etc/ -type f | \
377
	while read f ; do
383
	while read f ; do
378
		f1=${f}
384
		f1=${f}
379
		[[ ! -e ${f1} ]] && continue
385
		[[ ! -e ${f1} ]] && continue
380
		m1=$(set -- `md5sum ${f1}`; echo $1)
386
		m1=$(set -- `md5sum ${f1}`; echo $1)
381
		f2=/usr/${CTARGET}${f#/usr/share/crossdev}
387
		f2=${EPREFIX}/usr/${CTARGET}${f#/usr/share/crossdev}
382
		[[ ! -e ${f2} ]] && continue
388
		[[ ! -e ${f2} ]] && continue
383
		m2=$(set -- `md5sum ${f2}`; echo $1)
389
		m2=$(set -- `md5sum ${f2}`; echo $1)
384
		if [[ ${m1} == ${m2} ]] ; then
390
		if [[ ${m1} == ${m2} ]] ; then
Lines 387-393 uninstall() { Link Here
387
	done
393
	done
388
394
389
	# clean out the sysroot, prompting the user if need be
395
	# clean out the sysroot, prompting the user if need be
390
	for d in /usr/lib/gcc{,-lib}/${CTARGET} /usr/${CTARGET} ; do
396
	for d in "${EPREFIX}"/usr/lib/gcc{,-lib}/${CTARGET} "${EPREFIX}"/usr/${CTARGET} ; do
391
		if [[ ! -d ${d} ]] ; then
397
		if [[ ! -d ${d} ]] ; then
392
			rm -f "${d}"
398
			rm -f "${d}"
393
		else
399
		else
Lines 441-449 hr() { Link Here
441
			|| c=${c##* }
447
			|| c=${c##* }
442
	fi
448
	fi
443
	local ext=${1:-  _  -  ~  -}
449
	local ext=${1:-  _  -  ~  -}
444
	local sext=${ext//?/ }
450
	local sext=${ext/?/ }
445
	local br=$(printf "%$((c + ${#ext}))s")
451
	local br=$(printf "%$((c + ${#ext}))s")
446
	local banner=${br//${sext}/${ext}}
452
	local banner=${br/${sext}/${ext}}
447
	echo "${banner:0:${c}}"
453
	echo "${banner:0:${c}}"
448
}
454
}
449
ver_get_op() {
455
ver_get_op() {
Lines 602-608 show_target_cfg() { Link Here
602
setup_portage_vars
608
setup_portage_vars
603
if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
609
if [[ -z ${CROSSDEV_OVERLAY} ]] ; then
604
	eerror "You need to specify an output overlay.  Please use --ov-output or set"
610
	eerror "You need to specify an output overlay.  Please use --ov-output or set"
605
	eerror "PORTDIR_OVERLAY in your make.conf.  A standard setting is: /usr/local/portage"
611
	eerror "PORTDIR_OVERLAY in your make.conf.  A standard setting is: ${EPREFIX}/usr/local/portage"
606
	exit 1
612
	exit 1
607
fi
613
fi
608
614
Lines 987-1007 done Link Here
987
set_metadata
993
set_metadata
988
994
989
# filter out revdep rebuild stuff #182601
995
# filter out revdep rebuild stuff #182601
990
mkdir -p /etc/revdep-rebuild
996
mkdir -p "${EPREFIX}"/etc/revdep-rebuild
991
echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET}
997
echo "SEARCH_DIRS_MASK=${EPREFIX}/usr/${CTARGET}" > "${EPREFIX}"/etc/revdep-rebuild/05cross-${CTARGET}
992
998
993
hr
999
hr
994
1000
995
#######################################
1001
#######################################
996
### Create links for helper scripts ###
1002
### Create links for helper scripts ###
997
1003
998
mkdir -p /usr/${CTARGET}
1004
mkdir -p "${EPREFIX}"/usr/${CTARGET}
999
emerge-wrapper --target ${CTARGET} --init || exit 1
1005
emerge-wrapper --target ${CTARGET} --init || exit 1
1000
1006
1001
#################
1007
#################
1002
emerged_with_use() {
1008
emerged_with_use() {
1003
	local pkg=$1 use=$2
1009
	local pkg=$1 use=$2
1004
	grep -qs ${use} /var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
1010
	grep -qs ${use} "${EPREFIX}"/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE
1005
}
1011
}
1006
set_eopts_on_pkg_status() {
1012
set_eopts_on_pkg_status() {
1007
	emerged_with_use "$@" \
1013
	emerged_with_use "$@" \
(-)a/wrappers/Makefile (+3 lines)
Lines 9-14 SITE = $(PREFIX)/share/crossdev/include/site Link Here
9
TOPDIR =
9
TOPDIR =
10
10
11
all:
11
all:
12
	sed -i -e "s,@GENTOO_PORTAGE_EPREFIX@,$(EPREFIX),g" cross-emerge
13
	sed -i -e "s,@GENTOO_PORTAGE_EPREFIX@,$(EPREFIX),g" emerge-wrapper
14
	sed -i -e "s,@GENTOO_PORTAGE_EPREFIX@,$(EPREFIX),g" etc/portage/make.conf
12
15
13
install:
16
install:
14
	$(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/ $(DESTDIR)/$(SITE)
17
	$(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/ $(DESTDIR)/$(SITE)
(-)a/wrappers/cross-emerge (-1 / +1 lines)
Lines 9-15 if [ -z "${CHOST}" ] ; then Link Here
9
fi
9
fi
10
export CHOST
10
export CHOST
11
11
12
: ${SYSROOT=/usr/${CHOST}}
12
: ${SYSROOT=@GENTOO_PORTAGE_EPREFIX@/usr/${CHOST}}
13
: ${PORTAGE_CONFIGROOT=${SYSROOT}}
13
: ${PORTAGE_CONFIGROOT=${SYSROOT}}
14
export SYSROOT PORTAGE_CONFIGROOT
14
export SYSROOT PORTAGE_CONFIGROOT
15
15
(-)a/wrappers/emerge-wrapper (-2 / +2 lines)
Lines 96-102 cross_wrap_bin() Link Here
96
96
97
cross_wrap()
97
cross_wrap()
98
{
98
{
99
	SYSROOT=/usr/${CHOST}
99
	SYSROOT=@GENTOO_PORTAGE_EPREFIX@/usr/${CHOST}
100
	cross_wrap_bin "$@" || return $?
100
	cross_wrap_bin "$@" || return $?
101
	if [[ -d ${SYSROOT} ]] && [[ ! -d ${SYSROOT}/etc ]] ; then
101
	if [[ -d ${SYSROOT} ]] && [[ ! -d ${SYSROOT}/etc ]] ; then
102
		cross_wrap_etc "$@"
102
		cross_wrap_etc "$@"
Lines 120-126 cross_init() Link Here
120
	# recommended anymore ...
120
	# recommended anymore ...
121
	[[ ${0##*/} != emerge-wrapper ]] && err "I wont understand things"
121
	[[ ${0##*/} != emerge-wrapper ]] && err "I wont understand things"
122
122
123
	for CHOST in `find /usr/lib/gcc -maxdepth 1 -mindepth 1 -type d` ; do
123
	for CHOST in `find @GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc -maxdepth 1 -mindepth 1 -type d` ; do
124
		CHOST=${CHOST##*/}
124
		CHOST=${CHOST##*/}
125
		[[ ${CHOST} == ${CBUILD} ]] && continue
125
		[[ ${CHOST} == ${CBUILD} ]] && continue
126
		type -P -- ${CHOST}-gcc >/dev/null || continue
126
		type -P -- ${CHOST}-gcc >/dev/null || continue
(-)a/wrappers/etc/portage/make.conf (-2 / +1 lines)
Lines 5-11 ARCH=__ARCH__ Link Here
5
HOSTCC=__CBUILD__-gcc
5
HOSTCC=__CBUILD__-gcc
6
E_MACHINE=__E_MACHINE__
6
E_MACHINE=__E_MACHINE__
7
7
8
ROOT=/usr/${CHOST}/
8
ROOT=@GENTOO_PORTAGE_EPREFIX@/usr/${CHOST}/
9
9
10
ACCEPT_KEYWORDS="__ARCH__ ~__ARCH__"
10
ACCEPT_KEYWORDS="__ARCH__ ~__ARCH__"
11
11
12
- 

Return to bug 384167