aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2020-06-19 19:29:15 +0000
committerAlan Somers <asomers@FreeBSD.org>2020-06-19 19:29:15 +0000
commitaecf560ff7b06eabb78a06f68b0bb470f7e594a5 (patch)
tree3e05a7ed3280ef7a39480d0590fff749c9b3fe25
parent6ce663a762b96656915f3a7967cfc54a173bd731 (diff)
downloadports-aecf560ff7b06eabb78a06f68b0bb470f7e594a5.tar.gz
ports-aecf560ff7b06eabb78a06f68b0bb470f7e594a5.zip
net/nbdkit: new port
nbdkit is a toolkit for creating NBD servers Reviewed by: lwhsu, rgrimes Approved by: lwhsu (ports) Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D25354
Notes
Notes: svn path=/head/; revision=539673
-rw-r--r--net/Makefile1
-rw-r--r--net/nbdkit/Makefile70
-rw-r--r--net/nbdkit/distinfo3
-rw-r--r--net/nbdkit/files/patch-configure56
-rw-r--r--net/nbdkit/files/patch-plugins_info_Makefile.in14
-rw-r--r--net/nbdkit/files/patch-plugins_ssh_ssh.c10
-rw-r--r--net/nbdkit/pkg-descr20
-rw-r--r--net/nbdkit/pkg-plist130
8 files changed, 304 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index 2997c46954f0..0c0142d9d05d 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -476,6 +476,7 @@
SUBDIR += nats-streaming-server
SUBDIR += nats-top
SUBDIR += nbd-server
+ SUBDIR += nbdkit
SUBDIR += nc
SUBDIR += ncp
SUBDIR += ndisc6
diff --git a/net/nbdkit/Makefile b/net/nbdkit/Makefile
new file mode 100644
index 000000000000..7cd0aceae1c4
--- /dev/null
+++ b/net/nbdkit/Makefile
@@ -0,0 +1,70 @@
+# $FreeBSD$
+
+PORTNAME= nbdkit
+PORTVERSION= 1.20.2
+CATEGORIES= net
+# XXX Although nbdkit uses github for its homepage, the release tarballs served
+# by github haven't been through autoconf. So we must download the sources
+# from libguestfs.org instead.
+MASTER_SITES= http://download.libguestfs.org/${PORTNAME}/${PORTVERSION:R}-stable/
+
+MAINTAINER= asomers@FreeBSD.org
+COMMENT= NBD server toolkit with stable ABI and permissive license
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= bash:shells/bash
+
+USES= gmake libtool
+
+GNU_CONFIGURE= yes
+INSTALL_TARGET= install-strip
+TEST_TARGET= check
+
+# Rust consumers will download the Rust plugin from crates.io
+CONFIGURE_ARGS+= --disable-rust
+# These libraries does not exist on ports
+CONFIGURE_ARGS+= --without-libnbd
+CONFIGURE_ARGS+= --without-libguestfs
+# We could theoretically build these other plugins, if anybody cares to.
+CONFIGURE_ARGS+= --disable-ocaml
+CONFIGURE_ARGS+= --disable-tcl
+CONFIGURE_ARGS+= --disable-lua
+CONFIGURE_ARGS+= --disable-golang
+CONFIGURE_ARGS+= --disable-vddk
+CONFIGURE_ARGS+= --without-ext2
+CONFIGURE_ARGS+= --without-iso
+CONFIGURE_ARGS+= --without-linuxdisk
+USE_LDCONFIG= yes
+
+OPTIONS_DEFINE= CURL GNUTLS LIBVIRT LZMA MANPAGES PERL PYTHON RUBY SSH ZLIB
+GNUTLS_BUILD_DEPENDS= gnutls>0:security/gnutls
+GNUTLS_RUN_DEPENDS= gnutls>0:security/gnutls
+
+OPTIONS_DEFAULT= GNUTLS MANPAGES
+OPTIONS_SUB= yes
+
+CURL_BUILD_DEPENDS+= curl:ftp/curl
+CURL_BUILD_DEPENDS+= pkgconf:devel/pkgconf
+CURL_CONFIGURE_WITH= curl
+CURL_RUN_DEPENDS+= curl:ftp/curl
+LIBVIRT_CONFIGURE_WITH= libvirt
+LIBVIRT_LIB_DEPENDS= libvirt.so:devel/libvirt
+LZMA_BUILD_DEPENDS+= pkgconf:devel/pkgconf
+LZMA_CONFIGURE_WITH= liblzma
+LZMA_LIB_DEPENDS= liblzma.so:archivers/lzmalib
+MANPAGES_USE+= perl5=build
+MANPAGES_USES+= perl5
+PERL_CONFIGURE_ENABLE= perl
+PERL_USE+= perl5
+PYTHON_CONFIGURE_ENABLE= python
+PYTHON_USES+= python:3.3+
+RUBY_CONFIGURE_ENABLE= ruby
+RUBY_USE+= ruby
+SSH_CONFIGURE_WITH= ssh
+SSH_LIB_DEPENDS= libssh.so:security/libssh
+ZLIB_BUILD_DEPENDS+= pkgconf:devel/pkgconf
+ZLIB_CONFIGURE_WITH= zlib
+
+.include <bsd.port.mk>
diff --git a/net/nbdkit/distinfo b/net/nbdkit/distinfo
new file mode 100644
index 000000000000..b1dd83df488b
--- /dev/null
+++ b/net/nbdkit/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1592531771
+SHA256 (nbdkit-1.20.2.tar.gz) = b78a8b59e74284af6a34f8bcb97c42c5d8846dc59dc94a8f4538d8690953dd31
+SIZE (nbdkit-1.20.2.tar.gz) = 1783082
diff --git a/net/nbdkit/files/patch-configure b/net/nbdkit/files/patch-configure
new file mode 100644
index 000000000000..15d66aa2d192
--- /dev/null
+++ b/net/nbdkit/files/patch-configure
@@ -0,0 +1,56 @@
+--- configure.orig 2020-05-02 09:04:50 UTC
++++ configure
+@@ -911,6 +911,7 @@ enable_largefile
+ enable_gcc_warnings
+ with_iconv
+ with_tls_priority
++with_linuxdisk
+ enable_valgrind
+ enable_libfuzzer
+ enable_plugins
+@@ -1645,6 +1646,7 @@ Optional Packages:
+ compiler's sysroot if not specified).
+ --without-iconv don't try to link against iconv [default=check]
+ --with-tls-priority default TLS session priority string [default=NORMAL]
++ --without-linuxdisk disable linuxdisk plugin [default=check]
+ --without-curl disable curl plugin [default=check]
+ --without-ssh disable ssh plugin [default=check]
+ --without-iso disable iso plugin [default=check]
+@@ -18598,20 +18600,32 @@ done
+
+ fi
+
++
++# Check whether --with-linuxdisk was given.
++if test "${with_linuxdisk+set}" = set; then :
++ withval=$with_linuxdisk;
++else
++ with_linuxdisk=check
++fi
++
+ mke2fs_with_d=no
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mke2fs supporting the -d option" >&5
++if test "$with_linuxdisk" != "no"; then :
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mke2fs supporting the -d option" >&5
+ $as_echo_n "checking for mke2fs supporting the -d option... " >&6; }
+-if mke2fs -V >/dev/null 2>&1; then :
++ if mke2fs -V >/dev/null 2>&1; then :
+
+- if LANG=C mke2fs -d 2>&1 | grep -sq "option requires an argument"; then :
++ if LANG=C mke2fs -d 2>&1 | grep -sq "option requires an argument"; then :
+
+- mke2fs_with_d=yes
++ mke2fs_with_d=yes
+
+ fi
+
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mke2fs_with_d" >&5
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $mke2fs_with_d" >&5
+ $as_echo "$mke2fs_with_d" >&6; }
++
++fi
+ if test "x$mke2fs_with_d" = "xyes"; then
+ HAVE_MKE2FS_WITH_D_TRUE=
+ HAVE_MKE2FS_WITH_D_FALSE='#'
diff --git a/net/nbdkit/files/patch-plugins_info_Makefile.in b/net/nbdkit/files/patch-plugins_info_Makefile.in
new file mode 100644
index 000000000000..05699bc7e12b
--- /dev/null
+++ b/net/nbdkit/files/patch-plugins_info_Makefile.in
@@ -0,0 +1,14 @@
+--- plugins/info/Makefile.in.orig 2020-05-02 09:04:51 UTC
++++ plugins/info/Makefile.in
+@@ -499,7 +499,10 @@ nbdkit_info_plugin_la_CPPFLAGS = \
+ -I$(top_srcdir)/common/include \
+ $(NULL)
+
+-nbdkit_info_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
++nbdkit_info_plugin_la_CFLAGS = \
++ $(WARNINGS_CFLAGS) \
++ $(GNUTLS_CFLAGS)
++
+ nbdkit_info_plugin_la_LDFLAGS = \
+ -module -avoid-version -shared $(SHARED_LDFLAGS) \
+ -Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
diff --git a/net/nbdkit/files/patch-plugins_ssh_ssh.c b/net/nbdkit/files/patch-plugins_ssh_ssh.c
new file mode 100644
index 000000000000..14cc03803840
--- /dev/null
+++ b/net/nbdkit/files/patch-plugins_ssh_ssh.c
@@ -0,0 +1,10 @@
+--- plugins/ssh/ssh.c.orig 2020-06-18 20:38:31 UTC
++++ plugins/ssh/ssh.c
+@@ -30,6 +30,7 @@
+ * SUCH DAMAGE.
+ */
+
++#include <sys/stat.h>
+ #include <config.h>
+
+ #include <stdio.h>
diff --git a/net/nbdkit/pkg-descr b/net/nbdkit/pkg-descr
new file mode 100644
index 000000000000..8589a8c22006
--- /dev/null
+++ b/net/nbdkit/pkg-descr
@@ -0,0 +1,20 @@
+nbdkit is a toolkit for creating NBD servers.
+
+The key features are:
+
+ * Multithreaded NBD server written in C with good performance.
+
+ * Minimal dependencies for the basic server.
+
+ * Liberal license (BSD) allows nbdkit to be linked to proprietary
+ libraries or included in proprietary code.
+
+ * Well-documented, simple plugin API with a stable ABI guarantee.
+ Lets you export "unconventional" block devices easily.
+
+ * You can write plugins in C, Go, Lua, Perl, Python, OCaml, Ruby,
+ Rust, shell script or Tcl.
+
+ * Filters can be stacked in front of plugins to transform the output.
+
+WWW: https://github.com/libguestfs/nbdkit
diff --git a/net/nbdkit/pkg-plist b/net/nbdkit/pkg-plist
new file mode 100644
index 000000000000..92d523ecee88
--- /dev/null
+++ b/net/nbdkit/pkg-plist
@@ -0,0 +1,130 @@
+include/nbd-protocol.h
+include/nbdkit-common.h
+include/nbdkit-filter.h
+include/nbdkit-plugin.h
+include/nbdkit-version.h
+lib/nbdkit/filters/nbdkit-blocksize-filter.so
+lib/nbdkit/filters/nbdkit-cache-filter.so
+lib/nbdkit/filters/nbdkit-cacheextents-filter.so
+lib/nbdkit/filters/nbdkit-cow-filter.so
+lib/nbdkit/filters/nbdkit-delay-filter.so
+lib/nbdkit/filters/nbdkit-error-filter.so
+lib/nbdkit/filters/nbdkit-exitlast-filter.so
+lib/nbdkit/filters/nbdkit-extentlist-filter.so
+lib/nbdkit/filters/nbdkit-fua-filter.so
+lib/nbdkit/filters/nbdkit-ip-filter.so
+lib/nbdkit/filters/nbdkit-limit-filter.so
+lib/nbdkit/filters/nbdkit-log-filter.so
+lib/nbdkit/filters/nbdkit-nocache-filter.so
+lib/nbdkit/filters/nbdkit-noextents-filter.so
+lib/nbdkit/filters/nbdkit-nofilter-filter.so
+lib/nbdkit/filters/nbdkit-noparallel-filter.so
+lib/nbdkit/filters/nbdkit-nozero-filter.so
+lib/nbdkit/filters/nbdkit-offset-filter.so
+lib/nbdkit/filters/nbdkit-partition-filter.so
+lib/nbdkit/filters/nbdkit-rate-filter.so
+lib/nbdkit/filters/nbdkit-readahead-filter.so
+lib/nbdkit/filters/nbdkit-retry-filter.so
+lib/nbdkit/filters/nbdkit-stats-filter.so
+lib/nbdkit/filters/nbdkit-truncate-filter.so
+%%LZMA%%lib/nbdkit/filters/nbdkit-xz-filter.so
+%%CURL%%lib/nbdkit/plugins/nbdkit-curl-plugin.so
+lib/nbdkit/plugins/nbdkit-data-plugin.so
+lib/nbdkit/plugins/nbdkit-eval-plugin.so
+lib/nbdkit/plugins/nbdkit-example1-plugin.so
+lib/nbdkit/plugins/nbdkit-example2-plugin.so
+lib/nbdkit/plugins/nbdkit-example3-plugin.so
+%%PERL%%lib/nbdkit/plugins/nbdkit-example4-plugin
+lib/nbdkit/plugins/nbdkit-file-plugin.so
+lib/nbdkit/plugins/nbdkit-floppy-plugin.so
+lib/nbdkit/plugins/nbdkit-full-plugin.so
+%%ZLIB%%lib/nbdkit/plugins/nbdkit-gzip-plugin.so
+lib/nbdkit/plugins/nbdkit-info-plugin.so
+%%LIBVIRT%%lib/nbdkit/plugins/nbdkit-libvirt-plugin.so
+lib/nbdkit/plugins/nbdkit-memory-plugin.so
+lib/nbdkit/plugins/nbdkit-null-plugin.so
+lib/nbdkit/plugins/nbdkit-partitioning-plugin.so
+lib/nbdkit/plugins/nbdkit-pattern-plugin.so
+%%PERL%%lib/nbdkit/plugins/nbdkit-perl-plugin.so
+%%PYTHON%%lib/nbdkit/plugins/nbdkit-python-plugin.so
+lib/nbdkit/plugins/nbdkit-random-plugin.so
+lib/nbdkit/plugins/nbdkit-sh-plugin.so
+lib/nbdkit/plugins/nbdkit-split-plugin.so
+%%SSH%%lib/nbdkit/plugins/nbdkit-ssh-plugin.so
+lib/nbdkit/plugins/nbdkit-streaming-plugin.so
+%%PERL%%lib/nbdkit/plugins/nbdkit-tar-plugin
+lib/nbdkit/plugins/nbdkit-tmpdisk-plugin.so
+lib/nbdkit/plugins/nbdkit-zero-plugin.so
+libdata/pkgconfig/nbdkit.pc
+%%MANPAGES%%man/man1/nbdkit-blocksize-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-cache-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-cacheextents-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-captive.1.gz
+%%MANPAGES%%man/man1/nbdkit-cow-filter.1.gz
+%%MANPAGES%%%%CURL%%man/man1/nbdkit-curl-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-data-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-delay-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-error-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-eval-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-example1-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-example2-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-example3-plugin.1.gz
+%%MANPAGES%%%%PERL%%man/man1/nbdkit-example4-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-exitlast-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-extentlist-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-file-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-floppy-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-fua-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-full-plugin.1.gz
+%%MANPAGES%%%%ZLIB%%man/man1/nbdkit-gzip-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-info-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-ip-filter.1.gz
+%%MANPAGES%%%%LIBVIRT%%man/man1/nbdkit-libvirt-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-limit-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-log-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-loop.1.gz
+%%MANPAGES%%man/man1/nbdkit-memory-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-nocache-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-noextents-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-nofilter-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-noparallel-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-nozero-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-null-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-offset-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-partition-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-partitioning-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-pattern-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-probing.1.gz
+%%MANPAGES%%man/man1/nbdkit-protocol.1.gz
+%%MANPAGES%%man/man1/nbdkit-random-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-rate-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-readahead-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.10.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.12.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.14.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.16.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.18.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.20.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.4.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.6.1.gz
+%%MANPAGES%%man/man1/nbdkit-release-notes-1.8.1.gz
+%%MANPAGES%%man/man1/nbdkit-retry-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-security.1.gz
+%%MANPAGES%%man/man1/nbdkit-service.1.gz
+%%MANPAGES%%man/man1/nbdkit-split-plugin.1.gz
+%%MANPAGES%%%%SSH%%man/man1/nbdkit-ssh-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-stats-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-streaming-plugin.1.gz
+%%MANPAGES%%%%PERL%%man/man1/nbdkit-tar-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-tls.1.gz
+%%MANPAGES%%man/man1/nbdkit-tmpdisk-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit-truncate-filter.1.gz
+%%MANPAGES%%%%LZMA%%man/man1/nbdkit-xz-filter.1.gz
+%%MANPAGES%%man/man1/nbdkit-zero-plugin.1.gz
+%%MANPAGES%%man/man1/nbdkit.1.gz
+%%MANPAGES%%man/man3/nbdkit-filter.3.gz
+%%MANPAGES%%%%PERL%%man/man3/nbdkit-perl-plugin.3.gz
+%%MANPAGES%%man/man3/nbdkit-plugin.3.gz
+%%MANPAGES%%%%PYTHON%%man/man3/nbdkit-python-plugin.3.gz
+%%MANPAGES%%man/man3/nbdkit-sh-plugin.3.gz
+sbin/nbdkit