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

Reply via email to