git: cb5a0fcaa60b - main - science/siesta: update 4.1.5 → 5.4.2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Jul 2026 16:26:32 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=cb5a0fcaa60bab317f27e74942f0f939c6e33598
commit cb5a0fcaa60bab317f27e74942f0f939c6e33598
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-07-08 16:23:39 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-07-08 16:26:29 +0000
science/siesta: update 4.1.5 → 5.4.2
---
science/siesta/Makefile | 57 +++++++++++++++-------
science/siesta/distinfo | 26 ++++++++--
.../files/patch-External_Lua-Engine_CMakeLists.txt | 24 +++++++++
.../files/patch-External_Lua-Engine_flook_Makefile | 22 +++++++++
.../files/patch-cmake_SiestaFindPackage.cmake | 55 +++++++++++++++++++++
5 files changed, 164 insertions(+), 20 deletions(-)
diff --git a/science/siesta/Makefile b/science/siesta/Makefile
index 01d1dbcd203e..0d175c36f769 100644
--- a/science/siesta/Makefile
+++ b/science/siesta/Makefile
@@ -1,45 +1,68 @@
PORTNAME= siesta
-DISTVERSION= 4.1.5
-PORTREVISION= 3
+DISTVERSION= 5.4.2
CATEGORIES= science # chemistry
MASTER_SITES= https://gitlab.com/siesta-project/${PORTNAME}/-/releases/v${DISTVERSION}/downloads/
+DISTFILES= ${PORTNAME}-${DISTVERSION}.tar.gz
MAINTAINER= yuri@FreeBSD.org
COMMENT= Program to perform efficient electronic structure calculations
WWW= https://siesta-project.org/siesta/
LICENSE= GPLv3
-LICENSE_FILE= ${WRKSRC}/../COPYING
+LICENSE_FILE= ${WRKSRC}/COPYING
-BROKEN_aarch64= Lack of IEEE754 support in gcc causes "Cannot find an intrinsic module named 'ieee_arithmetic'", see bug#255890
+BROKEN_aarch64= lack of IEEE754 support in gcc causes "Cannot find an intrinsic module named 'ieee_arithmetic'", see bug#255890
-LIB_DEPENDS= libblas.so:math/blas \
- liblapack.so:math/lapack
+LIB_DEPENDS= libopenblas.so:math/openblas \
+ libreadline.so:devel/readline
-USES= fortran:gfortran gmake localbase:ldflags
+USES= cmake:noninja,testing fortran:gfortran gmake localbase:ldflags pkgconfig
-ALL_TARGET= default
+PLIST_FILES= bin/${PORTNAME}
-WRKSRC_SUBDIR= Obj
+USE_GITHUB= nodefault
+GH_TUPLE= ElectronicStructureLibrary:flook:v0.8.4:flook/External/Lua-Engine/flook \
+ dftd3:simple-dftd3:f147b265d8b53dcf1666d7b0aba579ec02233fe8:s_dftd3/External/DFTD3/s-dftd3 \
+ grimme-lab:mctc-lib:v0.3.1:mctc_lib/External/DFTD3/mctc-lib \
+ grimme-lab:mstore:v0.2.0:mstore/External/DFTD3/mstore \
+ toml-f:toml-f:v0.2.4:toml_f/External/DFTD3/toml-f \
+ fortran-lang:test-drive:v0.4.0:test_drive/External/DFTD3/test-drive
-PLIST_FILES= bin/${PORTNAME}
+USE_GITLAB= nodefault
+GL_TUPLE= siesta-project/libraries:libfdf:206a3d6c4628e584743bd5cd483d0e2e66e95b7c:libfdf/External/libfdf \
+ siesta-project/libraries:xmlf90:963fe5d11487233d43ac59dd0c1340a7b2cc3dc5:xmlf90/External/xmlf90 \
+ siesta-project/libraries:libpsml:b7049e4de25333fe8bd2dbf9a3495ef0f77ba168:libpsml/External/libpsml \
+ siesta-project/libraries:libgridxc:022d2a6371eed0db272ac6922289921f62f30c21:libgridxc/External/libgridxc
BINARY_ALIAS= gfortran=gfortran${GCC_DEFAULT} gcc=gcc${GCC_DEFAULT}
+CMAKE_ARGS= -DSIESTA_WITH_MPI=OFF \
+ -DSIESTA_WITH_ELSI=OFF \
+ -DSIESTA_WITH_WANNIER90=OFF \
+ -DSIESTA_WITH_NETCDF=OFF \
+ -DSIESTA_WITH_LIBXC=OFF \
+ -DSIESTA_WITH_FFTW=OFF \
+ -Dlibfdf_FIND_METHOD=source \
+ -Dxmlf90_FIND_METHOD=source \
+ -Dlibpsml_FIND_METHOD=source \
+ -Dlibgridxc_FIND_METHOD=source \
+ -Ds-dftd3_FIND_METHOD=source \
+ -Dmctc-lib_FIND_METHOD=source \
+ -Dmstore_FIND_METHOD=source \
+ -Dtoml-f_FIND_METHOD=source \
+ -Dtest-drive_FIND_METHOD=source
+CMAKE_OFF= SIESTA_TESTS
+CMAKE_TESTING_ON= SIESTA_TESTS
+
.include <bsd.port.pre.mk>
.if ${GCC_DEFAULT} >= 10
# workaround for Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(8)/REAL(8)).
FFLAGS+= -fallow-argument-mismatch
-MAKE_ARGS= FFLAGS="${FFLAGS} -O2 -fPIC -ftree-vectorize"
+CMAKE_ARGS+= -DCMAKE_Fortran_FLAGS="${FFLAGS} -O2 -fPIC -ftree-vectorize"
.endif
-pre-configure:
- @cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} ${SH} ../Src/obj_setup.sh && \
- ${LN} -s gfortran.make arch.make
-
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/Src/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
.include <bsd.port.post.mk>
diff --git a/science/siesta/distinfo b/science/siesta/distinfo
index ae18218c0c8c..f8bbc58c3ece 100644
--- a/science/siesta/distinfo
+++ b/science/siesta/distinfo
@@ -1,3 +1,23 @@
-TIMESTAMP = 1619229947
-SHA256 (siesta-4.1.5.tar.gz) = 518df31aa6213af5e24cc73abb537b2c89a925b487171f5339d743d0c7140b3f
-SIZE (siesta-4.1.5.tar.gz) = 16286464
+TIMESTAMP = 1783524801
+SHA256 (siesta-5.4.2.tar.gz) = 63d41b6b96e53b8ffa96750a80052ac61ee9550331604920f9040e2486a29b8d
+SIZE (siesta-5.4.2.tar.gz) = 13087676
+SHA256 (ElectronicStructureLibrary-flook-v0.8.4_GH0.tar.gz) = 66304756194341157d24467d994312c950d2bd33d4d19d68e81424769a3dbc03
+SIZE (ElectronicStructureLibrary-flook-v0.8.4_GH0.tar.gz) = 570879
+SHA256 (dftd3-simple-dftd3-f147b265d8b53dcf1666d7b0aba579ec02233fe8_GH0.tar.gz) = 6a5f741a779eea17663d80e24cb5dda511960c9b24f5aed450dc57536839502e
+SIZE (dftd3-simple-dftd3-f147b265d8b53dcf1666d7b0aba579ec02233fe8_GH0.tar.gz) = 605878
+SHA256 (grimme-lab-mctc-lib-v0.3.1_GH0.tar.gz) = 03dc8ccba37413da70e55a07cef8e8de53bce33f5bb52c1f8db5fec326abe083
+SIZE (grimme-lab-mctc-lib-v0.3.1_GH0.tar.gz) = 130801
+SHA256 (grimme-lab-mstore-v0.2.0_GH0.tar.gz) = 95edba88afbc8013f57f4c818a97c0500cc40b158bed11234c061b2b6d7e480d
+SIZE (grimme-lab-mstore-v0.2.0_GH0.tar.gz) = 240180
+SHA256 (toml-f-toml-f-v0.2.4_GH0.tar.gz) = 21a0b558bec6750907da80cd7141444b56ef29eb3484b9689dc2a95949368baa
+SIZE (toml-f-toml-f-v0.2.4_GH0.tar.gz) = 94087
+SHA256 (fortran-lang-test-drive-v0.4.0_GH0.tar.gz) = f9c037a3c1727e98801c2375e6f2efde9881ac1f54b04be3bc928e094f5787a5
+SIZE (fortran-lang-test-drive-v0.4.0_GH0.tar.gz) = 26298
+SHA256 (siesta-project/libraries-libfdf-206a3d6c4628e584743bd5cd483d0e2e66e95b7c_GL0.tar.gz) = d30b631a71644f8ea568f839400cab06148d6f558a102c83e301681c21f0facb
+SIZE (siesta-project/libraries-libfdf-206a3d6c4628e584743bd5cd483d0e2e66e95b7c_GL0.tar.gz) = 78703
+SHA256 (siesta-project/libraries-xmlf90-963fe5d11487233d43ac59dd0c1340a7b2cc3dc5_GL0.tar.gz) = 1fc3f182c4bc941a9a41f42b2d3f9ca59abc8b132824e76cdd3c5ed4611bfe37
+SIZE (siesta-project/libraries-xmlf90-963fe5d11487233d43ac59dd0c1340a7b2cc3dc5_GL0.tar.gz) = 528426
+SHA256 (siesta-project/libraries-libpsml-b7049e4de25333fe8bd2dbf9a3495ef0f77ba168_GL0.tar.gz) = e169004471bd3e9eac9a698175edd17fc9bc5429427691ad6ee3a913bf705227
+SIZE (siesta-project/libraries-libpsml-b7049e4de25333fe8bd2dbf9a3495ef0f77ba168_GL0.tar.gz) = 675634
+SHA256 (siesta-project/libraries-libgridxc-022d2a6371eed0db272ac6922289921f62f30c21_GL0.tar.gz) = 7c1055b0b4ae0e9b0b1471e17b558aaedd44fd90f3eb6e8bbe5e3c524f5d1b32
+SIZE (siesta-project/libraries-libgridxc-022d2a6371eed0db272ac6922289921f62f30c21_GL0.tar.gz) = 360521
diff --git a/science/siesta/files/patch-External_Lua-Engine_CMakeLists.txt b/science/siesta/files/patch-External_Lua-Engine_CMakeLists.txt
new file mode 100644
index 000000000000..4f63c9de8ac6
--- /dev/null
+++ b/science/siesta/files/patch-External_Lua-Engine_CMakeLists.txt
@@ -0,0 +1,24 @@
+-- Configure flook for FreeBSD instead of forcing the linux platform, and pass
+-- an explicit job count to the recursive make invocation that builds flook.
+-- A bare "-j" is propagated to the inner FreeBSD make, which requires an
+-- argument and aborts the build.
+--- External/Lua-Engine/CMakeLists.txt.orig 2025-12-16 02:10:34 UTC
++++ External/Lua-Engine/CMakeLists.txt
+@@ -139,6 +139,8 @@
+
+ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
+ set(FLOOK_PLATFORM "macosx")
++elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
++ set(FLOOK_PLATFORM "freebsd")
+ else()
+ set(FLOOK_PLATFORM "linux")
+ endif()
+@@ -198,7 +200,7 @@
+ ##CONFIGURE_HANDLED_BY_BUILD true
+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
+ CONFIGURE_COMMAND ""
+- BUILD_COMMAND ${MAKE_EXECUTABLE} -j liball
++ BUILD_COMMAND ${MAKE_EXECUTABLE} -j1 liball
+ ## We avoid installing until we know how to specify the prefix...
+ ## ... the following should work but does not.
+ ## INSTALL_COMMAND ${MAKE_EXECUTABLE} DESTDIR=<INSTALL_DIR> install
diff --git a/science/siesta/files/patch-External_Lua-Engine_flook_Makefile b/science/siesta/files/patch-External_Lua-Engine_flook_Makefile
new file mode 100644
index 000000000000..7e6c1943faef
--- /dev/null
+++ b/science/siesta/files/patch-External_Lua-Engine_flook_Makefile
@@ -0,0 +1,22 @@
+-- Use $(MAKE) instead of a hardcoded "make" when recursing into aotus. The
+-- bundled aotus/smeka makefiles use GNU make syntax and fail with FreeBSD make.
+--- External/Lua-Engine/flook/Makefile.orig 2026-07-08 15:35:43 UTC
++++ External/Lua-Engine/flook/Makefile
+@@ -64,15 +64,15 @@
+ endif
+ lib-aotus: prep-aotus
+ ifdef SETUP
+- (cd aotus/obj ; make SETUP=../../$(SETUP) )
++ (cd aotus/obj ; $(MAKE) SETUP=../../$(SETUP) )
+ else
+- (cd aotus/obj ; make )
++ (cd aotus/obj ; $(MAKE) )
+ endif
+ clean-aotus: prep-aotus
+ ifdef SETUP
+- (cd aotus/obj ; make SETUP=../../$(SETUP) clean )
++ (cd aotus/obj ; $(MAKE) SETUP=../../$(SETUP) clean )
+ else
+- (cd aotus/obj ; make clean )
++ (cd aotus/obj ; $(MAKE) clean )
+ endif
diff --git a/science/siesta/files/patch-cmake_SiestaFindPackage.cmake b/science/siesta/files/patch-cmake_SiestaFindPackage.cmake
new file mode 100644
index 000000000000..2b71fe2208cf
--- /dev/null
+++ b/science/siesta/files/patch-cmake_SiestaFindPackage.cmake
@@ -0,0 +1,55 @@
+-- Disallow the "fetch" method in Siesta_find_package so the build
+-- does not try to clone Git repositories during configure. The
+-- required dependency sources are now pre-fetched as GH_TUPLE/GL_TUPLE
+-- distfiles and populated in External/ before the build starts.
+--- cmake/SiestaFindPackage.cmake.orig 2026-07-08 15:31:28 UTC
++++ cmake/SiestaFindPackage.cmake
+@@ -117,7 +117,7 @@ function(Siesta_find_package)
+
+
+ # Determine the allowed find-methods
+- set(all_f_methods "cmake" "pkgconf" "source" "fetch")
++ set(all_f_methods "cmake" "pkgconf" "source")
+ set(allowed_f_methods "cmake" "pkgconf")
+ if(DEFINED _f_SOURCE_DIR)
+ list(APPEND allowed_f_methods "source")
+@@ -323,39 +323,6 @@ function(Siesta_find_package)
+ else()
+ mymsg(CHECK_FAIL "not found/compatible")
+ endif()
+- endif()
+-
+- if("${method}" STREQUAL "fetch")
+- mymsg(CHECK_START "fetching from ${_f_REPO}")
+-
+- include(FetchContent)
+- FetchContent_Declare("${pkg}"
+- GIT_REPOSITORY "${_f_REPO}"
+- GIT_TAG "${_f_TAG}"
+- )
+- FetchContent_MakeAvailable("${pkg}")
+-
+- add_library("${_f_TARGET}" INTERFACE IMPORTED GLOBAL)
+- target_link_libraries("${_f_TARGET}" INTERFACE "${pkg}")
+-
+- # We need the module directory in the subproject before we finish the configure stage
+- # Note that this is relevant if the "Fortran_MODULE_DIRECTORY" property is set to
+- # the 'include' subdirectory, as it is done for some libraries.
+- #
+- # (This is found experimentally; it does not seem to apply always, but it does not
+- # hurt to do it.)
+-
+- FetchContent_GetProperties("${pkg}" BINARY_DIR "${pkg_uc}_BINARY_DIR")
+- message(STATUS "BINARY_DIR for fetched ${pkg}: ${${pkg_uc}_BINARY_DIR}")
+-
+- if(NOT EXISTS "${${pkg_uc}_BINARY_DIR}/include")
+- make_directory("${${pkg_uc}_BINARY_DIR}/include")
+- endif()
+-
+- mymsg(CHECK_PASS "fetched")
+- set(f_method "fetch")
+-
+- break()
+ endif()
+
+ endforeach()