From b5b9389be1275fa9f2629e18734afa9ee4d7cb66 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Mar 2026 00:21:11 -0400 Subject: [PATCH 1/5] use SHA-256 checksums instead of MD5 for checking file integrity --- cmake/Modules/Documentation.cmake | 12 ++++++------ cmake/Modules/ExternalCMakeProject.cmake | 10 +++++----- cmake/Modules/LAMMPSInterfacePlugin.cmake | 6 +++--- cmake/Modules/LAMMPSUtils.cmake | 4 ++-- cmake/Modules/MPI4WIN.cmake | 6 +++--- cmake/Modules/OpenCLLoader.cmake | 6 +++--- cmake/Modules/Packages/GPU.cmake | 6 +++--- cmake/Modules/Packages/KIM.cmake | 6 +++--- cmake/Modules/Packages/KOKKOS.cmake | 6 +++--- cmake/Modules/Packages/MACHDYN.cmake | 6 +++--- cmake/Modules/Packages/MBX.cmake | 6 +++--- cmake/Modules/Packages/MDI.cmake | 6 +++--- cmake/Modules/Packages/ML-HDNNP.cmake | 6 +++--- cmake/Modules/Packages/ML-PACE.cmake | 14 +++++++------- cmake/Modules/Packages/PLUMED.cmake | 8 ++++---- cmake/Modules/Packages/SCAFACOS.cmake | 6 +++--- cmake/Modules/Packages/VORONOI.cmake | 6 +++--- cmake/Modules/Tools.cmake | 12 ++++++------ examples/plugins/LAMMPSInterfaceCXX.cmake | 6 +++--- src/Fetch.sh | 8 +++++++- src/MESONT/potentials.txt | 4 ++-- 21 files changed, 78 insertions(+), 72 deletions(-) diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index c0ca3e27787..859eee593c2 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -66,21 +66,21 @@ if(BUILD_DOC) endif() set(MATHJAX_URL "https://github.com/mathjax/MathJax/archive/3.2.2.tar.gz" CACHE STRING "URL for MathJax tarball") - set(MATHJAX_MD5 "08dd6ef33ca08870220d9aade2a62845" CACHE STRING "MD5 checksum of MathJax tarball") + set(MATHJAX_SHA256 "4206b9645a97f431018d0b6c4021c98607d49ba4dc129f4f2ecce675e2fcba11" CACHE STRING "SHA256 checksum of MathJax tarball") mark_as_advanced(MATHJAX_URL) GetFallbackURL(MATHJAX_URL MATHJAX_FALLBACK) # download mathjax distribution and unpack to folder "mathjax" if(NOT EXISTS ${DOC_BUILD_STATIC_DIR}/mathjax/es5) if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz) - file(MD5 ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz DL_MD5) + file(SHA256 ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz DL_SHA256) endif() - if(NOT "${DL_MD5}" STREQUAL "${MATHJAX_MD5}") + if(NOT "${DL_SHA256}" STREQUAL "${MATHJAX_SHA256}") file(DOWNLOAD ${MATHJAX_URL} "${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz" STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${MATHJAX_MD5}")) + file(SHA256 ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz DL_SHA256) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${MATHJAX_SHA256}")) message(WARNING "Download from primary URL ${MATHJAX_URL} failed\nTrying fallback URL ${MATHJAX_FALLBACK}") - file(DOWNLOAD ${MATHJAX_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${MATHJAX_MD5} SHOW_PROGRESS) + file(DOWNLOAD ${MATHJAX_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH SHA256=${MATHJAX_SHA256} SHOW_PROGRESS) endif() else() message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz") diff --git a/cmake/Modules/ExternalCMakeProject.cmake b/cmake/Modules/ExternalCMakeProject.cmake index 7e3681dc282..8c6e366a94c 100644 --- a/cmake/Modules/ExternalCMakeProject.cmake +++ b/cmake/Modules/ExternalCMakeProject.cmake @@ -10,17 +10,17 @@ function(ExternalCMakeProject target url hash basedir cmakedir cmakefile) get_filename_component(archive ${url} NAME) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src) if(EXISTS ${CMAKE_BINARY_DIR}/_deps/${archive}) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) endif() - if(NOT "${DL_MD5}" STREQUAL "${hash}") + if(NOT "${DL_SHA256}" STREQUAL "${hash}") message(STATUS "Downloading ${url}") file(DOWNLOAD ${url} ${CMAKE_BINARY_DIR}/_deps/${archive} STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${hash}")) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${hash}")) set(${target}_URL ${url}) GetFallbackURL(${target}_URL fallback) message(WARNING "Download from primary URL ${url} failed\nTrying fallback URL ${fallback}") - file(DOWNLOAD ${fallback} ${CMAKE_BINARY_DIR}/_deps/${archive} EXPECTED_HASH MD5=${hash} SHOW_PROGRESS) + file(DOWNLOAD ${fallback} ${CMAKE_BINARY_DIR}/_deps/${archive} EXPECTED_HASH SHA256=${hash} SHOW_PROGRESS) endif() else() message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/_deps/${archive}") diff --git a/cmake/Modules/LAMMPSInterfacePlugin.cmake b/cmake/Modules/LAMMPSInterfacePlugin.cmake index 765c3a51977..01998a5bc88 100644 --- a/cmake/Modules/LAMMPSInterfacePlugin.cmake +++ b/cmake/Modules/LAMMPSInterfacePlugin.cmake @@ -149,15 +149,15 @@ if(BUILD_MPI) if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation") set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball") - set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball") + set(MPICH2_WIN64_DEVEL_SHA256 "939f5bad74311a84839196ca9140549189ef00785b0ef8e94ad6a180014ccb7f" CACHE STRING "SHA256 checksum of MS-MPI (win64) tarball") mark_as_advanced(MPICH2_WIN64_DEVEL_URL) - mark_as_advanced(MPICH2_WIN64_DEVEL_MD5) + mark_as_advanced(MPICH2_WIN64_DEVEL_SHA256) include(ExternalProject) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ExternalProject_Add(mpi4win_build URL ${MPICH2_WIN64_DEVEL_URL} - URL_MD5 ${MPICH2_WIN64_DEVEL_MD5} + URL_HASH SHA256=${MPICH2_WIN64_DEVEL_SHA256} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" BUILD_BYPRODUCTS /lib/libmsmpi.a) else() diff --git a/cmake/Modules/LAMMPSUtils.cmake b/cmake/Modules/LAMMPSUtils.cmake index 93f541f9218..1887118f2a5 100644 --- a/cmake/Modules/LAMMPSUtils.cmake +++ b/cmake/Modules/LAMMPSUtils.cmake @@ -152,13 +152,13 @@ function(FetchPotentials pkgfolder potfolder) string(SUBSTRING ${line} 0 ${blank} pot) string(SUBSTRING ${line} ${plusone} -1 sum) if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}") - file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum) + file(SHA256 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum) endif() if(NOT sum STREQUAL oldsum) message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}") string(RANDOM LENGTH 10 TMP_EXT) file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" - EXPECTED_HASH MD5=${sum} SHOW_PROGRESS) + EXPECTED_HASH SHA256=${sum} SHOW_PROGRESS) file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}") file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}") endif() diff --git a/cmake/Modules/MPI4WIN.cmake b/cmake/Modules/MPI4WIN.cmake index cd48ab279e8..dd9be9425ec 100644 --- a/cmake/Modules/MPI4WIN.cmake +++ b/cmake/Modules/MPI4WIN.cmake @@ -1,15 +1,15 @@ # set-up MS-MPI library for Windows with MinGW compatibility message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation") set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball") -set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball") +set(MPICH2_WIN64_DEVEL_SHA256 "939f5bad74311a84839196ca9140549189ef00785b0ef8e94ad6a180014ccb7f" CACHE STRING "SHA256 checksum of MS-MPI (win64) tarball") mark_as_advanced(MPICH2_WIN64_DEVEL_URL) -mark_as_advanced(MPICH2_WIN64_DEVEL_MD5) +mark_as_advanced(MPICH2_WIN64_DEVEL_SHA256) include(ExternalProject) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ExternalProject_Add(mpi4win_build URL ${MPICH2_WIN64_DEVEL_URL} - URL_MD5 ${MPICH2_WIN64_DEVEL_MD5} + URL_HASH SHA256=${MPICH2_WIN64_DEVEL_SHA256} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" BUILD_BYPRODUCTS /lib/libmsmpi.a) else() diff --git a/cmake/Modules/OpenCLLoader.cmake b/cmake/Modules/OpenCLLoader.cmake index 411058e0b11..2b779dd2be7 100644 --- a/cmake/Modules/OpenCLLoader.cmake +++ b/cmake/Modules/OpenCLLoader.cmake @@ -1,10 +1,10 @@ message(STATUS "Downloading and building OpenCL loader library") set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2024.05.09.tar.gz" CACHE STRING "URL for OpenCL loader tarball") -set(OPENCL_LOADER_MD5 "e7796826b21c059224fabe997e0f2075" CACHE STRING "MD5 checksum of OpenCL loader tarball") +set(OPENCL_LOADER_SHA256 "e33f78a92bbacc2c8639cb2f00b347b4715c8b57aaac2c14dc2cd86e836cfd34" CACHE STRING "SHA256 checksum of OpenCL loader tarball") mark_as_advanced(OPENCL_LOADER_URL) -mark_as_advanced(OPENCL_LOADER_MD5) +mark_as_advanced(OPENCL_LOADER_SHA256) set(INSTALL_LIBOPENCL OFF CACHE BOOL "" FORCE) include(ExternalCMakeProject) -ExternalCMakeProject(opencl_loader ${OPENCL_LOADER_URL} ${OPENCL_LOADER_MD5} opencl-loader . "") +ExternalCMakeProject(opencl_loader ${OPENCL_LOADER_URL} ${OPENCL_LOADER_SHA256} opencl-loader . "") diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 3974e5ccc72..9826f699020 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -438,16 +438,16 @@ elseif(GPU_API STREQUAL "HIP") message(STATUS "CUB download requested") # TODO: test update to current version 1.17.2 set(CUB_URL "https://github.com/nvidia/cub/archive/1.12.0.tar.gz" CACHE STRING "URL for CUB tarball") - set(CUB_MD5 "1cf595beacafff104700921bac8519f3" CACHE STRING "MD5 checksum of CUB tarball") + set(CUB_SHA256 "3b03d0cbc9549606fbeda69a920562eb563836346b39014c79dfd024165ee549" CACHE STRING "SHA256 checksum of CUB tarball") mark_as_advanced(CUB_URL) - mark_as_advanced(CUB_MD5) + mark_as_advanced(CUB_SHA256) GetFallbackURL(CUB_URL CUB_FALLBACK) include(ExternalProject) ExternalProject_Add(CUB URL ${CUB_URL} ${CUB_FALLBACK} - URL_MD5 ${CUB_MD5} + URL_HASH SHA256=${CUB_SHA256} PREFIX "${CMAKE_CURRENT_BINARY_DIR}" CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/cmake/Modules/Packages/KIM.cmake b/cmake/Modules/Packages/KIM.cmake index c290285c303..2d8645f5ec8 100644 --- a/cmake/Modules/Packages/KIM.cmake +++ b/cmake/Modules/Packages/KIM.cmake @@ -43,12 +43,12 @@ if(DOWNLOAD_KIM) enable_language(C) enable_language(Fortran) set(KIM_URL "https://s3.openkim.org/kim-api/kim-api-2.4.2.txz" CACHE STRING "URL for KIM tarball") - set(KIM_MD5 "bd51faa7edfaab437047aea0c25a5dfb" CACHE STRING "MD5 checksum of KIM tarball") + set(KIM_SHA256 "1710bd6ceaea093062e000d2308719c51cc0a2d2def1bdcb0a03df8ed867b11f" CACHE STRING "SHA256 checksum of KIM tarball") mark_as_advanced(KIM_URL) - mark_as_advanced(KIM_MD5) + mark_as_advanced(KIM_SHA256) ExternalProject_Add(kim_build URL ${KIM_URL} - URL_MD5 ${KIM_MD5} + URL_HASH SHA256=${KIM_SHA256} BINARY_DIR build CMAKE_ARGS ${CMAKE_REQUEST_PIC} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index 7632462260b..aff92026dac 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -94,14 +94,14 @@ if(DOWNLOAD_KOKKOS) list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") include(ExternalProject) set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/5.0.2.tar.gz" CACHE STRING "URL for KOKKOS tarball") - set(KOKKOS_MD5 "65fe6964753ecd3c77120283d107d053" CACHE STRING "MD5 checksum of KOKKOS tarball") + set(KOKKOS_SHA256 "d826f2e0bf1bc3515b4887e3a2594c7fb7a2b5b005dd8798242a8fd1953a9a21" CACHE STRING "SHA256 checksum of KOKKOS tarball") mark_as_advanced(KOKKOS_URL) - mark_as_advanced(KOKKOS_MD5) + mark_as_advanced(KOKKOS_SHA256) GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK) ExternalProject_Add(kokkos_build URL ${KOKKOS_URL} ${KOKKOS_FALLBACK} - URL_MD5 ${KOKKOS_MD5} + URL_HASH SHA256=${KOKKOS_SHA256} CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS} BUILD_BYPRODUCTS /lib/libkokkoscore.a /lib/libkokkoscontainers.a ) diff --git a/cmake/Modules/Packages/MACHDYN.cmake b/cmake/Modules/Packages/MACHDYN.cmake index fcc298da2f4..cbaef91cdc8 100644 --- a/cmake/Modules/Packages/MACHDYN.cmake +++ b/cmake/Modules/Packages/MACHDYN.cmake @@ -9,13 +9,13 @@ if(DOWNLOAD_EIGEN3) message(STATUS "Eigen3 download requested - we will build our own") set(EIGEN3_URL "${LAMMPS_THIRDPARTY_URL}/eigen-3.4.0.tar.gz" CACHE STRING "URL for Eigen3 tarball") - set(EIGEN3_MD5 "4c527a9171d71a72a9d4186e65bea559" CACHE STRING "MD5 checksum of Eigen3 tarball") + set(EIGEN3_SHA256 "8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72" CACHE STRING "SHA256 checksum of Eigen3 tarball") mark_as_advanced(EIGEN3_URL) - mark_as_advanced(EIGEN3_MD5) + mark_as_advanced(EIGEN3_SHA256) include(ExternalProject) ExternalProject_Add(Eigen3_build URL ${EIGEN3_URL} - URL_MD5 ${EIGEN3_MD5} + URL_HASH SHA256=${EIGEN3_SHA256} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) ExternalProject_get_property(Eigen3_build SOURCE_DIR) diff --git a/cmake/Modules/Packages/MBX.cmake b/cmake/Modules/Packages/MBX.cmake index 94e78a7a744..67332f056c6 100644 --- a/cmake/Modules/Packages/MBX.cmake +++ b/cmake/Modules/Packages/MBX.cmake @@ -35,10 +35,10 @@ if(CONFIGURE_REQUEST_PIC) endif() set(MBXLIB_URL "https://github.com/paesanilab/MBX/releases/download/v1.3.5/mbx-1.3.5.tar.gz" CACHE STRING "URL for MBX tarball") -set(MBXLIB_MD5 "2ffdcdbebf3c10ba010c573545a33d47" CACHE STRING "MD5 checksum of MBX tarball") +set(MBXLIB_SHA256 "f66de645b28d73e52be69e6c857b7bd58b6dd0ee398030daecc5bf976bf28111" CACHE STRING "SHA256 checksum of MBX tarball") mark_as_advanced(MBXLIB_URL) -mark_as_advanced(MBXLIB_MD5) +mark_as_advanced(MBXLIB_SHA256) set(MBX_LINK_LIBS) find_package(FFTW3 REQUIRED) @@ -67,7 +67,7 @@ if(DOWNLOAD_MBX) include(ExternalProject) ExternalProject_Add(mbx_build URL ${MBXLIB_URL} - URL_HASH MD5=${MBXLIB_MD5} + URL_HASH SHA256=${MBXLIB_SHA256} CONFIGURE_COMMAND /configure --prefix= ${MBX_CONFIG_FLAGS} diff --git a/cmake/Modules/Packages/MDI.cmake b/cmake/Modules/Packages/MDI.cmake index b21e508b87f..87a9f42ed2d 100644 --- a/cmake/Modules/Packages/MDI.cmake +++ b/cmake/Modules/Packages/MDI.cmake @@ -9,9 +9,9 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al if(DOWNLOAD_MDI) message(STATUS "MDI download requested - we will build our own") set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.26.tar.gz" CACHE STRING "URL for MDI tarball") - set(MDI_MD5 "3124bb85259471e2a53a891f04bf697a" CACHE STRING "MD5 checksum for MDI tarball") + set(MDI_SHA256 "8cbd80ae9adf44394b693fe812b8e4e8ca506173b3ca1f31002adbe7eaf61362" CACHE STRING "SHA256 checksum for MDI tarball") mark_as_advanced(MDI_URL) - mark_as_advanced(MDI_MD5) + mark_as_advanced(MDI_SHA256) GetFallbackURL(MDI_URL MDI_FALLBACK) enable_language(C) @@ -45,7 +45,7 @@ if(DOWNLOAD_MDI) include(ExternalProject) ExternalProject_Add(mdi_build URL ${MDI_URL} ${MDI_FALLBACK} - URL_MD5 ${MDI_MD5} + URL_HASH SHA256=${MDI_SHA256} PREFIX ${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext diff --git a/cmake/Modules/Packages/ML-HDNNP.cmake b/cmake/Modules/Packages/ML-HDNNP.cmake index 99017f222d8..f683237b873 100644 --- a/cmake/Modules/Packages/ML-HDNNP.cmake +++ b/cmake/Modules/Packages/ML-HDNNP.cmake @@ -7,9 +7,9 @@ endif() option(DOWNLOAD_N2P2 "Download n2p2 library instead of using an already installed one)" ${DOWNLOAD_N2P2_DEFAULT}) if(DOWNLOAD_N2P2) set(N2P2_URL "https://github.com/CompPhysVienna/n2p2/archive/v2.2.0.tar.gz" CACHE STRING "URL for n2p2 tarball") - set(N2P2_MD5 "a2d9ab7f676b3a74a324fc1eda0a911d" CACHE STRING "MD5 checksum of N2P2 tarball") + set(N2P2_SHA256 "4acaa255632a7b9811d7530fd52ac7dd0bb3a8e3a3cf8512beadd29b62c1bfef" CACHE STRING "SHA256 checksum of N2P2 tarball") mark_as_advanced(N2P2_URL) - mark_as_advanced(N2P2_MD5) + mark_as_advanced(N2P2_SHA256) GetFallbackURL(N2P2_URL N2P2_FALLBACK) # adjust settings from detected compiler to compiler platform in n2p2 library @@ -74,7 +74,7 @@ if(DOWNLOAD_N2P2) include(ExternalProject) ExternalProject_Add(n2p2_build URL ${N2P2_URL} ${N2P2_FALLBACK} - URL_MD5 ${N2P2_MD5} + URL_HASH SHA256=${N2P2_SHA256} UPDATE_COMMAND "" CONFIGURE_COMMAND "" PATCH_COMMAND sed -i -e "s/\\(MPI_\\(P\\|Unp\\)ack(\\)/\\1(void *) /" src/libnnpif/LAMMPS/InterfaceLammps.cpp diff --git a/cmake/Modules/Packages/ML-PACE.cmake b/cmake/Modules/Packages/ML-PACE.cmake index 7d3d1a452e6..560966ede80 100644 --- a/cmake/Modules/Packages/ML-PACE.cmake +++ b/cmake/Modules/Packages/ML-PACE.cmake @@ -11,9 +11,9 @@ else() endif() set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix2.tar.gz" CACHE STRING "URL for PACE evaluator library sources") - set(PACELIB_MD5 "a53bd87cfee8b07d9f44bc17aad69c3f" CACHE STRING "MD5 checksum of PACE evaluator library tarball") + set(PACELIB_SHA256 "e0885351a8a730f5576dace2374fa470523a4526383c6a64af571e1344a40686" CACHE STRING "SHA256 checksum of PACE evaluator library tarball") mark_as_advanced(PACELIB_URL) - mark_as_advanced(PACELIB_MD5) + mark_as_advanced(PACELIB_SHA256) GetFallbackURL(PACELIB_URL PACELIB_FALLBACK) # LOCAL_ML-PACE points to top-level dir with local lammps-user-pace repo, @@ -23,15 +23,15 @@ else() else() # download library sources to build folder if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz) - file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) + file(SHA256 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_SHA256) endif() - if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}") + if(NOT "${DL_SHA256}" STREQUAL "${PACELIB_SHA256}") message(STATUS "Downloading ${PACELIB_URL}") file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")) + file(SHA256 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_SHA256) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${PACELIB_SHA256}")) message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}") - file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS) + file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH SHA256=${PACELIB_SHA256} SHOW_PROGRESS) endif() else() message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz") diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake index fabac718eb6..be9e8248179 100644 --- a/cmake/Modules/Packages/PLUMED.cmake +++ b/cmake/Modules/Packages/PLUMED.cmake @@ -34,10 +34,10 @@ endif() # fix_plumed.cpp when version changes from v2.n.x to v2.n+1.y set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.9.4/plumed-src-2.9.4.tgz" CACHE STRING "URL for PLUMED tarball") -set(PLUMED_MD5 "e540bf5132e3270e843398a6080d00c7" CACHE STRING "MD5 checksum of PLUMED tarball") +set(PLUMED_SHA256 "830bc880fec66f92c2d7a7bc5723336e65400ed8a24e561717e2c5a88eee0765" CACHE STRING "SHA256 checksum of PLUMED tarball") mark_as_advanced(PLUMED_URL) -mark_as_advanced(PLUMED_MD5) +mark_as_advanced(PLUMED_SHA256) GetFallbackURL(PLUMED_URL PLUMED_FALLBACK) # adjust C++ standard support for self-compiled Plumed2 @@ -59,7 +59,7 @@ if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (CMAKE_CROSSCOMPILING)) include(ExternalProject) ExternalProject_Add(plumed_build URL ${PLUMED_URL} ${PLUMED_FALLBACK} - URL_MD5 ${PLUMED_MD5} + URL_HASH SHA256=${PLUMED_SHA256} BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ${CROSS_CONFIGURE} --disable-shared --disable-bsymbolic --disable-dlopen --disable-python --enable-cxx=${PLUMED_CXX_STANDARD} @@ -144,7 +144,7 @@ else() include(ExternalProject) ExternalProject_Add(plumed_build URL ${PLUMED_URL} ${PLUMED_FALLBACK} - URL_MD5 ${PLUMED_MD5} + URL_HASH SHA256=${PLUMED_SHA256} BUILD_IN_SOURCE 1 CONFIGURE_COMMAND /configure --prefix= ${CONFIGURE_REQUEST_PIC} diff --git a/cmake/Modules/Packages/SCAFACOS.cmake b/cmake/Modules/Packages/SCAFACOS.cmake index b0455c5f006..d0f493fdc0a 100644 --- a/cmake/Modules/Packages/SCAFACOS.cmake +++ b/cmake/Modules/Packages/SCAFACOS.cmake @@ -15,9 +15,9 @@ option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already if(DOWNLOAD_SCAFACOS) message(STATUS "ScaFaCoS download requested - we will build our own") set(SCAFACOS_URL "https://github.com/scafacos/scafacos/releases/download/v1.0.4/scafacos-1.0.4.tar.gz" CACHE STRING "URL for SCAFACOS tarball") - set(SCAFACOS_MD5 "23867540ec32e63ce71d6ecc105278d2" CACHE STRING "MD5 checksum of SCAFACOS tarball") + set(SCAFACOS_SHA256 "6634c4202e825e771d1dd75bbe9cac5cee41136c87653fde98fbd634681c1be6" CACHE STRING "SHA256 checksum of SCAFACOS tarball") mark_as_advanced(SCAFACOS_URL) - mark_as_advanced(SCAFACOS_MD5) + mark_as_advanced(SCAFACOS_SHA256) GetFallbackURL(SCAFACOS_URL SCAFACOS_FALLBACK) set(SCAFACOS_CXX_FLAGS "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}} ${CMAKE_CXX_FLAGS}") set(SCAFACOS_C_FLAGS "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}} ${CMAKE_C_FLAGS}") @@ -25,7 +25,7 @@ if(DOWNLOAD_SCAFACOS) include(ExternalProject) ExternalProject_Add(scafacos_build URL ${SCAFACOS_URL} ${SCAFACOS_FALLBACK} - URL_MD5 ${SCAFACOS_MD5} + URL_HASH SHA256=${SCAFACOS_SHA256} CONFIGURE_COMMAND /configure --prefix= --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m --with-internal-fftw --with-internal-pfft diff --git a/cmake/Modules/Packages/VORONOI.cmake b/cmake/Modules/Packages/VORONOI.cmake index 3a03a1b8262..0b8c547bbfe 100644 --- a/cmake/Modules/Packages/VORONOI.cmake +++ b/cmake/Modules/Packages/VORONOI.cmake @@ -8,9 +8,9 @@ option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using a if(DOWNLOAD_VORO) message(STATUS "Voro++ download requested - we will build our own") set(VORO_URL "${LAMMPS_THIRDPARTY_URL}/voro++-0.4.6.tar.gz" CACHE STRING "URL for Voro++ tarball") - set(VORO_MD5 "2338b824c3b7b25590e18e8df5d68af9" CACHE STRING "MD5 checksum for Voro++ tarball") + set(VORO_SHA256 "ef7970071ee2ce3800daa8723649ca069dc4c71cc25f0f7d22552387f3ea437e" CACHE STRING "SHA256 checksum for Voro++ tarball") mark_as_advanced(VORO_URL) - mark_as_advanced(VORO_MD5) + mark_as_advanced(VORO_SHA256) include(ExternalProject) @@ -33,7 +33,7 @@ if(DOWNLOAD_VORO) ExternalProject_Add(voro_build URL ${VORO_URL} - URL_MD5 ${VORO_MD5} + URL_HASH SHA256=${VORO_SHA256} PATCH_COMMAND patch -b -p0 < ${LAMMPS_DIR}/cmake/patches/voro-make.patch CONFIGURE_COMMAND "" BUILD_COMMAND make ${VORO_BUILD_OPTIONS} diff --git a/cmake/Modules/Tools.cmake b/cmake/Modules/Tools.cmake index dd497895c52..4657cc02cba 100644 --- a/cmake/Modules/Tools.cmake +++ b/cmake/Modules/Tools.cmake @@ -76,20 +76,20 @@ if(BUILD_LAMMPS_GUI) option(BUILD_WHAM "Download and compile WHAM executable from Grossfield Lab" YES) if(BUILD_WHAM) set(WHAM_URL "http://membrane.urmc.rochester.edu/sites/default/files/wham/wham-release-2.1.0.tgz" CACHE STRING "URL for WHAM tarball") - set(WHAM_MD5 "4ed6e24254925ec124f44bb381c3b87f" CACHE STRING "MD5 checksum of WHAM tarball") + set(WHAM_SHA256 "bc7ce8a79269d80979a06c3593960ed936333435bb71414913fa7b5a138dd2cf" CACHE STRING "SHA256 checksum of WHAM tarball") mark_as_advanced(WHAM_URL) - mark_as_advanced(WHAM_MD5) + mark_as_advanced(WHAM_SHA256) get_filename_component(archive ${WHAM_URL} NAME) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src) if(EXISTS ${CMAKE_BINARY_DIR}/_deps/${archive}) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) endif() - if(NOT "${DL_MD5}" STREQUAL "${WHAM_MD5}") + if(NOT "${DL_SHA256}" STREQUAL "${WHAM_SHA256}") message(STATUS "Downloading ${WHAM_URL}") file(DOWNLOAD ${WHAM_URL} ${CMAKE_BINARY_DIR}/_deps/${archive} STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${WHAM_MD5}")) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${WHAM_SHA256}")) message(ERROR "Download of WHAM sources from ${WHAM_URL} failed") endif() else() diff --git a/examples/plugins/LAMMPSInterfaceCXX.cmake b/examples/plugins/LAMMPSInterfaceCXX.cmake index 6ff154dec46..945f67ee4ff 100644 --- a/examples/plugins/LAMMPSInterfaceCXX.cmake +++ b/examples/plugins/LAMMPSInterfaceCXX.cmake @@ -48,15 +48,15 @@ if(BUILD_MPI) if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation") set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball") - set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball") + set(MPICH2_WIN64_DEVEL_SHA256 "939f5bad74311a84839196ca9140549189ef00785b0ef8e94ad6a180014ccb7f" CACHE STRING "SHA256 checksum of MS-MPI (win64) tarball") mark_as_advanced(MPICH2_WIN64_DEVEL_URL) - mark_as_advanced(MPICH2_WIN64_DEVEL_MD5) + mark_as_advanced(MPICH2_WIN64_DEVEL_SHA256) include(ExternalProject) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ExternalProject_Add(mpi4win_build URL ${MPICH2_WIN64_DEVEL_URL} - URL_MD5 ${MPICH2_WIN64_DEVEL_MD5} + URL_HASH SHA256=${MPICH2_WIN64_DEVEL_SHA256} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" BUILD_BYPRODUCTS /lib/libmsmpi.a) else() diff --git a/src/Fetch.sh b/src/Fetch.sh index ef60a41cda0..de3792e9c93 100755 --- a/src/Fetch.sh +++ b/src/Fetch.sh @@ -11,13 +11,19 @@ fetch_potentials() { echo "Need 'curl' or 'wget' to fetch external potential files" return fi + type sha256sum > /dev/null 2>&1 && have_sha256=1 || have_sha256=0 + if [ $have_sha256 -ne 1 ] + then \ + echo "Need 'sha256sum' to check downloaded potential files for integrity" + return + fi while [ $# -gt 1 ] do \ file=$1; sum=$2 shift; shift - echo ${sum} ${pdir}/${file} | md5sum -c - > /dev/null 2>&1 \ + echo ${sum} ${pdir}/${file} | sha256sum -c - > /dev/null 2>&1 \ && need_fetch=0 || need_fetch=1 if [ ${need_fetch} -eq 1 ] then \ diff --git a/src/MESONT/potentials.txt b/src/MESONT/potentials.txt index 8798ba3ab94..cfb890a75c2 100644 --- a/src/MESONT/potentials.txt +++ b/src/MESONT/potentials.txt @@ -1,3 +1,3 @@ # list of potential files to be fetched when this package is installed -# potential file md5sum -C_10_10.mesocnt 68b5ca26283968fd9889aa0a37f7b7fb +# potential file sha256sum +C_10_10.mesocnt 923f600a081d948eb8b4510f84aa96167b5a6c3e1aba16845d2364ae137dc346 From 0510359fed4e7373b22cf3dbda092e9f4095eb54 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Mar 2026 00:34:26 -0400 Subject: [PATCH 2/5] also update checksum handling for tools and unit tests --- tools/lammps-gui/CMakeLists.txt | 12 ++++++------ tools/phonon/CMakeLists.txt | 6 +++--- unittest/CMakeLists.txt | 6 +++--- unittest/force-styles/CMakeLists.txt | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index d91bc93cabd..61c2ba96967 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -95,20 +95,20 @@ endif() option(BUILD_WHAM "Download and compile WHAM executable from Grossfield Lab" YES) if(BUILD_WHAM) set(WHAM_URL "http://membrane.urmc.rochester.edu/sites/default/files/wham/wham-release-2.1.0.tgz" CACHE STRING "URL for WHAM tarball") - set(WHAM_MD5 "4ed6e24254925ec124f44bb381c3b87f" CACHE STRING "MD5 checksum of WHAM tarball") + set(WHAM_SHA256 "bc7ce8a79269d80979a06c3593960ed936333435bb71414913fa7b5a138dd2cf" CACHE STRING "SHA256 checksum of WHAM tarball") mark_as_advanced(WHAM_URL) - mark_as_advanced(WHAM_MD5) + mark_as_advanced(WHAM_SHA256) get_filename_component(archive ${WHAM_URL} NAME) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src) if(EXISTS ${CMAKE_BINARY_DIR}/_deps/${archive}) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) endif() - if(NOT "${DL_MD5}" STREQUAL "${WHAM_MD5}") + if(NOT "${DL_SHA256}" STREQUAL "${WHAM_SHA256}") message(STATUS "Downloading ${WHAM_URL}") file(DOWNLOAD ${WHAM_URL} ${CMAKE_BINARY_DIR}/_deps/${archive} STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${WHAM_MD5}")) + file(SHA256 ${CMAKE_BINARY_DIR}/_deps/${archive} DL_SHA256) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${WHAM_SHA256}")) message(ERROR "Download of WHAM sources from ${WHAM_URL} failed") endif() else() diff --git a/tools/phonon/CMakeLists.txt b/tools/phonon/CMakeLists.txt index 03cda718e2c..be83934efbb 100644 --- a/tools/phonon/CMakeLists.txt +++ b/tools/phonon/CMakeLists.txt @@ -81,9 +81,9 @@ endif() option(USE_SPGLIB "Download and use spglib for phonon DOS and other optional properties" ON) if(USE_SPGLIB) set(SPGLIB_URL "https://github.com/spglib/spglib/archive/refs/tags/v1.11.2.1.tar.gz" CACHE STRING "URL for spglib v1.x tarball") - set(SPGLIB_MD5 "3089782bc85b5034dd4765a18ee70bc7" CACHE STRING "MD5 checksum for spglib tarball") + set(SPGLIB_SHA256 "f6795523a04871e012e7f5f5ab97b249fa36657b73cdc9b4ea53ef023cfcaac4" CACHE STRING "SHA256 checksum for spglib tarball") mark_as_advanced(SPGLIB_URL) - mark_as_advanced(SPGLIB_MD5) + mark_as_advanced(SPGLIB_SHA256) include(LAMMPSUtils) GetFallbackURL(SPGLIB_URL SPGLIB_FALLBACK) @@ -91,7 +91,7 @@ if(USE_SPGLIB) include(ExternalProject) ExternalProject_Add(spglib_build URL ${SPGLIB_URL} ${SPGLIB_FALLBACK} - URL_MD5 ${SPGLIB_MD5} + URL_HASH SHA256=${SPGLIB_SHA256} PREFIX ${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext EXCLUDE_FROM_ALL TRUE CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/spglib_build_ext diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index 04089293b2c..845ff54476a 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -11,9 +11,9 @@ endif() message(STATUS "Downloading and building googletest framework") set(GTEST_URL "https://github.com/google/googletest/releases/download/v1.17.0/googletest-1.17.0.tar.gz" CACHE STRING "URL of googletest source") -set(GTEST_MD5 "b6f100bc2a5853a48046aa168ececf84" CACHE STRING "MD5 sum for googletest source") +set(GTEST_SHA256 "65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c" CACHE STRING "SHA256 sum for googletest source") mark_as_advanced(GTEST_URL) -mark_as_advanced(GTEST_MD5) +mark_as_advanced(GTEST_SHA256) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) include(ExternalCMakeProject) @@ -22,7 +22,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") endif() set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) set(INSTALL_GMOCK OFF CACHE BOOL "" FORCE) -ExternalCMakeProject(googletest ${GTEST_URL} ${GTEST_MD5} googletest . "") +ExternalCMakeProject(googletest ${GTEST_URL} ${GTEST_SHA256} googletest . "") add_library(GTest::GTest ALIAS gtest) add_library(GTest::GMock ALIAS gmock) add_library(GTest::GTestMain ALIAS gtest_main) diff --git a/unittest/force-styles/CMakeLists.txt b/unittest/force-styles/CMakeLists.txt index 5eb4c0ee8e2..7419916d1b4 100644 --- a/unittest/force-styles/CMakeLists.txt +++ b/unittest/force-styles/CMakeLists.txt @@ -3,13 +3,13 @@ find_package(YAML) if(NOT YAML_FOUND) set(YAML_URL "https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" CACHE STRING "URL for libyaml tarball") - set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of libyaml tarball") + set(YAML_SHA256 "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" CACHE STRING "SHA256 checksum of libyaml tarball") mark_as_advanced(YAML_URL) - mark_as_advanced(YAML_MD5) + mark_as_advanced(YAML_SHA256) # download and build a local copy of libyaml include(ExternalCMakeProject) - ExternalCMakeProject(libyaml ${YAML_URL} ${YAML_MD5} yaml . CMakeLists.libyaml) + ExternalCMakeProject(libyaml ${YAML_URL} ${YAML_SHA256} yaml . CMakeLists.libyaml) add_library(Yaml::Yaml ALIAS yaml) endif() From 55c5075d64ab735cec9a379bcee36addcd80de61 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Mar 2026 00:40:50 -0400 Subject: [PATCH 3/5] update docs --- doc/src/Build_extras.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 9b7549e9039..ccb3d777ef6 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -1264,7 +1264,7 @@ then load this plugin at runtime with the :doc:`plugin command customized by setting the variable ``MBXLIB_URL`` when configuring with CMake (e.g. to use a local archive on machines without internet access). Since CMake checks the validity of the - archive with ``md5sum`` you may also need to set ``MBXLIB_MD5`` + archive with ``sha256sum`` you may also need to set ``MBXLIB_SHA256`` if you provide a different library version than what is downloaded automatically. @@ -1301,7 +1301,7 @@ folder and then load this plugin at runtime with the :doc:`plugin command Date: Tue, 10 Mar 2026 07:29:27 -0400 Subject: [PATCH 4/5] correct cut-n-paste error --- cmake/Modules/Documentation.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index 859eee593c2..4fbf44afa67 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -80,7 +80,7 @@ if(BUILD_DOC) file(SHA256 ${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz DL_SHA256) if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_SHA256}" STREQUAL "${MATHJAX_SHA256}")) message(WARNING "Download from primary URL ${MATHJAX_URL} failed\nTrying fallback URL ${MATHJAX_FALLBACK}") - file(DOWNLOAD ${MATHJAX_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH SHA256=${MATHJAX_SHA256} SHOW_PROGRESS) + file(DOWNLOAD ${MATHJAX_FALLBACK} ${CMAKE_BINARY_DIR}/mathjax.tar.gz EXPECTED_HASH SHA256=${MATHJAX_SHA256} SHOW_PROGRESS) endif() else() message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz") From 62e79a9f1d945cb2bf96fc4adff9c48dc4463bde Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Mar 2026 07:30:05 -0400 Subject: [PATCH 5/5] update docs for change and avoid incorrect phrasing --- doc/src/Build_extras.rst | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index ccb3d777ef6..b7c03b5a607 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -1258,15 +1258,20 @@ then load this plugin at runtime with the :doc:`plugin command .. tab:: CMake build - By default the MBX library will be downloaded from the git repository - and built automatically when the MBX package is enabled with - ``-D PKG_MBX=yes``. The location for the sources may be - customized by setting the variable ``MBXLIB_URL`` when - configuring with CMake (e.g. to use a local archive on machines - without internet access). Since CMake checks the validity of the - archive with ``sha256sum`` you may also need to set ``MBXLIB_SHA256`` - if you provide a different library version than what is downloaded - automatically. + .. versionchanged:: TBD + + Replaced MD5 checksums with SHA-256 + + By default the MBX library will be downloaded from the git + repository and built automatically when the MBX package is enabled + with ``-D PKG_MBX=yes``. The location for the sources may be + customized by setting the variable ``MBXLIB_URL`` when configuring + with CMake (e.g. to use a local archive on machines without + internet access). Since CMake checks the validity of the archive + using a SHA-256 checksum you may also need to set the + ``MBXLIB_SHA256`` variable to the corresponding checksum + (e.g. computed with ``sha256sum``) if you provide a different + library version than what is downloaded automatically. .. tab:: Traditional make @@ -1295,16 +1300,20 @@ folder and then load this plugin at runtime with the :doc:`plugin command