1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-21 08:42:23 +00:00

add math/metis4 to math/Makefile; update math/metis to 5.0.2; add appropriate

CONFLICTS, LATEST_LINK, and PORTSCOUT; adjust dependent ports; explicitly
note the restrictive license of the metis ports (while here, append the MPI port to
*DEPENDS in math/parmetis, rather than using an assignment)

PR:		169578
This commit is contained in:
Brendan Fabeny 2012-07-09 11:11:44 +00:00
parent 1c3882eba2
commit 5930109e8e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=300666
18 changed files with 185 additions and 103 deletions

View File

@ -5,6 +5,20 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
20120709:
AFFECTS: users of math/metis
AUTHOR: bf@FreeBSD.org
The older version of metis has been moved to math/metis4, and
math/metis has been updated to 5.0.2. Dependent ports still use
the old API, and the different versions of metis cannot coexist, so
most users should update with:
# portmaster -o math/metis4 math/metis
# portmaster -r math/metis4
or the equivalent.
20120702:
AFFECTS: users of databases/couchdb
AUTHOR: crees@FreeBSD.org, Adam Strohl <adams-ports@ateamsystems.com>

View File

@ -7,6 +7,7 @@
PORTNAME= CalculiX
PORTVERSION= 2.4
PORTREVISION= 1
CATEGORIES= cad
MASTER_SITES= http://www.dhondt.de/
DISTFILES= ${DIST_SOURCES}
@ -30,7 +31,7 @@ COMMENT= A Three-Dimensional Structural Finite Element Program
LIB_DEPENDS= arpack.1:${PORTSDIR}/math/arpack \
spooles.1:${PORTSDIR}/math/spooles \
metis.1:${PORTSDIR}/math/metis \
metis.1:${PORTSDIR}/math/metis4 \
taucs.1:${PORTSDIR}/math/taucs
USE_BZIP2= yes

View File

@ -231,9 +231,9 @@ BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/PyQt4/QtXml.so:${PORTSDIR}/textproc/py-qt4
#Dependency from metis & scotsch
.if ${SAL_MODULE} == "med"
. if exists(${LOCALBASE}/bin/graphchk)
BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis
RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis
. if exists(${LOCALBASE}/bin/oemetis)
BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis4
RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis4
. else
BUILD_DEPENDS+= kmetis:${PORTSDIR}/math/metis-edf
RUN_DEPENDS+= kmetis:${PORTSDIR}/math/metis-edf

View File

@ -233,6 +233,7 @@
SUBDIR += mbasecalc
SUBDIR += metis
SUBDIR += metis-edf
SUBDIR += metis4
SUBDIR += mingw32-libgmp
SUBDIR += miracl
SUBDIR += moo

View File

@ -6,55 +6,132 @@
#
PORTNAME= metis
PORTVERSION= 4.0.3
PORTVERSION= 5.0.2
CATEGORIES= math
MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/ \
http://www-users.cs.umn.edu/~karypis/metis/metis/files/
MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/
MAINTAINER= bf@FreeBSD.org
COMMENT= A package for unstructured graph partitioning
CONFLICTS= metis-edf-[0-9]*
LICENSE= METIS
LICENSE_NAME= University of Minnesota METIS License
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
LICENSE_PERMS= auto-accept
USE_LDCONFIG= yes
CONFLICTS= metis-4* metis-edf-[0-9]*
PROGRAMS= graphchk kmetis mesh2dual mesh2nodal \
oemetis onmetis partnmesh partdmesh pmetis
USE_CMAKE= yes
.include <bsd.port.pre.mk>
OPTIONS_DEFINE = OPENMP STATIC SHARED
OPENMP_DESC= multithreading via OpenMP
#PROFILE_DESC= profiling libraries
SHARED_DESC= shared library and dynamically-linked executables
STATIC_DESC= libmetis archive
OPTIONS_DEFAULT= SHARED STATIC
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MOPENMP}
.if !empty(CC:T:M*clang*)
IGNORE = : clang does not support OpenMP. Disable the OPENMP option or\
use another compiler
.endif
CMAKE_ARGS+= -DOPENMP=1
.endif
#.if ${PORT_OPTIONS:MPROFILE}
#.if !exists(/usr/lib/libc_p.a)
#IGNORE = : you have enabled the PROFILE option, but have not installed \
# the base system profiling libraries
#.endif
#ALL_TARGET_PROFILE= metis
#CMAKE_ARGS_PROFILE= -DGPROF=1
#PLIST_SUB+= PROFILE=""
##PROFILE_FLAGS ?= -pg
#WRKSRC_PROFILE = ${WRKSRC}_PROFILE
#INSTALL_WRKSRC_PROFILE = ${WRKSRC_PROFILE}/libmetis
#.else
#PLIST_SUB+= PROFILE="@comment "
#.endif
.if ${PORT_OPTIONS:MSHARED}
ALL_TARGET_SHARED= all
CMAKE_ARGS_SHARED= -DSHARED=1
PLIST_SUB+= SHARED=""
.if ${ARCH} == "sparc64"
PICFLAG?= -fPIC
SHARED_FLAGS?= -fPIC
.else
PICFLAG?= -fpic
SHARED_FLAGS?= -fpic
.endif
SHLIB_MAJOR?= 2
CMAKE_ARGS+= -DSHLIB_MAJOR="${SHLIB_MAJOR}"
USE_LDCONFIG= yes
WRKSRC_SHARED= ${WRKSRC}_SHARED
INSTALL_WRKSRC_SHARED= ${WRKSRC_SHARED}
.else
PLIST_SUB+= SHARED="@comment "
.endif
.if ${PORT_OPTIONS:MSTATIC}
ALL_TARGET_STATIC= metis
PLIST_SUB+= STATIC=""
WRKSRC_STATIC= ${WRKSRC}
INSTALL_WRKSRC_STATIC= ${WRKSRC_STATIC}/libmetis
.else
PLIST_SUB+= STATIC="@comment "
.endif
post-patch:
${CP} -R ${WRKSRC} ${WRKSRC}_SHARED
@${REINPLACE_CMD} -e "/^# Add compiler flags/,/^$$/d" \
-e "/^check_include_file(execinfo.h/d" \
${WRKSRC}/GKlib/GKlibSystem.cmake
@${REINPLACE_CMD} -e "\|/home/karypis/|d" \
${WRKSRC}/programs/CMakeLists.txt
.for o in SHARED #PROFILE
.if ${PORT_OPTIONS:M${o}}
@${CP} -R ${WRKSRC} ${WRKSRC_${o}}
.endif
.endfor
do-configure:
.for o in SHARED STATIC #PROFILE
.if ${PORT_OPTIONS:M${o}}
@${PRINTF} "\n\nConfiguring ${o}:\n\n\n"
@cd ${WRKSRC_${o}}; ${SETENV} ${CMAKE_ENV} ${CMAKE_BIN} \
${CMAKE_ARGS:C|${CFLAGS}|& ${${o}_FLAGS}|g} ${CMAKE_ARGS_${o}} \
-DGKLIB_PATH="${WRKSRC_${o}}/GKlib" ${CMAKE_SOURCE_PATH}
.endif
.endfor
do-build:
@cd ${WRKSRC} ; ${SETENV} ${MAKE_ENV} \
COPTIONS="${CFLAGS}" LDOPTIONS="${LDFLAGS}" \
${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS}
@cd ${WRKSRC}_SHARED ; ${SETENV} ${MAKE_ENV} \
COPTIONS="${CFLAGS} ${PICFLAG}" LDOPTIONS="${LDFLAGS} ${PICFLAG}" \
${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} ; \
${LD} -Bshareable -o libmetis.so.1 -x -soname libmetis.so.1 \
--whole-archive libmetis.a --no-whole-archive
.for o in SHARED STATIC #PROFILE
.if ${PORT_OPTIONS:M${o}}
@${PRINTF} "\n\nBuilding ${o}:\n\n\n"
@cd ${WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
${MAKE_ARGS} ${ALL_TARGET_${o}}
.endif
.endfor
check regression-test test: build
cd ${WRKSRC}/Graphs ; ./mtest 4elt.graph
cd ${WRKSRC_SHARED}/graphs ; ../programs/gpmetis ./4elt.graph 5
do-install:
cd ${WRKSRC} ; ${INSTALL_PROGRAM} ${PROGRAMS} ${PREFIX}/bin
@${MKDIR} ${PREFIX}/include/metis
${INSTALL_DATA} ${WRKSRC}/Lib/*.h ${PREFIX}/include/metis
${INSTALL_DATA} ${WRKSRC}/libmetis.a ${PREFIX}/lib
${INSTALL_DATA} ${WRKSRC}_SHARED/libmetis.so.1 ${PREFIX}/lib
${LN} -sf libmetis.so.1 ${PREFIX}/lib/libmetis.so
.for o in SHARED STATIC #PROFILE
.if ${PORT_OPTIONS:M${o}}
@${PRINTF} "\n\nInstalling ${o}:\n\n\n"
@cd ${INSTALL_WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
${MAKE_ARGS} install
.endif
.endfor
.ifndef NOPORTDOCS
.if ${PORT_OPTIONS:MDOCS}
PORTDOCS= manual.pdf
post-install:
@${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/Doc/manual.ps ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/manual/manual.pdf ${DOCSDIR}
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (metis-4.0.3.tar.gz) = 5efa35de80703c1b2c4d0de080fafbcf4e0d363a21149a1ad2f96e0144841a55
SIZE (metis-4.0.3.tar.gz) = 522624
SHA256 (metis-5.0.2.tar.gz) = f79790676ca2ce3dfa9d5e2d74801e91d92415664ede2c2fc18fc49d4a161981
SIZE (metis-5.0.2.tar.gz) = 4963532

View File

@ -1,25 +0,0 @@
--- Makefile.in.orig 2006-08-31 08:22:01.000000000 -0400
+++ Makefile.in 2012-03-15 12:48:32.000000000 -0400
@@ -1,21 +1,16 @@
# Which compiler to use
-CC = cc
# What optimization level to use
-OPTFLAGS = -O2
# What options to be used by the compiler
-COPTIONS =
# What options to be used by the loader
-LDOPTIONS =
# What archiving to use
-AR = ar rv
+AR += ${ARFLAGS}
# What to use for indexing the archive
-RANLIB = ranlib
#RANLIB = ar -ts
#RANLIB =

View File

@ -0,0 +1,12 @@
--- libmetis/CMakeLists.txt.orig 2011-06-22 13:47:13.000000000 -0400
+++ libmetis/CMakeLists.txt 2012-07-07 11:05:47.000000000 -0400
@@ -4,6 +4,9 @@
file(GLOB metis_sources *.c)
# Build libmetis.
add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
+if(SHARED)
+ set_target_properties(metis PROPERTIES SOVERSION ${SHLIB_MAJOR})
+endif()
if(UNIX)
target_link_libraries(metis m)
endif()

View File

@ -1,10 +1,10 @@
METIS is a set of serial programs for partitioning graphs,
partitioning finite element meshes, and producing fill reducing
partitioning finite element meshes, and producing fill-reducing
orderings for sparse matrices. The algorithms implemented in METIS are
based on the multilevel recursive-bisection, multilevel k-way, and
multi-constraint partitioning schemes developed in our lab.
METIS provides high quality partitions, is extremely fast, and
produces low fill orderings.
METIS provides high-quality partitions, is extremely fast, and
produces low-fill orderings.
WWW: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview

View File

@ -1,21 +1,10 @@
bin/graphchk
bin/kmetis
bin/mesh2dual
bin/mesh2nodal
bin/oemetis
bin/onmetis
bin/partdmesh
bin/partnmesh
bin/pmetis
lib/libmetis.a
lib/libmetis.so
lib/libmetis.so.1
include/metis/defs.h
include/metis/macros.h
include/metis/metis.h
include/metis/proto.h
include/metis/rename.h
include/metis/struct.h
@dirrm include/metis
%%PORTDOCS%%%%DOCSDIR%%/manual.ps
%%PORTDOCS%%@dirrm %%DOCSDIR%%
%%SHARED%%bin/cmpfillin
%%SHARED%%bin/gpmetis
%%SHARED%%bin/graphchk
%%SHARED%%bin/m2gmetis
%%SHARED%%bin/mpmetis
%%SHARED%%bin/ndmetis
%%SHARED%%include/metis.h
%%STATIC%%lib/libmetis.a
%%SHARED%%lib/libmetis.so
%%SHARED%%lib/libmetis.so.2

View File

@ -7,17 +7,24 @@
PORTNAME= metis
PORTVERSION= 4.0.3
PORTREVISION= 1
CATEGORIES= math
MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/ \
http://www-users.cs.umn.edu/~karypis/metis/metis/files/
MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/
MAINTAINER= bf@FreeBSD.org
COMMENT= A package for unstructured graph partitioning
CONFLICTS= metis-edf-[0-9]*
LICENSE= METIS
LICENSE_NAME= University of Minnesota METIS License
LICENSE_FILE= ${WRKSRC}/LICENSE
LICENSE_PERMS= auto-accept
CONFLICTS= metis-5* metis-edf-[0-9]*
USE_LDCONFIG= yes
LATEST_LINK= metis4
PORTSCOUT= limit:4.*
PROGRAMS= graphchk kmetis mesh2dual mesh2nodal \
oemetis onmetis partnmesh partdmesh pmetis

View File

@ -1,10 +1,10 @@
METIS is a set of serial programs for partitioning graphs,
partitioning finite element meshes, and producing fill reducing
partitioning finite element meshes, and producing fill-reducing
orderings for sparse matrices. The algorithms implemented in METIS are
based on the multilevel recursive-bisection, multilevel k-way, and
multi-constraint partitioning schemes developed in our lab.
METIS provides high quality partitions, is extremely fast, and
produces low fill orderings.
METIS provides high-quality partitions, is extremely fast, and
produces low-fill orderings.
WWW: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview

View File

@ -43,7 +43,7 @@ FFLAGS+= -O3 -ffast-math
.endif
.ifdef WITH_METIS
BUILD_DEPENDS+= ${LOCALBASE}/lib/libmetis.a:${PORTSDIR}/math/metis
BUILD_DEPENDS+= ${LOCALBASE}/bin/oemetis:${PORTSDIR}/math/metis4
MAKE_ENV+= ORDERINGSF=-Dmetis
.endif

View File

@ -7,6 +7,7 @@
PORTNAME= ParMetis
PORTVERSION= 4.0
PORTREVISION= 1
CATEGORIES= math parallel
MASTER_SITES= http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/%SUBDIR%/
MASTER_SITE_SUBDIR= . OLD
@ -15,6 +16,11 @@ DISTNAME= ${PORTNAME:L}-${PORTVERSION}
MAINTAINER= bf@FreeBSD.org
COMMENT= A package for parallel (mpi) unstructured graph partitioning
LICENSE= METIS
LICENSE_NAME= University of Minnesota METIS License
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
LICENSE_PERMS= auto-accept
OPTIONS= OPENMPI "Use openmpi instead of mpich2" off
USE_CMAKE= yes
@ -28,12 +34,12 @@ PLIST_DIRS= include/parmetis lib/parmetis
.include <bsd.port.pre.mk>
.if defined(WITH_OPENMPI)
BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpicc:${PORTSDIR}/net/openmpi
RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpirun:${PORTSDIR}/net/openmpi
BUILD_DEPENDS+= ${LOCALBASE}/mpi/openmpi/bin/mpicc:${PORTSDIR}/net/openmpi
RUN_DEPENDS+= ${LOCALBASE}/mpi/openmpi/bin/mpirun:${PORTSDIR}/net/openmpi
MPICC= ${LOCALBASE}/mpi/openmpi/bin/mpicc
.else
BUILD_DEPENDS= ${LOCALBASE}/bin/mpicc:${PORTSDIR}/net/mpich2
RUN_DEPENDS= ${LOCALBASE}/bin/mpirun:${PORTSDIR}/net/mpich2
BUILD_DEPENDS+= ${LOCALBASE}/bin/mpicc:${PORTSDIR}/net/mpich2
RUN_DEPENDS+= ${LOCALBASE}/bin/mpirun:${PORTSDIR}/net/mpich2
MPICC= ${LOCALBASE}/bin/mpicc
.endif

View File

@ -19,7 +19,7 @@ LICENSE= GPLv2 LGPL21
LICENSE_COMB= multi
.if defined (WITH_METIS)
LIB_DEPENDS= metis:${PORTSDIR}/math/metis
LIB_DEPENDS= metis.1:${PORTSDIR}/math/metis4
RESTRICTED= GPL and METIS licenses are contradictory
.endif

View File

@ -7,7 +7,7 @@
PORTNAME= taucs
PORTVERSION= 2.2
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= math
MASTER_SITES= http://www.tau.ac.il/~stoledo/taucs/${PORTVERSION}/
DISTNAME= ${PORTNAME}
@ -16,7 +16,7 @@ EXTRACT_SUFX= .tgz
MAINTAINER= bf@FreeBSD.org
COMMENT= C library of sparse linear solvers
LIB_DEPENDS= metis.1:${PORTSDIR}/math/metis
LIB_DEPENDS= metis.1:${PORTSDIR}/math/metis4
HAS_CONFIGURE= yes
USE_FORTRAN= yes

View File

@ -67,11 +67,11 @@ MAN1= cs_io_dump.1 cs_partition.1 cs_preprocess-config.1 cs_preprocess.1
.include <bsd.port.pre.mk>
.if exists(${LOCALBASE}/bin/partdmesh)
# The regular metis is there, cannot depends on metis-edf
LIB_DEPENDS+= metis.1:${PORTSDIR}/math/metis
# The regular metis is present, so we cannot depend on metis-edf
LIB_DEPENDS+= metis.1:${PORTSDIR}/math/metis4
.else
# Prefer metis-edf to avoid conflict with Code_Aster
BUILD_DEPENDS+= ${LOCALBASE}/lib/libmetis.a:${PORTSDIR}/math/metis-edf
BUILD_DEPENDS+= ${LOCALBASE}/bin/onmetis.exe:${PORTSDIR}/math/metis-edf
.endif
.if ${ARCH} == "i386"

View File

@ -67,7 +67,7 @@ CONFIGURE_ARGS+= --with-mpi=no
.endif
.if defined(WITH_METIS)
LIB_DEPENDS+= metis:${PORTSDIR}/math/metis
LIB_DEPENDS+= metis.1:${PORTSDIR}/math/metis4
CONFIGURE_ARGS+= --with-metis=yes
CPPFLAGS+= -I${LOCALBASE}/include/metis
.else
@ -82,7 +82,7 @@ CONFIGURE_ARGS+= --with-chaco=no
.endif
.if defined(WITH_GINAC)
LIB_DEPENDS+= metis:${PORTSDIR}/math/metis \
LIB_DEPENDS+= metis.1:${PORTSDIR}/math/metis4 \
ginac:${PORTSDIR}/math/GiNaC
CONFIGURE_ARGS+= --with-ginac=yes
CPPFLAGS+= -I${LOCALBASE}/include/metis