This page and ogs builds with GNU Guix are currently work-in-progress!
GNU Guix is a distribution of the GNU operating system but also a package manager. You can use it to create bit-by-bit reproducible (Linux) binaries of ogs
.
The package definitions for OGS are defined in this repo which can be used as a Guix channel. guix
is currently installed on envinf3
.
# builds ogs serial config
guix time-machine -C scripts/guix/channels.scm -- \
build ogs-serial --with-source=ogs@6.4.4-testing=$PWD
# SteadyStateDiffuion process only:
guix time-machine -C scripts/guix/channels.scm -- \
build ogs-ssd --with-source=ogs-ssd@6.4.4-testing=$PWD
# ogs petsc config
guix time-machine -C scripts/guix/channels.scm -- \
build ogs-petsc --with-source=ogs-petsc@6.4.4-testing=$PWD
The version string starting after @
can be set individually. To get the dependency tree:
guix time-machine -C scripts/guix/channels.scm -- graph ogs-serial | dot -Tpdf > dag.pdf
wget https://gitlab.opengeosys.org/ogs/ogs/-/raw/master/scripts/guix/channels.scm
guix time-machine -C ./channels.scm -- build ogs \
--with-source=ogs@6.4.4-testing=https://gitlab.opengeosys.org/ogs/ogs/-/archive/master/ogs-master.tar.bz2
guix time-machine -C scripts/guix/channels.scm -- \
shell --container --nesting --network --development ogs-serial \ # OR ogs-petsc
openssl nss-certs coreutils bash git
# Now in guix shell with all dependencies installed:
export CMAKE_PRESET_BUILD_DIR_PREFIX=guix/ # presets then create e.g. ../build/guix/release
cmake --preset release -DOGS_BUILD_PROCESSES=SteadyStateDiffusion
cmake --build --preset release
As a shortcut you can use this script:
./scripts/guix/ogs-env.sh ogs-serial # or `ogs-petsc` for parallel
You can also play with e.g. different versions of dependencies, here changing OpenMPI to 4.1.6:
guix time-machine -C scripts/guix/channels.scm -- \
shell --container --nesting --network --development ogs-petsc \
openssl nss-certs coreutils bash git \
--with-source=openmpi@4.1.6=https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.bz2
This article was written by Lars Bilke. If you are missing something or you find an error please let us know.
Generated with Hugo 0.122.0
in CI job 493443
|
Last revision: September 23, 2024
Commit: [MeL/IO/XDMF] Return also computed parent data type 09baf91
| Edit this page on