pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

openmpi: Rototill PLIST var docs



Module Name:	pkgsrc-wip
Committed By:	Greg Troxel <gdt%lexort.com@localhost>
Pushed By:	gdt
Date:		Tue Aug 2 19:50:53 2022 -0400
Changeset:	53a47e3b992e3501f517b3f4875ec863d4898abc

Modified Files:
	openmpi/Makefile
	openmpi/PLIST
	openmpi/TODO
	openmpi/options.mk

Log Message:
openmpi: Rototill PLIST var docs

  - Detangle and explain PLIST vars, in part.

  - assume f08 will work (it's 2022), and leave it for future work if
    not

  - put back etc items in PLIST, and add a TOOD to CONF_FILEize.

With this, I can build a binary package on NetBSD 9 amd64 with
PKG_DEVELOPER.  And pkglint is only about 30% as upset.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=53a47e3b992e3501f517b3f4875ec863d4898abc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 openmpi/Makefile   | 32 ++++++++++++++++++++++++++++----
 openmpi/PLIST      |  2 ++
 openmpi/TODO       | 16 ++++++++--------
 openmpi/options.mk |  5 +++--
 4 files changed, 41 insertions(+), 14 deletions(-)

diffs:
diff --git a/openmpi/Makefile b/openmpi/Makefile
index 621b10e745..b50c648fcf 100644
--- a/openmpi/Makefile
+++ b/openmpi/Makefile
@@ -12,7 +12,7 @@ LICENSE=	modified-bsd
 
 CONFLICTS=	mpich-[0-9]*
 
-USE_LANGUAGES=		c c++ fortran
+USE_LANGUAGES=		c c++
 USE_LIBTOOL=		yes
 USE_TOOLS+=		perl:run bash:run
 GNU_CONFIGURE=		yes
@@ -39,8 +39,23 @@ BUILDLINK_TRANSFORM=	rm:-fopenmp
 
 TEST_TARGET=	check
 
-PLIST_VARS+=	linux loadleveler oshmem pstattest shm
-PLIST_VARS+=	ignoretkr noignoretkr
+# openmpi has a large number of build options, and we must figure out
+# what is going to be discovered and enabled.  First, we describe each
+# PLIST var.
+
+# Unsurprisingly, files that are only produced on GNU/Linux systems.
+PLIST_VARS+=	linux
+# This controls if a single library is built, apparently only on Linux and AIX.
+PLIST_VARS+=	loadleveler
+# True if OpenSHMEM is enabled, perhaps currently only on Linux.
+PLIST_VARS+=	oshmem
+# \todo Explain.  Apparently built if !Linux.
+PLIST_VARS+=	pstattest
+# \todo Explain.  Not used in PLIST.
+PLIST_VARS+=	shm
+# \todo Explain.
+PLIST_VARS+=	ignoretkr
+PLIST_VARS+=	noignoretkr
 
 # \todo There are no PLIST entries with PLIST.shm
 
@@ -51,15 +66,21 @@ PLIST.shm=		yes
 PLIST.linux=		yes
 PLIST.loadleveler=	yes
 PLIST.oshmem=		yes
-PLIST.ignoretkr=	yes
 .elif ${OPSYS} == "AIX"
 PLIST.loadleveler=	yes
 .elif ${OPSYS} == "DragonFly" || ${OPSYS} == "FreeBSD" || \
     (${OPSYS} == "NetBSD" && exists(/var/shm))
 PLIST.shm=		yes
 .endif
+
 .if ${OPSYS} != "Linux"
 PLIST.pstattest=	yes
+.endif
+
+.if ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
+PLIST.ignoretkr=	yes
+.else
+# \todo Explain why on Darwin we don't set one of them.
 .  if ${OPSYS} != "Darwin"
 PLIST.noignoretkr=	yes
 .  endif
@@ -68,6 +89,9 @@ PLIST.noignoretkr=	yes
 REPLACE_PERL=	ompi/tools/wrappers/mpijavac.pl.in
 REPLACE_PERL+=	ompi/mca/common/monitoring/*.pl
 
+post-install:
+	echo "Move files in etc to examples and fix PLIST!"
+
 # Some people want pkgsrc to support multiple versions of MPI at once,
 # but this is not the standard approach.   This logic, or perhaps extracting
 # the variable from the built package, is needed in buildlink3.mk.
diff --git a/openmpi/PLIST b/openmpi/PLIST
index 9f4def9e0f..3e4d6a9a20 100644
--- a/openmpi/PLIST
+++ b/openmpi/PLIST
@@ -29,6 +29,8 @@ bin/profile2mat.pl
 ${PLIST.oshmem}bin/shmemcc
 ${PLIST.oshmem}bin/shmemfort
 ${PLIST.oshmem}bin/shmemrun
+etc/openmpi-default-hostfile
+etc/pmix-mca-params.conf
 include/mpi-ext.h
 include/mpi.h
 include/mpi_portable_platform.h
diff --git a/openmpi/TODO b/openmpi/TODO
index 7cb5c64e57..ecac7b89f0 100644
--- a/openmpi/TODO
+++ b/openmpi/TODO
@@ -1,14 +1,14 @@
 This is a candidate to replace the contents of parallel/openmpi.
 
-- Update API/ABI depends in buildlink3.mk; seems like it can't be right.
+- f90 is a default-on option, which seems right.  However fortran was
+  unconditionally in USE_LANGUAGES.  Test build with f90 off.
 
-- f90 is a default-on option, which seems right.  However fortran is
-  unconditionally in USE_LANGUAGES.  Either make it condition or
-  explain why.
+- Get consensus on lack of subprefix. 
 
-- Explain if the subprefix scheme depend on other MPI impls adopting
-  it.  Or is it just that one can install one non-prefixed, or N
-  prefixed, or at most one non-prefixed?
+- If not, explain if the subprefix scheme depend on other MPI impls
+  adopting it.  Or is it just that one can install one non-prefixed,
+  or N prefixed, or at most one non-prefixed?
 
-- PLIST errors, especially PLIST.ignoretkr related
+- PLIST errors, especially PLIST.ignoretkr related.
 
+- There are two files in etc which should be moved and be CONF_FILES.
diff --git a/openmpi/options.mk b/openmpi/options.mk
index ca0f3fca48..a677a423bb 100644
--- a/openmpi/options.mk
+++ b/openmpi/options.mk
@@ -16,10 +16,11 @@ PLIST_VARS+=		f08 f90 java sge
 USE_LANGUAGES+=		fortran
 GCC_REQD+=		4.7
 CONFIGURE_ARGS+=	--enable-mpi-fortran=yes
+# Enabling fortran builds for Fortran 90, and also for Fortran 08 if
+# the toolchain is good enough.  In 2022, start by assuming that
+# USE_LANGUAGES=fortran gets us a sufficiently modern compiler.
 PLIST.f90=		yes
-.  if ${OPSYS} == "Darwin" || ${OPSYS} == "Linux"
 PLIST.f08=		yes
-.  endif
 .else
 CONFIGURE_ARGS+=	--enable-mpi-fortran=no
 .endif


Home | Main Index | Thread Index | Old Index