Page MenuHomeFreeBSD

[NEW PORT] sysutils/mpifileutils: MPI parallel file utilities for high scalability on large filesystems.
Needs ReviewPublic

Authored by rikka.goering_outlook.de on Dec 15 2025, 4:56 AM.
Tags
None
Referenced Files
F143988337: D54230.diff
Tue, Feb 3, 12:41 AM
Unknown Object (File)
Sat, Jan 31, 2:05 PM
Unknown Object (File)
Fri, Jan 23, 2:14 PM
Unknown Object (File)
Sat, Jan 17, 8:16 AM
Unknown Object (File)
Sat, Jan 17, 3:14 AM
Unknown Object (File)
Wed, Jan 14, 5:55 PM
Unknown Object (File)
Wed, Jan 14, 5:55 PM
Unknown Object (File)
Wed, Jan 14, 12:43 PM
Subscribers

Details

Reviewers
None
Group Reviewers
Contributor Reviewers (ports)
Ports Committers
Summary

FileUtils provides a library (libmfu) and a suite of MPI-parallel file
utilities such as dcp (parallel copy), dcmp (compare), ddup (duplicate finder),
dfind, dtar/dbz2, dchmod, and more. Designed for high scalability on large
filesystems.

PR: 291679
Dependency Tree: https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=291679&hide_resolved=1

Signed off-by: GenericRikka (rikka.goering@outlook.de)

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

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 69260
Build 66143: arc lint + arc unit

Event Timeline

  • removed DISTNAME from Makefile because of redundancy.

A quick question: most of the patches seem good to be submitted to the upstream. Is there a plan to do so?

A quick question: most of the patches seem good to be submitted to the upstream. Is there a plan to do so?

Yes — upstreaming is definitely the goal, and thank you for pointing that out.

Several of the patches in this series are already clean portability fixes (headers, API usage, format issues) and should be good upstream candidates as-is. A few others are more FreeBSD-oriented stopgaps for now (e.g. stubs or feature reductions where Linux-only APIs were used), and I’d like to refine those further before proposing them upstream so they’re acceptable and maintainable on all platforms.

This is the same approach I’ve been taking with sysutils/slurm-wlm: first get things building and usable on FreeBSD, then iterate and push the cleaned-up patches upstream once they’re in a good shape.

I do plan to submit the relevant patches upstream, and I’m very happy to adjust or split them further if that makes upstreaming easier.

Upstream PR opened: hpc/mpifileutils#664 (https://github.com/hpc/mpifileutils/pull/664)
It contains the portability patchset (xattr/fiemap/sysinfo guards + getdents fallback), keeping Linux behavior unchanged and using the static bz2 path on non-Linux.

mat added inline comments.
sysutils/mpifileutils/Makefile
20–21

Remove both lines, they're the default

sysutils/mpifileutils/pkg-descr
7

Remove, it's defined in the Makefile

rikka.goering_outlook.de marked 2 inline comments as done.
  • Removed redundand lines from Makefile and pkg-descr, according to review feedback

I've left some comments mostly geared towards trying to shape the patches into something that can be upstreamed- IMO we should probably avoid stylistic changes, and it's a good idea to consider up-front what the upstream project may want to see if one were to consider shedding the patches in their direction.

sysutils/mpifileutils/files/patch-src_common_mfu__bz2.c
10

Consider using a separate #if defined(__FreeBSD__) for this set

sysutils/mpifileutils/files/patch-src_common_mfu__bz2__static.c
26

Is this hunk necessary? It seems to just remove some comments

48

The below all seem to be largely whitespace changes that should go away for simpler maintenance

sysutils/mpifileutils/files/patch-src_common_mfu__flist__archive.c
29 ↗(On Diff #169455)

This seems like a reasonable place for an /* XXX Implement this specifically, since we do have equivalent functionality

sysutils/mpifileutils/files/patch-src_common_mfu__util.c
27

Ditto above, consider using defined(__FreeBSD__)

43

We do seem to have POSIX_FADV_SEQUENTIAL -- why did we need this?

sysutils/mpifileutils/files/patch-src_dbcast_dbcast.c
10

Ditto above about __FreeBSD__

sysutils/mpifileutils/files/patch-src_dbz2_dbz2.c
8

defined(__linux__) instead?

12

This should probably go away

sysutils/mpifileutils/files/patch-src_dcmp_dcmp.c
10

Ditto above

sysutils/mpifileutils/files/patch-src_dcp1_common.h
11

This hunk rmoves comments from a non-FreeBSD block?

23

This hunk doesn't seem to be useful

rikka.goering_outlook.de marked 12 inline comments as done.

Updated the port according to review feedback

Restored changes from first review push, which got overwritten by the second review push by accident