git: bb5d336a9dd0 - main - math/parmetis: switch to PETSc fork
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 20 Apr 2025 13:05:18 UTC
The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=bb5d336a9dd0557ba3f7f679384e10d4d3c1ef09 commit bb5d336a9dd0557ba3f7f679384e10d4d3c1ef09 Author: Thierry Thomas <thierry@FreeBSD.org> AuthorDate: 2025-04-20 12:51:49 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2025-04-20 13:03:36 +0000 math/parmetis: switch to PETSc fork Upstream disapeared, and 2 forks are available, KarypisLab on GitHub and the PETSc one. ATM PETSc seems more active. Don’t install one more libmetis but depend on the regular one, and thus don’t install the libraries under $PREFIX/lib/parmetis. Note: manual.pdf is no more available. --- math/parmetis/Makefile | 69 +++++++++++++++----------------- math/parmetis/distinfo | 6 +-- math/parmetis/files/patch-CMakeLists.txt | 15 +++++-- math/parmetis/pkg-descr | 2 + math/parmetis/pkg-plist | 10 ++--- 5 files changed, 53 insertions(+), 49 deletions(-) diff --git a/math/parmetis/Makefile b/math/parmetis/Makefile index 387717439c10..ed345f9a1d04 100644 --- a/math/parmetis/Makefile +++ b/math/parmetis/Makefile @@ -1,28 +1,28 @@ PORTNAME= ParMetis -PORTVERSION= 4.0.3 -PORTREVISION= 8 +DISTVERSION= 4.0.3-p10 CATEGORIES= math parallel -MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/ -DISTNAME= ${PORTNAME:tl}-${PORTVERSION} +MASTER_SITES= https://bitbucket.org/petsc/pkg-parmetis/get/ +DISTNAME= ${LGCOMMIT} +DIST_SUBDIR= Metis MAINTAINER= ports@FreeBSD.org COMMENT= Package for parallel (MPI) unstructured graph partitioning -WWW= http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview +WWW= https://bitbucket.org/petsc/pkg-parmetis LICENSE= METIS LICENSE_NAME= University of Minnesota METIS License LICENSE_FILE= ${WRKSRC}/LICENSE.txt LICENSE_PERMS= auto-accept -BROKEN= Unfetchable -DEPRECATED= Fails to fetch, unmaintained for years in tree -EXPIRATION_DATE=2025-02-28 +BUILD_DEPENDS= ${NONEXISTENT}:math/metis:configure +LIB_DEPENDS= libmetis.so:math/metis -USES= cmake:insource,noninja gmake -USE_LDCONFIG= ${PREFIX}/lib/parmetis +USES= cmake:insource,noninja gmake tar:bzip2 +CONFIGURE_ENV= MPI_HOME="${MPI_HOME}" +USE_LDCONFIG= yes -OPTIONS_DEFINE= OPENMPI DOCS STATIC -OPENMPI_DESC= Use openmpi instead of mpich +OPTIONS_DEFINE= OPENMPI STATIC +OPENMPI_DESC= Use OpenMPI instead of MPICH OPTIONS_SUB= yes OPENMPI_USES= mpi:openmpi @@ -31,53 +31,50 @@ OPENMPI_USES_OFF= mpi STATIC_DESC= Do not build and install shared library STATIC_VARS_OFF= SH_FLAG="shared=1" +SHCOMMIT= 53c9341b6c1b +LGCOMMIT= ${SHCOMMIT}a876c97567cb52ddfc87c159dc36 + +WRKSRC= ${WRKDIR}/petsc-pkg-parmetis-${SHCOMMIT} +METIS_WRKSRC= ${MAKE} -C ${PORTSDIR}/math/metis -VWRKSRC + CFLAGS+= -fPIC .include <bsd.port.options.mk> +.if ((${ARCH}=="amd64") || (${ARCH}=="aarch64") || (${ARCH}=="ppc64")) +CFLAGS+= -DMETIS_USE_LONGINDEX +.endif + pre-configure: - @${REINPLACE_CMD} -e \ + @${MKDIR} ${WRKSRC}/metis + ${CP} -Rp "`${METIS_WRKSRC}`"/* ${WRKSRC}/metis + ${REINPLACE_CMD} -e \ 's|BUILDDIR =.*|BUILDDIR = build| ; \ s|make -C|$$(MAKE) -C| ; \ s|$$(MAKEFLAGS)||' ${WRKSRC}/Makefile - @${REINPLACE_CMD} -e \ + ${REINPLACE_CMD} -e \ 's|"-O3"|""|' ${WRKSRC}/metis/GKlib/GKlibSystem.cmake -.if ((${ARCH}=="amd64") || (${ARCH}=="aarch64") || (${ARCH}=="ppc64")) - @${REINPLACE_CMD} -e \ - 's|IDXTYPEWIDTH 32|IDXTYPEWIDTH 64|' \ - ${WRKSRC}/metis/include/metis.h -.endif - @${REINPLACE_CMD} -e \ + ${REINPLACE_CMD} -e \ '/target_link_libraries(.* parmetis)/s/\(parmetis\)/& -lexecinfo/' \ ${WRKSRC}/programs/CMakeLists.txt do-configure: - @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \ + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \ ${MAKEFILE} config prefix="${PREFIX}" cc="${MPICC}" cxx="${MPICXX}" ${SH_FLAG} do-install: - @${MKDIR} ${STAGEDIR}${PREFIX}/include/parmetis \ - ${STAGEDIR}${PREFIX}/lib/parmetis \ - ${STAGEDIR}${DOCSDIR} + @${MKDIR} ${STAGEDIR}${PREFIX}/include/parmetis ${INSTALL_DATA} ${WRKSRC}/include/parmetis.h \ ${WRKSRC}/metis/include/metis.h \ ${STAGEDIR}${PREFIX}/include/parmetis .if ${PORT_OPTIONS:MSTATIC} - ${INSTALL_DATA} ${WRKSRC}/build/libmetis/libmetis.a \ - ${STAGEDIR}${PREFIX}/lib/parmetis ${INSTALL_DATA} ${WRKSRC}/build/libparmetis/libparmetis.a \ - ${STAGEDIR}${PREFIX}/lib/parmetis + ${STAGEDIR}${PREFIX}/lib .else - ${INSTALL_DATA} ${WRKSRC}/build/libmetis/libmetis.so \ - ${STAGEDIR}${PREFIX}/lib/parmetis/libmetis.so.2 ${INSTALL_LIB} ${WRKSRC}/build/libparmetis/libparmetis.so \ - ${STAGEDIR}${PREFIX}/lib/parmetis/libparmetis.so.2 - cd ${STAGEDIR}${PREFIX}/lib/parmetis && \ - ${LN} -sf libmetis.so.2 ${STAGEDIR}${PREFIX}/lib/parmetis/libmetis.so && \ - ${LN} -sf libparmetis.so.2 ${STAGEDIR}${PREFIX}/lib/parmetis/libparmetis.so - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/parmetis/libmetis.so.2 + ${STAGEDIR}${PREFIX}/lib/libparmetis.so.2 + cd ${STAGEDIR}${PREFIX}/lib && \ + ${LN} -sf libparmetis.so.2 ${STAGEDIR}${PREFIX}/lib/libparmetis.so .endif - ${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${WRKSRC}/manual/manual.pdf ${STAGEDIR}${DOCSDIR} .include <bsd.port.mk> diff --git a/math/parmetis/distinfo b/math/parmetis/distinfo index af89bf13cf63..ff4e351167ca 100644 --- a/math/parmetis/distinfo +++ b/math/parmetis/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1496443330 -SHA256 (parmetis-4.0.3.tar.gz) = f2d9a231b7cf97f1fee6e8c9663113ebf6c240d407d3c118c55b3633d6be6e5f -SIZE (parmetis-4.0.3.tar.gz) = 5567670 +TIMESTAMP = 1744994910 +SHA256 (Metis/53c9341b6c1ba876c97567cb52ddfc87c159dc36.tar.bz2) = 6dd7cf7eedb8fe4cd88caa42d471aac69001606277f869b75a4e060b38e95a54 +SIZE (Metis/53c9341b6c1ba876c97567cb52ddfc87c159dc36.tar.bz2) = 111121 diff --git a/math/parmetis/files/patch-CMakeLists.txt b/math/parmetis/files/patch-CMakeLists.txt index fbdbe348b487..48831758cb76 100644 --- a/math/parmetis/files/patch-CMakeLists.txt +++ b/math/parmetis/files/patch-CMakeLists.txt @@ -1,13 +1,22 @@ ---- CMakeLists.txt.orig 2013-03-30 16:24:50 UTC +--- CMakeLists.txt.orig 2025-03-31 19:32:32 UTC +++ CMakeLists.txt -@@ -19,8 +19,10 @@ execute_process(COMMAND ${CMAKE_COMMAND} +@@ -21,9 +21,11 @@ if(SHARED) # Prepare libraries. if(SHARED) set(ParMETIS_LIBRARY_TYPE SHARED) + set(METIS_LIBRARY_TYPE SHARED) + set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") else() set(ParMETIS_LIBRARY_TYPE STATIC) + set(METIS_LIBRARY_TYPE STATIC) endif() - include(${GKLIB_PATH}/GKlibSystem.cmake) + # List of paths that the compiler will search for header files. +@@ -36,6 +38,7 @@ include_directories(${CMAKE_INSTALL_PREFIX}/include) + + # List of paths that the compiler will search for library files. + # i.e., the -L equivalent ++link_directories(${MPI_LINK_FLAGS}) + link_directories(${METIS_PATH}/lib) + link_directories(${CMAKE_INSTALL_PREFIX}/lib) + diff --git a/math/parmetis/pkg-descr b/math/parmetis/pkg-descr index 8c4ec46332f7..adfaa891f428 100644 --- a/math/parmetis/pkg-descr +++ b/math/parmetis/pkg-descr @@ -7,3 +7,5 @@ numerical simulations. The algorithms implemented in ParMETIS are based on the parallel multilevel k-way graph-partitioning algorithms described in [KK95d], [KK96], [KK97], and the adaptive repartitioning algorithms described in [SKK97a], [SKK97b], [SK+98], and [SKK98]. + +See also: https://github.com/KarypisLab/ParMETIS diff --git a/math/parmetis/pkg-plist b/math/parmetis/pkg-plist index a7b45f0eadc1..6c4468ed1301 100644 --- a/math/parmetis/pkg-plist +++ b/math/parmetis/pkg-plist @@ -1,9 +1,5 @@ include/parmetis/metis.h include/parmetis/parmetis.h -%%STATIC%%lib/parmetis/libmetis.a -%%NO_STATIC%%lib/parmetis/libmetis.so -%%NO_STATIC%%lib/parmetis/libmetis.so.2 -%%STATIC%%lib/parmetis/libparmetis.a -%%NO_STATIC%%lib/parmetis/libparmetis.so -%%NO_STATIC%%lib/parmetis/libparmetis.so.2 -%%DOCSDIR%%/manual.pdf +%%STATIC%%lib/libparmetis.a +%%NO_STATIC%%lib/libparmetis.so +%%NO_STATIC%%lib/libparmetis.so.2