Index: head/net/Makefile =================================================================== --- head/net/Makefile +++ head/net/Makefile @@ -476,6 +476,7 @@ SUBDIR += nats-streaming-server SUBDIR += nats-top SUBDIR += nbd-server + SUBDIR += nbdkit SUBDIR += nc SUBDIR += ncp SUBDIR += ndisc6 Index: head/net/nbdkit/Makefile =================================================================== --- head/net/nbdkit/Makefile +++ head/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 Index: head/net/nbdkit/distinfo =================================================================== --- head/net/nbdkit/distinfo +++ head/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 Index: head/net/nbdkit/files/patch-configure =================================================================== --- head/net/nbdkit/files/patch-configure +++ head/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='#' Index: head/net/nbdkit/files/patch-plugins_info_Makefile.in =================================================================== --- head/net/nbdkit/files/patch-plugins_info_Makefile.in +++ head/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 \ Index: head/net/nbdkit/files/patch-plugins_ssh_ssh.c =================================================================== --- head/net/nbdkit/files/patch-plugins_ssh_ssh.c +++ head/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 + #include + + #include Index: head/net/nbdkit/pkg-descr =================================================================== --- head/net/nbdkit/pkg-descr +++ head/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 Index: head/net/nbdkit/pkg-plist =================================================================== --- head/net/nbdkit/pkg-plist +++ head/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