#!/bin/bash # Script to setup the LinHES development enviroment # ./setup_env.sh ( i586|i686|x86_64 ) devID # This script assumes that /tmp is usable. MIRROR_DIR=../pkg_repo function arg_check { case $1 in i586) ARCH=$1 ;; i686) ARCH=$1 ;; x86_64) ARCH=$1 ;; *) echo "invalid arch specified" echo "valid options include i586, i686 and x86_64" echo "EX: ./setup_env.sh i686 " exit 1 ;; esac if [ ! x$2 = x ] then #check if developer template is present if [ -d templates/developers/$2 ] then echo "found the template for $2 " FOUNDTEMPLATE="TRUE" else echo "couldn't find templates/developers/$2" exit 2 fi fi } function static-pacman { echo "downloading pacman to tmp" cd /tmp wget http://www.knoppmyth.net/repo/$ARCH/pacman-static.tgz status=$? if [ ! $status = 0 ] then echo "couldn't download pacman static" exit 1 fi tar -zxvf pacman-static.tgz export PATH=$PATH:/tmp/pacman.static/run cd - } function pacman_check { which pacman status=$? if [ ! $status = 0 ] then echo "Can not find pacman in the path." echo "Trying to use static version" static-pacman fi } #----------------------------------------------- arg_check $1 $2 pacman_check cd build_tools/clarch ./setup_links.sh cd - #create the local pkg dir's for mirror and creating pkg's [ -e $MIRROR_DIR ] || mkdir -p $MIRROR_DIR for i in i586 i686 x86_64 do [ -e $MIRROR_DIR/$i ] || mkdir -p $MIRROR_DIR/$i for y in core extra core-testing extra-testing chroot-devel mv-core do [ -e $MIRROR_DIR/$i/$y ] || mkdir -p $MIRROR_DIR/$i/$y [ -e $MIRROR_DIR/src_packages/$y ] || mkdir -p $MIRROR_DIR/src_packages/$y done done [ -e $MIRROR_DIR/sources ] || mkdir -p $MIRROR_DIR/sources [ -e $MIRROR_DIR/packages ] || mkdir -p $MIRROR_DIR/packages #correct pacman.conf to use the correct ARCH to build the chroot sed -e "s/REPLACEME/$ARCH/g" templates/pacman.conf.chroot > /tmp/pacman.conf.chroot #create the chroot ./mkarchroot -f -C /tmp/pacman.conf.chroot ../build_root.$ARCH base base-devel cdrkit unison openssh status=$? if [ ! $status = 0 ] then printf "\n" printf "%s\n" "********************************************************" printf "*** %-48s ***\n" " An error occured creating the chroot" printf "%s\n" "********************************************************" exit 1 fi #clear out the default resolve.con mv -f ../build_root.$ARCH/etc/resolv.conf ../build_root.$ARCH/etc/resolv.conf.orig if [ x$FOUNDTEMPLATE = xTRUE ] then #check for login run if [ -f templates/developers/$2/loginrun.sh ] then cp -f templates/developers/$2/loginrun.sh ../build_root.$ARCH/root/loginrun.sh fi if [ -f templates/developers/$2/custom_chroot.sh ] then cd templates/developers/$2 ./custom_chroot.sh $ARCH cd - fi fi #create custom enter_dev_chroot.sh script #sed -e "s/REPLACEME/$ARCH/g" templates/enter_dev_chroot.sh > ../enter_dev_chroot.$ARCH.sh cp templates/enter_dev_chroot.sh ../enter_dev_chroot.$ARCH chmod 755 ../enter_dev_chroot.$ARCH printf "%s\n" "********************************************************" printf "** %-50s **\n" " To enter the chroot (build_root.$ARCH) run:" printf "** %-50s **\n" " cd .." printf "** %-50s **\n" " ./enter_dev_chroot.$ARCH" printf "%s\n" "********************************************************" #copy makepkg.conf into the chroot sed -e "s/i686/$ARCH/g" templates/makepkg.conf > ../build_root.$ARCH/etc/makepkg.conf #copy pacman.conf into the chroot sed -e "s/REPLACEME/$ARCH/g" templates/pacman.conf.chroot > ../build_root.$ARCH/etc/pacman.conf cd ..