From 66e707f29b7b2598f21275b98d9c638ee0d6ac9c Mon Sep 17 00:00:00 2001 From: colepoirier Date: Tue, 12 May 2020 12:28:11 -0700 Subject: [PATCH] First draft of coriolis2 chroot dependency setup script, not currently working --- coriolis2-chroot | 129 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100755 coriolis2-chroot diff --git a/coriolis2-chroot b/coriolis2-chroot new file mode 100755 index 0000000..898faba --- /dev/null +++ b/coriolis2-chroot @@ -0,0 +1,129 @@ +#!/bin/bash +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi +cat <<'EOF' >> /etc/fstab +/dev /opt/chroot/coriolis/dev none bind 0 0 +/dev/pts /opt/chroot/coriolis/dev/pts none bind 0 0 +/proc /opt/chroot/coriolis/proc none bind 0 0 +/sys /opt/chroot/coriolis/sys none bind 0 0 +/tmp /opt/chroot/coriolis/tmp none bind 0 0 +EOF +mkdir -p /opt/chroot/coriolis +apt install -y debootstrap schroot +/usr/sbin/debootstrap buster /opt/chroot/coriolis http://ftp.debian.org/debian +mount /opt/chroot/coriolis/dev +mount /opt/chroot/coriolis/dev/pts +mount /opt/chroot/coriolis/proc +mount /opt/chroot/coriolis/sys +mount /opt/chroot/coriolis/tmp +echo "coriolis2" > /opt/chroot/coriolis/etc/debian_chroot +export MYNAME=`id 1000 | awk '{print $1}' | sed 's/.*(\(.*\))/\1/'` +export CHU_HOME=/home/$MYNAME +chroot /opt/chroot/coriolis /bin/bash << EOF +echo Installing necessary apt dependencies in the chroot +apt-get update -y +apt-get upgrade -y +apt-get install -y automake binutils-dev bison build-essential \ +ccache cmake doxygen dvipng flex gcc git graphviz imagemagick \ +libboost-all-dev libboost-python-dev libbz2-dev libmotif-dev \ +libqwt-dev libtool libx11-dev libxaw7-dev libxml2-dev libxpm-dev \ +libxt-dev python3.7 python3-jinja2 python3-pip python3-setuptools \ +python-dev python-qt4 python-sphinx qt4-dev-tools rapidjson-dev \ +texlive texlive-fonts-extra texlive-lang-french texlive-latex-extra \ +texlive-pictures xfig yosys zlib1g-dev + + + +useradd -m -p `python -c 'import crypt; print crypt.crypt("1234","Fx")'` -s /bin/bash $MYNAME -k /etc/skel +echo -e " +Added user ${MYNAME} with \e[1;91mpassword: 1234\e[0m" + +echo -e " +\e[1;91mPlease use command 'passwd ${MYNAME}' to change this immediately after this script is run for security purposes.\e[0m +" + +echo -e 'export PATH=/usr/lib/ccache:"\044PATH"\nexport DISPLAY=:0.0\nexport ALLIANCE_TOP=$CHU_HOME/alliance/install\nexport LD_LIBRARY_PATH=\044{ALLIANCE_TOP}/lib:\044{LD_LIBRARY_PATH}\nexport LD_LIBRARY_PATH=\044{ALLIANCE_TOP}/lib64:\044{LD_LIBRARY_PATH}' > $CHU_HOME/.bash_profile +chown $MYNAME $CHU_HOME/.bash_profile +chgrp $MYNAME $CHU_HOME/.bash_profile + +echo -e "Added 'export PATH=/usr/lib/ccache:\"\044PATH\"\nexport DISPLAY=:0.0' to $CHU_HOME/.bash_profile to speed up rebuilds" +EOF + +cat <>/etc/schroot/schroot.conf +[coriolis] +description=Debian Buster for Coriolis +directory=/opt/chroot/coriolis +groups=sbuild-security,$MYNAME,users +EOF + +echo "Adding the following coriolis section to /etc/schroot/schroot.conf: + +[coriolis] +description=Debian Buster for Coriolis +directory=/opt/chroot/coriolis +groups=sbuild-security,$MYNAME,users + +This enables you to chroot into coriolis as an unprivileged user by running +'schroot -c coriolis /bin/bash' +" +runuser $MYNAME --preserve-environment -c 'schroot -c coriolis /bin/bash << EOF +cd $CHU_HOME +mkdir -p $CHU_HOME/alliance/build $CHU_HOME/alliance/install +cd $CHU_HOME/alliance +git clone https://gitlab.lip6.fr/vlsi-eda/alliance.git +cd alliance/alliance/src +./autostuff +cd $CHU_HOME/alliance/build +../alliance/alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared +EOF' + +chroot /opt/chroot/coriolis /bin/bash << EOF +cd $CHU_HOME/alliance/build +make -j1 install +EOF + + +echo MYNAME $MYNAME +echo CHU_HOME $CHU_HOME + + +runuser $MYNAME --preserve-environment -c 'schroot -c coriolis /bin/bash << EOF +cd $CHU_HOME +mkdir -p $CHU_HOME/coriolis-2.x/src +cd $CHU_HOME/coriolis-2.x/src +git clone https://gitlab.lip6.fr/vlsi-eda/coriolis.git +cd coriolis +git checkout devel +./bootstrap/ccb.py --project=coriolis --make="-j4 install" + +#ln -s $CHU_HOME/coriolis-2.x/Linux.x86_64/Release.Shared/install/lib64 $CHU_HOME/coriolis-2.x/Linux.x86_64/Release.Shared/install/lib +#./bootstrap/ccb.py --project=coriolis --make="-j4 install" + +eval `$CHU_HOME/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py` +echo "eval `$CHU_HOME/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`" > $CHU_HOME/coriolisenv +source $CHU_HOME/coriolisenv +cd ~/coriolis-2.x/Linux.x86_64/Release.Shared/install/bin +./cgt +EOF' + + + +#chroot /opt/chroot/coriolis /bin/bash << EOF +#apt-get update -y +#apt-get build-dep yosys -y +#apt-get install clang tcl tcl-tclreadline tcl-dev libreadline-dev -y +#apt-get remove yosys -y +#EOF +#runuser $MYNAME --preserve-environment -c 'schroot -c coriolis /bin/bash << EOF +#cd $CHU_HOME +#git clone https://github.com/cliffordwolf/yosys.git +#cd yosys +#make config-clang +#make -j4 +#EOF' +#chroot /opt/chroot/coriolis /bin/bash << EOF +#cd $CHU_HOME/yosys +#make install +#EOF -- 2.30.2