123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- Bootstrap: docker
- From: debian:bullseye
- %help
- Singularity container for GRASS GIS to be run into GRASS main directory
- %labels
- Maintainer Luca Delucchi
- %setup
- mkdir /tmp/grass_build
- %files
- . /tmp/grass_build
- %post
- # Install useful libraries
- apt-get -y update
- apt-get -y install \
- build-essential \
- bison \
- bzip2 \
- cmake \
- curl \
- flex \
- g++ \
- gcc \
- gdal-bin \
- gettext \
- git \
- libbz2-dev \
- libcairo2 \
- libcairo2-dev \
- libcurl4-gnutls-dev \
- libfftw3-bin \
- libfftw3-dev \
- libfreetype6-dev \
- libgdal-dev \
- libgeos-dev \
- libgsl-dev \
- libjpeg-dev \
- libjsoncpp-dev \
- libopenblas-base \
- libopenblas-dev \
- libnetcdf-dev \
- libncurses5-dev \
- libopenjp2-7 \
- libopenjp2-7-dev \
- libpdal-dev \
- libpnglite-dev \
- libpq-dev \
- libpython3-all-dev \
- libreadline-dev \
- libsqlite3-dev \
- libtiff-dev \
- libzstd-dev \
- make \
- mesa-common-dev \
- moreutils \
- ncurses-bin \
- netcdf-bin \
- pdal \
- python3 \
- python3-dateutil \
- python3-dev \
- python3-gdal \
- python3-magic \
- python3-numpy \
- python3-pdal \
- python3-pil \
- python3-pip \
- python3-ply \
- python3-requests \
- python3-setuptools \
- python3-venv \
- software-properties-common \
- sqlite3 \
- subversion \
- unzip \
- vim \
- wget \
- zip \
- zlib1g-dev
- # Set Python 3 as default Python version
- update-alternatives --install /usr/bin/python python /usr/bin/python3 1
- echo LANG="en_US.UTF-8" > /etc/default/locale
- # compile GRASS
- cd /tmp/grass_build
- # -O2 -march=native -std=gnu99 -m64
- LDFLAGS="-s"
- CFLAGS="-O2 -std=gnu99 -m64"
- CXXFLAGS="-O2"
- GRASS_PYTHON=/usr/bin/python3
- ./configure \
- --enable-largefile \
- --with-cxx \
- --with-nls \
- --with-readline \
- --with-sqlite \
- --with-bzlib \
- --with-zstd \
- --with-cairo \
- --with-cairo-ldflags=-lfontconfig \
- --with-freetype \
- --with-freetype-includes="/usr/include/freetype2/" \
- --with-fftw \
- --with-netcdf \
- --with-pdal \
- --with-proj \
- --with-proj-share=/usr/share/proj \
- --with-geos=/usr/bin/geos-config \
- --with-postgres \
- --with-postgres-includes="/usr/include/postgresql" \
- --without-mysql \
- --without-odbc \
- --without-openmp \
- --without-ffmpeg \
- --without-opengl
- make -j 2 && make install && ldconfig
- # Create generic GRASS GIS binary name regardless of version number
- ln -sf `find /usr/local/bin -name "grass??" | sort | tail -n 1` /usr/local/bin/grass
- # Create generic GRASS GIS lib name regardless of version number
- ln -sf `grass --config path` /usr/local/grass
- # Remove unused file
- apt-get autoremove -y
- apt-get clean -y
- cd /tmp
- rm -rf /src/grass_build
- # Add useful GRASS addons
- grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=i.modis
- grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=i.sentinel
- grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=r.in.pdal
- #grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=i.wi
- #grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=r.bioclim
- #grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=r.series.lwr
- #grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=v.clip
- #grass -c EPSG:4326 --tmp-location --exec g.extension -s ext=v.strds.stats
- # Add Python GRASS session
- pip3 install grass-session
- %environment
- export LANG=C.UTF-8
- export LC_ALL=C.UTF-8
- export SHELL=/bin/bash
- export LD_LIBRARY_PATH="/usr/local/lib"
- %runscript
- grass --version
|