~ salmonella-environment-setup (master) 882bfca098221cbe0a5066369cbaf30ba1305f99
commit 882bfca098221cbe0a5066369cbaf30ba1305f99
Author: Mario Domenech Goulart <mario@parenteses.org>
AuthorDate: Sat Nov 27 16:34:18 2021 +0100
Commit: Mario Domenech Goulart <mario@parenteses.org>
CommitDate: Sat Nov 27 16:34:23 2021 +0100
debian-bullseye.sh: refactor installation of egg dependencies
Add "installers" directory and debian-common.sh as an attempt to
reduce code duplication
diff --git a/system-setup/debian-bullseye.sh b/system-setup/debian-bullseye.sh
index b07ec07..d547d2c 100755
--- a/system-setup/debian-bullseye.sh
+++ b/system-setup/debian-bullseye.sh
@@ -4,271 +4,28 @@
set -ex
-SALMONELLA_USER=chicken
-SALMONELLA_GROUP=chicken
-
-# BITS=32 # 32bit system
-BITS=64 # 64bit system
-
-## Disable Install-Suggests and Install-Recommends to save some space
-sudo sh -c "echo 'APT::Install-Suggests \"0\";' > /etc/apt/apt.conf.d/20no-extra-packages"
-sudo sh -c "echo 'APT::Install-Recommends \"0\";' >> /etc/apt/apt.conf.d/20no-extra-packages"
-sudo apt-get update
-
-
-## Packages
-sudo apt-get install \
- build-essential \
- clang \
- git \
- cmake \
- flex \
- subversion \
- automake \
- libf2c2-dev \
- libalut-dev \
- libtool \
- libgsl-dev \
- r-base-core \
- libfcgi-dev \
- libimlib2-dev \
- libg2-dev \
- libexif-dev \
- libfann-dev \
- libgts-dev \
- libglpk-dev \
- libaugeas-dev \
- libtokyocabinet-dev \
- libossp-uuid-dev \
- libatlas-base-dev \
- libsundials-dev \
- liblapack-dev \
- libsdl-net1.2-dev \
- libffi-dev \
- libsoil-dev \
- gfortran \
- libplot-dev \
- libxosd-dev \
- libreadline-dev \
- libncurses5-dev \
- libssl-dev \
- libopenmpi-dev \
- default-libmysqlclient-dev \
- libopenal-dev \
- python3-dev \
- libsqlite3-dev \
- libgdbm-dev \
- freetds-dev \
- libstemmer-dev \
- zlib1g-dev \
- libsvn-dev \
- libfltk1.3-dev \
- libzmq3-dev \
- libmpfi-dev \
- libphysfs-dev \
- tk8.6 \
- freeglut3-dev \
- libglfw3-dev \
- libsdl1.2-dev \
- libsdl-mixer1.2-dev \
- libsdl-sound1.2-dev \
- libsdl-ttf2.0-dev \
- libsdl-gfx1.2-dev \
- libsdl-image1.2-dev \
- libwebkit2gtk-4.0-dev \
- openmpi-bin \
- libglm-dev \
- libusb-1.0-0-dev \
- libffcall1-dev \
- libdb-dev \
- openjdk-11-jdk \
- openjdk-11-dbg \
- ant \
- libdb5.3-dev \
- libavcodec-dev \
- libavformat-dev \
- libswscale-dev \
- graphviz \
- time \
- libmagic-dev \
- libfuse-dev \
- units \
- postgresql-server-dev-all \
- libmarkdown2-dev \
- xorg-dev \
- libglu1-mesa-dev \
- libglew-dev \
- libleveldb-dev \
- libyaml-dev \
- libudev-dev \
- liblmdb-dev \
- libola-dev \
- libprotobuf-dev \
- libnanomsg-dev \
- libsass-dev \
- libsndfile1-dev \
- liblzma-dev \
- libsdl2-dev \
- libleptonica-dev \
- libsvm-dev \
- libsdl2-ttf-dev \
- libsdl2-image-dev \
- liblink-grammar-dev \
- liballegro5-dev \
- liballegro-image5-dev \
- liballegro-acodec5-dev \
- liballegro-dialog5-dev \
- liballegro-audio5-dev \
- liballegro-physfs5-dev \
- liballegro-image5-dev \
- liballegro-ttf5-dev\
- libstfl-dev \
- libblosc-dev \
- libgumbo-dev \
- haveged \
- gnuplot \
- libtag1-dev \
- libespeak-ng-dev \
- librocksdb-dev \
-
-##
-## Things that are not packaged for Debian
-##
-
-tmpdir=`mktemp -d`
-echo "### Using $tmpdir as temporary directory"
-
-
-### epeg
-
-cd $tmpdir
-wget http://www.call-with-current-continuation.org/tarballs/epeg-cvs-20070219.tar.gz
-tar xzvf epeg-cvs-20070219.tar.gz
-cd epeg
-./autogen.sh
-./configure --prefix=/usr/local
-sudo make install
-
-
-### proccpuinfo
-
-cd $tmpdir
-wget http://download.savannah.gnu.org/releases/proccpuinfo/libproccpuinfo-0.0.8.tar.bz2
-tar xjvf libproccpuinfo-0.0.8.tar.bz2
-cd libproccpuinfo-0.0.8/
-cmake -D CMAKE_INSTALL_PREFIX=/usr/local .
-make
-make test
-sudo make install
-
-
-### bvspis
-
-sudo mkdir -p /usr/local/bvspis
-sudo chown ${SALMONELLA_USER}:${SALMONELLA_GROUP} /usr/local/bvspis
-cd /usr/local/bvspis
-sudo wget http://www.netlib.org/toms/770.gz
-sudo gzip -d 770.gz
-sudo sh -c "awk 'NR>4' 770 > bvspis.sh"
-sudo rm 770
-sudo sh ./bvspis.sh
-sudo rm ./bvspis.sh
-
-# use "BVSPIS_PATH=/usr/local/bvspis/ salmonella bvsp-spline"
-
-
-### libgit2
-
-cd $tmpdir
-git clone git://github.com/libgit2/libgit2.git
-cd libgit2
-git checkout v0.25.0
-mkdir build && cd build
-cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
-sudo cmake --build . --target install
-
-
-### iup
-
-mkdir -p $tmpdir/iup
-cd $tmpdir/iup
-tarball=
-if [ "$BITS" = "32" ]; then
- tarball=iup-3.8_Linux32_lib.tar.gz
-else
- tarball=iup-3.8_Linux32_64_lib.tar.gz
-fi
-wget "http://sourceforge.net/projects/iup/files/3.8/Linux%2520Libraries/$tarball"
-tar xzvf $tarball
-sudo bash install_dev
-
-
-### canvas draw
-
-# Doesn't really work on wheezy. Linking against canvas draw
-# libraries gives errors like "/usr/bin/ld: skipping incompatible ..."
-
-mkdir -p $tmpdir/cd
-cd $tmpdir/cd
-if [ "$BITS" = "32" ]; then
- tarball=cd-5.6.1_Linux32_lib.tar.gz
-else
- tarball=cd-5.6.1_Linux32_64_lib.tar.gz
-fi
-wget "http://ufpr.dl.sourceforge.net/project/canvasdraw/5.6.1/Linux%20Libraries/$tarball"
-tar xzvf $tarball
-sudo bash install_dev
-
-
-### cryptlib
-
-mkdir -p $tmpdir/cryptlib
-cd $tmpdir/cryptlib
-wget https://cryptlib-release.s3-ap-southeast-1.amazonaws.com/cryptlib345.zip
-unzip -a cryptlib345.zip
-make
-make shared
-sudo cp libcl.a libcl.so.3.* /usr/local/lib/
-sudo cp *.h /usr/local/include/
-
-
-### agar
-
-mkdir -p $tmpdir/agar
-cd $tmpdir/agar
-wget http://stable.hypertriton.com/agar/agar-1.5.0.tar.gz
-tar xzvf agar-1.5.0.tar.gz
-cd agar-1.5.0/
-./configure --without-freetype
-make depend all
-sudo make install
-
-
-### cmark
-
-mkdir -p $tmpdir/cmark
-cd $tmpdir/cmark
-git clone https://github.com/commonmark/cmark.git
-cd cmark
-mkdir build
-cd build
-cmake ..
-make
-sudo make install
-
-
-### KiWi
-
-mkdir -p $tmpdir/KiWi
-cd $tmpdir/KiWi
-git clone https://github.com/mobius3/KiWi.git
-cd KiWi
-git checkout 77ec0de71a0f365163676a752bc85477be5fae2f
-mkdir build
-cd build
-cmake ..
-make
-sudo make install
+anchor=$(readlink -f $(dirname "$0"))
+. "$anchor/debian-common.sh"
+
+to_install="\
+ packages/debian-bullseye.sh \
+ agar.sh \
+ bvspis.sh \
+ cmark.sh \
+ cryptlib.sh \
+ epeg.sh \
+ iup.sh \
+ canvas_draw.sh \
+ kiwi.sh \
+ libgit2.sh \
+ proccpuinfo \
+ tcc.sh \
+"
+
+for script in $to_install; do
+ cd "$tmpdir"
+ . "$installers_dir/$script"
+done
### Finishing
diff --git a/system-setup/debian-common.sh b/system-setup/debian-common.sh
new file mode 100644
index 0000000..8791184
--- /dev/null
+++ b/system-setup/debian-common.sh
@@ -0,0 +1,15 @@
+export SALMONELLA_USER=chicken
+export SALMONELLA_GROUP=chicken
+
+# export BITS=32 # 32bit system
+export BITS=64 # 64bit system
+
+## Disable Install-Suggests and Install-Recommends to save some space
+sudo sh -c "echo 'APT::Install-Suggests \"0\";' > /etc/apt/apt.conf.d/20no-extra-packages"
+sudo sh -c "echo 'APT::Install-Recommends \"0\";' >> /etc/apt/apt.conf.d/20no-extra-packages"
+sudo apt-get update
+
+installers_dir=$anchor/installers
+
+tmpdir=`mktemp -d`
+echo "### Using $tmpdir as temporary directory"
diff --git a/system-setup/installers/agar.sh b/system-setup/installers/agar.sh
new file mode 100644
index 0000000..0b0bdad
--- /dev/null
+++ b/system-setup/installers/agar.sh
@@ -0,0 +1,8 @@
+mkdir agar
+cd agar
+wget http://stable.hypertriton.com/agar/agar-1.5.0.tar.gz
+tar xzvf agar-1.5.0.tar.gz
+cd agar-1.5.0/
+./configure --without-freetype
+make depend all
+sudo make install
diff --git a/system-setup/installers/bvspis.sh b/system-setup/installers/bvspis.sh
new file mode 100644
index 0000000..7c0af46
--- /dev/null
+++ b/system-setup/installers/bvspis.sh
@@ -0,0 +1,11 @@
+sudo mkdir -p /usr/local/bvspis
+sudo chown ${SALMONELLA_USER}:${SALMONELLA_GROUP} /usr/local/bvspis
+cd /usr/local/bvspis
+sudo wget http://www.netlib.org/toms/770.gz
+sudo gzip -d 770.gz
+sudo sh -c "awk 'NR>4' 770 > bvspis.sh"
+sudo rm 770
+sudo sh ./bvspis.sh
+sudo rm ./bvspis.sh
+
+# use "BVSPIS_PATH=/usr/local/bvspis/ salmonella bvsp-spline"
diff --git a/system-setup/installers/canvas_draw.sh b/system-setup/installers/canvas_draw.sh
new file mode 100644
index 0000000..3d0fc9d
--- /dev/null
+++ b/system-setup/installers/canvas_draw.sh
@@ -0,0 +1,10 @@
+mkdir canvas_draw
+cd canvas_draw
+if [ "$BITS" = "32" ]; then
+ tarball=cd-5.6.1_Linux32_lib.tar.gz
+else
+ tarball=cd-5.6.1_Linux32_64_lib.tar.gz
+fi
+wget "http://ufpr.dl.sourceforge.net/project/canvasdraw/5.6.1/Linux%20Libraries/$tarball"
+tar xzvf $tarball
+sudo bash install_dev
diff --git a/system-setup/installers/cmark.sh b/system-setup/installers/cmark.sh
new file mode 100644
index 0000000..c2d2a9f
--- /dev/null
+++ b/system-setup/installers/cmark.sh
@@ -0,0 +1,9 @@
+mkdir cmark
+cd cmark
+git clone https://github.com/commonmark/cmark.git
+cd cmark
+mkdir build
+cd build
+cmake ..
+make
+sudo make install
diff --git a/system-setup/installers/cryptlib.sh b/system-setup/installers/cryptlib.sh
new file mode 100644
index 0000000..a1d4970
--- /dev/null
+++ b/system-setup/installers/cryptlib.sh
@@ -0,0 +1,8 @@
+mkdir cryptlib
+cd cryptlib
+wget https://cryptlib-release.s3-ap-southeast-1.amazonaws.com/cryptlib345.zip
+unzip -a cryptlib345.zip
+make
+make shared
+sudo cp libcl.a libcl.so.3.* /usr/local/lib/
+sudo cp *.h /usr/local/include/
diff --git a/system-setup/installers/epeg.sh b/system-setup/installers/epeg.sh
new file mode 100644
index 0000000..c63a021
--- /dev/null
+++ b/system-setup/installers/epeg.sh
@@ -0,0 +1,6 @@
+wget http://www.call-with-current-continuation.org/tarballs/epeg-cvs-20070219.tar.gz
+tar xzvf epeg-cvs-20070219.tar.gz
+cd epeg
+./autogen.sh
+./configure --prefix=/usr/local
+sudo make install
diff --git a/system-setup/installers/iup.sh b/system-setup/installers/iup.sh
new file mode 100644
index 0000000..5d93d8d
--- /dev/null
+++ b/system-setup/installers/iup.sh
@@ -0,0 +1,11 @@
+mkdir iup
+cd iup
+tarball=
+if [ "$BITS" = "32" ]; then
+ tarball=iup-3.8_Linux32_lib.tar.gz
+else
+ tarball=iup-3.8_Linux32_64_lib.tar.gz
+fi
+wget "http://sourceforge.net/projects/iup/files/3.8/Linux%2520Libraries/$tarball"
+tar xzvf $tarball
+sudo bash install_dev
diff --git a/system-setup/installers/kiwi.sh b/system-setup/installers/kiwi.sh
new file mode 100644
index 0000000..ea7941f
--- /dev/null
+++ b/system-setup/installers/kiwi.sh
@@ -0,0 +1,10 @@
+mkdir kiwi
+cd kiwi
+git clone https://github.com/mobius3/KiWi.git
+cd KiWi
+git checkout 77ec0de71a0f365163676a752bc85477be5fae2f
+mkdir build
+cd build
+cmake ..
+make
+sudo make install
diff --git a/system-setup/installers/libgit2.sh b/system-setup/installers/libgit2.sh
new file mode 100644
index 0000000..da3deba
--- /dev/null
+++ b/system-setup/installers/libgit2.sh
@@ -0,0 +1,6 @@
+git clone git://github.com/libgit2/libgit2.git
+cd libgit2
+git checkout v0.25.0
+mkdir build && cd build
+cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
+sudo cmake --build . --target install
diff --git a/system-setup/installers/packages/debian-bullseye.sh b/system-setup/installers/packages/debian-bullseye.sh
new file mode 100644
index 0000000..c81c38e
--- /dev/null
+++ b/system-setup/installers/packages/debian-bullseye.sh
@@ -0,0 +1,113 @@
+sudo apt-get install \
+ build-essential \
+ clang \
+ git \
+ cmake \
+ flex \
+ subversion \
+ automake \
+ libf2c2-dev \
+ libalut-dev \
+ libtool \
+ libgsl-dev \
+ r-base-core \
+ libfcgi-dev \
+ libimlib2-dev \
+ libg2-dev \
+ libexif-dev \
+ libfann-dev \
+ libgts-dev \
+ libglpk-dev \
+ libaugeas-dev \
+ libtokyocabinet-dev \
+ libossp-uuid-dev \
+ libatlas-base-dev \
+ libsundials-dev \
+ liblapack-dev \
+ libsdl-net1.2-dev \
+ libffi-dev \
+ libsoil-dev \
+ gfortran \
+ libplot-dev \
+ libxosd-dev \
+ libreadline-dev \
+ libncurses5-dev \
+ libssl-dev \
+ libopenmpi-dev \
+ default-libmysqlclient-dev \
+ libopenal-dev \
+ python3-dev \
+ libsqlite3-dev \
+ libgdbm-dev \
+ freetds-dev \
+ libstemmer-dev \
+ zlib1g-dev \
+ libsvn-dev \
+ libfltk1.3-dev \
+ libzmq3-dev \
+ libmpfi-dev \
+ libphysfs-dev \
+ tk8.6 \
+ freeglut3-dev \
+ libglfw3-dev \
+ libsdl1.2-dev \
+ libsdl-mixer1.2-dev \
+ libsdl-sound1.2-dev \
+ libsdl-ttf2.0-dev \
+ libsdl-gfx1.2-dev \
+ libsdl-image1.2-dev \
+ libwebkit2gtk-4.0-dev \
+ openmpi-bin \
+ libglm-dev \
+ libusb-1.0-0-dev \
+ libffcall1-dev \
+ libdb-dev \
+ openjdk-11-jdk \
+ openjdk-11-dbg \
+ ant \
+ libdb5.3-dev \
+ libavcodec-dev \
+ libavformat-dev \
+ libswscale-dev \
+ graphviz \
+ time \
+ libmagic-dev \
+ libfuse-dev \
+ units \
+ postgresql-server-dev-all \
+ libmarkdown2-dev \
+ xorg-dev \
+ libglu1-mesa-dev \
+ libglew-dev \
+ libleveldb-dev \
+ libyaml-dev \
+ libudev-dev \
+ liblmdb-dev \
+ libola-dev \
+ libprotobuf-dev \
+ libnanomsg-dev \
+ libsass-dev \
+ libsndfile1-dev \
+ liblzma-dev \
+ libsdl2-dev \
+ libleptonica-dev \
+ libsvm-dev \
+ libsdl2-ttf-dev \
+ libsdl2-image-dev \
+ liblink-grammar-dev \
+ liballegro5-dev \
+ liballegro-image5-dev \
+ liballegro-acodec5-dev \
+ liballegro-dialog5-dev \
+ liballegro-audio5-dev \
+ liballegro-physfs5-dev \
+ liballegro-image5-dev \
+ liballegro-ttf5-dev\
+ libstfl-dev \
+ libblosc-dev \
+ libgumbo-dev \
+ haveged \
+ gnuplot \
+ libtag1-dev \
+ libespeak-ng-dev \
+ librocksdb-dev \
diff --git a/system-setup/installers/proccpuinfo.sh b/system-setup/installers/proccpuinfo.sh
new file mode 100644
index 0000000..93e9730
--- /dev/null
+++ b/system-setup/installers/proccpuinfo.sh
@@ -0,0 +1,7 @@
+wget http://download.savannah.gnu.org/releases/proccpuinfo/libproccpuinfo-0.0.8.tar.bz2
+tar xjvf libproccpuinfo-0.0.8.tar.bz2
+cd libproccpuinfo-0.0.8/
+cmake -D CMAKE_INSTALL_PREFIX=/usr/local .
+make
+make test
+sudo make install
diff --git a/system-setup/installers/tcc.sh b/system-setup/installers/tcc.sh
new file mode 100644
index 0000000..8f5ee91
--- /dev/null
+++ b/system-setup/installers/tcc.sh
@@ -0,0 +1,12 @@
+version=0.9.27
+
+wget -c "http://download.savannah.gnu.org/releases/tinycc/tcc-$version.tar.bz2"
+rm -rf "tcc-$version"
+tar xjf "tcc-$version.tar.bz2"
+cd "tcc-$version"
+
+# To compile some eggs we need a larger VSTACK_SIZE
+sed -i tcc.h -e 's/#define VSTACK_SIZE 256/#define VSTACK_SIZE 1024/'
+./configure
+make
+sudo make install
Trap