git: 31f202308a02 - main - sysutils/ior: New port: IOR and mdtest, parallel IO storage benchmark

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 20 Jan 2023 09:01:29 UTC
The branch main has been updated by yuri:

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

commit 31f202308a02a266aea71df8672e8ff2f0e9848c
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-20 09:00:59 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-20 09:01:26 +0000

    sysutils/ior: New port: IOR and mdtest, parallel IO storage benchmark
---
 sysutils/Makefile                        |  1 +
 sysutils/ior/Makefile                    | 31 +++++++++++++++++++++++++++++++
 sysutils/ior/distinfo                    |  3 +++
 sysutils/ior/files/patch-configure.ac    | 11 +++++++++++
 sysutils/ior/files/patch-src_utilities.c | 11 +++++++++++
 sysutils/ior/pkg-descr                   |  6 ++++++
 6 files changed, 63 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 411ea575708f..2d12c50c426e 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -569,6 +569,7 @@
     SUBDIR += iograph
     SUBDIR += iohyve
     SUBDIR += ioping
+    SUBDIR += ior
     SUBDIR += ipa
     SUBDIR += ipad_charge
     SUBDIR += ipdbtools
diff --git a/sysutils/ior/Makefile b/sysutils/ior/Makefile
new file mode 100644
index 000000000000..3778958fc355
--- /dev/null
+++ b/sysutils/ior/Makefile
@@ -0,0 +1,31 @@
+PORTNAME=	ior
+DISTVERSION=	3.3.0-20230112
+CATEGORIES=	sysutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	IOR and mdtest, parallel IO storage benchmark
+WWW=		https://github.com/hpc/ior
+
+LICENSE=	GPLv2
+
+USES=		autoreconf gmake localbase:ldflags mpi:mpich pkgconfig
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	hpc
+GH_TAGNAME=	24d5d41
+
+GNU_CONFIGURE=	yes
+
+TEST_TARGET=	check
+
+PLIST_FILES=	bin/ior \
+		bin/md-workbench \
+		bin/mdtest \
+		man/man1/mdtest.1.gz
+
+post-install: # see https://github.com/hpc/ior/issues/454
+	@${RM} \
+		${STAGEDIR}${PREFIX}/lib/libaiori.a \
+		${STAGEDIR}${PREFIX}/share/USER_GUIDE
+
+.include <bsd.port.mk>
diff --git a/sysutils/ior/distinfo b/sysutils/ior/distinfo
new file mode 100644
index 000000000000..c67af6ad00c8
--- /dev/null
+++ b/sysutils/ior/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1674200636
+SHA256 (hpc-ior-3.3.0-20230112-24d5d41_GH0.tar.gz) = 6bf404b27269e607c5f1d562a430cbdefd05da3f7cfe2ba4b3f53e6f0ae77654
+SIZE (hpc-ior-3.3.0-20230112-24d5d41_GH0.tar.gz) = 561821
diff --git a/sysutils/ior/files/patch-configure.ac b/sysutils/ior/files/patch-configure.ac
new file mode 100644
index 000000000000..aef9a0ddc960
--- /dev/null
+++ b/sysutils/ior/files/patch-configure.ac
@@ -0,0 +1,11 @@
+--- configure.ac.orig	2023-01-20 07:54:41 UTC
++++ configure.ac
+@@ -145,7 +145,7 @@ AM_COND_IF([HAVE_GPU_DIRECT],[
+ # Check for system capabilities
+ AC_SYS_LARGEFILE
+ 
+-AC_DEFINE([_XOPEN_SOURCE], [700], [C99 compatibility])
++#AC_DEFINE([_XOPEN_SOURCE], [700], [C99 compatibility])
+ 
+ # Check for lustre availability
+ AC_ARG_WITH([lustre],
diff --git a/sysutils/ior/files/patch-src_utilities.c b/sysutils/ior/files/patch-src_utilities.c
new file mode 100644
index 000000000000..bfc5e99e8b8c
--- /dev/null
+++ b/sysutils/ior/files/patch-src_utilities.c
@@ -0,0 +1,11 @@
+--- src/utilities.c.orig	2023-01-20 07:46:47 UTC
++++ src/utilities.c
+@@ -45,7 +45,7 @@
+ #  include <regex.h>
+ #  ifdef __sun                    /* SunOS does not support statfs(), instead uses statvfs() */
+ #    include <sys/statvfs.h>
+-#  elif (defined __APPLE__)
++#  elif (defined __APPLE__) || (defined __FreeBSD__)
+ #    include <sys/param.h>
+ #    include <sys/mount.h>
+ #  else                           /* ! __sun  or __APPLE__ */
diff --git a/sysutils/ior/pkg-descr b/sysutils/ior/pkg-descr
new file mode 100644
index 000000000000..2928d2a18d02
--- /dev/null
+++ b/sysutils/ior/pkg-descr
@@ -0,0 +1,6 @@
+IOR is a parallel IO benchmark that can be used to test the performance of
+parallel storage systems using various interfaces and access patterns. The IOR
+repository also includes the mdtest benchmark which specifically tests the peak
+metadata rates of storage systems under different directory structures. Both
+benchmarks use a common parallel I/O abstraction backend and rely on MPI for
+synchronization.