1FROM i386/debian:wheezy 2 3ENV DEBIAN_FRONTEND noninteractive 4 5RUN echo "deb http://archive.debian.org/debian wheezy main" > /etc/apt/sources.list 6RUN echo "deb http://archive.debian.org/debian-security wheezy/updates main" >> /etc/apt/sources.list 7 8RUN apt-get -o Acquire::Check-Valid-Until=false update && apt-get install -y git make autoconf python curl wget bzip2 gcc g++ texlive texinfo valgrind libgl1-mesa-dev libxi-dev libxmu-dev libxft-dev libxinerama-dev libxcursor-dev libxfixes-dev mesa-common-dev libglu1-mesa-dev zlib1g-dev emacs23-nox && apt-get clean 9 10ENV CFLAGS=-fPIC 11ENV CXXFLAGS=-fPIC 12ENV FFLAGS=-fPIC 13 14# ----------------------- 15# GCC with PIC 16# ----------------------- 17 18RUN curl -L -O https://ftpmirror.gnu.org/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz && tar xf gcc-5.5.0.tar.gz && cd gcc-5.5.0 && ./contrib/download_prerequisites && cd .. && mkdir gccbuild && cd gccbuild && ../gcc-5.5.0/configure -v --build=i386-linux-gnu --host=i386-linux-gnu --target=i386-linux-gnu --prefix=/usr/local --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --with-pic && make -j 4 && make install && cd .. && rm -rf gcc-5.5.0.tar.gz gcc-5.5.0 gccbuild 19 20ENV PATH=/usr/local/bin:${PATH} 21ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH} 22ENV CC=/usr/local/bin/gcc 23ENV CXX=/usr/local/bin/g++ 24ENV FC=/usr/local/bin/gfortran 25 26# ----------------------- 27# OpenBLAS 28# ----------------------- 29 30RUN git clone https://github.com/xianyi/OpenBLAS.git && cd OpenBLAS && git checkout v0.2.20 && make NUM_THREADS=8 TARGET=CORE2 && cp libopenblas_core2p-r0.2.20.a /usr/local/lib/libopenblas.a && cd .. && rm -rf OpenBLAS 31 32# ----------------------- 33# Freetype 34# ----------------------- 35 36RUN curl -L -O http://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz && tar zxf freetype-2.9.tar.gz && cd freetype-2.9 && ./configure --disable-shared && make && make install && cd .. && rm -rf freetype-2.9.tar.gz freetype-2.9 37 38# ----------------------- 39# CMake 40# ----------------------- 41 42RUN curl -L -O https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4.tar.gz && tar zxf cmake-3.13.4.tar.gz && cd cmake-3.13.4 && ./configure && make && make install && cd .. && rm -rf cmake-3.13.4.tar.gz cmake-3.13.4 43 44# ----------------------- 45# OpenCASCADE 46# ----------------------- 47 48# RUN curl -L -o occt.tgz "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_5_1;sf=tgz" && tar xf occt.tgz && cd occt-* && mkdir build && cd build && CXXFLAGS="-fPIC -DIGNORE_NO_ATOMICS" cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRARY_TYPE=Static -DBUILD_MODULE_Draw=0 -DBUILD_MODULE_Visualization=0 -DBUILD_MODULE_ApplicationFramework=0 .. && make -j 4 && make install && cd ../.. && rm -rf occt.tgz occt-* 49 50# OCC 7.5.1 still has the annoying bounding box bug - this is OCCT master from Feb 4 2021 51RUN curl -L -o occt.tgz "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=4ad4054;sf=tgz" && tar xf occt.tgz && cd occt-* && mkdir build && cd build && CXXFLAGS="-fPIC -DIGNORE_NO_ATOMICS" cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRARY_TYPE=Static -DBUILD_MODULE_Draw=0 -DBUILD_MODULE_Visualization=0 -DBUILD_MODULE_ApplicationFramework=0 .. && make -j 4 && make install && cd ../.. && rm -rf occt.tgz occt-* 52 53# ----------------------- 54# HDF5 55# ----------------------- 56 57RUN curl -L -O https://support.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.10.5.tar.gz && tar zxvf hdf5-1.10.5.tar.gz && cd hdf5-1.10.5 && ./configure --disable-shared --prefix=/usr/local && make && make install && cd .. && rm -rf hdf5-1.10.5.tar.gz hdf5-1.10.5 58 59# ----------------------- 60# CGNS 61# ----------------------- 62 63RUN git clone https://github.com/CGNS/CGNS.git && cd CGNS && git checkout v3.4.0 && mkdir build && cd build && cmake -DCGNS_BUILD_SHARED=0 -DCGNS_ENABLE_HDF5=1 -DHDF5_VERSION=1.10.5 .. && make && make install && cd ../.. && rm -rf CGNS 64 65# ----------------------- 66# PETSc 67# ----------------------- 68 69RUN curl -L -O http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.14.4.tar.gz 70RUN tar zxf petsc-3.14.4.tar.gz 71ENV PETSC_DIR ${PWD}/petsc-3.14.4 72 73ENV PETSC_ARCH real_mumps_seq 74RUN cd ${PETSC_DIR} && ./configure CC=$CC CXX=$CXX FC=$FC CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS FFLAGS=$FFLAGS --with-clanguage=cxx --with-debugging=0 --with-mpi=0 --with-mpiuni-fortran-binding=0 --download-mumps=yes --with-mumps-serial --with-shared-libraries=0 --with-x=0 --with-ssl=0 --with-scalar-type=real --with-blaslapack-lib="/usr/local/lib/libopenblas.a /usr/local/lib/libgfortran.a /usr/local/lib/libquadmath.a -lpthread" && make 75 76ENV PETSC_ARCH complex_mumps_seq 77RUN cd ${PETSC_DIR} && ./configure CC=$CC CXX=$CXX FC=$FC CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS FFLAGS=$FFLAGS --with-clanguage=cxx --with-debugging=0 --with-mpi=0 --with-mpiuni-fortran-binding=0 --download-mumps=yes --with-mumps-serial --with-shared-libraries=0 --with-x=0 --with-ssl=0 --with-scalar-type=complex --with-blaslapack-lib="/usr/local/lib/libopenblas.a /usr/local/lib/libgfortran.a /usr/local/lib/libquadmath.a -lpthread" && make 78 79RUN sed -i 's|-lgfortran -lquadmath -lpthread -lstdc++ -ldl -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lstdc++ -ldl|/usr/local/lib/libgfortran.a /usr/local/lib/libquadmath.a -lpthread -lstdc++ -static-libstdc++ -ldl -lm -lgcc_s|' /petsc-3.14.4/complex_mumps_seq/lib/petsc/conf/petscvariables 80 81RUN sed -i 's|-lgfortran -lquadmath -lpthread -lstdc++ -ldl -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lstdc++ -ldl|/usr/local/lib/libgfortran.a /usr/local/lib/libquadmath.a -lpthread -lstdc++ -static-libstdc++ -ldl -lm -lgcc_s|' /petsc-3.14.4/real_mumps_seq/lib/petsc/conf/petscvariables 82 83# ----------------------- 84# SLEPc 85# ----------------------- 86 87RUN curl -L -O https://slepc.upv.es/download/distrib/slepc-3.14.1.tar.gz 88RUN tar zxf slepc-3.14.1.tar.gz 89ENV SLEPC_DIR ${PWD}/slepc-3.14.1 90ENV PETSC_ARCH real_mumps_seq 91RUN cd ${SLEPC_DIR} && ./configure && make 92ENV PETSC_ARCH complex_mumps_seq 93RUN cd ${SLEPC_DIR} && ./configure && make 94 95# ----------------------- 96# MED 97# ----------------------- 98 99RUN curl -L -O http://files.salome-platform.org/Salome/other/med-4.1.0.tar.gz && tar zxf med-4.1.0.tar.gz && cd med-4.1.0 && LIBS=-ldl ./configure --with-hdf5=/usr/local --enable-build-static --disable-shared --disable-python --disable-fortran --disable-tests && make -i install && cd .. && rm -rf med-4.1.0.tar.gz med-4.1.0 100 101# ----------------------- 102# FLTK 103# ----------------------- 104 105# "docker build --build-arg REBUILD_FLTK=somethingnew" 106ARG REBUILD_FLTK=dummy 107RUN git clone https://github.com/fltk/fltk.git && cd fltk && make makeinclude && ./configure --enable-localzlib && make -j 4 && make install && cd ../.. && rm -rf fltk 108 109# ----------------------- 110# MMG 111# ----------------------- 112 113# Disable MMG for now: it crashes on this 32 bit docker (problem allocating hash for edges)... 114 115# RUN git clone https://github.com/MmgTools/mmg.git && cd mmg && mkdir build && cd build && cmake .. && make -j8 && make install && cd .. && rm -rf mmg 116 117# ----------------------- 118# Minimal Gmsh library 119# ----------------------- 120 121# "docker build --build-arg REBUILD_GMSH=somethingnew" 122ARG REBUILD_GMSH= 123 124RUN git clone https://gitlab.onelab.info/gmsh/gmsh.git && cd gmsh && mkdir build && cd build && cmake -DDEFAULT=0 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_PLUGINS=1 -DENABLE_ANN=1 -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_PRIVATE_API=1 .. && make -j 1 lib && make install/fast && cd ../.. && rm -rf gmsh 125 126VOLUME ["/etc/gitlab-runner"] 127RUN useradd -ms /bin/bash geuzaine 128USER geuzaine 129WORKDIR /home/geuzaine 130RUN mkdir -p ~/.ssh 131RUN chmod 700 ~/.ssh 132