Magellan Linux

Diff of /tags/bootstrap-1_12/mage-bootstrap.sh.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/bootstrap/scripts/mage-bootstrap.sh revision 324 by niro, Thu Jan 26 20:23:47 2006 UTC tags/bootstrap-1_12/mage-bootstrap.sh.in revision 2194 by niro, Wed Oct 9 10:47:58 2013 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # bootstrap2.sh  # $Id$
3    
4  TOOLCHAIN=""  TOOLCHAIN=""
5  BASESYSTEM=""  BASESYSTEM=""
# Line 8  MROOT="" Line 8  MROOT=""
8  ABORT_AFTER_STAGE1=false  ABORT_AFTER_STAGE1=false
9  MY_MAGEDIR=""  MY_MAGEDIR=""
10  MY_PKGDIR=""  MY_PKGDIR=""
11    MAGEUPDATE=true
12    MAGEUPDATETARBALL=false
13    
14  die()  die()
15  {  {
# Line 55  read_magerc() Line 57  read_magerc()
57   local SMAGE2RSYNC   local SMAGE2RSYNC
58    
59   # sanity checks   # sanity checks
60     [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global || \
61     die "get_value_from_magefile: /etc/mage.rc.global not found."
62   [ -f ${magerc} ] && source ${magerc} || \   [ -f ${magerc} ] && source ${magerc} || \
63   die "get_value_from_magefile: ${magerc} not found."   die "get_value_from_magefile: ${magerc} not found."
64   [ -z "${var}" ] && die "get_value_from_magefile: \$var not given."   [ -z "${var}" ] && die "get_value_from_magefile: \$var not given."
# Line 76  add_initrc() Line 80  add_initrc()
80  enter_chroot()  enter_chroot()
81  {  {
82   mount -t proc proc ${MROOT}/proc || die "mount proc"   mount -t proc proc ${MROOT}/proc || die "mount proc"
83     mount -t sysfs sysfs ${MROOT}/sys || die "mount sys"
84   mount -o bind /dev ${MROOT}/dev || die "mount dev"   mount -o bind /dev ${MROOT}/dev || die "mount dev"
85    
86   chroot ${MROOT} /bin/bash -i /.installrc || die "chr00ting"   chroot ${MROOT} /bin/bash -i /.installrc || die "chr00ting"
87    
88   umount ${MROOT}/dev ${MROOT}/proc || die "mount proc/dev"   umount ${MROOT}/dev ${MROOT}/sys ${MROOT}/proc || die "mount proc/sys/dev"
89    
90   [ -f ${MROOT}/.installrc ] && rm ${MROOT}/.installrc   [ -f ${MROOT}/.installrc ] && rm ${MROOT}/.installrc
91  }  }
# Line 101  trap_exit() Line 106  trap_exit()
106  {  {
107   is_loc_mounted "${MROOT}/dev" && umount ${MROOT}/dev   is_loc_mounted "${MROOT}/dev" && umount ${MROOT}/dev
108   is_loc_mounted "${MROOT}/proc" && umount ${MROOT}/proc   is_loc_mounted "${MROOT}/proc" && umount ${MROOT}/proc
109     is_loc_mounted "${MROOT}/sys" && umount ${MROOT}/sys
110   is_loc_mounted "${MY_MAGEDIR}" && umount ${MY_MAGEDIR}   is_loc_mounted "${MY_MAGEDIR}" && umount ${MY_MAGEDIR}
111   is_loc_mounted "${MY_PKGDIR}" && umount ${MY_PKGDIR}   is_loc_mounted "${MY_PKGDIR}" && umount ${MY_PKGDIR}
112   echo "bootstrap aborted"   echo "bootstrap aborted"
# Line 109  trap_exit() Line 115  trap_exit()
115    
116  print_usage()  print_usage()
117  {  {
118     echo "mage-bootstrap, version @VERSION@"
119   echo "Usage: $(basename $0) --opt arg ..."   echo "Usage: $(basename $0) --opt arg ..."
120   echo   echo
121   echo "Options:"   echo "Options:"
122   echo " --profile,    -p  --  select a profile (needed)"   echo " --profile,        -p  --  select a profile (needed)"
123   echo " --root,       -r  --  location to new root (needed)"   echo " --root,           -r  --  location to new root (needed)"
124   echo " --magerc,     -m  --  location of mage.rc (needed)"   echo " --magerc,         -m  --  location of mage.rc (needed)"
125   echo   echo
126   echo " --toolchain,  -t  --  select other toolchain than from profile"   echo " --toolchain,      -t  --  select other toolchain than from profile"
127   echo " --basesystem, -b  --  select other basesystem than from profile"   echo " --basesystem,     -b  --  select other basesystem than from profile"
128   echo " --stage1,     -s1 --  if set, abort after stage1 (toolchain)"   echo " --stage1,         -s1 --  if set, abort after stage1 (toolchain)"
129   echo " --help,       -h  --  prints this help"   echo " --update-tarball, -ut --  update via tarball not rsync"
130     echo " --no-update,      -u  --  do not update the mage tree"
131     echo " --help,           -h  --  prints this help"
132   echo   echo
133    
134   exit 1   exit 1
# Line 141  do Line 150  do
150   --root|-r) shift; MROOT="$1" ;;   --root|-r) shift; MROOT="$1" ;;
151   --stage1|-s1) ABORT_AFTER_STAGE1=true ;;   --stage1|-s1) ABORT_AFTER_STAGE1=true ;;
152   --magerc|-m) shift; MAGERC="$1" ;;   --magerc|-m) shift; MAGERC="$1" ;;
153     --update-tarball|-ut) MAGEUPDATETARBALL=true ;;
154     --no-update|-u) MAGEUPDATE=false ;;
155   --help|-h) print_usage ;;   --help|-h) print_usage ;;
156   '') shift;;   '') shift;;
157   *) echo "Unkown option '$1', use --help or -h to get more info."; exit 1 ;;   *) echo "Unkown option '$1', use --help or -h to get more info."; exit 1 ;;
# Line 182  mount -o bind ${MROOT}/${MY_PKGDIR} ${MY Line 193  mount -o bind ${MROOT}/${MY_PKGDIR} ${MY
193  ln -snf ${MY_MAGEDIR}/profiles/${PROFILE} /etc/mage-profile || die "link profile"  ln -snf ${MY_MAGEDIR}/profiles/${PROFILE} /etc/mage-profile || die "link profile"
194    
195  # update mage tree  # update mage tree
196  mage update || die "update mage-tree"  if [[ ${MAGEUPDATE} = true ]]
197    then
198     if [[ ${MAGEUPDATETARBALL} = true ]]
199     then
200     MAGERC="${MAGERC}" mage update-tarball || die "update mage-tree"
201     else
202     MAGERC="${MAGERC}" mage update || die "update mage-tree"
203     fi
204    fi
205    
206  # now get the toolchain and the basesystem layout file  # now get the toolchain and the basesystem layout file
207  # [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="toolchain.defaults"  # [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="toolchain.defaults"
# Line 191  mage update || die "update mage-tree" Line 210  mage update || die "update mage-tree"
210  # TOOLCHAIN="$(< /etc/mage-profile/${TOOLCHAIN})"  # TOOLCHAIN="$(< /etc/mage-profile/${TOOLCHAIN})"
211  # BASESYSTEM="$(< /etc/mage-profile/${BASESYSTEM})"  # BASESYSTEM="$(< /etc/mage-profile/${BASESYSTEM})"
212    
213  # this way toolchain and basesytem can be packages;  # this way toolchain and basesystem can be packages;
214  # only if nothing set the layout files from the profile will be taken  # only if nothing set the layout files from the profile will be taken
215  [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="$(< /etc/mage-profile/toolchain.defaults)"  [ -z "${TOOLCHAIN}" ] && TOOLCHAIN="$(< ${MY_MAGEDIR}/profiles/${PROFILE}/toolchain.defaults)"
216  [ -z "${BASESYSTEM}" ] && BASESYSTEM="$(< /etc/mage-profile/basesystem.defaults)"  [ -z "${BASESYSTEM}" ] && BASESYSTEM="$(< ${MY_MAGEDIR}/profiles/${PROFILE}/basesystem.defaults)"
217    
218  # install toolchain  # install toolchain
219  CONFIG_PROTECT="-*" MROOT="${MROOT}" mage install ${TOOLCHAIN} || die "toolchain install"  if ! MROOT="${MROOT}" MAGERC="${MAGERC}" magequery -n ${TOOLCHAIN}
220    then
221     CONFIG_PROTECT="-*" MROOT="${MROOT}" MAGERC="${MAGERC}" mage install ${TOOLCHAIN} || die "toolchain install"
222    fi
223    
224  # umount dirs, they are not needed anymore  # umount dirs, they are not needed anymore
225  umount ${MY_MAGEDIR} ${MY_PKGDIR} || die "umount mage/pkgdir"  umount ${MY_MAGEDIR} ${MY_PKGDIR} || die "umount mage/pkgdir"
# Line 216  fi Line 238  fi
238    
239  # now create an initrc for the installation of the basesystem  # now create an initrc for the installation of the basesystem
240  :> ${MROOT}/.installrc  :> ${MROOT}/.installrc
241    add_initrc "export MAGE_BOOTSTRAP=true"
242  add_initrc "export HOME=/root"  add_initrc "export HOME=/root"
243  add_initrc "export PATH=/bin:/usr/bin:/sbin:/usr/sbin"  add_initrc "export PATH=/bin:/usr/bin:/sbin:/usr/sbin"
244  add_initrc "export BASESYSTEM=${BASESYSTEM}"  add_initrc "export BASESYSTEM=${BASESYSTEM}"
# Line 238  add_initrc "mage clean" Line 261  add_initrc "mage clean"
261  enter_chroot  enter_chroot
262    
263  echo "System bootstrap to '${MROOT}' finished."  echo "System bootstrap to '${MROOT}' finished."
   
264  exit 0  exit 0
   

Legend:
Removed from v.324  
changed lines
  Added in v.2194