git: e0e6669de4a7 - main - sysutils/xnvme: Cross-platform libraries and tools for NVMe devices

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Fri, 24 Nov 2023 06:15:18 UTC
The branch main has been updated by fuz:

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

commit e0e6669de4a7e8b01a66116cfa9b2305c2ed0b5b
Author:     Karl Bonde Torp <k.torp@samsung.com>
AuthorDate: 2023-10-09 11:46:15 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-11-24 06:12:46 +0000

    sysutils/xnvme: Cross-platform libraries and tools for NVMe devices
    
    xNVMe provides the means to program and interact with NMe devices from user
    space. The foundation of xNVMe is libxnvme, a user space library for working
    with NVMe devices. It provides a C API for memory management, that is, for
    allocating physical / DMA transferable memory when needed. xNVMe is an NVMe
    command interface allowing you to submit and complete NVMe commands in a
    synchronous as well as an asynchronous manner.
    
    WWW: https://xnvme.io/
    
    Signed-off-by:  Karl Bonde Torp <k.torp@samsung.com>
    PR:             262032
---
 sysutils/Makefile        |   1 +
 sysutils/xnvme/Makefile  |  37 ++++++++
 sysutils/xnvme/distinfo  |   3 +
 sysutils/xnvme/pkg-descr |   6 ++
 sysutils/xnvme/pkg-plist | 223 +++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 270 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index ab68fac22dad..85064369f97a 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1644,6 +1644,7 @@
     SUBDIR += xin
     SUBDIR += xjobs
     SUBDIR += xmbmon
+    SUBDIR += xnvme
     SUBDIR += xorriso
     SUBDIR += xosview
     SUBDIR += xpipe
diff --git a/sysutils/xnvme/Makefile b/sysutils/xnvme/Makefile
new file mode 100644
index 000000000000..319092dde4cb
--- /dev/null
+++ b/sysutils/xnvme/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	xnvme
+DISTVERSION=	0.7.3
+CATEGORIES=	sysutils
+MASTER_SITES=	https://github.com/OpenMPDK/xNVMe/releases/download/v${DISTVERSION}/
+
+MAINTAINER=	k.torp@samsung.com
+COMMENT=	Cross-platform libraries and tools for NVMe devices
+WWW=		https://xnvme.io/
+
+LICENSE=	BSD3CLAUSE
+
+NOT_FOR_ARCHS=	armv7 i386
+NOT_FOR_ARCHS_REASON=	use of types with platform-specific length
+BROKEN_FreeBSD_12=	no member named 'aio_iov' in 'struct aiocb'
+
+USES=		meson
+USE_LDCONFIG=	yes
+
+MESON_ARGS=	-Dforce_completions=true \
+		-Dwith-libaio=disabled \
+		-Dwith-liburing=disabled \
+		-Dwith-libvfn=disabled \
+		-Dwith-spdk=false
+
+OPTIONS_DEFINE=		EXAMPLES TESTS TOOLS
+OPTIONS_DEFAULT=	TOOLS
+OPTIONS_SUB=		yes
+
+EXAMPLES_DESC=	Install the CLI example binaries
+TESTS_DESC=	Install the CLI test binaries
+TOOLS_DESC=	Install the CLI tool binaries
+
+EXAMPLES_MESON_TRUE=	examples
+TESTS_MESON_TRUE=	tests
+TOOLS_MESON_TRUE=	tools
+
+.include <bsd.port.mk>
diff --git a/sysutils/xnvme/distinfo b/sysutils/xnvme/distinfo
new file mode 100644
index 000000000000..1fd44be6530d
--- /dev/null
+++ b/sysutils/xnvme/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1700734543
+SHA256 (xnvme-0.7.3.tar.gz) = fb1b777e63ed2e6a256de6bd2718db346f6e78eb73ef188ff1aef526ce28f294
+SIZE (xnvme-0.7.3.tar.gz) = 31713546
diff --git a/sysutils/xnvme/pkg-descr b/sysutils/xnvme/pkg-descr
new file mode 100644
index 000000000000..6948be214f6e
--- /dev/null
+++ b/sysutils/xnvme/pkg-descr
@@ -0,0 +1,6 @@
+xNVMe provides the means to program and interact with NMe devices from user
+space. The foundation of xNVMe is libxnvme, a user space library for working
+with NVMe devices. It provides a C API for memory management, that is, for
+allocating physical / DMA transferable memory when needed. xNVMe is an NVMe
+command interface allowing you to submit and complete NVMe commands in a
+synchronous as well as an asynchronous manner.
diff --git a/sysutils/xnvme/pkg-plist b/sysutils/xnvme/pkg-plist
new file mode 100644
index 000000000000..c31c98bfb261
--- /dev/null
+++ b/sysutils/xnvme/pkg-plist
@@ -0,0 +1,223 @@
+%%TOOLS%%bin/kvs
+%%TOOLS%%bin/lblk
+%%TOOLS%%bin/xdd
+%%TOOLS%%bin/xnvme
+bin/xnvme-driver
+%%EXAMPLES%%bin/xnvme_dev
+%%EXAMPLES%%bin/xnvme_enum
+%%TOOLS%%bin/xnvme_file
+%%EXAMPLES%%bin/xnvme_hello
+%%EXAMPLES%%bin/xnvme_io_async
+%%EXAMPLES%%bin/xnvme_single_async
+%%EXAMPLES%%bin/xnvme_single_sync
+%%TESTS%%bin/xnvme_tests_async_intf
+%%TESTS%%bin/xnvme_tests_buf
+%%TESTS%%bin/xnvme_tests_cli
+%%TESTS%%bin/xnvme_tests_enum
+%%TESTS%%bin/xnvme_tests_ioworker
+%%TESTS%%bin/xnvme_tests_kvs
+%%TESTS%%bin/xnvme_tests_lblk
+%%TESTS%%bin/xnvme_tests_map
+%%TESTS%%bin/xnvme_tests_scc
+%%TESTS%%bin/xnvme_tests_xnvme_cli
+%%TESTS%%bin/xnvme_tests_xnvme_file
+%%TESTS%%bin/xnvme_tests_znd_append
+%%TESTS%%bin/xnvme_tests_znd_explicit_open
+%%TESTS%%bin/xnvme_tests_znd_state
+%%TESTS%%bin/xnvme_tests_znd_zrwa
+%%TOOLS%%bin/zoned
+%%EXAMPLES%%bin/zoned_io_async
+%%EXAMPLES%%bin/zoned_io_sync
+include/libxnvme.h
+include/libxnvme_adm.h
+include/libxnvme_be.h
+include/libxnvme_buf.h
+include/libxnvme_cli.h
+include/libxnvme_cmd.h
+include/libxnvme_dev.h
+include/libxnvme_file.h
+include/libxnvme_geo.h
+include/libxnvme_ident.h
+include/libxnvme_kvs.h
+include/libxnvme_lba.h
+include/libxnvme_libconf.h
+include/libxnvme_mem.h
+include/libxnvme_nvm.h
+include/libxnvme_opts.h
+include/libxnvme_pp.h
+include/libxnvme_queue.h
+include/libxnvme_spec.h
+include/libxnvme_spec_fs.h
+include/libxnvme_spec_pp.h
+include/libxnvme_topology.h
+include/libxnvme_util.h
+include/libxnvme_ver.h
+include/libxnvme_znd.h
+lib/libxnvme.a
+lib/libxnvme.so
+libdata/pkgconfig/xnvme.pc
+%%TOOLS%%man/man1/kvs-delete.1.gz
+%%TOOLS%%man/man1/kvs-enum.1.gz
+%%TOOLS%%man/man1/kvs-exist.1.gz
+%%TOOLS%%man/man1/kvs-idfy-ns.1.gz
+%%TOOLS%%man/man1/kvs-list.1.gz
+%%TOOLS%%man/man1/kvs-retrieve.1.gz
+%%TOOLS%%man/man1/kvs-store.1.gz
+%%TOOLS%%man/man1/kvs.1.gz
+%%TOOLS%%man/man1/lblk-dir-receive.1.gz
+%%TOOLS%%man/man1/lblk-dir-send.1.gz
+%%TOOLS%%man/man1/lblk-enum.1.gz
+%%TOOLS%%man/man1/lblk-idfy.1.gz
+%%TOOLS%%man/man1/lblk-info.1.gz
+%%TOOLS%%man/man1/lblk-read.1.gz
+%%TOOLS%%man/man1/lblk-write-dir.1.gz
+%%TOOLS%%man/man1/lblk-write-uncor.1.gz
+%%TOOLS%%man/man1/lblk-write-zeros.1.gz
+%%TOOLS%%man/man1/lblk-write.1.gz
+%%TOOLS%%man/man1/lblk.1.gz
+%%TOOLS%%man/man1/xdd-async.1.gz
+%%TOOLS%%man/man1/xdd-sync.1.gz
+%%TOOLS%%man/man1/xdd.1.gz
+%%TOOLS%%man/man1/xnvme-ctrlr-reset.1.gz
+%%TOOLS%%man/man1/xnvme-dsm.1.gz
+%%TOOLS%%man/man1/xnvme-enum.1.gz
+%%TOOLS%%man/man1/xnvme-fdp-ruhs.1.gz
+%%TOOLS%%man/man1/xnvme-fdp-ruhu.1.gz
+%%TOOLS%%man/man1/xnvme-feature-get.1.gz
+%%TOOLS%%man/man1/xnvme-feature-set.1.gz
+%%TOOLS%%man/man1/xnvme-format.1.gz
+%%TOOLS%%man/man1/xnvme-idfy-cs.1.gz
+%%TOOLS%%man/man1/xnvme-idfy-ctrlr.1.gz
+%%TOOLS%%man/man1/xnvme-idfy-ns.1.gz
+%%TOOLS%%man/man1/xnvme-idfy.1.gz
+%%TOOLS%%man/man1/xnvme-info.1.gz
+%%TOOLS%%man/man1/xnvme-library-info.1.gz
+%%TOOLS%%man/man1/xnvme-list.1.gz
+%%TOOLS%%man/man1/xnvme-log-erri.1.gz
+%%TOOLS%%man/man1/xnvme-log-fdp-config.1.gz
+%%TOOLS%%man/man1/xnvme-log-fdp-events.1.gz
+%%TOOLS%%man/man1/xnvme-log-fdp-stats.1.gz
+%%TOOLS%%man/man1/xnvme-log-health.1.gz
+%%TOOLS%%man/man1/xnvme-log-ruhu.1.gz
+%%TOOLS%%man/man1/xnvme-log.1.gz
+%%TOOLS%%man/man1/xnvme-ns-rescan.1.gz
+%%TOOLS%%man/man1/xnvme-padc.1.gz
+%%TOOLS%%man/man1/xnvme-pioc.1.gz
+%%TOOLS%%man/man1/xnvme-sanitize.1.gz
+%%TOOLS%%man/man1/xnvme-set-fdp-events.1.gz
+%%TOOLS%%man/man1/xnvme-show-regs.1.gz
+%%TOOLS%%man/man1/xnvme-subsystem-reset.1.gz
+%%TOOLS%%man/man1/xnvme.1.gz
+%%TOOLS%%man/man1/xnvme_file-copy-async.1.gz
+%%TOOLS%%man/man1/xnvme_file-copy-sync.1.gz
+%%TOOLS%%man/man1/xnvme_file-dump-async-iovec.1.gz
+%%TOOLS%%man/man1/xnvme_file-dump-async.1.gz
+%%TOOLS%%man/man1/xnvme_file-dump-sync-iovec.1.gz
+%%TOOLS%%man/man1/xnvme_file-dump-sync.1.gz
+%%TOOLS%%man/man1/xnvme_file-load-async.1.gz
+%%TOOLS%%man/man1/xnvme_file-load-sync.1.gz
+%%TOOLS%%man/man1/xnvme_file-write-read.1.gz
+%%TOOLS%%man/man1/xnvme_file.1.gz
+%%EXAMPLES%%man/man1/xnvme_hello-hw.1.gz
+%%EXAMPLES%%man/man1/xnvme_hello.1.gz
+%%EXAMPLES%%man/man1/xnvme_io_async-read.1.gz
+%%EXAMPLES%%man/man1/xnvme_io_async-write.1.gz
+%%EXAMPLES%%man/man1/xnvme_io_async.1.gz
+%%TESTS%%man/man1/xnvme_tests_async_intf-init_term.1.gz
+%%TESTS%%man/man1/xnvme_tests_async_intf.1.gz
+%%TESTS%%man/man1/xnvme_tests_buf-buf_alloc_free.1.gz
+%%TESTS%%man/man1/xnvme_tests_buf-buf_virt_alloc_free.1.gz
+%%TESTS%%man/man1/xnvme_tests_buf.1.gz
+%%TESTS%%man/man1/xnvme_tests_cli-optional.1.gz
+%%TESTS%%man/man1/xnvme_tests_cli.1.gz
+%%TESTS%%man/man1/xnvme_tests_enum-backend.1.gz
+%%TESTS%%man/man1/xnvme_tests_enum-multi.1.gz
+%%TESTS%%man/man1/xnvme_tests_enum-open.1.gz
+%%TESTS%%man/man1/xnvme_tests_enum.1.gz
+%%TESTS%%man/man1/xnvme_tests_ioworker-verify-sync.1.gz
+%%TESTS%%man/man1/xnvme_tests_ioworker-verify.1.gz
+%%TESTS%%man/man1/xnvme_tests_ioworker.1.gz
+%%TESTS%%man/man1/xnvme_tests_kvs-kvs_io.1.gz
+%%TESTS%%man/man1/xnvme_tests_kvs.1.gz
+%%TESTS%%man/man1/xnvme_tests_lblk-io.1.gz
+%%TESTS%%man/man1/xnvme_tests_lblk-scopy.1.gz
+%%TESTS%%man/man1/xnvme_tests_lblk-write_uncorrectable.1.gz
+%%TESTS%%man/man1/xnvme_tests_lblk-write_zeroes.1.gz
+%%TESTS%%man/man1/xnvme_tests_lblk.1.gz
+%%TESTS%%man/man1/xnvme_tests_map-mem_map_unmap.1.gz
+%%TESTS%%man/man1/xnvme_tests_map.1.gz
+%%TESTS%%man/man1/xnvme_tests_scc-idfy.1.gz
+%%TESTS%%man/man1/xnvme_tests_scc-scopy-msrc.1.gz
+%%TESTS%%man/man1/xnvme_tests_scc-scopy.1.gz
+%%TESTS%%man/man1/xnvme_tests_scc-support.1.gz
+%%TESTS%%man/man1/xnvme_tests_scc.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_cli-check-opt-attr.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_cli-copy-xnvme_cli_run.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_cli.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_file-file-trunc.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_file-write-fsync.1.gz
+%%TESTS%%man/man1/xnvme_tests_xnvme_file.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_append-verify.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_append.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_explicit_open-test_open_zdptr.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_explicit_open.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_state-changes.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_state-transition.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_state.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush-explicit.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush-implicit.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-flush.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-idfy.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-open-with-zrwa.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-open-without-zrwa.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa-support.1.gz
+%%TESTS%%man/man1/xnvme_tests_znd_zrwa.1.gz
+%%TOOLS%%man/man1/zoned-append.1.gz
+%%TOOLS%%man/man1/zoned-changes.1.gz
+%%TOOLS%%man/man1/zoned-enum.1.gz
+%%TOOLS%%man/man1/zoned-errors.1.gz
+%%TOOLS%%man/man1/zoned-idfy-ctrlr.1.gz
+%%TOOLS%%man/man1/zoned-idfy-ns.1.gz
+%%TOOLS%%man/man1/zoned-info.1.gz
+%%TOOLS%%man/man1/zoned-mgmt-close.1.gz
+%%TOOLS%%man/man1/zoned-mgmt-finish.1.gz
+%%TOOLS%%man/man1/zoned-mgmt-open.1.gz
+%%TOOLS%%man/man1/zoned-mgmt-reset.1.gz
+%%TOOLS%%man/man1/zoned-mgmt.1.gz
+%%TOOLS%%man/man1/zoned-read.1.gz
+%%TOOLS%%man/man1/zoned-report.1.gz
+%%TOOLS%%man/man1/zoned-write.1.gz
+%%TOOLS%%man/man1/zoned.1.gz
+%%EXAMPLES%%man/man1/zoned_io_async-append.1.gz
+%%EXAMPLES%%man/man1/zoned_io_async-read.1.gz
+%%EXAMPLES%%man/man1/zoned_io_async-write.1.gz
+%%EXAMPLES%%man/man1/zoned_io_async.1.gz
+%%EXAMPLES%%man/man1/zoned_io_sync-append.1.gz
+%%EXAMPLES%%man/man1/zoned_io_sync-read.1.gz
+%%EXAMPLES%%man/man1/zoned_io_sync-write.1.gz
+%%EXAMPLES%%man/man1/zoned_io_sync.1.gz
+%%TOOLS%%share/bash-completion/completions/kvs-completions
+%%TOOLS%%share/bash-completion/completions/lblk-completions
+%%TOOLS%%share/bash-completion/completions/xdd-completions
+%%TOOLS%%share/bash-completion/completions/xnvme-completions
+%%TOOLS%%share/bash-completion/completions/xnvme_file-completions
+%%EXAMPLES%%share/bash-completion/completions/xnvme_hello-completions
+%%EXAMPLES%%share/bash-completion/completions/xnvme_io_async-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_async_intf-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_buf-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_cli-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_enum-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_ioworker-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_kvs-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_lblk-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_map-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_scc-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_xnvme_cli-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_xnvme_file-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_append-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_explicit_open-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_state-completions
+%%TESTS%%share/bash-completion/completions/xnvme_tests_znd_zrwa-completions
+%%TOOLS%%share/bash-completion/completions/zoned-completions
+%%EXAMPLES%%share/bash-completion/completions/zoned_io_async-completions
+%%EXAMPLES%%share/bash-completion/completions/zoned_io_sync-completions