I have some small nits but easier to fix those afterwards. One thing that does need doing now is @pkgpath math/arpack added to the top of PLIST-main. Otherwise OK sthen@
On 2022/05/22 21:02, Martin Reindl wrote: > So after some discussion and only a tiny wee bit more back-and-forth between > options with Stuart and Landry we decided it is best to just update the > existing port. > The diff below aims to do just that, as initially sought by Volker. > > Sorry it took so long. > > - new mpi option > - builds fine with mlpack, armadillo, igraph, octave, ensmallen > - parpack is not picked by any of the above > - no quirks or conflict markers necessary > - tested on arm64, amd64, armv7, hickups possible on sparc64 and macppc, but > I cannot test the latter two > > OK? > > -m > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/math/arpack/Makefile,v > retrieving revision 1.21 > diff -u -p -u -p -r1.21 Makefile > --- Makefile 11 Mar 2022 19:36:12 -0000 1.21 > +++ Makefile 21 May 2022 16:23:31 -0000 > @@ -1,43 +1,48 @@ > -COMMENT= solve large scale eigenvalue problems > +COMMENT-main = F77 subroutines for solving large scale eigenvalue > problems > +COMMENT-mpi = openmpi for arpack > > -DISTNAME= arpack96 > -PKGNAME= arpack-96 > -REVISION= 8 > -SHARED_LIBS= arpack 1.0 > -CATEGORIES= math > - > -HOMEPAGE= http://www.caam.rice.edu/software/ARPACK/ > - > -# BSD license (not in distfile) > -PERMIT_PACKAGE= Yes > - > -MASTER_SITES= ${HOMEPAGE}SRC/ > -DISTFILES= ${DISTNAME}.tar.gz patch.tar.gz ug.ps.gz > -DIST_SUBDIR= arpack > - > -MODULES= fortran > -MODFORTRAN_COMPILER = gfortran > -BUILD_DEPENDS= ${MODFORTRAN_BUILD_DEPENDS} > - > -LIB_DEPENDS = math/lapack \ > - math/blas > -WANTLIB = lapack>=1 blas>=1 m > - > -WRKDIST= ${WRKDIR}/ARPACK > -WRKSRC= ${WRKDIST}/SRC > -PICFLAG= -fPIC > -MAKE_FILE= ${FILESDIR}/Makefile > -MAKE_ENV= SHLIB_MAJOR=${LIBarpack_VERSION:R} \ > - SHLIB_MINOR=${LIBarpack_VERSION:E} \ > - FC="${MODFORTRAN_COMPILER} -cpp" \ > - CC=${MODFORTRAN_COMPILER} \ > - NOPROFILE=1 > -FAKE_FLAGS= LIBDIR=${LOCALBASE}/lib DEBUGLIBS=no > +GH_TAGNAME = 3.8.0 > +DISTNAME= arpack-ng-${GH_TAGNAME} > +PKGNAME= arpack-${GH_TAGNAME} > +GH_ACCOUNT = opencollab > +GH_PROJECT = arpack-ng > > -NO_TEST= Yes > +MULTI_PACKAGES = -main -mpi > +FLAVORS = no_mpi > +FLAVOR ?= > > -post-extract: > - @cd ${WRKDIST}/UTIL && mv *.f ${WRKSRC} > +SHARED_LIBS += arpack 2.0 > +SHARED_LIBS += parpack 1.0 > + > +CATEGORIES = math > + > +HOMEPAGE = https://github.com/opencollab/arpack-ng > + > +# BSD 3-Clause > +PERMIT_PACKAGE = Yes > + > +MODULES = fortran \ > + devel/cmake > + > +CONFIGURE_ARGS += -DBUILD_SHARED_LIBS:BOOL=ON \ > + -D ICB=ON > + > +LIB_DEPENDS-main = math/lapack \ > + math/blas > + > +WANTLIB += lapack blas m > + > +LIB_DEPENDS-mpi = devel/openmpi \ > + math/arpack,-main > + > +WANTLIB-mpi += ${WANTLIB} arpack execinfo pciaccess pthread util z > +WANTLIB-mpi += mpi mpi_mpifh mpi_usempi_ignore_tkr > +WANTLIB-mpi += mpi_usempif08 open-pal open-rte > + > +.include <bsd.port.arch.mk> > +.if ${BUILD_PACKAGES:M-mpi} > +CONFIGURE_ARGS += -D MPI=ON > +.endif > > post-install: > .for i in BAND COMPLEX NONSYM SIMPLE SVD SYM > @@ -49,7 +54,6 @@ post-install: > ${PREFIX}/share/examples/arpack > ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/arpack > ${INSTALL_DATA} ${WRKDIST}/DOCUMENTS/* ${PREFIX}/share/doc/arpack > - ${INSTALL_DATA} ${WRKDIR}/ug.ps ${PREFIX}/share/doc/arpack > - ${INSTALL_DATA} ${FILESDIR}/LICENSE ${PREFIX}/share/doc/arpack > + ${INSTALL_DATA} ${WRKDIST}/COPYING ${PREFIX}/share/doc/arpack > > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /cvs/ports/math/arpack/distinfo,v > retrieving revision 1.4 > diff -u -p -u -p -r1.4 distinfo > --- distinfo 18 Jan 2015 03:14:26 -0000 1.4 > +++ distinfo 21 May 2022 16:23:31 -0000 > @@ -1,6 +1,2 @@ > -SHA256 (arpack/arpack96.tar.gz) = > xqR+yjCiVsuuYOacYGJRuEtqDzUrpSey3L1Hic6F7Pw= > -SHA256 (arpack/patch.tar.gz) = r4kU1gr0fkn7rVWBLQpdCnBA+6kMk+XvGo2I0yAn060= > -SHA256 (arpack/ug.ps.gz) = /x+qx0v8QkQpVZBhMnVuzX8ANIA4mNUH29G8lg9vSrA= > -SIZE (arpack/arpack96.tar.gz) = 636865 > -SIZE (arpack/patch.tar.gz) = 226473 > -SIZE (arpack/ug.ps.gz) = 248543 > +SHA256 (arpack-ng-3.8.0.tar.gz) = > raWus4eIdDgzByOckjW3FqihcMbQlqZiW/1SmETfAD0= > +SIZE (arpack-ng-3.8.0.tar.gz) = 1014494 > Index: patches/patch-SRC_second_f > =================================================================== > RCS file: patches/patch-SRC_second_f > diff -N patches/patch-SRC_second_f > --- patches/patch-SRC_second_f 11 Mar 2022 19:36:12 -0000 1.2 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,12 +0,0 @@ > -Index: SRC/second.f > ---- SRC/second.f.orig > -+++ SRC/second.f > -@@ -21,7 +21,7 @@ > - * .. > - * .. External Functions .. > - REAL ETIME > -- EXTERNAL ETIME > -+* EXTERNAL ETIME > - * .. > - * .. Executable Statements .. > - * > Index: pkg/DESCR-main > =================================================================== > RCS file: pkg/DESCR-main > diff -N pkg/DESCR-main > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/DESCR-main 21 May 2022 16:23:31 -0000 > @@ -0,0 +1,32 @@ > +ARPACK is a collection of Fortran77 subroutines designed to solve large > +scale eigenvalue problems. > +It is a fork of the Rice University ARPACK, that was created as a joint > project > +between Debian, Octave and Scilab and is now a community project maintained > by > +a few volunteers. > + > +The package is designed to compute a few eigenvalues and corresponding > +eigenvectors of a general n by n matrix A. It is most appropriate for > +large sparse or structured matrices A where structured means that a > +matrix-vector product w <- Av requires order n rather than the usual > +order n2 floating point operations. This software is based upon an > +algorithmic variant of the Arnoldi process called the Implicitly > +Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it > +reduces to a variant of the Lanczos process called the Implicitly > +Restarted Lanczos Method (IRLM). These variants may be viewed as a > +synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR > +technique that is suitable for large scale problems. For many standard > +problems, a matrix factorization is not required. Only the action of the > +matrix on a vector is needed. > + > +ARPACK software is capable of solving large scale symmetric, > +nonsymmetric, and generalized eigenproblems from significant application > +areas. The software is designed to compute a few (k) eigenvalues with > +user specified features such as those of largest real part or largest > +magnitude. Storage requirements are on the order of n*k locations. No > +auxiliary storage is required. A set of Schur basis vectors for the > +desired k-dimensional eigen-space is computed which is numerically > +orthogonal to working precision. Numerically accurate eigenvectors are > +available on request. > + > +Flavors: > + mpi - Build with OpenMPI support > Index: pkg/DESCR-mpi > =================================================================== > RCS file: pkg/DESCR-mpi > diff -N pkg/DESCR-mpi > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/DESCR-mpi 21 May 2022 16:23:31 -0000 > @@ -0,0 +1 @@ > +openmpi support for arpack > Index: pkg/PLIST-main > =================================================================== > RCS file: pkg/PLIST-main > diff -N pkg/PLIST-main > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/PLIST-main 21 May 2022 16:23:31 -0000 > @@ -0,0 +1,125 @@ > +include/arpack/ > +include/arpack/arpack.h > +include/arpack/arpack.hpp > +include/arpack/arpackdef.h > +include/arpack/arpackicb.h > +include/arpack/debug.h > +include/arpack/debug_c.h > +include/arpack/debug_c.hpp > +include/arpack/stat.h > +include/arpack/stat_c.h > +include/arpack/stat_c.hpp > +lib/cmake/ > +lib/cmake/arpack-ng/ > +lib/cmake/arpack-ng/arpack-ng-config-version.cmake > +lib/cmake/arpack-ng/arpack-ng-config.cmake > +@lib lib/libarpack.so.${LIBarpack_VERSION} > +lib/pkgconfig/arpack.pc > +share/doc/arpack/ > +share/doc/arpack/COPYING > +share/doc/arpack/README > +share/doc/arpack/debug.doc > +share/doc/arpack/ex-complex.doc > +share/doc/arpack/ex-nonsym.doc > +share/doc/arpack/ex-sym.doc > +share/doc/arpack/stat.doc > +share/examples/arpack/ > +share/examples/arpack/BAND/ > +share/examples/arpack/BAND/Makefile.am > +share/examples/arpack/BAND/README > +share/examples/arpack/BAND/cnband.f > +share/examples/arpack/BAND/cnbdr1.f > +share/examples/arpack/BAND/cnbdr2.f > +share/examples/arpack/BAND/cnbdr3.f > +share/examples/arpack/BAND/cnbdr4.f > +share/examples/arpack/BAND/dnband.f > +share/examples/arpack/BAND/dnbdr1.f > +share/examples/arpack/BAND/dnbdr2.f > +share/examples/arpack/BAND/dnbdr3.f > +share/examples/arpack/BAND/dnbdr4.f > +share/examples/arpack/BAND/dnbdr5.f > +share/examples/arpack/BAND/dnbdr6.f > +share/examples/arpack/BAND/dsband.f > +share/examples/arpack/BAND/dsbdr1.f > +share/examples/arpack/BAND/dsbdr2.f > +share/examples/arpack/BAND/dsbdr3.f > +share/examples/arpack/BAND/dsbdr4.f > +share/examples/arpack/BAND/dsbdr5.f > +share/examples/arpack/BAND/dsbdr6.f > +share/examples/arpack/BAND/snband.f > +share/examples/arpack/BAND/snbdr1.f > +share/examples/arpack/BAND/snbdr2.f > +share/examples/arpack/BAND/snbdr3.f > +share/examples/arpack/BAND/snbdr4.f > +share/examples/arpack/BAND/snbdr5.f > +share/examples/arpack/BAND/snbdr6.f > +share/examples/arpack/BAND/ssband.f > +share/examples/arpack/BAND/ssbdr1.f > +share/examples/arpack/BAND/ssbdr2.f > +share/examples/arpack/BAND/ssbdr3.f > +share/examples/arpack/BAND/ssbdr4.f > +share/examples/arpack/BAND/ssbdr5.f > +share/examples/arpack/BAND/ssbdr6.f > +share/examples/arpack/BAND/znband.f > +share/examples/arpack/BAND/znbdr1.f > +share/examples/arpack/BAND/znbdr2.f > +share/examples/arpack/BAND/znbdr3.f > +share/examples/arpack/BAND/znbdr4.f > +share/examples/arpack/COMPLEX/ > +share/examples/arpack/COMPLEX/Makefile.am > +share/examples/arpack/COMPLEX/README > +share/examples/arpack/COMPLEX/cndrv1.f > +share/examples/arpack/COMPLEX/cndrv2.f > +share/examples/arpack/COMPLEX/cndrv3.f > +share/examples/arpack/COMPLEX/cndrv4.f > +share/examples/arpack/COMPLEX/zndrv1.f > +share/examples/arpack/COMPLEX/zndrv2.f > +share/examples/arpack/COMPLEX/zndrv3.f > +share/examples/arpack/COMPLEX/zndrv4.f > +share/examples/arpack/NONSYM/ > +share/examples/arpack/NONSYM/Makefile.am > +share/examples/arpack/NONSYM/README > +share/examples/arpack/NONSYM/dndrv1.f > +share/examples/arpack/NONSYM/dndrv2.f > +share/examples/arpack/NONSYM/dndrv3.f > +share/examples/arpack/NONSYM/dndrv4.f > +share/examples/arpack/NONSYM/dndrv5.f > +share/examples/arpack/NONSYM/dndrv6.f > +share/examples/arpack/NONSYM/sndrv1.f > +share/examples/arpack/NONSYM/sndrv2.f > +share/examples/arpack/NONSYM/sndrv3.f > +share/examples/arpack/NONSYM/sndrv4.f > +share/examples/arpack/NONSYM/sndrv5.f > +share/examples/arpack/NONSYM/sndrv6.f > +share/examples/arpack/README > +share/examples/arpack/SIMPLE/ > +share/examples/arpack/SIMPLE/Makefile.am > +share/examples/arpack/SIMPLE/README > +share/examples/arpack/SIMPLE/cnsimp.f > +share/examples/arpack/SIMPLE/debug.h > +share/examples/arpack/SIMPLE/dnsimp.f > +share/examples/arpack/SIMPLE/dssimp.f > +share/examples/arpack/SIMPLE/snsimp.f > +share/examples/arpack/SIMPLE/sssimp.f > +share/examples/arpack/SIMPLE/znsimp.f > +share/examples/arpack/SVD/ > +share/examples/arpack/SVD/Makefile.am > +share/examples/arpack/SVD/README > +share/examples/arpack/SVD/debug.h > +share/examples/arpack/SVD/dsvd.f > +share/examples/arpack/SVD/ssvd.f > +share/examples/arpack/SYM/ > +share/examples/arpack/SYM/Makefile.am > +share/examples/arpack/SYM/README > +share/examples/arpack/SYM/dsdrv1.f > +share/examples/arpack/SYM/dsdrv2.f > +share/examples/arpack/SYM/dsdrv3.f > +share/examples/arpack/SYM/dsdrv4.f > +share/examples/arpack/SYM/dsdrv5.f > +share/examples/arpack/SYM/dsdrv6.f > +share/examples/arpack/SYM/ssdrv1.f > +share/examples/arpack/SYM/ssdrv2.f > +share/examples/arpack/SYM/ssdrv3.f > +share/examples/arpack/SYM/ssdrv4.f > +share/examples/arpack/SYM/ssdrv5.f > +share/examples/arpack/SYM/ssdrv6.f > Index: pkg/PLIST-mpi > =================================================================== > RCS file: pkg/PLIST-mpi > diff -N pkg/PLIST-mpi > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ pkg/PLIST-mpi 21 May 2022 16:23:31 -0000 > @@ -0,0 +1,4 @@ > +include/arpack/parpack.h > +include/arpack/parpack.hpp > +@lib lib/libparpack.so.${LIBparpack_VERSION} > +lib/pkgconfig/parpack.pc >