From 53b33d003dc444102d0a6f1f41ab3ee1a8677578 Mon Sep 17 00:00:00 2001 From: Umar <83470599+UmarAbubacar@users.noreply.github.com> Date: Fri, 10 Nov 2023 22:28:26 +0000 Subject: [PATCH 1/7] Improve Singularity.md documentation (#349) --- doc/user_guide/Singularity.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/doc/user_guide/Singularity.md b/doc/user_guide/Singularity.md index a4c1d1963..ca3350275 100644 --- a/doc/user_guide/Singularity.md +++ b/doc/user_guide/Singularity.md @@ -90,3 +90,22 @@ If you wish to read further about Singularity, you can find a substantial amount singularity home website: https://sylabs.io/guides/3.5/user-guide/introduction.html. Including many tutorials and more complex use cases. + +## Exporting visualisations on HPC's +By default, BioDynaMo uses ParaView for visualization, which needs an X-display server to function. Since the Singularity image does not provide a graphical desktop environment and hence no X-server, there are two workarounds. + +### Option 1: Using xvfb +```xvfb``` stands for X virtual frame buffer and emulates the required display server. Start a virtual frame buffer with: +``` +/biodynamo/util/xvfb-initd.sh start +``` +The buffer can be managed with the arguments ```start```|```stop```|```restart``` + +Note: Some systems may require display forwarding **before** starting the frame buffer. This can be achived through ```export DISPLAY=0```. + +### Option 2: Setting Paraview to work in a headless mode using the CMAKE flag +Paraview with the osmesa or EGL backend does not require an X-server. To change the backend, you have to edit the cmake options in [1], build paraview, and replace the ParaView version that BioDynaMo installs. See also [2]. + +[1] https://github.com/BioDynaMo/biodynamo/blob/HPC-documentation/util/build-third-party/paraview/build.sh + +[2] https://discourse.paraview.org/t/pvpython-offscreen-rendering-segfault/246/3 From a46859c4cec7e9977f16717a57f5e9a237085aa3 Mon Sep 17 00:00:00 2001 From: Tobias Duswald Date: Tue, 14 Nov 2023 10:14:28 +0100 Subject: [PATCH 2/7] Deprecate `macOS` < 12.0 (#350) --- .github/workflows/macos-ci.yml | 2 +- .github/workflows/macos-system-ci.yml | 2 +- doc/user_guide/installation.md | 2 +- doc/user_guide/prerequisites.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos-ci.yml b/.github/workflows/macos-ci.yml index ab268407d..b161116b4 100644 --- a/.github/workflows/macos-ci.yml +++ b/.github/workflows/macos-ci.yml @@ -14,7 +14,7 @@ jobs: build: strategy: matrix: - os: [macos-11, macos-12, macos-13] + os: [macos-12, macos-13] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/macos-system-ci.yml b/.github/workflows/macos-system-ci.yml index 6ec9b363d..2d6ba7b5b 100644 --- a/.github/workflows/macos-system-ci.yml +++ b/.github/workflows/macos-system-ci.yml @@ -21,7 +21,7 @@ jobs: build: strategy: matrix: - os: [macos-11, macos-12, macos-13] + os: [macos-12, macos-13] runs-on: ${{ matrix.os }} diff --git a/doc/user_guide/installation.md b/doc/user_guide/installation.md index 521dc66da..89083ad3f 100644 --- a/doc/user_guide/installation.md +++ b/doc/user_guide/installation.md @@ -61,7 +61,7 @@ curl https://biodynamo.github.io/install | bash * Ubuntu 20.04, 22.04 * CentOS 7 -* MacOS 11.7 and 12.6 (Intel and ARM) +* MacOS > 12.0 (Intel and ARM) Currently, we do **not** support Windows or Windows subsystem for Linux. diff --git a/doc/user_guide/prerequisites.md b/doc/user_guide/prerequisites.md index 9e851cfc7..a612595ff 100644 --- a/doc/user_guide/prerequisites.md +++ b/doc/user_guide/prerequisites.md @@ -219,7 +219,7 @@ sudo yum install -y llvm-toolset-7 llvm-toolset-7-clang-tools-extra \ Requirements to build on macOS are: * A 64-bit Intel CPU or Apple Silicon CPU - * macOS Catalina (10.15) or higher + * macOS 12.0 or higher * [Xcode](https://itunes.apple.com/us/app/xcode/id497799835) and the Command Line Tools (CLT) for Xcode: `xcode-select --install` (or from [developer.apple.com/downloads](https://developer.apple.com/downloads)) * An up to date [Homebrew](https://brew.sh) installation (MacPorts and Fink are not supported) From ebd12594359ecb6273cc5861d19bd1070a10bf50 Mon Sep 17 00:00:00 2001 From: Tobias Duswald Date: Thu, 16 Nov 2023 09:01:23 +0100 Subject: [PATCH 3/7] Fix name of CI file Rename "repostory" to "repository" --- .github/workflows/{repostory-checks.yml => repository-checks.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{repostory-checks.yml => repository-checks.yml} (100%) diff --git a/.github/workflows/repostory-checks.yml b/.github/workflows/repository-checks.yml similarity index 100% rename from .github/workflows/repostory-checks.yml rename to .github/workflows/repository-checks.yml From 1f55c000bab667833313a8bbf2d31096a56afd58 Mon Sep 17 00:00:00 2001 From: Tobias Duswald Date: Thu, 16 Nov 2023 14:51:38 +0100 Subject: [PATCH 4/7] Update to Java 17 in SonarCI (#348) Co-authored-by: Fons Rademakers --- .github/workflows/sonar-source.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/sonar-source.yml b/.github/workflows/sonar-source.yml index d27a969c2..e8cd3c320 100644 --- a/.github/workflows/sonar-source.yml +++ b/.github/workflows/sonar-source.yml @@ -15,8 +15,6 @@ jobs: name: Sonar Source Analysis runs-on: ubuntu-20.04 env: - SONAR_SCANNER_VERSION: 4.6.1.2450 # Find the latest version in the "Linux" link on this page: - # https://sonarcloud.io/documentation/analysis/scan/sonarscanner/ SONAR_SERVER_URL: "https://sonarcloud.io" BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed steps: @@ -24,12 +22,8 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - name: Install sonar-scanner and build-wrapper - uses: SonarSource/sonarcloud-github-c-cpp@v1 + uses: SonarSource/sonarcloud-github-c-cpp@v2 - name: Install dependencies run: | sudo apt-get update From 893ea4efc407c0a646906a5ab0aec9f5e881e9b8 Mon Sep 17 00:00:00 2001 From: Fons Rademakers Date: Tue, 28 Nov 2023 10:41:14 +0100 Subject: [PATCH 5/7] Add support for ROOT under Xcode 15.0.x. --- cmake/external/ROOT.cmake | 6 +++++- cmake/external/SHA256Digests.cmake | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/external/ROOT.cmake b/cmake/external/ROOT.cmake index 659bc8cde..0e81bf411 100644 --- a/cmake/external/ROOT.cmake +++ b/cmake/external/ROOT.cmake @@ -13,7 +13,11 @@ if(APPLE) "${DETECTED_OS_VERS}" MATCHES "^osx-11.7") execute_process(COMMAND bash "-c" "xcodebuild -version | sed -En 's/Xcode[[:space:]]+([0-9\.]*)/\\1/p'" OUTPUT_VARIABLE XCODE_VERS) message(STATUS "##### XCODE version: ${XCODE_VERS}") - if("${XCODE_VERS}" GREATER_EQUAL "14.3") + if("${XCODE_VERS}" GREATER_EQUAL "15.0") + message(STATUS "##### Using ROOT builds for XCODE 15.0.1") + set(ROOT_TAR_FILE root_v6.28.06_cxx14_python3.9_osx-xcode-15.0.1-${DETECTED_ARCH}.tar.gz) + set(ROOT_SHA_KEY osx-xcode-15.0.1-${DETECTED_ARCH}-ROOT) + elseif("${XCODE_VERS}" GREATER_EQUAL "14.3") message(STATUS "##### Using ROOT builds for XCODE 14.3") set(ROOT_TAR_FILE root_v6.29.01_cxx14_python3.9_osx-xcode-14.3-${DETECTED_ARCH}.tar.gz) set(ROOT_SHA_KEY osx-xcode-14.3-${DETECTED_ARCH}-ROOT) diff --git a/cmake/external/SHA256Digests.cmake b/cmake/external/SHA256Digests.cmake index 872f21782..36a87f7fa 100644 --- a/cmake/external/SHA256Digests.cmake +++ b/cmake/external/SHA256Digests.cmake @@ -60,6 +60,7 @@ SET(osx-xcode-14.1-i386-ROOT 001311608512b24535bb9710b8baf006bd00e9b0595fd6bdf90 SET(osx-xcode-14.1-arm64-ROOT 12ad32f7d49e2c5dfd4124923bd87f49a31a670d99e390b0a9b71a8ff2f2f035) SET(osx-xcode-14.3-i386-ROOT c4f4c7a9848121ae19f3fe3c40c5812813ed42d9dfa7f1948f67907ed47fa083) SET(osx-xcode-14.3-arm64-ROOT 6ffcfaadd4de627cffde2e42fded9175b730769071396d7abdabeefc2714839a) +SET(osx-xcode-15.0.1-arm64-ROOT 8bcadcaefd817e8adb79b2eff830871f7c838a9e40ec11fd5e4e8a8c7184ffdd) SET(ubuntu-18.04-Libroadrunner bf9293c1c95d0b65227bd7e08c0048116ba851bcec5028ef72ea13762ef79276) SET(ubuntu-18.04-ParaView e3fd74b13e9a4086988c5104c6b8d95c56365d25b491706a8e72018d0e5c76f1) From 4cbeec6f5b7e0958aedd8156d0a2ed14ee76f7cd Mon Sep 17 00:00:00 2001 From: Fons Rademakers Date: Tue, 28 Nov 2023 15:09:21 +0100 Subject: [PATCH 6/7] Add support for ROOT under Xcode 15.0.x for i386. --- cmake/external/SHA256Digests.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/external/SHA256Digests.cmake b/cmake/external/SHA256Digests.cmake index 36a87f7fa..3549d8125 100644 --- a/cmake/external/SHA256Digests.cmake +++ b/cmake/external/SHA256Digests.cmake @@ -60,6 +60,7 @@ SET(osx-xcode-14.1-i386-ROOT 001311608512b24535bb9710b8baf006bd00e9b0595fd6bdf90 SET(osx-xcode-14.1-arm64-ROOT 12ad32f7d49e2c5dfd4124923bd87f49a31a670d99e390b0a9b71a8ff2f2f035) SET(osx-xcode-14.3-i386-ROOT c4f4c7a9848121ae19f3fe3c40c5812813ed42d9dfa7f1948f67907ed47fa083) SET(osx-xcode-14.3-arm64-ROOT 6ffcfaadd4de627cffde2e42fded9175b730769071396d7abdabeefc2714839a) +SET(osx-xcode-15.0.1-i386-ROOT 88c1b1df7cc70071b290861231f04cce1b991d0b6551343f064f38bf28ef0615) SET(osx-xcode-15.0.1-arm64-ROOT 8bcadcaefd817e8adb79b2eff830871f7c838a9e40ec11fd5e4e8a8c7184ffdd) SET(ubuntu-18.04-Libroadrunner bf9293c1c95d0b65227bd7e08c0048116ba851bcec5028ef72ea13762ef79276) From 3e6628225b90075e4165d00e673226c2dd8f1f5c Mon Sep 17 00:00:00 2001 From: Fons Rademakers Date: Thu, 30 Nov 2023 18:17:02 +0100 Subject: [PATCH 7/7] Provide updated versions of ROOT v6.28.10 for macOS as version v6.28.06 had a security issue. --- cmake/external/ROOT.cmake | 2 +- cmake/external/SHA256Digests.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/external/ROOT.cmake b/cmake/external/ROOT.cmake index 0e81bf411..a4c8d2a43 100644 --- a/cmake/external/ROOT.cmake +++ b/cmake/external/ROOT.cmake @@ -15,7 +15,7 @@ if(APPLE) message(STATUS "##### XCODE version: ${XCODE_VERS}") if("${XCODE_VERS}" GREATER_EQUAL "15.0") message(STATUS "##### Using ROOT builds for XCODE 15.0.1") - set(ROOT_TAR_FILE root_v6.28.06_cxx14_python3.9_osx-xcode-15.0.1-${DETECTED_ARCH}.tar.gz) + set(ROOT_TAR_FILE root_v6.28.10_cxx14_python3.9_osx-xcode-15.0.1-${DETECTED_ARCH}.tar.gz) set(ROOT_SHA_KEY osx-xcode-15.0.1-${DETECTED_ARCH}-ROOT) elseif("${XCODE_VERS}" GREATER_EQUAL "14.3") message(STATUS "##### Using ROOT builds for XCODE 14.3") diff --git a/cmake/external/SHA256Digests.cmake b/cmake/external/SHA256Digests.cmake index 3549d8125..ae9af61b7 100644 --- a/cmake/external/SHA256Digests.cmake +++ b/cmake/external/SHA256Digests.cmake @@ -60,8 +60,8 @@ SET(osx-xcode-14.1-i386-ROOT 001311608512b24535bb9710b8baf006bd00e9b0595fd6bdf90 SET(osx-xcode-14.1-arm64-ROOT 12ad32f7d49e2c5dfd4124923bd87f49a31a670d99e390b0a9b71a8ff2f2f035) SET(osx-xcode-14.3-i386-ROOT c4f4c7a9848121ae19f3fe3c40c5812813ed42d9dfa7f1948f67907ed47fa083) SET(osx-xcode-14.3-arm64-ROOT 6ffcfaadd4de627cffde2e42fded9175b730769071396d7abdabeefc2714839a) -SET(osx-xcode-15.0.1-i386-ROOT 88c1b1df7cc70071b290861231f04cce1b991d0b6551343f064f38bf28ef0615) -SET(osx-xcode-15.0.1-arm64-ROOT 8bcadcaefd817e8adb79b2eff830871f7c838a9e40ec11fd5e4e8a8c7184ffdd) +SET(osx-xcode-15.0.1-i386-ROOT a88b770a1848f41be23a6cfe166d9e4da6c73f985865fb96d473dba966fee3b4) +SET(osx-xcode-15.0.1-arm64-ROOT de60b679f09e7ccde3f5d117e728ffb28d705196935ada5b29f5cc27f2c03091) SET(ubuntu-18.04-Libroadrunner bf9293c1c95d0b65227bd7e08c0048116ba851bcec5028ef72ea13762ef79276) SET(ubuntu-18.04-ParaView e3fd74b13e9a4086988c5104c6b8d95c56365d25b491706a8e72018d0e5c76f1)