summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/bootstrap-old.sh357
1 files changed, 0 insertions, 357 deletions
diff --git a/scripts/bootstrap-old.sh b/scripts/bootstrap-old.sh
deleted file mode 100755
index 6e8d2c105743..000000000000
--- a/scripts/bootstrap-old.sh
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/bin/bash
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/scripts/bootstrap-old.sh,v 1.1 2005/03/28 01:03:31 wolf31o2 Exp $
-
-# people who were here:
-# (drobbins, 06 Jun 2003)
-# (solar, Jul 2004)
-# (vapier, Aug 2004)
-# (compnerd, Nov 2004)
-
-if [ -e /etc/init.d/functions.sh ] ; then
- source /etc/init.d/functions.sh
-
- # Use our own custom script, else logger cause things to
- # 'freeze' if we do not have a system logger running
- esyslog() {
- echo &> /dev/null
- }
-else
- eerror() { echo "!!! $*"; }
- einfo() { echo "* $*"; }
-fi
-show_status() {
- local num=$1
- shift
- echo " [[ ($num/6) $* ]]"
-}
-
-# Track progress of the bootstrap process to allow for
-# semi-transparent resuming
-progressfile=/var/run/bootstrap-progress
-[[ -e ${progressfile} ]] && source ${progressfile}
-export BOOTSTRAP_STAGE=${BOOTSTRAP_STAGE:-1}
-set_bootstrap_stage() {
- [[ -z ${STRAP_RUN} ]] && return 0
- export BOOTSTRAP_STAGE=$1
- echo "BOOTSTRAP_STAGE=$1" > ${progressfile}
-}
-
-v_echo() {
- einfo "Executing: $*"
- env "$@"
-}
-
-usage() {
- echo -e "Usage: ${HILITE}${0##*/}${NORMAL} ${GOOD}[options]${NORMAL}"
- echo -e " ${GOOD}--debug (-d)${NORMAL} Run with debug information turned on"
- echo -e " ${GOOD}--fetchonly (-f)${NORMAL} Just download all the source files"
- echo -e " ${GOOD}--info (-i)${NORMAL} Show system related information"
- echo -e " ${GOOD}--pretend (-p)${NORMAL} Display the packages that will be merged"
- echo -e " ${GOOD}--tree (-t)${NORMAL} Display the dependency tree, forces -p"
- echo -e " ${GOOD}--resume (-r)${NORMAL} Build/use binary packages"
-}
-
-unset STRAP_EMERGE_OPTS
-STRAP_RUN=1
-V_ECHO=env
-DEBUG=0
-GENTOO_VERS=2005.0 # Mostly for fluff ;)
-
-for opt in "$@" ; do
- case ${opt} in
- --fetchonly|-f)
- echo "Running in fetch-only mode ..."
- STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} -f"
- unset STRAP_RUN;;
- --help|-h)
- usage
- exit 0;;
- --debug|-d) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} --debug"; DEBUG=1;;
- --info|-i) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} --info" ; unset STRAP_RUN ;;
- --pretend|-p) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} -p" ; unset STRAP_RUN ;;
- --tree|-t) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} -p -t"; unset STRAP_RUN ;;
- --resume|-r) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} --usepkg --buildpkg";;
- --verbose|-v) STRAP_EMERGE_OPTS="${STRAP_EMERGE_OPTS} -v"; V_ECHO=v_echo;;
- --version)
- cvsver="$Header: /var/cvsroot/gentoo-x86/scripts/bootstrap-old.sh,v 1.1 2005/03/28 01:03:31 wolf31o2 Exp $"
- cvsver=${cvsver##*,v }
- einfo "Gentoo ${GENTOO_VERS} bootstrap ${cvsver%%Exp*}"
- exit 0
- ;;
- *)
- eerror "Unknown option '${opt}'"
- usage
- exit 1;;
- esac
-done
-
-if [[ -n ${STRAP_RUN} ]] ; then
- if [ ${BOOTSTRAP_STAGE} -ge 6 ] ; then
- echo
- einfo "System has been bootstrapped already!"
- einfo "If you re-bootstrap the system, you must complete the entire bootstrap process"
- einfo "otherwise you will have a broken system."
- einfo "Press enter to continue or CTRL+C to abort ..."
- read
- set_bootstrap_stage 1
- elif [ ${BOOTSTRAP_STAGE} -gt 1 ] ; then
- einfo "Resuming bootstrap at internal stage #${BOOTSTRAP_STAGE} ..."
- fi
-else
- export BOOTSTRAP_STAGE=0
-fi
-
-MYPROFILEDIR=$(readlink -f /etc/make.profile)
-if [[ ! -d ${MYPROFILEDIR} ]] ; then
- eerror "Error: '${MYPROFILEDIR}' does not exist. Exiting."
- exit 1
-fi
-
-[[ -e /etc/profile ]] && source /etc/profile
-
-echo -e "\n${GOOD}Gentoo Linux ${GENTOO_VERS}; ${BRACKET}http://www.gentoo.org/${NORMAL}"
-echo -e "Copyright 1999-2005 Gentoo Foundation; Distributed under the GPLv2"
-if [[ ${STRAP_EMERGE_OPTS:0:2} = "-f" ]] ; then
- echo "Fetching all bootstrap-related archives ..."
-elif [[ -n ${STRAP_RUN} ]] ; then
- if [ ${BOOTSTRAP_STAGE} -gt 2 ] ; then
- echo "Resuming Bootstrap of base system ..."
- else
- echo "Starting Bootstrap of base system ..."
- fi
-fi
-echo -------------------------------------------------------------------------------
-show_status 0 Locating packages
-
-# This should not be set to get glibc to build properly. See bug #7652.
-unset LD_LIBRARY_PATH
-
-# We do not want stray $TMP, $TMPDIR or $TEMP settings
-unset TMP TMPDIR TEMP
-
-cleanup() {
- if [[ -n ${STRAP_RUN} ]] ; then
- if [[ -f /etc/make.conf.build ]] ; then
- mv -f /etc/make.conf.build /etc/make.conf
- fi
- fi
- exit $1
-}
-
-pycmd() {
- [[ ${DEBUG} = "1" ]] && echo /usr/bin/python -c "$@" > /dev/stderr
- /usr/bin/python -c "$@"
-}
-
-# Trap ctrl-c and stuff. This should fix the users make.conf
-# not being restored.
-[[ -n ${STRAP_RUN} ]] && cp -f /etc/make.conf /etc/make.conf.build
-
-#TSTP messes ^Z of bootstrap up, so we don't trap it anymore.
-trap "cleanup" TERM KILL INT QUIT ABRT
-
-# USE may be set from the environment so we back it up for later.
-export ORIGUSE=$(portageq envvar USE)
-
-# Check for 'build' or 'bootstrap' in USE ...
-INVALID_USE="`gawk -v ORIGUSE="${ORIGUSE}" '
- BEGIN {
- if (ORIGUSE ~ /[[:space:]]*(build|bootstrap)[[:space:]]*/)
- print "yes"
- }'`"
-
-# Do not do the check for stage build scripts ...
-if [[ ${INVALID_USE} = "yes" ]] ; then
- echo
- eerror "You have 'build' or 'bootstrap' in your USE flags. Please"
- eerror "remove it before trying to continue, since these USE flags"
- eerror "are used for internal purposes and shouldn't be specified"
- eerror "by you."
- echo
- cleanup 1
-fi
-
-# bug #50158 (don't use `which` in a bootstrap).
-if ! type -path portageq &>/dev/null ; then
- echo
- eerror "Your portage version is too old. Please use a newer stage1 image."
- echo
- cleanup 1
-fi
-
-# gettext should only be needed when used with nls
-for opt in ${ORIGUSE} ; do
- case "${opt}" in
- nls) myGETTEXT="gettext";;
- nptl)
- if [[ -z $(portageq best_visible / '>=sys-kernel/linux26-headers-2.6.0') ]] ; then
- eerror "You need to have >=sys-kernel/linux26-headers-2.6.0 unmasked!"
- eerror "Please edit the latest >=sys-kernel/linux26-headers-2.6.0 package,"
- eerror "and add your ARCH to KEYWORDS."
- echo
- cleanup 1
- fi
- if [[ -n $(portageq best_version / sys-kernel/linux-headers) ]] ; then
- emerge -C sys-kernel/linux-headers
- emerge --nodeps --oneshot sys-kernel/linux26-headers
- fi
- USE_NPTL=1
- ;;
- esac
-done
-
-# With cascading profiles, the packages profile at the leaf is not a
-# complete system, just the restrictions to it for the specific profile.
-# The complete profile consists of an aggregate of the leaf and all its
-# parents. So we now call portage to read the aggregate profile and store
-# that into a variable.
-
-eval $(pycmd 'import portage; print portage.settings.packages;' |
-sed 's/[][,]//g; s/ /\n/g; s/\*//g' | while read p; do n=${p##*/}; n=${n%\'};
-n=${n%%-[0-9]*}; echo "my$(tr a-z- A-Z_ <<<$n)=$p; "; done)
-
-# this stuff should never fail but will if not enough is installed.
-#[[ -z ${myBASELAYOUT} ]] && myBASELAYOUT="$(portageq best_version / virtual/baselayout)"
-[[ -z ${myBASELAYOUT} ]] && myBASELAYOUT="baselayout"
-[[ -z ${myPORTAGE} ]] && myPORTAGE="portage"
-[[ -z ${myBINUTILS} ]] && myBINUTILS="binutils"
-[[ -z ${myGCC} ]] && myGCC="gcc"
-[[ -z ${myLIBC} ]] && myLIBC="virtual/libc"
-[[ -z ${myTEXINFO} ]] && myTEXINFO="sys-apps/texinfo"
-[[ -z ${myZLIB} ]] && myZLIB="zlib"
-[[ -z ${myNCURSES} ]] && myNCURSES="ncurses"
-
-# Do we really have no 2.4.x nptl kernels in portage?
-if [[ ${USE_NPTL} = "1" ]] ; then
- myOS_HEADERS="$(portageq best_visible / '>=sys-kernel/linux26-headers-2.6.0')"
- [[ -n ${myOS_HEADERS} ]] && myOS_HEADERS=">=${myOS_HEADERS}"
-fi
-[[ -z ${myOS_HEADERS} ]] && myOS_HEADERS="virtual/os-headers"
-
-einfo "Using baselayout : ${myBASELAYOUT}"
-einfo "Using portage : ${myPORTAGE}"
-einfo "Using os-headers : ${myOS_HEADERS}"
-einfo "Using binutils : ${myBINUTILS}"
-einfo "Using gcc : ${myGCC}"
-[[ -n ${myGETTEXT} ]] && einfo "Using gettext : ${myGETTEXT}"
-einfo "Using libc : ${myLIBC}"
-einfo "Using texinfo : ${myTEXINFO}"
-einfo "Using zlib : ${myZLIB}"
-einfo "Using ncurses : ${myNCURSES}"
-echo -------------------------------------------------------------------------------
-show_status 1 Configuring environment
-
-# Get correct CFLAGS, CHOST, CXXFLAGS, MAKEOPTS since make.conf will be
-# overwritten.
-
-ENV_EXPORTS="GENTOO_MIRRORS PORTDIR DISTDIR PKGDIR PORTAGE_TMPDIR
- CFLAGS CHOST CXXFLAGS MAKEOPTS ACCEPT_KEYWORDS PROXY HTTP_PROXY
- FTP_PROXY FEATURES STAGE1_USE"
-
-for opt in ${ENV_EXPORTS} ; do
- val=$(portageq envvar "${opt}")
- if [[ -n ${val} ]] ; then
- einfo "${opt}='${val}'"
- export ${opt}="${val}"
- fi
-done
-echo -------------------------------------------------------------------------------
-
-[[ -x /usr/sbin/gcc-config ]] && GCC_CONFIG="/usr/sbin/gcc-config"
-[[ -x /usr/bin/gcc-config ]] && GCC_CONFIG="/usr/bin/gcc-config"
-
-# Disable autoclean, or it b0rks
-export AUTOCLEAN="no"
-
-# Allow portage to overwrite stuff
-export CONFIG_PROTECT="-*"
-
-# disable collision-protection
-export FEATURES="${FEATURES} -collision-protect"
-
-if [ ${BOOTSTRAP_STAGE} -le 1 ] ; then
- show_status 2 Updating portage
- ${V_ECHO} USE="-* build bootstrap ${STAGE1_USE}" emerge ${STRAP_EMERGE_OPTS} ${myPORTAGE} || cleanup 1
- echo -------------------------------------------------------------------------------
- set_bootstrap_stage 2
-fi
-export USE="${ORIGUSE} bootstrap ${STAGE1_USE}"
-
-# We can't unmerge headers which may or may not exist yet. If your
-# trying to use nptl, it may be needed to flush out any old headers
-# before fully bootstrapping.
-if [ ${BOOTSTRAP_STAGE} -le 2 ] ; then
- show_status 3 Emerging headers/binutils
- #emerge ${STRAP_EMERGE_OPTS} -C virtual/os-headers || cleanup 1
- ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} ${myOS_HEADERS} ${myTEXINFO} ${myGETTEXT} ${myBINUTILS} || cleanup 1
- echo -------------------------------------------------------------------------------
- set_bootstrap_stage 3
-fi
-
-# If say both gcc and binutils were built for i486, and we then merge
-# binutils for i686 without removing the i486 version (Note that this is
-# _only_ when its exactly the same version of binutils ... if we have say
-# 2.14.90.0.6 build for i486, and bootstrap then merge 2.14.90.0.7 for i686,
-# we will not have issues. More below ...), gcc's search path will
-# still have
-#
-# /usr/lib/gcc-lib/i486-pc-linux-gnu/<gcc_version>/../../../../i486-pc-linux-gnu/bin/
-#
-# before /usr/bin, and thus it will use the i486 versions of binutils binaries
-# which causes issues. The reason for this issues is that when bootstrap merge
-# exactly the same version for i686, both will have installed the same files to
-# /usr/lib, and thus also USE the same libraries, cause as/ld to fail with
-# unresolved symbols during compiling/linking.
-#
-# More info on this can be found by looking at bug #32140:
-#
-# http://bugs.gentoo.org/show_bug.cgi?id=32140
-#
-# We now thus run an 'emerge clean' just after merging binutils ...
-#
-# NB: thanks to <rac@gentoo.org> for bringing me on the right track
-# (http://forums.gentoo.org/viewtopic.php?t=100263)
-#
-# <azarah@gentoo.org> (1 Nov 2003)
-if [[ -n ${STRAP_RUN} ]] ; then
- emerge clean || cleanup 1
-fi
-
-if [ ${BOOTSTRAP_STAGE} -le 3 ] ; then
- show_status 4 Emerging gcc
- ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} ${myGCC} || cleanup 1
- echo -------------------------------------------------------------------------------
- set_bootstrap_stage 4
-fi
-
-# Basic support for gcc multi version/arch scheme ...
-if [[ -n ${STRAP_RUN} ]] ; then
- if [[ -x ${GCC_CONFIG} ]] && ${GCC_CONFIG} --get-current-profile &>/dev/null
- then
- # Make sure we get the old gcc unmerged ...
- emerge clean || cleanup 1
- # Make sure the profile and /lib/cpp and /usr/bin/cc are valid ...
- ${GCC_CONFIG} "$(${GCC_CONFIG} --get-current-profile)" &>/dev/null
- fi
-fi
-
-if [ ${BOOTSTRAP_STAGE} -le 4 ] ; then
- show_status 5 Emerging libc/baselayout
- ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} ${myLIBC} ${myBASELAYOUT} ${myZLIB} || cleanup 1
- echo -------------------------------------------------------------------------------
- set_bootstrap_stage 5
-fi
-
-# ncurses-5.3 and up also build c++ bindings, so we need to rebuild it
-export USE="${ORIGUSE}"
-if [ ${BOOTSTRAP_STAGE} -le 5 ] ; then
- show_status 6 Re-Emerging C++ apps
- ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} ${myNCURSES} || cleanup 1
- echo -------------------------------------------------------------------------------
- set_bootstrap_stage 6
-fi
-
-# Restore original make.conf
-cleanup 0