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
> 

Reply via email to