[Bug 291679] [NEW PORT] sysutils/mpifileutils: MPI parallel file utilities

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 15 Dec 2025 04:51:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291679

            Bug ID: 291679
           Summary: [NEW PORT] sysutils/mpifileutils: MPI parallel file
                    utilities
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: rikka.goering@outlook.de

Created attachment 266205
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=266205&action=edit
new port sysutils/mpifileutils (v.0.10.1)

Hi,

I'd like to submit a new port:

Port name: sysutils/mpifileutils
Upstream:  https://github.com/hpc/mpifileutils
License:   BSD-3-Clause
WWW:       https://hpc.github.io/mpifileutils/

Description:
mpifileutils is a suite of MPI-based tools to perform common
file and directory operations in parallel on large HPC systems.
It includes utilities such as dcp, dcmp, dsync, dstripe, and
others, designed for high-performance parallel filesystems.

Reason for adding this port:
mpifileutils is an important building block in modern HPC
environments, providing scalable file copy, comparison, and
verification tools that integrate well with MPI and parallel
storage. This port is part of my broader effort to improve
the HPC software stack on FreeBSD.

Tested configurations:
  - FreeBSD 14.3-RELEASE amd64
  - FreeBSD 15.0-RELEASE amd64
  - Poudriere bulk builds on the above

Optional dependencies and flavors:
  - Uses MPI (tested with OpenMPI
    – see Makefile OPTIONS for details)
  - BZ2 and zlib compression support
  - Lustre- and Linux-specific fast paths are disabled on FreeBSD;
    portable code paths are used instead.

Implementation notes:
  - Many upstream source files assume Linux-only headers and
    syscalls (e.g., <sys/sysinfo.h>, <linux/fs.h>, SYS_getdents,
    xattr APIs).
  - The port adds small, conditional patches to:
      * guard Linux-specific headers with #ifdef __linux__
      * provide FreeBSD-friendly compatibility macros for
        stat64/lstat64 and O_LARGEFILE where needed
      * prefer generic POSIX interfaces (getdents, struct stat, etc.)
        on non-Linux systems
      * disable Linux xattr / fiemap usage cleanly on FreeBSD while
        keeping core functionality intact
      * reuse the existing portable MPI-based bz2 compressor in
        place of the Linux+libcircle specific implementation where
        the Linux sysinfo(2) API is required

QA:
  - portlint -AC
  - poudriere testport for:
      * 14.3-RELEASE amd64
      * 15.0-RELEASE amd64
  - Basic runtime tests:
      * dcp / dcmp / dsync on small test trees
      * dbcast / dbz2 smoke tests

I attached the according patch to this comment.

-- 
You are receiving this mail because:
You are the assignee for the bug.