Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 296623 Details for
Bug 384167
sys-devel/crossdev: prefix support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch against crossdev git HEAD
prefixify.patch (text/plain), 9.89 KB, created by
Benda Xu
on 2011-12-22 04:44:03 UTC
(
hide
)
Description:
patch against crossdev git HEAD
Filename:
MIME Type:
Creator:
Benda Xu
Created:
2011-12-22 04:44:03 UTC
Size:
9.89 KB
patch
obsolete
>From f107eb1859354b809e5e7b32e52ed1e2730f5099 Mon Sep 17 00:00:00 2001 >From: XU Benda <heroxbd@gmail.com> >Date: Thu, 22 Dec 2011 13:37:11 +0900 >Subject: [PATCH] prefixify build system and scripts. stuck at bug 395633 > before we can go further. installing toolchain should work > now. > >--- > Makefile | 3 ++ > crossdev | 72 ++++++++++++++++++++-------------------- > settings.mk | 4 ++- > wrappers/Makefile | 3 ++ > wrappers/cross-emerge | 2 +- > wrappers/emerge-wrapper | 6 ++-- > wrappers/etc/portage/make.conf | 2 +- > 7 files changed, 50 insertions(+), 42 deletions(-) > >diff --git a/Makefile b/Makefile >index 15e6e74..1b1b43c 100644 >--- a/Makefile >+++ b/Makefile >@@ -4,6 +4,9 @@ > include settings.mk > > all: >+ sed -i -e "s,@EPREFIX@,$(EPREFIX),g" \ >+ -e "s,@PORTAGE_CONFIGROOT@,$(PORTAGE_CONFIGROOT),g" crossdev >+ $(MAKE) -C wrappers > > install: > $(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/ >diff --git a/crossdev b/crossdev >index 9362ce2..c289d81 100755 >--- a/crossdev >+++ b/crossdev >@@ -12,9 +12,9 @@ if [[ ${ROOT:-/} != "/" ]] ; then > exit 2 > fi > >-CONFIGROOT="${PORTAGE_CONFIGROOT}/etc/portage" >+CONFIGROOT="@EPREFIX@/etc/portage" > >-source /etc/init.d/functions.sh || exit 1 >+source @EPREFIX@/etc/init.d/functions.sh || exit 1 > esyslog() { :; } > die() { > echo >@@ -106,13 +106,13 @@ parse_target() { > - newlib [bare metal/no operating system] > - uclibc [not all arches are ported] > Special Targets: >- - avr http://www.nongnu.org/avr-libc/ >- - bfin http://blackfin.uclinux.org/ >- - h8300 http://h8300-hms.sourceforge.net/ >- - mingw32 http://www.mingw.org/ >- - msp430 http://mspgcc.sourceforge.net/ >- - nios2 http://www.altera.com/products/ip/processors/nios2/ni2-index.html >- - xc16x http://www.infineon.com/ >+ - avr http:/www.nongnu.org/avr-libc/ >+ - bfin http:/blackfin.uclinux.org/ >+ - h8300 http:/h8300-hms.sourceforge.net/ >+ - mingw32 http:/www.mingw.org/ >+ - msp430 http:/mspgcc.sourceforge.net/ >+ - nios2 http:/www.altera.com/products/ip/processors/nios2/ni2-index.html >+ - xc16x http:/www.infineon.com/ > - ee / iop / dvp (ps2) [Playstation 2 targets] > - ppu / spu (cell) [Cell/Playstation 3 targets] > Softfloat toolchains: >@@ -284,7 +284,7 @@ setup_portage_vars() { > CROSSDEV_OVERLAY=${CROSSDEV_OVERLAY%% *} > > # make sure we have a valid logdir >- : ${PORT_LOGDIR:=/var/log/portage} >+ : ${PORT_LOGDIR:=@EPREFIX@/var/log/portage} > mkdir -p "${PORT_LOGDIR}" > } > >@@ -302,18 +302,18 @@ uninstall() { > rm -f "${f}"/cross-${CTARGET} > rmdir "${f}" 2>/dev/null > elif [[ -f ${f} ]] ; then >- sed -i -e "/cross-${CTARGET}\//d" "${f}" >+ sed -i -e "/cross-${CTARGET}\/d" "${f}" > fi > done > rm -rf "${CONFIGROOT}"/env/cross-${CTARGET} > rmdir "${CONFIGROOT}"/env 2>/dev/null >- rm -f /etc/revdep-rebuild/05cross-${CTARGET} >- rmdir /etc/revdep-rebuild 2>/dev/null >+ rm -f @EPREFIX@/etc/revdep-rebuild/05cross-${CTARGET} >+ rmdir @EPREFIX@/etc/revdep-rebuild 2>/dev/null > >- rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null >- if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then >+ rmdir @EPREFIX@/var/db/pkg/cross-${CTARGET} 2>/dev/null >+ if [[ -d @EPREFIX@/var/db/pkg/cross-${CTARGET} ]] ; then > export CLEAN_DELAY=0 >- cd /var/db/pkg >+ cd @EPREFIX@/var/db/pkg > for p in cross-${CTARGET}/* ; do > emerge -qC =${p} || exit 1 > done >@@ -328,30 +328,30 @@ uninstall() { > gprof ld nm objcopy objdump ranlib readelf \ > size strings strip windmc windres > do >- rm -f /usr/bin/${CTARGET}-${b} /usr/${CTARGET}/bin/${b} >+ rm -f @EPREFIX@/usr/bin/${CTARGET}-${b} @EPREFIX@/usr/${CTARGET}/bin/${b} > done >- rm -f /usr/${CTARGET}/{sys-include,usr} >- rmdir /usr/${CTARGET}/{include/asm,include} 2>/dev/null >- rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov} >- rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET} >+ rm -f @EPREFIX@/usr/${CTARGET}/{sys-include,usr} >+ rmdir @EPREFIX@/usr/${CTARGET}/{include/asm,include} 2>/dev/null >+ rm -f @EPREFIX@/usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov} >+ rm -f @EPREFIX@/etc/env.d/{binutils,gcc}/config-${CTARGET} > > # clean out files from crossdev itself >- [[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET} >- rm -f /usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} /usr/bin/emerge-${CTARGET} >+ [[ -e @EPREFIX@/var/db/pkg/cross-${CTARGET} ]] && rmdir @EPREFIX@/var/db/pkg/cross-${CTARGET} >+ rm -f @EPREFIX@/usr/bin/${CTARGET}-{emerge,fix-root,pkg-config} @EPREFIX@/usr/bin/emerge-${CTARGET} > > local f > for f in make.{conf,globals,profile} ; do >- f="/usr/${CTARGET}/etc/${f}" >+ f="@EPREFIX@/usr/${CTARGET}/etc/${f}" > [[ -L ${f} ]] && rm -f ${f} >- f="/usr/${CTARGET}/etc/portage/${f##*/}" >+ f="@EPREFIX@/usr/${CTARGET}/etc/portage/${f##*/}" > [[ -L ${f} ]] && rm -f ${f} > done >- find /usr/share/crossdev/etc/ -type f | \ >+ find @EPREFIX@/usr/share/crossdev/etc/ -type f | \ > while read f ; do > f1=${f} > [[ ! -e ${f1} ]] && continue > m1=$(set -- `md5sum ${f1}`; echo $1) >- f2=/usr/${CTARGET}${f#/usr/share/crossdev} >+ f2=@EPREFIX@/usr/${CTARGET}${f#/usr/share/crossdev} > [[ ! -e ${f2} ]] && continue > m2=$(set -- `md5sum ${f2}`; echo $1) > if [[ ${m1} == ${m2} ]] ; then >@@ -360,7 +360,7 @@ uninstall() { > done > > # clean out the sysroot, prompting the user if need be >- for d in /usr/lib/gcc{,-lib}/${CTARGET} /usr/${CTARGET} ; do >+ for d in @EPREFIX@/usr/lib/gcc{,-lib}/${CTARGET} @EPREFIX@/usr/${CTARGET} ; do > if [[ ! -d ${d} ]] ; then > rm -f "${d}" > else >@@ -417,9 +417,9 @@ hr() { > || c=${c##* } > fi > local ext=${1:- _ - ~ -} >- local sext=${ext//?/ } >+ local sext=${ext/?/ } > local br=$(printf "%$((c + ${#ext}))s") >- local banner=${br//${sext}/${ext}} >+ local banner=${br/${sext}/${ext}} > echo "${banner:0:${c}}" > } > ver_get_op() { >@@ -528,7 +528,7 @@ done > setup_portage_vars > if [[ -z ${CROSSDEV_OVERLAY} ]] ; then > eerror "You need to specify an output overlay. Please use --ov-output or set" >- eerror "PORTDIR_OVERLAY in your make.conf. A standard setting is: /usr/local/portage" >+ eerror "PORTDIR_OVERLAY in your make.conf. A standard setting is: @EPREFIX@/usr/local/portage" > exit 1 > fi > >@@ -827,21 +827,21 @@ set_portage dev-util insight > set_metadata > > # filter out revdep rebuild stuff #182601 >-mkdir -p /etc/revdep-rebuild >-echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > /etc/revdep-rebuild/05cross-${CTARGET} >+mkdir -p @EPREFIX@/etc/revdep-rebuild >+echo "SEARCH_DIRS_MASK=@EPREFIX@/usr/${CTARGET}" > @EPREFIX@/etc/revdep-rebuild/05cross-${CTARGET} > > hr > > ####################################### > ### Create links for helper scripts ### > >-mkdir -p /usr/${CTARGET} >+mkdir -p @EPREFIX@/usr/${CTARGET} > emerge-wrapper --target ${CTARGET} --init || exit 1 > > ################# > emerged_with_use() { > local pkg=$1 use=$2 >- grep -qs ${use} /var/db/pkg/cross-${CTARGET}/${pkg}-*/USE >+ grep -qs ${use} @EPREFIX@/var/db/pkg/cross-${CTARGET}/${pkg}-*/USE > } > set_eopts_on_pkg_status() { > emerged_with_use "$@" \ >@@ -869,7 +869,7 @@ doemerge() { > >& "${logfile}" > fi > local _pipestatus=${PIPESTATUS[*]} >- [[ "${_pipestatus// /}" -eq 0 ]] || die "$1 failed :(" >+ [[ "${_pipestatus/ /}" -eq 0 ]] || die "$1 failed :(" > eend 0 > } > >diff --git a/settings.mk b/settings.mk >index 21063b9..75c4ec5 100644 >--- a/settings.mk >+++ b/settings.mk >@@ -1,8 +1,10 @@ > # Copyright 2008-2010 Gentoo Foundation > # Distributed under the terms of the GNU General Public License v2 > >+EPREFIX?=$(shell portageq envvar EPREFIX) >+PORTAGE_CONFIGROOT?=$(shell portageq envvar PORTAGE_CONFIGROOT) > DESTDIR ?= >-PREFIX ?= /usr >+PREFIX ?= $(EPREFIX)/usr > > INSTALL_DIR = install -m 755 -d > INSTALL_EXEC = install -m 755 >diff --git a/wrappers/Makefile b/wrappers/Makefile >index eaa4115..504c8cd 100644 >--- a/wrappers/Makefile >+++ b/wrappers/Makefile >@@ -9,6 +9,9 @@ SITE = $(PREFIX)/share/crossdev/include/site > TOPDIR = > > all: >+ sed -i -e "s,@EPREFIX@,$(EPREFIX),g" cross-emerge >+ sed -i -e "s,@EPREFIX@,$(EPREFIX),g" emerge-wrapper >+ sed -i -e "s,@EPREFIX@,$(EPREFIX),g" etc/portage/make.conf > > install: > $(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin/ $(DESTDIR)/$(SITE) >diff --git a/wrappers/cross-emerge b/wrappers/cross-emerge >index 7af770b..269b9af 100755 >--- a/wrappers/cross-emerge >+++ b/wrappers/cross-emerge >@@ -9,7 +9,7 @@ if [ -z "${CHOST}" ] ; then > fi > export CHOST > >-: ${SYSROOT=/usr/${CHOST}} >+: ${SYSROOT=@EPREFIX@/usr/${CHOST}} > : ${PORTAGE_CONFIGROOT=${SYSROOT}} > export SYSROOT PORTAGE_CONFIGROOT > >diff --git a/wrappers/emerge-wrapper b/wrappers/emerge-wrapper >index 20b32ff..a93f4e6 100755 >--- a/wrappers/emerge-wrapper >+++ b/wrappers/emerge-wrapper >@@ -36,7 +36,7 @@ cross_wrap_etc() > > cp -a "${PREFIX}"/share/crossdev/etc ${SYSROOT}/ || return 1 > local f >- for f in /usr/share/portage/config/make.globals /etc/{portage/,}make.globals ; do >+ for f in @EPREFIX@/usr/share/portage/config/make.globals @EPREFIX@/etc/{portage/,}make.globals ; do > if [[ -e ${f} ]] ; then > ln -sf ${f} "${SYSROOT}"/etc/portage/make.globals || return 1 > break >@@ -103,7 +103,7 @@ cross_wrap_bin() > > cross_wrap() > { >- SYSROOT=/usr/${CHOST} >+ SYSROOT=@EPREFIX@/usr/${CHOST} > cross_wrap_bin "$@" || return $? > if [[ -d ${SYSROOT} ]] && [[ ! -d ${SYSROOT}/etc ]] ; then > cross_wrap_etc "$@" >@@ -127,7 +127,7 @@ cross_init() > # recommended anymore ... > [[ ${0##*/} != emerge-wrapper ]] && err "I wont understand things" > >- for CHOST in `find /usr/lib/gcc -maxdepth 1 -mindepth 1 -type d` ; do >+ for CHOST in `find @EPREFIX@/usr/lib/gcc -maxdepth 1 -mindepth 1 -type d` ; do > CHOST=${CHOST##*/} > [[ ${CHOST} == ${CBUILD} ]] && continue > type -P -- ${CHOST}-gcc >/dev/null || continue >diff --git a/wrappers/etc/portage/make.conf b/wrappers/etc/portage/make.conf >index b9f29d9..a3b40dd 100644 >--- a/wrappers/etc/portage/make.conf >+++ b/wrappers/etc/portage/make.conf >@@ -5,7 +5,7 @@ ARCH=__ARCH__ > HOSTCC=__CBUILD__-gcc > E_MACHINE=__E_MACHINE__ > >-ROOT=/usr/${CHOST}/ >+ROOT=@EPREFIX@/usr/${CHOST}/ > > ACCEPT_KEYWORDS="__ARCH__ ~__ARCH__" > >-- >1.7.8.rc3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 384167
:
287471
|
287473
|
288587
|
296623
|
319886
|
319948
|
354346
|
354352
|
438666