[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: ea76a7be66652252874364526eaf69463b5d31e5 Author: Benda Xu gentoo org> AuthorDate: Sat Jun 4 07:25:15 2016 + Commit: Benda XU gentoo org> CommitDate: Sat Jul 2 01:33:07 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ea76a7be s/bootstrap-prefix.sh: remove EPREFIX/tmp after "emerge -e system". partially reverts 3a945696443b. A rerun of bootstrap script after "emerge -e system" failure should not go through stage1 again. scripts/bootstrap-prefix.sh | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a5db862..7e73ca2 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1514,12 +1514,6 @@ EOF # Switch to the proper portage. hash -r - # Get rid of the temporary tools. - if [[ -d ${ROOT}/tmp/var/tmp ]] ; then - rm -rf "${ROOT}"/tmp - mkdir "${ROOT}"/tmp - fi - # Update the portage tree. treedate=$(date -f "${ROOT}"/usr/portage/metadata/timestamp +%s) nowdate=$(date +%s) @@ -2167,7 +2161,13 @@ EOF hash -r # tmp/* stuff is removed in stage3 - if ! emerge -e system ; then + if emerge -e system ; then + # Now, after 'emerge -e system', we can get rid of the temporary tools. + if [[ -d ${EPREFIX}/tmp/var/tmp ]] ; then + rm -Rf "${EPREFIX}"/tmp || return 1 + mkdir -p "${EPREFIX}"/tmp || return 1 + fi + else # emerge -e system fail cat << EOF
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: ed5a5d795f42d073fbd7ec21521a878c965f6e13 Author: Benda Xu gentoo org> AuthorDate: Mon May 23 10:46:14 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ed5a5d79 scripts/bootstrap-prefix.sh: USE=-acl for linux-standalone. Its profile does not mask acl. scripts/bootstrap-prefix.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 341de44..4b66e0f 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1167,6 +1167,7 @@ do_emerge_pkgs() { [[ -n ${pvdb} ]] && continue local myuse=( + -acl -berkdb -fortran -gdbm
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 4590ce47edba1f3c4d681bcf1a114629c4871da2 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 02:46:25 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4590ce47 scripts/bootstrap-prefix.sh: disable sandbox. scripts/bootstrap-prefix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 4b66e0f..3f42276 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -226,6 +226,8 @@ bootstrap_setup() { echo 'CXXFLAGS="${CFLAGS}"' echo "MAKEOPTS=\"${MAKEOPTS}\"" echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" + rapx "# sandbox does not work well on Prefix, bug 490246" + rapx 'FEATURES="-usersandbox -sandbox"' if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 161adbdc1301c4bc05ac230be97640ca13cbdd9b Author: Benda Xu gentoo org> AuthorDate: Sat May 28 07:03:25 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=161adbdc scripts/bootstrap-prefix.sh: support sys-libs/glibc. - lto of gcc should be disabled. ld points to the host dynamic loader and gcc points to the RAP one, ld cannot load the gcc lto plugin. - stage tools should be used first in stage3. - makeinfo, perl are faked. - no need to copy libgcc on RAP. ld.so of glibc does that. - install texinfo for glibc. - stage3 linker can only be compiled after compiler. otherwise stage2 gcc will mix host glibc headers with those of stage3. scripts/bootstrap-prefix.sh | 104 ++-- 1 file changed, 81 insertions(+), 23 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 6d52f19..d6e5d6b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1285,9 +1285,11 @@ bootstrap_stage2() { emerge_pkgs --nodeps "${pkgs[@]}" || return 1 # Build a linker and compiler that live in ${ROOT}/tmp, but - # produce binaries in ${ROOT}. + # produce binaries in ${ROOT}. Debian multiarch needs ld to + # support sysroot USE="${USE} -cxx" \ TPREFIX="${ROOT}" \ + EXTRA_ECONF="--with-sysroot=/" \ emerge_pkgs --nodeps ${linker} || return 1 # gmp has cxx flag enabled by default. When dealing with a host @@ -1295,6 +1297,7 @@ bootstrap_stage2() { # package.use to disable in the temporary prefix. echo "dev-libs/gmp -cxx" >> "${ROOT}"/tmp/etc/portage/package.use + BOOTSTRAP_RAP_STAGE2=yes \ EXTRA_ECONF="--disable-bootstrap" \ GCC_MAKE_TARGET=all \ TPREFIX="${ROOT}" \ @@ -1321,7 +1324,7 @@ bootstrap_stage2() { # multilib.eclass -- can't blame it at this point really) # do it ourselves here to make the bootstrap continue ( cd "${ROOT}"/tmp/usr/bin && ln -s clang ${CHOST}-clang && ln -s clang++ ${CHOST}-clang++ ) - else + elif ! is-rap ; then # make sure the EPREFIX gcc shared libraries are there mkdir -p "${ROOT}"/usr/${CHOST}/lib/gcc cp "${ROOT}"/tmp/usr/${CHOST}/lib/gcc/* "${ROOT}"/usr/${CHOST}/lib/gcc @@ -1360,6 +1363,8 @@ bootstrap_stage3() { unset CC CXX emerge_pkgs() { + # stage3 tools should be used first. + DEFAULT_PATH=$(echo "${ROOT}"/{,tmp/}{,usr/}{s,}bin | tr ' ' ':') \ EPREFIX="${ROOT}" \ do_emerge_pkgs "$@" } @@ -1367,25 +1372,63 @@ bootstrap_stage3() { # GCC sometimes decides that it needs to run makeinfo to update some # info pages from .texi files. Obviously we don't care at this # stage and rather have it continue instead of abort the build - export MAKEINFO="echo makeinfo GNU texinfo 4.13" - - # Build a native compiler. - pkgs=( - $([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency - sys-libs/ncurses - sys-libs/readline - app-shells/bash - sys-apps/sed - app-arch/xz-utils - sys-apps/gentoo-functions - sys-apps/baselayout-prefix - sys-devel/m4 - sys-devel/flex - sys-devel/binutils-config - sys-libs/zlib - ${linker} - ) - emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + [[ -x "${ROOT}"/usr/bin/makeinfo ]] || cat > "${ROOT}"/usr/bin/makeinfo < "${ROOT}"/usr/bin/perl + chmod +x "${ROOT}"/usr/bin/perl + fi + # Tell dynamic loader the path of libgcc_s.so of stage2 + if [[ ! -f "${ROOT}"/etc/ld.so.conf.d/stage2.conf ]]; then + mkdir -p "${ROOT}"/etc/ld.so.conf.d + dirname $(gcc -print-libgcc-file-name) > "${ROOT}"/etc/ld.so.conf.d/stage2.conf + fi + + pkgs=( + sys-apps/baselayout + sys-apps/gentoo-functions + sys-kernel/linux-headers + sys-libs/glibc + sys-libs/zlib + ) + + BOOTSTRAP_RAP=yes \ + emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + else + pkgs=( + $([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency + sys-libs/ncurses + sys-libs/readline + app-shells/bash + sys-apps/sed + app-arch/xz-utils + sys-apps
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 71c06cb062ae5261de9e56c36e6a5b3d3cc510ea Author: Benda Xu gentoo org> AuthorDate: Sat Jun 4 07:25:15 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=71c06cb0 s/bootstrap-prefix.sh: remove EPREFIX/tmp after "emerge -e system". partially reverts 3a945696443b. 1. A rerun of bootstrap script after "emerge -e system" failure should not go through stage1 again. 2. For RAP binutils in stage3 is linked against zlib of stage2. scripts/bootstrap-prefix.sh | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a5db862..7e73ca2 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1514,12 +1514,6 @@ EOF # Switch to the proper portage. hash -r - # Get rid of the temporary tools. - if [[ -d ${ROOT}/tmp/var/tmp ]] ; then - rm -rf "${ROOT}"/tmp - mkdir "${ROOT}"/tmp - fi - # Update the portage tree. treedate=$(date -f "${ROOT}"/usr/portage/metadata/timestamp +%s) nowdate=$(date +%s) @@ -2167,7 +2161,13 @@ EOF hash -r # tmp/* stuff is removed in stage3 - if ! emerge -e system ; then + if emerge -e system ; then + # Now, after 'emerge -e system', we can get rid of the temporary tools. + if [[ -d ${EPREFIX}/tmp/var/tmp ]] ; then + rm -Rf "${EPREFIX}"/tmp || return 1 + mkdir -p "${EPREFIX}"/tmp || return 1 + fi + else # emerge -e system fail cat << EOF
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 5dede2df8b212cd9c06162597561c6149b74958e Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:18:37 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=5dede2df scripts/bootstrap-prefix.sh: startprefix for RAP. scripts/bootstrap-prefix.sh | 7 +++ 1 file changed, 7 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 90a7f03..a5db862 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -480,6 +480,13 @@ bootstrap_startscript() { # currently I think right into the prefix is the best location, as # putting it in /bin or /usr/bin just hides it some more for the # user + if is-rap ; then + mkdir -p "${ROOT}"/usr/portage/scripts + wget --no-check-certificate \ + https://gitweb.gentoo.org/repo/proj/prefix.git/plain/scripts/startprefix.in \ +-O "${ROOT}"/usr/portage/scripts/startprefix.in + fi + sed \ -e "s|@GENTOO_PORTAGE_EPREFIX@|${ROOT}|g" \ "${ROOT}"/usr/portage/scripts/startprefix.in \
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 60a639bb8ca70dc3ad8b798ecab39d1834d11298 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 07:06:09 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=60a639bb bootstrap-prefix.sh: no USR SPLIT for RAP. Support Debian multiarch. scripts/bootstrap-prefix.sh | 82 +++-- 1 file changed, 5 insertions(+), 77 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 3f42276..84c2bfe 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -228,7 +228,7 @@ bootstrap_setup() { echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" rapx "# sandbox does not work well on Prefix, bug 490246" rapx 'FEATURES="-usersandbox -sandbox"' - if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then + if [[ !is-rap && -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break" echo "PREFIX_DISABLE_GEN_USR_LDSCRIPT=yes" @@ -1474,83 +1474,11 @@ bootstrap_interactive() { # eventually ends up in make.conf, see the end of stage3. We don't # do this in bootstrap_setup() because in that case we'd also have # to cater for getting this right with manual bootstraps. - export PREFIX_DISABLE_USR_SPLIT=yes + is-rap || export PREFIX_DISABLE_USR_SPLIT=yes - # immediately die on platforms that we know are impossible due to - # brain-deadness (Debian/Ubuntu) or extremely hard dependency chains - # (TODO NetBSD/OpenBSD) - case ${CHOST} in - *-linux-gnu) - local toolchain_impossible= - # Figure out if this is Ubuntu... - if [[ $(lsb_release -is 2>/dev/null) == "Ubuntu" ]] ; then - case "$(lsb_release -sr)" in - [456789].*|10.*) - : # good versions - ;; - *) - # Debian/Ubuntu have seriously fscked up their - # toolchain to support their multi-arch crap - # since Natty (11.04) that noone really wants, - # and certainly not upstream. Some details: - # https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/738098 - toolchain_impossible="Ubuntu >= 11.04 (Natty)" - ;; - esac - fi - # Figure out if this is Debian - if [[ -e /etc/debian_release ]] ; then - case "$(< /etc/debian_release)" in - hamm/*|slink/*|potato/*|woody/*|sarge/*|etch/*|lenny/*|squeeze/*) - : # good versions - ;; - *) - # Debian introduced their big crap since Wheezy - # (7.0), like for Ubuntu, see above - toolchain_impossible="Debian >= 7.0 (Wheezy)" - ;; - esac - fi - if [[ -n ${toolchain_impossible} ]] ; then - # In short, it's impossible for us to compile a - # compiler, since 1) gcc picks up our ld, which doesn't - # support sysroot (can work around with a wrapper - # script), 2) headers and libs aren't found (symlink - # them to Prefix), 3) stuff like crtX.i isn't found - # during bootstrap, since the bootstrap compiler doesn't - # get any of our flags and doesn't know where to find - # them (even if we copied them). So we cannot do this, - # unless we use the Ubuntu patches in our ebuilds, which - # is a NO-GO area. - cat << EOF -Oh My! ${toolchain_impossible}! ARGH! HELL comes over me! - -EOF - echo -n "..." -
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 412adb2418e720c253daf34d58af2387b668b152 Author: Benda Xu gentoo org> AuthorDate: Sat May 28 06:59:33 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=412adb24 scripts/b-p.sh: link /usr/{lib -> lib64} in stage1 on systems get_libdir != lib, python (looks into /usr/lib by default) need to find libffi (installs into /usr/lib64 by default). ugly enumerating all possible libdirs. scripts/bootstrap-prefix.sh | 17 + 1 file changed, 17 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index ea6a71a..6d52f19 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1102,6 +1102,23 @@ bootstrap_stage1() { ( chmod 755 "${ROOT}"/tmp/usr/bin/java{,c} ;; esac + # Host compiler can output a variety of libdirs. At stage1, + # they should be the same as lib. Otherwise libffi may not be + # found by python. + if is-rap ; then + [[ -d ${ROOT}/tmp/usr/lib ]] || mkdir -p "${ROOT}"/tmp/usr/lib + local libdir + for libdir in lib64 lib32 libx32; do + if [[ ! -L ${ROOT}/tmp/usr/${libdir} ]] ; then + if [[ -e "${ROOT}"/tmp/usr/${libdir} ]] ; then + echo "${ROOT}"/tmp/usr/${libdir} should be a symlink to lib + return 1 + fi + ln -s lib "${ROOT}"/tmp/usr/${libdir} + fi + done + fi + # important to have our own (non-flawed one) since Python (from # Portage) and binutils use it for zlib in ${ROOT}/tmp/usr/lib/libz.* ; do
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 223cb3f0f4555a092212ef244547a59bc20fbbde Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:06:45 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=223cb3f0 scripts/b-p.sh: calculate kernel version and select legacy profiles. scripts/bootstrap-prefix.sh | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 6a1f3cd..90a7f03 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -10,6 +10,8 @@ einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } +kver() { uname -r|cut -d\- -f1|awk -F. '{for (i=1; i<=NF; i++){s+=lshift($i,(4-i)*8)};print s}'; } +profile-legacy() { [[ $(kver) -ge 33955840 ]] || echo /legacy; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -267,6 +269,7 @@ EOF ln -sf {,"${ROOT}"}/etc/group [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf [[ -f ${ROOT}/etc/hosts ]] || cp {,"${ROOT}"}/etc/hosts + local legacy=$(profile-legacy) fi local linux=$(rapx linux-standalone linux) @@ -296,22 +299,22 @@ EOF profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/${linux}/x86" + profile="prefix/${linux}/x86${legacy}" ;; x86_64-pc-linux-gnu) - profile="prefix/${linux}/amd64" + profile="prefix/${linux}/amd64${legacy}" ;; ia64-pc-linux-gnu) - profile="prefix/${linux}/ia64" + profile="prefix/${linux}/ia64${legacy}" ;; powerpc-unknown-linux-gnu) - profile="prefix/${linux}/ppc" + profile="prefix/${linux}/ppc${legacy}" ;; powerpc64-unknown-linux-gnu) - profile="prefix/${linux}/ppc64" + profile="prefix/${linux}/ppc64${legacy}" ;; armv7l-pc-linux-gnu) - profile="prefix/${linux}/arm" + profile="prefix/${linux}/arm${legacy}" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 26a37bba985a20cabf0f21d9d571dfed6ba3f2ce Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 01:14:21 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=26a37bba scripts/bootstrap-prefix.sh: remove libgcc hack on RAP. scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index d6e5d6b..6a1f3cd 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1435,7 +1435,7 @@ EOF # linker, we can't since we want the compiler to pick it up. # Therefore, inject some kludgy workaround, for deps like gmp that # use c++ - [[ ${CHOST} != *-darwin* ]] && export CXX="${CHOST}-g++ -lgcc_s" + [[ ${CHOST} != *-darwin* ]] && ! is-rap && export CXX="${CHOST}-g++ -lgcc_s" # Clang unconditionally requires python, the eclasses are really not # setup for a scenario where python doesn't live in the target
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 77daf004a7e34c8e90b485a2680eb9dee9ca748e Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:41:35 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=77daf004 bootstrap-prefix.sh: get_libdir for multilib support on RAP. scripts/bootstrap-prefix.sh | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 84c2bfe..ea6a71a 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -9,6 +9,7 @@ eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } +get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -411,7 +412,7 @@ EOF do_tree() { local x - for x in etc{,/portage} usr/{{,s}bin,lib} var/tmp var/lib/portage var/log/portage var/db; + for x in etc{,/portage} usr/{{,s}bin,$(rapx "" lib)} var/tmp var/lib/portage var/log/portage var/db; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done @@ -427,7 +428,7 @@ do_tree() { [[ -e ${ROOT}/${x} ]] || ( cd "${ROOT}" && ln -s usr/${x} ) done else - for x in lib sbin ; do + for x in $(rapx "" lib) sbin ; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done fi @@ -535,7 +536,8 @@ bootstrap_portage() { [[ -x ${ROOT}/tmp/bin/bash ]] || [[ ! -x ${ROOT}/tmp/usr/bin/bash ]] || ln -s ../usr/bin/bash "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/bash ]] || ln -s "${BASH}" "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/sh ]] || ln -s bash "${ROOT}"/tmp/bin/sh || return 1 - [[ -x ${ROOT}/bin/sh ]] || ln -s ../tmp/bin/sh "${ROOT}"/bin/sh || return 1 + [[ -x ${ROOT}/bin/bash ]] || ln -s ../tmp/bin/bash "${ROOT}"/bin/bash || return 1 + [[ -x ${ROOT}/bin/sh ]] || ln -s bash "${ROOT}"/bin/sh || return 1 export PORTAGE_BASH="${ROOT}"/tmp/bin/bash einfo "Compiling ${A%-*}" @@ -1337,7 +1339,7 @@ bootstrap_stage3() { configure_toolchain || return 1 export CONFIG_SHELL="${ROOT}"/tmp/bin/bash export CPPFLAGS="-I${ROOT}/usr/include" - export LDFLAGS="-L${ROOT}/usr/lib" + export LDFLAGS="-L${ROOT}/usr/$(get_libdir)" unset CC CXX emerge_pkgs() {
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: ff60b49e88ee0669aa97d9ea7ac45d1ef26966c9 Author: Benda Xu gentoo org> AuthorDate: Wed Jun 15 08:02:16 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ff60b49e scripts/bootstrap-prefix.sh: setup android overlay as staged RAP repo. setup name databases. scripts/bootstrap-prefix.sh | 36 +++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 832fa7c..341de44 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -238,6 +238,34 @@ bootstrap_setup() { } > "${ROOT}"/etc/portage/make.conf fi + if is-rap && [[ ! -f ${ROOT}/etc/portage/repos.conf ]] ; then + cat <"${ROOT}"/etc/portage/repos.conf +[DEFAULT] +main-repo = gentoo +eclass-overrides = rap + +[gentoo] +location = ${ROOT}/usr/portage +sync-type = rsync +sync-uri = rsync://rsync.gentoo.org/gentoo-portage + +[rap] +location = ${ROOT}/usr/portage-stage +sync-type = git +sync-uri = https://anongit.gentoo.org/git/proj/android.git +auto-sync = no +EOF + fi + + if is-rap ; then + [[ -f ${ROOT}/etc/passwd ]] || getent passwd > "${ROOT}"/etc/passwd || \ + ln -sf {,"${ROOT}"}/etc/passwd + [[ -f ${ROOT}/etc/group ]] || getent group > "${ROOT}"/etc/group || \ + ln -sf {,"${ROOT}"}/etc/group + [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf + [[ -f ${ROOT}/etc/hosts ]] || cp {,"${ROOT}"}/etc/hosts + fi + local linux=$(rapx linux-standalone linux) case ${CHOST} in @@ -419,6 +447,10 @@ bootstrap_tree() { else do_tree http://dev.gentoo.org/~grobian/distfiles prefix-overlay-${PV}.tar.bz2 fi + if is-rap; then + PORTDIR="${ROOT}/usr/portage-stage" \ + do_tree http://dev.gentoo.org/~heroxbd android-master.tar.bz2 + fi } bootstrap_startscript() { @@ -528,7 +560,9 @@ bootstrap_portage() { [[ -e "${ROOT}"/tmp/usr/portage ]] || ln -s "${PORTDIR}" "${ROOT}"/tmp/usr/portage - if [[ -s ${PORTDIR}/profiles/repo_name ]]; then + if is-rap; then + cp -f "${ROOT}"/etc/portage/repos.conf "${ROOT}"/tmp/usr/share/portage/config/repos.conf + elif [[ -s ${PORTDIR}/profiles/repo_name ]]; then # sync portage's repos.conf with the tree being used sed -i -e "s,gentoo_prefix,$(<"${PORTDIR}"/profiles/repo_name)," "${ROOT}"/tmp/usr/share/portage/config/repos.conf || return 1 fi
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: fa9d48f13cda205ccfceaa2495d09f256ff8ceec Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:49:05 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=fa9d48f1 scripts/bootstrap-prefix.sh: emacs local setup for the code standard. scripts/bootstrap-prefix.sh | 5 + 1 file changed, 5 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index d9bf104..832fa7c 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -2447,3 +2447,8 @@ fi einfo "ready to bootstrap ${TODO}" # bootstrap_interactive proceeds with guessed defaults when TODO=noninteractive bootstrap_${TODO#non} || exit 1 + +# Local Variables: +# sh-indentation: 8 +# sh-basic-offset: 8 +# End:
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: e79437a1898424155d07358250a05c774e9e4548 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:48:19 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 11:32:36 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=e79437a1 scripts/bootstrap-prefix.sh: rap helpers for profiles and portage tree. scripts/bootstrap-prefix.sh | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a171e97..d9bf104 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -7,6 +7,8 @@ trap 'exit 1' TERM KILL INT QUIT ABRT # some basic output functions eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } +is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } +rapx() { is-rap && echo $1 || echo $2; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -235,6 +237,8 @@ bootstrap_setup() { echo 'FETCHCOMMAND="bash -c \"echo I need \${FILE} from \${URI} in \${DISTDIR}; read\""' } > "${ROOT}"/etc/portage/make.conf fi + + local linux=$(rapx linux-standalone linux) case ${CHOST} in powerpc-apple-darwin7) @@ -261,22 +265,22 @@ bootstrap_setup() { profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/linux/x86" + profile="prefix/${linux}/x86" ;; x86_64-pc-linux-gnu) - profile="prefix/linux/amd64" + profile="prefix/${linux}/amd64" ;; ia64-pc-linux-gnu) - profile="prefix/linux/ia64" + profile="prefix/${linux}/ia64" ;; powerpc-unknown-linux-gnu) - profile="prefix/linux/ppc" + profile="prefix/${linux}/ppc" ;; powerpc64-unknown-linux-gnu) - profile="prefix/linux/ppc64" + profile="prefix/${linux}/ppc64" ;; armv7l-pc-linux-gnu) - profile="prefix/linux/arm" + profile="prefix/${linux}/arm" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc" @@ -408,6 +412,7 @@ do_tree() { } bootstrap_tree() { + is-rap && LATEST_TREE_YES=1 local PV="20160614" if [[ -n ${LATEST_TREE_YES} ]]; then do_tree "${SNAPSHOT_URL}" portage-latest.tar.bz2 @@ -2405,9 +2410,10 @@ export PORTDIR=${PORTDIR:-"${ROOT}/usr/portage"} export DISTDIR=${DISTDIR:-"${PORTDIR}/distfiles"} PORTAGE_TMPDIR=${PORTAGE_TMPDIR:-${ROOT}/tmp/var/tmp} DISTFILES_URL=${DISTFILES_URL:-"http://dev.gentoo.org/~grobian/distfiles"} -SNAPSHOT_URL=${SNAPSHOT_URL:-"http://rsync.prefix.bitzolder.nl/snapshots"} GNU_URL=${GNU_URL:="http://ftp.gnu.org/gnu"} GENTOO_MIRRORS=${GENTOO_MIRRORS:="http://distfiles.gentoo.org"} +SNAPSHOT_HOST=$(rapx ${GENTOO_MIRRORS} http://rsync.prefix.bitzolder.nl) +SNAPSHOT_URL=${SNAPSHOT_URL:-"${SNAPSHOT_HOST}/snapshots"} GCC_APPLE_URL="http://www.opensource.apple.com/darwinsource/tarballs/other"; export MAKE CONFIG_SHELL
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: a1591cd8a82306081a2ea6005367b8dbede5f674 Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 01:14:21 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:34 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=a1591cd8 scripts/bootstrap-prefix.sh: remove libgcc hack on RAP. scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index e524b7a..2c76097 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1437,7 +1437,7 @@ EOF # linker, we can't since we want the compiler to pick it up. # Therefore, inject some kludgy workaround, for deps like gmp that # use c++ - [[ ${CHOST} != *-darwin* ]] && export CXX="${CHOST}-g++ -lgcc_s" + [[ ${CHOST} != *-darwin* ]] && ! is-rap && export CXX="${CHOST}-g++ -lgcc_s" # Clang unconditionally requires python, the eclasses are really not # setup for a scenario where python doesn't live in the target
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 76ec3f3ff3f8f203b9c2883f67378e0f28ac37c2 Author: Benda Xu gentoo org> AuthorDate: Sat May 28 06:59:33 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=76ec3f3f scripts/b-p.sh: link /usr/{lib -> lib64} in stage1 on systems get_libdir != lib, python (looks into /usr/lib by default) need to find libffi (installs into /usr/lib64 by default). ugly enumerating all possible libdirs. scripts/bootstrap-prefix.sh | 17 + 1 file changed, 17 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index aadd4d6..999e3b7 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1102,6 +1102,23 @@ bootstrap_stage1() { ( chmod 755 "${ROOT}"/tmp/usr/bin/java{,c} ;; esac + # Host compiler can output a variety of libdirs. At stage1, + # they should be the same as lib. Otherwise libffi may not be + # found by python. + if is-rap ; then + [[ -d ${ROOT}/tmp/usr/lib ]] || mkdir -p "${ROOT}"/tmp/usr/lib + local libdir + for libdir in lib64 lib32 libx32; do + if [[ ! -L ${ROOT}/tmp/usr/${libdir} ]] ; then + if [[ -e "${ROOT}"/tmp/usr/${libdir} ]] ; then + echo "${ROOT}"/tmp/usr/${libdir} should be a symlink to lib + return 1 + fi + ln -s lib "${ROOT}"/tmp/usr/${libdir} + fi + done + fi + # important to have our own (non-flawed one) since Python (from # Portage) and binutils use it for zlib in ${ROOT}/tmp/usr/lib/libz.* ; do
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 4ea386842995f3b715efcb1f6e994351a11f4dad Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:18:37 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:34 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4ea38684 scripts/bootstrap-prefix.sh: startprefix for RAP. scripts/bootstrap-prefix.sh | 7 +++ 1 file changed, 7 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index b954c0e..a023ed3 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -480,6 +480,13 @@ bootstrap_startscript() { # currently I think right into the prefix is the best location, as # putting it in /bin or /usr/bin just hides it some more for the # user + if is-rap ; then + mkdir -p "${ROOT}"/usr/portage/scripts + wget --no-check-certificate \ + https://gitweb.gentoo.org/repo/proj/prefix.git/plain/scripts/startprefix.in \ +-O "${ROOT}"/usr/portage/scripts/startprefix.in + fi + sed \ -e "s|@GENTOO_PORTAGE_EPREFIX@|${ROOT}|g" \ "${ROOT}"/usr/portage/scripts/startprefix.in \
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 5c43f619d033224faeed673af880bce5510daef2 Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:06:45 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:34 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=5c43f619 scripts/b-p.sh: calculate kernel version and select legacy profiles. scripts/bootstrap-prefix.sh | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 2c76097..b954c0e 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -10,6 +10,8 @@ einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } +kver() { uname -r|cut -d\- -f1|awk -F. '{for (i=1; i<=NF; i++){s+=lshift($i,(4-i)*8)};print s}'; } +profile-legacy() { [[ $(kver) -ge 33955840 ]] || echo /legacy; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -267,6 +269,7 @@ EOF ln -sf {,"${ROOT}"}/etc/group [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf [[ -f ${ROOT}/etc/hosts ]] || cp {,"${ROOT}"}/etc/hosts + local legacy=$(profile-legacy) fi local linux=$(rapx linux-standalone linux) @@ -296,22 +299,22 @@ EOF profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/${linux}/x86" + profile="prefix/${linux}/x86${legacy}" ;; x86_64-pc-linux-gnu) - profile="prefix/${linux}/amd64" + profile="prefix/${linux}/amd64${legacy}" ;; ia64-pc-linux-gnu) - profile="prefix/${linux}/ia64" + profile="prefix/${linux}/ia64${legacy}" ;; powerpc-unknown-linux-gnu) - profile="prefix/${linux}/ppc" + profile="prefix/${linux}/ppc${legacy}" ;; powerpc64-unknown-linux-gnu) - profile="prefix/${linux}/ppc64" + profile="prefix/${linux}/ppc64${legacy}" ;; armv7l-pc-linux-gnu) - profile="prefix/${linux}/arm" + profile="prefix/${linux}/arm${legacy}" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 88aacdca2f26fca0ad143b62a0a4749f0ab6e997 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 07:06:09 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=88aacdca bootstrap-prefix.sh: no USR SPLIT for RAP. Support Debian multiarch. scripts/bootstrap-prefix.sh | 82 +++-- 1 file changed, 5 insertions(+), 77 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 2439d56..cb2667f 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -228,7 +228,7 @@ bootstrap_setup() { echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" rapx "# sandbox does not work well on Prefix, bug 490246" rapx 'FEATURES="-usersandbox -sandbox"' - if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then + if [[ !is-rap && -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break" echo "PREFIX_DISABLE_GEN_USR_LDSCRIPT=yes" @@ -1473,83 +1473,11 @@ bootstrap_interactive() { # eventually ends up in make.conf, see the end of stage3. We don't # do this in bootstrap_setup() because in that case we'd also have # to cater for getting this right with manual bootstraps. - export PREFIX_DISABLE_USR_SPLIT=yes + is-rap || export PREFIX_DISABLE_USR_SPLIT=yes - # immediately die on platforms that we know are impossible due to - # brain-deadness (Debian/Ubuntu) or extremely hard dependency chains - # (TODO NetBSD/OpenBSD) - case ${CHOST} in - *-linux-gnu) - local toolchain_impossible= - # Figure out if this is Ubuntu... - if [[ $(lsb_release -is 2>/dev/null) == "Ubuntu" ]] ; then - case "$(lsb_release -sr)" in - [456789].*|10.*) - : # good versions - ;; - *) - # Debian/Ubuntu have seriously fscked up their - # toolchain to support their multi-arch crap - # since Natty (11.04) that noone really wants, - # and certainly not upstream. Some details: - # https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/738098 - toolchain_impossible="Ubuntu >= 11.04 (Natty)" - ;; - esac - fi - # Figure out if this is Debian - if [[ -e /etc/debian_release ]] ; then - case "$(< /etc/debian_release)" in - hamm/*|slink/*|potato/*|woody/*|sarge/*|etch/*|lenny/*|squeeze/*) - : # good versions - ;; - *) - # Debian introduced their big crap since Wheezy - # (7.0), like for Ubuntu, see above - toolchain_impossible="Debian >= 7.0 (Wheezy)" - ;; - esac - fi - if [[ -n ${toolchain_impossible} ]] ; then - # In short, it's impossible for us to compile a - # compiler, since 1) gcc picks up our ld, which doesn't - # support sysroot (can work around with a wrapper - # script), 2) headers and libs aren't found (symlink - # them to Prefix), 3) stuff like crtX.i isn't found - # during bootstrap, since the bootstrap compiler doesn't - # get any of our flags and doesn't know where to find - # them (even if we copied them). So we cannot do this, - # unless we use the Ubuntu patches in our ebuilds, which - # is a NO-GO area. - cat << EOF -Oh My! ${toolchain_impossible}! ARGH! HELL comes over me! - -EOF - echo -n "..." -
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 19d921bfc563897c6ee35e75f34095eae13a2d02 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:48:19 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 07:59:44 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=19d921bf scripts/bootstrap-prefix.sh: rap helpers for profiles and portage tree. scripts/bootstrap-prefix.sh | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 3c57b92..2c8e5f1 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -7,6 +7,8 @@ trap 'exit 1' TERM KILL INT QUIT ABRT # some basic output functions eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } +is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } +rapx() { is-rap && echo $1 || echo $2; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -235,6 +237,8 @@ bootstrap_setup() { echo 'FETCHCOMMAND="bash -c \"echo I need \${FILE} from \${URI} in \${DISTDIR}; read\""' } > "${ROOT}"/etc/portage/make.conf fi + + local linux=$(rapx linux-standalone linux) case ${CHOST} in powerpc-apple-darwin7) @@ -261,22 +265,22 @@ bootstrap_setup() { profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/linux/x86" + profile="prefix/${linux}/x86" ;; x86_64-pc-linux-gnu) - profile="prefix/linux/amd64" + profile="prefix/${linux}/amd64" ;; ia64-pc-linux-gnu) - profile="prefix/linux/ia64" + profile="prefix/${linux}/ia64" ;; powerpc-unknown-linux-gnu) - profile="prefix/linux/ppc" + profile="prefix/${linux}/ppc" ;; powerpc64-unknown-linux-gnu) - profile="prefix/linux/ppc64" + profile="prefix/${linux}/ppc64" ;; armv7l-pc-linux-gnu) - profile="prefix/linux/arm" + profile="prefix/${linux}/arm" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc" @@ -408,6 +412,7 @@ do_tree() { } bootstrap_tree() { + is-rap && LATEST_TREE_YES=1 local PV="20160614" if [[ -n ${LATEST_TREE_YES} ]]; then do_tree "${SNAPSHOT_URL}" portage-latest.tar.bz2 @@ -2404,9 +2409,10 @@ export PORTDIR=${PORTDIR:-"${ROOT}/usr/portage"} export DISTDIR=${DISTDIR:-"${PORTDIR}/distfiles"} PORTAGE_TMPDIR=${PORTAGE_TMPDIR:-${ROOT}/tmp/var/tmp} DISTFILES_URL=${DISTFILES_URL:-"http://dev.gentoo.org/~grobian/distfiles"} -SNAPSHOT_URL=${SNAPSHOT_URL:-"http://rsync.prefix.bitzolder.nl/snapshots"} GNU_URL=${GNU_URL:="http://ftp.gnu.org/gnu"} GENTOO_MIRRORS=${GENTOO_MIRRORS:="http://distfiles.gentoo.org"} +SNAPSHOT_HOST=$(rapx ${GENTOO_MIRRORS} http://rsync.prefix.bitzolder.nl) +SNAPSHOT_URL=${SNAPSHOT_URL:-"${SNAPSHOT_HOST}/snapshots"} GCC_APPLE_URL="http://www.opensource.apple.com/darwinsource/tarballs/other"; export MAKE CONFIG_SHELL
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 4812b687b54eef9398e8d39c75deab7d3e0a6fe6 Author: Benda Xu gentoo org> AuthorDate: Mon May 23 10:46:14 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4812b687 scripts/bootstrap-prefix.sh: USE=-acl for linux-standalone. Its profile does not mask acl. scripts/bootstrap-prefix.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 828043f..7c1747b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1167,6 +1167,7 @@ do_emerge_pkgs() { [[ -n ${pvdb} ]] && continue local myuse=( + -acl -berkdb -fortran -gdbm
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: e8058d1338e7166144537b83ac7d669e9c57b99e Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:41:35 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=e8058d13 bootstrap-prefix.sh: get_libdir for multilib support on RAP. scripts/bootstrap-prefix.sh | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index cb2667f..aadd4d6 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -9,6 +9,7 @@ eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } +get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -411,7 +412,7 @@ EOF do_tree() { local x - for x in etc{,/portage} usr/{{,s}bin,lib} var/tmp var/lib/portage var/log/portage var/db; + for x in etc{,/portage} usr/{{,s}bin,$(rapx "" lib)} var/tmp var/lib/portage var/log/portage var/db; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done @@ -427,7 +428,7 @@ do_tree() { [[ -e ${ROOT}/${x} ]] || ( cd "${ROOT}" && ln -s usr/${x} ) done else - for x in lib sbin ; do + for x in $(rapx "" lib) sbin ; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done fi @@ -535,7 +536,8 @@ bootstrap_portage() { [[ -x ${ROOT}/tmp/bin/bash ]] || [[ ! -x ${ROOT}/tmp/usr/bin/bash ]] || ln -s ../usr/bin/bash "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/bash ]] || ln -s "${BASH}" "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/sh ]] || ln -s bash "${ROOT}"/tmp/bin/sh || return 1 - [[ -x ${ROOT}/bin/sh ]] || ln -s ../tmp/bin/sh "${ROOT}"/bin/sh || return 1 + [[ -x ${ROOT}/bin/bash ]] || ln -s ../tmp/bin/bash "${ROOT}"/bin/bash || return 1 + [[ -x ${ROOT}/bin/sh ]] || ln -s bash "${ROOT}"/bin/sh || return 1 export PORTAGE_BASH="${ROOT}"/tmp/bin/bash einfo "Compiling ${A%-*}" @@ -1337,7 +1339,7 @@ bootstrap_stage3() { configure_toolchain || return 1 export CONFIG_SHELL="${ROOT}"/tmp/bin/bash export CPPFLAGS="-I${ROOT}/usr/include" - export LDFLAGS="-L${ROOT}/usr/lib" + export LDFLAGS="-L${ROOT}/usr/$(get_libdir)" unset CC CXX emerge_pkgs() {
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 1d71b219e234a15889f99063e8dcdff1ca44054c Author: Benda Xu gentoo org> AuthorDate: Sat Jun 4 07:25:15 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:34 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=1d71b219 s/bootstrap-prefix.sh: remove EPREFIX/tmp after "emerge -e system". partially reverts 3a945696443b. 1. A rerun of bootstrap script after "emerge -e system" failure should not go through stage1 again. 2. For RAP binutils in stage3 is linked against zlib of stage2. scripts/bootstrap-prefix.sh | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a023ed3..5cb89b7 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1508,12 +1508,6 @@ EOF # Switch to the proper portage. hash -r - # Get rid of the temporary tools. - if [[ -d ${ROOT}/tmp/var/tmp ]] ; then - rm -rf "${ROOT}"/tmp - mkdir "${ROOT}"/tmp - fi - # Update the portage tree. treedate=$(date -f "${ROOT}"/usr/portage/metadata/timestamp +%s) nowdate=$(date +%s) @@ -2161,7 +2155,13 @@ EOF hash -r # tmp/* stuff is removed in stage3 - if ! emerge -e system ; then + if emerge -e system ; then + # Now, after 'emerge -e system', we can get rid of the temporary tools. + if [[ -d ${EPREFIX}/tmp/var/tmp ]] ; then + rm -Rf "${EPREFIX}"/tmp || return 1 + mkdir -p "${EPREFIX}"/tmp || return 1 + fi + else # emerge -e system fail cat << EOF
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: ccd402ab61f08764a770041e40aa8f66e9fff024 Author: Fabian Groffen gentoo org> AuthorDate: Tue Jun 14 07:06:54 2016 + Commit: Benda XU gentoo org> CommitDate: Tue Jun 14 07:06:54 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ccd402ab scripts/bootstrap-prefix: provide working hint for OpenIndiana scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 5a2e277..83ec9e0 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1711,7 +1711,7 @@ from here, eh? I just think you didn't install one. I know it can be tricky on OpenIndiana, for instance, so won't blame you. In case you're on OpenIndiana, I'll help you a bit. Perform the following as super-user: - pkg install developer/gnu system/library/math/header-math + pkg install developer/gnu system/header In the meanwhile, I'll wait here until you run me again, with a compiler. EOF fi
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 89abde97ac9d23774979a5a82c4c9da0f4a06904 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 02:46:25 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=89abde97 scripts/bootstrap-prefix.sh: disable sandbox. scripts/bootstrap-prefix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 7c1747b..2439d56 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -226,6 +226,8 @@ bootstrap_setup() { echo 'CXXFLAGS="${CFLAGS}"' echo "MAKEOPTS=\"${MAKEOPTS}\"" echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" + rapx "# sandbox does not work well on Prefix, bug 490246" + rapx 'FEATURES="-usersandbox -sandbox"' if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 94b33c1bc3251401014b010c9b983ff7365058bb Author: Benda Xu gentoo org> AuthorDate: Wed Jun 15 08:02:16 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:16 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=94b33c1b scripts/bootstrap-prefix.sh: setup android overlay as staged RAP repo. setup name databases. scripts/bootstrap-prefix.sh | 36 +++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 7096801..828043f 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -238,6 +238,34 @@ bootstrap_setup() { } > "${ROOT}"/etc/portage/make.conf fi + if is-rap && [[ ! -f ${ROOT}/etc/portage/repos.conf ]] ; then + cat <"${ROOT}"/etc/portage/repos.conf +[DEFAULT] +main-repo = gentoo +eclass-overrides = rap + +[gentoo] +location = ${ROOT}/usr/portage +sync-type = rsync +sync-uri = rsync://rsync.gentoo.org/gentoo-portage + +[rap] +location = ${ROOT}/usr/portage-stage +sync-type = git +sync-uri = https://anongit.gentoo.org/git/proj/android.git +auto-sync = no +EOF + fi + + if is-rap ; then + [[ -f ${ROOT}/etc/passwd ]] || getent passwd > "${ROOT}"/etc/passwd || \ + ln -sf {,"${ROOT}"}/etc/passwd + [[ -f ${ROOT}/etc/group ]] || getent group > "${ROOT}"/etc/group || \ + ln -sf {,"${ROOT}"}/etc/group + [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf + [[ -f ${ROOT}/etc/hosts ]] || cp {,"${ROOT}"}/etc/hosts + fi + local linux=$(rapx linux-standalone linux) case ${CHOST} in @@ -419,6 +447,10 @@ bootstrap_tree() { else do_tree http://dev.gentoo.org/~grobian/distfiles prefix-overlay-${PV}.tar.bz2 fi + if is-rap; then + PORTDIR="${ROOT}/usr/portage-stage" \ + do_tree http://dev.gentoo.org/~heroxbd android-master.tar.bz2 + fi } bootstrap_startscript() { @@ -528,7 +560,9 @@ bootstrap_portage() { [[ -e "${ROOT}"/tmp/usr/portage ]] || ln -s "${PORTDIR}" "${ROOT}"/tmp/usr/portage - if [[ -s ${PORTDIR}/profiles/repo_name ]]; then + if is-rap; then + cp -f "${ROOT}"/etc/portage/repos.conf "${ROOT}"/tmp/usr/share/portage/config/repos.conf + elif [[ -s ${PORTDIR}/profiles/repo_name ]]; then # sync portage's repos.conf with the tree being used sed -i -e "s,gentoo_prefix,$(<"${PORTDIR}"/profiles/repo_name)," "${ROOT}"/tmp/usr/share/portage/config/repos.conf || return 1 fi
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: d4625ed24127110822a59246fae71513a5b2b1de Author: Benda Xu gentoo org> AuthorDate: Sat May 28 07:03:25 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 08:02:33 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=d4625ed2 scripts/bootstrap-prefix.sh: support sys-libs/glibc. - lto of gcc should be disabled. ld points to the host dynamic loader and gcc points to the RAP one, ld cannot load the gcc lto plugin. - stage tools should be used first in stage3. - makeinfo, perl are faked. - no need to copy libgcc on RAP. ld.so of glibc does that. - install texinfo for glibc. scripts/bootstrap-prefix.sh | 99 ++--- 1 file changed, 76 insertions(+), 23 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 999e3b7..e524b7a 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1285,9 +1285,11 @@ bootstrap_stage2() { emerge_pkgs --nodeps "${pkgs[@]}" || return 1 # Build a linker and compiler that live in ${ROOT}/tmp, but - # produce binaries in ${ROOT}. + # produce binaries in ${ROOT}. Debian multiarch needs ld to + # support sysroot USE="${USE} -cxx" \ TPREFIX="${ROOT}" \ + EXTRA_ECONF="--with-sysroot=/" \ emerge_pkgs --nodeps ${linker} || return 1 # gmp has cxx flag enabled by default. When dealing with a host @@ -1295,6 +1297,7 @@ bootstrap_stage2() { # package.use to disable in the temporary prefix. echo "dev-libs/gmp -cxx" >> "${ROOT}"/tmp/etc/portage/package.use + BOOTSTRAP_RAP_STAGE2=yes \ EXTRA_ECONF="--disable-bootstrap" \ GCC_MAKE_TARGET=all \ TPREFIX="${ROOT}" \ @@ -1321,7 +1324,7 @@ bootstrap_stage2() { # multilib.eclass -- can't blame it at this point really) # do it ourselves here to make the bootstrap continue ( cd "${ROOT}"/tmp/usr/bin && ln -s clang ${CHOST}-clang && ln -s clang++ ${CHOST}-clang++ ) - else + elif ! is-rap ; then # make sure the EPREFIX gcc shared libraries are there mkdir -p "${ROOT}"/usr/${CHOST}/lib/gcc cp "${ROOT}"/tmp/usr/${CHOST}/lib/gcc/* "${ROOT}"/usr/${CHOST}/lib/gcc @@ -1360,6 +1363,8 @@ bootstrap_stage3() { unset CC CXX emerge_pkgs() { + # stage3 tools should be used first. + DEFAULT_PATH=$(echo "${ROOT}"/{,tmp/}{,usr/}{s,}bin | tr ' ' ':') \ EPREFIX="${ROOT}" \ do_emerge_pkgs "$@" } @@ -1367,25 +1372,65 @@ bootstrap_stage3() { # GCC sometimes decides that it needs to run makeinfo to update some # info pages from .texi files. Obviously we don't care at this # stage and rather have it continue instead of abort the build - export MAKEINFO="echo makeinfo GNU texinfo 4.13" - - # Build a native compiler. - pkgs=( - $([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency - sys-libs/ncurses - sys-libs/readline - app-shells/bash - sys-apps/sed - app-arch/xz-utils - sys-apps/gentoo-functions - sys-apps/baselayout-prefix - sys-devel/m4 - sys-devel/flex - sys-devel/binutils-config - sys-libs/zlib - ${linker} - ) - emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + [[ -x "${ROOT}"/usr/bin/makeinfo ]] || cat > "${ROOT}"/usr/bin/makeinfo < "${ROOT}"/usr/bin/perl + chmod +x "${ROOT}"/usr/bin/perl + fi + # Tell dynamic loader the path of libgcc_s.so of stage2 + if [[ ! -f "${ROOT}"/etc/ld.so.conf.d/stage2.conf ]]; then + mkdir -p "${ROOT}"/etc/ld.so.conf.d + dirname $(gcc -print-libgcc-file-name) > "${ROOT}"/etc/ld.so.conf.d/stage2.conf + fi + + pkgs=( + sys-apps/baselayout + sys-apps/gentoo-functions + sys-devel/binutils-config + ${linker} + sys-kernel/linux-headers + sys-libs/glibc + sys-libs/zlib + ) + + BOOTSTRAP_RAP=yes \ + emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + else + pkgs=( + $([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency + sys-libs/ncurses + sys-libs/readline + app-shells/bash + sys-apps/sed + app-arch/xz-utils + sys-apps/gentoo-functions + sys-apps/b
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 4d7daa49f985f8a14bf5a3de67cf8ff79c3ebd54 Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:49:05 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 07:59:44 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4d7daa49 scripts/bootstrap-prefix.sh: emacs local setup for the code standard. scripts/bootstrap-prefix.sh | 5 + 1 file changed, 5 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 2c8e5f1..7096801 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -2446,3 +2446,8 @@ fi einfo "ready to bootstrap ${TODO}" # bootstrap_interactive proceeds with guessed defaults when TODO=noninteractive bootstrap_${TODO#non} || exit 1 + +# Local Variables: +# sh-indentation: 8 +# sh-basic-offset: 8 +# End:
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: b0b1b89242da65cabd4cbc034ef3fdbe01c5773d Author: Fabian Groffen gentoo org> AuthorDate: Wed Jun 15 07:43:27 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 15 07:43:27 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=b0b1b892 scripts/bootstrap-prefix.sh: bump snapshot for Solaris fixes, bug #585918 scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index cde771d..feeb58b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -404,7 +404,7 @@ do_tree() { } bootstrap_tree() { - local PV="20160420" + local PV="20160614" if [[ -n ${LATEST_TREE_YES} ]]; then do_tree "${SNAPSHOT_URL}" portage-latest.tar.bz2 else
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: cb624b4b07da1b13ceec5cf01cee3daffa9fc932 Author: Benda Xu gentoo org> AuthorDate: Mon Jun 13 14:37:13 2016 + Commit: Benda XU gentoo org> CommitDate: Mon Jun 13 14:37:13 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=cb624b4b bootstrap-prefix.sh: add sys-apps/diffutils in stage2. It is needed by bison-3 build system. scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index e164f6b..b242491 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1283,10 +1283,10 @@ bootstrap_stage2() { dev-libs/libffi sys-devel/m4 sys-devel/flex + sys-apps/diffutils # needed by bison-3 build system sys-devel/bison sys-devel/patch $(rapx "" sys-devel/binutils-config) - $([[ ${CHOST} == *-aix* ]] && echo sys-apps/diffutils ) # gcc can't deal with aix diffutils, gcc PR14251 ) # Most binary Linux distributions seem to fancy toolchains that
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 6f8399cca7ce9cfd6f5b5ebc4307c12405d190e0 Author: Benda Xu gentoo org> AuthorDate: Mon Jun 13 14:15:04 2016 + Commit: Benda XU gentoo org> CommitDate: Mon Jun 13 14:15:04 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=6f8399cc bootstrap-prefix.sh: add move up curl add -f option to test against download failures. scripts/bootstrap-prefix.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 6fd749c..e164f6b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -47,13 +47,13 @@ efetch() { # curl, FreeBSD's fetch and ftp. if [[ x$(type -t wget) == "xfile" ]] ; then FETCH_COMMAND="wget" - elif [[ x$(type -t ftp) == "xfile" ]] ; then - FETCH_COMMAND="ftp" elif [[ x$(type -t curl) == "xfile" ]] ; then einfo "WARNING: curl doesn't fail when downloading fails, please check its output carefully!" - FETCH_COMMAND="curl -L -O" + FETCH_COMMAND="curl -f -L -O" elif [[ x$(type -t fetch) == "xfile" ]] ; then FETCH_COMMAND="fetch" + elif [[ x$(type -t ftp) == "xfile" ]] ; then + FETCH_COMMAND="ftp" else eerror "no suitable download manager found (need wget, curl, fetch or ftp)" eerror "could not download ${1##*/}"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: f98dcf305b463f16e3e37a78a973802fc72f50fc Author: Benda Xu gentoo org> AuthorDate: Wed Jun 8 06:01:04 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=f98dcf30 s/bootstrap-prefix.sh: figure out ABI flags of x86. scripts/bootstrap-prefix.sh | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a8ec06e..13fc48a 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -143,7 +143,11 @@ configure_cflags() { export CXX="${CXX-g++} -m32" export HOSTCC="${CC}" ;; - *) + i*86-pc-linux-gnu) + if [[ $(${CC} -dumpspecs | grep -A1 multilib_default) != *m32 ]]; then + export CC="${CC-gcc} -m32" + export CXX="${CXX-g++} -m32" + fi ;; esac }
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 21aeb54b33d10e6fab076beacf146dd6b4cf8fdd Author: Benda Xu gentoo org> AuthorDate: Thu May 26 07:06:09 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=21aeb54b bootstrap-prefix.sh: no USR SPLIT for RAP. Support Debian multiarch. scripts/bootstrap-prefix.sh | 82 +++-- 1 file changed, 5 insertions(+), 77 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 46cf012..4fba6df 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -224,7 +224,7 @@ bootstrap_setup() { echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" rapx "# sandbox does not work well on Prefix, bug 490246" rapx 'FEATURES="-usersandbox -sandbox"' - if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then + if [[ !is-rap && -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break" echo "PREFIX_DISABLE_GEN_USR_LDSCRIPT=yes" @@ -1469,83 +1469,11 @@ bootstrap_interactive() { # eventually ends up in make.conf, see the end of stage3. We don't # do this in bootstrap_setup() because in that case we'd also have # to cater for getting this right with manual bootstraps. - export PREFIX_DISABLE_USR_SPLIT=yes + is-rap || export PREFIX_DISABLE_USR_SPLIT=yes - # immediately die on platforms that we know are impossible due to - # brain-deadness (Debian/Ubuntu) or extremely hard dependency chains - # (TODO NetBSD/OpenBSD) - case ${CHOST} in - *-linux-gnu) - local toolchain_impossible= - # Figure out if this is Ubuntu... - if [[ $(lsb_release -is 2>/dev/null) == "Ubuntu" ]] ; then - case "$(lsb_release -sr)" in - [456789].*|10.*) - : # good versions - ;; - *) - # Debian/Ubuntu have seriously fscked up their - # toolchain to support their multi-arch crap - # since Natty (11.04) that noone really wants, - # and certainly not upstream. Some details: - # https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/738098 - toolchain_impossible="Ubuntu >= 11.04 (Natty)" - ;; - esac - fi - # Figure out if this is Debian - if [[ -e /etc/debian_release ]] ; then - case "$(< /etc/debian_release)" in - hamm/*|slink/*|potato/*|woody/*|sarge/*|etch/*|lenny/*|squeeze/*) - : # good versions - ;; - *) - # Debian introduced their big crap since Wheezy - # (7.0), like for Ubuntu, see above - toolchain_impossible="Debian >= 7.0 (Wheezy)" - ;; - esac - fi - if [[ -n ${toolchain_impossible} ]] ; then - # In short, it's impossible for us to compile a - # compiler, since 1) gcc picks up our ld, which doesn't - # support sysroot (can work around with a wrapper - # script), 2) headers and libs aren't found (symlink - # them to Prefix), 3) stuff like crtX.i isn't found - # during bootstrap, since the bootstrap compiler doesn't - # get any of our flags and doesn't know where to find - # them (even if we copied them). So we cannot do this, - # unless we use the Ubuntu patches in our ebuilds, which - # is a NO-GO area. - cat << EOF -Oh My! ${toolchain_impossible}! ARGH! HELL comes over me! - -EOF - echo -n "..." -
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 703616ef063672db9c9c868bbfcf091516ac6089 Author: Benda Xu gentoo org> AuthorDate: Sat Jun 4 07:25:15 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=703616ef s/bootstrap-prefix.sh: remove EPREFIX/tmp after "emerge -e system". partially reverts 3a945696443b. 1. A rerun of bootstrap script after "emerge -e system" failure should not go through stage1 again. 2. For RAP binutils in stage3 is linked against zlib of stage2. scripts/bootstrap-prefix.sh | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index b2dc5ec..0b9601b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1515,12 +1515,6 @@ EOF # Switch to the proper portage. hash -r - # Get rid of the temporary tools. - if [[ -d ${ROOT}/tmp/var/tmp ]] ; then - rm -rf "${ROOT}"/tmp - mkdir "${ROOT}"/tmp - fi - # Update the portage tree. treedate=$(date -f "${ROOT}"/usr/portage/metadata/timestamp +%s) nowdate=$(date +%s) @@ -2168,7 +2162,13 @@ EOF hash -r # tmp/* stuff is removed in stage3 - if ! emerge -e system ; then + if emerge -e system ; then + # Now, after 'emerge -e system', we can get rid of the temporary tools. + if [[ -d ${EPREFIX}/tmp/var/tmp ]] ; then + rm -Rf "${EPREFIX}"/tmp || return 1 + mkdir -p "${EPREFIX}"/tmp || return 1 + fi + else # emerge -e system fail cat << EOF
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: f06eace46dcf09beac1a383ba6b38645b48c7824 Author: Benda Xu gentoo org> AuthorDate: Sat May 28 07:03:25 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=f06eace4 scripts/b-p.sh: no need to copy libgcc on RAP. ld.so of glibc does that. scripts/bootstrap-prefix.sh | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 72f7195..b1f8f8a 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1318,9 +1318,11 @@ bootstrap_stage2() { # do it ourselves here to make the bootstrap continue ( cd "${ROOT}"/tmp/usr/bin && ln -s clang ${CHOST}-clang && ln -s clang++ ${CHOST}-clang++ ) else - # make sure the EPREFIX gcc shared libraries are there - mkdir -p "${ROOT}"/usr/${CHOST}/lib/gcc - cp "${ROOT}"/tmp/usr/${CHOST}/lib/gcc/* "${ROOT}"/usr/${CHOST}/lib/gcc + if ! is-rap ; then + # make sure the EPREFIX gcc shared libraries are there + mkdir -p "${ROOT}"/usr/${CHOST}/lib/gcc + cp "${ROOT}"/tmp/usr/${CHOST}/lib/gcc/* "${ROOT}"/usr/${CHOST}/lib/gcc + fi fi einfo "stage2 successfully finished"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: bb01d4d958e69fec3bd54045c054f9ab22d66a88 Author: Benda Xu gentoo org> AuthorDate: Mon May 23 10:46:14 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=bb01d4d9 scripts/bootstrap-prefix.sh: USE=-acl for linux-standalone. Its profile does not mask acl. scripts/bootstrap-prefix.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 3a4e4b3..e073e6d 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1163,6 +1163,7 @@ do_emerge_pkgs() { [[ -n ${pvdb} ]] && continue local myuse=( + -acl -berkdb -fortran -gdbm
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 0b2de32db9fa57a6f74849ce8abb839df63f74d6 Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:18:37 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=0b2de32d scripts/bootstrap-prefix.sh: startprefix for RAP. scripts/bootstrap-prefix.sh | 7 +++ 1 file changed, 7 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index c5ad77f..b2dc5ec 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -476,6 +476,13 @@ bootstrap_startscript() { # currently I think right into the prefix is the best location, as # putting it in /bin or /usr/bin just hides it some more for the # user + if is-rap ; then + mkdir -p "${ROOT}"/usr/portage/scripts + wget --no-check-certificate \ + https://gitweb.gentoo.org/repo/proj/prefix.git/plain/scripts/startprefix.in \ +-O "${ROOT}"/usr/portage/scripts/startprefix.in + fi + sed \ -e "s|@GENTOO_PORTAGE_EPREFIX@|${ROOT}|g" \ "${ROOT}"/usr/portage/scripts/startprefix.in \
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 3a4fd1ab5c253a297900f5342b45b534bca7c375 Author: Benda Xu gentoo org> AuthorDate: Wed Jun 8 01:09:48 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=3a4fd1ab s/bootstrap-prefix.sh: stage tools should be used first in stage3. scripts/bootstrap-prefix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 0b9601b..1e5393b 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1364,6 +1364,8 @@ bootstrap_stage3() { fi emerge_pkgs() { + # stage3 tools should be used first. + DEFAULT_PATH=$(echo "${ROOT}"/{,tmp/}{,usr/}{s,}bin | tr ' ' ':') \ EPREFIX="${ROOT}" \ do_emerge_pkgs "$@" }
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: eab0fda4c25215bdd85ce57d8f3dbc6e19868bda Author: Benda Xu gentoo org> AuthorDate: Sat May 28 10:29:05 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=eab0fda4 scripts/bootstrap-prefix.sh: install texinfo for glibc. scripts/bootstrap-prefix.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index b1f8f8a..239aec0 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1473,6 +1473,9 @@ bootstrap_stage3() { CPPFLAGS="-DGNUSTEP_BASE_VERSION" \ CFLAGS= CXXFLAGS= USE="-git" emerge -u system || return 1 + # TODO, glibc should depend on texinfo + is-rap && { emerge sys-apps/texinfo || return 1; } + # remove anything that we don't need (compilers most likely) emerge --depclean
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 4cef85e0a1a666c09c2c3dbb210374a392715f1e Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 08:06:45 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4cef85e0 scripts/b-p.sh: calculate kernel version and select legacy profiles. scripts/bootstrap-prefix.sh | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 3f891e8..c5ad77f 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -10,6 +10,8 @@ einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } +kver() { uname -r|cut -d\- -f1|awk -F. '{for (i=1; i<=NF; i++){s+=lshift($i,(4-i)*8)};print s}'; } +profile-legacy() { [[ $(kver) -ge 33955840 ]] || echo /legacy; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -263,6 +265,7 @@ EOF ln -sf {,"${ROOT}"}/etc/group [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf [[ -f ${ROOT}/etc/hosts ]] || ln -s {,"${ROOT}"}/etc/hosts + local legacy=$(profile-legacy) fi local linux=$(rapx linux-standalone linux) @@ -292,22 +295,22 @@ EOF profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/${linux}/x86" + profile="prefix/${linux}/x86${legacy}" ;; x86_64-pc-linux-gnu) - profile="prefix/${linux}/amd64" + profile="prefix/${linux}/amd64${legacy}" ;; ia64-pc-linux-gnu) - profile="prefix/${linux}/ia64" + profile="prefix/${linux}/ia64${legacy}" ;; powerpc-unknown-linux-gnu) - profile="prefix/${linux}/ppc" + profile="prefix/${linux}/ppc${legacy}" ;; powerpc64-unknown-linux-gnu) - profile="prefix/${linux}/ppc64" + profile="prefix/${linux}/ppc64${legacy}" ;; armv7l-pc-linux-gnu) - profile="prefix/${linux}/arm" + profile="prefix/${linux}/arm${legacy}" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 10f6517e6c32eb8777a51ae08492692fcd540dfc Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:41:35 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=10f6517e bootstrap-prefix.sh: get_libdir for multilib support on RAP. scripts/bootstrap-prefix.sh | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 4fba6df..cb649dc 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -9,6 +9,7 @@ eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } rapx() { is-rap && echo $1 || echo $2; } +get_libdir() { portageq envvar LIBDIR_$(portageq envvar ABI) || echo lib; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -407,7 +408,7 @@ EOF do_tree() { local x - for x in etc{,/portage} usr/{{,s}bin,lib} var/tmp var/lib/portage var/log/portage var/db; + for x in etc{,/portage} usr/{{,s}bin,$(rapx "" lib)} var/tmp var/lib/portage var/log/portage var/db; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done @@ -423,7 +424,7 @@ do_tree() { [[ -e ${ROOT}/${x} ]] || ( cd "${ROOT}" && ln -s usr/${x} ) done else - for x in lib sbin ; do + for x in $(rapx "" lib) sbin ; do [[ -d ${ROOT}/${x} ]] || mkdir -p "${ROOT}/${x}" done fi @@ -531,7 +532,8 @@ bootstrap_portage() { [[ -x ${ROOT}/tmp/bin/bash ]] || [[ ! -x ${ROOT}/tmp/usr/bin/bash ]] || ln -s ../usr/bin/bash "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/bash ]] || ln -s "${BASH}" "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/sh ]] || ln -s bash "${ROOT}"/tmp/bin/sh || return 1 - [[ -x ${ROOT}/bin/sh ]] || ln -s ../tmp/bin/sh "${ROOT}"/bin/sh || return 1 + [[ -x ${ROOT}/bin/bash ]] || ln -s ../tmp/bin/bash "${ROOT}"/bin/bash || return 1 + [[ -x ${ROOT}/bin/sh ]] || ln -s bash "${ROOT}"/bin/sh || return 1 export PORTAGE_BASH="${ROOT}"/tmp/bin/bash einfo "Compiling ${A%-*}" @@ -1333,7 +1335,7 @@ bootstrap_stage3() { configure_toolchain || return 1 export CONFIG_SHELL="${ROOT}"/tmp/bin/bash export CPPFLAGS="-I${ROOT}/usr/include" - export LDFLAGS="-L${ROOT}/usr/lib" + export LDFLAGS="-L${ROOT}/usr/$(get_libdir)" unset CC CXX emerge_pkgs() {
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 754d22bf69802625cca2798af7460c26b012284f Author: Benda Xu gentoo org> AuthorDate: Fri Jun 3 01:14:21 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=754d22bf scripts/bootstrap-prefix.sh: remove libgcc hack on RAP. scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 108723c..3f891e8 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1443,7 +1443,7 @@ EOF # linker, we can't since we want the compiler to pick it up. # Therefore, inject some kludgy workaround, for deps like gmp that # use c++ - [[ ${CHOST} != *-darwin* ]] && export CXX="${CHOST}-g++ -lgcc_s" + [[ ${CHOST} != *-darwin* ]] && ! is-rap && export CXX="${CHOST}-g++ -lgcc_s" # Clang unconditionally requires python, the eclasses are really not # setup for a scenario where python doesn't live in the target
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 84f34557e19b9cce392e412b6957628083c0f241 Author: Benda Xu gentoo org> AuthorDate: Sat May 28 10:12:07 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=84f34557 scripts/bootstrap-prefix.sh: stage3 ld should link to stage2 zlib. zlib should not get rpath encoded scripts/bootstrap-prefix.sh | 77 - 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 0d209b2..108723c 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1353,38 +1353,71 @@ bootstrap_stage3() { fi fi - configure_toolchain || return 1 - export CONFIG_SHELL="${ROOT}"/tmp/bin/bash - export CPPFLAGS="-I${ROOT}/usr/include" - export LDFLAGS="-L${ROOT}/usr/$(get_libdir)" - unset CC CXX - emerge_pkgs() { EPREFIX="${ROOT}" \ do_emerge_pkgs "$@" } - # GCC sometimes decides that it needs to run makeinfo to update some - # info pages from .texi files. Obviously we don't care at this - # stage and rather have it continue instead of abort the build - export MAKEINFO="echo makeinfo GNU texinfo 4.13" - - # Build a native compiler. + configure_toolchain || return 1 + export CONFIG_SHELL="${ROOT}"/tmp/bin/bash + + # binutils cannot link against zlib in EPREFIX because + # later ld's host DL cannot load refreshed zlib with + # new glibc symbols. It cannot link against host zlib + # either because it might be too old. Therefore it + # can only be linked against stage2 zlib. + configure_cflags pkgs=( - $([[ ${CHOST} == *-aix* ]] && echo dev-libs/libiconv ) # bash dependency - sys-libs/ncurses - sys-libs/readline - app-shells/bash - sys-apps/sed - app-arch/xz-utils + sys-apps/baselayout sys-apps/gentoo-functions - sys-apps/baselayout-prefix - sys-devel/m4 - sys-devel/flex sys-devel/binutils-config - sys-libs/zlib ${linker} ) + is-rap && emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + + export CPPFLAGS="-I${ROOT}/usr/include" + export LDFLAGS="-L${ROOT}/usr/$(get_libdir)" + unset CC CXX + + # GCC sometimes decides that it needs to run makeinfo to update some + # info pages from .texi files. Obviously we don't care at this + # stage and rather have it continue instead of abort the build + [[ -x "${ROOT}"/usr/bin/makeinfo ]] || cat > "${ROOT}"/usr/bin/makeinfo <
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 99fb2b0902cd1315df2aa40940068d565779224a Author: Benda Xu gentoo org> AuthorDate: Thu Jun 9 01:50:33 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=99fb2b09 bootstrap-prefix.sh: copy hosts instead of linking it. Portage has modifications to hosts. scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 13fc48a..6fd749c 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -268,7 +268,7 @@ EOF [[ -f ${ROOT}/etc/group ]] || getent group > "${ROOT}"/etc/group || \ ln -sf {,"${ROOT}"}/etc/group [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf - [[ -f ${ROOT}/etc/hosts ]] || ln -s {,"${ROOT}"}/etc/hosts + [[ -f ${ROOT}/etc/hosts ]] || cp {,"${ROOT}"}/etc/hosts local legacy=$(profile-legacy) fi
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: fbe97b8ff249b261bd09b0e90d209bb9cb23b106 Author: Benda Xu gentoo org> AuthorDate: Mon May 23 17:23:55 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=fbe97b8f scripts/bootstrap-prefix.sh: support sys-libs/glibc. - do not need a linker in stage2 on RAP. - binutils-config and ldconfig should be called explicitly - lto of gcc should be disabled. ld points to the host dynamic loader and gcc points to the RAP one, ld cannot load the gcc lto plugin. scripts/bootstrap-prefix.sh | 32 +--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 239aec0..0d209b2 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1271,7 +1271,7 @@ bootstrap_stage2() { sys-devel/flex sys-devel/bison sys-devel/patch - sys-devel/binutils-config + $(rapx "" sys-devel/binutils-config) $([[ ${CHOST} == *-aix* ]] && echo sys-apps/diffutils ) # gcc can't deal with aix diffutils, gcc PR14251 ) @@ -1282,6 +1282,7 @@ bootstrap_stage2() { # Build a linker and compiler that live in ${ROOT}/tmp, but # produce binaries in ${ROOT}. + is-rap || \ USE="${USE} -cxx" \ TPREFIX="${ROOT}" \ emerge_pkgs --nodeps ${linker} || return 1 @@ -1291,6 +1292,7 @@ bootstrap_stage2() { # package.use to disable in the temporary prefix. echo "dev-libs/gmp -cxx" >> "${ROOT}"/tmp/etc/portage/package.use + BOOTSTRAP_RAP_STAGE2=yes \ EXTRA_ECONF="--disable-bootstrap" \ GCC_MAKE_TARGET=all \ TPREFIX="${ROOT}" \ @@ -1385,6 +1387,24 @@ bootstrap_stage3() { ) emerge_pkgs --nodeps "${pkgs[@]}" || return 1 + if is-rap ; then + binutils-config 1 || return 1 + # We need ${ROOT}/usr/bin/perl to merge glibc. + if [[ ! -x "${ROOT}"/usr/bin/perl ]]; then + # trick "perl -V:apiversion" check of glibc-2.19. + echo -e "#!${ROOT}/bin/sh\necho 'apiversion='" > "${ROOT}"/usr/bin/perl + chmod +x "${ROOT}"/usr/bin/perl + fi + # Tell dynamic loader the path of libgcc_s.so of stage2 + if [[ ! -f "${ROOT}"/etc/ld.so.conf.d/stage2.conf ]]; then + mkdir -p "${ROOT}"/etc/ld.so.conf.d + dirname $(gcc -print-libgcc-file-name) > "${ROOT}"/etc/ld.so.conf.d/stage2.conf + fi + BOOTSTRAP_RAP=yes \ + emerge_pkgs --nodeps sys-kernel/linux-headers sys-libs/glibc \ + && "${ROOT}"/usr/sbin/ldconfig || return 1 + fi + # On some hosts, gcc gets confused now when it uses the new linker, # see for instance bug #575480. While we would like to hide that # linker, we can't since we want the compiler to pick it up. @@ -1398,11 +1418,17 @@ bootstrap_stage3() { ( cd "${ROOT}"/usr/bin && test ! -e python && ln -s "${ROOT}"/tmp/usr/bin/python2.7 ) # in addition, avoid collisions rm -Rf "${ROOT}"/tmp/usr/lib/python2.7/site-packages/clang + + RAP_DLINKER=$(echo "${ROOT}"/$(get_libdir)/ld*.so.[0-9]) # try to get ourself out of the mudd, bug #575324 - EXTRA_ECONF="--disable-compiler-version-checks" \ + EXTRA_ECONF="--disable-compiler-version-checks $(rapx --disable-lto)" \ + LDFLAGS="${LDFLAGS} $(rapx -Wl,--dynamic-linker=${RAP_DLINKER})" \ emerge_pkgs --nodeps ${compiler} || return 1 - ( cd "${ROOT}"/usr/bin && test ! -e python && rm -f python2.7 ) + # undo libgcc_s.so path of stage2 + rm -f "${ROOT}"/etc/ld.so.conf.d/stage2.conf + "${ROOT}"/usr/sbin/ldconfig || return 1 + ( cd "${ROOT}"/usr/bin && test ! -e python && rm -f python2.7 ) # Use $ROOT tools where possible from now on. rm -f "${ROOT}"/bin/sh ln -s bash "${ROOT}"/bin/sh
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 03f945855a7ee0664b79b276b0e74cea27865b51 Author: Benda Xu gentoo org> AuthorDate: Sat May 28 06:59:33 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=03f94585 scripts/b-p.sh: link /usr/{lib -> lib64} in stage1 on systems get_libdir != lib, python (looks into /usr/lib by default) need to find libffi (installs into /usr/lib64 by default). ugly enumerating all possible libdirs. scripts/bootstrap-prefix.sh | 17 + 1 file changed, 17 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index cb649dc..72f7195 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1098,6 +1098,23 @@ bootstrap_stage1() { ( chmod 755 "${ROOT}"/tmp/usr/bin/java{,c} ;; esac + # Host compiler can output a variety of libdirs. At stage1, + # they should be the same as lib. Otherwise libffi may not be + # found by python. + if is-rap ; then + [[ -d ${ROOT}/tmp/usr/lib ]] || mkdir -p "${ROOT}"/tmp/usr/lib + local libdir + for libdir in lib64 lib32 libx32; do + if [[ ! -L ${ROOT}/tmp/usr/${libdir} ]] ; then + if [[ -e "${ROOT}"/tmp/usr/${libdir} ]] ; then + echo "${ROOT}"/tmp/usr/${libdir} should be a symlink to lib + return 1 + fi + ln -s lib "${ROOT}"/tmp/usr/${libdir} + fi + done + fi + # important to have our own (non-flawed one) since Python (from # Portage) and binutils use it for zlib in ${ROOT}/tmp/usr/lib/libz.* ; do
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: d98f1f04ba8dfd7aa56f32644da64efd79fec36f Author: Benda Xu gentoo org> AuthorDate: Thu May 26 02:46:25 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=d98f1f04 scripts/bootstrap-prefix.sh: disable sandbox. scripts/bootstrap-prefix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index e073e6d..46cf012 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -222,6 +222,8 @@ bootstrap_setup() { echo 'CXXFLAGS="${CFLAGS}"' echo "MAKEOPTS=\"${MAKEOPTS}\"" echo "CONFIG_SHELL=\"${ROOT}/bin/bash\"" + rapx "# sandbox does not work well on Prefix, bug 490246" + rapx 'FEATURES="-usersandbox -sandbox"' if [[ -n ${PREFIX_DISABLE_USR_SPLIT} ]] ; then echo echo "# This disables /usr-split, removing this will break"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 94f2fde6329e5f9695d8fc91428a8514d4ce29a3 Author: Benda Xu gentoo org> AuthorDate: Wed Jun 8 06:00:16 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=94f2fde6 s/bootstrap-prefix.sh: set CXX to convey LDFLAGS. gmp does not respect LDFLAGS in its configure, should set CXX instead. https://gmplib.org/manual/Known-Build-Problems.html#Known-Build-Problems scripts/bootstrap-prefix.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 1e5393b..a8ec06e 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1466,8 +1466,11 @@ EOF RAP_DLINKER=$(echo "${ROOT}"/$(get_libdir)/ld*.so.[0-9]) # try to get ourself out of the mudd, bug #575324 + # gmp does not respect LDFLAGS in its configure, should set CXX instead. + # https://gmplib.org/manual/Known-Build-Problems.html#Known-Build-Problems EXTRA_ECONF="--disable-compiler-version-checks $(rapx --disable-lto)" \ LDFLAGS="${LDFLAGS} $(rapx -Wl,--dynamic-linker=${RAP_DLINKER})" \ + CXX="${CHOST}-g++ ${LDFLAGS}" \ emerge_pkgs --nodeps ${compiler} || return 1 # undo libgcc_s.so path of stage2 rm -f "${ROOT}"/etc/ld.so.conf.d/stage2.conf
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 7ae69c5013465b534ae960a153cb48e7ee3b837f Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:49:05 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=7ae69c50 scripts/bootstrap-prefix.sh: emacs local setup for the code standard. scripts/bootstrap-prefix.sh | 5 + 1 file changed, 5 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 591cadf..a327803 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -2442,3 +2442,8 @@ fi einfo "ready to bootstrap ${TODO}" # bootstrap_interactive proceeds with guessed defaults when TODO=noninteractive bootstrap_${TODO#non} || exit 1 + +# Local Variables: +# sh-indentation: 8 +# sh-basic-offset: 8 +# End:
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: a53075b6c0799cd4261922d00c01cffbec0b10ac Author: Benda Xu gentoo org> AuthorDate: Mon May 23 10:14:33 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=a53075b6 scripts/bootstrap-prefix.sh: setup android overlay as staged RAP repo. setup name databases. scripts/bootstrap-prefix.sh | 36 +++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index a327803..3a4e4b3 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -234,6 +234,34 @@ bootstrap_setup() { } > "${ROOT}"/etc/portage/make.conf fi + if is-rap && [[ ! -f ${ROOT}/etc/portage/repos.conf ]] ; then + cat <"${ROOT}"/etc/portage/repos.conf +[DEFAULT] +main-repo = gentoo +eclass-overrides = rap + +[gentoo] +location = ${ROOT}/usr/portage +sync-type = rsync +sync-uri = rsync://rsync.gentoo.org/gentoo-portage + +[rap] +location = ${ROOT}/usr/portage-stage +sync-type = git +sync-uri = https://anongit.gentoo.org/git/proj/android.git +auto-sync = no +EOF + fi + + if is-rap ; then + [[ -f ${ROOT}/etc/passwd ]] || getent passwd > "${ROOT}"/etc/passwd || \ + ln -sf {,"${ROOT}"}/etc/passwd + [[ -f ${ROOT}/etc/group ]] || getent group > "${ROOT}"/etc/group || \ + ln -sf {,"${ROOT}"}/etc/group + [[ -f ${ROOT}/etc/resolv.conf ]] || ln -s {,"${ROOT}"}/etc/resolv.conf + [[ -f ${ROOT}/etc/hosts ]] || ln -s {,"${ROOT}"}/etc/hosts + fi + local linux=$(rapx linux-standalone linux) case ${CHOST} in @@ -415,6 +443,10 @@ bootstrap_tree() { else do_tree http://dev.gentoo.org/~grobian/distfiles prefix-overlay-${PV}.tar.bz2 fi + if is-rap; then + PORTDIR="${ROOT}/usr/portage-stage" \ + do_tree http://dev.gentoo.org/~heroxbd android-master.tar.bz2 + fi } bootstrap_startscript() { @@ -524,7 +556,9 @@ bootstrap_portage() { [[ -e "${ROOT}"/tmp/usr/portage ]] || ln -s "${PORTDIR}" "${ROOT}"/tmp/usr/portage - if [[ -s ${PORTDIR}/profiles/repo_name ]]; then + if is-rap; then + cp -f "${ROOT}"/etc/portage/repos.conf "${ROOT}"/tmp/usr/share/portage/config/repos.conf + elif [[ -s ${PORTDIR}/profiles/repo_name ]]; then # sync portage's repos.conf with the tree being used sed -i -e "s,gentoo_prefix,$(<"${PORTDIR}"/profiles/repo_name)," "${ROOT}"/tmp/usr/share/portage/config/repos.conf || return 1 fi
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 91158a5c7baec371c594eabb3b3792a7bf0cf53b Author: Benda Xu gentoo org> AuthorDate: Thu May 26 09:48:19 2016 + Commit: Benda XU gentoo org> CommitDate: Fri Jun 10 01:47:29 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=91158a5c scripts/bootstrap-prefix.sh: rap helpers for profiles and portage tree. scripts/bootstrap-prefix.sh | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 5a2e277..591cadf 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -7,6 +7,8 @@ trap 'exit 1' TERM KILL INT QUIT ABRT # some basic output functions eerror() { echo "!!! $*" 1>&2; } einfo() { echo "* $*"; } +is-rap() { [[ ${BASH_SOURCE} = *rap.sh ]]; } +rapx() { is-rap && echo $1 || echo $2; } # prefer gtar over tar [[ x$(type -t gtar) == "xfile" ]] \ @@ -231,6 +233,8 @@ bootstrap_setup() { echo 'FETCHCOMMAND="bash -c \"echo I need \${FILE} from \${URI} in \${DISTDIR}; read\""' } > "${ROOT}"/etc/portage/make.conf fi + + local linux=$(rapx linux-standalone linux) case ${CHOST} in powerpc-apple-darwin7) @@ -257,22 +261,22 @@ bootstrap_setup() { profile="prefix/darwin/macos/10.$((rev - 4))/x64" ;; i*86-pc-linux-gnu) - profile="prefix/linux/x86" + profile="prefix/${linux}/x86" ;; x86_64-pc-linux-gnu) - profile="prefix/linux/amd64" + profile="prefix/${linux}/amd64" ;; ia64-pc-linux-gnu) - profile="prefix/linux/ia64" + profile="prefix/${linux}/ia64" ;; powerpc-unknown-linux-gnu) - profile="prefix/linux/ppc" + profile="prefix/${linux}/ppc" ;; powerpc64-unknown-linux-gnu) - profile="prefix/linux/ppc64" + profile="prefix/${linux}/ppc64" ;; armv7l-pc-linux-gnu) - profile="prefix/linux/arm" + profile="prefix/${linux}/arm" ;; sparc-sun-solaris2.9) profile="prefix/sunos/solaris/5.9/sparc" @@ -404,6 +408,7 @@ do_tree() { } bootstrap_tree() { + is-rap && LATEST_TREE_YES=1 local PV="20160420" if [[ -n ${LATEST_TREE_YES} ]]; then do_tree "${SNAPSHOT_URL}" portage-latest.tar.bz2 @@ -2400,9 +2405,10 @@ export PORTDIR=${PORTDIR:-"${ROOT}/usr/portage"} export DISTDIR=${DISTDIR:-"${PORTDIR}/distfiles"} PORTAGE_TMPDIR=${PORTAGE_TMPDIR:-${ROOT}/tmp/var/tmp} DISTFILES_URL=${DISTFILES_URL:-"http://dev.gentoo.org/~grobian/distfiles"} -SNAPSHOT_URL=${SNAPSHOT_URL:-"http://rsync.prefix.bitzolder.nl/snapshots"} GNU_URL=${GNU_URL:="http://ftp.gnu.org/gnu"} GENTOO_MIRRORS=${GENTOO_MIRRORS:="http://distfiles.gentoo.org"} +SNAPSHOT_HOST=$(rapx ${GENTOO_MIRRORS} http://rsync.prefix.bitzolder.nl) +SNAPSHOT_URL=${SNAPSHOT_URL:-"${SNAPSHOT_HOST}/snapshots"} GCC_APPLE_URL="http://www.opensource.apple.com/darwinsource/tarballs/other"; export MAKE CONFIG_SHELL
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 42cc3c6a762fd3d5dcb15cab5f194b1ccdc0d709 Author: Benda Xu gentoo org> AuthorDate: Mon Jun 6 14:35:11 2016 + Commit: Benda XU gentoo org> CommitDate: Mon Jun 6 14:35:11 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=42cc3c6a scripts/bootstrap-prefix.sh: EPREFIX/bin/sh link to bash Otherwise EPREFIX/tmp/bin/sh somehow stops working sh: error while loading shared libraries: libncurses.so.6 https://bugs.gentoo.org/show_bug.cgi?id=575480#c12 scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 8d295ed..47138a8 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -543,7 +543,7 @@ bootstrap_portage() { [[ -x ${ROOT}/tmp/bin/bash ]] || ln -s "${BASH}" "${ROOT}"/tmp/bin/bash || return 1 [[ -x ${ROOT}/tmp/bin/sh ]] || ln -s bash "${ROOT}"/tmp/bin/sh || return 1 [[ -x ${ROOT}/bin/bash ]] || ln -s ../tmp/bin/bash "${ROOT}"/bin/bash || return 1 - [[ -x ${ROOT}/bin/sh ]] || ln -s ../tmp/bin/sh "${ROOT}"/bin/sh || return 1 + [[ -x ${ROOT}/bin/sh ]] || ln -s bash "${ROOT}"/bin/sh || return 1 export PORTAGE_BASH="${ROOT}"/tmp/bin/bash einfo "Compiling ${A%-*}"
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 568a3e77aec87ff0381479daa75867fab241d527 Author: Benda Xu gentoo org> AuthorDate: Tue Jun 7 01:26:42 2016 + Commit: Benda XU gentoo org> CommitDate: Tue Jun 7 01:26:42 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=568a3e77 s/bootstrap-prefix.sh: let SNAPSHOT_HOST use GENTOO_MIRRORS by default. scripts/bootstrap-prefix.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 47138a8..12f4077 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -2460,10 +2460,10 @@ export PORTDIR=${PORTDIR:-"${ROOT}/usr/portage"} export DISTDIR=${DISTDIR:-"${PORTDIR}/distfiles"} PORTAGE_TMPDIR=${PORTAGE_TMPDIR:-${ROOT}/tmp/var/tmp} DISTFILES_URL=${DISTFILES_URL:-"http://dev.gentoo.org/~grobian/distfiles"} -SNAPSHOT_HOST=$(rapx distfiles.gentoo.org rsync.prefix.bitzolder.nl) -SNAPSHOT_URL=${SNAPSHOT_URL:-"http://${SNAPSHOT_HOST}/snapshots"} GNU_URL=${GNU_URL:="http://ftp.gnu.org/gnu"} GENTOO_MIRRORS=${GENTOO_MIRRORS:="http://distfiles.gentoo.org"} +SNAPSHOT_HOST=$(rapx ${GENTOO_MIRRORS} http://rsync.prefix.bitzolder.nl) +SNAPSHOT_URL=${SNAPSHOT_URL:-"${SNAPSHOT_HOST}/snapshots"} GCC_APPLE_URL="http://www.opensource.apple.com/darwinsource/tarballs/other"; export MAKE CONFIG_SHELL
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 57a2dec52e8c8a20e0fd7f93882fa1a4615947b2 Author: Benda Xu gentoo org> AuthorDate: Tue Jun 7 05:30:30 2016 + Commit: Benda XU gentoo org> CommitDate: Tue Jun 7 05:30:30 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=57a2dec5 should not use https, it need openssl on the host. scripts/bootstrap-prefix.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 6581c22..f9b0d9a 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -46,7 +46,7 @@ efetch() { # Try to find a download manager, we only deal with wget, # curl, FreeBSD's fetch and ftp. if [[ x$(type -t wget) == "xfile" ]] ; then - FETCH_COMMAND="wget --no-check-certificate" + FETCH_COMMAND="wget" elif [[ x$(type -t ftp) == "xfile" ]] ; then FETCH_COMMAND="ftp" elif [[ x$(type -t curl) == "xfile" ]] ; then @@ -451,7 +451,7 @@ bootstrap_tree() { fi if is-rap; then PORTDIR="${ROOT}/usr/portage-stage" \ - do_tree https://gitweb.gentoo.org/proj/android.git/snapshot android-master.tar.bz2 + do_tree http://dev.gentoo.org/~heroxbd android-master.tar.bz2 fi }
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 57a412802f36258306535f58d4f8449acb83d569 Author: Benda Xu gentoo org> AuthorDate: Wed Jun 8 01:09:48 2016 + Commit: Benda XU gentoo org> CommitDate: Wed Jun 8 01:09:48 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=57a41280 s/bootstrap-prefix.sh: stage tools should be used first in stage3. scripts/bootstrap-prefix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index f9b0d9a..1031262 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1361,6 +1361,8 @@ bootstrap_stage3() { fi emerge_pkgs() { + # stage3 tools should be used first. + DEFAULT_PATH=$(echo "${ROOT}"/{,tmp/}{,usr/}{s,}bin | tr ' ' ':') EPREFIX="${ROOT}" \ do_emerge_pkgs "$@" }
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: 450576c73e50e48a6d5aa7795606c1a65a3d460b Author: Benda Xu gentoo org> AuthorDate: Tue Jun 7 05:18:13 2016 + Commit: Benda XU gentoo org> CommitDate: Tue Jun 7 05:18:13 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=450576c7 scripts/bootstrap-prefix.sh: use the newest wget in stage1. wget-1.13.4 fails on CentOS 7. ./stdio.h:1012:1: error: 'gets' undeclared here (not in a function) _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); scripts/bootstrap-prefix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 12f4077..6581c22 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -950,7 +950,7 @@ bootstrap_findutils() { } bootstrap_wget() { - bootstrap_gnu wget 1.13.4 + bootstrap_gnu wget 1.17.1 || bootstrap_gnu wget 1.13.4 } bootstrap_grep() {
[gentoo-commits] repo/proj/prefix:rap0 commit in: scripts/
commit: b4939312598049d67c1b4fd33b6f3e86f0244101 Author: Benda Xu gentoo org> AuthorDate: Sat Jun 4 07:25:15 2016 + Commit: Benda XU gentoo org> CommitDate: Sat Jun 4 07:25:15 2016 + URL:https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=b4939312 s/bootstrap-prefix.sh: remove EPREFIX/tmp after "emerge -e system". partially reverts 3a945696443b. 1. A rerun of bootstrap script after "emerge -e system" failure should not go through stage1 again. 2. For RAP binutils in stage3 is linked against zlib of stage2. scripts/bootstrap-prefix.sh | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 8dc2915..8d295ed 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1512,12 +1512,6 @@ EOF # Switch to the proper portage. hash -r - # Get rid of the temporary tools. - if [[ -d ${ROOT}/tmp/var/tmp ]] ; then - rm -rf "${ROOT}"/tmp - mkdir "${ROOT}"/tmp - fi - # Update the portage tree. treedate=$(date -f "${ROOT}"/usr/portage/metadata/timestamp +%s) nowdate=$(date +%s) @@ -2165,7 +2159,13 @@ EOF hash -r # tmp/* stuff is removed in stage3 - if ! emerge -e system ; then + if emerge -e system ; then + # Now, after 'emerge -e system', we can get rid of the temporary tools. + if [[ -d ${EPREFIX}/tmp/var/tmp ]] ; then + rm -Rf "${EPREFIX}"/tmp || return 1 + mkdir -p "${EPREFIX}"/tmp || return 1 + fi + else # emerge -e system fail cat << EOF