git: e81ad2d91b20 - main - science/wannier90: update 3.1.0 → 4.0.1

Yuri Victorovich <[email protected]> Thu, 06 Aug 2026 22:23:10 +0000
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e81ad2d91b2075a7202b0e7a55c0a290353e89e8

commit e81ad2d91b2075a7202b0e7a55c0a290353e89e8
Author:     Yuri Victorovich <[email protected]>
AuthorDate: 2026-08-06 21:42:51 +0000
Commit:     Yuri Victorovich <[email protected]>
CommitDate: 2026-08-06 22:22:59 +0000

    science/wannier90: update 3.1.0 → 4.0.1
    
    ChangeLog: https://github.com/wannier-developers/wannier90/releases/tag/v4.0.1
---
 science/abinit/Makefile                            |  5 +-
 science/elk/Makefile                               |  3 +-
 science/wannier90/Makefile                         | 63 ++++++++++++----------
 science/wannier90/distinfo                         |  6 +--
 science/wannier90/files/patch-src_Makefile.2       | 11 ----
 .../wannier90/files/patch-test-suite_run__tests    | 21 ++++++++
 science/wannier90/pkg-plist                        | 12 +++++
 7 files changed, 77 insertions(+), 44 deletions(-)

diff --git a/science/abinit/Makefile b/science/abinit/Makefile
index e35ff44cace8..9f1a9a0fd814 100644
--- a/science/abinit/Makefile
+++ b/science/abinit/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	abinit
 DISTVERSION=	10.8.1
+PORTREVISION=	1
 CATEGORIES=	science
 
 MAINTAINER=	[email protected]
@@ -25,7 +26,7 @@ LIB_DEPENDS=	libelpa.so:math/elpa		\
 		libhdf5.so:science/hdf5		\
 		libnetcdf.so:science/netcdf	\
 		libxmlf90.so:textproc/xmlf90	\
-		libwannier.so:science/wannier90	\
+		libwannier90.so:science/wannier90	\
 		libnetcdff.so:science/netcdf-fortran
 RUN_DEPENDS=	atompaw:science/atompaw
 TEST_DEPENDS=	bash:shells/bash \
@@ -46,7 +47,7 @@ CONFIGURE_ENV=	H5CC="${LOCALBASE}/bin/h5cc" \
 		LINALG_LIBS="${BLASLIB}  ${LAPACKLIB} -lelpa"	\
 		NETCDF_FORTRAN_FCFLAGS=-I${LOCALBASE}/include	\
 		XMLF90_FCFLAGS=-I${LOCALBASE}/include/xmlf90	\
-		WANNIER90_LIBS="${BLASLIB}  ${LAPACKLIB} -lwannier"
+		WANNIER90_LIBS="${BLASLIB}  ${LAPACKLIB} -lwannier90"
 CONFIGURE_ARGS=	--with-fft --with-libxc --with-libxml2 --with-netcdf	\
 		--with-netcdf-fortran --with-wannier90 --with-xmlf90
 FCFLAGS+=	-ffree-line-length-none
diff --git a/science/elk/Makefile b/science/elk/Makefile
index 327dcd4bc20a..9054a5159fa6 100644
--- a/science/elk/Makefile
+++ b/science/elk/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	elk
 DISTVERSION=	11.0.2
+PORTREVISION=	1
 CATEGORIES=	science
 MASTER_SITES=	SF/${PORTNAME}
 PKGNAMESUFFIX=	-chemistry
@@ -18,7 +19,7 @@ LIB_DEPENDS=	libblas.so:math/blas \
 		libfftw3f.so:math/fftw3-float \
 		liblapack.so:math/lapack \
 		libopenblas.so:math/openblas \
-		libwannier.so:science/wannier90 \
+		libwannier90.so:science/wannier90 \
 		libxc.so:science/libxc
 
 USES=		fortran gmake tar:tgz
diff --git a/science/wannier90/Makefile b/science/wannier90/Makefile
index c8d259082eb9..4189f4f6d6a1 100644
--- a/science/wannier90/Makefile
+++ b/science/wannier90/Makefile
@@ -1,46 +1,55 @@
 PORTNAME=	wannier90
 DISTVERSIONPREFIX=	v
-DISTVERSION=	3.1.0
-PORTREVISION=	5
+DISTVERSION=	4.0.1
 CATEGORIES=	science
 
 MAINTAINER=	[email protected]
 COMMENT=	Maximally-localized Wannier functions (MLWFs) and Wannier90
-WWW=		http://www.wannier.org/
+WWW=		http://www.wannier.org/ \
+		https://github.com/wannier-developers/wannier90
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		blaslapack:netlib fortran gmake python:test shebangfix
+TEST_DEPENDS=	gmake:devel/gmake
+
+USES=		cmake:testing blaslapack:netlib fortran python:test shebangfix
+USE_LDCONFIG=	yes
+
 USE_GITHUB=	yes
 GH_ACCOUNT=	wannier-developers
-SHEBANG_FILES=	test-suite/run_tests test-suite/clean_tests	\
-		test-suite/tools/fprettify-wrapper.py	\
-		test-suite/testcode/bin/testcode.py	\
-		test-suite/library-mode-test/compare_results.py	\
-		utility/k_mapper.py utility/gw2wannier90.py
-USE_LDCONFIG=	yes
 
-MAKE_ARGS=	FCOPTS="-fPIC -O3" LDOPTS="-L${LOCALBASE}/lib"
+SHEBANG_FILES=	test-suite/run_tests test-suite/clean_tests
+SHEBANG_GLOB=	*.py
+
+CMAKE_OFF=		WANNIER90_TEST
+CMAKE_TESTING_ON=	WANNIER90_TEST
+
+OPTIONS_DEFINE=		WITH_C
+OPTIONS_DEFAULT=	WITH_C
+OPTIONS_RADIO=		BLAS_SIZE MPI
+OPTIONS_RADIO_MPI=	NOMPI MPICH OPENMPI
+OPTIONS_DEFAULT+=	NOMPI
+OPTIONS_SUB=		yes
+
+WITH_C_DESC=		Build C interface
+WITH_C_CMAKE_BOOL=	WANNIER90_WITH_C
+WITH_C_CFLAGS=		-I${LOCALBASE}/include/gcc${GCC_DEFAULT}
 
-TEST_TARGET=	tests # most tests using --numprocs=4 fail: https://github.com/wannier-developers/wannier90/issues/351
+NOMPI_DESC=		MPI isn't used
 
-PLIST_FILES=	bin/postw90.x \
-		bin/w90chk2chk.x \
-		bin/wannier90.x \
-		lib/libwannier.so \
-		lib/libwannier.so.0
+MPICH_USES=		mpi:mpich
+MPICH_CMAKE_ON=		-DWANNIER90_MPI=ON -DWANNIER90_MPIH=ON
+BUILD_LIB_DEPENDS=	libmpich.so:net/mpich
+MPICH_LIB_DEPENDS=	libmpich.so:net/mpich
+MMPICH_BROKEN=		https://github.com/wannier-developers/wannier90/issues/662
 
-post-patch:
-	@${REINPLACE_CMD} 's|F90 = gfortran|F90 = ${FC}|' ${WRKSRC}/config/make.inc.gfort
-	@${RLN} ${WRKSRC}/config/make.inc.gfort ${WRKSRC}/make.inc
-	@${REINPLACE_CMD} 's|make|${GMAKE}|' ${WRKSRC}/test-suite/run_tests
+OPENMPI_USES=		mpi:mpich
+OPENMPI_CMAKE_ON=	-DWANNIER90_MPI=ON -DWANNIER90_MPIH=ON
+OPENMPI_BUILD_DEPENDS=	openmpi>0:net/openmpi
+OPENMPI_RUN_DEPENDS=	openmpi>0:net/openmpi
+OPENMPI_BROKEN=		https://github.com/wannier-developers/wannier90/issues/662
 
-do-install:
-.for p in wannier90.x postw90.x w90chk2chk.x
-	${INSTALL_PROGRAM} ${WRKSRC}/${p} ${STAGEDIR}${PREFIX}/bin/${p}
-.endfor
-	${INSTALL_LIB} ${WRKSRC}/src/obj/libwannier.so ${STAGEDIR}${PREFIX}/lib/libwannier.so.0
-	${LN} -sf libwannier.so.0 ${STAGEDIR}${PREFIX}/lib/libwannier.so
+# tests as of 4.0.1: 100% tests passed, 0 tests failed out of 93
 
 .include <bsd.port.mk>
diff --git a/science/wannier90/distinfo b/science/wannier90/distinfo
index c8948eef314c..95950ad6fda6 100644
--- a/science/wannier90/distinfo
+++ b/science/wannier90/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1583633742
-SHA256 (wannier-developers-wannier90-v3.1.0_GH0.tar.gz) = 40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254
-SIZE (wannier-developers-wannier90-v3.1.0_GH0.tar.gz) = 101211573
+TIMESTAMP = 1786028667
+SHA256 (wannier-developers-wannier90-v4.0.1_GH0.tar.gz) = 3700372489435fc3165b2b213c22708cc947babd96e652641fad84240191c1dd
+SIZE (wannier-developers-wannier90-v4.0.1_GH0.tar.gz) = 246681570
diff --git a/science/wannier90/files/patch-src_Makefile.2 b/science/wannier90/files/patch-src_Makefile.2
deleted file mode 100644
index b8854856fbfc..000000000000
--- a/science/wannier90/files/patch-src_Makefile.2
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/Makefile.2.orig	2019-02-27 14:28:29 UTC
-+++ src/Makefile.2
-@@ -69,7 +69,7 @@ libs:     $(LIBRARY)
- dynlibs: $(DYNLIBRARY)
- 
- $(LIBRARY): $(OBJS) $(OBJSLIB) 
--	$(AR) $(ARFLAGS) $(LIBRARY) $(OBJSLIB) $(OBJS)
-+	$(CC) $(LDFLAGS) -shared -o libwannier.so -Wl,-soname,libwannier.so $(OBJSLIB) $(OBJS)
- 
- $(DYNLIBRARY): $(OBJS) $(OBJSLIB)
- 	echo $(COMPILER)
diff --git a/science/wannier90/files/patch-test-suite_run__tests b/science/wannier90/files/patch-test-suite_run__tests
new file mode 100644
index 000000000000..a9cc0000de97
--- /dev/null
+++ b/science/wannier90/files/patch-test-suite_run__tests
@@ -0,0 +1,21 @@
+--- test-suite/run_tests.orig	2026-08-06 15:35:39 UTC
++++ test-suite/run_tests
+@@ -134,15 +134,15 @@ if __name__ == "__main__":
+         if args.verbose:
+             print("Creating needed files in {}...".format(folder))
+             return_code = subprocess.call(
+-                ['make', '-C', folderabspath],
++                ['gmake', '-C', folderabspath],
+                 stdout=sys.stdout, stderr=sys.stderr)
+         else:
+             FNULL = open(os.devnull, 'w')
+             return_code = subprocess.call(
+-                ['make', '-C', folderabspath],
++                ['gmake', '-C', folderabspath],
+                 stdout=FNULL, stderr=sys.stderr)
+             if return_code:
+-                print("*** WARNING!! make failed... continuing anyway, but your tests might fail")
++                print("*** WARNING!! gmake failed... continuing anyway, but your tests might fail")
+ 
+ 
+     the_category = args.category
diff --git a/science/wannier90/pkg-plist b/science/wannier90/pkg-plist
new file mode 100644
index 000000000000..931970d7477f
--- /dev/null
+++ b/science/wannier90/pkg-plist
@@ -0,0 +1,12 @@
+bin/postw90.x
+bin/wannier90.x
+%%WITH_C%%include/wannier90.h
+lib/GNU-14.2.0/modules/Wannier90/w90_library.mod
+lib/cmake/Wannier90/Wannier90Config.cmake
+lib/cmake/Wannier90/Wannier90ConfigVersion.cmake
+lib/cmake/Wannier90/Wannier90Targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/Wannier90/Wannier90Targets.cmake
+lib/libwannier90.so
+lib/libwannier90.so.4
+lib/libwannier90.so.4.0.0
+libdata/pkgconfig/wannier90.pc