Bootstrap: docker From: ubuntu:focal %help USAGE: salome [-h] NOTES: 1) This image is read-only! EXAMPLES: Run salome in TUI mode: $ singularity run --app salome -t scrypt.py args:.... Run salome in GUI mode: $ singularity run --nv --app salome To add support for MeshGems: $ singularity run --nv -B ${MESHGEMS_LICDIR}:/opt/DISTENE/license [--app ] where MESHGEMS_LICDIR points to the directory holding a valid MeshGems license %runscript exec salome "$@" %environment export PATH=/opt/SALOME-9.8.0-UB20.04:$PATH export FEELPP_REPOSITORY=/feel export LC_ALL="C" %labels AUTHOR christophe.trophime@lncmi.cnrs.fr Maintainer: Christophe Trophime Maintainer_email: christophe.trophime@lncmi.cnrs.fr Version 1.0 %post # create repositories mkdir -p /scratch /tmp /home /mnt mkdir -p /opt/DISTENE/DLim mkdir -p /feel # firefox-esr on Debian apt-get update apt-get -y upgrade apt-get -y install lsb-release wget curl apt-get -y install iputils-ping net-tools nmap # Add contrib and non-free section (should check if updates and backports exist) PLATFORM=$(lsb_release -cs) # firefox-esr on Debian apt-get update apt-get -y upgrade apt-get -y install firefox # Install Salome if [ ! -f /tmp/SALOME-9.8.0-SRC.tar.gz ]; then wget -O /tmp/SALOME-9.8.0-SRC.tar.gz \ "https://files.salome-platform.org/Salome/Salome9.8.0/SALOME-9.8.0-native-UB20.04-SRC.tar.gz" fi mkdir -p /opt/ mkdir -p /opt/DISTENE cd /opt tar zxf /tmp/SALOME-9.8.0-SRC.tar.gz rm /tmp/SALOME-9.8.0-SRC.tar.gz mv SALOME-9.8.0-native-UB20.04-SRC SALOME-9.8.0-UB20.04 pwd ls -l /opt cd SALOME-9.8.0-UB20.04 ./install_bin.sh rm -rf BINARIES-UB20.04 perl -pi -e "s|BINARIES-UB20.04|INSTALL|g" salome perl -pi -e "s|BINARIES-UB20.04|INSTALL|g" mesa_salome chown -R root:root . chmod go+w INSTALL/SALOME/bin/salome/test/Testing/Temporary # Install pre-requiste packages apt-get -y install wget net-tools apt-get -y install firefox apt-get -y install git cmake g++ libgfortran5 apt-get -y install mesa-utils libglu1-mesa-dev libglvnd-dev libxt-dev libxmu-dev libglvnd-dev libfontconfig-dev libtbb-dev libxft-dev apt-get -y install autotools-dev autoconf automake libtool libgsl-dev apt-get -y install python-is-python3 python3-distro python3-apt libpython3.8 \ python3-psutil python3-memory-profiler python3-sip python3-six \ python3-requests python3-click python3-pyparsing python3-pygments \ python3-numpy python3-scipy python3-matplotlib \ libboost-filesystem1.71.0 libboost-system1.71.0 libboost-serialization1.71.0 libboost-thread1.71.0 \ libboost-regex1.71.0 libboost-date-time1.71.0 libboost-chrono1.71.0 libboost-atomic1.71.0 \ libqwt-qt5-6 libqt5xml5 libqt5printsupport5 libqt5test5 libqt5x11extras5 libqt5help5 python3-pyqt5 \ libfreeimage3 \ libcgraph6 libgvc6 \ libmetis5 libscotch-6.0 \ libcppunit-1.15-0 libxss1 libgomp1 libquadmath0 libgtk2.0-0 DEBIAN_FRONTEND=noninteractive \ apt-get -y install python3-pint python3-yaml python3-psutil python3-memory-profiler \ libboost-all-dev libcppunit-dev liblapack-dev libxml2-dev \ swig doxygen libgraphviz-dev \ qttools5-dev libqt5svg5-dev libqt5x11extras5-dev qtxmlpatterns5-dev-tools \ python3-sip-dev pyqt5-dev pyqt5-dev-tools libfreeimage-dev libqwt-qt5-dev llvm-dev apt-get -y install libopenblas-pthread-dev libcminpack-dev \ libnlopt-dev libeigen3-dev python3-statsmodels # Clean-up rm -rf /opt/SALOME-9.8.0-UB20.04/BINARIES-UB20.04 rm -rf /opt/SALOME-9.8.0-UB20.04/ARCHIVES/* rm -rf /opt/SALOME-9.8.0-UB20.04/BUILD/* rm -rf /opt/SALOME-9.8.0-UB20.04/SOURCES/* # hack (do not reset LD_LIBRARY_PATH) perl -pi -e "s|context.setVariable\(r\"LD_LIBRARY_PATH\", r\"\", overwrite=True\)|# context.setVariable\(r\"LD_LIBRARY_PATH\", r\"\", overwrite=True\)|g" /opt/SALOME-9.8.0-UB20.04/salome perl -pi -e "s|context.setVariable\(r\"LD_LIBRARY_PATH\", r\"\", overwrite=True\)|# context.setVariable\(r\"LD_LIBRARY_PATH\", r\"\", overwrite=True\)|g" /opt/SALOME-9.8.0-UB20.04/mesa_salome # MeshGems mkdir -p /opt/DISTENE/license perl -pi -e "s|/home/salome-public/prerequis/LICENCE/libSalomeMeshGemsKeyGenerator|/opt/DISTENE/license/libSalomeMeshGemsKeyGenerator|" /opt/SALOME-9.8.0-UB20.04/salome perl -pi -e "s|libSalomeMeshGemsKeyGenerator-2.13-1-UB20.04.so|libSalomeMeshGemsKeyGenerator.so|" /opt/SALOME-9.8.0-UB20.04/salome perl -pi -e "s|/home/salome-public/prerequis/LICENCE/libSalomeMeshGemsKeyGenerator|/opt/DISTENE/license/libSalomeMeshGemsKeyGenerator|" /opt/SALOME-9.8.0-UB20.04/mesa_salome perl -pi -e "s|libSalomeMeshGemsKeyGenerator-2.13-1-UB20.04.so|libSalomeMeshGemsKeyGenerator.so|" /opt/SALOME-9.8.0-UB20.04/mesa_salome # create custom motd # Install figlet! version=$(/opt/SALOME-9.8.0-UB20.04/salome --version) apt update apt install -y figlet cat > /.singularity.d/env/99-motd.sh <