Bug 291588 - [NEW PORT] devel/dtcmp: Datatype comparison library for MPI
Summary: [NEW PORT] devel/dtcmp: Datatype comparison library for MPI
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Vladimir Druzenko
URL: https://github.com/llnl/dtcmp
Keywords:
Depends on: 291587
Blocks: 291679
  Show dependency treegraph
 
Reported: 2025-12-11 22:22 UTC by Generic Rikka
Modified: 2026-04-15 13:42 UTC (History)
1 user (show)

See Also:


Attachments
new port devel/dtcmp (v1.1.5) (2.85 KB, patch)
2025-12-11 22:22 UTC, Generic Rikka
no flags Details | Diff
new port devel/dtcmp (v1.1.5) (2.99 KB, patch)
2025-12-17 23:34 UTC, Generic Rikka
no flags Details | Diff
v2: [NEW PORT] devel/dtcmp: MPI datatype comparison library (3.24 KB, patch)
2026-04-12 22:40 UTC, Generic Rikka
no flags Details | Diff
v3: [NEW PORT] devel/dtcmp: MPI datatype comparison library (3.28 KB, patch)
2026-04-12 23:12 UTC, Generic Rikka
no flags Details | Diff
v3: [NEW PORT] devel/dtcmp: MPI datatype comparison library (3.60 KB, patch)
2026-04-15 01:59 UTC, Generic Rikka
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Generic Rikka 2025-12-11 22:22:09 UTC
Hi,

I’d like to add a new port devel/dtcmp, the DTCMP datatype comparison library from LLNL. DTCMP implements fast, scalable comparison-based operations on MPI datatypes, such as sorting and key/value reductions, and is built on top of lwgrp.

This port depends on devel/lwgrp and is another prerequisite for sysutils/mpifileutils, which I’m currently porting as part of the FreeBSD HPC modernization work.

Port details
- Upstream: LLNL / GitHub (tag v1.1.5)
- Links against devel/lwgrp via --with-lwgrp=${LOCALBASE}
- Uses the MPI compiler wrapper (MPICC)
- Installs shared library, header, and pkg-config file
- Optional DOCS (installs README into ${DOCSDIR})

QA
- make stage-qa [ok]
- make check-plist [ok]
- portfmt -D Makefile [ok]
- portlint -AC [ok]
- portclippy Makefile [ok]
- poudriere testport [ok]

Maintainer: rikka.goering@outlook.de

Patch attached as a git-format patch.
Comment 1 Generic Rikka 2025-12-11 22:22:48 UTC
Created attachment 266111 [details]
new port devel/dtcmp (v1.1.5)
Comment 2 Generic Rikka 2025-12-17 23:34:02 UTC
Created attachment 266312 [details]
new port devel/dtcmp (v1.1.5)

Minor Makefile styling update
Comment 3 Vladimir Druzenko freebsd_committer freebsd_triage 2026-04-08 23:11:01 UTC
Replace USE_GITHUB=yes with MASTER_SITES here too.
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2026-04-11 23:12:06 UTC
PORTNAME=       dtcmp
DISTVERSION=    1.1.5
CATEGORIES=     devel parallel
MASTER_SITES=   https://github.com/llnl/${PORTNAME}/releases/download/v${DISTVERSION}/

MAINTAINER=     rikka.goering@outlook.de
COMMENT=        Datatype comparison library for MPI (LLNL)
WWW=            https://github.com/llnl/dtcmp/

LICENSE=        BSD3CLAUSE
LICENSE_FILE=   ${WRKSRC}/LICENSE.TXT

LIB_DEPENDS=    liblwgrp.so:devel/lwgrp

USES=           libtool localbase mpi:openmpi pathfix pkgconfig
USE_LDCONFIG=   yes

GNU_CONFIGURE=  yes
CONFIGURE_ARGS= --enable-shared \
                --enable-static \
                --with-lwgrp=${LOCALBASE}
CONFIGURE_ENV=  CC=${MPICC}
INSTALL_TARGET= install-strip
TEST_TARGET=    check

PORTDOCS=       README.md

OPTIONS_DEFINE= DOCS

post-install-DOCS-on:
        @${MKDIR} ${STAGEDIR}${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}

post-install:
        ${RM} -r ${STAGEDIR}${DATADIR}

.include <bsd.port.mk>

Same here:
Library with wrong soname "libdtcmp.so" without version.
I don't know how to fix this.
Comment 5 Generic Rikka 2026-04-12 22:40:12 UTC
Created attachment 269689 [details]
v2: [NEW PORT] devel/dtcmp: MPI datatype comparison library

Applied the same fix here as in bug #291587
Comment 6 Generic Rikka 2026-04-12 23:12:19 UTC
Created attachment 269691 [details]
v3: [NEW PORT] devel/dtcmp: MPI datatype comparison library

Wrong patch, forgot updating pkg-plist in v2
Comment 7 Vladimir Druzenko freebsd_committer freebsd_triage 2026-04-13 01:55:59 UTC
PORTNAME=       dtcmp
DISTVERSION=    1.1.5
CATEGORIES=     devel parallel
MASTER_SITES=   https://github.com/llnl/${PORTNAME}/releases/download/v${DISTVERSION}/

MAINTAINER=     rikka.goering@outlook.de
COMMENT=        Datatype comparison library for MPI (LLNL)
WWW=            https://github.com/llnl/dtcmp/

LICENSE=        BSD3CLAUSE
LICENSE_FILE=   ${WRKSRC}/LICENSE.TXT

LIB_DEPENDS=    liblwgrp.so:devel/lwgrp

USES=           libtool localbase mpi:openmpi pathfix pkgconfig
USE_LDCONFIG=   yes

GNU_CONFIGURE=  yes
CONFIGURE_ARGS= --with-lwgrp=${LOCALBASE}
CONFIGURE_ENV=  CC=${MPICC}
INSTALL_TARGET= install-strip
TEST_TARGET=    check

PORTDOCS=       README.md

OPTIONS_DEFINE=         DOCS
OPTIONS_DEFAULT=        SHARED
OPTIONS_MULTI=          LIBS
OPTIONS_MULTI_LIBS=     SHARED STATIC
OPTIONS_SUB=            yes

SHARED_DESC=            Build shared libraries
STATIC_DESC=            Build static libraries

SHARED_CONFIGURE_ENABLE=        shared
STATIC_CONFIGURE_ENABLE=        static

do-install-DOCS-on:
        @${MKDIR} ${STAGEDIR}${DOCSDIR}
        ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}

post-install:
        ${RM} -r ${STAGEDIR}${DATADIR}

.include <bsd.port.mk>

include/dtcmp.h
%%STATIC%%lib/libdtcmp.a
%%SHARED%%lib/libdtcmp.so
%%SHARED%%lib/libdtcmp.so.0
%%SHARED%%lib/libdtcmp.so.0.0.0
libdata/pkgconfig/libdtcmp.pc

--- src/Makefile.in.orig        2023-10-12 22:17:26 UTC
+++ src/Makefile.in
@@ -443,7 +443,7 @@ libdtcmp_la_LIBADD = $(LWGRP_LDFLAGS) $(LWGRP_LIBS)

 libdtcmp_la_CFLAGS = $(INCLUDES)
 libdtcmp_la_LIBADD = $(LWGRP_LDFLAGS) $(LWGRP_LIBS)
-libdtcmp_la_LDFLAGS = -avoid-version
+libdtcmp_la_LDFLAGS = -version-info 0
 all: all-am

 .SUFFIXES:
Comment 8 Generic Rikka 2026-04-15 01:59:18 UTC
Created attachment 269786 [details]
v3: [NEW PORT] devel/dtcmp: MPI datatype comparison library

Updated patch according to review feedback:
 - added options for shared and static libraries
 - switched Makefile patching to Makefile.in to avoid autoreconf
 - switched version patching from -version-info 0:0:0 to -version-info 0
Comment 9 commit-hook freebsd_committer freebsd_triage 2026-04-15 13:39:07 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d57b770a7ca13e18fd4860264a59c9fa2fa66128

commit d57b770a7ca13e18fd4860264a59c9fa2fa66128
Author:     Generic Rikka <rikka.goering@outlook.de>
AuthorDate: 2026-04-15 13:17:30 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-04-15 13:37:45 +0000

    devel/dtcmp: New port: Datatype comparison library for MPI

    DTCMP provides fast, scalable comparison-based operations on MPI
    datatypes, including sorting and key/value reductions, built atop lwgrp.
    https://github.com/llnl/dtcmp/

    It is one of the dependencies for sysutils/mpifileutils.

    PR:             291588
    Sponsored by:   UNIS Labs
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>

 devel/Makefile                                |  1 +
 devel/dtcmp/Makefile (new)                    | 45 +++++++++++++++++++++++++++
 devel/dtcmp/distinfo (new)                    |  3 ++
 devel/dtcmp/files/patch-src_Makefile.in (new) | 11 +++++++
 devel/dtcmp/pkg-descr (new)                   |  2 ++
 devel/dtcmp/pkg-plist (new)                   |  6 ++++
 6 files changed, 68 insertions(+)
Comment 10 Vladimir Druzenko freebsd_committer freebsd_triage 2026-04-15 13:42:00 UTC
Thanks.