From 9d43204809305784522215be3649455c6e25a13b Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Sat, 6 Jun 2015 17:52:34 +0200 Subject: [PATCH 001/683] Perl 5.22 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index bb61528..443d918 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -294,6 +294,9 @@ make check %changelog +* Sat Jun 06 2015 Jitka Plesnikova - 1.1.9-3 +- Perl 5.22 rebuild + * Tue Oct 14 2014 Richard W.M. Jones - 1.1.9-2 - New upstream version 1.1.9. - Add the streaming plugin. From 0f1eb3d40c8dc32931b30842f2aa5f50cc9c2e51 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 10 Jun 2015 12:49:08 +0100 Subject: [PATCH 002/683] Enable debugging messages when running make check. --- nbdkit.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 443d918..df44222 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.9 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -202,6 +202,10 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt +# Make sure we can see the debug messages (RHBZ#1230160). +export LIBGUESTFS_DEBUG=1 +export LIBGUESTFS_TRACE=1 + # libguestfs 1.20 in Fedora 18 doesn't support NBD client protocol, so # the tests cannot be run. %if 0%{?fedora} >= 19 @@ -294,6 +298,9 @@ make check %changelog +* Wed Jun 10 2015 Richard W.M. Jones - 1.1.9-4 +- Enable debugging messages when running make check. + * Sat Jun 06 2015 Jitka Plesnikova - 1.1.9-3 - Perl 5.22 rebuild From ef2ce56a62055f2e3e6698afd4415a6b9d1b8607 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 10 Jun 2015 12:57:41 +0100 Subject: [PATCH 003/683] BR grubby --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index df44222..dfa9701 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,6 +27,12 @@ BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python-devel +# For complicated reasons, this is required so that +# /bin/kernel-install puts the kernel directly into /boot, instead of +# into a /boot/ subdirectory (in Fedora >= 23). Read the +# kernel-install script to understand why. +BuildRequires: grubby + %description NBD is a protocol for accessing block devices (hard disks and From 2a91ed6c5acf57f5d061b7941763d6937aefe1d3 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Thu, 11 Jun 2015 10:54:53 +0200 Subject: [PATCH 004/683] Perl 5.22 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index dfa9701..fec4142 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.9 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -304,6 +304,9 @@ make check %changelog +* Thu Jun 11 2015 Jitka Plesnikova - 1.1.9-5 +- Perl 5.22 rebuild + * Wed Jun 10 2015 Richard W.M. Jones - 1.1.9-4 - Enable debugging messages when running make check. From e1c70161192bad5182fe2b03fca5363d308a042d Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 17 Jun 2015 21:32:01 +0000 Subject: [PATCH 005/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index fec4142..421d751 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.9 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -304,6 +304,9 @@ make check %changelog +* Wed Jun 17 2015 Fedora Release Engineering - 1.1.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Thu Jun 11 2015 Jitka Plesnikova - 1.1.9-5 - Perl 5.22 rebuild From 0865b1bd630da781ea9fd028637a273f0f1db848 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 19 Jun 2015 13:58:48 +0100 Subject: [PATCH 006/683] New upstream version. - Enable now working OCaml plugin (requires OCaml >= 4.02.2). --- ...-the-buf-pointer-when-doing-partial-.patch | 25 -------- nbdkit.spec | 57 +++++++++++++++++-- sources | 2 +- 3 files changed, 52 insertions(+), 32 deletions(-) delete mode 100644 0001-streaming-Update-the-buf-pointer-when-doing-partial-.patch diff --git a/0001-streaming-Update-the-buf-pointer-when-doing-partial-.patch b/0001-streaming-Update-the-buf-pointer-when-doing-partial-.patch deleted file mode 100644 index e07cdbd..0000000 --- a/0001-streaming-Update-the-buf-pointer-when-doing-partial-.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b40717749648b972585cba04b69dc398e1e8e9fd Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 14 Oct 2014 16:13:36 +0200 -Subject: [PATCH] streaming: Update the buf pointer when doing partial writes. - -This fixes commit 72070d1ba15a45ce06519074846a612b97a4e54f. ---- - plugins/streaming/streaming.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/plugins/streaming/streaming.c b/plugins/streaming/streaming.c -index 619c452..2381e60 100644 ---- a/plugins/streaming/streaming.c -+++ b/plugins/streaming/streaming.c -@@ -202,6 +202,7 @@ streaming_pwrite (void *handle, const void *buf, - errorstate = 1; - return -1; - } -+ buf += r; - highestwrite += r; - count -= r; - } --- -2.0.4 - diff --git a/nbdkit.spec b/nbdkit.spec index 421d751..3889718 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,16 +5,14 @@ %endif Name: nbdkit -Version: 1.1.9 -Release: 6%{?dist} +Version: 1.1.10 +Release: 1%{?dist} Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz -Patch1: 0001-streaming-Update-the-buf-pointer-when-doing-partial-.patch - BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -26,6 +24,11 @@ BuildRequires: libcurl-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python-devel +%ifarch %{ocaml_native_compiler} +# Requires OCaml 4.02.2 which contains fix for +# http://caml.inria.fr/mantis/view.php?id=6693 +BuildRequires: ocaml >= 4.02.2 +%endif # For complicated reasons, this is required so that # /bin/kernel-install puts the kernel directly into /boot, instead of @@ -126,6 +129,34 @@ libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. +%ifarch %{ocaml_native_compiler} +%package plugin-ocaml +Summary: OCaml plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-ocaml +This package lets you run OCaml plugins for %{name}. + +To compile OCaml plugins you will also need to install +%{name}-plugin-ocaml-devel. + + +%package plugin-ocaml-devel +Summary: OCaml development environment for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-plugin-ocaml%{?_isa} = %{version}-%{release} + + +%description plugin-ocaml-devel +This package lets you write OCaml plugins for %{name}. +%endif + + %package plugin-perl Summary: Perl plugin for %{name} License: BSD @@ -186,8 +217,6 @@ plugins for %{name}. %prep %setup -q -%patch1 -p1 - %build # Force immediate binding for hardened build for plugins. @@ -269,6 +298,18 @@ make check %{_mandir}/man1/nbdkit-libvirt-plugin.1* +%ifarch %{ocaml_native_compiler} +%files plugin-ocaml +%doc LICENSE README +%{_libdir}/libnbdkitocaml.so.* + +%files plugin-ocaml-devel +%{_libdir}/libnbdkitocaml.so +%{_libdir}/ocaml/NBDKit.* +%{_mandir}/man3/nbdkit-ocaml-plugin.3* +%endif + + %files plugin-perl %doc LICENSE README %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so @@ -304,6 +345,10 @@ make check %changelog +* Fri Jun 19 2015 Richard W.M. Jones - 1.1.10-1 +- New upstream version. +- Enable now working OCaml plugin (requires OCaml >= 4.02.2). + * Wed Jun 17 2015 Fedora Release Engineering - 1.1.9-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 77337c9..4a7b992 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -518a6b4554275424505bfebe0820d11b nbdkit-1.1.9.tar.gz +dfe0fb6de944b4fe97f7c8c8a8f83f07 nbdkit-1.1.10.tar.gz From dae8721baf3a65d20b6641e02240fc4dde9044d4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 19 Jun 2015 14:35:35 +0100 Subject: [PATCH 007/683] ocaml: Run ldconfig on install and uninstall. --- nbdkit.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 3889718..6d4e3a9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -252,6 +252,11 @@ make check %endif +%post plugin-ocaml -p /sbin/ldconfig + +%postun plugin-ocaml -p /sbin/ldconfig + + %files %doc LICENSE README %{_sbindir}/nbdkit From ce4ce8c1dc8241a2074836662b2347989e98bda8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 20 Jun 2015 11:50:36 +0100 Subject: [PATCH 008/683] Enable libguestfs plugin on aarch64. --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6d4e3a9..06f1d6c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,12 +1,12 @@ %global _hardened_build 1 -%ifarch %{arm} %{ix86} x86_64 ppc %{power64} +%ifarch aarch64 %{arm} %{ix86} x86_64 ppc %{power64} %global have_libguestfs 1 %endif Name: nbdkit Version: 1.1.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -350,6 +350,9 @@ make check %changelog +* Sat Jun 20 2015 Richard W.M. Jones - 1.1.10-2 +- Enable libguestfs plugin on aarch64. + * Fri Jun 19 2015 Richard W.M. Jones - 1.1.10-1 - New upstream version. - Enable now working OCaml plugin (requires OCaml >= 4.02.2). From 6d30221bee6301b60687ac6729ced165a9c8ffef Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 20 Jun 2015 11:58:07 +0100 Subject: [PATCH 009/683] Only run ldconfig when nbdkit-plugin-ocaml is built. --- nbdkit.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 06f1d6c..9bb9178 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -252,9 +252,10 @@ make check %endif +%ifarch %{ocaml_native_compiler} %post plugin-ocaml -p /sbin/ldconfig - %postun plugin-ocaml -p /sbin/ldconfig +%endif %files From 57799dc5a0db0b2dab66761ea172c04abe3c5d10 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 30 Jul 2015 13:29:31 +0100 Subject: [PATCH 010/683] OCaml 4.02.3 rebuild. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9bb9178..75e02bb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.10 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -351,6 +351,9 @@ make check %changelog +* Thu Jul 30 2015 Richard W.M. Jones - 1.1.10-3 +- OCaml 4.02.3 rebuild. + * Sat Jun 20 2015 Richard W.M. Jones - 1.1.10-2 - Enable libguestfs plugin on aarch64. From d3977212988b405a4dc10b47c3fba94284dccba2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 31 Oct 2015 12:40:07 +0000 Subject: [PATCH 011/683] New upstream version 1.1.11. --- nbdkit.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 75e02bb..f071ba5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,8 +5,8 @@ %endif Name: nbdkit -Version: 1.1.10 -Release: 3%{?dist} +Version: 1.1.11 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -351,6 +351,9 @@ make check %changelog +* Sat Oct 31 2015 Richard W.M. Jones - 1.1.11-1 +- New upstream version 1.1.11. + * Thu Jul 30 2015 Richard W.M. Jones - 1.1.10-3 - OCaml 4.02.3 rebuild. diff --git a/sources b/sources index 4a7b992..9b4a9d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dfe0fb6de944b4fe97f7c8c8a8f83f07 nbdkit-1.1.10.tar.gz +c03d66a7ad5f7f08a171d6845dc28c48 nbdkit-1.1.11.tar.gz From a14ec0e1c29740139dbc04104664f104a6cec401 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 18:50:28 +0000 Subject: [PATCH 012/683] Add support for newstyle NBD protocol (RHBZ#1297100). --- 0001-Add-mandir-to-dump-config-output.patch | 39 + 0002-Update-TODO.patch | 35 + ...r-newstyle-NBD-protocol-RHBZ-1297100.patch | 760 ++++++++++++++++++ nbdkit.spec | 12 +- 4 files changed, 845 insertions(+), 1 deletion(-) create mode 100644 0001-Add-mandir-to-dump-config-output.patch create mode 100644 0002-Update-TODO.patch create mode 100644 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch diff --git a/0001-Add-mandir-to-dump-config-output.patch b/0001-Add-mandir-to-dump-config-output.patch new file mode 100644 index 0000000..e55b4c1 --- /dev/null +++ b/0001-Add-mandir-to-dump-config-output.patch @@ -0,0 +1,39 @@ +From 5294b7d8cc011f8b5e068aad744f612df7414a82 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 31 Oct 2015 13:24:52 +0000 +Subject: [PATCH 1/3] Add mandir to --dump-config output. + +This is useful for external plugins that want to install +a man page. +--- + src/Makefile.am | 1 + + src/main.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/Makefile.am b/src/Makefile.am +index c0fb95a..fb46903 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -50,6 +50,7 @@ nbdkit_SOURCES = \ + nbdkit_CPPFLAGS = \ + -Dbindir=\"$(bindir)\" \ + -Dlibdir=\"$(libdir)\" \ ++ -Dmandir=\"$(mandir)\" \ + -Dplugindir=\"$(plugindir)\" \ + -Dsbindir=\"$(sbindir)\" \ + -Dsysconfdir=\"$(sysconfdir)\" \ +diff --git a/src/main.c b/src/main.c +index cd676c0..1248a8e 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -129,6 +129,7 @@ dump_config (void) + { + printf ("%s=%s\n", "bindir", bindir); + printf ("%s=%s\n", "libdir", libdir); ++ printf ("%s=%s\n", "mandir", mandir); + printf ("%s=%s\n", "name", PACKAGE_NAME); + printf ("%s=%s\n", "plugindir", plugindir); + printf ("%s=%s\n", "sbindir", sbindir); +-- +2.5.0 + diff --git a/0002-Update-TODO.patch b/0002-Update-TODO.patch new file mode 100644 index 0000000..e93c237 --- /dev/null +++ b/0002-Update-TODO.patch @@ -0,0 +1,35 @@ +From 4b562134c3dad1a84aa92c1658e72046569e1570 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 11 Jan 2016 15:34:57 +0000 +Subject: [PATCH 2/3] Update TODO. + +--- + TODO | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/TODO b/TODO +index bcf2276..a05aa5b 100644 +--- a/TODO ++++ b/TODO +@@ -1,6 +1,8 @@ + * There is a proposal to narrow the range of possible errnos that the + server can return, and also to encode them in an OS-independent way. + See: http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 ++ Implemented in QEMU already: ++ http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb + + * Can we do language bindings using #!'s? + You would enter: +@@ -25,6 +27,9 @@ + default that accepts all exportnames, or to divide the export name + "space" up using regexps or wildcards. + ++ Annoyingly nbd-client dropped support for the oldstyle protocol (see ++ https://bugzilla.redhat.com/1297100). ++ + * Implement true parallel request handling. Currently + NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and + NBDKIT_THREAD_MODEL_PARALLEL are the same, because we handle +-- +2.5.0 + diff --git a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch new file mode 100644 index 0000000..212f6fa --- /dev/null +++ b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch @@ -0,0 +1,760 @@ +From f93807114634d58ca2ef0d64f7637ebd87e48a50 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 11 Jan 2016 17:08:51 +0000 +Subject: [PATCH 3/3] Add support for newstyle NBD protocol (RHBZ#1297100). + +--- + .gitignore | 1 + + TODO | 10 +-- + docs/nbdkit.pod | 67 +++++++++++++- + src/connections.c | 235 ++++++++++++++++++++++++++++++++++++++++++++++++-- + src/internal.h | 1 + + src/main.c | 26 ++++-- + src/protocol.h | 49 ++++++++++- + tests/Makefile.am | 8 ++ + tests/test-newstyle.c | 102 ++++++++++++++++++++++ + tests/test.c | 6 +- + tests/test.h | 2 +- + 11 files changed, 483 insertions(+), 24 deletions(-) + create mode 100644 tests/test-newstyle.c + +diff --git a/.gitignore b/.gitignore +index b1a8850..9ea072f 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -43,6 +43,7 @@ Makefile.in + /tests/test-connect + /tests/test-file + /tests/test-gzip ++/tests/test-newstyle + /tests/test-ocaml + /tests/test-ocaml-plugin.so + /tests/test-perl +diff --git a/TODO b/TODO +index a05aa5b..d39e64c 100644 +--- a/TODO ++++ b/TODO +@@ -17,9 +17,9 @@ + + * Performance - measure and improve it. + +-* Implement the new protocol and export names. With export names it +- should be possible to have multiple plugins on the command line +- (each responding to a different export of course): ++* Implement export names. With export names it should be possible to ++ have multiple plugins on the command line (each responding to a ++ different export of course): + + nbdkit --export /foo plugin.so --export /bar another-plugin.so + +@@ -27,8 +27,8 @@ + default that accepts all exportnames, or to divide the export name + "space" up using regexps or wildcards. + +- Annoyingly nbd-client dropped support for the oldstyle protocol (see +- https://bugzilla.redhat.com/1297100). ++ Export names are not actually paths (although that is how they are ++ often used), but arbitrary UTF-8 text strings. + + * Implement true parallel request handling. Currently + NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index 9ce75d3..7204a38 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -7,8 +7,8 @@ nbdkit - A toolkit for creating NBD servers + =head1 SYNOPSIS + + nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR] +- [-P PIDFILE] [-p PORT] [-r] [--run CMD] [-s] +- [-U SOCKET] [-u USER] [-v] [-V] ++ [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] ++ [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] + PLUGIN [key=value [key=value [...]]] + + =head1 DESCRIPTION +@@ -103,6 +103,25 @@ See also I<-u>. + Listen on the specified interface. The default is to listen on all + interfaces. See also I<-p>. + ++=item B<-n> ++ ++=item B<--new-style> ++ ++=item B<--newstyle> ++ ++Use the newstyle NBD protocol instead of the default (oldstyle) ++protocol. See L below. ++ ++=item B<-o> ++ ++=item B<--old-style> ++ ++=item B<--oldstyle> ++ ++Use the oldstyle NBD protocol. This is currently the default, so this ++flag does nothing, but it is possible we might change the default ++protocol in future. See L below. ++ + =item B<-P> PIDFILE + + =item B<--pid-file> PIDFILE +@@ -280,6 +299,50 @@ Unix socket, like this: + + nbdkit -U - plugin [args] --run '...' + ++=head1 NEW STYLE VS OLD STYLE PROTOCOL ++ ++The NBD protocol comes in two incompatible forms that we call ++"oldstyle" and "newstyle". Unfortunately which protocol you should ++use depends on the client and cannot be known in advance, nor can it ++be negotiated from the server side. ++ ++nbdkit currently defaults to the oldstyle protocol for compatibility ++with qemu and libguestfs. This is also the same behaviour as ++qemu-nbd. Use the I<-n> or I<--newstyle> flag on the command line to ++use the newstyle protocol. Use the I<-o> or I<--oldstyle> flag to ++force the oldstyle protocol. ++ ++Some common clients and the protocol they require: ++ ++ Client Protocol ++ ------------------------------------------------------------ ++ qemu without exportname oldstyle ++ qemu with exportname newstyle ++ nbd-client < 3.10 client can talk either protocol ++ nbd-client >= 3.10 newstyle ++ ++If you use qemu without the exportname field against a newstyle ++server, it will give the error: ++ ++ Server requires an export name ++ ++If you use qemu with the exportname field against an oldstyle server, ++it will give the error: ++ ++ Server does not support export names ++ ++If you use the oldstyle protocol with nbd-client E 3.10, it will ++give the error: ++ ++ Error: It looks like you're trying to connect to an oldstyle server. ++ ++If you want to claim compatibility with what the NBD proto.txt ++document says should be the case (which isn't based in reality), then ++you should always use newstyle when using port 10809, and use oldstyle ++on all other ports. ++ ++nbdkit ignores export names at present (see also the C file). ++ + =head1 SIGNALS + + C responds to the following signals: +diff --git a/src/connections.c b/src/connections.c +index 15f416b..6bdf4ef 100644 +--- a/src/connections.c ++++ b/src/connections.c +@@ -1,5 +1,5 @@ + /* nbdkit +- * Copyright (C) 2013 Red Hat Inc. ++ * Copyright (C) 2013-2016 Red Hat Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -52,6 +52,12 @@ + /* Maximum read or write request that we will handle. */ + #define MAX_REQUEST_SIZE (64 * 1024 * 1024) + ++/* Maximum number of client options we allow before giving up. */ ++#define MAX_NR_OPTIONS 32 ++ ++/* Maximum length of any option data (bytes). */ ++#define MAX_OPTION_LENGTH 4096 ++ + static struct connection *new_connection (int sockin, int sockout); + static void free_connection (struct connection *conn); + static int negotiate_handshake (struct connection *conn); +@@ -143,11 +149,8 @@ free_connection (struct connection *conn) + free (conn); + } + +-/* XXX Note because we don't support multiple plugins or export names, +- * we are using the old-style handshake. This will be fixed. +- */ + static int +-_negotiate_handshake (struct connection *conn) ++_negotiate_handshake_oldstyle (struct connection *conn) + { + struct old_handshake handshake; + int64_t r; +@@ -201,7 +204,8 @@ _negotiate_handshake (struct connection *conn) + conn->can_trim = 1; + } + +- debug ("flags: global 0x%x export 0x%x", gflags, eflags); ++ debug ("oldstyle negotiation: flags: global 0x%x export 0x%x", ++ gflags, eflags); + + memset (&handshake, 0, sizeof handshake); + memcpy (handshake.nbdmagic, "NBDMAGIC", 8); +@@ -218,13 +222,230 @@ _negotiate_handshake (struct connection *conn) + return 0; + } + ++/* Receive newstyle options. ++ * ++ * Currently we ignore NBD_OPT_EXPORT_NAME (see TODO), we close the ++ * connection if sent NBD_OPT_ABORT, we send a canned list of ++ * options for NBD_OPT_LIST, and we send NBD_REP_ERR_UNSUP for ++ * everything else. ++ */ ++static int ++send_newstyle_option_reply (struct connection *conn, ++ uint32_t option, uint32_t reply) ++{ ++ struct fixed_new_option_reply fixed_new_option_reply; ++ ++ fixed_new_option_reply.magic = htobe64 (NEW_OPTION_REPLY); ++ fixed_new_option_reply.option = htobe32 (option); ++ fixed_new_option_reply.reply = htobe32 (reply); ++ fixed_new_option_reply.replylen = htobe32 (0); ++ ++ if (xwrite (conn->sockout, ++ &fixed_new_option_reply, sizeof fixed_new_option_reply) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static int ++_negotiate_handshake_newstyle_options (struct connection *conn) ++{ ++ struct new_option new_option; ++ size_t nr_options; ++ uint64_t version; ++ uint32_t option; ++ uint32_t optlen; ++ char data[MAX_OPTION_LENGTH+1]; ++ ++ for (nr_options = 0; nr_options < MAX_NR_OPTIONS; ++nr_options) { ++ if (xread (conn->sockin, &new_option, sizeof new_option) == -1) { ++ nbdkit_error ("read: %m"); ++ return -1; ++ } ++ ++ version = be64toh (new_option.version); ++ if (version != NEW_VERSION) { ++ nbdkit_error ("unknown option version %" PRIx64 ++ ", expecting %" PRIx64, ++ version, NEW_VERSION); ++ return -1; ++ } ++ ++ /* There is a maximum option length we will accept, regardless ++ * of the option type. ++ */ ++ optlen = be32toh (new_option.optlen); ++ if (optlen > MAX_OPTION_LENGTH) { ++ nbdkit_error ("client option data too long (%" PRIu32 ")", optlen); ++ return -1; ++ } ++ ++ option = be32toh (new_option.option); ++ switch (option) { ++ case NBD_OPT_EXPORT_NAME: ++ if (xread (conn->sockin, data, optlen) == -1) { ++ nbdkit_error ("read: %m"); ++ return -1; ++ } ++ /* Apart from printing it, ignore the export name. */ ++ data[optlen] = '\0'; ++ debug ("newstyle negotiation: client requested export '%s' (ignored)", ++ data); ++ break; ++ ++ case NBD_OPT_ABORT: ++ if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) ++ return -1; ++ nbdkit_error ("client sent NBD_OPT_ABORT to abort the connection"); ++ return -1; ++ ++ case NBD_OPT_LIST: ++ if (optlen != 0) { ++ if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_INVALID) ++ == -1) ++ return -1; ++ continue; ++ } ++ ++ /* Since we don't support export names, there is nothing to list. */ ++ if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) ++ return -1; ++ break; ++ ++ default: ++ /* Unknown option. */ ++ if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_UNSUP) == -1) ++ return -1; ++ } ++ ++ /* Note, since it's not very clear from the protocol doc, that the ++ * client must send NBD_OPT_EXPORT_NAME last, and that ends option ++ * negotiation. ++ */ ++ if (option == NBD_OPT_EXPORT_NAME) ++ break; ++ } ++ ++ if (nr_options >= MAX_NR_OPTIONS) { ++ nbdkit_error ("client exceeded maximum number of options (%d)", ++ MAX_NR_OPTIONS); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static int ++_negotiate_handshake_newstyle (struct connection *conn) ++{ ++ struct new_handshake handshake; ++ uint16_t gflags; ++ uint32_t cflags; ++ struct new_handshake_finish handshake_finish; ++ int64_t r; ++ uint64_t exportsize; ++ uint16_t eflags; ++ int fl; ++ ++ gflags = NBD_FLAG_FIXED_NEWSTYLE; ++ ++ debug ("newstyle negotiation: flags: global 0x%x", gflags); ++ ++ memcpy (handshake.nbdmagic, "NBDMAGIC", 8); ++ handshake.version = htobe64 (NEW_VERSION); ++ handshake.gflags = htobe16 (gflags); ++ ++ if (xwrite (conn->sockout, &handshake, sizeof handshake) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ ++ /* Client now sends us its 32 bit flags word ... */ ++ if (xread (conn->sockin, &cflags, sizeof cflags) == -1) { ++ nbdkit_error ("read: %m"); ++ return -1; ++ } ++ cflags = be32toh (cflags); ++ /* ... which other than printing out, we ignore. */ ++ debug ("newstyle negotiation: client flags: 0x%x", cflags); ++ ++ /* Receive newstyle options. */ ++ if (_negotiate_handshake_newstyle_options (conn) == -1) ++ return -1; ++ ++ /* Finish the newstyle handshake. */ ++ r = plugin_get_size (conn); ++ if (r == -1) ++ return -1; ++ if (r < 0) { ++ nbdkit_error (".get_size function returned invalid value " ++ "(%" PRIi64 ")", r); ++ return -1; ++ } ++ exportsize = (uint64_t) r; ++ conn->exportsize = exportsize; ++ ++ eflags = NBD_FLAG_HAS_FLAGS; ++ ++ fl = plugin_can_write (conn); ++ if (fl == -1) ++ return -1; ++ if (readonly || !fl) { ++ eflags |= NBD_FLAG_READ_ONLY; ++ conn->readonly = 1; ++ } ++ ++ fl = plugin_can_flush (conn); ++ if (fl == -1) ++ return -1; ++ if (fl) { ++ eflags |= NBD_FLAG_SEND_FLUSH | NBD_FLAG_SEND_FUA; ++ conn->can_flush = 1; ++ } ++ ++ fl = plugin_is_rotational (conn); ++ if (fl == -1) ++ return -1; ++ if (fl) { ++ eflags |= NBD_FLAG_ROTATIONAL; ++ conn->is_rotational = 1; ++ } ++ ++ fl = plugin_can_trim (conn); ++ if (fl == -1) ++ return -1; ++ if (fl) { ++ eflags |= NBD_FLAG_SEND_TRIM; ++ conn->can_trim = 1; ++ } ++ ++ debug ("newstyle negotiation: flags: export 0x%x", eflags); ++ ++ memset (&handshake_finish, 0, sizeof handshake_finish); ++ handshake_finish.exportsize = htobe64 (exportsize); ++ handshake_finish.eflags = htobe16 (eflags); ++ ++ if (xwrite (conn->sockout, ++ &handshake_finish, sizeof handshake_finish) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ ++ return 0; ++} ++ + static int + negotiate_handshake (struct connection *conn) + { + int r; + + plugin_lock_request (conn); +- r = _negotiate_handshake (conn); ++ if (!newstyle) ++ r = _negotiate_handshake_oldstyle (conn); ++ else ++ r = _negotiate_handshake_newstyle (conn); + plugin_unlock_request (conn); + + return r; +diff --git a/src/internal.h b/src/internal.h +index c834b14..0603779 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -49,6 +49,7 @@ + + /* main.c */ + extern const char *ipaddr; ++extern int newstyle; + extern const char *port; + extern int readonly; + extern char *unixsocket; +diff --git a/src/main.c b/src/main.c +index 1248a8e..db4361e 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -1,5 +1,5 @@ + /* nbdkit +- * Copyright (C) 2013-2014 Red Hat Inc. ++ * Copyright (C) 2013-2016 Red Hat Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -67,11 +67,12 @@ static gid_t parsegroup (const char *); + + int foreground; /* -f */ + const char *ipaddr; /* -i */ +-int listen_stdin; /* -s */ ++int newstyle; /* -n */ + char *pidfile; /* -P */ + const char *port; /* -p */ + int readonly; /* -r */ + char *run; /* --run */ ++int listen_stdin; /* -s */ + char *unixsocket; /* -U */ + const char *user, *group; /* -u & -g */ + int verbose; /* -v */ +@@ -83,7 +84,7 @@ static char *random_fifo = NULL; + + enum { HELP_OPTION = CHAR_MAX + 1 }; + +-static const char *short_options = "fg:i:p:P:rsu:U:vV"; ++static const char *short_options = "fg:i:nop:P:rsu:U:vV"; + static const struct option long_options[] = { + { "help", 0, NULL, HELP_OPTION }, + { "dump-config",0, NULL, 0 }, +@@ -92,6 +93,10 @@ static const struct option long_options[] = { + { "group", 1, NULL, 'g' }, + { "ip-addr", 1, NULL, 'i' }, + { "ipaddr", 1, NULL, 'i' }, ++ { "new-style", 1, NULL, 'n' }, ++ { "newstyle", 1, NULL, 'n' }, ++ { "old-style", 1, NULL, 'o' }, ++ { "oldstyle", 1, NULL, 'o' }, + { "pid-file", 1, NULL, 'P' }, + { "pidfile", 1, NULL, 'P' }, + { "port", 1, NULL, 'p' }, +@@ -111,8 +116,8 @@ static void + usage (void) + { + printf ("nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]\n" +- " [-P PIDFILE] [-p PORT] [-r] [--run CMD] [-s]\n" +- " [-U SOCKET] [-u USER] [-v] [-V]\n" ++ " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" ++ " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" + " PLUGIN [key=value [key=value [...]]]\n" + "\n" + "Please read the nbdkit(1) manual page for full usage.\n"); +@@ -180,6 +185,17 @@ main (int argc, char *argv[]) + ipaddr = optarg; + break; + ++ case 'n': ++ newstyle = 1; ++ break; ++ ++ case 'o': ++ /* XXX When we add support for exportnames, we will need to ++ * ensure that the user does not use -o + --export. ++ */ ++ newstyle = 0; ++ break; ++ + case 'P': + pidfile = nbdkit_absolute_path (optarg); + if (pidfile == NULL) +diff --git a/src/protocol.h b/src/protocol.h +index 4449171..2f9a341 100644 +--- a/src/protocol.h ++++ b/src/protocol.h +@@ -36,7 +36,7 @@ + + #include + +-/* Old-style handshake */ ++/* Old-style handshake. */ + struct old_handshake { + char nbdmagic[8]; /* "NBDMAGIC" */ + uint64_t version; /* OLD_VERSION, in network byte order */ +@@ -48,6 +48,41 @@ struct old_handshake { + + #define OLD_VERSION UINT64_C(0x420281861253) + ++/* New-style handshake. */ ++struct new_handshake { ++ char nbdmagic[8]; /* "NBDMAGIC" */ ++ uint64_t version; /* NEW_VERSION, in network byte order */ ++ uint16_t gflags; /* global flags, in network byte order */ ++} __attribute__((packed)); ++ ++#define NEW_VERSION UINT64_C(0x49484156454F5054) ++ ++/* New-style handshake option (sent by the client to us). */ ++struct new_option { ++ uint64_t version; /* NEW_VERSION, in network byte order */ ++ uint32_t option; /* NBD_OPT_* */ ++ uint32_t optlen; /* option data length */ ++ /* option data follows */ ++} __attribute__((packed)); ++ ++/* Fixed newstyle handshake reply message. */ ++struct fixed_new_option_reply { ++ uint64_t magic; /* NEW_OPTION_REPLY, network byte order */ ++ uint32_t option; /* option we are replying to */ ++ uint32_t reply; /* NBD_REP_* */ ++ uint32_t replylen; /* we always send zero at the moment */ ++ /* reply data follows, but we currently never send any */ ++}; ++ ++#define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) ++ ++/* New-style handshake server reply. */ ++struct new_handshake_finish { ++ uint64_t exportsize; /* in network byte order */ ++ uint16_t eflags; /* per-export flags, in network byte order */ ++ char zeroes[124]; /* must be sent as zero bytes */ ++} __attribute__((packed)); ++ + /* Global flags. */ + #define NBD_FLAG_FIXED_NEWSTYLE 1 + +@@ -59,6 +94,18 @@ struct old_handshake { + #define NBD_FLAG_ROTATIONAL 16 + #define NBD_FLAG_SEND_TRIM 32 + ++/* NBD options (new style handshake only). */ ++#define NBD_OPT_EXPORT_NAME 1 ++#define NBD_OPT_ABORT 2 ++#define NBD_OPT_LIST 3 ++ ++#define NBD_REP_ACK 1 ++#define NBD_REP_SERVER 2 ++#define NBD_REP_ERR_UNSUP 0x80000001 ++#define NBD_REP_ERR_POLICY 0x80000002 ++#define NBD_REP_ERR_INVALID 0x80000003 ++#define NBD_REP_ERR_PLATFORM 0x80000004 ++ + /* Request (client -> server). */ + struct request { + uint32_t magic; /* NBD_REQUEST_MAGIC. */ +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 511c39c..8d27032 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -103,6 +103,14 @@ file-data: + for f in `seq 1 512`; do echo -ne '\x01\x02\x03\x04\x05\x06\x07\x08'; done > $@-t + mv $@-t $@ + ++# newstyle protocol test. ++check_PROGRAMS += test-newstyle ++TESTS += test-newstyle ++ ++test_newstyle_SOURCES = test-newstyle.c test.h ++test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) ++test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) ++ + # gzip plugin test. + if HAVE_ZLIB + if HAVE_GUESTFISH +diff --git a/tests/test-newstyle.c b/tests/test-newstyle.c +new file mode 100644 +index 0000000..b1d8ce7 +--- /dev/null ++++ b/tests/test-newstyle.c +@@ -0,0 +1,102 @@ ++/* nbdkit ++ * Copyright (C) 2013-2016 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "test.h" ++ ++int ++main (int argc, char *argv[]) ++{ ++ guestfs_h *g; ++ int r; ++ char *data; ++ size_t i, size; ++ ++ if (test_start_nbdkit ("-n", NBDKIT_PLUGIN ("file"), "file=file-data", ++ NULL) == -1) ++ exit (EXIT_FAILURE); ++ ++ g = guestfs_create (); ++ if (g == NULL) { ++ perror ("guestfs_create"); ++ exit (EXIT_FAILURE); ++ } ++ ++ /* Using any exportname causes qemu to use the newstyle protocol. */ ++ r = guestfs_add_drive_opts (g, "/" /* exportname */, ++ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", ++ GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", ++ GUESTFS_ADD_DRIVE_OPTS_SERVER, server, ++ -1); ++ if (r == -1) ++ exit (EXIT_FAILURE); ++ ++ if (guestfs_launch (g) == -1) ++ exit (EXIT_FAILURE); ++ ++ /* Check the data in the file is \x01-\x08 repeated 512 times. */ ++ data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); ++ if (!data) ++ exit (EXIT_FAILURE); ++ if (size != 8 * 512) { ++ fprintf (stderr, "%s FAILED: unexpected size (actual: %zu, expected: 512)\n", ++ program_name, size); ++ exit (EXIT_FAILURE); ++ } ++ ++ for (i = 0; i < 512 * 8; i += 8) { ++ if (data[i] != 1 || data[i+1] != 2 || ++ data[i+2] != 3 || data[i+3] != 4 || ++ data[i+4] != 5 || data[i+5] != 6 || ++ data[i+6] != 7 || data[i+7] != 8) { ++ fprintf (stderr, "%s FAILED: unexpected data returned at offset %zu\n", ++ program_name, i); ++ exit (EXIT_FAILURE); ++ } ++ } ++ ++ free (data); ++ ++ guestfs_close (g); ++ exit (EXIT_SUCCESS); ++} +diff --git a/tests/test.c b/tests/test.c +index 55d13fd..111e6fa 100644 +--- a/tests/test.c ++++ b/tests/test.c +@@ -68,7 +68,7 @@ cleanup (void) + } + + int +-test_start_nbdkit (const char *plugin, ...) ++test_start_nbdkit (const char *arg, ...) + { + size_t i, len; + +@@ -95,10 +95,10 @@ test_start_nbdkit (const char *plugin, ...) + argv[4] = pidpath; + argv[5] = "-f"; + argv[6] = "-v"; +- argv[7] = plugin; ++ argv[7] = arg; + i = 8; + +- va_start (args, plugin); ++ va_start (args, arg); + while ((p = va_arg (args, const char *)) != NULL) { + if (i >= MAX_ARGS) + abort (); +diff --git a/tests/test.h b/tests/test.h +index 7abf5af..c369150 100644 +--- a/tests/test.h ++++ b/tests/test.h +@@ -45,7 +45,7 @@ + extern pid_t pid; /* PID of nbdkit process. */ + extern const char *server[2]; /* server parameter for add_drive */ + +-extern int test_start_nbdkit (const char *plugin, ...); ++extern int test_start_nbdkit (const char *arg, ...); + + /* Declare program_name. */ + #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1 +-- +2.5.0 + diff --git a/nbdkit.spec b/nbdkit.spec index f071ba5..e6bc020 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,13 +6,19 @@ Name: nbdkit Version: 1.1.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit + Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +# All patches are upstream since 1.1.11. +Patch1: 0001-Add-mandir-to-dump-config-output.patch +Patch2: 0002-Update-TODO.patch +Patch3: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch + BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -216,6 +222,7 @@ plugins for %{name}. %prep %setup -q +%autopatch -p1 %build @@ -351,6 +358,9 @@ make check %changelog +* Mon Jan 11 2016 Richard W.M. Jones - 1.1.11-2 +- Add support for newstyle NBD protocol (RHBZ#1297100). + * Sat Oct 31 2015 Richard W.M. Jones - 1.1.11-1 - New upstream version 1.1.11. From 6fe7154d4ae30ecf558310974d98c62a8e8202fd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:00:43 +0000 Subject: [PATCH 013/683] BR automake --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index e6bc020..9fa6e47 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -18,6 +18,8 @@ Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz Patch1: 0001-Add-mandir-to-dump-config-output.patch Patch2: 0002-Update-TODO.patch Patch3: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +# Because patch3 patches Makefile.am, we need: +BuildRequires: automake, autoconf, libtool BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} From debf164f8fffbbe9939eeff58a2bb647d64175b5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:56:42 +0000 Subject: [PATCH 014/683] More upstream patches to fix build. --- 0001-Add-mandir-to-dump-config-output.patch | 2 +- 0002-Update-TODO.patch | 2 +- ...r-newstyle-NBD-protocol-RHBZ-1297100.patch | 2 +- ...ix-various-printf-warnings-on-32-bit.patch | 49 +++++++++++++++++++ ...-Avoid-race-when-building-NBDKit.cmi.patch | 28 +++++++++++ nbdkit.spec | 8 +-- 6 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 0004-xz-Fix-various-printf-warnings-on-32-bit.patch create mode 100644 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch diff --git a/0001-Add-mandir-to-dump-config-output.patch b/0001-Add-mandir-to-dump-config-output.patch index e55b4c1..d3703fb 100644 --- a/0001-Add-mandir-to-dump-config-output.patch +++ b/0001-Add-mandir-to-dump-config-output.patch @@ -1,7 +1,7 @@ From 5294b7d8cc011f8b5e068aad744f612df7414a82 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 31 Oct 2015 13:24:52 +0000 -Subject: [PATCH 1/3] Add mandir to --dump-config output. +Subject: [PATCH 1/5] Add mandir to --dump-config output. This is useful for external plugins that want to install a man page. diff --git a/0002-Update-TODO.patch b/0002-Update-TODO.patch index e93c237..c59c910 100644 --- a/0002-Update-TODO.patch +++ b/0002-Update-TODO.patch @@ -1,7 +1,7 @@ From 4b562134c3dad1a84aa92c1658e72046569e1570 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 15:34:57 +0000 -Subject: [PATCH 2/3] Update TODO. +Subject: [PATCH 2/5] Update TODO. --- TODO | 5 +++++ diff --git a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch index 212f6fa..940b242 100644 --- a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +++ b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch @@ -1,7 +1,7 @@ From f93807114634d58ca2ef0d64f7637ebd87e48a50 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 17:08:51 +0000 -Subject: [PATCH 3/3] Add support for newstyle NBD protocol (RHBZ#1297100). +Subject: [PATCH 3/5] Add support for newstyle NBD protocol (RHBZ#1297100). --- .gitignore | 1 + diff --git a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch new file mode 100644 index 0000000..5919543 --- /dev/null +++ b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch @@ -0,0 +1,49 @@ +From 0759d15aa3649d088eeae91fcd174d0b37e1ccde Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 11 Jan 2016 19:02:53 +0000 +Subject: [PATCH 4/5] xz: Fix various printf warnings on 32 bit. + +xzfile.c: In function 'xzfile_read_block': +xzfile.c:456:19: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'uint64_t {aka long long unsigned int}' [-Wformat=] + nbdkit_error ("malloc (%zu bytes): %m\n" + ^ +xz.c: In function 'xz_close': +xz.c:191:17: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'size_t {aka unsigned int}' [-Wformat=] + nbdkit_debug ("cache: hits = %" PRIu64 ", misses = %" PRIu64, + ^ +xz.c:191:17: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=] +--- + plugins/xz/xz.c | 3 +-- + plugins/xz/xzfile.c | 2 +- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/plugins/xz/xz.c b/plugins/xz/xz.c +index 9a1f5e5..437f798 100644 +--- a/plugins/xz/xz.c ++++ b/plugins/xz/xz.c +@@ -188,8 +188,7 @@ xz_close (void *handle) + + blkcache_get_stats (h->c, &stats); + +- nbdkit_debug ("cache: hits = %" PRIu64 ", misses = %" PRIu64, +- stats.hits, stats.misses); ++ nbdkit_debug ("cache: hits = %zu, misses = %zu", stats.hits, stats.misses); + + xzfile_close (h->xz); + free_blkcache (h->c); +diff --git a/plugins/xz/xzfile.c b/plugins/xz/xzfile.c +index fcc2937..3633099 100644 +--- a/plugins/xz/xzfile.c ++++ b/plugins/xz/xzfile.c +@@ -453,7 +453,7 @@ xzfile_read_block (xzfile *xz, uint64_t offset, + + data = malloc (*size_rtn); + if (data == NULL) { +- nbdkit_error ("malloc (%zu bytes): %m\n" ++ nbdkit_error ("malloc (%" PRIu64 " bytes): %m\n" + "NOTE: If this error occurs, you need to recompress your xz files with a smaller block size. Use: 'xz --block-size=16777216 ...'.", + *size_rtn); + goto err1; +-- +2.5.0 + diff --git a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch new file mode 100644 index 0000000..b16153e --- /dev/null +++ b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch @@ -0,0 +1,28 @@ +From b6db2f65596470492f0ad76d1ed63ddb98b17167 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 11 Jan 2016 19:46:37 +0000 +Subject: [PATCH 5/5] ocaml: Avoid race when building NBDKit.cmi. + +If both the NBDKit.cmi and NBDKit.cmx builds run in parallel, both +will try to build NBDKit.cmi, resulting in a corrupt NBDKit.cmi file. +Avoid this by adding an extra dependency. +--- + plugins/ocaml/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am +index d4776b3..f63ba33 100644 +--- a/plugins/ocaml/Makefile.am ++++ b/plugins/ocaml/Makefile.am +@@ -43,7 +43,7 @@ ocamllib_DATA = NBDKit.mli NBDKit.cmi NBDKit.cmx NBDKit.o + NBDKit.cmi: NBDKit.mli + $(OCAMLC) -c $< + +-NBDKit.cmx: NBDKit.ml ++NBDKit.cmx: NBDKit.ml NBDKit.cmi + $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< + NBDKit.o: NBDKit.cmx + +-- +2.5.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 9fa6e47..f23a77c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -18,7 +18,9 @@ Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz Patch1: 0001-Add-mandir-to-dump-config-output.patch Patch2: 0002-Update-TODO.patch Patch3: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch -# Because patch3 patches Makefile.am, we need: +Patch4: 0004-xz-Fix-various-printf-warnings-on-32-bit.patch +Patch5: 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +# Because patch3 & patch5 patches Makefile.am, we need: BuildRequires: automake, autoconf, libtool BuildRequires: /usr/bin/pod2man @@ -360,7 +362,7 @@ make check %changelog -* Mon Jan 11 2016 Richard W.M. Jones - 1.1.11-2 +* Mon Jan 11 2016 Richard W.M. Jones - 1.1.11-3 - Add support for newstyle NBD protocol (RHBZ#1297100). * Sat Oct 31 2015 Richard W.M. Jones - 1.1.11-1 From 6079b4933dd5ec2e47eb3ec70cfa8550542574ca Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 4 Feb 2016 09:07:55 +0000 Subject: [PATCH 015/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index f23a77c..a4f4dc0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -362,6 +362,9 @@ make check %changelog +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Mon Jan 11 2016 Richard W.M. Jones - 1.1.11-3 - Add support for newstyle NBD protocol (RHBZ#1297100). From e45c543ca3a17712384865c51c327b7406253f83 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 5 Feb 2016 18:15:24 +0000 Subject: [PATCH 016/683] Don't run tests on x86, because kernel is broken there (https://bugzilla.redhat.com/show_bug.cgi?id=1302071) --- nbdkit.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a4f4dc0..d4bd6ce 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -258,9 +258,12 @@ export LIBGUESTFS_TRACE=1 # Unlikely that libguestfs will work on ARM and PPC, so don't try running the # tests there. %ifnarch %{arm} ppc %{power64} +# Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 +%ifnarch %{ix86} make check %endif %endif +%endif %ifarch %{ocaml_native_compiler} @@ -362,6 +365,10 @@ make check %changelog +* Fri Feb 05 2016 Richard W.M. Jones - 1.1.11-5 +- Don't run tests on x86, because kernel is broken there + (https://bugzilla.redhat.com/show_bug.cgi?id=1302071) + * Thu Feb 04 2016 Fedora Release Engineering - 1.1.11-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 53205f9dca94fe8f9f54ad375e9151b4516791a1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 9 Mar 2016 12:13:16 +0000 Subject: [PATCH 017/683] When tests fail, dump out test-suite.log so we can debug it. --- nbdkit.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d4bd6ce..220d014 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -260,7 +260,10 @@ export LIBGUESTFS_TRACE=1 %ifnarch %{arm} ppc %{power64} # Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 %ifnarch %{ix86} -make check +make check || { + cat tests/test-suite.log + exit 1 + } %endif %endif %endif @@ -365,6 +368,9 @@ make check %changelog +* Wed Mar 09 2016 Richard W.M. Jones - 1.1.11-6 +- When tests fail, dump out test-suite.log so we can debug it. + * Fri Feb 05 2016 Richard W.M. Jones - 1.1.11-5 - Don't run tests on x86, because kernel is broken there (https://bugzilla.redhat.com/show_bug.cgi?id=1302071) From 06bdcafa60377362ec4871333ab841363a968bd9 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 17 May 2016 03:29:45 +0200 Subject: [PATCH 018/683] Perl 5.24 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 220d014..3c5c65d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 6%{?dist} +Release: 7%{?dist} Summary: NBD server License: BSD @@ -368,6 +368,9 @@ make check || { %changelog +* Tue May 17 2016 Jitka Plesnikova - 1.1.11-7 +- Perl 5.24 rebuild + * Wed Mar 09 2016 Richard W.M. Jones - 1.1.11-6 - When tests fail, dump out test-suite.log so we can debug it. From 13cfa83add576fbba84433cc6b8c615d903296a8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 19 May 2016 12:18:38 +0100 Subject: [PATCH 019/683] Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). - Reenable tests on x86. --- 0001-Add-mandir-to-dump-config-output.patch | 4 +- 0002-Update-TODO.patch | 4 +- ...r-newstyle-NBD-protocol-RHBZ-1297100.patch | 4 +- ...ix-various-printf-warnings-on-32-bit.patch | 4 +- ...-Avoid-race-when-building-NBDKit.cmi.patch | 4 +- ...t-the-o-oldstyle-command-line-option.patch | 154 ++++++++ ...mited-range-of-errno-values-to-the-c.patch | 116 ++++++ ...l-Pack-fixed_new_option_reply-struct.patch | 27 ++ ...me-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch | 48 +++ 0010-Implement-newstyle-export-names.patch | 360 ++++++++++++++++++ nbdkit.spec | 25 +- 11 files changed, 731 insertions(+), 19 deletions(-) create mode 100644 0006-Test-the-o-oldstyle-command-line-option.patch create mode 100644 0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch create mode 100644 0008-protocol-Pack-fixed_new_option_reply-struct.patch create mode 100644 0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch create mode 100644 0010-Implement-newstyle-export-names.patch diff --git a/0001-Add-mandir-to-dump-config-output.patch b/0001-Add-mandir-to-dump-config-output.patch index d3703fb..0152b67 100644 --- a/0001-Add-mandir-to-dump-config-output.patch +++ b/0001-Add-mandir-to-dump-config-output.patch @@ -1,7 +1,7 @@ From 5294b7d8cc011f8b5e068aad744f612df7414a82 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 31 Oct 2015 13:24:52 +0000 -Subject: [PATCH 1/5] Add mandir to --dump-config output. +Subject: [PATCH 01/10] Add mandir to --dump-config output. This is useful for external plugins that want to install a man page. @@ -35,5 +35,5 @@ index cd676c0..1248a8e 100644 printf ("%s=%s\n", "plugindir", plugindir); printf ("%s=%s\n", "sbindir", sbindir); -- -2.5.0 +2.7.4 diff --git a/0002-Update-TODO.patch b/0002-Update-TODO.patch index c59c910..7f2c244 100644 --- a/0002-Update-TODO.patch +++ b/0002-Update-TODO.patch @@ -1,7 +1,7 @@ From 4b562134c3dad1a84aa92c1658e72046569e1570 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 15:34:57 +0000 -Subject: [PATCH 2/5] Update TODO. +Subject: [PATCH 02/10] Update TODO. --- TODO | 5 +++++ @@ -31,5 +31,5 @@ index bcf2276..a05aa5b 100644 NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and NBDKIT_THREAD_MODEL_PARALLEL are the same, because we handle -- -2.5.0 +2.7.4 diff --git a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch index 940b242..05f2930 100644 --- a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +++ b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch @@ -1,7 +1,7 @@ From f93807114634d58ca2ef0d64f7637ebd87e48a50 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 17:08:51 +0000 -Subject: [PATCH 3/5] Add support for newstyle NBD protocol (RHBZ#1297100). +Subject: [PATCH 03/10] Add support for newstyle NBD protocol (RHBZ#1297100). --- .gitignore | 1 + @@ -756,5 +756,5 @@ index 7abf5af..c369150 100644 /* Declare program_name. */ #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1 -- -2.5.0 +2.7.4 diff --git a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch index 5919543..2718a4d 100644 --- a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch +++ b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch @@ -1,7 +1,7 @@ From 0759d15aa3649d088eeae91fcd174d0b37e1ccde Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:02:53 +0000 -Subject: [PATCH 4/5] xz: Fix various printf warnings on 32 bit. +Subject: [PATCH 04/10] xz: Fix various printf warnings on 32 bit. xzfile.c: In function 'xzfile_read_block': xzfile.c:456:19: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'uint64_t {aka long long unsigned int}' [-Wformat=] @@ -45,5 +45,5 @@ index fcc2937..3633099 100644 *size_rtn); goto err1; -- -2.5.0 +2.7.4 diff --git a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch index b16153e..9ffed79 100644 --- a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +++ b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch @@ -1,7 +1,7 @@ From b6db2f65596470492f0ad76d1ed63ddb98b17167 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:46:37 +0000 -Subject: [PATCH 5/5] ocaml: Avoid race when building NBDKit.cmi. +Subject: [PATCH 05/10] ocaml: Avoid race when building NBDKit.cmi. If both the NBDKit.cmi and NBDKit.cmx builds run in parallel, both will try to build NBDKit.cmi, resulting in a corrupt NBDKit.cmi file. @@ -24,5 +24,5 @@ index d4776b3..f63ba33 100644 NBDKit.o: NBDKit.cmx -- -2.5.0 +2.7.4 diff --git a/0006-Test-the-o-oldstyle-command-line-option.patch b/0006-Test-the-o-oldstyle-command-line-option.patch new file mode 100644 index 0000000..010f817 --- /dev/null +++ b/0006-Test-the-o-oldstyle-command-line-option.patch @@ -0,0 +1,154 @@ +From 1c359d1140fee575cf478e2b4bf0c5ca0af9d05e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 11 Jan 2016 20:34:28 +0000 +Subject: [PATCH 06/10] Test the -o (oldstyle) command line option. + +--- + .gitignore | 1 + + tests/Makefile.am | 8 ++++ + tests/test-oldstyle.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 111 insertions(+) + create mode 100644 tests/test-oldstyle.c + +diff --git a/.gitignore b/.gitignore +index 9ea072f..bc151ca 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -46,6 +46,7 @@ Makefile.in + /tests/test-newstyle + /tests/test-ocaml + /tests/test-ocaml-plugin.so ++/tests/test-oldstyle + /tests/test-perl + /tests/test-python + /tests/test-streaming +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 8d27032..1e6114c 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -111,6 +111,14 @@ test_newstyle_SOURCES = test-newstyle.c test.h + test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) + ++# oldstyle protocol test. ++check_PROGRAMS += test-oldstyle ++TESTS += test-oldstyle ++ ++test_oldstyle_SOURCES = test-oldstyle.c test.h ++test_oldstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) ++test_oldstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) ++ + # gzip plugin test. + if HAVE_ZLIB + if HAVE_GUESTFISH +diff --git a/tests/test-oldstyle.c b/tests/test-oldstyle.c +new file mode 100644 +index 0000000..d809a0c +--- /dev/null ++++ b/tests/test-oldstyle.c +@@ -0,0 +1,102 @@ ++/* nbdkit ++ * Copyright (C) 2013-2016 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "test.h" ++ ++int ++main (int argc, char *argv[]) ++{ ++ guestfs_h *g; ++ int r; ++ char *data; ++ size_t i, size; ++ ++ if (test_start_nbdkit ("-o", NBDKIT_PLUGIN ("file"), "file=file-data", ++ NULL) == -1) ++ exit (EXIT_FAILURE); ++ ++ g = guestfs_create (); ++ if (g == NULL) { ++ perror ("guestfs_create"); ++ exit (EXIT_FAILURE); ++ } ++ ++ /* Using exportname = "" causes qemu to use the oldstyle protocol. */ ++ r = guestfs_add_drive_opts (g, "", ++ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", ++ GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", ++ GUESTFS_ADD_DRIVE_OPTS_SERVER, server, ++ -1); ++ if (r == -1) ++ exit (EXIT_FAILURE); ++ ++ if (guestfs_launch (g) == -1) ++ exit (EXIT_FAILURE); ++ ++ /* Check the data in the file is \x01-\x08 repeated 512 times. */ ++ data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); ++ if (!data) ++ exit (EXIT_FAILURE); ++ if (size != 8 * 512) { ++ fprintf (stderr, "%s FAILED: unexpected size (actual: %zu, expected: 512)\n", ++ program_name, size); ++ exit (EXIT_FAILURE); ++ } ++ ++ for (i = 0; i < 512 * 8; i += 8) { ++ if (data[i] != 1 || data[i+1] != 2 || ++ data[i+2] != 3 || data[i+3] != 4 || ++ data[i+4] != 5 || data[i+5] != 6 || ++ data[i+6] != 7 || data[i+7] != 8) { ++ fprintf (stderr, "%s FAILED: unexpected data returned at offset %zu\n", ++ program_name, i); ++ exit (EXIT_FAILURE); ++ } ++ } ++ ++ free (data); ++ ++ guestfs_close (g); ++ exit (EXIT_SUCCESS); ++} +-- +2.7.4 + diff --git a/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch b/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch new file mode 100644 index 0000000..e978393 --- /dev/null +++ b/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch @@ -0,0 +1,116 @@ +From f141228d1b6baddadcd516137d76b3d852af8cde Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 12 Jan 2016 12:16:48 +0000 +Subject: [PATCH 07/10] protocol: Send limited range of errno values to the + client. + +See the proposal here: +http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 + +This implementation is based on Paolo Bonzini's for qemu-nbd: +http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb +--- + TODO | 6 ------ + src/connections.c | 36 +++++++++++++++++++++++++++++++++++- + src/protocol.h | 12 +++++++++++- + 3 files changed, 46 insertions(+), 8 deletions(-) + +diff --git a/TODO b/TODO +index d39e64c..177a07c 100644 +--- a/TODO ++++ b/TODO +@@ -1,9 +1,3 @@ +-* There is a proposal to narrow the range of possible errnos that the +- server can return, and also to encode them in an OS-independent way. +- See: http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 +- Implemented in QEMU already: +- http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb +- + * Can we do language bindings using #!'s? + You would enter: + nbdkit foo [args] +diff --git a/src/connections.c b/src/connections.c +index 6bdf4ef..f0a7662 100644 +--- a/src/connections.c ++++ b/src/connections.c +@@ -639,6 +639,31 @@ skip_over_write_buffer (int sock, size_t count) + } + } + ++/* Convert a system errno to an NBD_E* error code. */ ++static int ++nbd_errno (int error) ++{ ++ switch (error) { ++ case 0: ++ return NBD_SUCCESS; ++ case EPERM: ++ return NBD_EPERM; ++ case EIO: ++ return NBD_EIO; ++ case ENOMEM: ++ return NBD_ENOMEM; ++#ifdef EDQUOT ++ case EDQUOT: ++#endif ++ case EFBIG: ++ case ENOSPC: ++ return NBD_ENOSPC; ++ case EINVAL: ++ default: ++ return NBD_EINVAL; ++ } ++} ++ + static int + recv_request_send_reply (struct connection *conn) + { +@@ -722,7 +747,16 @@ recv_request_send_reply (struct connection *conn) + send_reply: + reply.magic = htobe32 (NBD_REPLY_MAGIC); + reply.handle = request.handle; +- reply.error = htobe32 (error); ++ reply.error = htobe32 (nbd_errno (error)); ++ ++ if (error != 0) { ++ /* Since we're about to send only the limited NBD_E* errno to the ++ * client, don't lose the information about what really happened ++ * on the server side. Make sure there is a way for the operator ++ * to retrieve the real error. ++ */ ++ debug ("sending error reply: %s", strerror (error)); ++ } + + r = xwrite (conn->sockout, &reply, sizeof reply); + if (r == -1) { +diff --git a/src/protocol.h b/src/protocol.h +index 2f9a341..fcbc145 100644 +--- a/src/protocol.h ++++ b/src/protocol.h +@@ -118,7 +118,7 @@ struct request { + /* Reply (server -> client). */ + struct reply { + uint32_t magic; /* NBD_REPLY_MAGIC. */ +- uint32_t error; /* 0 = ok, error code */ ++ uint32_t error; /* NBD_SUCCESS or one of NBD_E*. */ + uint64_t handle; /* Opaque handle. */ + } __attribute__((packed)); + +@@ -133,4 +133,14 @@ struct reply { + #define NBD_CMD_MASK_COMMAND 0xffff + #define NBD_CMD_FLAG_FUA (1<<16) + ++/* Error codes (previously errno). ++ * See http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb ++ */ ++#define NBD_SUCCESS 0 ++#define NBD_EPERM 1 ++#define NBD_EIO 5 ++#define NBD_ENOMEM 12 ++#define NBD_EINVAL 22 ++#define NBD_ENOSPC 28 ++ + #endif /* NBDKIT_PROTOCOL_H */ +-- +2.7.4 + diff --git a/0008-protocol-Pack-fixed_new_option_reply-struct.patch b/0008-protocol-Pack-fixed_new_option_reply-struct.patch new file mode 100644 index 0000000..f46740d --- /dev/null +++ b/0008-protocol-Pack-fixed_new_option_reply-struct.patch @@ -0,0 +1,27 @@ +From e5a945ea1e759e6441773c1e7663a1ac2492c8e4 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 17 May 2016 19:40:29 +0100 +Subject: [PATCH 08/10] protocol: Pack fixed_new_option_reply struct. + +This struct was not packed, but we were sending a reply by sending the +struct directly onto the wire. I think we got away with it, but not good. +--- + src/protocol.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/protocol.h b/src/protocol.h +index fcbc145..de511a6 100644 +--- a/src/protocol.h ++++ b/src/protocol.h +@@ -72,7 +72,7 @@ struct fixed_new_option_reply { + uint32_t reply; /* NBD_REP_* */ + uint32_t replylen; /* we always send zero at the moment */ + /* reply data follows, but we currently never send any */ +-}; ++} __attribute__((packed)); + + #define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) + +-- +2.7.4 + diff --git a/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch b/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch new file mode 100644 index 0000000..fbd639c --- /dev/null +++ b/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch @@ -0,0 +1,48 @@ +From f989fbad9b0527925c38f4350190cb1536a4d8c2 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 17 May 2016 19:42:35 +0100 +Subject: [PATCH 09/10] protocol: Rename NEW_OPTION_REPLY as NBD_REP_MAGIC. + +To be consistent with qemu's implementation. +--- + src/connections.c | 2 +- + src/protocol.h | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/connections.c b/src/connections.c +index f0a7662..34566b3 100644 +--- a/src/connections.c ++++ b/src/connections.c +@@ -235,7 +235,7 @@ send_newstyle_option_reply (struct connection *conn, + { + struct fixed_new_option_reply fixed_new_option_reply; + +- fixed_new_option_reply.magic = htobe64 (NEW_OPTION_REPLY); ++ fixed_new_option_reply.magic = htobe64 (NBD_REP_MAGIC); + fixed_new_option_reply.option = htobe32 (option); + fixed_new_option_reply.reply = htobe32 (reply); + fixed_new_option_reply.replylen = htobe32 (0); +diff --git a/src/protocol.h b/src/protocol.h +index de511a6..71a8098 100644 +--- a/src/protocol.h ++++ b/src/protocol.h +@@ -67,14 +67,14 @@ struct new_option { + + /* Fixed newstyle handshake reply message. */ + struct fixed_new_option_reply { +- uint64_t magic; /* NEW_OPTION_REPLY, network byte order */ ++ uint64_t magic; /* NBD_REP_MAGIC, network byte order */ + uint32_t option; /* option we are replying to */ + uint32_t reply; /* NBD_REP_* */ + uint32_t replylen; /* we always send zero at the moment */ + /* reply data follows, but we currently never send any */ + } __attribute__((packed)); + +-#define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) ++#define NBD_REP_MAGIC UINT64_C(0x3e889045565a9) + + /* New-style handshake server reply. */ + struct new_handshake_finish { +-- +2.7.4 + diff --git a/0010-Implement-newstyle-export-names.patch b/0010-Implement-newstyle-export-names.patch new file mode 100644 index 0000000..e767bc1 --- /dev/null +++ b/0010-Implement-newstyle-export-names.patch @@ -0,0 +1,360 @@ +From 0095b003b56894baad8e6789d523cf3c51905c05 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 17 May 2016 19:43:16 +0100 +Subject: [PATCH 10/10] Implement newstyle export names. + +This is now required by qemu >= 2.6. See this lengthy qemu-devel +thread for details: +https://lists.nongnu.org/archive/html/qemu-devel/2016-05/threads.html#02752 +--- + TODO | 13 ------------- + docs/nbdkit.pod | 52 ++++++++++++++++++++++++++++++++------------------- + src/connections.c | 49 ++++++++++++++++++++++++++++++++++++++++-------- + src/internal.h | 1 + + src/main.c | 32 +++++++++++++++++++++++-------- + src/protocol.h | 3 +-- + tests/test-newstyle.c | 7 +++++-- + 7 files changed, 105 insertions(+), 52 deletions(-) + +diff --git a/TODO b/TODO +index 177a07c..30bf72e 100644 +--- a/TODO ++++ b/TODO +@@ -11,19 +11,6 @@ + + * Performance - measure and improve it. + +-* Implement export names. With export names it should be possible to +- have multiple plugins on the command line (each responding to a +- different export of course): +- +- nbdkit --export /foo plugin.so --export /bar another-plugin.so +- +- Note it should also be possible to either elect one plugin as the +- default that accepts all exportnames, or to divide the export name +- "space" up using regexps or wildcards. +- +- Export names are not actually paths (although that is how they are +- often used), but arbitrary UTF-8 text strings. +- + * Implement true parallel request handling. Currently + NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and + NBDKIT_THREAD_MODEL_PARALLEL are the same, because we handle +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index 7204a38..728aad3 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -6,7 +6,7 @@ nbdkit - A toolkit for creating NBD servers + + =head1 SYNOPSIS + +- nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR] ++ nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] + [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] + [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] + PLUGIN [key=value [key=value [...]]] +@@ -74,6 +74,19 @@ Display brief command line usage information and exit. + + Dump out the compile-time configuration values and exit. + ++=item B<-e> EXPORTNAME ++ ++=item B<--export> EXPORTNAME ++ ++=item B<--export-name> EXPORTNAME ++ ++=item B<--exportname> EXPORTNAME ++ ++Set the exportname and use the newstyle protocol (implies I<-n>). ++ ++If not set, exportname C<""> (empty string) is used. Exportnames are ++not allowed with the oldstyle protocol. ++ + =item B<-f> + + =item B<--foreground> +@@ -118,9 +131,10 @@ protocol. See L below. + + =item B<--oldstyle> + +-Use the oldstyle NBD protocol. This is currently the default, so this +-flag does nothing, but it is possible we might change the default +-protocol in future. See L below. ++Use the oldstyle NBD protocol. This is currently the default (unless ++you use I<-n> or I<-e>), so this flag does nothing, but it is possible ++we might change the default protocol in future. See L below. + + =item B<-P> PIDFILE + +@@ -307,27 +321,29 @@ use depends on the client and cannot be known in advance, nor can it + be negotiated from the server side. + + nbdkit currently defaults to the oldstyle protocol for compatibility +-with qemu and libguestfs. This is also the same behaviour as +-qemu-nbd. Use the I<-n> or I<--newstyle> flag on the command line to +-use the newstyle protocol. Use the I<-o> or I<--oldstyle> flag to +-force the oldstyle protocol. ++with qemu and libguestfs. This is also the same behaviour as qemu-nbd ++E 2.5. Use the I<-n> or I<--newstyle> flag on the command line to ++use the newstyle protocol. Use the I<-e> or I<--exportname> flag to ++set the exportname for the newstyle protocol. Use the I<-o> or ++I<--oldstyle> flag to force the oldstyle protocol. + + Some common clients and the protocol they require: + +- Client Protocol ++ Client Protocol + ------------------------------------------------------------ +- qemu without exportname oldstyle +- qemu with exportname newstyle +- nbd-client < 3.10 client can talk either protocol +- nbd-client >= 3.10 newstyle ++ qemu <= 2.5 without exportname oldstyle ++ qemu <= 2.5 with exportname newstyle ++ qemu >= 2.6 client can talk either protocol ++ nbd-client < 3.10 client can talk either protocol ++ nbd-client >= 3.10 newstyle + +-If you use qemu without the exportname field against a newstyle +-server, it will give the error: ++If you use qemu E 2.5 without the exportname field against a ++newstyle server, it will give the error: + + Server requires an export name + +-If you use qemu with the exportname field against an oldstyle server, +-it will give the error: ++If you use qemu E 2.5 with the exportname field against an ++oldstyle server, it will give the error: + + Server does not support export names + +@@ -341,8 +357,6 @@ document says should be the case (which isn't based in reality), then + you should always use newstyle when using port 10809, and use oldstyle + on all other ports. + +-nbdkit ignores export names at present (see also the C file). +- + =head1 SIGNALS + + C responds to the following signals: +diff --git a/src/connections.c b/src/connections.c +index 34566b3..0c93f35 100644 +--- a/src/connections.c ++++ b/src/connections.c +@@ -222,13 +222,8 @@ _negotiate_handshake_oldstyle (struct connection *conn) + return 0; + } + +-/* Receive newstyle options. +- * +- * Currently we ignore NBD_OPT_EXPORT_NAME (see TODO), we close the +- * connection if sent NBD_OPT_ABORT, we send a canned list of +- * options for NBD_OPT_LIST, and we send NBD_REP_ERR_UNSUP for +- * everything else. +- */ ++/* Receive newstyle options. */ ++ + static int + send_newstyle_option_reply (struct connection *conn, + uint32_t option, uint32_t reply) +@@ -250,6 +245,39 @@ send_newstyle_option_reply (struct connection *conn, + } + + static int ++send_newstyle_option_reply_exportname (struct connection *conn, ++ uint32_t option, uint32_t reply, ++ const char *exportname) ++{ ++ struct fixed_new_option_reply fixed_new_option_reply; ++ size_t name_len = strlen (exportname); ++ uint32_t len; ++ ++ fixed_new_option_reply.magic = htobe64 (NBD_REP_MAGIC); ++ fixed_new_option_reply.option = htobe32 (option); ++ fixed_new_option_reply.reply = htobe32 (reply); ++ fixed_new_option_reply.replylen = htobe32 (name_len + sizeof (len)); ++ ++ if (xwrite (conn->sockout, ++ &fixed_new_option_reply, sizeof fixed_new_option_reply) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ ++ len = htobe32 (name_len); ++ if (xwrite (conn->sockout, &len, sizeof len) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ if (xwrite (conn->sockout, exportname, name_len) == -1) { ++ nbdkit_error ("write: %m"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static int + _negotiate_handshake_newstyle_options (struct connection *conn) + { + struct new_option new_option; +@@ -309,7 +337,12 @@ _negotiate_handshake_newstyle_options (struct connection *conn) + continue; + } + +- /* Since we don't support export names, there is nothing to list. */ ++ /* Send back the exportname. */ ++ debug ("newstyle negotiation: advertising export '%s'", exportname); ++ if (send_newstyle_option_reply_exportname (conn, option, NBD_REP_SERVER, ++ exportname) == -1) ++ return -1; ++ + if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) + return -1; + break; +diff --git a/src/internal.h b/src/internal.h +index 0603779..f58086a 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -48,6 +48,7 @@ + #endif + + /* main.c */ ++extern const char *exportname; + extern const char *ipaddr; + extern int newstyle; + extern const char *port; +diff --git a/src/main.c b/src/main.c +index db4361e..9529f19 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -65,6 +65,7 @@ static void fork_into_background (void); + static uid_t parseuser (const char *); + static gid_t parsegroup (const char *); + ++const char *exportname; /* -e */ + int foreground; /* -f */ + const char *ipaddr; /* -i */ + int newstyle; /* -n */ +@@ -84,10 +85,13 @@ static char *random_fifo = NULL; + + enum { HELP_OPTION = CHAR_MAX + 1 }; + +-static const char *short_options = "fg:i:nop:P:rsu:U:vV"; ++static const char *short_options = "e:fg:i:nop:P:rsu:U:vV"; + static const struct option long_options[] = { + { "help", 0, NULL, HELP_OPTION }, + { "dump-config",0, NULL, 0 }, ++ { "export", 1, NULL, 'e' }, ++ { "export-name",1, NULL, 'e' }, ++ { "exportname", 1, NULL, 'e' }, + { "foreground", 0, NULL, 'f' }, + { "no-fork", 0, NULL, 'f' }, + { "group", 1, NULL, 'g' }, +@@ -115,7 +119,7 @@ static const struct option long_options[] = { + static void + usage (void) + { +- printf ("nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]\n" ++ printf ("nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" + " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" + " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" + " PLUGIN [key=value [key=value [...]]]\n" +@@ -173,6 +177,11 @@ main (int argc, char *argv[]) + } + break; + ++ case 'e': ++ exportname = optarg; ++ newstyle = 1; ++ break; ++ + case 'f': + foreground = 1; + break; +@@ -190,9 +199,6 @@ main (int argc, char *argv[]) + break; + + case 'o': +- /* XXX When we add support for exportnames, we will need to +- * ensure that the user does not use -o + --export. +- */ + newstyle = 0; + break; + +@@ -263,12 +269,22 @@ main (int argc, char *argv[]) + exit (EXIT_FAILURE); + } + ++ /* Oldstyle protocol + exportname not allowed. */ ++ if (newstyle == 0 && exportname != NULL) { ++ fprintf (stderr, ++ "%s: cannot use oldstyle protocol (-o) and exportname (-e)\n", ++ program_name); ++ exit (EXIT_FAILURE); ++ } ++ ++ /* If exportname was not set on the command line, use "". */ ++ if (exportname == NULL) ++ exportname = ""; ++ + /* Remaining command line arguments define the plugins and plugin + * configuration. If --help or --version was specified, we still + * partially parse these in order that we can display the per-plugin +- * help/version information. In future (when the new protocol and +- * export names are permitted) we will allow multiple plugins to be +- * given, but at the moment only one plugin is allowed. ++ * help/version information. + */ + while (optind < argc) { + const char *filename = argv[optind]; +diff --git a/src/protocol.h b/src/protocol.h +index 71a8098..c885d9e 100644 +--- a/src/protocol.h ++++ b/src/protocol.h +@@ -70,8 +70,7 @@ struct fixed_new_option_reply { + uint64_t magic; /* NBD_REP_MAGIC, network byte order */ + uint32_t option; /* option we are replying to */ + uint32_t reply; /* NBD_REP_* */ +- uint32_t replylen; /* we always send zero at the moment */ +- /* reply data follows, but we currently never send any */ ++ uint32_t replylen; + } __attribute__((packed)); + + #define NBD_REP_MAGIC UINT64_C(0x3e889045565a9) +diff --git a/tests/test-newstyle.c b/tests/test-newstyle.c +index b1d8ce7..adcc568 100644 +--- a/tests/test-newstyle.c ++++ b/tests/test-newstyle.c +@@ -44,6 +44,8 @@ + + #include "test.h" + ++#define EXPORTNAME "/" ++ + int + main (int argc, char *argv[]) + { +@@ -52,7 +54,8 @@ main (int argc, char *argv[]) + char *data; + size_t i, size; + +- if (test_start_nbdkit ("-n", NBDKIT_PLUGIN ("file"), "file=file-data", ++ if (test_start_nbdkit ("-e", EXPORTNAME, ++ "-n", NBDKIT_PLUGIN ("file"), "file=file-data", + NULL) == -1) + exit (EXIT_FAILURE); + +@@ -63,7 +66,7 @@ main (int argc, char *argv[]) + } + + /* Using any exportname causes qemu to use the newstyle protocol. */ +- r = guestfs_add_drive_opts (g, "/" /* exportname */, ++ r = guestfs_add_drive_opts (g, EXPORTNAME, + GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", + GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", + GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +-- +2.7.4 + diff --git a/nbdkit.spec b/nbdkit.spec index 3c5c65d..1e557f6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 7%{?dist} +Release: 8%{?dist} Summary: NBD server License: BSD @@ -15,11 +15,17 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz # All patches are upstream since 1.1.11. -Patch1: 0001-Add-mandir-to-dump-config-output.patch -Patch2: 0002-Update-TODO.patch -Patch3: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch -Patch4: 0004-xz-Fix-various-printf-warnings-on-32-bit.patch -Patch5: 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +Patch0001: 0001-Add-mandir-to-dump-config-output.patch +Patch0002: 0002-Update-TODO.patch +Patch0003: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +Patch0004: 0004-xz-Fix-various-printf-warnings-on-32-bit.patch +Patch0005: 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +Patch0006: 0006-Test-the-o-oldstyle-command-line-option.patch +Patch0007: 0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch +Patch0008: 0008-protocol-Pack-fixed_new_option_reply-struct.patch +Patch0009: 0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch +Patch0010: 0010-Implement-newstyle-export-names.patch + # Because patch3 & patch5 patches Makefile.am, we need: BuildRequires: automake, autoconf, libtool @@ -258,15 +264,12 @@ export LIBGUESTFS_TRACE=1 # Unlikely that libguestfs will work on ARM and PPC, so don't try running the # tests there. %ifnarch %{arm} ppc %{power64} -# Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 -%ifnarch %{ix86} make check || { cat tests/test-suite.log exit 1 } %endif %endif -%endif %ifarch %{ocaml_native_compiler} @@ -368,6 +371,10 @@ make check || { %changelog +* Thu May 19 2016 Richard W.M. Jones - 1.1.11-8 +- Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). +- Reenable tests on x86. + * Tue May 17 2016 Jitka Plesnikova - 1.1.11-7 - Perl 5.24 rebuild From f6927d8f947f18978c410f2951f2b9789313d18e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 19 May 2016 12:54:25 +0100 Subject: [PATCH 020/683] Disable tests on i686, kernel is still broken there. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1e557f6..3b42d80 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -263,7 +263,8 @@ export LIBGUESTFS_TRACE=1 %if 0%{?fedora} >= 19 # Unlikely that libguestfs will work on ARM and PPC, so don't try running the # tests there. -%ifnarch %{arm} ppc %{power64} +# Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 +%ifnarch %{arm} %{ix86} ppc %{power64} make check || { cat tests/test-suite.log exit 1 @@ -373,7 +374,6 @@ make check || { %changelog * Thu May 19 2016 Richard W.M. Jones - 1.1.11-8 - Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). -- Reenable tests on x86. * Tue May 17 2016 Jitka Plesnikova - 1.1.11-7 - Perl 5.24 rebuild From 8686334b24a23d51f6285507323e95a54ca781fc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 23 May 2016 11:27:50 +0100 Subject: [PATCH 021/683] No change, just bump release number. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3b42d80..3669850 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 8%{?dist} +Release: 9%{?dist} Summary: NBD server License: BSD @@ -372,7 +372,7 @@ make check || { %changelog -* Thu May 19 2016 Richard W.M. Jones - 1.1.11-8 +* Fri May 23 2016 Richard W.M. Jones - 1.1.11-9 - Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). * Tue May 17 2016 Jitka Plesnikova - 1.1.11-7 From 552e5b3c730d65559953b70d5edfb1540e289fd4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 23 May 2016 11:28:55 +0100 Subject: [PATCH 022/683] Fix date in changelog. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3669850..5fe999c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -372,7 +372,7 @@ make check || { %changelog -* Fri May 23 2016 Richard W.M. Jones - 1.1.11-9 +* Mon May 23 2016 Richard W.M. Jones - 1.1.11-9 - Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). * Tue May 17 2016 Jitka Plesnikova - 1.1.11-7 From a85c67bc9628df0a2a36bca530d35a5694b17ae6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 25 May 2016 11:24:16 +0100 Subject: [PATCH 023/683] Add another upstream patch since 1.1.11. --- 0001-Add-mandir-to-dump-config-output.patch | 2 +- 0002-Update-TODO.patch | 2 +- ...r-newstyle-NBD-protocol-RHBZ-1297100.patch | 2 +- ...ix-various-printf-warnings-on-32-bit.patch | 2 +- ...-Avoid-race-when-building-NBDKit.cmi.patch | 2 +- ...t-the-o-oldstyle-command-line-option.patch | 2 +- ...mited-range-of-errno-values-to-the-c.patch | 2 +- ...l-Pack-fixed_new_option_reply-struct.patch | 2 +- ...me-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch | 2 +- 0010-Implement-newstyle-export-names.patch | 2 +- ...rest-of-option-when-replying-with-er.patch | 46 +++++++++++++++++++ nbdkit.spec | 6 ++- 12 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch diff --git a/0001-Add-mandir-to-dump-config-output.patch b/0001-Add-mandir-to-dump-config-output.patch index 0152b67..2822690 100644 --- a/0001-Add-mandir-to-dump-config-output.patch +++ b/0001-Add-mandir-to-dump-config-output.patch @@ -1,7 +1,7 @@ From 5294b7d8cc011f8b5e068aad744f612df7414a82 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 31 Oct 2015 13:24:52 +0000 -Subject: [PATCH 01/10] Add mandir to --dump-config output. +Subject: [PATCH 01/11] Add mandir to --dump-config output. This is useful for external plugins that want to install a man page. diff --git a/0002-Update-TODO.patch b/0002-Update-TODO.patch index 7f2c244..cc44a04 100644 --- a/0002-Update-TODO.patch +++ b/0002-Update-TODO.patch @@ -1,7 +1,7 @@ From 4b562134c3dad1a84aa92c1658e72046569e1570 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 15:34:57 +0000 -Subject: [PATCH 02/10] Update TODO. +Subject: [PATCH 02/11] Update TODO. --- TODO | 5 +++++ diff --git a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch index 05f2930..3d57823 100644 --- a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +++ b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch @@ -1,7 +1,7 @@ From f93807114634d58ca2ef0d64f7637ebd87e48a50 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 17:08:51 +0000 -Subject: [PATCH 03/10] Add support for newstyle NBD protocol (RHBZ#1297100). +Subject: [PATCH 03/11] Add support for newstyle NBD protocol (RHBZ#1297100). --- .gitignore | 1 + diff --git a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch index 2718a4d..f5c597b 100644 --- a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch +++ b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch @@ -1,7 +1,7 @@ From 0759d15aa3649d088eeae91fcd174d0b37e1ccde Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:02:53 +0000 -Subject: [PATCH 04/10] xz: Fix various printf warnings on 32 bit. +Subject: [PATCH 04/11] xz: Fix various printf warnings on 32 bit. xzfile.c: In function 'xzfile_read_block': xzfile.c:456:19: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'uint64_t {aka long long unsigned int}' [-Wformat=] diff --git a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch index 9ffed79..2096716 100644 --- a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +++ b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch @@ -1,7 +1,7 @@ From b6db2f65596470492f0ad76d1ed63ddb98b17167 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 19:46:37 +0000 -Subject: [PATCH 05/10] ocaml: Avoid race when building NBDKit.cmi. +Subject: [PATCH 05/11] ocaml: Avoid race when building NBDKit.cmi. If both the NBDKit.cmi and NBDKit.cmx builds run in parallel, both will try to build NBDKit.cmi, resulting in a corrupt NBDKit.cmi file. diff --git a/0006-Test-the-o-oldstyle-command-line-option.patch b/0006-Test-the-o-oldstyle-command-line-option.patch index 010f817..c565b47 100644 --- a/0006-Test-the-o-oldstyle-command-line-option.patch +++ b/0006-Test-the-o-oldstyle-command-line-option.patch @@ -1,7 +1,7 @@ From 1c359d1140fee575cf478e2b4bf0c5ca0af9d05e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jan 2016 20:34:28 +0000 -Subject: [PATCH 06/10] Test the -o (oldstyle) command line option. +Subject: [PATCH 06/11] Test the -o (oldstyle) command line option. --- .gitignore | 1 + diff --git a/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch b/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch index e978393..cfb11f4 100644 --- a/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch +++ b/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch @@ -1,7 +1,7 @@ From f141228d1b6baddadcd516137d76b3d852af8cde Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 12 Jan 2016 12:16:48 +0000 -Subject: [PATCH 07/10] protocol: Send limited range of errno values to the +Subject: [PATCH 07/11] protocol: Send limited range of errno values to the client. See the proposal here: diff --git a/0008-protocol-Pack-fixed_new_option_reply-struct.patch b/0008-protocol-Pack-fixed_new_option_reply-struct.patch index f46740d..230f688 100644 --- a/0008-protocol-Pack-fixed_new_option_reply-struct.patch +++ b/0008-protocol-Pack-fixed_new_option_reply-struct.patch @@ -1,7 +1,7 @@ From e5a945ea1e759e6441773c1e7663a1ac2492c8e4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 17 May 2016 19:40:29 +0100 -Subject: [PATCH 08/10] protocol: Pack fixed_new_option_reply struct. +Subject: [PATCH 08/11] protocol: Pack fixed_new_option_reply struct. This struct was not packed, but we were sending a reply by sending the struct directly onto the wire. I think we got away with it, but not good. diff --git a/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch b/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch index fbd639c..d931f77 100644 --- a/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch +++ b/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch @@ -1,7 +1,7 @@ From f989fbad9b0527925c38f4350190cb1536a4d8c2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 17 May 2016 19:42:35 +0100 -Subject: [PATCH 09/10] protocol: Rename NEW_OPTION_REPLY as NBD_REP_MAGIC. +Subject: [PATCH 09/11] protocol: Rename NEW_OPTION_REPLY as NBD_REP_MAGIC. To be consistent with qemu's implementation. --- diff --git a/0010-Implement-newstyle-export-names.patch b/0010-Implement-newstyle-export-names.patch index e767bc1..cf5a007 100644 --- a/0010-Implement-newstyle-export-names.patch +++ b/0010-Implement-newstyle-export-names.patch @@ -1,7 +1,7 @@ From 0095b003b56894baad8e6789d523cf3c51905c05 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 17 May 2016 19:43:16 +0100 -Subject: [PATCH 10/10] Implement newstyle export names. +Subject: [PATCH 10/11] Implement newstyle export names. This is now required by qemu >= 2.6. See this lengthy qemu-devel thread for details: diff --git a/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch b/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch new file mode 100644 index 0000000..3e9e7f8 --- /dev/null +++ b/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch @@ -0,0 +1,46 @@ +From 7938bbc463a694aeda888d51f1de446f23402d8f Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Fri, 20 May 2016 08:04:05 -0600 +Subject: [PATCH 11/11] protocol: Ignore rest of option when replying with + error + +We must consume the payload of any option received, whether or +not we can answer the option successfully, in order to be in +sync for reading the next option. This is particularly true +once clients start using NBD_OPT_GO, as long as we don't happen +to service that option. + +Signed-off-by: Eric Blake +--- + src/connections.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/connections.c b/src/connections.c +index 0c93f35..840e315 100644 +--- a/src/connections.c ++++ b/src/connections.c +@@ -334,6 +334,10 @@ _negotiate_handshake_newstyle_options (struct connection *conn) + if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_INVALID) + == -1) + return -1; ++ if (xread (conn->sockin, data, optlen) == -1) { ++ nbdkit_error ("read: %m"); ++ return -1; ++ } + continue; + } + +@@ -351,6 +355,10 @@ _negotiate_handshake_newstyle_options (struct connection *conn) + /* Unknown option. */ + if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_UNSUP) == -1) + return -1; ++ if (xread (conn->sockin, data, optlen) == -1) { ++ nbdkit_error ("read: %m"); ++ return -1; ++ } + } + + /* Note, since it's not very clear from the protocol doc, that the +-- +2.7.4 + diff --git a/nbdkit.spec b/nbdkit.spec index 5fe999c..10fadd7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.11 -Release: 9%{?dist} +Release: 10%{?dist} Summary: NBD server License: BSD @@ -25,6 +25,7 @@ Patch0007: 0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch Patch0008: 0008-protocol-Pack-fixed_new_option_reply-struct.patch Patch0009: 0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch Patch0010: 0010-Implement-newstyle-export-names.patch +Patch0011: 0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch # Because patch3 & patch5 patches Makefile.am, we need: BuildRequires: automake, autoconf, libtool @@ -372,6 +373,9 @@ make check || { %changelog +* Wed May 25 2016 Richard W.M. Jones - 1.1.11-10 +- Add another upstream patch since 1.1.11. + * Mon May 23 2016 Richard W.M. Jones - 1.1.11-9 - Add all patches upstream since 1.1.11 (fixes RHBZ#1336758). From 3aedf9effc6dd35da9301cc470e3271696378423 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 8 Jun 2016 14:59:47 +0100 Subject: [PATCH 024/683] New upstream version 1.1.12 - Enable Ruby plugin. --- 0001-Add-mandir-to-dump-config-output.patch | 39 - 0002-Update-TODO.patch | 35 - ...r-newstyle-NBD-protocol-RHBZ-1297100.patch | 760 ------------------ ...ix-various-printf-warnings-on-32-bit.patch | 49 -- ...-Avoid-race-when-building-NBDKit.cmi.patch | 28 - ...t-the-o-oldstyle-command-line-option.patch | 154 ---- ...mited-range-of-errno-values-to-the-c.patch | 116 --- ...l-Pack-fixed_new_option_reply-struct.patch | 27 - ...me-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch | 48 -- 0010-Implement-newstyle-export-names.patch | 360 --------- ...rest-of-option-when-replying-with-er.patch | 46 -- nbdkit.spec | 49 +- sources | 2 +- 13 files changed, 29 insertions(+), 1684 deletions(-) delete mode 100644 0001-Add-mandir-to-dump-config-output.patch delete mode 100644 0002-Update-TODO.patch delete mode 100644 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch delete mode 100644 0004-xz-Fix-various-printf-warnings-on-32-bit.patch delete mode 100644 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch delete mode 100644 0006-Test-the-o-oldstyle-command-line-option.patch delete mode 100644 0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch delete mode 100644 0008-protocol-Pack-fixed_new_option_reply-struct.patch delete mode 100644 0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch delete mode 100644 0010-Implement-newstyle-export-names.patch delete mode 100644 0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch diff --git a/0001-Add-mandir-to-dump-config-output.patch b/0001-Add-mandir-to-dump-config-output.patch deleted file mode 100644 index 2822690..0000000 --- a/0001-Add-mandir-to-dump-config-output.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5294b7d8cc011f8b5e068aad744f612df7414a82 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 31 Oct 2015 13:24:52 +0000 -Subject: [PATCH 01/11] Add mandir to --dump-config output. - -This is useful for external plugins that want to install -a man page. ---- - src/Makefile.am | 1 + - src/main.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/Makefile.am b/src/Makefile.am -index c0fb95a..fb46903 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -50,6 +50,7 @@ nbdkit_SOURCES = \ - nbdkit_CPPFLAGS = \ - -Dbindir=\"$(bindir)\" \ - -Dlibdir=\"$(libdir)\" \ -+ -Dmandir=\"$(mandir)\" \ - -Dplugindir=\"$(plugindir)\" \ - -Dsbindir=\"$(sbindir)\" \ - -Dsysconfdir=\"$(sysconfdir)\" \ -diff --git a/src/main.c b/src/main.c -index cd676c0..1248a8e 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -129,6 +129,7 @@ dump_config (void) - { - printf ("%s=%s\n", "bindir", bindir); - printf ("%s=%s\n", "libdir", libdir); -+ printf ("%s=%s\n", "mandir", mandir); - printf ("%s=%s\n", "name", PACKAGE_NAME); - printf ("%s=%s\n", "plugindir", plugindir); - printf ("%s=%s\n", "sbindir", sbindir); --- -2.7.4 - diff --git a/0002-Update-TODO.patch b/0002-Update-TODO.patch deleted file mode 100644 index cc44a04..0000000 --- a/0002-Update-TODO.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4b562134c3dad1a84aa92c1658e72046569e1570 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 11 Jan 2016 15:34:57 +0000 -Subject: [PATCH 02/11] Update TODO. - ---- - TODO | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/TODO b/TODO -index bcf2276..a05aa5b 100644 ---- a/TODO -+++ b/TODO -@@ -1,6 +1,8 @@ - * There is a proposal to narrow the range of possible errnos that the - server can return, and also to encode them in an OS-independent way. - See: http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 -+ Implemented in QEMU already: -+ http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb - - * Can we do language bindings using #!'s? - You would enter: -@@ -25,6 +27,9 @@ - default that accepts all exportnames, or to divide the export name - "space" up using regexps or wildcards. - -+ Annoyingly nbd-client dropped support for the oldstyle protocol (see -+ https://bugzilla.redhat.com/1297100). -+ - * Implement true parallel request handling. Currently - NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and - NBDKIT_THREAD_MODEL_PARALLEL are the same, because we handle --- -2.7.4 - diff --git a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch b/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch deleted file mode 100644 index 3d57823..0000000 --- a/0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch +++ /dev/null @@ -1,760 +0,0 @@ -From f93807114634d58ca2ef0d64f7637ebd87e48a50 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 11 Jan 2016 17:08:51 +0000 -Subject: [PATCH 03/11] Add support for newstyle NBD protocol (RHBZ#1297100). - ---- - .gitignore | 1 + - TODO | 10 +-- - docs/nbdkit.pod | 67 +++++++++++++- - src/connections.c | 235 ++++++++++++++++++++++++++++++++++++++++++++++++-- - src/internal.h | 1 + - src/main.c | 26 ++++-- - src/protocol.h | 49 ++++++++++- - tests/Makefile.am | 8 ++ - tests/test-newstyle.c | 102 ++++++++++++++++++++++ - tests/test.c | 6 +- - tests/test.h | 2 +- - 11 files changed, 483 insertions(+), 24 deletions(-) - create mode 100644 tests/test-newstyle.c - -diff --git a/.gitignore b/.gitignore -index b1a8850..9ea072f 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -43,6 +43,7 @@ Makefile.in - /tests/test-connect - /tests/test-file - /tests/test-gzip -+/tests/test-newstyle - /tests/test-ocaml - /tests/test-ocaml-plugin.so - /tests/test-perl -diff --git a/TODO b/TODO -index a05aa5b..d39e64c 100644 ---- a/TODO -+++ b/TODO -@@ -17,9 +17,9 @@ - - * Performance - measure and improve it. - --* Implement the new protocol and export names. With export names it -- should be possible to have multiple plugins on the command line -- (each responding to a different export of course): -+* Implement export names. With export names it should be possible to -+ have multiple plugins on the command line (each responding to a -+ different export of course): - - nbdkit --export /foo plugin.so --export /bar another-plugin.so - -@@ -27,8 +27,8 @@ - default that accepts all exportnames, or to divide the export name - "space" up using regexps or wildcards. - -- Annoyingly nbd-client dropped support for the oldstyle protocol (see -- https://bugzilla.redhat.com/1297100). -+ Export names are not actually paths (although that is how they are -+ often used), but arbitrary UTF-8 text strings. - - * Implement true parallel request handling. Currently - NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index 9ce75d3..7204a38 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -7,8 +7,8 @@ nbdkit - A toolkit for creating NBD servers - =head1 SYNOPSIS - - nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR] -- [-P PIDFILE] [-p PORT] [-r] [--run CMD] [-s] -- [-U SOCKET] [-u USER] [-v] [-V] -+ [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] -+ [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] - PLUGIN [key=value [key=value [...]]] - - =head1 DESCRIPTION -@@ -103,6 +103,25 @@ See also I<-u>. - Listen on the specified interface. The default is to listen on all - interfaces. See also I<-p>. - -+=item B<-n> -+ -+=item B<--new-style> -+ -+=item B<--newstyle> -+ -+Use the newstyle NBD protocol instead of the default (oldstyle) -+protocol. See L below. -+ -+=item B<-o> -+ -+=item B<--old-style> -+ -+=item B<--oldstyle> -+ -+Use the oldstyle NBD protocol. This is currently the default, so this -+flag does nothing, but it is possible we might change the default -+protocol in future. See L below. -+ - =item B<-P> PIDFILE - - =item B<--pid-file> PIDFILE -@@ -280,6 +299,50 @@ Unix socket, like this: - - nbdkit -U - plugin [args] --run '...' - -+=head1 NEW STYLE VS OLD STYLE PROTOCOL -+ -+The NBD protocol comes in two incompatible forms that we call -+"oldstyle" and "newstyle". Unfortunately which protocol you should -+use depends on the client and cannot be known in advance, nor can it -+be negotiated from the server side. -+ -+nbdkit currently defaults to the oldstyle protocol for compatibility -+with qemu and libguestfs. This is also the same behaviour as -+qemu-nbd. Use the I<-n> or I<--newstyle> flag on the command line to -+use the newstyle protocol. Use the I<-o> or I<--oldstyle> flag to -+force the oldstyle protocol. -+ -+Some common clients and the protocol they require: -+ -+ Client Protocol -+ ------------------------------------------------------------ -+ qemu without exportname oldstyle -+ qemu with exportname newstyle -+ nbd-client < 3.10 client can talk either protocol -+ nbd-client >= 3.10 newstyle -+ -+If you use qemu without the exportname field against a newstyle -+server, it will give the error: -+ -+ Server requires an export name -+ -+If you use qemu with the exportname field against an oldstyle server, -+it will give the error: -+ -+ Server does not support export names -+ -+If you use the oldstyle protocol with nbd-client E 3.10, it will -+give the error: -+ -+ Error: It looks like you're trying to connect to an oldstyle server. -+ -+If you want to claim compatibility with what the NBD proto.txt -+document says should be the case (which isn't based in reality), then -+you should always use newstyle when using port 10809, and use oldstyle -+on all other ports. -+ -+nbdkit ignores export names at present (see also the C file). -+ - =head1 SIGNALS - - C responds to the following signals: -diff --git a/src/connections.c b/src/connections.c -index 15f416b..6bdf4ef 100644 ---- a/src/connections.c -+++ b/src/connections.c -@@ -1,5 +1,5 @@ - /* nbdkit -- * Copyright (C) 2013 Red Hat Inc. -+ * Copyright (C) 2013-2016 Red Hat Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -52,6 +52,12 @@ - /* Maximum read or write request that we will handle. */ - #define MAX_REQUEST_SIZE (64 * 1024 * 1024) - -+/* Maximum number of client options we allow before giving up. */ -+#define MAX_NR_OPTIONS 32 -+ -+/* Maximum length of any option data (bytes). */ -+#define MAX_OPTION_LENGTH 4096 -+ - static struct connection *new_connection (int sockin, int sockout); - static void free_connection (struct connection *conn); - static int negotiate_handshake (struct connection *conn); -@@ -143,11 +149,8 @@ free_connection (struct connection *conn) - free (conn); - } - --/* XXX Note because we don't support multiple plugins or export names, -- * we are using the old-style handshake. This will be fixed. -- */ - static int --_negotiate_handshake (struct connection *conn) -+_negotiate_handshake_oldstyle (struct connection *conn) - { - struct old_handshake handshake; - int64_t r; -@@ -201,7 +204,8 @@ _negotiate_handshake (struct connection *conn) - conn->can_trim = 1; - } - -- debug ("flags: global 0x%x export 0x%x", gflags, eflags); -+ debug ("oldstyle negotiation: flags: global 0x%x export 0x%x", -+ gflags, eflags); - - memset (&handshake, 0, sizeof handshake); - memcpy (handshake.nbdmagic, "NBDMAGIC", 8); -@@ -218,13 +222,230 @@ _negotiate_handshake (struct connection *conn) - return 0; - } - -+/* Receive newstyle options. -+ * -+ * Currently we ignore NBD_OPT_EXPORT_NAME (see TODO), we close the -+ * connection if sent NBD_OPT_ABORT, we send a canned list of -+ * options for NBD_OPT_LIST, and we send NBD_REP_ERR_UNSUP for -+ * everything else. -+ */ -+static int -+send_newstyle_option_reply (struct connection *conn, -+ uint32_t option, uint32_t reply) -+{ -+ struct fixed_new_option_reply fixed_new_option_reply; -+ -+ fixed_new_option_reply.magic = htobe64 (NEW_OPTION_REPLY); -+ fixed_new_option_reply.option = htobe32 (option); -+ fixed_new_option_reply.reply = htobe32 (reply); -+ fixed_new_option_reply.replylen = htobe32 (0); -+ -+ if (xwrite (conn->sockout, -+ &fixed_new_option_reply, sizeof fixed_new_option_reply) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+static int -+_negotiate_handshake_newstyle_options (struct connection *conn) -+{ -+ struct new_option new_option; -+ size_t nr_options; -+ uint64_t version; -+ uint32_t option; -+ uint32_t optlen; -+ char data[MAX_OPTION_LENGTH+1]; -+ -+ for (nr_options = 0; nr_options < MAX_NR_OPTIONS; ++nr_options) { -+ if (xread (conn->sockin, &new_option, sizeof new_option) == -1) { -+ nbdkit_error ("read: %m"); -+ return -1; -+ } -+ -+ version = be64toh (new_option.version); -+ if (version != NEW_VERSION) { -+ nbdkit_error ("unknown option version %" PRIx64 -+ ", expecting %" PRIx64, -+ version, NEW_VERSION); -+ return -1; -+ } -+ -+ /* There is a maximum option length we will accept, regardless -+ * of the option type. -+ */ -+ optlen = be32toh (new_option.optlen); -+ if (optlen > MAX_OPTION_LENGTH) { -+ nbdkit_error ("client option data too long (%" PRIu32 ")", optlen); -+ return -1; -+ } -+ -+ option = be32toh (new_option.option); -+ switch (option) { -+ case NBD_OPT_EXPORT_NAME: -+ if (xread (conn->sockin, data, optlen) == -1) { -+ nbdkit_error ("read: %m"); -+ return -1; -+ } -+ /* Apart from printing it, ignore the export name. */ -+ data[optlen] = '\0'; -+ debug ("newstyle negotiation: client requested export '%s' (ignored)", -+ data); -+ break; -+ -+ case NBD_OPT_ABORT: -+ if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) -+ return -1; -+ nbdkit_error ("client sent NBD_OPT_ABORT to abort the connection"); -+ return -1; -+ -+ case NBD_OPT_LIST: -+ if (optlen != 0) { -+ if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_INVALID) -+ == -1) -+ return -1; -+ continue; -+ } -+ -+ /* Since we don't support export names, there is nothing to list. */ -+ if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) -+ return -1; -+ break; -+ -+ default: -+ /* Unknown option. */ -+ if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_UNSUP) == -1) -+ return -1; -+ } -+ -+ /* Note, since it's not very clear from the protocol doc, that the -+ * client must send NBD_OPT_EXPORT_NAME last, and that ends option -+ * negotiation. -+ */ -+ if (option == NBD_OPT_EXPORT_NAME) -+ break; -+ } -+ -+ if (nr_options >= MAX_NR_OPTIONS) { -+ nbdkit_error ("client exceeded maximum number of options (%d)", -+ MAX_NR_OPTIONS); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+static int -+_negotiate_handshake_newstyle (struct connection *conn) -+{ -+ struct new_handshake handshake; -+ uint16_t gflags; -+ uint32_t cflags; -+ struct new_handshake_finish handshake_finish; -+ int64_t r; -+ uint64_t exportsize; -+ uint16_t eflags; -+ int fl; -+ -+ gflags = NBD_FLAG_FIXED_NEWSTYLE; -+ -+ debug ("newstyle negotiation: flags: global 0x%x", gflags); -+ -+ memcpy (handshake.nbdmagic, "NBDMAGIC", 8); -+ handshake.version = htobe64 (NEW_VERSION); -+ handshake.gflags = htobe16 (gflags); -+ -+ if (xwrite (conn->sockout, &handshake, sizeof handshake) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ -+ /* Client now sends us its 32 bit flags word ... */ -+ if (xread (conn->sockin, &cflags, sizeof cflags) == -1) { -+ nbdkit_error ("read: %m"); -+ return -1; -+ } -+ cflags = be32toh (cflags); -+ /* ... which other than printing out, we ignore. */ -+ debug ("newstyle negotiation: client flags: 0x%x", cflags); -+ -+ /* Receive newstyle options. */ -+ if (_negotiate_handshake_newstyle_options (conn) == -1) -+ return -1; -+ -+ /* Finish the newstyle handshake. */ -+ r = plugin_get_size (conn); -+ if (r == -1) -+ return -1; -+ if (r < 0) { -+ nbdkit_error (".get_size function returned invalid value " -+ "(%" PRIi64 ")", r); -+ return -1; -+ } -+ exportsize = (uint64_t) r; -+ conn->exportsize = exportsize; -+ -+ eflags = NBD_FLAG_HAS_FLAGS; -+ -+ fl = plugin_can_write (conn); -+ if (fl == -1) -+ return -1; -+ if (readonly || !fl) { -+ eflags |= NBD_FLAG_READ_ONLY; -+ conn->readonly = 1; -+ } -+ -+ fl = plugin_can_flush (conn); -+ if (fl == -1) -+ return -1; -+ if (fl) { -+ eflags |= NBD_FLAG_SEND_FLUSH | NBD_FLAG_SEND_FUA; -+ conn->can_flush = 1; -+ } -+ -+ fl = plugin_is_rotational (conn); -+ if (fl == -1) -+ return -1; -+ if (fl) { -+ eflags |= NBD_FLAG_ROTATIONAL; -+ conn->is_rotational = 1; -+ } -+ -+ fl = plugin_can_trim (conn); -+ if (fl == -1) -+ return -1; -+ if (fl) { -+ eflags |= NBD_FLAG_SEND_TRIM; -+ conn->can_trim = 1; -+ } -+ -+ debug ("newstyle negotiation: flags: export 0x%x", eflags); -+ -+ memset (&handshake_finish, 0, sizeof handshake_finish); -+ handshake_finish.exportsize = htobe64 (exportsize); -+ handshake_finish.eflags = htobe16 (eflags); -+ -+ if (xwrite (conn->sockout, -+ &handshake_finish, sizeof handshake_finish) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ -+ return 0; -+} -+ - static int - negotiate_handshake (struct connection *conn) - { - int r; - - plugin_lock_request (conn); -- r = _negotiate_handshake (conn); -+ if (!newstyle) -+ r = _negotiate_handshake_oldstyle (conn); -+ else -+ r = _negotiate_handshake_newstyle (conn); - plugin_unlock_request (conn); - - return r; -diff --git a/src/internal.h b/src/internal.h -index c834b14..0603779 100644 ---- a/src/internal.h -+++ b/src/internal.h -@@ -49,6 +49,7 @@ - - /* main.c */ - extern const char *ipaddr; -+extern int newstyle; - extern const char *port; - extern int readonly; - extern char *unixsocket; -diff --git a/src/main.c b/src/main.c -index 1248a8e..db4361e 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -1,5 +1,5 @@ - /* nbdkit -- * Copyright (C) 2013-2014 Red Hat Inc. -+ * Copyright (C) 2013-2016 Red Hat Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -67,11 +67,12 @@ static gid_t parsegroup (const char *); - - int foreground; /* -f */ - const char *ipaddr; /* -i */ --int listen_stdin; /* -s */ -+int newstyle; /* -n */ - char *pidfile; /* -P */ - const char *port; /* -p */ - int readonly; /* -r */ - char *run; /* --run */ -+int listen_stdin; /* -s */ - char *unixsocket; /* -U */ - const char *user, *group; /* -u & -g */ - int verbose; /* -v */ -@@ -83,7 +84,7 @@ static char *random_fifo = NULL; - - enum { HELP_OPTION = CHAR_MAX + 1 }; - --static const char *short_options = "fg:i:p:P:rsu:U:vV"; -+static const char *short_options = "fg:i:nop:P:rsu:U:vV"; - static const struct option long_options[] = { - { "help", 0, NULL, HELP_OPTION }, - { "dump-config",0, NULL, 0 }, -@@ -92,6 +93,10 @@ static const struct option long_options[] = { - { "group", 1, NULL, 'g' }, - { "ip-addr", 1, NULL, 'i' }, - { "ipaddr", 1, NULL, 'i' }, -+ { "new-style", 1, NULL, 'n' }, -+ { "newstyle", 1, NULL, 'n' }, -+ { "old-style", 1, NULL, 'o' }, -+ { "oldstyle", 1, NULL, 'o' }, - { "pid-file", 1, NULL, 'P' }, - { "pidfile", 1, NULL, 'P' }, - { "port", 1, NULL, 'p' }, -@@ -111,8 +116,8 @@ static void - usage (void) - { - printf ("nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]\n" -- " [-P PIDFILE] [-p PORT] [-r] [--run CMD] [-s]\n" -- " [-U SOCKET] [-u USER] [-v] [-V]\n" -+ " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" -+ " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" - " PLUGIN [key=value [key=value [...]]]\n" - "\n" - "Please read the nbdkit(1) manual page for full usage.\n"); -@@ -180,6 +185,17 @@ main (int argc, char *argv[]) - ipaddr = optarg; - break; - -+ case 'n': -+ newstyle = 1; -+ break; -+ -+ case 'o': -+ /* XXX When we add support for exportnames, we will need to -+ * ensure that the user does not use -o + --export. -+ */ -+ newstyle = 0; -+ break; -+ - case 'P': - pidfile = nbdkit_absolute_path (optarg); - if (pidfile == NULL) -diff --git a/src/protocol.h b/src/protocol.h -index 4449171..2f9a341 100644 ---- a/src/protocol.h -+++ b/src/protocol.h -@@ -36,7 +36,7 @@ - - #include - --/* Old-style handshake */ -+/* Old-style handshake. */ - struct old_handshake { - char nbdmagic[8]; /* "NBDMAGIC" */ - uint64_t version; /* OLD_VERSION, in network byte order */ -@@ -48,6 +48,41 @@ struct old_handshake { - - #define OLD_VERSION UINT64_C(0x420281861253) - -+/* New-style handshake. */ -+struct new_handshake { -+ char nbdmagic[8]; /* "NBDMAGIC" */ -+ uint64_t version; /* NEW_VERSION, in network byte order */ -+ uint16_t gflags; /* global flags, in network byte order */ -+} __attribute__((packed)); -+ -+#define NEW_VERSION UINT64_C(0x49484156454F5054) -+ -+/* New-style handshake option (sent by the client to us). */ -+struct new_option { -+ uint64_t version; /* NEW_VERSION, in network byte order */ -+ uint32_t option; /* NBD_OPT_* */ -+ uint32_t optlen; /* option data length */ -+ /* option data follows */ -+} __attribute__((packed)); -+ -+/* Fixed newstyle handshake reply message. */ -+struct fixed_new_option_reply { -+ uint64_t magic; /* NEW_OPTION_REPLY, network byte order */ -+ uint32_t option; /* option we are replying to */ -+ uint32_t reply; /* NBD_REP_* */ -+ uint32_t replylen; /* we always send zero at the moment */ -+ /* reply data follows, but we currently never send any */ -+}; -+ -+#define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) -+ -+/* New-style handshake server reply. */ -+struct new_handshake_finish { -+ uint64_t exportsize; /* in network byte order */ -+ uint16_t eflags; /* per-export flags, in network byte order */ -+ char zeroes[124]; /* must be sent as zero bytes */ -+} __attribute__((packed)); -+ - /* Global flags. */ - #define NBD_FLAG_FIXED_NEWSTYLE 1 - -@@ -59,6 +94,18 @@ struct old_handshake { - #define NBD_FLAG_ROTATIONAL 16 - #define NBD_FLAG_SEND_TRIM 32 - -+/* NBD options (new style handshake only). */ -+#define NBD_OPT_EXPORT_NAME 1 -+#define NBD_OPT_ABORT 2 -+#define NBD_OPT_LIST 3 -+ -+#define NBD_REP_ACK 1 -+#define NBD_REP_SERVER 2 -+#define NBD_REP_ERR_UNSUP 0x80000001 -+#define NBD_REP_ERR_POLICY 0x80000002 -+#define NBD_REP_ERR_INVALID 0x80000003 -+#define NBD_REP_ERR_PLATFORM 0x80000004 -+ - /* Request (client -> server). */ - struct request { - uint32_t magic; /* NBD_REQUEST_MAGIC. */ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 511c39c..8d27032 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -103,6 +103,14 @@ file-data: - for f in `seq 1 512`; do echo -ne '\x01\x02\x03\x04\x05\x06\x07\x08'; done > $@-t - mv $@-t $@ - -+# newstyle protocol test. -+check_PROGRAMS += test-newstyle -+TESTS += test-newstyle -+ -+test_newstyle_SOURCES = test-newstyle.c test.h -+test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -+test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) -+ - # gzip plugin test. - if HAVE_ZLIB - if HAVE_GUESTFISH -diff --git a/tests/test-newstyle.c b/tests/test-newstyle.c -new file mode 100644 -index 0000000..b1d8ce7 ---- /dev/null -+++ b/tests/test-newstyle.c -@@ -0,0 +1,102 @@ -+/* nbdkit -+ * Copyright (C) 2013-2016 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "test.h" -+ -+int -+main (int argc, char *argv[]) -+{ -+ guestfs_h *g; -+ int r; -+ char *data; -+ size_t i, size; -+ -+ if (test_start_nbdkit ("-n", NBDKIT_PLUGIN ("file"), "file=file-data", -+ NULL) == -1) -+ exit (EXIT_FAILURE); -+ -+ g = guestfs_create (); -+ if (g == NULL) { -+ perror ("guestfs_create"); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* Using any exportname causes qemu to use the newstyle protocol. */ -+ r = guestfs_add_drive_opts (g, "/" /* exportname */, -+ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -+ GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", -+ GUESTFS_ADD_DRIVE_OPTS_SERVER, server, -+ -1); -+ if (r == -1) -+ exit (EXIT_FAILURE); -+ -+ if (guestfs_launch (g) == -1) -+ exit (EXIT_FAILURE); -+ -+ /* Check the data in the file is \x01-\x08 repeated 512 times. */ -+ data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); -+ if (!data) -+ exit (EXIT_FAILURE); -+ if (size != 8 * 512) { -+ fprintf (stderr, "%s FAILED: unexpected size (actual: %zu, expected: 512)\n", -+ program_name, size); -+ exit (EXIT_FAILURE); -+ } -+ -+ for (i = 0; i < 512 * 8; i += 8) { -+ if (data[i] != 1 || data[i+1] != 2 || -+ data[i+2] != 3 || data[i+3] != 4 || -+ data[i+4] != 5 || data[i+5] != 6 || -+ data[i+6] != 7 || data[i+7] != 8) { -+ fprintf (stderr, "%s FAILED: unexpected data returned at offset %zu\n", -+ program_name, i); -+ exit (EXIT_FAILURE); -+ } -+ } -+ -+ free (data); -+ -+ guestfs_close (g); -+ exit (EXIT_SUCCESS); -+} -diff --git a/tests/test.c b/tests/test.c -index 55d13fd..111e6fa 100644 ---- a/tests/test.c -+++ b/tests/test.c -@@ -68,7 +68,7 @@ cleanup (void) - } - - int --test_start_nbdkit (const char *plugin, ...) -+test_start_nbdkit (const char *arg, ...) - { - size_t i, len; - -@@ -95,10 +95,10 @@ test_start_nbdkit (const char *plugin, ...) - argv[4] = pidpath; - argv[5] = "-f"; - argv[6] = "-v"; -- argv[7] = plugin; -+ argv[7] = arg; - i = 8; - -- va_start (args, plugin); -+ va_start (args, arg); - while ((p = va_arg (args, const char *)) != NULL) { - if (i >= MAX_ARGS) - abort (); -diff --git a/tests/test.h b/tests/test.h -index 7abf5af..c369150 100644 ---- a/tests/test.h -+++ b/tests/test.h -@@ -45,7 +45,7 @@ - extern pid_t pid; /* PID of nbdkit process. */ - extern const char *server[2]; /* server parameter for add_drive */ - --extern int test_start_nbdkit (const char *plugin, ...); -+extern int test_start_nbdkit (const char *arg, ...); - - /* Declare program_name. */ - #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1 --- -2.7.4 - diff --git a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch b/0004-xz-Fix-various-printf-warnings-on-32-bit.patch deleted file mode 100644 index f5c597b..0000000 --- a/0004-xz-Fix-various-printf-warnings-on-32-bit.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0759d15aa3649d088eeae91fcd174d0b37e1ccde Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 11 Jan 2016 19:02:53 +0000 -Subject: [PATCH 04/11] xz: Fix various printf warnings on 32 bit. - -xzfile.c: In function 'xzfile_read_block': -xzfile.c:456:19: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'uint64_t {aka long long unsigned int}' [-Wformat=] - nbdkit_error ("malloc (%zu bytes): %m\n" - ^ -xz.c: In function 'xz_close': -xz.c:191:17: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'size_t {aka unsigned int}' [-Wformat=] - nbdkit_debug ("cache: hits = %" PRIu64 ", misses = %" PRIu64, - ^ -xz.c:191:17: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=] ---- - plugins/xz/xz.c | 3 +-- - plugins/xz/xzfile.c | 2 +- - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/plugins/xz/xz.c b/plugins/xz/xz.c -index 9a1f5e5..437f798 100644 ---- a/plugins/xz/xz.c -+++ b/plugins/xz/xz.c -@@ -188,8 +188,7 @@ xz_close (void *handle) - - blkcache_get_stats (h->c, &stats); - -- nbdkit_debug ("cache: hits = %" PRIu64 ", misses = %" PRIu64, -- stats.hits, stats.misses); -+ nbdkit_debug ("cache: hits = %zu, misses = %zu", stats.hits, stats.misses); - - xzfile_close (h->xz); - free_blkcache (h->c); -diff --git a/plugins/xz/xzfile.c b/plugins/xz/xzfile.c -index fcc2937..3633099 100644 ---- a/plugins/xz/xzfile.c -+++ b/plugins/xz/xzfile.c -@@ -453,7 +453,7 @@ xzfile_read_block (xzfile *xz, uint64_t offset, - - data = malloc (*size_rtn); - if (data == NULL) { -- nbdkit_error ("malloc (%zu bytes): %m\n" -+ nbdkit_error ("malloc (%" PRIu64 " bytes): %m\n" - "NOTE: If this error occurs, you need to recompress your xz files with a smaller block size. Use: 'xz --block-size=16777216 ...'.", - *size_rtn); - goto err1; --- -2.7.4 - diff --git a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch b/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch deleted file mode 100644 index 2096716..0000000 --- a/0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b6db2f65596470492f0ad76d1ed63ddb98b17167 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 11 Jan 2016 19:46:37 +0000 -Subject: [PATCH 05/11] ocaml: Avoid race when building NBDKit.cmi. - -If both the NBDKit.cmi and NBDKit.cmx builds run in parallel, both -will try to build NBDKit.cmi, resulting in a corrupt NBDKit.cmi file. -Avoid this by adding an extra dependency. ---- - plugins/ocaml/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am -index d4776b3..f63ba33 100644 ---- a/plugins/ocaml/Makefile.am -+++ b/plugins/ocaml/Makefile.am -@@ -43,7 +43,7 @@ ocamllib_DATA = NBDKit.mli NBDKit.cmi NBDKit.cmx NBDKit.o - NBDKit.cmi: NBDKit.mli - $(OCAMLC) -c $< - --NBDKit.cmx: NBDKit.ml -+NBDKit.cmx: NBDKit.ml NBDKit.cmi - $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< - NBDKit.o: NBDKit.cmx - --- -2.7.4 - diff --git a/0006-Test-the-o-oldstyle-command-line-option.patch b/0006-Test-the-o-oldstyle-command-line-option.patch deleted file mode 100644 index c565b47..0000000 --- a/0006-Test-the-o-oldstyle-command-line-option.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 1c359d1140fee575cf478e2b4bf0c5ca0af9d05e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 11 Jan 2016 20:34:28 +0000 -Subject: [PATCH 06/11] Test the -o (oldstyle) command line option. - ---- - .gitignore | 1 + - tests/Makefile.am | 8 ++++ - tests/test-oldstyle.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 111 insertions(+) - create mode 100644 tests/test-oldstyle.c - -diff --git a/.gitignore b/.gitignore -index 9ea072f..bc151ca 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -46,6 +46,7 @@ Makefile.in - /tests/test-newstyle - /tests/test-ocaml - /tests/test-ocaml-plugin.so -+/tests/test-oldstyle - /tests/test-perl - /tests/test-python - /tests/test-streaming -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 8d27032..1e6114c 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -111,6 +111,14 @@ test_newstyle_SOURCES = test-newstyle.c test.h - test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) - -+# oldstyle protocol test. -+check_PROGRAMS += test-oldstyle -+TESTS += test-oldstyle -+ -+test_oldstyle_SOURCES = test-oldstyle.c test.h -+test_oldstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -+test_oldstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) -+ - # gzip plugin test. - if HAVE_ZLIB - if HAVE_GUESTFISH -diff --git a/tests/test-oldstyle.c b/tests/test-oldstyle.c -new file mode 100644 -index 0000000..d809a0c ---- /dev/null -+++ b/tests/test-oldstyle.c -@@ -0,0 +1,102 @@ -+/* nbdkit -+ * Copyright (C) 2013-2016 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "test.h" -+ -+int -+main (int argc, char *argv[]) -+{ -+ guestfs_h *g; -+ int r; -+ char *data; -+ size_t i, size; -+ -+ if (test_start_nbdkit ("-o", NBDKIT_PLUGIN ("file"), "file=file-data", -+ NULL) == -1) -+ exit (EXIT_FAILURE); -+ -+ g = guestfs_create (); -+ if (g == NULL) { -+ perror ("guestfs_create"); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* Using exportname = "" causes qemu to use the oldstyle protocol. */ -+ r = guestfs_add_drive_opts (g, "", -+ GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -+ GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", -+ GUESTFS_ADD_DRIVE_OPTS_SERVER, server, -+ -1); -+ if (r == -1) -+ exit (EXIT_FAILURE); -+ -+ if (guestfs_launch (g) == -1) -+ exit (EXIT_FAILURE); -+ -+ /* Check the data in the file is \x01-\x08 repeated 512 times. */ -+ data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); -+ if (!data) -+ exit (EXIT_FAILURE); -+ if (size != 8 * 512) { -+ fprintf (stderr, "%s FAILED: unexpected size (actual: %zu, expected: 512)\n", -+ program_name, size); -+ exit (EXIT_FAILURE); -+ } -+ -+ for (i = 0; i < 512 * 8; i += 8) { -+ if (data[i] != 1 || data[i+1] != 2 || -+ data[i+2] != 3 || data[i+3] != 4 || -+ data[i+4] != 5 || data[i+5] != 6 || -+ data[i+6] != 7 || data[i+7] != 8) { -+ fprintf (stderr, "%s FAILED: unexpected data returned at offset %zu\n", -+ program_name, i); -+ exit (EXIT_FAILURE); -+ } -+ } -+ -+ free (data); -+ -+ guestfs_close (g); -+ exit (EXIT_SUCCESS); -+} --- -2.7.4 - diff --git a/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch b/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch deleted file mode 100644 index cfb11f4..0000000 --- a/0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch +++ /dev/null @@ -1,116 +0,0 @@ -From f141228d1b6baddadcd516137d76b3d852af8cde Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 12 Jan 2016 12:16:48 +0000 -Subject: [PATCH 07/11] protocol: Send limited range of errno values to the - client. - -See the proposal here: -http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 - -This implementation is based on Paolo Bonzini's for qemu-nbd: -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb ---- - TODO | 6 ------ - src/connections.c | 36 +++++++++++++++++++++++++++++++++++- - src/protocol.h | 12 +++++++++++- - 3 files changed, 46 insertions(+), 8 deletions(-) - -diff --git a/TODO b/TODO -index d39e64c..177a07c 100644 ---- a/TODO -+++ b/TODO -@@ -1,9 +1,3 @@ --* There is a proposal to narrow the range of possible errnos that the -- server can return, and also to encode them in an OS-independent way. -- See: http://article.gmane.org/gmane.linux.drivers.nbd.general/3154 -- Implemented in QEMU already: -- http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb -- - * Can we do language bindings using #!'s? - You would enter: - nbdkit foo [args] -diff --git a/src/connections.c b/src/connections.c -index 6bdf4ef..f0a7662 100644 ---- a/src/connections.c -+++ b/src/connections.c -@@ -639,6 +639,31 @@ skip_over_write_buffer (int sock, size_t count) - } - } - -+/* Convert a system errno to an NBD_E* error code. */ -+static int -+nbd_errno (int error) -+{ -+ switch (error) { -+ case 0: -+ return NBD_SUCCESS; -+ case EPERM: -+ return NBD_EPERM; -+ case EIO: -+ return NBD_EIO; -+ case ENOMEM: -+ return NBD_ENOMEM; -+#ifdef EDQUOT -+ case EDQUOT: -+#endif -+ case EFBIG: -+ case ENOSPC: -+ return NBD_ENOSPC; -+ case EINVAL: -+ default: -+ return NBD_EINVAL; -+ } -+} -+ - static int - recv_request_send_reply (struct connection *conn) - { -@@ -722,7 +747,16 @@ recv_request_send_reply (struct connection *conn) - send_reply: - reply.magic = htobe32 (NBD_REPLY_MAGIC); - reply.handle = request.handle; -- reply.error = htobe32 (error); -+ reply.error = htobe32 (nbd_errno (error)); -+ -+ if (error != 0) { -+ /* Since we're about to send only the limited NBD_E* errno to the -+ * client, don't lose the information about what really happened -+ * on the server side. Make sure there is a way for the operator -+ * to retrieve the real error. -+ */ -+ debug ("sending error reply: %s", strerror (error)); -+ } - - r = xwrite (conn->sockout, &reply, sizeof reply); - if (r == -1) { -diff --git a/src/protocol.h b/src/protocol.h -index 2f9a341..fcbc145 100644 ---- a/src/protocol.h -+++ b/src/protocol.h -@@ -118,7 +118,7 @@ struct request { - /* Reply (server -> client). */ - struct reply { - uint32_t magic; /* NBD_REPLY_MAGIC. */ -- uint32_t error; /* 0 = ok, error code */ -+ uint32_t error; /* NBD_SUCCESS or one of NBD_E*. */ - uint64_t handle; /* Opaque handle. */ - } __attribute__((packed)); - -@@ -133,4 +133,14 @@ struct reply { - #define NBD_CMD_MASK_COMMAND 0xffff - #define NBD_CMD_FLAG_FUA (1<<16) - -+/* Error codes (previously errno). -+ * See http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca4414804114fd0095b317785bc0b51862e62ebb -+ */ -+#define NBD_SUCCESS 0 -+#define NBD_EPERM 1 -+#define NBD_EIO 5 -+#define NBD_ENOMEM 12 -+#define NBD_EINVAL 22 -+#define NBD_ENOSPC 28 -+ - #endif /* NBDKIT_PROTOCOL_H */ --- -2.7.4 - diff --git a/0008-protocol-Pack-fixed_new_option_reply-struct.patch b/0008-protocol-Pack-fixed_new_option_reply-struct.patch deleted file mode 100644 index 230f688..0000000 --- a/0008-protocol-Pack-fixed_new_option_reply-struct.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e5a945ea1e759e6441773c1e7663a1ac2492c8e4 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 17 May 2016 19:40:29 +0100 -Subject: [PATCH 08/11] protocol: Pack fixed_new_option_reply struct. - -This struct was not packed, but we were sending a reply by sending the -struct directly onto the wire. I think we got away with it, but not good. ---- - src/protocol.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/protocol.h b/src/protocol.h -index fcbc145..de511a6 100644 ---- a/src/protocol.h -+++ b/src/protocol.h -@@ -72,7 +72,7 @@ struct fixed_new_option_reply { - uint32_t reply; /* NBD_REP_* */ - uint32_t replylen; /* we always send zero at the moment */ - /* reply data follows, but we currently never send any */ --}; -+} __attribute__((packed)); - - #define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) - --- -2.7.4 - diff --git a/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch b/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch deleted file mode 100644 index d931f77..0000000 --- a/0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch +++ /dev/null @@ -1,48 +0,0 @@ -From f989fbad9b0527925c38f4350190cb1536a4d8c2 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 17 May 2016 19:42:35 +0100 -Subject: [PATCH 09/11] protocol: Rename NEW_OPTION_REPLY as NBD_REP_MAGIC. - -To be consistent with qemu's implementation. ---- - src/connections.c | 2 +- - src/protocol.h | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/connections.c b/src/connections.c -index f0a7662..34566b3 100644 ---- a/src/connections.c -+++ b/src/connections.c -@@ -235,7 +235,7 @@ send_newstyle_option_reply (struct connection *conn, - { - struct fixed_new_option_reply fixed_new_option_reply; - -- fixed_new_option_reply.magic = htobe64 (NEW_OPTION_REPLY); -+ fixed_new_option_reply.magic = htobe64 (NBD_REP_MAGIC); - fixed_new_option_reply.option = htobe32 (option); - fixed_new_option_reply.reply = htobe32 (reply); - fixed_new_option_reply.replylen = htobe32 (0); -diff --git a/src/protocol.h b/src/protocol.h -index de511a6..71a8098 100644 ---- a/src/protocol.h -+++ b/src/protocol.h -@@ -67,14 +67,14 @@ struct new_option { - - /* Fixed newstyle handshake reply message. */ - struct fixed_new_option_reply { -- uint64_t magic; /* NEW_OPTION_REPLY, network byte order */ -+ uint64_t magic; /* NBD_REP_MAGIC, network byte order */ - uint32_t option; /* option we are replying to */ - uint32_t reply; /* NBD_REP_* */ - uint32_t replylen; /* we always send zero at the moment */ - /* reply data follows, but we currently never send any */ - } __attribute__((packed)); - --#define NEW_OPTION_REPLY UINT64_C(0x3e889045565a9) -+#define NBD_REP_MAGIC UINT64_C(0x3e889045565a9) - - /* New-style handshake server reply. */ - struct new_handshake_finish { --- -2.7.4 - diff --git a/0010-Implement-newstyle-export-names.patch b/0010-Implement-newstyle-export-names.patch deleted file mode 100644 index cf5a007..0000000 --- a/0010-Implement-newstyle-export-names.patch +++ /dev/null @@ -1,360 +0,0 @@ -From 0095b003b56894baad8e6789d523cf3c51905c05 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 17 May 2016 19:43:16 +0100 -Subject: [PATCH 10/11] Implement newstyle export names. - -This is now required by qemu >= 2.6. See this lengthy qemu-devel -thread for details: -https://lists.nongnu.org/archive/html/qemu-devel/2016-05/threads.html#02752 ---- - TODO | 13 ------------- - docs/nbdkit.pod | 52 ++++++++++++++++++++++++++++++++------------------- - src/connections.c | 49 ++++++++++++++++++++++++++++++++++++++++-------- - src/internal.h | 1 + - src/main.c | 32 +++++++++++++++++++++++-------- - src/protocol.h | 3 +-- - tests/test-newstyle.c | 7 +++++-- - 7 files changed, 105 insertions(+), 52 deletions(-) - -diff --git a/TODO b/TODO -index 177a07c..30bf72e 100644 ---- a/TODO -+++ b/TODO -@@ -11,19 +11,6 @@ - - * Performance - measure and improve it. - --* Implement export names. With export names it should be possible to -- have multiple plugins on the command line (each responding to a -- different export of course): -- -- nbdkit --export /foo plugin.so --export /bar another-plugin.so -- -- Note it should also be possible to either elect one plugin as the -- default that accepts all exportnames, or to divide the export name -- "space" up using regexps or wildcards. -- -- Export names are not actually paths (although that is how they are -- often used), but arbitrary UTF-8 text strings. -- - * Implement true parallel request handling. Currently - NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS and - NBDKIT_THREAD_MODEL_PARALLEL are the same, because we handle -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index 7204a38..728aad3 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -6,7 +6,7 @@ nbdkit - A toolkit for creating NBD servers - - =head1 SYNOPSIS - -- nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR] -+ nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] - [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] - [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] - PLUGIN [key=value [key=value [...]]] -@@ -74,6 +74,19 @@ Display brief command line usage information and exit. - - Dump out the compile-time configuration values and exit. - -+=item B<-e> EXPORTNAME -+ -+=item B<--export> EXPORTNAME -+ -+=item B<--export-name> EXPORTNAME -+ -+=item B<--exportname> EXPORTNAME -+ -+Set the exportname and use the newstyle protocol (implies I<-n>). -+ -+If not set, exportname C<""> (empty string) is used. Exportnames are -+not allowed with the oldstyle protocol. -+ - =item B<-f> - - =item B<--foreground> -@@ -118,9 +131,10 @@ protocol. See L below. - - =item B<--oldstyle> - --Use the oldstyle NBD protocol. This is currently the default, so this --flag does nothing, but it is possible we might change the default --protocol in future. See L below. -+Use the oldstyle NBD protocol. This is currently the default (unless -+you use I<-n> or I<-e>), so this flag does nothing, but it is possible -+we might change the default protocol in future. See L below. - - =item B<-P> PIDFILE - -@@ -307,27 +321,29 @@ use depends on the client and cannot be known in advance, nor can it - be negotiated from the server side. - - nbdkit currently defaults to the oldstyle protocol for compatibility --with qemu and libguestfs. This is also the same behaviour as --qemu-nbd. Use the I<-n> or I<--newstyle> flag on the command line to --use the newstyle protocol. Use the I<-o> or I<--oldstyle> flag to --force the oldstyle protocol. -+with qemu and libguestfs. This is also the same behaviour as qemu-nbd -+E 2.5. Use the I<-n> or I<--newstyle> flag on the command line to -+use the newstyle protocol. Use the I<-e> or I<--exportname> flag to -+set the exportname for the newstyle protocol. Use the I<-o> or -+I<--oldstyle> flag to force the oldstyle protocol. - - Some common clients and the protocol they require: - -- Client Protocol -+ Client Protocol - ------------------------------------------------------------ -- qemu without exportname oldstyle -- qemu with exportname newstyle -- nbd-client < 3.10 client can talk either protocol -- nbd-client >= 3.10 newstyle -+ qemu <= 2.5 without exportname oldstyle -+ qemu <= 2.5 with exportname newstyle -+ qemu >= 2.6 client can talk either protocol -+ nbd-client < 3.10 client can talk either protocol -+ nbd-client >= 3.10 newstyle - --If you use qemu without the exportname field against a newstyle --server, it will give the error: -+If you use qemu E 2.5 without the exportname field against a -+newstyle server, it will give the error: - - Server requires an export name - --If you use qemu with the exportname field against an oldstyle server, --it will give the error: -+If you use qemu E 2.5 with the exportname field against an -+oldstyle server, it will give the error: - - Server does not support export names - -@@ -341,8 +357,6 @@ document says should be the case (which isn't based in reality), then - you should always use newstyle when using port 10809, and use oldstyle - on all other ports. - --nbdkit ignores export names at present (see also the C file). -- - =head1 SIGNALS - - C responds to the following signals: -diff --git a/src/connections.c b/src/connections.c -index 34566b3..0c93f35 100644 ---- a/src/connections.c -+++ b/src/connections.c -@@ -222,13 +222,8 @@ _negotiate_handshake_oldstyle (struct connection *conn) - return 0; - } - --/* Receive newstyle options. -- * -- * Currently we ignore NBD_OPT_EXPORT_NAME (see TODO), we close the -- * connection if sent NBD_OPT_ABORT, we send a canned list of -- * options for NBD_OPT_LIST, and we send NBD_REP_ERR_UNSUP for -- * everything else. -- */ -+/* Receive newstyle options. */ -+ - static int - send_newstyle_option_reply (struct connection *conn, - uint32_t option, uint32_t reply) -@@ -250,6 +245,39 @@ send_newstyle_option_reply (struct connection *conn, - } - - static int -+send_newstyle_option_reply_exportname (struct connection *conn, -+ uint32_t option, uint32_t reply, -+ const char *exportname) -+{ -+ struct fixed_new_option_reply fixed_new_option_reply; -+ size_t name_len = strlen (exportname); -+ uint32_t len; -+ -+ fixed_new_option_reply.magic = htobe64 (NBD_REP_MAGIC); -+ fixed_new_option_reply.option = htobe32 (option); -+ fixed_new_option_reply.reply = htobe32 (reply); -+ fixed_new_option_reply.replylen = htobe32 (name_len + sizeof (len)); -+ -+ if (xwrite (conn->sockout, -+ &fixed_new_option_reply, sizeof fixed_new_option_reply) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ -+ len = htobe32 (name_len); -+ if (xwrite (conn->sockout, &len, sizeof len) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ if (xwrite (conn->sockout, exportname, name_len) == -1) { -+ nbdkit_error ("write: %m"); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+static int - _negotiate_handshake_newstyle_options (struct connection *conn) - { - struct new_option new_option; -@@ -309,7 +337,12 @@ _negotiate_handshake_newstyle_options (struct connection *conn) - continue; - } - -- /* Since we don't support export names, there is nothing to list. */ -+ /* Send back the exportname. */ -+ debug ("newstyle negotiation: advertising export '%s'", exportname); -+ if (send_newstyle_option_reply_exportname (conn, option, NBD_REP_SERVER, -+ exportname) == -1) -+ return -1; -+ - if (send_newstyle_option_reply (conn, option, NBD_REP_ACK) == -1) - return -1; - break; -diff --git a/src/internal.h b/src/internal.h -index 0603779..f58086a 100644 ---- a/src/internal.h -+++ b/src/internal.h -@@ -48,6 +48,7 @@ - #endif - - /* main.c */ -+extern const char *exportname; - extern const char *ipaddr; - extern int newstyle; - extern const char *port; -diff --git a/src/main.c b/src/main.c -index db4361e..9529f19 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -65,6 +65,7 @@ static void fork_into_background (void); - static uid_t parseuser (const char *); - static gid_t parsegroup (const char *); - -+const char *exportname; /* -e */ - int foreground; /* -f */ - const char *ipaddr; /* -i */ - int newstyle; /* -n */ -@@ -84,10 +85,13 @@ static char *random_fifo = NULL; - - enum { HELP_OPTION = CHAR_MAX + 1 }; - --static const char *short_options = "fg:i:nop:P:rsu:U:vV"; -+static const char *short_options = "e:fg:i:nop:P:rsu:U:vV"; - static const struct option long_options[] = { - { "help", 0, NULL, HELP_OPTION }, - { "dump-config",0, NULL, 0 }, -+ { "export", 1, NULL, 'e' }, -+ { "export-name",1, NULL, 'e' }, -+ { "exportname", 1, NULL, 'e' }, - { "foreground", 0, NULL, 'f' }, - { "no-fork", 0, NULL, 'f' }, - { "group", 1, NULL, 'g' }, -@@ -115,7 +119,7 @@ static const struct option long_options[] = { - static void - usage (void) - { -- printf ("nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]\n" -+ printf ("nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" - " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" - " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" - " PLUGIN [key=value [key=value [...]]]\n" -@@ -173,6 +177,11 @@ main (int argc, char *argv[]) - } - break; - -+ case 'e': -+ exportname = optarg; -+ newstyle = 1; -+ break; -+ - case 'f': - foreground = 1; - break; -@@ -190,9 +199,6 @@ main (int argc, char *argv[]) - break; - - case 'o': -- /* XXX When we add support for exportnames, we will need to -- * ensure that the user does not use -o + --export. -- */ - newstyle = 0; - break; - -@@ -263,12 +269,22 @@ main (int argc, char *argv[]) - exit (EXIT_FAILURE); - } - -+ /* Oldstyle protocol + exportname not allowed. */ -+ if (newstyle == 0 && exportname != NULL) { -+ fprintf (stderr, -+ "%s: cannot use oldstyle protocol (-o) and exportname (-e)\n", -+ program_name); -+ exit (EXIT_FAILURE); -+ } -+ -+ /* If exportname was not set on the command line, use "". */ -+ if (exportname == NULL) -+ exportname = ""; -+ - /* Remaining command line arguments define the plugins and plugin - * configuration. If --help or --version was specified, we still - * partially parse these in order that we can display the per-plugin -- * help/version information. In future (when the new protocol and -- * export names are permitted) we will allow multiple plugins to be -- * given, but at the moment only one plugin is allowed. -+ * help/version information. - */ - while (optind < argc) { - const char *filename = argv[optind]; -diff --git a/src/protocol.h b/src/protocol.h -index 71a8098..c885d9e 100644 ---- a/src/protocol.h -+++ b/src/protocol.h -@@ -70,8 +70,7 @@ struct fixed_new_option_reply { - uint64_t magic; /* NBD_REP_MAGIC, network byte order */ - uint32_t option; /* option we are replying to */ - uint32_t reply; /* NBD_REP_* */ -- uint32_t replylen; /* we always send zero at the moment */ -- /* reply data follows, but we currently never send any */ -+ uint32_t replylen; - } __attribute__((packed)); - - #define NBD_REP_MAGIC UINT64_C(0x3e889045565a9) -diff --git a/tests/test-newstyle.c b/tests/test-newstyle.c -index b1d8ce7..adcc568 100644 ---- a/tests/test-newstyle.c -+++ b/tests/test-newstyle.c -@@ -44,6 +44,8 @@ - - #include "test.h" - -+#define EXPORTNAME "/" -+ - int - main (int argc, char *argv[]) - { -@@ -52,7 +54,8 @@ main (int argc, char *argv[]) - char *data; - size_t i, size; - -- if (test_start_nbdkit ("-n", NBDKIT_PLUGIN ("file"), "file=file-data", -+ if (test_start_nbdkit ("-e", EXPORTNAME, -+ "-n", NBDKIT_PLUGIN ("file"), "file=file-data", - NULL) == -1) - exit (EXIT_FAILURE); - -@@ -63,7 +66,7 @@ main (int argc, char *argv[]) - } - - /* Using any exportname causes qemu to use the newstyle protocol. */ -- r = guestfs_add_drive_opts (g, "/" /* exportname */, -+ r = guestfs_add_drive_opts (g, EXPORTNAME, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", - GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", - GUESTFS_ADD_DRIVE_OPTS_SERVER, server, --- -2.7.4 - diff --git a/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch b/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch deleted file mode 100644 index 3e9e7f8..0000000 --- a/0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7938bbc463a694aeda888d51f1de446f23402d8f Mon Sep 17 00:00:00 2001 -From: Eric Blake -Date: Fri, 20 May 2016 08:04:05 -0600 -Subject: [PATCH 11/11] protocol: Ignore rest of option when replying with - error - -We must consume the payload of any option received, whether or -not we can answer the option successfully, in order to be in -sync for reading the next option. This is particularly true -once clients start using NBD_OPT_GO, as long as we don't happen -to service that option. - -Signed-off-by: Eric Blake ---- - src/connections.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/connections.c b/src/connections.c -index 0c93f35..840e315 100644 ---- a/src/connections.c -+++ b/src/connections.c -@@ -334,6 +334,10 @@ _negotiate_handshake_newstyle_options (struct connection *conn) - if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_INVALID) - == -1) - return -1; -+ if (xread (conn->sockin, data, optlen) == -1) { -+ nbdkit_error ("read: %m"); -+ return -1; -+ } - continue; - } - -@@ -351,6 +355,10 @@ _negotiate_handshake_newstyle_options (struct connection *conn) - /* Unknown option. */ - if (send_newstyle_option_reply (conn, option, NBD_REP_ERR_UNSUP) == -1) - return -1; -+ if (xread (conn->sockin, data, optlen) == -1) { -+ nbdkit_error ("read: %m"); -+ return -1; -+ } - } - - /* Note, since it's not very clear from the protocol doc, that the --- -2.7.4 - diff --git a/nbdkit.spec b/nbdkit.spec index 10fadd7..8107e74 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,8 +5,8 @@ %endif Name: nbdkit -Version: 1.1.11 -Release: 10%{?dist} +Version: 1.1.12 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -14,22 +14,6 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz -# All patches are upstream since 1.1.11. -Patch0001: 0001-Add-mandir-to-dump-config-output.patch -Patch0002: 0002-Update-TODO.patch -Patch0003: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch -Patch0004: 0004-xz-Fix-various-printf-warnings-on-32-bit.patch -Patch0005: 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch -Patch0006: 0006-Test-the-o-oldstyle-command-line-option.patch -Patch0007: 0007-protocol-Send-limited-range-of-errno-values-to-the-c.patch -Patch0008: 0008-protocol-Pack-fixed_new_option_reply-struct.patch -Patch0009: 0009-protocol-Rename-NEW_OPTION_REPLY-as-NBD_REP_MAGIC.patch -Patch0010: 0010-Implement-newstyle-export-names.patch -Patch0011: 0011-protocol-Ignore-rest-of-option-when-replying-with-er.patch - -# Because patch3 & patch5 patches Makefile.am, we need: -BuildRequires: automake, autoconf, libtool - BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -46,6 +30,7 @@ BuildRequires: python-devel # http://caml.inria.fr/mantis/view.php?id=6693 BuildRequires: ocaml >= 4.02.2 %endif +BuildRequires: ruby-devel # For complicated reasons, this is required so that # /bin/kernel-install puts the kernel directly into /boot, instead of @@ -196,6 +181,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Python plugins for %{name}. +%package plugin-ruby +Summary: Ruby plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-ruby +This package lets you write Ruby plugins for %{name}. + + %package plugin-streaming Summary: Streaming file serving plugin for %{name} License: BSD @@ -259,13 +255,12 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 -# libguestfs 1.20 in Fedora 18 doesn't support NBD client protocol, so -# the tests cannot be run. -%if 0%{?fedora} >= 19 # Unlikely that libguestfs will work on ARM and PPC, so don't try running the # tests there. # Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 %ifnarch %{arm} %{ix86} ppc %{power64} +# Broken on F25 because of https://bugzilla.redhat.com/show_bug.cgi?id=1344016 +%if 0{?fedora} < 25 make check || { cat tests/test-suite.log exit 1 @@ -350,6 +345,12 @@ make check || { %{_mandir}/man3/nbdkit-python-plugin.3* +%files plugin-ruby +%doc LICENSE README +%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so +%{_mandir}/man3/nbdkit-ruby-plugin.3* + + %files plugin-streaming %doc LICENSE README %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so @@ -368,11 +369,17 @@ make check || { %doc plugins/example*/*.c %doc plugins/perl/example.pl %doc plugins/python/example.py +%doc plugins/ruby/example.rb %{_includedir}/nbdkit-plugin.h %{_mandir}/man3/nbdkit-plugin.3* %changelog +* Wed Jun 08 2016 Richard W.M. Jones - 1.1.12-1 +- New upstream version 1.1.12 +- Enable Ruby plugin. +- Disable tests on Rawhide because libvirt is broken again (RHBZ#1344016). + * Wed May 25 2016 Richard W.M. Jones - 1.1.11-10 - Add another upstream patch since 1.1.11. diff --git a/sources b/sources index 9b4a9d3..41da4a5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c03d66a7ad5f7f08a171d6845dc28c48 nbdkit-1.1.11.tar.gz +df80454541d5e2f523aaa10cd018bf42 nbdkit-1.1.12.tar.gz From 8389ff205e4f90f2124340a06cbc0a8837335f5f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 8 Jun 2016 15:27:44 +0100 Subject: [PATCH 025/683] Fix missing %. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8107e74..e0620e7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -260,7 +260,7 @@ export LIBGUESTFS_TRACE=1 # Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 %ifnarch %{arm} %{ix86} ppc %{power64} # Broken on F25 because of https://bugzilla.redhat.com/show_bug.cgi?id=1344016 -%if 0{?fedora} < 25 +%if 0%{?fedora} < 25 make check || { cat tests/test-suite.log exit 1 From 3637d72126a7571b7a67b9ec8d64234093085f7e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 3 Oct 2016 14:27:41 +0100 Subject: [PATCH 026/683] Compile Python 2 and Python 3 versions of the plugin. --- ...rification-to-nbdkit-plugin-man-page.patch | 29 + 0002-Mention-Ruby-in-the-README.patch | 26 + 0003-Implement-dump-plugin-option.patch | 324 +++++++ ...Update-copyright-date-on-a-few-files.patch | 73 ++ ...mall-additions-and-cleanups-to-the-t.patch | 441 +++++++++ ...d-support-for-testing-under-valgrind.patch | 896 ++++++++++++++++++ ...-leak-in-OCaml-test-harness-found-by.patch | 26 + ...anagement-of-nbdkit-python-plugin-ex.patch | 58 ++ ...lk-about-Python-in-the-Python-plugin.patch | 43 + 0010-Fix-build-for-Python-3.patch | 117 +++ ...sts-python-Use-bytearray-in-the-test.patch | 42 + nbdkit.spec | 120 ++- 12 files changed, 2187 insertions(+), 8 deletions(-) create mode 100644 0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch create mode 100644 0002-Mention-Ruby-in-the-README.patch create mode 100644 0003-Implement-dump-plugin-option.patch create mode 100644 0004-Update-copyright-date-on-a-few-files.patch create mode 100644 0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch create mode 100644 0006-Add-support-for-testing-under-valgrind.patch create mode 100644 0007-tests-Fix-memory-leak-in-OCaml-test-harness-found-by.patch create mode 100644 0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch create mode 100644 0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch create mode 100644 0010-Fix-build-for-Python-3.patch create mode 100644 0011-tests-python-Use-bytearray-in-the-test.patch diff --git a/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch b/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch new file mode 100644 index 0000000..5a989fc --- /dev/null +++ b/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch @@ -0,0 +1,29 @@ +From da13491740d2bf3086856aefe70481f9d1ca851e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jul 2016 12:22:03 +0100 +Subject: [PATCH 01/11] docs: Small clarification to nbdkit-plugin man page. + +--- + docs/nbdkit-plugin.pod | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/docs/nbdkit-plugin.pod b/docs/nbdkit-plugin.pod +index 4a44285..30e1f86 100644 +--- a/docs/nbdkit-plugin.pod ++++ b/docs/nbdkit-plugin.pod +@@ -348,9 +348,9 @@ C<.flush> callback has been defined. + int is_rotational (void *handle); + + This is called during the option negotiation phase to find out if the +-backing disk is a rotational medium (like a disk) or not (like an +-SSD). If true, this may cause the client to reorder requests to make +-them more efficient for a slow rotating disk. ++backing disk is a rotational medium (like a traditional hard disk) or ++not (like an SSD). If true, this may cause the client to reorder ++requests to make them more efficient for a slow rotating disk. + + If there is an error, C<.is_rotational> should call C + with an error message and return C<-1>. +-- +2.7.4 + diff --git a/0002-Mention-Ruby-in-the-README.patch b/0002-Mention-Ruby-in-the-README.patch new file mode 100644 index 0000000..3b12861 --- /dev/null +++ b/0002-Mention-Ruby-in-the-README.patch @@ -0,0 +1,26 @@ +From f90e301de0481fda86d7acf91e21dfbc3a3a4916 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jul 2016 13:25:14 +0100 +Subject: [PATCH 02/11] Mention Ruby in the README. + +Fixes commit 242c63f88f619aac33a7d002136d58a2cdf3afe1. +--- + README | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/README b/README +index 246dda5..4ea812c 100644 +--- a/README ++++ b/README +@@ -13,7 +13,7 @@ The key features are: + * Well-documented, simple plugin API with a stable ABI guarantee. + Let's you export "unconventional" block devices easily. + +-* You can write plugins in C, Perl, Python or OCaml. ++* You can write plugins in C, Perl, Python, OCaml or Ruby. + + For documentation, see the docs/ directory. + +-- +2.7.4 + diff --git a/0003-Implement-dump-plugin-option.patch b/0003-Implement-dump-plugin-option.patch new file mode 100644 index 0000000..d8112d3 --- /dev/null +++ b/0003-Implement-dump-plugin-option.patch @@ -0,0 +1,324 @@ +From 04ea431bd119dedd4f9ba063049b1f30102ac8a3 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jul 2016 15:18:06 +0100 +Subject: [PATCH 03/11] Implement --dump-plugin option. + +For example: + +$ nbdkit example1 --dump-plugin +path=/usr/lib64/nbdkit/plugins/nbdkit-example1-plugin.so +name=example1 +version=1.1.12 +api_version=1 +struct_size=176 +thread_model=serialize_all_requests +has_load=1 +has_open=1 +has_get_size=1 +has_pread=1 +--- + docs/nbdkit.pod | 7 +++++- + src/internal.h | 3 ++- + src/main.c | 53 ++++++++++++++++++++++++++++------------ + src/plugins.c | 61 ++++++++++++++++++++++++++++++++++++++++++++--- + tests/Makefile.am | 2 ++ + tests/test-dump-plugin.sh | 44 ++++++++++++++++++++++++++++++++++ + 6 files changed, 150 insertions(+), 20 deletions(-) + create mode 100755 tests/test-dump-plugin.sh + +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index 728aad3..12575fa 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -6,7 +6,8 @@ nbdkit - A toolkit for creating NBD servers + + =head1 SYNOPSIS + +- nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] ++ nbdkit [--dump-config] [--dump-plugin] ++ [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] + [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] + [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] + PLUGIN [key=value [key=value [...]]] +@@ -74,6 +75,10 @@ Display brief command line usage information and exit. + + Dump out the compile-time configuration values and exit. + ++=item B<--dump-plugin> ++ ++Dump out information about the plugin and exit. ++ + =item B<-e> EXPORTNAME + + =item B<--export> EXPORTNAME +diff --git a/src/internal.h b/src/internal.h +index f58086a..bc4fa12 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -88,7 +88,8 @@ extern void plugin_register (const char *_filename, void *_dl, struct nbdkit_plu + extern void plugin_cleanup (void); + extern const char *plugin_name (void); + extern void plugin_usage (void); +-extern void plugin_version (void); ++extern const char *plugin_version (void); ++extern void plugin_dump_fields (void); + extern void plugin_config (const char *key, const char *value); + extern void plugin_config_complete (void); + extern void plugin_lock_connection (void); +diff --git a/src/main.c b/src/main.c +index 9529f19..9453cce 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -89,6 +89,7 @@ static const char *short_options = "e:fg:i:nop:P:rsu:U:vV"; + static const struct option long_options[] = { + { "help", 0, NULL, HELP_OPTION }, + { "dump-config",0, NULL, 0 }, ++ { "dump-plugin",0, NULL, 0 }, + { "export", 1, NULL, 'e' }, + { "export-name",1, NULL, 'e' }, + { "exportname", 1, NULL, 'e' }, +@@ -119,7 +120,8 @@ static const struct option long_options[] = { + static void + usage (void) + { +- printf ("nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" ++ printf ("nbdkit [--dump-config] [--dump-plugin]\n" ++ " [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" + " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" + " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" + " PLUGIN [key=value [key=value [...]]]\n" +@@ -151,7 +153,7 @@ main (int argc, char *argv[]) + { + int c; + int option_index; +- int help = 0, version = 0; ++ int help = 0, version = 0, dump_plugin = 0; + + tls_init (); + +@@ -166,6 +168,9 @@ main (int argc, char *argv[]) + dump_config (); + exit (EXIT_SUCCESS); + } ++ else if (strcmp (long_options[option_index].name, "dump-plugin") == 0) { ++ dump_plugin = 1; ++ } + else if (strcmp (long_options[option_index].name, "run") == 0) { + run = optarg; + foreground = 1; +@@ -261,6 +266,14 @@ main (int argc, char *argv[]) + display_version (); + exit (EXIT_SUCCESS); + } ++ if (dump_plugin) { ++ /* Incorrect use of --dump-plugin. */ ++ fprintf (stderr, ++ "%s: use 'nbdkit plugin --dump-plugin' or\n" ++ "'nbdkit /path/to/plugin.so --dump-plugin'\n", ++ program_name); ++ exit (EXIT_FAILURE); ++ } + + /* Otherwise this is an error. */ + fprintf (stderr, +@@ -292,6 +305,29 @@ main (int argc, char *argv[]) + + open_plugin_so (filename); + ++ if (help) { ++ usage (); ++ printf ("\n%s:\n\n", filename); ++ plugin_usage (); ++ exit (EXIT_SUCCESS); ++ } ++ ++ if (version) { ++ const char *v; ++ ++ display_version (); ++ printf ("%s", plugin_name ()); ++ if ((v = plugin_version ()) != NULL) ++ printf (" %s", v); ++ printf ("\n"); ++ exit (EXIT_SUCCESS); ++ } ++ ++ if (dump_plugin) { ++ plugin_dump_fields (); ++ exit (EXIT_SUCCESS); ++ } ++ + /* Find key=value configuration parameters for this plugin. */ + ++optind; + while (optind < argc && (p = strchr (argv[optind], '=')) != NULL) { +@@ -304,19 +340,6 @@ main (int argc, char *argv[]) + ++optind; + } + +- if (help) { +- usage (); +- printf ("\n%s:\n\n", filename); +- plugin_usage (); +- exit (EXIT_SUCCESS); +- } +- +- if (version) { +- display_version (); +- plugin_version (); +- exit (EXIT_SUCCESS); +- } +- + plugin_config_complete (); + + /* If we supported export names, then we'd continue in the loop +diff --git a/src/plugins.c b/src/plugins.c +index 0834874..8f38761 100644 +--- a/src/plugins.c ++++ b/src/plugins.c +@@ -189,15 +189,70 @@ plugin_usage (void) + } + } + +-void ++const char * + plugin_version (void) + { + assert (dl); + +- printf ("%s", plugin.name); ++ return plugin.version; ++} ++ ++/* This implements the --dump-plugin option. */ ++void ++plugin_dump_fields (void) ++{ ++ char *path; ++ ++ path = nbdkit_absolute_path (filename); ++ printf ("path=%s\n", path); ++ free (path); ++ ++ printf ("name=%s\n", plugin.name); + if (plugin.version) +- printf (" %s", plugin.version); ++ printf ("version=%s\n", plugin.version); ++ ++ printf ("api_version=%d\n", plugin._api_version); ++ printf ("struct_size=%" PRIu64 "\n", plugin._struct_size); ++ printf ("thread_model="); ++ switch (plugin._thread_model) { ++ case NBDKIT_THREAD_MODEL_SERIALIZE_CONNECTIONS: ++ printf ("serialize_connections"); ++ break; ++ case NBDKIT_THREAD_MODEL_SERIALIZE_ALL_REQUESTS: ++ printf ("serialize_all_requests"); ++ break; ++ case NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS: ++ printf ("serialize_requests"); ++ break; ++ case NBDKIT_THREAD_MODEL_PARALLEL: ++ printf ("parallel"); ++ break; ++ default: ++ printf ("%d # unknown thread model!", plugin._thread_model); ++ break; ++ } + printf ("\n"); ++ ++#define HAS(field) if (plugin.field) printf ("has_%s=1\n", #field) ++ HAS (longname); ++ HAS (description); ++ HAS (load); ++ HAS (unload); ++ HAS (config); ++ HAS (config_complete); ++ HAS (config_help); ++ HAS (open); ++ HAS (close); ++ HAS (get_size); ++ HAS (can_write); ++ HAS (can_flush); ++ HAS (is_rotational); ++ HAS (can_trim); ++ HAS (pread); ++ HAS (pwrite); ++ HAS (flush); ++ HAS (trim); ++#undef HAS + } + + void +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 04bc0bc..2c936bf 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -37,6 +37,7 @@ EXTRA_DIST = \ + README.tests \ + test-captive.sh \ + test-dump-config.sh \ ++ test-dump-plugin.sh \ + test-foreground.sh \ + test-help.sh \ + test-help-plugin.sh \ +@@ -55,6 +56,7 @@ TESTS = \ + test-help.sh \ + test-help-plugin.sh \ + test-dump-config.sh \ ++ test-dump-plugin.sh \ + test-start.sh \ + test-foreground.sh \ + test-single.sh \ +diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh +new file mode 100755 +index 0000000..5cde25b +--- /dev/null ++++ b/tests/test-dump-plugin.sh +@@ -0,0 +1,44 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2014 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++set -e ++ ++output="$( ++ ../src/nbdkit \ ++ ../plugins/example1/.libs/nbdkit-example1-plugin.so --dump-plugin ++ )" ++if [[ ! ( "$output" =~ ^path= ) ]]; then ++ echo "$0: unexpected output from nbdkit --dump-plugin" ++ echo "$output" ++ exit 1 ++fi +-- +2.7.4 + diff --git a/0004-Update-copyright-date-on-a-few-files.patch b/0004-Update-copyright-date-on-a-few-files.patch new file mode 100644 index 0000000..a2c0f77 --- /dev/null +++ b/0004-Update-copyright-date-on-a-few-files.patch @@ -0,0 +1,73 @@ +From c149420eac39b8f3bf7d870d1f030c68870f7c51 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jul 2016 20:06:57 +0100 +Subject: [PATCH 04/11] Update copyright date on a few files. + +--- + LICENSE | 2 +- + Makefile.am | 2 +- + docs/nbdkit.pod | 2 +- + include/nbdkit-plugin.h | 2 +- + tests/Makefile.am | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/LICENSE b/LICENSE +index 5e5cc77..5b4109f 100644 +--- a/LICENSE ++++ b/LICENSE +@@ -1,5 +1,5 @@ + nbdkit +-Copyright (C) 2013 Red Hat Inc. ++Copyright (C) 2013-2016 Red Hat Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without +diff --git a/Makefile.am b/Makefile.am +index 6b48dff..aade60d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,5 +1,5 @@ + # nbdkit +-# Copyright (C) 2013 Red Hat Inc. ++# Copyright (C) 2013-2016 Red Hat Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index 12575fa..2b11eed 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -404,7 +404,7 @@ Richard W.M. Jones + + =head1 COPYRIGHT + +-Copyright (C) 2013 Red Hat Inc. ++Copyright (C) 2013-2016 Red Hat Inc. + + =head1 LICENSE + +diff --git a/include/nbdkit-plugin.h b/include/nbdkit-plugin.h +index 8352675..bc9794e 100644 +--- a/include/nbdkit-plugin.h ++++ b/include/nbdkit-plugin.h +@@ -1,5 +1,5 @@ + /* nbdkit +- * Copyright (C) 2013 Red Hat Inc. ++ * Copyright (C) 2013-2016 Red Hat Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 2c936bf..08fd02a 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1,5 +1,5 @@ + # nbdkit +-# Copyright (C) 2013-2014 Red Hat Inc. ++# Copyright (C) 2013-2016 Red Hat Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without +-- +2.7.4 + diff --git a/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch b/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch new file mode 100644 index 0000000..781e1b8 --- /dev/null +++ b/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch @@ -0,0 +1,441 @@ +From 8477cf49de988a15b3fc58d91c54efef295543fd Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jul 2016 20:14:58 +0100 +Subject: [PATCH 05/11] tests: Multiple small additions and cleanups to the + test scripts. + +Use a common 'functions.sh' file for test functions. +--- + TODO | 2 ++ + tests/Makefile.am | 10 ++++-- + tests/functions.sh | 39 +++++++++++++++++++++ + tests/test-captive.sh | 7 ++-- + tests/test-dump-plugin.sh | 8 ++--- + tests/test-foreground.sh | 4 +-- + tests/test-help-plugin.sh | 3 +- + tests/test-ipv4.sh | 83 ++++++++++++++++++++++++++++++++++++++++++++ + tests/test-random-sock.sh | 5 ++- + tests/test-single.sh | 3 +- + tests/test-start.sh | 5 ++- + tests/test-version-plugin.sh | 42 ++++++++++++++++++++++ + tests/test-version.sh | 41 ++++++++++++++++++++++ + 13 files changed, 232 insertions(+), 20 deletions(-) + create mode 100644 tests/functions.sh + create mode 100755 tests/test-ipv4.sh + create mode 100755 tests/test-version-plugin.sh + create mode 100755 tests/test-version.sh + +diff --git a/TODO b/TODO +index 30bf72e..6c5bb5b 100644 +--- a/TODO ++++ b/TODO +@@ -1,3 +1,5 @@ ++* Listen on specific interfaces or protocols (eg. only IPv6). ++ + * Can we do language bindings using #!'s? + You would enter: + nbdkit foo [args] +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 08fd02a..6f6cfa2 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -41,6 +41,7 @@ EXTRA_DIST = \ + test-foreground.sh \ + test-help.sh \ + test-help-plugin.sh \ ++ test-ipv4.sh \ + test.pl \ + test.py \ + test_ocaml_plugin.ml \ +@@ -48,20 +49,25 @@ EXTRA_DIST = \ + test.rb \ + test-single.sh \ + test-start.sh \ +- test-random-sock.sh ++ test-random-sock.sh \ ++ test-version.sh \ ++ test-version-plugin.sh + + # Basic server command line and start-up tests. + + TESTS = \ + test-help.sh \ + test-help-plugin.sh \ ++ test-version.sh \ ++ test-version-plugin.sh \ + test-dump-config.sh \ + test-dump-plugin.sh \ + test-start.sh \ + test-foreground.sh \ + test-single.sh \ + test-captive.sh \ +- test-random-sock.sh ++ test-random-sock.sh \ ++ test-ipv4.sh + + # In-depth tests need libguestfs, since that is a convenient way to + # drive qemu. +diff --git a/tests/functions.sh b/tests/functions.sh +new file mode 100644 +index 0000000..4ebddbb +--- /dev/null ++++ b/tests/functions.sh +@@ -0,0 +1,39 @@ ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Some functions used by the tests. ++ ++# Return the path to a named nbdkit plugin. ++nbdkit_plugin () ++{ ++ echo "../plugins/$1/.libs/nbdkit-$1-plugin.so" ++} +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 5f18b5f..098024b 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -33,14 +33,15 @@ + + set -e + set -x ++source ./functions.sh + + # Test nbdkit --run (captive nbdkit) option. + + rm -f captive.sock captive.out + +-../src/nbdkit -U captive.sock \ +- ../plugins/example1/.libs/nbdkit-example1-plugin.so \ +- --run 'sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket' > captive.out ++../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' ++ sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket ++ ' > captive.out + + # Check the output. + if [ "$(cat captive.out)" != "nbd=nbd:unix:$(pwd)/captive.sock +diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh +index 5cde25b..2517689 100755 +--- a/tests/test-dump-plugin.sh ++++ b/tests/test-dump-plugin.sh +@@ -32,12 +32,10 @@ + # SUCH DAMAGE. + + set -e ++source ./functions.sh + +-output="$( +- ../src/nbdkit \ +- ../plugins/example1/.libs/nbdkit-example1-plugin.so --dump-plugin +- )" +-if [[ ! ( "$output" =~ ^path= ) ]]; then ++output="$(../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" ++if [[ ! ( "$output" =~ name\=example1 ) ]]; then + echo "$0: unexpected output from nbdkit --dump-plugin" + echo "$output" + exit 1 +diff --git a/tests/test-foreground.sh b/tests/test-foreground.sh +index daa733e..6d23bf4 100755 +--- a/tests/test-foreground.sh ++++ b/tests/test-foreground.sh +@@ -33,14 +33,14 @@ + + set -e + set -x ++source ./functions.sh + + # Test nbdkit -f option. + + rm -f foreground.pid foreground.sock + + ../src/nbdkit \ +- -f -P foreground.pid -U foreground.sock \ +- ../plugins/example1/.libs/nbdkit-example1-plugin.so & ++ -f -P foreground.pid -U foreground.sock `nbdkit_plugin example1` & + bg_pid=$! + + # We may have to wait a short time for the pid file to appear. +diff --git a/tests/test-help-plugin.sh b/tests/test-help-plugin.sh +index dba1028..92bb277 100755 +--- a/tests/test-help-plugin.sh ++++ b/tests/test-help-plugin.sh +@@ -32,8 +32,9 @@ + # SUCH DAMAGE. + + set -e ++source ./functions.sh + +-output="$(../src/nbdkit ../plugins/file/.libs/nbdkit-file-plugin.so --help)" ++output="$(../src/nbdkit `nbdkit_plugin file` --help)" + if [[ ! ( "$output" =~ "nbdkit file plugin" ) ]]; then + echo "$0: unexpected output from nbdkit file --help" + echo "$output" +diff --git a/tests/test-ipv4.sh b/tests/test-ipv4.sh +new file mode 100755 +index 0000000..8eda61c +--- /dev/null ++++ b/tests/test-ipv4.sh +@@ -0,0 +1,83 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Every other test uses a Unix domain socket. This tests nbdkit over ++# IPv4 localhost connections. ++# ++# XXX We should be able to test "just IPv6". However there is ++# currently no option to listen only on particular interfaces. ++ ++set -e ++source ./functions.sh ++ ++# Don't fail if certain commands aren't available. ++if ! ss --version; then ++ echo "$0: 'ss' command not available" ++ exit 77 ++fi ++if ! socat -h; then ++ echo "$0: 'socat' command not available" ++ exit 77 ++fi ++ ++# Find an unused port to listen on. ++for port in `seq 49152 65535`; do ++ if ! ss -ltn | grep -sqE ":$port\b"; then break; fi ++done ++echo picked unused port $port ++ ++../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` ++ ++# We may have to wait a short time for the pid file to appear. ++for i in `seq 1 10`; do ++ if test -f ipv4.pid; then ++ break ++ fi ++ sleep 1 ++done ++if ! test -f ipv4.pid; then ++ echo "$0: PID file was not created" ++ exit 1 ++fi ++ ++pid="$(cat ipv4.pid)" ++ ++# Check the process exists. ++kill -s 0 $pid ++ ++# Check we can connect to the socket. ++socat TCP:localhost:$port STDIO +Date: Sat, 9 Jul 2016 21:15:46 +0100 +Subject: [PATCH 06/11] Add support for testing under valgrind. + +Use 'make check-valgrind' to run all the tests under valgrind. +--- + Makefile.am | 3 +++ + README | 11 ++++++++++ + configure.ac | 12 +++++++++++ + tests/Makefile.am | 50 ++++++++++++++++++++++++++++++-------------- + tests/test-captive.sh | 2 +- + tests/test-connect.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-dump-config.sh | 2 +- + tests/test-dump-plugin.sh | 2 +- + tests/test-file.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-foreground.sh | 2 +- + tests/test-gzip.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-help-plugin.sh | 2 +- + tests/test-help.sh | 2 +- + tests/test-ipv4.sh | 2 +- + tests/test-newstyle.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-ocaml.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-oldstyle.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-perl.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-python.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-random-sock.sh | 2 +- + tests/test-ruby.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-single.sh | 2 +- + tests/test-start.sh | 2 +- + tests/test-streaming.sh | 34 ++++++++++++++++++++++++++++++ + tests/test-version-plugin.sh | 2 +- + tests/test-version.sh | 2 +- + tests/test-xz.sh | 34 ++++++++++++++++++++++++++++++ + valgrind-suppressions | 32 ++++++++++++++++++++++++++++ + 28 files changed, 478 insertions(+), 28 deletions(-) + create mode 100755 tests/test-connect.sh + create mode 100755 tests/test-file.sh + create mode 100755 tests/test-gzip.sh + create mode 100755 tests/test-newstyle.sh + create mode 100755 tests/test-ocaml.sh + create mode 100755 tests/test-oldstyle.sh + create mode 100755 tests/test-perl.sh + create mode 100755 tests/test-python.sh + create mode 100755 tests/test-ruby.sh + create mode 100755 tests/test-streaming.sh + create mode 100755 tests/test-xz.sh + create mode 100644 valgrind-suppressions + +diff --git a/Makefile.am b/Makefile.am +index aade60d..3c5c650 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -40,3 +40,6 @@ EXTRA_DIST = \ + SUBDIRS = docs plugins include src tests + + CLEANFILES = *~ ++ ++check-valgrind: ++ $(MAKE) -C tests check-valgrind +diff --git a/README b/README +index 4ea812c..135c8d5 100644 +--- a/README ++++ b/README +@@ -78,6 +78,16 @@ For the OCaml plugin: + - OCaml >= 4.02.2 which has support for shared libraries, see: + http://caml.inria.fr/mantis/view.php?id=6693 + ++To test for memory leaks ('make check-valgrind'): ++ ++ - valgrind ++ ++For non-essential enhancements to the test suite: ++ ++ - socat ++ ++ - ss (from iproute package) ++ + After installing any dependencies: + + To build from tarball: To build from git: +@@ -86,6 +96,7 @@ After installing any dependencies: + ./configure ./configure + make make + make check make check ++ make check-valgrind make check-valgrind + + Optionally run this as root to install everything: + +diff --git a/configure.ac b/configure.ac +index 3c75397..c064420 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -109,6 +109,18 @@ or the configure test may be wrong. + The code will still compile, but is likely to leak memory and other + resources when it runs.])]) + ++dnl Check for valgrind. ++AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) ++AS_IF([test "x$VALGRIND" != "xno"],[ ++ # Substitute the whole valgrind command. ++ VG='$(VALGRIND) --vgdb=no --leak-check=full --error-exitcode=119 --suppressions=$(abs_top_srcdir)/valgrind-suppressions --trace-children=no --child-silent-after-fork=yes --run-libc-freeres=no' ++],[ ++ # Valgrind is not installed, substitute something which will break. ++ VG=VALGRIND_IS_NOT_INSTALLED ++]) ++AC_SUBST([VG]) ++AM_SUBST_NOTMAKE([VG]) ++ + dnl Check for Perl POD. + AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) + AM_CONDITIONAL([HAVE_POD2MAN], [test "x$POD2MAN" != "xno"]) +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 6f6cfa2..afb9975 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -36,22 +36,38 @@ MAINTAINERCLEANFILES = + EXTRA_DIST = \ + README.tests \ + test-captive.sh \ ++ test-connect.sh \ + test-dump-config.sh \ + test-dump-plugin.sh \ ++ test-file.sh \ + test-foreground.sh \ ++ test-gzip.sh \ + test-help.sh \ + test-help-plugin.sh \ + test-ipv4.sh \ +- test.pl \ +- test.py \ ++ test-newstyle.sh \ + test_ocaml_plugin.ml \ + test-ocaml.c \ ++ test-ocaml.sh \ ++ test-oldstyle.sh \ ++ test.pl \ ++ test-perl.sh \ ++ test.py \ ++ test-python.sh \ + test.rb \ + test-single.sh \ + test-start.sh \ + test-random-sock.sh \ ++ test-ruby.sh \ ++ test-streaming.sh \ + test-version.sh \ +- test-version-plugin.sh ++ test-version-plugin.sh \ ++ test-xz.sh ++ ++# Use 'make check' to run the ordinary tests. To run all the tests ++# under valgrind, use the following rule: ++check-valgrind: ++ $(MAKE) VG="@VG@" check + + # Basic server command line and start-up tests. + +@@ -87,19 +103,21 @@ check_LTLIBRARIES = libtest.la + libtest_la_SOURCES = test.c test.h + libtest_la_CFLAGS = $(WARNINGS_CFLAGS) + +-# Basic connection test. +-check_PROGRAMS = test-connect +-TESTS += test-connect ++check_PROGRAMS = + check_DATA = + check_SCRIPTS = + ++# Basic connection test. ++check_PROGRAMS += test-connect ++TESTS += test-connect.sh ++ + test_connect_SOURCES = test-connect.c test.h + test_connect_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_connect_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + # file plugin test. + check_PROGRAMS += test-file +-TESTS += test-file ++TESTS += test-file.sh + check_DATA += file-data + MAINTAINERCLEANFILES += file-data + +@@ -114,7 +132,7 @@ file-data: + + # newstyle protocol test. + check_PROGRAMS += test-newstyle +-TESTS += test-newstyle ++TESTS += test-newstyle.sh + + test_newstyle_SOURCES = test-newstyle.c test.h + test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) +@@ -122,7 +140,7 @@ test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + # oldstyle protocol test. + check_PROGRAMS += test-oldstyle +-TESTS += test-oldstyle ++TESTS += test-oldstyle.sh + + test_oldstyle_SOURCES = test-oldstyle.c test.h + test_oldstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) +@@ -133,7 +151,7 @@ if HAVE_ZLIB + if HAVE_GUESTFISH + + check_PROGRAMS += test-gzip +-TESTS += test-gzip ++TESTS += test-gzip.sh + check_DATA += disk disk.gz + MAINTAINERCLEANFILES += disk disk.gz + +@@ -158,7 +176,7 @@ if HAVE_LIBLZMA + if HAVE_GUESTFISH + + check_PROGRAMS += test-xz +-TESTS += test-xz ++TESTS += test-xz.sh + check_DATA += disk.xz + MAINTAINERCLEANFILES += disk.xz + +@@ -177,7 +195,7 @@ endif + if HAVE_PERL + + check_PROGRAMS += test-perl +-TESTS += test-perl ++TESTS += test-perl.sh + + test_perl_SOURCES = test-lang-plugins.c test.h + test_perl_CFLAGS = \ +@@ -191,7 +209,7 @@ endif + if HAVE_PYTHON + + check_PROGRAMS += test-python +-TESTS += test-python ++TESTS += test-python.sh + + test_python_SOURCES = test-lang-plugins.c test.h + test_python_CFLAGS = \ +@@ -205,7 +223,7 @@ endif + if HAVE_OCAML + + check_PROGRAMS += test-ocaml +-TESTS += test-ocaml ++TESTS += test-ocaml.sh + + # This is somewhat different from the other tests because we have + # to build an actual plugin here. +@@ -227,7 +245,7 @@ endif + if HAVE_RUBY + + check_PROGRAMS += test-ruby +-TESTS += test-ruby ++TESTS += test-ruby.sh + + test_ruby_SOURCES = test-lang-plugins.c test.h + test_ruby_CFLAGS = \ +@@ -240,7 +258,7 @@ endif + # streaming plugin test. + check_PROGRAMS += test-streaming + # Doesn't work: +-#TESTS += test-streaming ++#TESTS += test-streaming.sh + + test_streaming_SOURCES = test-streaming.c test.h + test_streaming_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 098024b..1ac0844 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -39,7 +39,7 @@ source ./functions.sh + + rm -f captive.sock captive.out + +-../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' ++$VG ../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' + sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket + ' > captive.out + +diff --git a/tests/test-connect.sh b/tests/test-connect.sh +new file mode 100755 +index 0000000..37b1e32 +--- /dev/null ++++ b/tests/test-connect.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-connect +diff --git a/tests/test-dump-config.sh b/tests/test-dump-config.sh +index 6c01adb..7910e11 100755 +--- a/tests/test-dump-config.sh ++++ b/tests/test-dump-config.sh +@@ -33,7 +33,7 @@ + + set -e + +-output="$(../src/nbdkit --dump-config)" ++output="$($VG ../src/nbdkit --dump-config)" + if [[ ! ( "$output" =~ ^bindir= ) ]]; then + echo "$0: unexpected output from nbdkit --dump-config" + echo "$output" +diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh +index 2517689..8d9b8fd 100755 +--- a/tests/test-dump-plugin.sh ++++ b/tests/test-dump-plugin.sh +@@ -34,7 +34,7 @@ + set -e + source ./functions.sh + +-output="$(../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" ++output="$($VG ../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" + if [[ ! ( "$output" =~ name\=example1 ) ]]; then + echo "$0: unexpected output from nbdkit --dump-plugin" + echo "$output" +diff --git a/tests/test-file.sh b/tests/test-file.sh +new file mode 100755 +index 0000000..f5012a8 +--- /dev/null ++++ b/tests/test-file.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-file +diff --git a/tests/test-foreground.sh b/tests/test-foreground.sh +index 6d23bf4..e76b52d 100755 +--- a/tests/test-foreground.sh ++++ b/tests/test-foreground.sh +@@ -39,7 +39,7 @@ source ./functions.sh + + rm -f foreground.pid foreground.sock + +-../src/nbdkit \ ++$VG ../src/nbdkit \ + -f -P foreground.pid -U foreground.sock `nbdkit_plugin example1` & + bg_pid=$! + +diff --git a/tests/test-gzip.sh b/tests/test-gzip.sh +new file mode 100755 +index 0000000..085798e +--- /dev/null ++++ b/tests/test-gzip.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-gzip +diff --git a/tests/test-help-plugin.sh b/tests/test-help-plugin.sh +index 92bb277..94359c2 100755 +--- a/tests/test-help-plugin.sh ++++ b/tests/test-help-plugin.sh +@@ -34,7 +34,7 @@ + set -e + source ./functions.sh + +-output="$(../src/nbdkit `nbdkit_plugin file` --help)" ++output="$($VG ../src/nbdkit `nbdkit_plugin file` --help)" + if [[ ! ( "$output" =~ "nbdkit file plugin" ) ]]; then + echo "$0: unexpected output from nbdkit file --help" + echo "$output" +diff --git a/tests/test-help.sh b/tests/test-help.sh +index 299480b..c98e7d7 100755 +--- a/tests/test-help.sh ++++ b/tests/test-help.sh +@@ -33,7 +33,7 @@ + + set -e + +-output="$(../src/nbdkit --help)" ++output="$($VG ../src/nbdkit --help)" + if [[ ! ( "$output" =~ dump-config ) ]]; then + echo "$0: unexpected output from nbdkit --help" + echo "$output" +diff --git a/tests/test-ipv4.sh b/tests/test-ipv4.sh +index 8eda61c..024d2ee 100755 +--- a/tests/test-ipv4.sh ++++ b/tests/test-ipv4.sh +@@ -56,7 +56,7 @@ for port in `seq 49152 65535`; do + done + echo picked unused port $port + +-../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` ++$VG ../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` + + # We may have to wait a short time for the pid file to appear. + for i in `seq 1 10`; do +diff --git a/tests/test-newstyle.sh b/tests/test-newstyle.sh +new file mode 100755 +index 0000000..62176aa +--- /dev/null ++++ b/tests/test-newstyle.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-newstyle +diff --git a/tests/test-ocaml.sh b/tests/test-ocaml.sh +new file mode 100755 +index 0000000..e90c9c5 +--- /dev/null ++++ b/tests/test-ocaml.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-ocaml +diff --git a/tests/test-oldstyle.sh b/tests/test-oldstyle.sh +new file mode 100755 +index 0000000..db2705a +--- /dev/null ++++ b/tests/test-oldstyle.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-oldstyle +diff --git a/tests/test-perl.sh b/tests/test-perl.sh +new file mode 100755 +index 0000000..44af3ee +--- /dev/null ++++ b/tests/test-perl.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-perl +diff --git a/tests/test-python.sh b/tests/test-python.sh +new file mode 100755 +index 0000000..4738cc1 +--- /dev/null ++++ b/tests/test-python.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-python +diff --git a/tests/test-random-sock.sh b/tests/test-random-sock.sh +index a4c58d3..7b0293b 100755 +--- a/tests/test-random-sock.sh ++++ b/tests/test-random-sock.sh +@@ -37,4 +37,4 @@ source ./functions.sh + + # Test nbdkit -U - + captive nbdkit. + +-../src/nbdkit -U - `nbdkit_plugin example1` --run 'sleep 5' ++$VG ../src/nbdkit -U - `nbdkit_plugin example1` --run 'sleep 5' +diff --git a/tests/test-ruby.sh b/tests/test-ruby.sh +new file mode 100755 +index 0000000..50a6e7c +--- /dev/null ++++ b/tests/test-ruby.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2016 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++exec $VG ./test-ruby +diff --git a/tests/test-single.sh b/tests/test-single.sh +index a06ea5d..ec83e2f 100755 +--- a/tests/test-single.sh ++++ b/tests/test-single.sh +@@ -38,4 +38,4 @@ source ./functions.sh + # Test nbdkit -s option. + # XXX Not sure what is a really good test of this. + +-../src/nbdkit -s `nbdkit_plugin example1` +Date: Sun, 10 Jul 2016 17:10:30 +0100 +Subject: [PATCH 07/11] tests: Fix memory leak in OCaml test harness (found by + valgrind). + +--- + tests/test-ocaml.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tests/test-ocaml.c b/tests/test-ocaml.c +index 08b2e98..e77ff00 100644 +--- a/tests/test-ocaml.c ++++ b/tests/test-ocaml.c +@@ -106,6 +106,8 @@ main (int argc, char *argv[]) + exit (EXIT_FAILURE); + } + ++ free (data); ++ + data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); + if (!data) + exit (EXIT_FAILURE); +-- +2.7.4 + diff --git a/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch b/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch new file mode 100644 index 0000000..7b06f95 --- /dev/null +++ b/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch @@ -0,0 +1,58 @@ +From 558dc7d84b46a1924e06808caa8b113238961fd3 Mon Sep 17 00:00:00 2001 +From: Carl-Daniel Hailfinger +Date: Mon, 26 Sep 2016 17:07:41 +0200 +Subject: [PATCH 08/11] Improve memory management of nbdkit python plugin + example + +Hi, + +the nbdkit python plugin example has suboptimal memory management: +- it creates the disk image as a string on init +- it casts the string to bytearray on every read +- it copies the string before and the string after the written region, +then reassembles those pieces together with the written region to a new +disk image string + +This is not a problem as long as the image is small, but in my tests +with a 5 GB sized image nbdkit already used 15 GB RAM directly after +startup, and even more (20-25 GB) on the first write. + +This changes the code to use bytearray everywhere and use the proper +methods to change bytearray objects directly. With the patch applied, +nbdkit with a 5 GB image will still only use 5 GB RAM even during heavy +read/write activity. + +Regards, +Carl-Daniel +--- + plugins/python/example.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/python/example.py b/plugins/python/example.py +index aa099eb..184896e 100644 +--- a/plugins/python/example.py ++++ b/plugins/python/example.py +@@ -29,7 +29,7 @@ + # reconnect to the same server you should see the same disk. You + # could also put this into the handle, so there would be a fresh disk + # per handle. +-disk = "\0" * (1024*1024); ++disk = bytearray(1024 * 1024) + + # This just prints the extra command line parameters, but real plugins + # should parse them and reject any unknown parameters. +@@ -50,9 +50,9 @@ def get_size(h): + + def pread(h, count, offset): + global disk +- return bytearray (disk[offset:offset+count]) ++ return disk[offset:offset+count] + + def pwrite(h, buf, offset): + global disk + end = offset + len (buf) +- disk = disk[:offset] + buf + disk[end:] ++ disk[offset:end] = buf +-- +2.7.4 + diff --git a/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch b/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch new file mode 100644 index 0000000..e8e9701 --- /dev/null +++ b/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch @@ -0,0 +1,43 @@ +From 90e5af07e54ce77f8b9d7b20af52306ea2b12c6e Mon Sep 17 00:00:00 2001 +From: Carl-Daniel Hailfinger +Date: Mon, 26 Sep 2016 17:14:37 +0200 +Subject: [PATCH 09/11] nbdkit: Talk about Python in the Python plugin + +--- + plugins/python/python.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/python/python.c b/plugins/python/python.c +index a59d11e..fcbb9f2 100644 +--- a/plugins/python/python.c ++++ b/plugins/python/python.c +@@ -437,7 +437,7 @@ py_can_write (void *handle) + Py_DECREF (r); + return ret; + } +- /* No Perl can_write callback, but there's a Perl pwrite callback ++ /* No Python can_write callback, but there's a Python pwrite callback + * defined, so return 1. (In C modules, nbdkit would do this). + */ + else if (callback_defined ("pwrite", NULL)) +@@ -470,7 +470,7 @@ py_can_flush (void *handle) + Py_DECREF (r); + return ret; + } +- /* No Perl can_flush callback, but there's a Perl flush callback ++ /* No Python can_flush callback, but there's a Python flush callback + * defined, so return 1. (In C modules, nbdkit would do this). + */ + else if (callback_defined ("flush", NULL)) +@@ -531,7 +531,7 @@ py_can_trim (void *handle) + Py_DECREF (r); + return ret; + } +- /* No Perl can_trim callback, but there's a Perl trim callback ++ /* No Python can_trim callback, but there's a Python trim callback + * defined, so return 1. (In C modules, nbdkit would do this). + */ + else if (callback_defined ("trim", NULL)) +-- +2.7.4 + diff --git a/0010-Fix-build-for-Python-3.patch b/0010-Fix-build-for-Python-3.patch new file mode 100644 index 0000000..73b55e0 --- /dev/null +++ b/0010-Fix-build-for-Python-3.patch @@ -0,0 +1,117 @@ +From fe8e47a7295900951e4510bdf582dc6b836efad5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 3 Oct 2016 13:55:26 +0100 +Subject: [PATCH 10/11] Fix build for Python 3. + +Python 3 does not have PyString_FromString. Use a near-equivalent +instead. + +To build for Python 3 you must point the PYTHON environment variable +to the Python 3 interpreter when configuring. For example: + +PYTHON=/usr/bin/python3 ./configure +--- + README | 10 ++++++++++ + configure.ac | 13 ++++++++++++- + plugins/python/nbdkit-python-plugin.pod | 9 +++++++++ + plugins/python/python.c | 9 +++++++++ + 4 files changed, 40 insertions(+), 1 deletion(-) + +diff --git a/README b/README +index 135c8d5..2723d5e 100644 +--- a/README ++++ b/README +@@ -102,6 +102,16 @@ Optionally run this as root to install everything: + + make install + ++Python ++------ ++ ++By default nbdkit uses the Python version of the Python interpreter ++called "python" on the current $PATH. To use another version of ++Python you may need to set the PYTHON environment variable when ++configuring. For example: ++ ++ PYTHON=/usr/bin/python3 ./configure ++ + Tests + ----- + +diff --git a/configure.ac b/configure.ac +index c064420..a475e8e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -201,7 +201,18 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ + ]) + ]) + +- dnl XXX Could check these actually work. ++ dnl Check for various functions needed by the bindings. ++ old_LIBS="$LIBS" ++ ++ PYTHON_BLDLIBRARY=`$PYTHON -c "import distutils.sysconfig; \ ++ print (distutils.sysconfig.get_config_var('BLDLIBRARY'))"` ++ AC_CHECK_LIB([c],[PyString_FromString], ++ [AC_DEFINE([HAVE_PYSTRING_FROMSTRING],1, ++ [Found PyString_FromString in libpython.])], ++ [],[$PYTHON_BLDLIBRARY]) ++ ++ LIBS="$old_LIBS" ++ + ]) + AM_CONDITIONAL([HAVE_PYTHON],[test "x$enable_python" != "xno" && test "x$PYTHON" != "xno"]) + AC_SUBST([PYTHON_CFLAGS]) +diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod +index 70d3e17..9b0f0ef 100644 +--- a/plugins/python/nbdkit-python-plugin.pod ++++ b/plugins/python/nbdkit-python-plugin.pod +@@ -16,6 +16,15 @@ L, allowing you to write nbdkit plugins in Python. + Broadly speaking, Python nbdkit plugins work like C ones, so you should + read L first. + ++=head2 PYTHON 2 AND PYTHON 3 ++ ++The Python plugin has to be compiled for either Python 2 or Python 3 ++when building nbdkit. You can set the C environment variable ++to the desired interpreter, otherwise nbdkit will use the interpreter ++called C on the current C<$PATH>. For example: ++ ++ PYTHON=/usr/bin/python3 ./configure ++ + =head2 USING A PYTHON NBDKIT PLUGIN + + Assuming you have a Python script which is an nbdkit plugin, you run it +diff --git a/plugins/python/python.c b/plugins/python/python.c +index fcbb9f2..0504715 100644 +--- a/plugins/python/python.c ++++ b/plugins/python/python.c +@@ -133,7 +133,11 @@ py_config (const char *key, const char *value) + /* Note that because closeit flag == 1, fp is now closed. */ + + /* The script should define a module called __main__. */ ++#ifdef HAVE_PYSTRING_FROMSTRING + modname = PyString_FromString ("__main__"); ++#else ++ modname = PyUnicode_FromString ("__main__"); ++#endif + module = PyImport_Import (modname); + Py_DECREF (modname); + if (!module) { +@@ -154,8 +158,13 @@ py_config (const char *key, const char *value) + PyErr_Clear (); + + args = PyTuple_New (2); ++#ifdef HAVE_PYSTRING_FROMSTRING + PyTuple_SetItem (args, 0, PyString_FromString (key)); + PyTuple_SetItem (args, 1, PyString_FromString (value)); ++#else ++ PyTuple_SetItem (args, 0, PyUnicode_FromString (key)); ++ PyTuple_SetItem (args, 1, PyUnicode_FromString (value)); ++#endif + r = PyObject_CallObject (fn, args); + Py_DECREF (fn); + Py_DECREF (args); +-- +2.7.4 + diff --git a/0011-tests-python-Use-bytearray-in-the-test.patch b/0011-tests-python-Use-bytearray-in-the-test.patch new file mode 100644 index 0000000..769e19e --- /dev/null +++ b/0011-tests-python-Use-bytearray-in-the-test.patch @@ -0,0 +1,42 @@ +From 8b7a591c981df7db19334481cb43f95e9f5c420d Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 3 Oct 2016 14:14:25 +0100 +Subject: [PATCH 11/11] tests: python: Use bytearray in the test. + +Fixes the test on Python 3. Improves efficiency and memory usage of +the test on Python 2. + +This makes the equivalent change to +commit 558dc7d84b46a1924e06808caa8b113238961fd3. +--- + tests/test.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/test.py b/tests/test.py +index ffe0872..5d68b32 100644 +--- a/tests/test.py ++++ b/tests/test.py +@@ -1,4 +1,4 @@ +-disk = "\0" * (1024*1024); ++disk = bytearray (1024*1024); + + def config_complete(): + pass +@@ -24,12 +24,12 @@ def can_trim(h): + + def pread(h, count, offset): + global disk +- return bytearray (disk[offset:offset+count]) ++ return disk[offset:offset+count] + + def pwrite(h, buf, offset): + global disk + end = offset + len (buf) +- disk = disk[:offset] + buf + disk[end:] ++ disk[offset:end] = buf + + def flush(h): + pass +-- +2.7.4 + diff --git a/nbdkit.spec b/nbdkit.spec index e0620e7..ee74a5d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -14,6 +14,23 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +# All upstream patches since 1.1.12, up to the point that +# Python 3 support was added. +Patch1: 0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch +Patch2: 0002-Mention-Ruby-in-the-README.patch +Patch3: 0003-Implement-dump-plugin-option.patch +Patch4: 0004-Update-copyright-date-on-a-few-files.patch +Patch5: 0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch +Patch6: 0006-Add-support-for-testing-under-valgrind.patch +Patch7: 0007-tests-Fix-memory-leak-in-OCaml-test-harness-found-by.patch +Patch8: 0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch +Patch9: 0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch +Patch10: 0010-Fix-build-for-Python-3.patch +Patch11: 0011-tests-python-Use-bytearray-in-the-test.patch + +# Because the patches touch Makefile.am etc. +BuildRequires: autoconf, automake, libtool + BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -24,7 +41,8 @@ BuildRequires: zlib-devel BuildRequires: libcurl-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -BuildRequires: python-devel +BuildRequires: python2-devel +BuildRequires: python3-devel %ifarch %{ocaml_native_compiler} # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 @@ -170,15 +188,46 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Perl plugins for %{name}. -%package plugin-python -Summary: Python plugin for %{name} +%package plugin-python-common +Summary: Python 2 and 3 plugin common files for %{name} License: BSD Requires: %{name}%{?_isa} = %{version}-%{release} -%description plugin-python -This package lets you write Python plugins for %{name}. +%description plugin-python-common +This package contains common files shared between Python 2 +and Python 3 %{name} plugins. + +You should not install this package directly. Instead install +either %{name}-plugin-python2 or %{name}-plugin-python3. + + +%package plugin-python2 +Summary: Python 2 plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-plugin-python-common = %{version}-%{release} + +Provides: %{name}-plugin-python = %{version}-%{release} +Obsoletes: %{name}-plugin-python <= %{version}-%{release} + + +%description plugin-python2 +This package lets you write Python 2 plugins for %{name}. + + +%package plugin-python3 +Summary: Python 3 plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-plugin-python-common = %{version}-%{release} + + +%description plugin-python3 +This package lets you write Python 3 plugins for %{name}. %package plugin-ruby @@ -231,17 +280,52 @@ plugins for %{name}. %setup -q %autopatch -p1 +# Because the patches touch Makefile.am etc. +autoreconf -i + %build # Force immediate binding for hardened build for plugins. # https://bugzilla.redhat.com/show_bug.cgi?id=977446#c13 export LDFLAGS="$LDFLAGS -Wl,-z,now" + +# Build for Python 3 in a separate subdirectory. Upstream does not +# support srcdir!=builddir so copy the whole source. +copy="$(mktemp -d)" +cp -a . "$copy" +mv "$copy" python3 + %configure --disable-static make %{?_smp_mflags} +pushd python3 +PYTHON=/usr/bin/python3 \ +%configure --disable-static --disable-perl --disable-ocaml --disable-ruby +make %{?_smp_mflags} +popd + %install +# Install for Python 2 and Python 3 separately. +# We do the Python 3 install first since that build is +# incomplete. +pushd python3 %make_install +popd + +pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/ +mv nbdkit-python-plugin.so nbdkit-python3-plugin.so +popd + +%make_install + +pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/ +mv nbdkit-python-plugin.so nbdkit-python2-plugin.so +# For backwards compatibility, "the" python plugin is Python 2. +# Probably we will change this in future if Fedora switches +# exclusively to Python 3. +ln -s nbdkit-python2-plugin.so nbdkit-python-plugin.so +popd # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete @@ -261,10 +345,19 @@ export LIBGUESTFS_TRACE=1 %ifnarch %{arm} %{ix86} ppc %{power64} # Broken on F25 because of https://bugzilla.redhat.com/show_bug.cgi?id=1344016 %if 0%{?fedora} < 25 + make check || { cat tests/test-suite.log exit 1 } + +pushd python3 +make check || { + cat tests/test-suite.log + exit 1 + } +popd + %endif %endif @@ -339,12 +432,20 @@ make check || { %{_mandir}/man3/nbdkit-perl-plugin.3* -%files plugin-python +%files plugin-python-common %doc LICENSE README -%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so %{_mandir}/man3/nbdkit-python-plugin.3* +%files plugin-python2 +%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so + + +%files plugin-python3 +%{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so + + %files plugin-ruby %doc LICENSE README %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so @@ -375,6 +476,9 @@ make check || { %changelog +* Mon Oct 03 2016 Richard W.M. Jones - 1.1.12-2 +- Compile Python 2 and Python 3 versions of the plugin. + * Wed Jun 08 2016 Richard W.M. Jones - 1.1.12-1 - New upstream version 1.1.12 - Enable Ruby plugin. From 55008d7e3b4e4df90842426b79a045f9299d1166 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 5 Nov 2016 09:47:20 +0000 Subject: [PATCH 027/683] Rebuild for OCaml 4.04.0. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index ee74a5d..ad402c2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -476,6 +476,9 @@ popd %changelog +* Sat Nov 05 2016 Richard W.M. Jones - 1.1.12-3 +- Rebuild for OCaml 4.04.0. + * Mon Oct 03 2016 Richard W.M. Jones - 1.1.12-2 - Compile Python 2 and Python 3 versions of the plugin. From 0f5a14fa20d70679128bb2f3456979b91715497e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 14 Dec 2016 10:48:29 +0000 Subject: [PATCH 028/683] Fix python3 subpackage so it really uses python3 (RHBZ#1404631). --- nbdkit.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ad402c2..7f587a6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -299,9 +299,13 @@ mv "$copy" python3 make %{?_smp_mflags} pushd python3 -PYTHON=/usr/bin/python3 \ +export PYTHON=%{_bindir}/python3 %configure --disable-static --disable-perl --disable-ocaml --disable-ruby +# Verify that it picked the correct version of Python +# to avoid RHBZ#1404631 happening again silently. +grep '^PYTHON_VERSION = 3' Makefile make %{?_smp_mflags} +unset PYTHON popd @@ -476,6 +480,9 @@ popd %changelog +* Wed Dec 14 2016 Richard W.M. Jones - 1.1.12-4 +- Fix python3 subpackage so it really uses python3 (RHBZ#1404631). + * Sat Nov 05 2016 Richard W.M. Jones - 1.1.12-3 - Rebuild for OCaml 4.04.0. From 898a36f8d8d451a79be3a3d4a49c742b2dc324cf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 23 Dec 2016 17:09:29 +0000 Subject: [PATCH 029/683] Rebuild for Python 3.6 update. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7f587a6..4e5e208 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Fri Dec 23 2016 Richard W.M. Jones - 1.1.12-5 +- Rebuild for Python 3.6 update. + * Wed Dec 14 2016 Richard W.M. Jones - 1.1.12-4 - Fix python3 subpackage so it really uses python3 (RHBZ#1404631). From 404d03f10a890fb453f58b27646f00b3b24bc71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 12 Jan 2017 14:36:18 +0100 Subject: [PATCH 030/683] Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.4 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4e5e208..c13b4a5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Thu Jan 12 2017 Vít Ondruch - 1.1.12-6 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.4 + * Fri Dec 23 2016 Richard W.M. Jones - 1.1.12-5 - Rebuild for Python 3.6 update. From 9cb7b3ab1d22a5d6614514ffaa2355d439102bc1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 22:06:34 +0000 Subject: [PATCH 031/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c13b4a5..0986b16 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 6%{?dist} +Release: 7%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 1.1.12-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Thu Jan 12 2017 Vít Ondruch - 1.1.12-6 - Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.4 From 93261df2df6f208f5ab00b490e745e88db23956a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 15 May 2017 12:30:22 +0100 Subject: [PATCH 032/683] Rebuild for OCaml 4.04.1. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0986b16..de9f064 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 7%{?dist} +Release: 8%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Mon May 15 2017 Richard W.M. Jones - 1.1.12-8 +- Rebuild for OCaml 4.04.1. + * Fri Feb 10 2017 Fedora Release Engineering - 1.1.12-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 83439e29cddba77db0f4e9b5a1774f14578f7b71 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Sun, 4 Jun 2017 16:14:47 +0200 Subject: [PATCH 033/683] Perl 5.26 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index de9f064..9d5d153 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 8%{?dist} +Release: 9%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Sun Jun 04 2017 Jitka Plesnikova - 1.1.12-9 +- Perl 5.26 rebuild + * Mon May 15 2017 Richard W.M. Jones - 1.1.12-8 - Rebuild for OCaml 4.04.1. From 14382d9aa88eaa44d7d179c69ef5e6c41b89ef24 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 27 Jun 2017 14:47:15 +0100 Subject: [PATCH 034/683] Rebuild for OCaml 4.04.2. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9d5d153..4692033 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 9%{?dist} +Release: 10%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Tue Jun 27 2017 Richard W.M. Jones - 1.1.12-10 +- Rebuild for OCaml 4.04.2. + * Sun Jun 04 2017 Jitka Plesnikova - 1.1.12-9 - Perl 5.26 rebuild From d797e0f2a16d257640b4d1aefcc36e0bb8a11d47 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 22:42:58 +0000 Subject: [PATCH 035/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4692033..c9a20ac 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 10%{?dist} +Release: 11%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 1.1.12-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Tue Jun 27 2017 Richard W.M. Jones - 1.1.12-10 - Rebuild for OCaml 4.04.2. From eed7b318061b4c0460bc95089dc760d5bf483a97 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 3 Aug 2017 03:48:15 +0000 Subject: [PATCH 036/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c9a20ac..2606d73 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 11%{?dist} +Release: 12%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Thu Aug 03 2017 Fedora Release Engineering - 1.1.12-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 1.1.12-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From be399baa0528e109165d6070ed9dc5b7823e7254 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 19 Aug 2017 17:37:53 +0100 Subject: [PATCH 037/683] Rebuild for OCaml 4.05.0. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2606d73..9358b2e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.12 -Release: 12%{?dist} +Release: 13%{?dist} Summary: NBD server License: BSD @@ -480,6 +480,9 @@ popd %changelog +* Sat Aug 19 2017 Richard W.M. Jones - 1.1.12-13 +- Rebuild for OCaml 4.05.0. + * Thu Aug 03 2017 Fedora Release Engineering - 1.1.12-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 005ea757fb50bb9473aa003c47f4a204d5d235af Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 25 Aug 2017 15:41:07 +0100 Subject: [PATCH 038/683] New upstream version 1.1.13. Remove patches which are all upstream. Remove grubby hack, should not be needed with modern supermin. --- ...rification-to-nbdkit-plugin-man-page.patch | 29 - 0002-Mention-Ruby-in-the-README.patch | 26 - 0003-Implement-dump-plugin-option.patch | 324 ------- ...Update-copyright-date-on-a-few-files.patch | 73 -- ...mall-additions-and-cleanups-to-the-t.patch | 441 --------- ...d-support-for-testing-under-valgrind.patch | 896 ------------------ ...-leak-in-OCaml-test-harness-found-by.patch | 26 - ...anagement-of-nbdkit-python-plugin-ex.patch | 58 -- ...lk-about-Python-in-the-Python-plugin.patch | 43 - 0010-Fix-build-for-Python-3.patch | 117 --- ...sts-python-Use-bytearray-in-the-test.patch | 42 - nbdkit.spec | 35 +- sources | 2 +- 13 files changed, 8 insertions(+), 2104 deletions(-) delete mode 100644 0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch delete mode 100644 0002-Mention-Ruby-in-the-README.patch delete mode 100644 0003-Implement-dump-plugin-option.patch delete mode 100644 0004-Update-copyright-date-on-a-few-files.patch delete mode 100644 0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch delete mode 100644 0006-Add-support-for-testing-under-valgrind.patch delete mode 100644 0007-tests-Fix-memory-leak-in-OCaml-test-harness-found-by.patch delete mode 100644 0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch delete mode 100644 0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch delete mode 100644 0010-Fix-build-for-Python-3.patch delete mode 100644 0011-tests-python-Use-bytearray-in-the-test.patch diff --git a/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch b/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch deleted file mode 100644 index 5a989fc..0000000 --- a/0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch +++ /dev/null @@ -1,29 +0,0 @@ -From da13491740d2bf3086856aefe70481f9d1ca851e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jul 2016 12:22:03 +0100 -Subject: [PATCH 01/11] docs: Small clarification to nbdkit-plugin man page. - ---- - docs/nbdkit-plugin.pod | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/docs/nbdkit-plugin.pod b/docs/nbdkit-plugin.pod -index 4a44285..30e1f86 100644 ---- a/docs/nbdkit-plugin.pod -+++ b/docs/nbdkit-plugin.pod -@@ -348,9 +348,9 @@ C<.flush> callback has been defined. - int is_rotational (void *handle); - - This is called during the option negotiation phase to find out if the --backing disk is a rotational medium (like a disk) or not (like an --SSD). If true, this may cause the client to reorder requests to make --them more efficient for a slow rotating disk. -+backing disk is a rotational medium (like a traditional hard disk) or -+not (like an SSD). If true, this may cause the client to reorder -+requests to make them more efficient for a slow rotating disk. - - If there is an error, C<.is_rotational> should call C - with an error message and return C<-1>. --- -2.7.4 - diff --git a/0002-Mention-Ruby-in-the-README.patch b/0002-Mention-Ruby-in-the-README.patch deleted file mode 100644 index 3b12861..0000000 --- a/0002-Mention-Ruby-in-the-README.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f90e301de0481fda86d7acf91e21dfbc3a3a4916 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jul 2016 13:25:14 +0100 -Subject: [PATCH 02/11] Mention Ruby in the README. - -Fixes commit 242c63f88f619aac33a7d002136d58a2cdf3afe1. ---- - README | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/README b/README -index 246dda5..4ea812c 100644 ---- a/README -+++ b/README -@@ -13,7 +13,7 @@ The key features are: - * Well-documented, simple plugin API with a stable ABI guarantee. - Let's you export "unconventional" block devices easily. - --* You can write plugins in C, Perl, Python or OCaml. -+* You can write plugins in C, Perl, Python, OCaml or Ruby. - - For documentation, see the docs/ directory. - --- -2.7.4 - diff --git a/0003-Implement-dump-plugin-option.patch b/0003-Implement-dump-plugin-option.patch deleted file mode 100644 index d8112d3..0000000 --- a/0003-Implement-dump-plugin-option.patch +++ /dev/null @@ -1,324 +0,0 @@ -From 04ea431bd119dedd4f9ba063049b1f30102ac8a3 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jul 2016 15:18:06 +0100 -Subject: [PATCH 03/11] Implement --dump-plugin option. - -For example: - -$ nbdkit example1 --dump-plugin -path=/usr/lib64/nbdkit/plugins/nbdkit-example1-plugin.so -name=example1 -version=1.1.12 -api_version=1 -struct_size=176 -thread_model=serialize_all_requests -has_load=1 -has_open=1 -has_get_size=1 -has_pread=1 ---- - docs/nbdkit.pod | 7 +++++- - src/internal.h | 3 ++- - src/main.c | 53 ++++++++++++++++++++++++++++------------ - src/plugins.c | 61 ++++++++++++++++++++++++++++++++++++++++++++--- - tests/Makefile.am | 2 ++ - tests/test-dump-plugin.sh | 44 ++++++++++++++++++++++++++++++++++ - 6 files changed, 150 insertions(+), 20 deletions(-) - create mode 100755 tests/test-dump-plugin.sh - -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index 728aad3..12575fa 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -6,7 +6,8 @@ nbdkit - A toolkit for creating NBD servers - - =head1 SYNOPSIS - -- nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] -+ nbdkit [--dump-config] [--dump-plugin] -+ [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR] - [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r] - [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V] - PLUGIN [key=value [key=value [...]]] -@@ -74,6 +75,10 @@ Display brief command line usage information and exit. - - Dump out the compile-time configuration values and exit. - -+=item B<--dump-plugin> -+ -+Dump out information about the plugin and exit. -+ - =item B<-e> EXPORTNAME - - =item B<--export> EXPORTNAME -diff --git a/src/internal.h b/src/internal.h -index f58086a..bc4fa12 100644 ---- a/src/internal.h -+++ b/src/internal.h -@@ -88,7 +88,8 @@ extern void plugin_register (const char *_filename, void *_dl, struct nbdkit_plu - extern void plugin_cleanup (void); - extern const char *plugin_name (void); - extern void plugin_usage (void); --extern void plugin_version (void); -+extern const char *plugin_version (void); -+extern void plugin_dump_fields (void); - extern void plugin_config (const char *key, const char *value); - extern void plugin_config_complete (void); - extern void plugin_lock_connection (void); -diff --git a/src/main.c b/src/main.c -index 9529f19..9453cce 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -89,6 +89,7 @@ static const char *short_options = "e:fg:i:nop:P:rsu:U:vV"; - static const struct option long_options[] = { - { "help", 0, NULL, HELP_OPTION }, - { "dump-config",0, NULL, 0 }, -+ { "dump-plugin",0, NULL, 0 }, - { "export", 1, NULL, 'e' }, - { "export-name",1, NULL, 'e' }, - { "exportname", 1, NULL, 'e' }, -@@ -119,7 +120,8 @@ static const struct option long_options[] = { - static void - usage (void) - { -- printf ("nbdkit [--dump-config] [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" -+ printf ("nbdkit [--dump-config] [--dump-plugin]\n" -+ " [-e EXPORTNAME] [-f] [-g GROUP] [-i IPADDR]\n" - " [--newstyle] [--oldstyle] [-P PIDFILE] [-p PORT] [-r]\n" - " [--run CMD] [-s] [-U SOCKET] [-u USER] [-v] [-V]\n" - " PLUGIN [key=value [key=value [...]]]\n" -@@ -151,7 +153,7 @@ main (int argc, char *argv[]) - { - int c; - int option_index; -- int help = 0, version = 0; -+ int help = 0, version = 0, dump_plugin = 0; - - tls_init (); - -@@ -166,6 +168,9 @@ main (int argc, char *argv[]) - dump_config (); - exit (EXIT_SUCCESS); - } -+ else if (strcmp (long_options[option_index].name, "dump-plugin") == 0) { -+ dump_plugin = 1; -+ } - else if (strcmp (long_options[option_index].name, "run") == 0) { - run = optarg; - foreground = 1; -@@ -261,6 +266,14 @@ main (int argc, char *argv[]) - display_version (); - exit (EXIT_SUCCESS); - } -+ if (dump_plugin) { -+ /* Incorrect use of --dump-plugin. */ -+ fprintf (stderr, -+ "%s: use 'nbdkit plugin --dump-plugin' or\n" -+ "'nbdkit /path/to/plugin.so --dump-plugin'\n", -+ program_name); -+ exit (EXIT_FAILURE); -+ } - - /* Otherwise this is an error. */ - fprintf (stderr, -@@ -292,6 +305,29 @@ main (int argc, char *argv[]) - - open_plugin_so (filename); - -+ if (help) { -+ usage (); -+ printf ("\n%s:\n\n", filename); -+ plugin_usage (); -+ exit (EXIT_SUCCESS); -+ } -+ -+ if (version) { -+ const char *v; -+ -+ display_version (); -+ printf ("%s", plugin_name ()); -+ if ((v = plugin_version ()) != NULL) -+ printf (" %s", v); -+ printf ("\n"); -+ exit (EXIT_SUCCESS); -+ } -+ -+ if (dump_plugin) { -+ plugin_dump_fields (); -+ exit (EXIT_SUCCESS); -+ } -+ - /* Find key=value configuration parameters for this plugin. */ - ++optind; - while (optind < argc && (p = strchr (argv[optind], '=')) != NULL) { -@@ -304,19 +340,6 @@ main (int argc, char *argv[]) - ++optind; - } - -- if (help) { -- usage (); -- printf ("\n%s:\n\n", filename); -- plugin_usage (); -- exit (EXIT_SUCCESS); -- } -- -- if (version) { -- display_version (); -- plugin_version (); -- exit (EXIT_SUCCESS); -- } -- - plugin_config_complete (); - - /* If we supported export names, then we'd continue in the loop -diff --git a/src/plugins.c b/src/plugins.c -index 0834874..8f38761 100644 ---- a/src/plugins.c -+++ b/src/plugins.c -@@ -189,15 +189,70 @@ plugin_usage (void) - } - } - --void -+const char * - plugin_version (void) - { - assert (dl); - -- printf ("%s", plugin.name); -+ return plugin.version; -+} -+ -+/* This implements the --dump-plugin option. */ -+void -+plugin_dump_fields (void) -+{ -+ char *path; -+ -+ path = nbdkit_absolute_path (filename); -+ printf ("path=%s\n", path); -+ free (path); -+ -+ printf ("name=%s\n", plugin.name); - if (plugin.version) -- printf (" %s", plugin.version); -+ printf ("version=%s\n", plugin.version); -+ -+ printf ("api_version=%d\n", plugin._api_version); -+ printf ("struct_size=%" PRIu64 "\n", plugin._struct_size); -+ printf ("thread_model="); -+ switch (plugin._thread_model) { -+ case NBDKIT_THREAD_MODEL_SERIALIZE_CONNECTIONS: -+ printf ("serialize_connections"); -+ break; -+ case NBDKIT_THREAD_MODEL_SERIALIZE_ALL_REQUESTS: -+ printf ("serialize_all_requests"); -+ break; -+ case NBDKIT_THREAD_MODEL_SERIALIZE_REQUESTS: -+ printf ("serialize_requests"); -+ break; -+ case NBDKIT_THREAD_MODEL_PARALLEL: -+ printf ("parallel"); -+ break; -+ default: -+ printf ("%d # unknown thread model!", plugin._thread_model); -+ break; -+ } - printf ("\n"); -+ -+#define HAS(field) if (plugin.field) printf ("has_%s=1\n", #field) -+ HAS (longname); -+ HAS (description); -+ HAS (load); -+ HAS (unload); -+ HAS (config); -+ HAS (config_complete); -+ HAS (config_help); -+ HAS (open); -+ HAS (close); -+ HAS (get_size); -+ HAS (can_write); -+ HAS (can_flush); -+ HAS (is_rotational); -+ HAS (can_trim); -+ HAS (pread); -+ HAS (pwrite); -+ HAS (flush); -+ HAS (trim); -+#undef HAS - } - - void -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 04bc0bc..2c936bf 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -37,6 +37,7 @@ EXTRA_DIST = \ - README.tests \ - test-captive.sh \ - test-dump-config.sh \ -+ test-dump-plugin.sh \ - test-foreground.sh \ - test-help.sh \ - test-help-plugin.sh \ -@@ -55,6 +56,7 @@ TESTS = \ - test-help.sh \ - test-help-plugin.sh \ - test-dump-config.sh \ -+ test-dump-plugin.sh \ - test-start.sh \ - test-foreground.sh \ - test-single.sh \ -diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh -new file mode 100755 -index 0000000..5cde25b ---- /dev/null -+++ b/tests/test-dump-plugin.sh -@@ -0,0 +1,44 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2014 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+set -e -+ -+output="$( -+ ../src/nbdkit \ -+ ../plugins/example1/.libs/nbdkit-example1-plugin.so --dump-plugin -+ )" -+if [[ ! ( "$output" =~ ^path= ) ]]; then -+ echo "$0: unexpected output from nbdkit --dump-plugin" -+ echo "$output" -+ exit 1 -+fi --- -2.7.4 - diff --git a/0004-Update-copyright-date-on-a-few-files.patch b/0004-Update-copyright-date-on-a-few-files.patch deleted file mode 100644 index a2c0f77..0000000 --- a/0004-Update-copyright-date-on-a-few-files.patch +++ /dev/null @@ -1,73 +0,0 @@ -From c149420eac39b8f3bf7d870d1f030c68870f7c51 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jul 2016 20:06:57 +0100 -Subject: [PATCH 04/11] Update copyright date on a few files. - ---- - LICENSE | 2 +- - Makefile.am | 2 +- - docs/nbdkit.pod | 2 +- - include/nbdkit-plugin.h | 2 +- - tests/Makefile.am | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/LICENSE b/LICENSE -index 5e5cc77..5b4109f 100644 ---- a/LICENSE -+++ b/LICENSE -@@ -1,5 +1,5 @@ - nbdkit --Copyright (C) 2013 Red Hat Inc. -+Copyright (C) 2013-2016 Red Hat Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without -diff --git a/Makefile.am b/Makefile.am -index 6b48dff..aade60d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,5 +1,5 @@ - # nbdkit --# Copyright (C) 2013 Red Hat Inc. -+# Copyright (C) 2013-2016 Red Hat Inc. - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index 12575fa..2b11eed 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -404,7 +404,7 @@ Richard W.M. Jones - - =head1 COPYRIGHT - --Copyright (C) 2013 Red Hat Inc. -+Copyright (C) 2013-2016 Red Hat Inc. - - =head1 LICENSE - -diff --git a/include/nbdkit-plugin.h b/include/nbdkit-plugin.h -index 8352675..bc9794e 100644 ---- a/include/nbdkit-plugin.h -+++ b/include/nbdkit-plugin.h -@@ -1,5 +1,5 @@ - /* nbdkit -- * Copyright (C) 2013 Red Hat Inc. -+ * Copyright (C) 2013-2016 Red Hat Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 2c936bf..08fd02a 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1,5 +1,5 @@ - # nbdkit --# Copyright (C) 2013-2014 Red Hat Inc. -+# Copyright (C) 2013-2016 Red Hat Inc. - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without --- -2.7.4 - diff --git a/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch b/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch deleted file mode 100644 index 781e1b8..0000000 --- a/0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch +++ /dev/null @@ -1,441 +0,0 @@ -From 8477cf49de988a15b3fc58d91c54efef295543fd Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jul 2016 20:14:58 +0100 -Subject: [PATCH 05/11] tests: Multiple small additions and cleanups to the - test scripts. - -Use a common 'functions.sh' file for test functions. ---- - TODO | 2 ++ - tests/Makefile.am | 10 ++++-- - tests/functions.sh | 39 +++++++++++++++++++++ - tests/test-captive.sh | 7 ++-- - tests/test-dump-plugin.sh | 8 ++--- - tests/test-foreground.sh | 4 +-- - tests/test-help-plugin.sh | 3 +- - tests/test-ipv4.sh | 83 ++++++++++++++++++++++++++++++++++++++++++++ - tests/test-random-sock.sh | 5 ++- - tests/test-single.sh | 3 +- - tests/test-start.sh | 5 ++- - tests/test-version-plugin.sh | 42 ++++++++++++++++++++++ - tests/test-version.sh | 41 ++++++++++++++++++++++ - 13 files changed, 232 insertions(+), 20 deletions(-) - create mode 100644 tests/functions.sh - create mode 100755 tests/test-ipv4.sh - create mode 100755 tests/test-version-plugin.sh - create mode 100755 tests/test-version.sh - -diff --git a/TODO b/TODO -index 30bf72e..6c5bb5b 100644 ---- a/TODO -+++ b/TODO -@@ -1,3 +1,5 @@ -+* Listen on specific interfaces or protocols (eg. only IPv6). -+ - * Can we do language bindings using #!'s? - You would enter: - nbdkit foo [args] -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 08fd02a..6f6cfa2 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -41,6 +41,7 @@ EXTRA_DIST = \ - test-foreground.sh \ - test-help.sh \ - test-help-plugin.sh \ -+ test-ipv4.sh \ - test.pl \ - test.py \ - test_ocaml_plugin.ml \ -@@ -48,20 +49,25 @@ EXTRA_DIST = \ - test.rb \ - test-single.sh \ - test-start.sh \ -- test-random-sock.sh -+ test-random-sock.sh \ -+ test-version.sh \ -+ test-version-plugin.sh - - # Basic server command line and start-up tests. - - TESTS = \ - test-help.sh \ - test-help-plugin.sh \ -+ test-version.sh \ -+ test-version-plugin.sh \ - test-dump-config.sh \ - test-dump-plugin.sh \ - test-start.sh \ - test-foreground.sh \ - test-single.sh \ - test-captive.sh \ -- test-random-sock.sh -+ test-random-sock.sh \ -+ test-ipv4.sh - - # In-depth tests need libguestfs, since that is a convenient way to - # drive qemu. -diff --git a/tests/functions.sh b/tests/functions.sh -new file mode 100644 -index 0000000..4ebddbb ---- /dev/null -+++ b/tests/functions.sh -@@ -0,0 +1,39 @@ -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Some functions used by the tests. -+ -+# Return the path to a named nbdkit plugin. -+nbdkit_plugin () -+{ -+ echo "../plugins/$1/.libs/nbdkit-$1-plugin.so" -+} -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 5f18b5f..098024b 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -33,14 +33,15 @@ - - set -e - set -x -+source ./functions.sh - - # Test nbdkit --run (captive nbdkit) option. - - rm -f captive.sock captive.out - --../src/nbdkit -U captive.sock \ -- ../plugins/example1/.libs/nbdkit-example1-plugin.so \ -- --run 'sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket' > captive.out -+../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' -+ sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket -+ ' > captive.out - - # Check the output. - if [ "$(cat captive.out)" != "nbd=nbd:unix:$(pwd)/captive.sock -diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh -index 5cde25b..2517689 100755 ---- a/tests/test-dump-plugin.sh -+++ b/tests/test-dump-plugin.sh -@@ -32,12 +32,10 @@ - # SUCH DAMAGE. - - set -e -+source ./functions.sh - --output="$( -- ../src/nbdkit \ -- ../plugins/example1/.libs/nbdkit-example1-plugin.so --dump-plugin -- )" --if [[ ! ( "$output" =~ ^path= ) ]]; then -+output="$(../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" -+if [[ ! ( "$output" =~ name\=example1 ) ]]; then - echo "$0: unexpected output from nbdkit --dump-plugin" - echo "$output" - exit 1 -diff --git a/tests/test-foreground.sh b/tests/test-foreground.sh -index daa733e..6d23bf4 100755 ---- a/tests/test-foreground.sh -+++ b/tests/test-foreground.sh -@@ -33,14 +33,14 @@ - - set -e - set -x -+source ./functions.sh - - # Test nbdkit -f option. - - rm -f foreground.pid foreground.sock - - ../src/nbdkit \ -- -f -P foreground.pid -U foreground.sock \ -- ../plugins/example1/.libs/nbdkit-example1-plugin.so & -+ -f -P foreground.pid -U foreground.sock `nbdkit_plugin example1` & - bg_pid=$! - - # We may have to wait a short time for the pid file to appear. -diff --git a/tests/test-help-plugin.sh b/tests/test-help-plugin.sh -index dba1028..92bb277 100755 ---- a/tests/test-help-plugin.sh -+++ b/tests/test-help-plugin.sh -@@ -32,8 +32,9 @@ - # SUCH DAMAGE. - - set -e -+source ./functions.sh - --output="$(../src/nbdkit ../plugins/file/.libs/nbdkit-file-plugin.so --help)" -+output="$(../src/nbdkit `nbdkit_plugin file` --help)" - if [[ ! ( "$output" =~ "nbdkit file plugin" ) ]]; then - echo "$0: unexpected output from nbdkit file --help" - echo "$output" -diff --git a/tests/test-ipv4.sh b/tests/test-ipv4.sh -new file mode 100755 -index 0000000..8eda61c ---- /dev/null -+++ b/tests/test-ipv4.sh -@@ -0,0 +1,83 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Every other test uses a Unix domain socket. This tests nbdkit over -+# IPv4 localhost connections. -+# -+# XXX We should be able to test "just IPv6". However there is -+# currently no option to listen only on particular interfaces. -+ -+set -e -+source ./functions.sh -+ -+# Don't fail if certain commands aren't available. -+if ! ss --version; then -+ echo "$0: 'ss' command not available" -+ exit 77 -+fi -+if ! socat -h; then -+ echo "$0: 'socat' command not available" -+ exit 77 -+fi -+ -+# Find an unused port to listen on. -+for port in `seq 49152 65535`; do -+ if ! ss -ltn | grep -sqE ":$port\b"; then break; fi -+done -+echo picked unused port $port -+ -+../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` -+ -+# We may have to wait a short time for the pid file to appear. -+for i in `seq 1 10`; do -+ if test -f ipv4.pid; then -+ break -+ fi -+ sleep 1 -+done -+if ! test -f ipv4.pid; then -+ echo "$0: PID file was not created" -+ exit 1 -+fi -+ -+pid="$(cat ipv4.pid)" -+ -+# Check the process exists. -+kill -s 0 $pid -+ -+# Check we can connect to the socket. -+socat TCP:localhost:$port STDIO -Date: Sat, 9 Jul 2016 21:15:46 +0100 -Subject: [PATCH 06/11] Add support for testing under valgrind. - -Use 'make check-valgrind' to run all the tests under valgrind. ---- - Makefile.am | 3 +++ - README | 11 ++++++++++ - configure.ac | 12 +++++++++++ - tests/Makefile.am | 50 ++++++++++++++++++++++++++++++-------------- - tests/test-captive.sh | 2 +- - tests/test-connect.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-dump-config.sh | 2 +- - tests/test-dump-plugin.sh | 2 +- - tests/test-file.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-foreground.sh | 2 +- - tests/test-gzip.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-help-plugin.sh | 2 +- - tests/test-help.sh | 2 +- - tests/test-ipv4.sh | 2 +- - tests/test-newstyle.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-ocaml.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-oldstyle.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-perl.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-python.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-random-sock.sh | 2 +- - tests/test-ruby.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-single.sh | 2 +- - tests/test-start.sh | 2 +- - tests/test-streaming.sh | 34 ++++++++++++++++++++++++++++++ - tests/test-version-plugin.sh | 2 +- - tests/test-version.sh | 2 +- - tests/test-xz.sh | 34 ++++++++++++++++++++++++++++++ - valgrind-suppressions | 32 ++++++++++++++++++++++++++++ - 28 files changed, 478 insertions(+), 28 deletions(-) - create mode 100755 tests/test-connect.sh - create mode 100755 tests/test-file.sh - create mode 100755 tests/test-gzip.sh - create mode 100755 tests/test-newstyle.sh - create mode 100755 tests/test-ocaml.sh - create mode 100755 tests/test-oldstyle.sh - create mode 100755 tests/test-perl.sh - create mode 100755 tests/test-python.sh - create mode 100755 tests/test-ruby.sh - create mode 100755 tests/test-streaming.sh - create mode 100755 tests/test-xz.sh - create mode 100644 valgrind-suppressions - -diff --git a/Makefile.am b/Makefile.am -index aade60d..3c5c650 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -40,3 +40,6 @@ EXTRA_DIST = \ - SUBDIRS = docs plugins include src tests - - CLEANFILES = *~ -+ -+check-valgrind: -+ $(MAKE) -C tests check-valgrind -diff --git a/README b/README -index 4ea812c..135c8d5 100644 ---- a/README -+++ b/README -@@ -78,6 +78,16 @@ For the OCaml plugin: - - OCaml >= 4.02.2 which has support for shared libraries, see: - http://caml.inria.fr/mantis/view.php?id=6693 - -+To test for memory leaks ('make check-valgrind'): -+ -+ - valgrind -+ -+For non-essential enhancements to the test suite: -+ -+ - socat -+ -+ - ss (from iproute package) -+ - After installing any dependencies: - - To build from tarball: To build from git: -@@ -86,6 +96,7 @@ After installing any dependencies: - ./configure ./configure - make make - make check make check -+ make check-valgrind make check-valgrind - - Optionally run this as root to install everything: - -diff --git a/configure.ac b/configure.ac -index 3c75397..c064420 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -109,6 +109,18 @@ or the configure test may be wrong. - The code will still compile, but is likely to leak memory and other - resources when it runs.])]) - -+dnl Check for valgrind. -+AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) -+AS_IF([test "x$VALGRIND" != "xno"],[ -+ # Substitute the whole valgrind command. -+ VG='$(VALGRIND) --vgdb=no --leak-check=full --error-exitcode=119 --suppressions=$(abs_top_srcdir)/valgrind-suppressions --trace-children=no --child-silent-after-fork=yes --run-libc-freeres=no' -+],[ -+ # Valgrind is not installed, substitute something which will break. -+ VG=VALGRIND_IS_NOT_INSTALLED -+]) -+AC_SUBST([VG]) -+AM_SUBST_NOTMAKE([VG]) -+ - dnl Check for Perl POD. - AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) - AM_CONDITIONAL([HAVE_POD2MAN], [test "x$POD2MAN" != "xno"]) -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 6f6cfa2..afb9975 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -36,22 +36,38 @@ MAINTAINERCLEANFILES = - EXTRA_DIST = \ - README.tests \ - test-captive.sh \ -+ test-connect.sh \ - test-dump-config.sh \ - test-dump-plugin.sh \ -+ test-file.sh \ - test-foreground.sh \ -+ test-gzip.sh \ - test-help.sh \ - test-help-plugin.sh \ - test-ipv4.sh \ -- test.pl \ -- test.py \ -+ test-newstyle.sh \ - test_ocaml_plugin.ml \ - test-ocaml.c \ -+ test-ocaml.sh \ -+ test-oldstyle.sh \ -+ test.pl \ -+ test-perl.sh \ -+ test.py \ -+ test-python.sh \ - test.rb \ - test-single.sh \ - test-start.sh \ - test-random-sock.sh \ -+ test-ruby.sh \ -+ test-streaming.sh \ - test-version.sh \ -- test-version-plugin.sh -+ test-version-plugin.sh \ -+ test-xz.sh -+ -+# Use 'make check' to run the ordinary tests. To run all the tests -+# under valgrind, use the following rule: -+check-valgrind: -+ $(MAKE) VG="@VG@" check - - # Basic server command line and start-up tests. - -@@ -87,19 +103,21 @@ check_LTLIBRARIES = libtest.la - libtest_la_SOURCES = test.c test.h - libtest_la_CFLAGS = $(WARNINGS_CFLAGS) - --# Basic connection test. --check_PROGRAMS = test-connect --TESTS += test-connect -+check_PROGRAMS = - check_DATA = - check_SCRIPTS = - -+# Basic connection test. -+check_PROGRAMS += test-connect -+TESTS += test-connect.sh -+ - test_connect_SOURCES = test-connect.c test.h - test_connect_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_connect_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - # file plugin test. - check_PROGRAMS += test-file --TESTS += test-file -+TESTS += test-file.sh - check_DATA += file-data - MAINTAINERCLEANFILES += file-data - -@@ -114,7 +132,7 @@ file-data: - - # newstyle protocol test. - check_PROGRAMS += test-newstyle --TESTS += test-newstyle -+TESTS += test-newstyle.sh - - test_newstyle_SOURCES = test-newstyle.c test.h - test_newstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -@@ -122,7 +140,7 @@ test_newstyle_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - # oldstyle protocol test. - check_PROGRAMS += test-oldstyle --TESTS += test-oldstyle -+TESTS += test-oldstyle.sh - - test_oldstyle_SOURCES = test-oldstyle.c test.h - test_oldstyle_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -@@ -133,7 +151,7 @@ if HAVE_ZLIB - if HAVE_GUESTFISH - - check_PROGRAMS += test-gzip --TESTS += test-gzip -+TESTS += test-gzip.sh - check_DATA += disk disk.gz - MAINTAINERCLEANFILES += disk disk.gz - -@@ -158,7 +176,7 @@ if HAVE_LIBLZMA - if HAVE_GUESTFISH - - check_PROGRAMS += test-xz --TESTS += test-xz -+TESTS += test-xz.sh - check_DATA += disk.xz - MAINTAINERCLEANFILES += disk.xz - -@@ -177,7 +195,7 @@ endif - if HAVE_PERL - - check_PROGRAMS += test-perl --TESTS += test-perl -+TESTS += test-perl.sh - - test_perl_SOURCES = test-lang-plugins.c test.h - test_perl_CFLAGS = \ -@@ -191,7 +209,7 @@ endif - if HAVE_PYTHON - - check_PROGRAMS += test-python --TESTS += test-python -+TESTS += test-python.sh - - test_python_SOURCES = test-lang-plugins.c test.h - test_python_CFLAGS = \ -@@ -205,7 +223,7 @@ endif - if HAVE_OCAML - - check_PROGRAMS += test-ocaml --TESTS += test-ocaml -+TESTS += test-ocaml.sh - - # This is somewhat different from the other tests because we have - # to build an actual plugin here. -@@ -227,7 +245,7 @@ endif - if HAVE_RUBY - - check_PROGRAMS += test-ruby --TESTS += test-ruby -+TESTS += test-ruby.sh - - test_ruby_SOURCES = test-lang-plugins.c test.h - test_ruby_CFLAGS = \ -@@ -240,7 +258,7 @@ endif - # streaming plugin test. - check_PROGRAMS += test-streaming - # Doesn't work: --#TESTS += test-streaming -+#TESTS += test-streaming.sh - - test_streaming_SOURCES = test-streaming.c test.h - test_streaming_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 098024b..1ac0844 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -39,7 +39,7 @@ source ./functions.sh - - rm -f captive.sock captive.out - --../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' -+$VG ../src/nbdkit -U captive.sock `nbdkit_plugin example1` --run ' - sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket - ' > captive.out - -diff --git a/tests/test-connect.sh b/tests/test-connect.sh -new file mode 100755 -index 0000000..37b1e32 ---- /dev/null -+++ b/tests/test-connect.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-connect -diff --git a/tests/test-dump-config.sh b/tests/test-dump-config.sh -index 6c01adb..7910e11 100755 ---- a/tests/test-dump-config.sh -+++ b/tests/test-dump-config.sh -@@ -33,7 +33,7 @@ - - set -e - --output="$(../src/nbdkit --dump-config)" -+output="$($VG ../src/nbdkit --dump-config)" - if [[ ! ( "$output" =~ ^bindir= ) ]]; then - echo "$0: unexpected output from nbdkit --dump-config" - echo "$output" -diff --git a/tests/test-dump-plugin.sh b/tests/test-dump-plugin.sh -index 2517689..8d9b8fd 100755 ---- a/tests/test-dump-plugin.sh -+++ b/tests/test-dump-plugin.sh -@@ -34,7 +34,7 @@ - set -e - source ./functions.sh - --output="$(../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" -+output="$($VG ../src/nbdkit `nbdkit_plugin example1` --dump-plugin)" - if [[ ! ( "$output" =~ name\=example1 ) ]]; then - echo "$0: unexpected output from nbdkit --dump-plugin" - echo "$output" -diff --git a/tests/test-file.sh b/tests/test-file.sh -new file mode 100755 -index 0000000..f5012a8 ---- /dev/null -+++ b/tests/test-file.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-file -diff --git a/tests/test-foreground.sh b/tests/test-foreground.sh -index 6d23bf4..e76b52d 100755 ---- a/tests/test-foreground.sh -+++ b/tests/test-foreground.sh -@@ -39,7 +39,7 @@ source ./functions.sh - - rm -f foreground.pid foreground.sock - --../src/nbdkit \ -+$VG ../src/nbdkit \ - -f -P foreground.pid -U foreground.sock `nbdkit_plugin example1` & - bg_pid=$! - -diff --git a/tests/test-gzip.sh b/tests/test-gzip.sh -new file mode 100755 -index 0000000..085798e ---- /dev/null -+++ b/tests/test-gzip.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-gzip -diff --git a/tests/test-help-plugin.sh b/tests/test-help-plugin.sh -index 92bb277..94359c2 100755 ---- a/tests/test-help-plugin.sh -+++ b/tests/test-help-plugin.sh -@@ -34,7 +34,7 @@ - set -e - source ./functions.sh - --output="$(../src/nbdkit `nbdkit_plugin file` --help)" -+output="$($VG ../src/nbdkit `nbdkit_plugin file` --help)" - if [[ ! ( "$output" =~ "nbdkit file plugin" ) ]]; then - echo "$0: unexpected output from nbdkit file --help" - echo "$output" -diff --git a/tests/test-help.sh b/tests/test-help.sh -index 299480b..c98e7d7 100755 ---- a/tests/test-help.sh -+++ b/tests/test-help.sh -@@ -33,7 +33,7 @@ - - set -e - --output="$(../src/nbdkit --help)" -+output="$($VG ../src/nbdkit --help)" - if [[ ! ( "$output" =~ dump-config ) ]]; then - echo "$0: unexpected output from nbdkit --help" - echo "$output" -diff --git a/tests/test-ipv4.sh b/tests/test-ipv4.sh -index 8eda61c..024d2ee 100755 ---- a/tests/test-ipv4.sh -+++ b/tests/test-ipv4.sh -@@ -56,7 +56,7 @@ for port in `seq 49152 65535`; do - done - echo picked unused port $port - --../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` -+$VG ../src/nbdkit -P ipv4.pid -p $port `nbdkit_plugin example1` - - # We may have to wait a short time for the pid file to appear. - for i in `seq 1 10`; do -diff --git a/tests/test-newstyle.sh b/tests/test-newstyle.sh -new file mode 100755 -index 0000000..62176aa ---- /dev/null -+++ b/tests/test-newstyle.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-newstyle -diff --git a/tests/test-ocaml.sh b/tests/test-ocaml.sh -new file mode 100755 -index 0000000..e90c9c5 ---- /dev/null -+++ b/tests/test-ocaml.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-ocaml -diff --git a/tests/test-oldstyle.sh b/tests/test-oldstyle.sh -new file mode 100755 -index 0000000..db2705a ---- /dev/null -+++ b/tests/test-oldstyle.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-oldstyle -diff --git a/tests/test-perl.sh b/tests/test-perl.sh -new file mode 100755 -index 0000000..44af3ee ---- /dev/null -+++ b/tests/test-perl.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-perl -diff --git a/tests/test-python.sh b/tests/test-python.sh -new file mode 100755 -index 0000000..4738cc1 ---- /dev/null -+++ b/tests/test-python.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-python -diff --git a/tests/test-random-sock.sh b/tests/test-random-sock.sh -index a4c58d3..7b0293b 100755 ---- a/tests/test-random-sock.sh -+++ b/tests/test-random-sock.sh -@@ -37,4 +37,4 @@ source ./functions.sh - - # Test nbdkit -U - + captive nbdkit. - --../src/nbdkit -U - `nbdkit_plugin example1` --run 'sleep 5' -+$VG ../src/nbdkit -U - `nbdkit_plugin example1` --run 'sleep 5' -diff --git a/tests/test-ruby.sh b/tests/test-ruby.sh -new file mode 100755 -index 0000000..50a6e7c ---- /dev/null -+++ b/tests/test-ruby.sh -@@ -0,0 +1,34 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2016 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+exec $VG ./test-ruby -diff --git a/tests/test-single.sh b/tests/test-single.sh -index a06ea5d..ec83e2f 100755 ---- a/tests/test-single.sh -+++ b/tests/test-single.sh -@@ -38,4 +38,4 @@ source ./functions.sh - # Test nbdkit -s option. - # XXX Not sure what is a really good test of this. - --../src/nbdkit -s `nbdkit_plugin example1` -Date: Sun, 10 Jul 2016 17:10:30 +0100 -Subject: [PATCH 07/11] tests: Fix memory leak in OCaml test harness (found by - valgrind). - ---- - tests/test-ocaml.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/test-ocaml.c b/tests/test-ocaml.c -index 08b2e98..e77ff00 100644 ---- a/tests/test-ocaml.c -+++ b/tests/test-ocaml.c -@@ -106,6 +106,8 @@ main (int argc, char *argv[]) - exit (EXIT_FAILURE); - } - -+ free (data); -+ - data = guestfs_pread_device (g, "/dev/sda", 8 * 512, 0, &size); - if (!data) - exit (EXIT_FAILURE); --- -2.7.4 - diff --git a/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch b/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch deleted file mode 100644 index 7b06f95..0000000 --- a/0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 558dc7d84b46a1924e06808caa8b113238961fd3 Mon Sep 17 00:00:00 2001 -From: Carl-Daniel Hailfinger -Date: Mon, 26 Sep 2016 17:07:41 +0200 -Subject: [PATCH 08/11] Improve memory management of nbdkit python plugin - example - -Hi, - -the nbdkit python plugin example has suboptimal memory management: -- it creates the disk image as a string on init -- it casts the string to bytearray on every read -- it copies the string before and the string after the written region, -then reassembles those pieces together with the written region to a new -disk image string - -This is not a problem as long as the image is small, but in my tests -with a 5 GB sized image nbdkit already used 15 GB RAM directly after -startup, and even more (20-25 GB) on the first write. - -This changes the code to use bytearray everywhere and use the proper -methods to change bytearray objects directly. With the patch applied, -nbdkit with a 5 GB image will still only use 5 GB RAM even during heavy -read/write activity. - -Regards, -Carl-Daniel ---- - plugins/python/example.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugins/python/example.py b/plugins/python/example.py -index aa099eb..184896e 100644 ---- a/plugins/python/example.py -+++ b/plugins/python/example.py -@@ -29,7 +29,7 @@ - # reconnect to the same server you should see the same disk. You - # could also put this into the handle, so there would be a fresh disk - # per handle. --disk = "\0" * (1024*1024); -+disk = bytearray(1024 * 1024) - - # This just prints the extra command line parameters, but real plugins - # should parse them and reject any unknown parameters. -@@ -50,9 +50,9 @@ def get_size(h): - - def pread(h, count, offset): - global disk -- return bytearray (disk[offset:offset+count]) -+ return disk[offset:offset+count] - - def pwrite(h, buf, offset): - global disk - end = offset + len (buf) -- disk = disk[:offset] + buf + disk[end:] -+ disk[offset:end] = buf --- -2.7.4 - diff --git a/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch b/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch deleted file mode 100644 index e8e9701..0000000 --- a/0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 90e5af07e54ce77f8b9d7b20af52306ea2b12c6e Mon Sep 17 00:00:00 2001 -From: Carl-Daniel Hailfinger -Date: Mon, 26 Sep 2016 17:14:37 +0200 -Subject: [PATCH 09/11] nbdkit: Talk about Python in the Python plugin - ---- - plugins/python/python.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugins/python/python.c b/plugins/python/python.c -index a59d11e..fcbb9f2 100644 ---- a/plugins/python/python.c -+++ b/plugins/python/python.c -@@ -437,7 +437,7 @@ py_can_write (void *handle) - Py_DECREF (r); - return ret; - } -- /* No Perl can_write callback, but there's a Perl pwrite callback -+ /* No Python can_write callback, but there's a Python pwrite callback - * defined, so return 1. (In C modules, nbdkit would do this). - */ - else if (callback_defined ("pwrite", NULL)) -@@ -470,7 +470,7 @@ py_can_flush (void *handle) - Py_DECREF (r); - return ret; - } -- /* No Perl can_flush callback, but there's a Perl flush callback -+ /* No Python can_flush callback, but there's a Python flush callback - * defined, so return 1. (In C modules, nbdkit would do this). - */ - else if (callback_defined ("flush", NULL)) -@@ -531,7 +531,7 @@ py_can_trim (void *handle) - Py_DECREF (r); - return ret; - } -- /* No Perl can_trim callback, but there's a Perl trim callback -+ /* No Python can_trim callback, but there's a Python trim callback - * defined, so return 1. (In C modules, nbdkit would do this). - */ - else if (callback_defined ("trim", NULL)) --- -2.7.4 - diff --git a/0010-Fix-build-for-Python-3.patch b/0010-Fix-build-for-Python-3.patch deleted file mode 100644 index 73b55e0..0000000 --- a/0010-Fix-build-for-Python-3.patch +++ /dev/null @@ -1,117 +0,0 @@ -From fe8e47a7295900951e4510bdf582dc6b836efad5 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 3 Oct 2016 13:55:26 +0100 -Subject: [PATCH 10/11] Fix build for Python 3. - -Python 3 does not have PyString_FromString. Use a near-equivalent -instead. - -To build for Python 3 you must point the PYTHON environment variable -to the Python 3 interpreter when configuring. For example: - -PYTHON=/usr/bin/python3 ./configure ---- - README | 10 ++++++++++ - configure.ac | 13 ++++++++++++- - plugins/python/nbdkit-python-plugin.pod | 9 +++++++++ - plugins/python/python.c | 9 +++++++++ - 4 files changed, 40 insertions(+), 1 deletion(-) - -diff --git a/README b/README -index 135c8d5..2723d5e 100644 ---- a/README -+++ b/README -@@ -102,6 +102,16 @@ Optionally run this as root to install everything: - - make install - -+Python -+------ -+ -+By default nbdkit uses the Python version of the Python interpreter -+called "python" on the current $PATH. To use another version of -+Python you may need to set the PYTHON environment variable when -+configuring. For example: -+ -+ PYTHON=/usr/bin/python3 ./configure -+ - Tests - ----- - -diff --git a/configure.ac b/configure.ac -index c064420..a475e8e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -201,7 +201,18 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ - ]) - ]) - -- dnl XXX Could check these actually work. -+ dnl Check for various functions needed by the bindings. -+ old_LIBS="$LIBS" -+ -+ PYTHON_BLDLIBRARY=`$PYTHON -c "import distutils.sysconfig; \ -+ print (distutils.sysconfig.get_config_var('BLDLIBRARY'))"` -+ AC_CHECK_LIB([c],[PyString_FromString], -+ [AC_DEFINE([HAVE_PYSTRING_FROMSTRING],1, -+ [Found PyString_FromString in libpython.])], -+ [],[$PYTHON_BLDLIBRARY]) -+ -+ LIBS="$old_LIBS" -+ - ]) - AM_CONDITIONAL([HAVE_PYTHON],[test "x$enable_python" != "xno" && test "x$PYTHON" != "xno"]) - AC_SUBST([PYTHON_CFLAGS]) -diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod -index 70d3e17..9b0f0ef 100644 ---- a/plugins/python/nbdkit-python-plugin.pod -+++ b/plugins/python/nbdkit-python-plugin.pod -@@ -16,6 +16,15 @@ L, allowing you to write nbdkit plugins in Python. - Broadly speaking, Python nbdkit plugins work like C ones, so you should - read L first. - -+=head2 PYTHON 2 AND PYTHON 3 -+ -+The Python plugin has to be compiled for either Python 2 or Python 3 -+when building nbdkit. You can set the C environment variable -+to the desired interpreter, otherwise nbdkit will use the interpreter -+called C on the current C<$PATH>. For example: -+ -+ PYTHON=/usr/bin/python3 ./configure -+ - =head2 USING A PYTHON NBDKIT PLUGIN - - Assuming you have a Python script which is an nbdkit plugin, you run it -diff --git a/plugins/python/python.c b/plugins/python/python.c -index fcbb9f2..0504715 100644 ---- a/plugins/python/python.c -+++ b/plugins/python/python.c -@@ -133,7 +133,11 @@ py_config (const char *key, const char *value) - /* Note that because closeit flag == 1, fp is now closed. */ - - /* The script should define a module called __main__. */ -+#ifdef HAVE_PYSTRING_FROMSTRING - modname = PyString_FromString ("__main__"); -+#else -+ modname = PyUnicode_FromString ("__main__"); -+#endif - module = PyImport_Import (modname); - Py_DECREF (modname); - if (!module) { -@@ -154,8 +158,13 @@ py_config (const char *key, const char *value) - PyErr_Clear (); - - args = PyTuple_New (2); -+#ifdef HAVE_PYSTRING_FROMSTRING - PyTuple_SetItem (args, 0, PyString_FromString (key)); - PyTuple_SetItem (args, 1, PyString_FromString (value)); -+#else -+ PyTuple_SetItem (args, 0, PyUnicode_FromString (key)); -+ PyTuple_SetItem (args, 1, PyUnicode_FromString (value)); -+#endif - r = PyObject_CallObject (fn, args); - Py_DECREF (fn); - Py_DECREF (args); --- -2.7.4 - diff --git a/0011-tests-python-Use-bytearray-in-the-test.patch b/0011-tests-python-Use-bytearray-in-the-test.patch deleted file mode 100644 index 769e19e..0000000 --- a/0011-tests-python-Use-bytearray-in-the-test.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 8b7a591c981df7db19334481cb43f95e9f5c420d Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 3 Oct 2016 14:14:25 +0100 -Subject: [PATCH 11/11] tests: python: Use bytearray in the test. - -Fixes the test on Python 3. Improves efficiency and memory usage of -the test on Python 2. - -This makes the equivalent change to -commit 558dc7d84b46a1924e06808caa8b113238961fd3. ---- - tests/test.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/test.py b/tests/test.py -index ffe0872..5d68b32 100644 ---- a/tests/test.py -+++ b/tests/test.py -@@ -1,4 +1,4 @@ --disk = "\0" * (1024*1024); -+disk = bytearray (1024*1024); - - def config_complete(): - pass -@@ -24,12 +24,12 @@ def can_trim(h): - - def pread(h, count, offset): - global disk -- return bytearray (disk[offset:offset+count]) -+ return disk[offset:offset+count] - - def pwrite(h, buf, offset): - global disk - end = offset + len (buf) -- disk = disk[:offset] + buf + disk[end:] -+ disk[offset:end] = buf - - def flush(h): - pass --- -2.7.4 - diff --git a/nbdkit.spec b/nbdkit.spec index 9358b2e..aa991c2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,8 +5,8 @@ %endif Name: nbdkit -Version: 1.1.12 -Release: 13%{?dist} +Version: 1.1.13 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -14,23 +14,6 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz -# All upstream patches since 1.1.12, up to the point that -# Python 3 support was added. -Patch1: 0001-docs-Small-clarification-to-nbdkit-plugin-man-page.patch -Patch2: 0002-Mention-Ruby-in-the-README.patch -Patch3: 0003-Implement-dump-plugin-option.patch -Patch4: 0004-Update-copyright-date-on-a-few-files.patch -Patch5: 0005-tests-Multiple-small-additions-and-cleanups-to-the-t.patch -Patch6: 0006-Add-support-for-testing-under-valgrind.patch -Patch7: 0007-tests-Fix-memory-leak-in-OCaml-test-harness-found-by.patch -Patch8: 0008-Improve-memory-management-of-nbdkit-python-plugin-ex.patch -Patch9: 0009-nbdkit-Talk-about-Python-in-the-Python-plugin.patch -Patch10: 0010-Fix-build-for-Python-3.patch -Patch11: 0011-tests-python-Use-bytearray-in-the-test.patch - -# Because the patches touch Makefile.am etc. -BuildRequires: autoconf, automake, libtool - BuildRequires: /usr/bin/pod2man %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -50,12 +33,6 @@ BuildRequires: ocaml >= 4.02.2 %endif BuildRequires: ruby-devel -# For complicated reasons, this is required so that -# /bin/kernel-install puts the kernel directly into /boot, instead of -# into a /boot/ subdirectory (in Fedora >= 23). Read the -# kernel-install script to understand why. -BuildRequires: grubby - %description NBD is a protocol for accessing block devices (hard disks and @@ -280,9 +257,6 @@ plugins for %{name}. %setup -q %autopatch -p1 -# Because the patches touch Makefile.am etc. -autoreconf -i - %build # Force immediate binding for hardened build for plugins. @@ -480,6 +454,11 @@ popd %changelog +* Fri Aug 25 2017 Richard W.M. Jones - 1.1.13-1 +- New upstream version 1.1.13. +- Remove patches which are all upstream. +- Remove grubby hack, should not be needed with modern supermin. + * Sat Aug 19 2017 Richard W.M. Jones - 1.1.12-13 - Rebuild for OCaml 4.05.0. diff --git a/sources b/sources index 41da4a5..1e452ae 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -df80454541d5e2f523aaa10cd018bf42 nbdkit-1.1.12.tar.gz +SHA512 (nbdkit-1.1.13.tar.gz) = c73197b17a4a34c770c01226da9435846a01348f0f845756b9a8bd1498b679b9488ba0f2e75d408bd5a4f41224de8841b7e9dc74df77e58de1bb0cf90eef12b0 From 9213b3e6ae6cd02ce77d72c538c62436844256d0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 1 Sep 2017 15:28:02 +0100 Subject: [PATCH 039/683] New upstream version 1.1.14. --- nbdkit.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index aa991c2..2a8b97a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,7 +5,7 @@ %endif Name: nbdkit -Version: 1.1.13 +Version: 1.1.14 Release: 1%{?dist} Summary: NBD server @@ -454,6 +454,9 @@ popd %changelog +* Fri Sep 01 2017 Richard W.M. Jones - 1.1.14-1 +- New upstream version 1.1.14. + * Fri Aug 25 2017 Richard W.M. Jones - 1.1.13-1 - New upstream version 1.1.13. - Remove patches which are all upstream. diff --git a/sources b/sources index 1e452ae..67e77d2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.13.tar.gz) = c73197b17a4a34c770c01226da9435846a01348f0f845756b9a8bd1498b679b9488ba0f2e75d408bd5a4f41224de8841b7e9dc74df77e58de1bb0cf90eef12b0 +SHA512 (nbdkit-1.1.14.tar.gz) = 94412f35a9f397fe68a98211b92697f22f414a4629ed476dedb0b925f42ea2b1d94ba3905e26f4ec702e4224704c6f2187e490e11b3a53af122ba3e08deea034 From 18285e9581533fd7c35063fd0f7ea100de8d01cd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 27 Sep 2017 21:14:08 +0100 Subject: [PATCH 040/683] New upstream version 1.1.15. Enable TLS support. --- nbdkit.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2a8b97a..b7b2561 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,7 +5,7 @@ %endif Name: nbdkit -Version: 1.1.14 +Version: 1.1.15 Release: 1%{?dist} Summary: NBD server @@ -15,6 +15,7 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz BuildRequires: /usr/bin/pod2man +BuildRequires: gnutls-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel %endif @@ -269,7 +270,7 @@ copy="$(mktemp -d)" cp -a . "$copy" mv "$copy" python3 -%configure --disable-static +%configure --disable-static --with-tls-priority=@NBDKIT,SYSTEM make %{?_smp_mflags} pushd python3 @@ -454,6 +455,10 @@ popd %changelog +* Wed Sep 27 2017 Richard W.M. Jones - 1.1.15-1 +- New upstream version 1.1.15. +- Enable TLS support. + * Fri Sep 01 2017 Richard W.M. Jones - 1.1.14-1 - New upstream version 1.1.14. diff --git a/sources b/sources index 67e77d2..a15bd8f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.14.tar.gz) = 94412f35a9f397fe68a98211b92697f22f414a4629ed476dedb0b925f42ea2b1d94ba3905e26f4ec702e4224704c6f2187e490e11b3a53af122ba3e08deea034 +SHA512 (nbdkit-1.1.15.tar.gz) = 731881e5fd13f9d684500c76b9f7d3ab1787468240a80714df0b7350e7922d96a2747de44e82427ed1da6d6559f473b32f906b2b9b57ad75095732d1897b83c5 From 3e2f88dacd6d52bbc0c7c5c639f2fe8bcc476af0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 20 Oct 2017 10:53:40 +0100 Subject: [PATCH 041/683] New upstream version 1.1.16. --- nbdkit.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b7b2561..3ff686b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,7 +5,7 @@ %endif Name: nbdkit -Version: 1.1.15 +Version: 1.1.16 Release: 1%{?dist} Summary: NBD server @@ -455,6 +455,9 @@ popd %changelog +* Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-1 +- New upstream version 1.1.16. + * Wed Sep 27 2017 Richard W.M. Jones - 1.1.15-1 - New upstream version 1.1.15. - Enable TLS support. diff --git a/sources b/sources index a15bd8f..291721a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.15.tar.gz) = 731881e5fd13f9d684500c76b9f7d3ab1787468240a80714df0b7350e7922d96a2747de44e82427ed1da6d6559f473b32f906b2b9b57ad75095732d1897b83c5 +SHA512 (nbdkit-1.1.16.tar.gz) = 05c739b8c5c5a7376c5077d192fec2742655f8db6c10c9aea28da174c229a5b3b45f57108f2e82fb7adcd0126d7355b4aab48a92e93cc7e7b2c5549b9f425579 From f38f61c339f925928e8cd6e520581968105ada96 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 20 Oct 2017 11:46:28 +0100 Subject: [PATCH 042/683] Disable python3 plugin on RHEL/EPEL <= 7. Only ship on x86_64 in RHEL/EPEL <= 7. --- nbdkit.spec | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3ff686b..0640efc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.16 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -14,6 +14,14 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +%if 0%{?rhel} == 7 +# On RHEL 7, nothing in the virt stack is shipped on aarch64 and +# libguestfs was not shipped on POWER (fixed in 7.5). We could in +# theory make all of this work by having lots more conditionals, but +# for now limit this package to x86_64 on RHEL. +ExclusiveArch: x86_64 +%endif + BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel %if 0%{?have_libguestfs} @@ -26,7 +34,9 @@ BuildRequires: libcurl-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python2-devel +%if 0%{?rhel} >= 8 BuildRequires: python3-devel +%endif %ifarch %{ocaml_native_compiler} # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 @@ -196,6 +206,7 @@ Obsoletes: %{name}-plugin-python <= %{version}-%{release} This package lets you write Python 2 plugins for %{name}. +%if 0%{?rhel} >= 8 %package plugin-python3 Summary: Python 3 plugin for %{name} License: BSD @@ -206,6 +217,7 @@ Requires: %{name}-plugin-python-common = %{version}-%{release} %description plugin-python3 This package lets you write Python 3 plugins for %{name}. +%endif %package plugin-ruby @@ -273,6 +285,7 @@ mv "$copy" python3 %configure --disable-static --with-tls-priority=@NBDKIT,SYSTEM make %{?_smp_mflags} +%if 0%{?rhel} >= 8 pushd python3 export PYTHON=%{_bindir}/python3 %configure --disable-static --disable-perl --disable-ocaml --disable-ruby @@ -282,12 +295,14 @@ grep '^PYTHON_VERSION = 3' Makefile make %{?_smp_mflags} unset PYTHON popd +%endif %install # Install for Python 2 and Python 3 separately. # We do the Python 3 install first since that build is # incomplete. +%if 0%{?rhel} >= 8 pushd python3 %make_install popd @@ -295,6 +310,7 @@ popd pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/ mv nbdkit-python-plugin.so nbdkit-python3-plugin.so popd +%endif %make_install @@ -330,12 +346,14 @@ make check || { exit 1 } +%if 0%{?rhel} >= 8 pushd python3 make check || { cat tests/test-suite.log exit 1 } popd +%endif %endif %endif @@ -421,8 +439,10 @@ popd %{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so +%if 0%{?rhel} >= 8 %files plugin-python3 %{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so +%endif %files plugin-ruby @@ -455,8 +475,10 @@ popd %changelog -* Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-1 +* Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-2 - New upstream version 1.1.16. +- Disable python3 plugin on RHEL/EPEL <= 7. +- Only ship on x86_64 in RHEL/EPEL <= 7. * Wed Sep 27 2017 Richard W.M. Jones - 1.1.15-1 - New upstream version 1.1.15. From 0a2938eb960cf06ea126ee293a16f5db1053fee1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 21 Nov 2017 21:27:08 +0000 Subject: [PATCH 043/683] New upstream version 1.1.18. --- nbdkit.spec | 32 ++++++++++++++++++++++++++++++-- sources | 2 +- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0640efc..b38988b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -5,8 +5,8 @@ %endif Name: nbdkit -Version: 1.1.16 -Release: 2%{?dist} +Version: 1.1.18 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -137,6 +137,24 @@ libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. +%package plugin-nbd +Summary: NBD forwarding plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-nbd +This package is an NBD forwarding plugin for %{name}. + +It provides an NBD server that forwards all traffic as a client to +another existing NBD server. A primary usage of this setup is to alter +the set of features available to the ultimate end client, without +having to change the original server (for example, to convert between +oldstyle and newtyle, or to add TLS support where the original server +lacks it). + + %ifarch %{ocaml_native_compiler} %package plugin-ocaml Summary: OCaml plugin for %{name} @@ -411,6 +429,12 @@ popd %{_mandir}/man1/nbdkit-libvirt-plugin.1* +%files plugin-nbd +%doc LICENSE README +%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so +%{_mandir}/man1/nbdkit-nbd-plugin.1* + + %ifarch %{ocaml_native_compiler} %files plugin-ocaml %doc LICENSE README @@ -475,6 +499,10 @@ popd %changelog +* Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-1 +- New upstream version 1.1.18. +- Add NBD forwarding plugin. + * Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-2 - New upstream version 1.1.16. - Disable python3 plugin on RHEL/EPEL <= 7. diff --git a/sources b/sources index 291721a..f396f5b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.16.tar.gz) = 05c739b8c5c5a7376c5077d192fec2742655f8db6c10c9aea28da174c229a5b3b45f57108f2e82fb7adcd0126d7355b4aab48a92e93cc7e7b2c5549b9f425579 +SHA512 (nbdkit-1.1.18.tar.gz) = 62ebe50eb7c3e2faac66f763cc8d8b206c76692cd6f865acb4753fdb16ca3ee466b90f52daff1c9a54e6554103cfeb7752c4007f3dca6765d3c85f32e89c0c33 From 6766db434d5b5d663930afe09569e4b2d00d0fe7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 21 Nov 2017 22:24:22 +0000 Subject: [PATCH 044/683] Add libselinux-devel so that SELinux support is enabled in the daemon. --- nbdkit.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b38988b..7c5d624 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.18 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -24,6 +24,7 @@ ExclusiveArch: x86_64 BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel +BuildRequires: libselinux-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel %endif @@ -499,9 +500,10 @@ popd %changelog -* Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-1 +* Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-2 - New upstream version 1.1.18. - Add NBD forwarding plugin. +- Add libselinux-devel so that SELinux support is enabled in the daemon. * Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-2 - New upstream version 1.1.16. From 0b892779f5360fb3625c21555fd1d8155a88f44d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 21 Nov 2017 22:52:57 +0000 Subject: [PATCH 045/683] Apply all patches from upstream since 1.1.18. --- ...-Fix-small-typo-in-the-documentation.patch | 26 ++++++++++++++ ...or-typographical-fixes-to-the-man-pa.patch | 34 +++++++++++++++++++ ...x-to-documentation-of-threads-option.patch | 26 ++++++++++++++ ...be-dump-plugin-earlier-in-the-manual.patch | 27 +++++++++++++++ nbdkit.spec | 10 ++++-- 5 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch create mode 100644 0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch create mode 100644 0003-docs-Small-fix-to-documentation-of-threads-option.patch create mode 100644 0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch diff --git a/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch b/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch new file mode 100644 index 0000000..a132ef4 --- /dev/null +++ b/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch @@ -0,0 +1,26 @@ +From 937be0da588a9374ae38363ed11e168c98370be5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 21 Nov 2017 21:54:57 +0000 +Subject: [PATCH 1/4] plugins: nbd: Fix small typo in the documentation. + +Fixes commit 0e8e8eb11d6b70d262a99b5b630af354768bfc61. +--- + plugins/nbd/nbdkit-nbd-plugin.pod | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/nbd/nbdkit-nbd-plugin.pod b/plugins/nbd/nbdkit-nbd-plugin.pod +index e02e6cc..2b3a054 100644 +--- a/plugins/nbd/nbdkit-nbd-plugin.pod ++++ b/plugins/nbd/nbdkit-nbd-plugin.pod +@@ -16,7 +16,7 @@ It provides an NBD server that forwards all traffic as a client to + another existing NBD server. A primary usage of this setup is to + alter the set of features available to the ultimate end client, + without having to change the original server (for example, to convert +-between oldstyle and newtyle, or to add TLS support where the original ++between oldstyle and newstyle, or to add TLS support where the original + server lacks it). + + For now, this is limited to connecting to another NBD server over a +-- +2.13.2 + diff --git a/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch b/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch new file mode 100644 index 0000000..cc2d8a3 --- /dev/null +++ b/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch @@ -0,0 +1,34 @@ +From 55be677eb156146bcdcdf332854b02dc1064ef7b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 21 Nov 2017 22:18:36 +0000 +Subject: [PATCH 2/4] plugins: perl: Minor typographical fixes to the man page. + +--- + plugins/perl/nbdkit-perl-plugin.pod | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod +index 2ecdcf1..7d5a68d 100644 +--- a/plugins/perl/nbdkit-perl-plugin.pod ++++ b/plugins/perl/nbdkit-perl-plugin.pod +@@ -63,14 +63,14 @@ script won't work. + =head2 METHODS + + Your script has access to the following methods in the C +-package (in fact, attempting to C will fail, the methods ++package (in fact, attempting to C will fail, the methods + are already available): + +- Nbdkit::set_error(I<$err>) ++ Nbdkit::set_error($err); + + Record C<$err> as the reason you are about to throw an exception. C<$err> + should correspond to usual errno values, where it may help to +-C. ++C. + + =head2 EXCEPTIONS + +-- +2.13.2 + diff --git a/0003-docs-Small-fix-to-documentation-of-threads-option.patch b/0003-docs-Small-fix-to-documentation-of-threads-option.patch new file mode 100644 index 0000000..862dd7d --- /dev/null +++ b/0003-docs-Small-fix-to-documentation-of-threads-option.patch @@ -0,0 +1,26 @@ +From 2264f3bbbc3cb52cee4bea86da7c34d7f9a38e65 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 21 Nov 2017 22:35:28 +0000 +Subject: [PATCH 3/4] docs: Small fix to documentation of --threads option. + +Fixes commit e9516a147ace4e302d7eec0a2a81ddad1c5bfb00. +--- + docs/nbdkit.pod | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index 4593391..fb923c1 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -232,7 +232,7 @@ Unix domain sockets: + + =item B<-t> THREADS + +-= item B<--threads> THREADS ++=item B<--threads> THREADS + + Set the number of threads to be used per connection, which in turn + controls the number of outstanding requests that can be processed at +-- +2.13.2 + diff --git a/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch b/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch new file mode 100644 index 0000000..ad912cc --- /dev/null +++ b/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch @@ -0,0 +1,27 @@ +From 1b4f7c713e2acddad110434c9d1587eb94fc39c5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 21 Nov 2017 22:38:03 +0000 +Subject: [PATCH 4/4] docs: Describe --dump-plugin earlier in the manual. + +--- + docs/nbdkit.pod | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod +index fb923c1..5dac12d 100644 +--- a/docs/nbdkit.pod ++++ b/docs/nbdkit.pod +@@ -324,6 +324,10 @@ To list all the options supported by a plugin, do: + + nbdkit --help file + ++To dump information about a plugin, do: ++ ++ nbdkit file --dump-plugin ++ + =head1 SOCKET ACTIVATION + + nbdkit supports socket activation (sometimes called systemd socket +-- +2.13.2 + diff --git a/nbdkit.spec b/nbdkit.spec index 7c5d624..3a197ce 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,7 +6,7 @@ Name: nbdkit Version: 1.1.18 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -14,6 +14,11 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +Patch0001: 0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch +Patch0002: 0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch +Patch0003: 0003-docs-Small-fix-to-documentation-of-threads-option.patch +Patch0004: 0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch + %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -500,10 +505,11 @@ popd %changelog -* Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-2 +* Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-3 - New upstream version 1.1.18. - Add NBD forwarding plugin. - Add libselinux-devel so that SELinux support is enabled in the daemon. +- Apply all patches from upstream since 1.1.18. * Fri Oct 20 2017 Richard W.M. Jones - 1.1.16-2 - New upstream version 1.1.16. From 05a3e073d018e7ac218e2890aad51c303f04cc0a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 29 Nov 2017 18:08:30 +0000 Subject: [PATCH 046/683] Fix Python 3 builds / RHEL macros (RHBZ#1404631). --- nbdkit.spec | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3a197ce..1a77fa5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -4,9 +4,14 @@ %global have_libguestfs 1 %endif +# Currently everything has Python 2. RHEL 7 doesn't have Python 3. +%if 0%{?rhel} != 7 +%global have_python3 1 +%endif + Name: nbdkit Version: 1.1.18 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -40,7 +45,7 @@ BuildRequires: libcurl-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python2-devel -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} BuildRequires: python3-devel %endif %ifarch %{ocaml_native_compiler} @@ -230,7 +235,7 @@ Obsoletes: %{name}-plugin-python <= %{version}-%{release} This package lets you write Python 2 plugins for %{name}. -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} %package plugin-python3 Summary: Python 3 plugin for %{name} License: BSD @@ -309,7 +314,7 @@ mv "$copy" python3 %configure --disable-static --with-tls-priority=@NBDKIT,SYSTEM make %{?_smp_mflags} -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} pushd python3 export PYTHON=%{_bindir}/python3 %configure --disable-static --disable-perl --disable-ocaml --disable-ruby @@ -326,7 +331,7 @@ popd # Install for Python 2 and Python 3 separately. # We do the Python 3 install first since that build is # incomplete. -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} pushd python3 %make_install popd @@ -370,7 +375,7 @@ make check || { exit 1 } -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} pushd python3 make check || { cat tests/test-suite.log @@ -469,7 +474,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so -%if 0%{?rhel} >= 8 +%if 0%{?have_python3} %files plugin-python3 %{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so %endif @@ -505,6 +510,9 @@ popd %changelog +* Wed Nov 29 2017 Richard W.M. Jones - 1.1.18-4 +- Fix Python 3 builds / RHEL macros (RHBZ#1404631). + * Tue Nov 21 2017 Richard W.M. Jones - 1.1.18-3 - New upstream version 1.1.18. - Add NBD forwarding plugin. From d568866d80ba67217dc5b717f03811499d68bff4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 30 Nov 2017 12:48:21 +0000 Subject: [PATCH 047/683] New upstream version 1.1.19. Combine all the simple plugins in nbdkit-basic-plugins. Add memory and null plugins. Rename the example plugins subpackage. Use %license instead of %doc for license file. Remove patches now upstream. --- ...-Fix-small-typo-in-the-documentation.patch | 26 --- ...or-typographical-fixes-to-the-man-pa.patch | 34 --- ...x-to-documentation-of-threads-option.patch | 26 --- ...be-dump-plugin-earlier-in-the-manual.patch | 27 --- nbdkit.spec | 202 ++++++++++-------- sources | 2 +- 6 files changed, 113 insertions(+), 204 deletions(-) delete mode 100644 0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch delete mode 100644 0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch delete mode 100644 0003-docs-Small-fix-to-documentation-of-threads-option.patch delete mode 100644 0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch diff --git a/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch b/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch deleted file mode 100644 index a132ef4..0000000 --- a/0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 937be0da588a9374ae38363ed11e168c98370be5 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 21 Nov 2017 21:54:57 +0000 -Subject: [PATCH 1/4] plugins: nbd: Fix small typo in the documentation. - -Fixes commit 0e8e8eb11d6b70d262a99b5b630af354768bfc61. ---- - plugins/nbd/nbdkit-nbd-plugin.pod | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/nbd/nbdkit-nbd-plugin.pod b/plugins/nbd/nbdkit-nbd-plugin.pod -index e02e6cc..2b3a054 100644 ---- a/plugins/nbd/nbdkit-nbd-plugin.pod -+++ b/plugins/nbd/nbdkit-nbd-plugin.pod -@@ -16,7 +16,7 @@ It provides an NBD server that forwards all traffic as a client to - another existing NBD server. A primary usage of this setup is to - alter the set of features available to the ultimate end client, - without having to change the original server (for example, to convert --between oldstyle and newtyle, or to add TLS support where the original -+between oldstyle and newstyle, or to add TLS support where the original - server lacks it). - - For now, this is limited to connecting to another NBD server over a --- -2.13.2 - diff --git a/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch b/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch deleted file mode 100644 index cc2d8a3..0000000 --- a/0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 55be677eb156146bcdcdf332854b02dc1064ef7b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 21 Nov 2017 22:18:36 +0000 -Subject: [PATCH 2/4] plugins: perl: Minor typographical fixes to the man page. - ---- - plugins/perl/nbdkit-perl-plugin.pod | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod -index 2ecdcf1..7d5a68d 100644 ---- a/plugins/perl/nbdkit-perl-plugin.pod -+++ b/plugins/perl/nbdkit-perl-plugin.pod -@@ -63,14 +63,14 @@ script won't work. - =head2 METHODS - - Your script has access to the following methods in the C --package (in fact, attempting to C will fail, the methods -+package (in fact, attempting to C will fail, the methods - are already available): - -- Nbdkit::set_error(I<$err>) -+ Nbdkit::set_error($err); - - Record C<$err> as the reason you are about to throw an exception. C<$err> - should correspond to usual errno values, where it may help to --C. -+C. - - =head2 EXCEPTIONS - --- -2.13.2 - diff --git a/0003-docs-Small-fix-to-documentation-of-threads-option.patch b/0003-docs-Small-fix-to-documentation-of-threads-option.patch deleted file mode 100644 index 862dd7d..0000000 --- a/0003-docs-Small-fix-to-documentation-of-threads-option.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2264f3bbbc3cb52cee4bea86da7c34d7f9a38e65 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 21 Nov 2017 22:35:28 +0000 -Subject: [PATCH 3/4] docs: Small fix to documentation of --threads option. - -Fixes commit e9516a147ace4e302d7eec0a2a81ddad1c5bfb00. ---- - docs/nbdkit.pod | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index 4593391..fb923c1 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -232,7 +232,7 @@ Unix domain sockets: - - =item B<-t> THREADS - --= item B<--threads> THREADS -+=item B<--threads> THREADS - - Set the number of threads to be used per connection, which in turn - controls the number of outstanding requests that can be processed at --- -2.13.2 - diff --git a/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch b/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch deleted file mode 100644 index ad912cc..0000000 --- a/0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 1b4f7c713e2acddad110434c9d1587eb94fc39c5 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 21 Nov 2017 22:38:03 +0000 -Subject: [PATCH 4/4] docs: Describe --dump-plugin earlier in the manual. - ---- - docs/nbdkit.pod | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/docs/nbdkit.pod b/docs/nbdkit.pod -index fb923c1..5dac12d 100644 ---- a/docs/nbdkit.pod -+++ b/docs/nbdkit.pod -@@ -324,6 +324,10 @@ To list all the options supported by a plugin, do: - - nbdkit --help file - -+To dump information about a plugin, do: -+ -+ nbdkit file --dump-plugin -+ - =head1 SOCKET ACTIVATION - - nbdkit supports socket activation (sometimes called systemd socket --- -2.13.2 - diff --git a/nbdkit.spec b/nbdkit.spec index 1a77fa5..a181295 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,8 +10,8 @@ %endif Name: nbdkit -Version: 1.1.18 -Release: 4%{?dist} +Version: 1.1.19 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -19,11 +19,6 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz -Patch0001: 0001-plugins-nbd-Fix-small-typo-in-the-documentation.patch -Patch0002: 0002-plugins-perl-Minor-typographical-fixes-to-the-man-pa.patch -Patch0003: 0003-docs-Small-fix-to-documentation-of-threads-option.patch -Patch0004: 0004-docs-Describe-dump-plugin-earlier-in-the-manual.patch - %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -78,6 +73,67 @@ To develop plugins, install the %{name}-devel package and start by reading the nbdkit(1) and nbdkit-plugin(3) manual pages. +%package basic-plugins +Summary: Basic plugins for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + +# For upgrade path, remove these in Fedora 30. +Obsoletes: %{name}-plugin-file < 1.1.19-1 +Obsoletes: %{name}-plugin-nbd < 1.1.19-1 +Obsoletes: %{name}-plugin-streaming < 1.1.19-1 + + +%description basic-plugins +This package contains some basic plugins for %{name} which have only +trivial dependencies. + +* nbdkit-file-plugin + + A file serving plugin. + +* nbdkit-memory-plugin + + A virtual memory plugin. + +* nbdkit-nbd-plugin + + An NBD forwarding plugin. + + It provides an NBD server that forwards all traffic as a client to + another existing NBD server. A primary usage of this setup is to + alter the set of features available to the ultimate end client, + without having to change the original server (for example, to + convert between oldstyle and newtyle, or to add TLS support where + the original server lacks it). + +* nbdkit-null-plugin + + A null (bitbucket) plugin. + +* nbdkit-streaming-plugin + + A streaming file serving plugin. + + +%package example-plugins +Summary: Example plugins for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 30. +Obsoletes: %{name}-plugin-examples < 1.1.19-1 + + +%description example-plugins +This package contains example plugins for %{name}. + + +# The plugins below have non-trivial dependencies are so are +# packaged separately. + %package plugin-curl Summary: HTTP/FTP/SSH (cURL) plugin for %{name} License: BSD @@ -89,28 +145,6 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package contains cURL (HTTP/FTP/SSH) support for %{name}. -%package plugin-examples -Summary: Example plugins for %{name} -License: BSD - -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description plugin-examples -This package contains example plugins for %{name}. - - -%package plugin-file -Summary: File serving plugin for %{name} -License: BSD - -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description plugin-file -This package is a file serving plugin for %{name}. - - %if 0%{?have_libguestfs} %package plugin-guestfs Summary: libguestfs plugin for %{name} @@ -148,24 +182,6 @@ libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. -%package plugin-nbd -Summary: NBD forwarding plugin for %{name} -License: BSD - -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description plugin-nbd -This package is an NBD forwarding plugin for %{name}. - -It provides an NBD server that forwards all traffic as a client to -another existing NBD server. A primary usage of this setup is to alter -the set of features available to the ultimate end client, without -having to change the original server (for example, to convert between -oldstyle and newtyle, or to add TLS support where the original server -lacks it). - - %ifarch %{ocaml_native_compiler} %package plugin-ocaml Summary: OCaml plugin for %{name} @@ -260,17 +276,6 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Ruby plugins for %{name}. -%package plugin-streaming -Summary: Streaming file serving plugin for %{name} -License: BSD - -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description plugin-streaming -This package is a streaming plugin for %{name}. - - %package plugin-xz Summary: XZ file serving plugin for %{name} License: BSD @@ -395,60 +400,70 @@ popd %files -%doc LICENSE README +%doc README +%license LICENSE %{_sbindir}/nbdkit %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/plugins %{_mandir}/man1/nbdkit.1* -%files plugin-curl -%doc LICENSE README -%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so -%{_mandir}/man1/nbdkit-curl-plugin.1* +%files basic-plugins +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-file-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so +%{_mandir}/man1/nbdkit-file-plugin.1* +%{_mandir}/man1/nbdkit-memory-plugin.1* +%{_mandir}/man1/nbdkit-nbd-plugin.1* +%{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-streaming-plugin.1* -%files plugin-examples -%doc LICENSE README +%files example-plugins +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so %{_mandir}/man1/nbdkit-example*-plugin.1* -%files plugin-file -%doc LICENSE README -%{_libdir}/%{name}/plugins/nbdkit-file-plugin.so -%{_mandir}/man1/nbdkit-file-plugin.1* +%files plugin-curl +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so +%{_mandir}/man1/nbdkit-curl-plugin.1* %if 0%{?have_libguestfs} %files plugin-guestfs -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so %{_mandir}/man1/nbdkit-guestfs-plugin.1* %endif %files plugin-gzip -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so %{_mandir}/man1/nbdkit-gzip-plugin.1* %files plugin-libvirt -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* -%files plugin-nbd -%doc LICENSE README -%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so -%{_mandir}/man1/nbdkit-nbd-plugin.1* - - %ifarch %{ocaml_native_compiler} %files plugin-ocaml -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/libnbdkitocaml.so.* %files plugin-ocaml-devel @@ -459,13 +474,15 @@ popd %files plugin-perl -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so %{_mandir}/man3/nbdkit-perl-plugin.3* %files plugin-python-common -%doc LICENSE README +%doc README +%license LICENSE %{_mandir}/man3/nbdkit-python-plugin.3* @@ -481,25 +498,22 @@ popd %files plugin-ruby -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so %{_mandir}/man3/nbdkit-ruby-plugin.3* -%files plugin-streaming -%doc LICENSE README -%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so -%{_mandir}/man1/nbdkit-streaming-plugin.1* - - %files plugin-xz -%doc LICENSE README +%doc README +%license LICENSE %{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so %{_mandir}/man1/nbdkit-xz-plugin.1* %files devel -%doc LICENSE README TODO +%doc OTHER_PLUGINS README TODO +%license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c %doc plugins/perl/example.pl @@ -510,6 +524,14 @@ popd %changelog +* Thu Nov 30 2017 Richard W.M. Jones - 1.1.19-1 +- New upstream version 1.1.19. +- Combine all the simple plugins in %{name}-basic-plugins. +- Add memory and null plugins. +- Rename the example plugins subpackage. +- Use %%license instead of %%doc for license file. +- Remove patches now upstream. + * Wed Nov 29 2017 Richard W.M. Jones - 1.1.18-4 - Fix Python 3 builds / RHEL macros (RHBZ#1404631). diff --git a/sources b/sources index f396f5b..7897cd9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.18.tar.gz) = 62ebe50eb7c3e2faac66f763cc8d8b206c76692cd6f865acb4753fdb16ca3ee466b90f52daff1c9a54e6554103cfeb7752c4007f3dca6765d3c85f32e89c0c33 +SHA512 (nbdkit-1.1.19.tar.gz) = a0e8999f8c258bb8ef589d5d3b3fb3e51efed1d1d0088fdbcb05f4fdd75c9074829e294257dc241cbaed26a70bd1f409093c159c76e6cf46ed803abdec3bbed9 From 3ebe8d3627677d835bb368bc583d7b417750eb10 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 2 Dec 2017 07:46:22 +0000 Subject: [PATCH 048/683] OCaml 4.06.0 rebuild. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a181295..73ca71d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -11,7 +11,7 @@ Name: nbdkit Version: 1.1.19 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -524,6 +524,9 @@ popd %changelog +* Sat Dec 02 2017 Richard W.M. Jones - 1.1.19-2 +- OCaml 4.06.0 rebuild. + * Thu Nov 30 2017 Richard W.M. Jones - 1.1.19-1 - New upstream version 1.1.19. - Combine all the simple plugins in %{name}-basic-plugins. From 5b55b9cd25953fef7dca38dd0998d0af30973cf2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 2 Dec 2017 19:51:26 +0000 Subject: [PATCH 049/683] New upstream version 1.1.20. Add nbdkit-split-plugin to basic plugins. --- nbdkit.spec | 10 ++++++++-- sources | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 73ca71d..7aa5f69 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,8 +10,8 @@ %endif Name: nbdkit -Version: 1.1.19 -Release: 2%{?dist} +Version: 1.1.20 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -415,11 +415,13 @@ popd %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* @@ -524,6 +526,10 @@ popd %changelog +* Sat Dec 02 2017 Richard W.M. Jones - 1.1.20-1 +- New upstream version 1.1.20. +- Add nbdkit-split-plugin to basic plugins. + * Sat Dec 02 2017 Richard W.M. Jones - 1.1.19-2 - OCaml 4.06.0 rebuild. diff --git a/sources b/sources index 7897cd9..c2d7f03 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.19.tar.gz) = a0e8999f8c258bb8ef589d5d3b3fb3e51efed1d1d0088fdbcb05f4fdd75c9074829e294257dc241cbaed26a70bd1f409093c159c76e6cf46ed803abdec3bbed9 +SHA512 (nbdkit-1.1.20.tar.gz) = 59b1dfb100d554360ad1dfa5db15fba798040ab28857768830b3e7ce47981cc4da8cb5fcfd318d31de95e63af9a5e79c938a959c7d7a58b4c55541d0d0b8310a From 1a4749e0d5e9026bca59ef042997add59c9843ea Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 3 Dec 2017 19:42:51 +0000 Subject: [PATCH 050/683] New upstream version 1.1.22. Enable tests on Fedora. --- nbdkit.spec | 9 +++++---- sources | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7aa5f69..6a417ff 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,7 +10,7 @@ %endif Name: nbdkit -Version: 1.1.20 +Version: 1.1.22 Release: 1%{?dist} Summary: NBD server @@ -372,8 +372,6 @@ export LIBGUESTFS_TRACE=1 # tests there. # Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 %ifnarch %{arm} %{ix86} ppc %{power64} -# Broken on F25 because of https://bugzilla.redhat.com/show_bug.cgi?id=1344016 -%if 0%{?fedora} < 25 make check || { cat tests/test-suite.log @@ -390,7 +388,6 @@ popd %endif %endif -%endif %ifarch %{ocaml_native_compiler} @@ -526,6 +523,10 @@ popd %changelog +* Sun Dec 03 2017 Richard W.M. Jones - 1.1.22-1 +- New upstream version 1.1.22. +- Enable tests on Fedora. + * Sat Dec 02 2017 Richard W.M. Jones - 1.1.20-1 - New upstream version 1.1.20. - Add nbdkit-split-plugin to basic plugins. diff --git a/sources b/sources index c2d7f03..bcdb101 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.20.tar.gz) = 59b1dfb100d554360ad1dfa5db15fba798040ab28857768830b3e7ce47981cc4da8cb5fcfd318d31de95e63af9a5e79c938a959c7d7a58b4c55541d0d0b8310a +SHA512 (nbdkit-1.1.22.tar.gz) = dfc774b54b7346a1ed0e878a198f2a8c8c831a245f8f82e9fdeb5ad69986cb0aaa8e8d39eb1750b45d41eddf4764980a54ca9603266dce0930092f19008bb612 From 809f31cb11e2409341b3ebc20f47ee7925d2e2fe Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 3 Dec 2017 21:21:44 +0000 Subject: [PATCH 051/683] Don't run the tests in parallel. Only run test-python when testing in the python3 sub-build. --- nbdkit.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6a417ff..8cec510 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -368,19 +368,21 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 -# Unlikely that libguestfs will work on ARM and PPC, so don't try running the -# tests there. -# Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071 +# Disabled on armv7 and ppc/power because we haven't currently spent +# any effort on making the tests work there. +# +# The tests rely on libguestfs which needs the kernel to work, and that +# usually doesn't work on i686, so it is disabled. %ifnarch %{arm} %{ix86} ppc %{power64} -make check || { +make check -j1 || { cat tests/test-suite.log exit 1 } %if 0%{?have_python3} pushd python3 -make check || { +make check -j1 TESTS=test-python || { cat tests/test-suite.log exit 1 } From 9f21293e00ab74c5e455ee6cbba48d28048a0a20 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Dec 2017 08:59:46 +0000 Subject: [PATCH 052/683] New upstream version 1.1.23. Add example4 plugin. --- nbdkit.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8cec510..7f669e1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,7 +10,7 @@ %endif Name: nbdkit -Version: 1.1.22 +Version: 1.1.23 Release: 1%{?dist} Summary: NBD server @@ -428,6 +428,7 @@ popd %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-example4-plugin %{_mandir}/man1/nbdkit-example*-plugin.1* @@ -517,6 +518,7 @@ popd %license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c +%doc plugins/example4/nbdkit-example4-plugin %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb @@ -525,6 +527,10 @@ popd %changelog +* Tue Dec 05 2017 Richard W.M. Jones - 1.1.23-1 +- New upstream version 1.1.23. +- Add example4 plugin. + * Sun Dec 03 2017 Richard W.M. Jones - 1.1.22-1 - New upstream version 1.1.22. - Enable tests on Fedora. diff --git a/sources b/sources index bcdb101..27ed862 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.22.tar.gz) = dfc774b54b7346a1ed0e878a198f2a8c8c831a245f8f82e9fdeb5ad69986cb0aaa8e8d39eb1750b45d41eddf4764980a54ca9603266dce0930092f19008bb612 +SHA512 (nbdkit-1.1.23.tar.gz) = 30675c4634fde8cad0dc08289227cd19e5dfb0056b633a321d77577b256de1b9bb731939141b1f949ad5b5203158be2b876e135dd85d995464bb41f00499fae4 From 02ca394e2606cde20239da1ad772afe461ec5768 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Dec 2017 14:21:39 +0000 Subject: [PATCH 053/683] Python3 tests require libguestfs so disable on s390x. --- nbdkit.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 7f669e1..2186187 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -380,6 +380,7 @@ make check -j1 || { exit 1 } +%if 0%{?have_libguestfs} %if 0%{?have_python3} pushd python3 make check -j1 TESTS=test-python || { @@ -388,6 +389,7 @@ make check -j1 TESTS=test-python || { } popd %endif +%endif %endif @@ -530,6 +532,7 @@ popd * Tue Dec 05 2017 Richard W.M. Jones - 1.1.23-1 - New upstream version 1.1.23. - Add example4 plugin. +- Python3 tests require libguestfs so disable on s390x. * Sun Dec 03 2017 Richard W.M. Jones - 1.1.22-1 - New upstream version 1.1.22. From b6ecd653207ce9a4e3462059ce6fedb4c7acf161 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Dec 2017 17:05:28 +0000 Subject: [PATCH 054/683] New upstream version 1.1.24. Add tar plugin (new subpackage nbdkit-plugin-tar). --- nbdkit.spec | 24 +++++++++++++++++++++++- sources | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2186187..386376a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,7 +10,7 @@ %endif Name: nbdkit -Version: 1.1.23 +Version: 1.1.24 Release: 1%{?dist} Summary: NBD server @@ -276,6 +276,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Ruby plugins for %{name}. +%package plugin-tar +Summary: Tar archive plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-tar +This package is a tar archive plugin for %{name}. + + %package plugin-xz Summary: XZ file serving plugin for %{name} License: BSD @@ -508,6 +519,13 @@ popd %{_mandir}/man3/nbdkit-ruby-plugin.3* +%files plugin-tar +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-tar-plugin +%{_mandir}/man1/nbdkit-tar-plugin.1* + + %files plugin-xz %doc README %license LICENSE @@ -529,6 +547,10 @@ popd %changelog +* Tue Dec 05 2017 Richard W.M. Jones - 1.1.24-1 +- New upstream version 1.1.24. +- Add tar plugin (new subpackage nbdkit-plugin-tar). + * Tue Dec 05 2017 Richard W.M. Jones - 1.1.23-1 - New upstream version 1.1.23. - Add example4 plugin. diff --git a/sources b/sources index 27ed862..73e9fd2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.23.tar.gz) = 30675c4634fde8cad0dc08289227cd19e5dfb0056b633a321d77577b256de1b9bb731939141b1f949ad5b5203158be2b876e135dd85d995464bb41f00499fae4 +SHA512 (nbdkit-1.1.24.tar.gz) = 7be6c2446390966a997a0dde5acb7086a89f7211ea66e1903841b5cf805ba82206583f747fd9980217f4fde74c304a535d76bdc3b52cd9f8e3b00de1609b6c45 From bb6350e1e96c48254924bf737a87a7ec378be0d2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Dec 2017 16:14:53 +0000 Subject: [PATCH 055/683] New upstream version 1.1.25. --- nbdkit.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 386376a..9bff391 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,7 +10,7 @@ %endif Name: nbdkit -Version: 1.1.24 +Version: 1.1.25 Release: 1%{?dist} Summary: NBD server @@ -547,6 +547,9 @@ popd %changelog +* Wed Dec 06 2017 Richard W.M. Jones - 1.1.25-1 +- New upstream version 1.1.25. + * Tue Dec 05 2017 Richard W.M. Jones - 1.1.24-1 - New upstream version 1.1.24. - Add tar plugin (new subpackage nbdkit-plugin-tar). diff --git a/sources b/sources index 73e9fd2..f0f4f59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.24.tar.gz) = 7be6c2446390966a997a0dde5acb7086a89f7211ea66e1903841b5cf805ba82206583f747fd9980217f4fde74c304a535d76bdc3b52cd9f8e3b00de1609b6c45 +SHA512 (nbdkit-1.1.25.tar.gz) = 4989956556f7460e5c3bea49ab2160cbbbcde80520e9099cf3cdee64588aa055966a01c22c85394bb34de38b2eb420f5c51e2725317861b5787320eafc77d45f From d8fa3bf0fe4b1b9afe5934712a2d99f993e22afd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 23 Dec 2017 14:35:12 +0000 Subject: [PATCH 056/683] New upstream version 1.1.26. Add new pkg-config file and dependency. --- nbdkit.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9bff391..9b01094 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,7 +10,7 @@ %endif Name: nbdkit -Version: 1.1.25 +Version: 1.1.26 Release: 1%{?dist} Summary: NBD server @@ -303,6 +303,7 @@ Summary: Development files and documentation for %{name} License: BSD Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: pkgconfig %description devel @@ -544,9 +545,14 @@ popd %doc plugins/ruby/example.rb %{_includedir}/nbdkit-plugin.h %{_mandir}/man3/nbdkit-plugin.3* +%{_libdir}/pkgconfig/nbdkit.pc %changelog +* Sat Dec 23 2017 Richard W.M. Jones - 1.1.26-1 +- New upstream version 1.1.26. +- Add new pkg-config file and dependency. + * Wed Dec 06 2017 Richard W.M. Jones - 1.1.25-1 - New upstream version 1.1.25. diff --git a/sources b/sources index f0f4f59..d85ac01 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.25.tar.gz) = 4989956556f7460e5c3bea49ab2160cbbbcde80520e9099cf3cdee64588aa055966a01c22c85394bb34de38b2eb420f5c51e2725317861b5787320eafc77d45f +SHA512 (nbdkit-1.1.26.tar.gz) = 1c16849be2027b8434aee4d8b91b669cda0642b71480d393b8c5a4160e0e646fd8d333a07a8b19ece47c9ac29cd7e6bf2d7ac3d02014826c8ac62469c50d8e8a From 0d0b529e8b7255120fe89d42bd23d23ae2f97b7d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 11 Jan 2018 08:22:45 +0000 Subject: [PATCH 057/683] Rebuild against updated Ruby. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9b01094..8855631 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -11,7 +11,7 @@ Name: nbdkit Version: 1.1.26 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -549,6 +549,9 @@ popd %changelog +* Thu Jan 11 2018 Richard W.M. Jones - 1.1.26-2 +- Rebuild against updated Ruby. + * Sat Dec 23 2017 Richard W.M. Jones - 1.1.26-1 - New upstream version 1.1.26. - Add new pkg-config file and dependency. From abbff1805281602cc71affea0bb661ab76832394 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 11 Jan 2018 12:01:17 +0000 Subject: [PATCH 058/683] Disable Ruby test. test-ruby throws a SystemStackError (stack overflow) for unknown reasons with glibc >= 2.26.9000 or ruby >= 2.5.0. --- nbdkit.spec | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 8855631..888ae62 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -387,6 +387,15 @@ export LIBGUESTFS_TRACE=1 # usually doesn't work on i686, so it is disabled. %ifnarch %{arm} %{ix86} ppc %{power64} +# test-ruby throws a SystemStackError (stack overflow) for unknown +# reasons with glibc >= 2.26.9000 or ruby >= 2.5.0. +pushd tests +make check TESTS="" +rm -f test-ruby +echo 'exit 77' > test-ruby +chmod +x,-w test-ruby +popd + make check -j1 || { cat tests/test-suite.log exit 1 From 5ccd50c35007063b89b0ddd4fbbc302caced5857 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 11 Jan 2018 16:46:38 +0000 Subject: [PATCH 059/683] Document nbdkit-split-plugin in %description. --- nbdkit.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 888ae62..cb3b1db 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -112,6 +112,10 @@ trivial dependencies. A null (bitbucket) plugin. +* nbdkit-split-plugin + + Concatenate one or more files into a single virtual disk. + * nbdkit-streaming-plugin A streaming file serving plugin. From 3ad59d49f766a0578eab2e303124ab784b973565 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 20 Jan 2018 12:05:38 +0000 Subject: [PATCH 060/683] New upstream version 1.1.27. Add new subpackage nbdkit-basic-filters containing new filters. --- nbdkit.spec | 47 +++++++++++++++++++++++++++++++++++++++++++++-- sources | 2 +- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index cb3b1db..9e3782f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,8 +10,8 @@ %endif Name: nbdkit -Version: 1.1.26 -Release: 2%{?dist} +Version: 1.1.27 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -302,6 +302,30 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package is a xz file serving plugin for %{name}. +%package basic-filters +Summary: Basic filters for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description basic-filters +This package contains some basic filters for %{name} which have only +trivial dependencies. + +* nbdkit-delay-filter + + Inject read and write delays + +* nbdkit-offset-filter + + Serve an offset and range + +* nbdkit-partition-filter + + Serve a single partition + + %package devel Summary: Development files and documentation for %{name} License: BSD @@ -431,6 +455,7 @@ popd %{_sbindir}/nbdkit %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/plugins +%dir %{_libdir}/%{name}/filters %{_mandir}/man1/nbdkit.1* @@ -547,6 +572,17 @@ popd %{_mandir}/man1/nbdkit-xz-plugin.1* +%files basic-filters +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-delay-filter.so +%{_libdir}/%{name}/filters/nbdkit-offset-filter.so +%{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_mandir}/man1/nbdkit-delay-filter.1* +%{_mandir}/man1/nbdkit-offset-filter.1* +%{_mandir}/man1/nbdkit-partition-filter.1* + + %files devel %doc OTHER_PLUGINS README TODO %license LICENSE @@ -556,12 +592,19 @@ popd %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb +%{_includedir}/nbdkit-common.h +%{_includedir}/nbdkit-filter.h %{_includedir}/nbdkit-plugin.h +%{_mandir}/man3/nbdkit-filter.3* %{_mandir}/man3/nbdkit-plugin.3* %{_libdir}/pkgconfig/nbdkit.pc %changelog +* Sat Jan 20 2018 Richard W.M. Jones - 1.1.27-1 +- New upstream version 1.1.27. +- Add new subpackage nbdkit-basic-filters containing new filters. + * Thu Jan 11 2018 Richard W.M. Jones - 1.1.26-2 - Rebuild against updated Ruby. diff --git a/sources b/sources index d85ac01..74a9299 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.26.tar.gz) = 1c16849be2027b8434aee4d8b91b669cda0642b71480d393b8c5a4160e0e646fd8d333a07a8b19ece47c9ac29cd7e6bf2d7ac3d02014826c8ac62469c50d8e8a +SHA512 (nbdkit-1.1.27.tar.gz) = 3d5325cbf3e8099bad6a6ae542af266223d82b9f6a86ed486e2aec4ecbc31514cc612ae030f9b667c122fe24e5a73de281cb60af2640112629d830c386e41548 From 8b278f78d14847c39c7c2c9c3c385113eec20759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 20 Jan 2018 23:07:17 +0100 Subject: [PATCH 061/683] Rebuilt for switch to libxcrypt --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9e3782f..f58dfe7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -11,7 +11,7 @@ Name: nbdkit Version: 1.1.27 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -601,6 +601,9 @@ popd %changelog +* Sat Jan 20 2018 Björn Esser - 1.1.27-2 +- Rebuilt for switch to libxcrypt + * Sat Jan 20 2018 Richard W.M. Jones - 1.1.27-1 - New upstream version 1.1.27. - Add new subpackage nbdkit-basic-filters containing new filters. From 5086d8c9e1fb0d7e8930ce5fb25dbc1aab54278a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 22 Jan 2018 20:44:29 +0000 Subject: [PATCH 062/683] New upstream version 1.1.28. Add two new filters to nbdkit-basic-filters. --- nbdkit.spec | 26 +++++++++++++++++++++----- sources | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f58dfe7..8a2df7b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -10,8 +10,8 @@ %endif Name: nbdkit -Version: 1.1.27 -Release: 2%{?dist} +Version: 1.1.28 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -313,17 +313,25 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package contains some basic filters for %{name} which have only trivial dependencies. +* nbdkit-cache-filter + + Server-side cache. + +* nbdkig-cow-filter + + Copy-on-write overlay for read-only plugins. + * nbdkit-delay-filter - Inject read and write delays + Inject read and write delays. * nbdkit-offset-filter - Serve an offset and range + Serve an offset and range. * nbdkit-partition-filter - Serve a single partition + Serve a single partition. %package devel @@ -575,9 +583,13 @@ popd %files basic-filters %doc README %license LICENSE +%{_libdir}/%{name}/filters/nbdkit-cache-filter.so +%{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_mandir}/man1/nbdkit-cache-filter.1* +%{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* @@ -601,6 +613,10 @@ popd %changelog +* Mon Jan 22 2018 Richard W.M. Jones - 1.1.28-1 +- New upstream version 1.1.28. +- Add two new filters to nbdkit-basic-filters. + * Sat Jan 20 2018 Björn Esser - 1.1.27-2 - Rebuilt for switch to libxcrypt diff --git a/sources b/sources index 74a9299..d88f2b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.27.tar.gz) = 3d5325cbf3e8099bad6a6ae542af266223d82b9f6a86ed486e2aec4ecbc31514cc612ae030f9b667c122fe24e5a73de281cb60af2640112629d830c386e41548 +SHA512 (nbdkit-1.1.28.tar.gz) = cbf40dffc773575a69d20edc42570bf63bd5f189ec0a3c4beeca7fca518ec969b94a15fdc834762f322c99145a95a015f5aad60edb078ba98c7b805583218fef From 44518f07e0b28a799fa683f1f5ec2ca9c000ac01 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 22 Jan 2018 21:06:56 +0000 Subject: [PATCH 063/683] Ruby tests now disabled upstream, remove downstream block. --- nbdkit.spec | 9 --------- 1 file changed, 9 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8a2df7b..ad9e793 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -423,15 +423,6 @@ export LIBGUESTFS_TRACE=1 # usually doesn't work on i686, so it is disabled. %ifnarch %{arm} %{ix86} ppc %{power64} -# test-ruby throws a SystemStackError (stack overflow) for unknown -# reasons with glibc >= 2.26.9000 or ruby >= 2.5.0. -pushd tests -make check TESTS="" -rm -f test-ruby -echo 'exit 77' > test-ruby -chmod +x,-w test-ruby -popd - make check -j1 || { cat tests/test-suite.log exit 1 From f8754ffa2624ff224ae480dd4e021019f76db7f6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 26 Jan 2018 17:49:22 +0000 Subject: [PATCH 064/683] Run a simplified test suite on all arches. Note this change *enhances* test coverage. --- nbdkit.spec | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ad9e793..c45bf72 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -4,6 +4,13 @@ %global have_libguestfs 1 %endif +# Architectures where the complete test suite must pass. +# +# On all other architectures, a simpler test suite must pass. This +# omits any tests that run full qemu, since running qemu under TCG is +# often broken on non-x86_64 arches. +%global complete_test_arches aarch64 x86_64 + # Currently everything has Python 2. RHEL 7 doesn't have Python 3. %if 0%{?rhel} != 7 %global have_python3 1 @@ -11,7 +18,7 @@ Name: nbdkit Version: 1.1.28 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -27,6 +34,9 @@ Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz ExclusiveArch: x86_64 %endif +%ifnarch %{complete_test_arches} +BuildRequires: autoconf, automake, libtool +%endif BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel BuildRequires: libselinux-devel @@ -352,6 +362,12 @@ plugins for %{name}. %setup -q %autopatch -p1 +%ifnarch %{complete_test_arches} +# Simplify the test suite so it doesn't require qemu. +sed -i -e '/^if HAVE_LIBGUESTFS/,/^endif HAVE_LIBGUESTFS/d' tests/Makefile.am +autoreconf -i +%endif + %build # Force immediate binding for hardened build for plugins. @@ -416,18 +432,12 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 -# Disabled on armv7 and ppc/power because we haven't currently spent -# any effort on making the tests work there. -# -# The tests rely on libguestfs which needs the kernel to work, and that -# usually doesn't work on i686, so it is disabled. -%ifnarch %{arm} %{ix86} ppc %{power64} - make check -j1 || { cat tests/test-suite.log exit 1 } +%ifnarch %{complete_test_arches} %if 0%{?have_libguestfs} %if 0%{?have_python3} pushd python3 @@ -438,7 +448,6 @@ make check -j1 TESTS=test-python || { popd %endif %endif - %endif @@ -604,6 +613,9 @@ popd %changelog +* Fri Jan 26 2018 Richard W.M. Jones - 1.1.28-2 +- Run a simplified test suite on all arches. + * Mon Jan 22 2018 Richard W.M. Jones - 1.1.28-1 - New upstream version 1.1.28. - Add two new filters to nbdkit-basic-filters. From e6d9cfe20186b5a60c7ef41d707be4c6f996955c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 26 Jan 2018 18:04:10 +0000 Subject: [PATCH 065/683] Fix reversed %if statement in previous commit. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c45bf72..7d24b6a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -437,7 +437,7 @@ make check -j1 || { exit 1 } -%ifnarch %{complete_test_arches} +%ifarch %{complete_test_arches} %if 0%{?have_libguestfs} %if 0%{?have_python3} pushd python3 From fbf5fe1872d997e3ae2e2d5ebe0f912059961eb4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 26 Jan 2018 18:34:35 +0000 Subject: [PATCH 066/683] +BR certtool so we can test TLS. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 7d24b6a..f8965c8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -39,6 +39,8 @@ BuildRequires: autoconf, automake, libtool %endif BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel +# Only for running the test suite: +BuildRequires: /usr/bin/certtool BuildRequires: libselinux-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel From 1a2d9f084c3a3101a311a72fe90ceb6c0cb19693 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 26 Jan 2018 18:36:04 +0000 Subject: [PATCH 067/683] Add also socat & ss for the test suite. --- nbdkit.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f8965c8..d18e9c9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -39,8 +39,6 @@ BuildRequires: autoconf, automake, libtool %endif BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel -# Only for running the test suite: -BuildRequires: /usr/bin/certtool BuildRequires: libselinux-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel @@ -62,6 +60,10 @@ BuildRequires: ocaml >= 4.02.2 %endif BuildRequires: ruby-devel +# Only for running the test suite: +BuildRequires: /usr/bin/certtool +BuildRequires: /usr/bin/socat +BuildRequires: /usr/sbin/ss %description NBD is a protocol for accessing block devices (hard disks and From 4a058bf5aae8410dc443113868c3ea8cbd6c9924 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 26 Jan 2018 19:04:47 +0000 Subject: [PATCH 068/683] qemu-img also required to run the tests. It is pulled in indirectly by libguestfs, but on non-libguestfs arches (s390x in this case) we end up skipping the IPv4 tests. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index d18e9c9..3032920 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -62,6 +62,7 @@ BuildRequires: ruby-devel # Only for running the test suite: BuildRequires: /usr/bin/certtool +BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/socat BuildRequires: /usr/sbin/ss From 4510caa5e1091ad7b820a6edb19c1317221b75b0 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Wed, 31 Jan 2018 17:57:07 +0100 Subject: [PATCH 069/683] Switch to %ldconfig_scriptlets Signed-off-by: Igor Gnatenko --- nbdkit.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3032920..bb5a824 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -18,7 +18,7 @@ Name: nbdkit Version: 1.1.28 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -457,8 +457,7 @@ popd %ifarch %{ocaml_native_compiler} -%post plugin-ocaml -p /sbin/ldconfig -%postun plugin-ocaml -p /sbin/ldconfig +%ldconfig_scriptlets plugin-ocaml %endif @@ -618,6 +617,9 @@ popd %changelog +* Wed Jan 31 2018 Igor Gnatenko - 1.1.28-3 +- Switch to %%ldconfig_scriptlets + * Fri Jan 26 2018 Richard W.M. Jones - 1.1.28-2 - Run a simplified test suite on all arches. From dc926425711bd9a5552edd11cf7388832e2f3f27 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 8 Feb 2018 03:52:53 +0000 Subject: [PATCH 070/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index bb5a824..7f24c64 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -18,7 +18,7 @@ Name: nbdkit Version: 1.1.28 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -617,6 +617,9 @@ popd %changelog +* Thu Feb 08 2018 Fedora Release Engineering - 1.1.28-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Wed Jan 31 2018 Igor Gnatenko - 1.1.28-3 - Switch to %%ldconfig_scriptlets From 054d67a8f1e89532d59f87720b14f0369af221bf Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Fri, 9 Feb 2018 09:05:13 +0100 Subject: [PATCH 071/683] Escape macros in %changelog Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y2ZUKK2B7T2IKXPMODNF6HB2O5T5TS6H/ Signed-off-by: Igor Gnatenko --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7f24c64..eef01c6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -18,7 +18,7 @@ Name: nbdkit Version: 1.1.28 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -617,6 +617,9 @@ popd %changelog +* Fri Feb 09 2018 Igor Gnatenko - 1.1.28-5 +- Escape macros in %%changelog + * Thu Feb 08 2018 Fedora Release Engineering - 1.1.28-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild @@ -669,7 +672,7 @@ popd * Thu Nov 30 2017 Richard W.M. Jones - 1.1.19-1 - New upstream version 1.1.19. -- Combine all the simple plugins in %{name}-basic-plugins. +- Combine all the simple plugins in %%{name}-basic-plugins. - Add memory and null plugins. - Rename the example plugins subpackage. - Use %%license instead of %%doc for license file. From 2a48eb8cfa64878bd3f87e9d32590b6e835de5d8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Apr 2018 13:24:53 +0100 Subject: [PATCH 072/683] Move to development branch version 1.3.0. - New filters: blocksize, fua, log, nozero. --- nbdkit.spec | 32 ++++++++++++++++++++++++++++++-- sources | 2 +- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index eef01c6..190b4d5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -17,8 +17,8 @@ %endif Name: nbdkit -Version: 1.1.28 -Release: 5%{?dist} +Version: 1.3.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -328,6 +328,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package contains some basic filters for %{name} which have only trivial dependencies. +* nbdkit-blocksize-filter + + Adjust block size of requests sent to plugins. + * nbdkit-cache-filter Server-side cache. @@ -340,10 +344,22 @@ trivial dependencies. Inject read and write delays. +* nbdkit-fua-filter + + Modify flush behaviour in plugins. + +* nbdkit-log-filter + + Log all transactions to a file. + * nbdkit-offset-filter Serve an offset and range. +* nbdkit-nozero-filter + + Adjust handling of zero requests by plugins. + * nbdkit-partition-filter Serve a single partition. @@ -587,14 +603,22 @@ popd %files basic-filters %doc README %license LICENSE +%{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so +%{_libdir}/%{name}/filters/nbdkit-fua-filter.so +%{_libdir}/%{name}/filters/nbdkit-log-filter.so +%{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* +%{_mandir}/man1/nbdkit-fua-filter.1* +%{_mandir}/man1/nbdkit-log-filter.1* +%{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* @@ -617,6 +641,10 @@ popd %changelog +* Fri Apr 6 2018 Richard W.M. Jones - 1.3.0-1 +- Move to development branch version 1.3.0. +- New filters: blocksize, fua, log, nozero. + * Fri Feb 09 2018 Igor Gnatenko - 1.1.28-5 - Escape macros in %%changelog diff --git a/sources b/sources index d88f2b0..1ba3533 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.1.28.tar.gz) = cbf40dffc773575a69d20edc42570bf63bd5f189ec0a3c4beeca7fca518ec969b94a15fdc834762f322c99145a95a015f5aad60edb078ba98c7b805583218fef +SHA512 (nbdkit-1.3.0.tar.gz) = 9ba696bec0f4515090e449f2326fb9e1a255f3503db01b21d23f06ad0676e2a4ba4241df011d79ed5e2bf0725856dd51ed3722861b46572ae2035fd51c514f2f From f8e39c9cf2749666d360d70578638986bb4d2065 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 9 Apr 2018 18:44:46 +0100 Subject: [PATCH 073/683] Fix python3 tests. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 190b4d5..9073b7b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -462,7 +462,7 @@ make check -j1 || { %if 0%{?have_libguestfs} %if 0%{?have_python3} pushd python3 -make check -j1 TESTS=test-python || { +make check -j1 -C tests TESTS=test-python || { cat tests/test-suite.log exit 1 } From b51f0e30487214d83a40d2110e12b74caee3055a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 13:19:03 +0100 Subject: [PATCH 074/683] New upstream version 1.3.1. --- nbdkit.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9073b7b..4a434ad 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -17,7 +17,7 @@ %endif Name: nbdkit -Version: 1.3.0 +Version: 1.3.1 Release: 1%{?dist} Summary: NBD server @@ -641,6 +641,9 @@ popd %changelog +* Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 +- New upstream version 1.3.1. + * Fri Apr 6 2018 Richard W.M. Jones - 1.3.0-1 - Move to development branch version 1.3.0. - New filters: blocksize, fua, log, nozero. diff --git a/sources b/sources index 1ba3533..8ec5cd0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.3.0.tar.gz) = 9ba696bec0f4515090e449f2326fb9e1a255f3503db01b21d23f06ad0676e2a4ba4241df011d79ed5e2bf0725856dd51ed3722861b46572ae2035fd51c514f2f +SHA512 (nbdkit-1.3.1.tar.gz) = bd4baaebb052ddefec67defcc232768d60d7f630807c0d6d82604de02b10eb496ce3f5bef595fdf1e922f79adf3207799696ab6d7de1602d6660b9f4997862ef From 4bcef61e81837d23ee73b3258c4e5d445fa89699 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 19:34:01 +0100 Subject: [PATCH 075/683] Add patch to work around libvirt problem with relative socket paths. --- ...ide-full-path-to-Unix-domain-sockets.patch | 57 +++++++++++++++++++ nbdkit.spec | 3 + 2 files changed, 60 insertions(+) create mode 100644 0001-tests-Provide-full-path-to-Unix-domain-sockets.patch diff --git a/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch b/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch new file mode 100644 index 0000000..1180deb --- /dev/null +++ b/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch @@ -0,0 +1,57 @@ +From 06adc3dbfa162074a3cf20c58b8949f447b37ae5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 6 Jun 2018 19:29:35 +0100 +Subject: [PATCH] tests: Provide full path to Unix domain sockets. + +Maybe a bug in libvirt? +https://www.redhat.com/archives/libvir-list/2018-June/msg00490.html +--- + tests/test-cache.sh | 3 ++- + tests/test-cow.sh | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tests/test-cache.sh b/tests/test-cache.sh +index e5e9e82..ac99ce2 100755 +--- a/tests/test-cache.sh ++++ b/tests/test-cache.sh +@@ -32,6 +32,7 @@ + # SUCH DAMAGE. + + set -e ++set -x + + files="cache.img cache.sock cache.pid" + rm -f $files +@@ -69,7 +70,7 @@ cleanup () + trap cleanup INT QUIT TERM EXIT ERR + + # Open the overlay and perform some operations. +-guestfish --format=raw -a 'nbd://?socket=cache.sock' <<'EOF' ++guestfish --format=raw -a "nbd://?socket=`pwd`/cache.sock" <<'EOF' + run + part-disk /dev/sda gpt + mkfs ext4 /dev/sda1 +diff --git a/tests/test-cow.sh b/tests/test-cow.sh +index 443ba38..4b798c8 100755 +--- a/tests/test-cow.sh ++++ b/tests/test-cow.sh +@@ -32,6 +32,7 @@ + # SUCH DAMAGE. + + set -e ++set -x + + files="cow-base.img cow-diff.qcow2 cow.sock cow.pid" + rm -f $files +@@ -70,7 +71,7 @@ cleanup () + trap cleanup INT QUIT TERM EXIT ERR + + # Write some data into the overlay. +-guestfish --format=raw -a 'nbd://?socket=cow.sock' -m /dev/sda1 < - 1.3.1-1 - New upstream version 1.3.1. +- Add patch to work around libvirt problem with relative socket paths. * Fri Apr 6 2018 Richard W.M. Jones - 1.3.0-1 - Move to development branch version 1.3.0. From ba2c1c3cd198b6b11a6f74b1666b38a76241eb54 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 20:14:31 +0100 Subject: [PATCH 076/683] Add patch to fix the xz plugin test with recent guestfish. --- ...ide-full-path-to-Unix-domain-sockets.patch | 14 ++--- ...-block-size-when-preparing-disk-for-.patch | 52 +++++++++++++++++++ nbdkit.spec | 3 ++ 3 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 0002-tests-xz-Use-16M-block-size-when-preparing-disk-for-.patch diff --git a/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch b/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch index 1180deb..2d41fee 100644 --- a/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch +++ b/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch @@ -1,9 +1,9 @@ -From 06adc3dbfa162074a3cf20c58b8949f447b37ae5 Mon Sep 17 00:00:00 2001 +From 974f6aba15d71984b5f05dc8b5f10bb7a5cec082 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 19:29:35 +0100 -Subject: [PATCH] tests: Provide full path to Unix domain sockets. +Subject: [PATCH 1/2] tests: Provide full path to Unix domain sockets. -Maybe a bug in libvirt? +See also this thread: https://www.redhat.com/archives/libvir-list/2018-June/msg00490.html --- tests/test-cache.sh | 3 ++- @@ -11,7 +11,7 @@ https://www.redhat.com/archives/libvir-list/2018-June/msg00490.html 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test-cache.sh b/tests/test-cache.sh -index e5e9e82..ac99ce2 100755 +index e5e9e82..c46e7be 100755 --- a/tests/test-cache.sh +++ b/tests/test-cache.sh @@ -32,6 +32,7 @@ @@ -27,12 +27,12 @@ index e5e9e82..ac99ce2 100755 # Open the overlay and perform some operations. -guestfish --format=raw -a 'nbd://?socket=cache.sock' <<'EOF' -+guestfish --format=raw -a "nbd://?socket=`pwd`/cache.sock" <<'EOF' ++guestfish --format=raw -a "nbd://?socket=$PWD/cache.sock" <<'EOF' run part-disk /dev/sda gpt mkfs ext4 /dev/sda1 diff --git a/tests/test-cow.sh b/tests/test-cow.sh -index 443ba38..4b798c8 100755 +index 443ba38..01d2d04 100755 --- a/tests/test-cow.sh +++ b/tests/test-cow.sh @@ -32,6 +32,7 @@ @@ -48,7 +48,7 @@ index 443ba38..4b798c8 100755 # Write some data into the overlay. -guestfish --format=raw -a 'nbd://?socket=cow.sock' -m /dev/sda1 < +Date: Wed, 6 Jun 2018 20:06:39 +0100 +Subject: [PATCH 2/2] tests: xz: Use 16M block size when preparing disk for xz + plugin test. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In a recent commit guestfish changed the default size for disk images +prepared using the -N parameter from 100M to 1G: + + https://github.com/libguestfs/libguestfs/commit/adc23829e4b128562c2c29d984654528bd259644 + +For the xz plugin test we prepared a disk image using guestfish and +then xz-compressing the output, but we did not take our own advice and +use the --block-size parameter to limit the xz block size. Because of +the increased size of the disk as a whole, this pushed the block size +beyond the limit that the xz plugin can handle, and the test would +fail with: + + nbdkit: error: /var/tmp/nbdkit-1.3.1/tests/disk.xz: xz file largest block is bigger than maxblock + Either recompress the xz file with smaller blocks (see nbdkit-xz-plugin(1)) + or make maxblock parameter bigger. + maxblock = 536870912 (bytes) + largest block in xz file = 1073741824 (bytes) + +Simple fix by adding the --block-size parameter. + +Note that to see the effect of this change you will need to ‘make +maintainer-clean’ or remove the files ‘tests/disk’ and ‘tests/disk.xz’ +by hand. +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 4582120..0cc2618 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -328,7 +328,7 @@ test_xz_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + disk.xz: disk + rm -f $@ +- xz --best -c disk > $@ ++ xz --best --block-size=16777216 -c disk > $@ + + endif HAVE_GUESTFISH + endif HAVE_LIBLZMA +-- +2.16.2 + diff --git a/nbdkit.spec b/nbdkit.spec index 0dc110f..a8472b9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,7 +26,9 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +# Upstream patches to fix the tests. Patch1: 0001-tests-Provide-full-path-to-Unix-domain-sockets.patch +Patch2: 0002-tests-xz-Use-16M-block-size-when-preparing-disk-for-.patch %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and @@ -646,6 +648,7 @@ popd * Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 - New upstream version 1.3.1. - Add patch to work around libvirt problem with relative socket paths. +- Add patch to fix the xz plugin test with recent guestfish. * Fri Apr 6 2018 Richard W.M. Jones - 1.3.0-1 - Move to development branch version 1.3.0. From e04cb2ed897c8edfed44c81101ec7367cc7305c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 20:18:15 +0100 Subject: [PATCH 077/683] Exclude HAVE_GUESTFISH code on incomplete test arches. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index a8472b9..2f36751 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -390,6 +390,7 @@ plugins for %{name}. %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. sed -i -e '/^if HAVE_LIBGUESTFS/,/^endif HAVE_LIBGUESTFS/d' tests/Makefile.am +sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am autoreconf -i %endif From c7e1810498aa4fc7d0d6a3b3649b8eb8226fb40a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 20:55:34 +0100 Subject: [PATCH 078/683] BR automake unconditionally because we touch tests/Makefile.am in a patch. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 2f36751..e37e2ee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -29,6 +29,8 @@ Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz # Upstream patches to fix the tests. Patch1: 0001-tests-Provide-full-path-to-Unix-domain-sockets.patch Patch2: 0002-tests-xz-Use-16M-block-size-when-preparing-disk-for-.patch +# Temporarily because patch2 touches Makefile.am. +BuildRequires: autoconf, automake, libtool %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and From 8c8e65fbc920eda70c1c57dc690cdd03649444ad Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Jun 2018 21:04:07 +0100 Subject: [PATCH 079/683] I hate automake, updates previous commit. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index e37e2ee..4d5b4c5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -388,6 +388,8 @@ plugins for %{name}. %prep %setup -q %autopatch -p1 +# Temporarily because patch2 touches Makefile.am. +autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. From 6d9d5e1cc94f0ddafaae49375a4fe0dca9dc174b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:32:29 +0100 Subject: [PATCH 080/683] New upstream version 1.3.2. - Remove patches now upstream. - New ext2 plugin and subpackage, requires e2fsprogs-devel to build. --- nbdkit.spec | 35 ++++++++++++++++++++++++++--------- sources | 2 +- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4d5b4c5..0cbbdd0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -17,7 +17,7 @@ %endif Name: nbdkit -Version: 1.3.1 +Version: 1.3.2 Release: 1%{?dist} Summary: NBD server @@ -26,12 +26,6 @@ URL: https://github.com/libguestfs/nbdkit Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz -# Upstream patches to fix the tests. -Patch1: 0001-tests-Provide-full-path-to-Unix-domain-sockets.patch -Patch2: 0002-tests-xz-Use-16M-block-size-when-preparing-disk-for-.patch -# Temporarily because patch2 touches Makefile.am. -BuildRequires: autoconf, automake, libtool - %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -53,6 +47,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel +BuildRequires: e2fsprogs-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python2-devel @@ -170,6 +165,18 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package contains cURL (HTTP/FTP/SSH) support for %{name}. +%package plugin-ext2 +Summary: ext2, ext3 and ext4 filesystem support for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-ext2 +This package contains ext2, ext3 and ext4 filesystem support for +%{name}. + + %if 0%{?have_libguestfs} %package plugin-guestfs Summary: libguestfs plugin for %{name} @@ -388,8 +395,6 @@ plugins for %{name}. %prep %setup -q %autopatch -p1 -# Temporarily because patch2 touches Makefile.am. -autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. @@ -528,6 +533,13 @@ popd %{_mandir}/man1/nbdkit-curl-plugin.1* +%files plugin-ext2 +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so +%{_mandir}/man1/nbdkit-ext2-plugin.1* + + %if 0%{?have_libguestfs} %files plugin-guestfs %doc README @@ -650,6 +662,11 @@ popd %changelog +* Sat Jun 9 2018 Richard W.M. Jones - 1.3.2-1 +- New upstream version 1.3.2. +- Remove patches now upstream. +- New ext2 plugin and subpackage, requires e2fsprogs-devel to build. + * Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 - New upstream version 1.3.1. - Add patch to work around libvirt problem with relative socket paths. diff --git a/sources b/sources index 8ec5cd0..5cee21a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nbdkit-1.3.1.tar.gz) = bd4baaebb052ddefec67defcc232768d60d7f630807c0d6d82604de02b10eb496ce3f5bef595fdf1e922f79adf3207799696ab6d7de1602d6660b9f4997862ef +SHA512 (nbdkit-1.3.2.tar.gz) = 03db669bef2fde2714ac5b7143bd1e81517f175dac9913e116d8207dd7fe4aba187478d8b2506cfe296672e89229a530e045f4f50118aa59e03e629939f9d68b From 70cec0a4511265fb16ba7a87800f539c134fd862 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:33:06 +0100 Subject: [PATCH 081/683] Enable tarball signing. --- .gitignore | 1 + libguestfs.keyring | Bin 0 -> 2823 bytes nbdkit.spec | 16 ++++++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 libguestfs.keyring diff --git a/.gitignore b/.gitignore index 410cff4..4bd7ec0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /clog /nbdkit-*.tar.gz +/nbdkit-*.tar.gz.sig diff --git a/libguestfs.keyring b/libguestfs.keyring new file mode 100644 index 0000000000000000000000000000000000000000..bb3eb5537b7c398a10b7e2b26ca00af011d1a73e GIT binary patch literal 2823 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 4.02.2 %endif BuildRequires: ruby-devel +%if 0%{verify_tarball_signature} +BuildRequires: gnupg2 +%endif # Only for running the test suite: BuildRequires: /usr/bin/certtool @@ -393,6 +404,10 @@ plugins for %{name}. %prep +%if 0%{verify_tarball_signature} +tmphome="$(mktemp -d)" +gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} +%endif %setup -q %autopatch -p1 @@ -666,6 +681,7 @@ popd - New upstream version 1.3.2. - Remove patches now upstream. - New ext2 plugin and subpackage, requires e2fsprogs-devel to build. +- Enable tarball signatures. * Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 - New upstream version 1.3.1. From ce21b0dd4b3c7f8ceee8177d95f3642647c24741 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:33:10 +0100 Subject: [PATCH 082/683] Add signature for 1.3.2. --- sources | 1 + 1 file changed, 1 insertion(+) diff --git a/sources b/sources index 5cee21a..e3e8154 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (nbdkit-1.3.2.tar.gz) = 03db669bef2fde2714ac5b7143bd1e81517f175dac9913e116d8207dd7fe4aba187478d8b2506cfe296672e89229a530e045f4f50118aa59e03e629939f9d68b +SHA512 (nbdkit-1.3.2.tar.gz.sig) = 2d96e4e48e07ae530e6e62cc759adfb49f3daf8732c5b67a4ae26c2f6d99d2179716310dee764cb3a1fbc91d95d279e7c417ba1b3871ac96a0ab4d3fbf8c4697 From 7d26a635926b0b31a3dc19c27d9965f39a4ec8fd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:41:31 +0100 Subject: [PATCH 083/683] Remove no longer needed patches from dist-git. Fixes commit 6d9d5e1cc94f0ddafaae49375a4fe0dca9dc174b. --- ...ide-full-path-to-Unix-domain-sockets.patch | 57 ------------------- ...-block-size-when-preparing-disk-for-.patch | 52 ----------------- 2 files changed, 109 deletions(-) delete mode 100644 0001-tests-Provide-full-path-to-Unix-domain-sockets.patch delete mode 100644 0002-tests-xz-Use-16M-block-size-when-preparing-disk-for-.patch diff --git a/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch b/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch deleted file mode 100644 index 2d41fee..0000000 --- a/0001-tests-Provide-full-path-to-Unix-domain-sockets.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 974f6aba15d71984b5f05dc8b5f10bb7a5cec082 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Wed, 6 Jun 2018 19:29:35 +0100 -Subject: [PATCH 1/2] tests: Provide full path to Unix domain sockets. - -See also this thread: -https://www.redhat.com/archives/libvir-list/2018-June/msg00490.html ---- - tests/test-cache.sh | 3 ++- - tests/test-cow.sh | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/tests/test-cache.sh b/tests/test-cache.sh -index e5e9e82..c46e7be 100755 ---- a/tests/test-cache.sh -+++ b/tests/test-cache.sh -@@ -32,6 +32,7 @@ - # SUCH DAMAGE. - - set -e -+set -x - - files="cache.img cache.sock cache.pid" - rm -f $files -@@ -69,7 +70,7 @@ cleanup () - trap cleanup INT QUIT TERM EXIT ERR - - # Open the overlay and perform some operations. --guestfish --format=raw -a 'nbd://?socket=cache.sock' <<'EOF' -+guestfish --format=raw -a "nbd://?socket=$PWD/cache.sock" <<'EOF' - run - part-disk /dev/sda gpt - mkfs ext4 /dev/sda1 -diff --git a/tests/test-cow.sh b/tests/test-cow.sh -index 443ba38..01d2d04 100755 ---- a/tests/test-cow.sh -+++ b/tests/test-cow.sh -@@ -32,6 +32,7 @@ - # SUCH DAMAGE. - - set -e -+set -x - - files="cow-base.img cow-diff.qcow2 cow.sock cow.pid" - rm -f $files -@@ -70,7 +71,7 @@ cleanup () - trap cleanup INT QUIT TERM EXIT ERR - - # Write some data into the overlay. --guestfish --format=raw -a 'nbd://?socket=cow.sock' -m /dev/sda1 < -Date: Wed, 6 Jun 2018 20:06:39 +0100 -Subject: [PATCH 2/2] tests: xz: Use 16M block size when preparing disk for xz - plugin test. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In a recent commit guestfish changed the default size for disk images -prepared using the -N parameter from 100M to 1G: - - https://github.com/libguestfs/libguestfs/commit/adc23829e4b128562c2c29d984654528bd259644 - -For the xz plugin test we prepared a disk image using guestfish and -then xz-compressing the output, but we did not take our own advice and -use the --block-size parameter to limit the xz block size. Because of -the increased size of the disk as a whole, this pushed the block size -beyond the limit that the xz plugin can handle, and the test would -fail with: - - nbdkit: error: /var/tmp/nbdkit-1.3.1/tests/disk.xz: xz file largest block is bigger than maxblock - Either recompress the xz file with smaller blocks (see nbdkit-xz-plugin(1)) - or make maxblock parameter bigger. - maxblock = 536870912 (bytes) - largest block in xz file = 1073741824 (bytes) - -Simple fix by adding the --block-size parameter. - -Note that to see the effect of this change you will need to ‘make -maintainer-clean’ or remove the files ‘tests/disk’ and ‘tests/disk.xz’ -by hand. ---- - tests/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 4582120..0cc2618 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -328,7 +328,7 @@ test_xz_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - disk.xz: disk - rm -f $@ -- xz --best -c disk > $@ -+ xz --best --block-size=16777216 -c disk > $@ - - endif HAVE_GUESTFISH - endif HAVE_LIBLZMA --- -2.16.2 - From 322c5a6b3609ae2098a130fcd64b10eb616ad456 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:58:58 +0100 Subject: [PATCH 084/683] Add upstream patch to fix tests when guestfish not available. --- ...sh-isn-t-available-disk-is-not-creat.patch | 54 +++++++++++++++++++ nbdkit.spec | 8 +++ 2 files changed, 62 insertions(+) create mode 100644 0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch diff --git a/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch b/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch new file mode 100644 index 0000000..67d662d --- /dev/null +++ b/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch @@ -0,0 +1,54 @@ +From 07ecff1613b73f32b5954bd3a3d46bef6a39e396 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jun 2018 14:56:13 +0100 +Subject: [PATCH] =?UTF-8?q?tests:=20If=20guestfish=20isn't=20available,=20?= + =?UTF-8?q?=E2=80=98disk=E2=80=99=20is=20not=20created=20so=20disable=20te?= + =?UTF-8?q?sts=20which=20need=20it.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes commit 02f27adc50ed5b83021df4edc84f4dbf8b03a0e3. +--- + tests/Makefile.am | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 850240b..64a758e 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -279,6 +279,7 @@ test_file_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + # gzip plugin test. + if HAVE_ZLIB ++if HAVE_GUESTFISH + + LIBGUESTFS_TESTS += test-gzip + check_DATA += disk.gz +@@ -292,6 +293,7 @@ disk.gz: disk + rm -f $@ + gzip -9 -c disk > $@ + ++endif HAVE_GUESTFISH + endif HAVE_ZLIB + + # memory plugin test. +@@ -347,6 +349,7 @@ test_streaming_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + # xz plugin test. + if HAVE_LIBLZMA ++if HAVE_GUESTFISH + + LIBGUESTFS_TESTS += test-xz + check_DATA += disk.xz +@@ -360,6 +363,7 @@ disk.xz: disk + rm -f $@ + xz --best --block-size=16777216 -c disk > $@ + ++endif HAVE_GUESTFISH + endif HAVE_LIBLZMA + + #---------------------------------------------------------------------- +-- +2.16.2 + diff --git a/nbdkit.spec b/nbdkit.spec index 5b879ad..eaae293 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,6 +34,11 @@ Source1: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz. Source2: libguestfs.keyring %endif +# Upstream patch to fix tests. Touches tests/Makefile.am so we +# need autotools temporarily. +Patch1: 0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch +BuildRequires: autoconf, automake, libtool + %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -410,6 +415,8 @@ gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif %setup -q %autopatch -p1 +# Temporarily while patch1 touches autotools files. +autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. @@ -682,6 +689,7 @@ popd - Remove patches now upstream. - New ext2 plugin and subpackage, requires e2fsprogs-devel to build. - Enable tarball signatures. +- Add upstream patch to fix tests when guestfish not available. * Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 - New upstream version 1.3.1. From 4624a805eb9411e84341d2bd4eade2465055bd6a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 17:43:30 +0100 Subject: [PATCH 085/683] Enable bash tab completion. --- ...sh-isn-t-available-disk-is-not-creat.patch | 6 +- 0002-Add-simple-bash-completion-script.patch | 369 ++++++++++++++++++ nbdkit.spec | 27 +- 3 files changed, 396 insertions(+), 6 deletions(-) create mode 100644 0002-Add-simple-bash-completion-script.patch diff --git a/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch b/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch index 67d662d..a7ff863 100644 --- a/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch +++ b/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch @@ -1,9 +1,9 @@ From 07ecff1613b73f32b5954bd3a3d46bef6a39e396 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 14:56:13 +0100 -Subject: [PATCH] =?UTF-8?q?tests:=20If=20guestfish=20isn't=20available,=20?= - =?UTF-8?q?=E2=80=98disk=E2=80=99=20is=20not=20created=20so=20disable=20te?= - =?UTF-8?q?sts=20which=20need=20it.?= +Subject: [PATCH 1/2] =?UTF-8?q?tests:=20If=20guestfish=20isn't=20available?= + =?UTF-8?q?,=20=E2=80=98disk=E2=80=99=20is=20not=20created=20so=20disable?= + =?UTF-8?q?=20tests=20which=20need=20it.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/0002-Add-simple-bash-completion-script.patch b/0002-Add-simple-bash-completion-script.patch new file mode 100644 index 0000000..58cfef8 --- /dev/null +++ b/0002-Add-simple-bash-completion-script.patch @@ -0,0 +1,369 @@ +From 772cfefad72f4c2ec5a72bc73f75a2921fe6054b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 9 Jun 2018 17:01:06 +0100 +Subject: [PATCH 2/2] Add simple bash completion script. + +So far this can complete plugin names: + + $ nbdkit + curl example4 libvirt perl ruby vddk + example1 file memory python split xz + example2 guestfs nbd python2 streaming + example3 gzip null python3 tar + +Plugin parameters: + + $ nbdkit curl + password= sslverify= timeout= url= user= + +Filter names: + + $ nbdkit --filter= + cache cow delay offset partition + +General options (short or long or both): + + $ nbdkit - + --dump-config --new-style --single + --dump-plugin --newstyle --stdin + -e --no-fork -t + --exit-with-parent -o --threads + --export --old-style --tls + --export-name --oldstyle --tls-certificates + --exportname -p --tls-verify-peer + -f -P -u + --filter --pid-file -U + --foreground --pidfile --unix + -g --port --user + --group -r -v + --help --read-only -V + -i --readonly --verbose + --ip-addr --run --version + --ipaddr -s + -n --selinux-label + +And --tls options: + + $ nbdkit --tls= + off on require + +There is still quite a lot more which it doesn't do, such as +completing filter parameters, and smarter completion for options. +--- + Makefile.am | 1 + + README | 4 ++ + TODO | 2 - + bash/Makefile.am | 40 ++++++++++++++++++++ + bash/README | 8 ++++ + bash/nbdkit | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 15 ++++++++ + src/main.c | 17 +++++++++ + 8 files changed, 198 insertions(+), 2 deletions(-) + create mode 100644 bash/Makefile.am + create mode 100644 bash/README + create mode 100644 bash/nbdkit + +diff --git a/Makefile.am b/Makefile.am +index 9c5b4c3..9d097f5 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -44,6 +44,7 @@ EXTRA_DIST = \ + noinst_SCRIPTS = nbdkit + + SUBDIRS = \ ++ bash \ + docs \ + include \ + src +diff --git a/README b/README +index e58df8b..a589d77 100644 +--- a/README ++++ b/README +@@ -91,6 +91,10 @@ For the OCaml plugin: + - OCaml >= 4.02.2 which has support for shared libraries, see: + http://caml.inria.fr/mantis/view.php?id=6693 + ++For bash tab completion: ++ ++ - bash-completion >= 1.99 ++ + To run the test suite: + + - bash +diff --git a/TODO b/TODO +index fe0af0c..07f40cc 100644 +--- a/TODO ++++ b/TODO +@@ -10,8 +10,6 @@ General ideas for improvements + + * Performance - measure and improve it. + +-* Bash tab completion. +- + * Exit on last connection (the default behaviour of qemu-nbd unless + you use -t). + +diff --git a/bash/Makefile.am b/bash/Makefile.am +new file mode 100644 +index 0000000..2a2799a +--- /dev/null ++++ b/bash/Makefile.am +@@ -0,0 +1,40 @@ ++# nbdkit ++# Copyright (C) 2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++EXTRA_DIST = README ++ ++if HAVE_BASH_COMPLETION ++ ++bashcompdir = @bashcompdir@ ++dist_bashcomp_DATA = nbdkit ++ ++endif +diff --git a/bash/README b/bash/README +new file mode 100644 +index 0000000..21a4f71 +--- /dev/null ++++ b/bash/README +@@ -0,0 +1,8 @@ ++This directory contains the scripts for tab-completing commands in ++bash. Note these new-style demand-loaded scripts require ++bash-completion >= 1.99. ++ ++Tip: To test the bash completions without having to install them, ++simply start a new shell and do: ++ ++ source ./bash/nbdkit; PATH=$PWD:$PATH +diff --git a/bash/nbdkit b/bash/nbdkit +new file mode 100644 +index 0000000..3db531d +--- /dev/null ++++ b/bash/nbdkit +@@ -0,0 +1,113 @@ ++# nbdkit bash completion script -*- shell-script -*- ++# Copyright (C) 2010-2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++_nbdkit_list_plugins () ++{ ++ local plugindir ++ plugindir="$( ++ nbdkit --dump-config | grep ^plugindir= | sed 's/^plugindir=//' ++ )" ++ ls -1 "$plugindir" | sed 's/^nbdkit-//' | sed 's/-plugin.*//' ++} ++ ++_nbdkit_list_filters () ++{ ++ local filterdir ++ filterdir="$( ++ nbdkit --dump-config | grep ^filterdir= | sed 's/^filterdir=//' ++ )" ++ ls -1 "$filterdir" | sed 's/^nbdkit-//' | sed 's/-filter.*//' ++} ++ ++# This handler function is called when the user presses tab. ++_nbdkit () ++{ ++ local cur prev words cword split ++ local shortopts longopts plugin plugins filters args i ++ ++ _init_completion -s || return ++ ++ # Did we get the plugin name yet? ++ # This is only a heuristic because it can be confused by ++ # long opt parameters with an arguments. XXX ++ plugin= ++ for (( i=1; i < ${#words[@]}; ++i)) ; do ++ if [[ "${words[i]}" =~ ^[a-zA-Z0-9]+$ ]]; then ++ plugin="${words[i]}" ++ break ++ fi ++ done ++ ++ # Previous item on the current line is a completable flag or plugin name? ++ case "$prev" in ++ --filter) ++ filters="$(_nbdkit_list_filters)" ++ COMPREPLY=( $(compgen -W "$filters" "$cur") ) ++ return ;; ++ --tls) ++ COMPREPLY=( $(compgen -W "off on require" "$cur") ) ++ return ;; ++ # Could complete -u and -g options too. XXX ++ esac ++ ++ # Current item is an option we can expand? ++ case "$cur" in ++ --*) ++ longopts="$(nbdkit --long-options)" ++ COMPREPLY=( $(compgen -W "$longopts" -- "$cur") ) ++ return ;; ++ -*) ++ shortopts="$(nbdkit --short-options)" ++ longopts="$(nbdkit --long-options)" ++ COMPREPLY=( $(compgen -W "$shortopts $longopts" -- "$cur") ) ++ return ;; ++ *) ++ if [ "$plugin" = "" ]; then ++ # Complete plugin name. ++ plugins="$(_nbdkit_list_plugins)" ++ COMPREPLY=( $(compgen -W "$plugins" "$cur") ) ++ return ++ else ++ # Complete plugin args. ++ args="$( ++ nbdkit $plugin --help 2>/dev/null | ++ grep -E '^[a-z0-9]+=' | sed 's/=.*/=/' ++ )" ++ COMPREPLY=( $(compgen -W "$args" "$cur") ) ++ return ++ fi ++ ;; ++ esac ++} ++ ++# Install the handler function. ++complete -o default -F _nbdkit nbdkit +diff --git a/configure.ac b/configure.ac +index 0ef9673..abf7048 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -164,6 +164,20 @@ AS_IF([test "$GNUTLS_LIBS" != ""],[ + dnl Check for valgrind. + AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) + ++dnl Bash completion. ++PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ ++ bash_completion=yes ++ AC_MSG_CHECKING([for bash-completions directory]) ++ PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], , ++ bashcompdir="${sysconfdir}/bash_completion.d") ++ AC_MSG_RESULT([$bashcompdir]) ++ AC_SUBST([bashcompdir]) ++],[ ++ bash_completion=no ++ AC_MSG_WARN([bash-completion not installed]) ++]) ++AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) ++ + dnl Check for Perl POD. + AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) + AS_IF([test "x$POD2MAN" != "xno"],[ +@@ -526,6 +540,7 @@ AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_FILES([nbdkit], + [chmod +x,-w nbdkit]) + AC_CONFIG_FILES([Makefile ++ bash/Makefile + docs/Makefile + include/Makefile + plugins/Makefile +diff --git a/src/main.c b/src/main.c +index d2e5674..660d036 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -126,6 +126,7 @@ static const struct option long_options[] = { + { "group", 1, NULL, 'g' }, + { "ip-addr", 1, NULL, 'i' }, + { "ipaddr", 1, NULL, 'i' }, ++ { "long-options", 0, NULL, 0 }, + { "new-style", 0, NULL, 'n' }, + { "newstyle", 0, NULL, 'n' }, + { "old-style", 0, NULL, 'o' }, +@@ -137,6 +138,7 @@ static const struct option long_options[] = { + { "readonly", 0, NULL, 'r' }, + { "run", 1, NULL, 0 }, + { "selinux-label", 1, NULL, 0 }, ++ { "short-options", 0, NULL, 0 }, + { "single", 0, NULL, 's' }, + { "stdin", 0, NULL, 's' }, + { "threads", 1, NULL, 't' }, +@@ -263,6 +265,14 @@ main (int argc, char *argv[]) + t->filename = optarg; + filter_filenames = t; + } ++ else if (strcmp (long_options[option_index].name, "long-options") == 0) { ++ for (i = 0; long_options[i].name != NULL; ++i) { ++ if (strcmp (long_options[i].name, "long-options") != 0 && ++ strcmp (long_options[i].name, "short-options") != 0) ++ printf ("--%s\n", long_options[i].name); ++ } ++ exit (EXIT_SUCCESS); ++ } + else if (strcmp (long_options[option_index].name, "run") == 0) { + if (socket_activation) { + fprintf (stderr, "%s: cannot use socket activation with --run flag\n", +@@ -276,6 +286,13 @@ main (int argc, char *argv[]) + selinux_label = optarg; + break; + } ++ else if (strcmp (long_options[option_index].name, "short-options") == 0) { ++ for (i = 0; short_options[i]; ++i) { ++ if (short_options[i] != ':') ++ printf ("-%c\n", short_options[i]); ++ } ++ exit (EXIT_SUCCESS); ++ } + else if (strcmp (long_options[option_index].name, "tls") == 0) { + tls_set_on_cli = 1; + if (strcmp (optarg, "off") == 0 || strcmp (optarg, "0") == 0) +-- +2.16.2 + diff --git a/nbdkit.spec b/nbdkit.spec index eaae293..b5d79fd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,9 +34,10 @@ Source1: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz. Source2: libguestfs.keyring %endif -# Upstream patch to fix tests. Touches tests/Makefile.am so we +# Upstream patch to fix tests. Touches autotools files so we # need autotools temporarily. Patch1: 0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch +Patch2: 0002-Add-simple-bash-completion-script.patch BuildRequires: autoconf, automake, libtool %if 0%{?rhel} == 7 @@ -61,6 +62,7 @@ BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel BuildRequires: e2fsprogs-devel +BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python2-devel @@ -408,6 +410,18 @@ for %{name}. Install this package if you want to develop plugins for %{name}. +%package bash-completion +Summary: Bash tab-completion for %{name} +BuildArch: noarch +Requires: bash-completion >= 2.0 +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description bash-completion +Install this package if you want intelligent bash tab-completion +for %{name}. + + %prep %if 0%{verify_tarball_signature} tmphome="$(mktemp -d)" @@ -415,7 +429,7 @@ gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif %setup -q %autopatch -p1 -# Temporarily while patch1 touches autotools files. +# Temporarily while patches touch autotools files. autoreconf -i %ifnarch %{complete_test_arches} @@ -683,13 +697,20 @@ popd %{_libdir}/pkgconfig/nbdkit.pc +%files bash-completion +%license LICENSE +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/nbdkit + + %changelog -* Sat Jun 9 2018 Richard W.M. Jones - 1.3.2-1 +* Sat Jun 9 2018 Richard W.M. Jones - 1.3.2-2 - New upstream version 1.3.2. - Remove patches now upstream. - New ext2 plugin and subpackage, requires e2fsprogs-devel to build. - Enable tarball signatures. - Add upstream patch to fix tests when guestfish not available. +- Enable bash tab completion. * Wed Jun 6 2018 Richard W.M. Jones - 1.3.1-1 - New upstream version 1.3.1. From f192c6da9057eeccc6b01710c0e71099ffb352fc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 9 Jun 2018 17:51:53 +0100 Subject: [PATCH 086/683] nbdkit-plugin-tar should be noarch. It contains only a Perl script. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index b5d79fd..f0658af 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -329,6 +329,7 @@ This package lets you write Ruby plugins for %{name}. %package plugin-tar Summary: Tar archive plugin for %{name} License: BSD +BuildArch: noarch Requires: %{name}%{?_isa} = %{version}-%{release} From 9df870792f4c29597cc99f3a3dd3048c61ee04c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 10 Jun 2018 10:37:39 +0100 Subject: [PATCH 087/683] noarch subpackages cannot use %{_isa} in dependencies. https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/VGL6XRJRZ4DM2ZFQCP5IRLLHT6XL4GW6/ Updates previous two commits. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f0658af..ea40575 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -331,7 +331,7 @@ Summary: Tar archive plugin for %{name} License: BSD BuildArch: noarch -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description plugin-tar @@ -415,7 +415,7 @@ plugins for %{name}. Summary: Bash tab-completion for %{name} BuildArch: noarch Requires: bash-completion >= 2.0 -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description bash-completion From 622aabfee2e35d24f98879051a154246f35484a7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jun 2018 13:19:25 +0100 Subject: [PATCH 088/683] Disable complete test suite on aarch64. It was taking longer than a day to run the test suite on aarch64, although it didn't seem to be hanging or failing, just being very very slow. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index ea40575..df7fe27 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -9,7 +9,7 @@ # On all other architectures, a simpler test suite must pass. This # omits any tests that run full qemu, since running qemu under TCG is # often broken on non-x86_64 arches. -%global complete_test_arches aarch64 x86_64 +%global complete_test_arches x86_64 # Currently everything has Python 2. RHEL 7 doesn't have Python 3. %if 0%{?rhel} != 7 From 4109734f267d2b9eaa5b4be0003bfe1faebeac31 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jun 2018 15:32:07 +0100 Subject: [PATCH 089/683] New upstream version 1.3.3. - New plugins: nbdkit-zero-plugin, nbdkit-random-plugin. - Remove upstream patches. --- ...sh-isn-t-available-disk-is-not-creat.patch | 54 --- 0002-Add-simple-bash-completion-script.patch | 369 ------------------ nbdkit.spec | 27 +- sources | 4 +- 4 files changed, 20 insertions(+), 434 deletions(-) delete mode 100644 0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch delete mode 100644 0002-Add-simple-bash-completion-script.patch diff --git a/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch b/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch deleted file mode 100644 index a7ff863..0000000 --- a/0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 07ecff1613b73f32b5954bd3a3d46bef6a39e396 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jun 2018 14:56:13 +0100 -Subject: [PATCH 1/2] =?UTF-8?q?tests:=20If=20guestfish=20isn't=20available?= - =?UTF-8?q?,=20=E2=80=98disk=E2=80=99=20is=20not=20created=20so=20disable?= - =?UTF-8?q?=20tests=20which=20need=20it.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes commit 02f27adc50ed5b83021df4edc84f4dbf8b03a0e3. ---- - tests/Makefile.am | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 850240b..64a758e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -279,6 +279,7 @@ test_file_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - # gzip plugin test. - if HAVE_ZLIB -+if HAVE_GUESTFISH - - LIBGUESTFS_TESTS += test-gzip - check_DATA += disk.gz -@@ -292,6 +293,7 @@ disk.gz: disk - rm -f $@ - gzip -9 -c disk > $@ - -+endif HAVE_GUESTFISH - endif HAVE_ZLIB - - # memory plugin test. -@@ -347,6 +349,7 @@ test_streaming_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - # xz plugin test. - if HAVE_LIBLZMA -+if HAVE_GUESTFISH - - LIBGUESTFS_TESTS += test-xz - check_DATA += disk.xz -@@ -360,6 +363,7 @@ disk.xz: disk - rm -f $@ - xz --best --block-size=16777216 -c disk > $@ - -+endif HAVE_GUESTFISH - endif HAVE_LIBLZMA - - #---------------------------------------------------------------------- --- -2.16.2 - diff --git a/0002-Add-simple-bash-completion-script.patch b/0002-Add-simple-bash-completion-script.patch deleted file mode 100644 index 58cfef8..0000000 --- a/0002-Add-simple-bash-completion-script.patch +++ /dev/null @@ -1,369 +0,0 @@ -From 772cfefad72f4c2ec5a72bc73f75a2921fe6054b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Jun 2018 17:01:06 +0100 -Subject: [PATCH 2/2] Add simple bash completion script. - -So far this can complete plugin names: - - $ nbdkit - curl example4 libvirt perl ruby vddk - example1 file memory python split xz - example2 guestfs nbd python2 streaming - example3 gzip null python3 tar - -Plugin parameters: - - $ nbdkit curl - password= sslverify= timeout= url= user= - -Filter names: - - $ nbdkit --filter= - cache cow delay offset partition - -General options (short or long or both): - - $ nbdkit - - --dump-config --new-style --single - --dump-plugin --newstyle --stdin - -e --no-fork -t - --exit-with-parent -o --threads - --export --old-style --tls - --export-name --oldstyle --tls-certificates - --exportname -p --tls-verify-peer - -f -P -u - --filter --pid-file -U - --foreground --pidfile --unix - -g --port --user - --group -r -v - --help --read-only -V - -i --readonly --verbose - --ip-addr --run --version - --ipaddr -s - -n --selinux-label - -And --tls options: - - $ nbdkit --tls= - off on require - -There is still quite a lot more which it doesn't do, such as -completing filter parameters, and smarter completion for options. ---- - Makefile.am | 1 + - README | 4 ++ - TODO | 2 - - bash/Makefile.am | 40 ++++++++++++++++++++ - bash/README | 8 ++++ - bash/nbdkit | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - configure.ac | 15 ++++++++ - src/main.c | 17 +++++++++ - 8 files changed, 198 insertions(+), 2 deletions(-) - create mode 100644 bash/Makefile.am - create mode 100644 bash/README - create mode 100644 bash/nbdkit - -diff --git a/Makefile.am b/Makefile.am -index 9c5b4c3..9d097f5 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -44,6 +44,7 @@ EXTRA_DIST = \ - noinst_SCRIPTS = nbdkit - - SUBDIRS = \ -+ bash \ - docs \ - include \ - src -diff --git a/README b/README -index e58df8b..a589d77 100644 ---- a/README -+++ b/README -@@ -91,6 +91,10 @@ For the OCaml plugin: - - OCaml >= 4.02.2 which has support for shared libraries, see: - http://caml.inria.fr/mantis/view.php?id=6693 - -+For bash tab completion: -+ -+ - bash-completion >= 1.99 -+ - To run the test suite: - - - bash -diff --git a/TODO b/TODO -index fe0af0c..07f40cc 100644 ---- a/TODO -+++ b/TODO -@@ -10,8 +10,6 @@ General ideas for improvements - - * Performance - measure and improve it. - --* Bash tab completion. -- - * Exit on last connection (the default behaviour of qemu-nbd unless - you use -t). - -diff --git a/bash/Makefile.am b/bash/Makefile.am -new file mode 100644 -index 0000000..2a2799a ---- /dev/null -+++ b/bash/Makefile.am -@@ -0,0 +1,40 @@ -+# nbdkit -+# Copyright (C) 2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+EXTRA_DIST = README -+ -+if HAVE_BASH_COMPLETION -+ -+bashcompdir = @bashcompdir@ -+dist_bashcomp_DATA = nbdkit -+ -+endif -diff --git a/bash/README b/bash/README -new file mode 100644 -index 0000000..21a4f71 ---- /dev/null -+++ b/bash/README -@@ -0,0 +1,8 @@ -+This directory contains the scripts for tab-completing commands in -+bash. Note these new-style demand-loaded scripts require -+bash-completion >= 1.99. -+ -+Tip: To test the bash completions without having to install them, -+simply start a new shell and do: -+ -+ source ./bash/nbdkit; PATH=$PWD:$PATH -diff --git a/bash/nbdkit b/bash/nbdkit -new file mode 100644 -index 0000000..3db531d ---- /dev/null -+++ b/bash/nbdkit -@@ -0,0 +1,113 @@ -+# nbdkit bash completion script -*- shell-script -*- -+# Copyright (C) 2010-2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+_nbdkit_list_plugins () -+{ -+ local plugindir -+ plugindir="$( -+ nbdkit --dump-config | grep ^plugindir= | sed 's/^plugindir=//' -+ )" -+ ls -1 "$plugindir" | sed 's/^nbdkit-//' | sed 's/-plugin.*//' -+} -+ -+_nbdkit_list_filters () -+{ -+ local filterdir -+ filterdir="$( -+ nbdkit --dump-config | grep ^filterdir= | sed 's/^filterdir=//' -+ )" -+ ls -1 "$filterdir" | sed 's/^nbdkit-//' | sed 's/-filter.*//' -+} -+ -+# This handler function is called when the user presses tab. -+_nbdkit () -+{ -+ local cur prev words cword split -+ local shortopts longopts plugin plugins filters args i -+ -+ _init_completion -s || return -+ -+ # Did we get the plugin name yet? -+ # This is only a heuristic because it can be confused by -+ # long opt parameters with an arguments. XXX -+ plugin= -+ for (( i=1; i < ${#words[@]}; ++i)) ; do -+ if [[ "${words[i]}" =~ ^[a-zA-Z0-9]+$ ]]; then -+ plugin="${words[i]}" -+ break -+ fi -+ done -+ -+ # Previous item on the current line is a completable flag or plugin name? -+ case "$prev" in -+ --filter) -+ filters="$(_nbdkit_list_filters)" -+ COMPREPLY=( $(compgen -W "$filters" "$cur") ) -+ return ;; -+ --tls) -+ COMPREPLY=( $(compgen -W "off on require" "$cur") ) -+ return ;; -+ # Could complete -u and -g options too. XXX -+ esac -+ -+ # Current item is an option we can expand? -+ case "$cur" in -+ --*) -+ longopts="$(nbdkit --long-options)" -+ COMPREPLY=( $(compgen -W "$longopts" -- "$cur") ) -+ return ;; -+ -*) -+ shortopts="$(nbdkit --short-options)" -+ longopts="$(nbdkit --long-options)" -+ COMPREPLY=( $(compgen -W "$shortopts $longopts" -- "$cur") ) -+ return ;; -+ *) -+ if [ "$plugin" = "" ]; then -+ # Complete plugin name. -+ plugins="$(_nbdkit_list_plugins)" -+ COMPREPLY=( $(compgen -W "$plugins" "$cur") ) -+ return -+ else -+ # Complete plugin args. -+ args="$( -+ nbdkit $plugin --help 2>/dev/null | -+ grep -E '^[a-z0-9]+=' | sed 's/=.*/=/' -+ )" -+ COMPREPLY=( $(compgen -W "$args" "$cur") ) -+ return -+ fi -+ ;; -+ esac -+} -+ -+# Install the handler function. -+complete -o default -F _nbdkit nbdkit -diff --git a/configure.ac b/configure.ac -index 0ef9673..abf7048 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -164,6 +164,20 @@ AS_IF([test "$GNUTLS_LIBS" != ""],[ - dnl Check for valgrind. - AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) - -+dnl Bash completion. -+PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ -+ bash_completion=yes -+ AC_MSG_CHECKING([for bash-completions directory]) -+ PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], , -+ bashcompdir="${sysconfdir}/bash_completion.d") -+ AC_MSG_RESULT([$bashcompdir]) -+ AC_SUBST([bashcompdir]) -+],[ -+ bash_completion=no -+ AC_MSG_WARN([bash-completion not installed]) -+]) -+AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) -+ - dnl Check for Perl POD. - AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) - AS_IF([test "x$POD2MAN" != "xno"],[ -@@ -526,6 +540,7 @@ AC_CONFIG_HEADERS([config.h]) - AC_CONFIG_FILES([nbdkit], - [chmod +x,-w nbdkit]) - AC_CONFIG_FILES([Makefile -+ bash/Makefile - docs/Makefile - include/Makefile - plugins/Makefile -diff --git a/src/main.c b/src/main.c -index d2e5674..660d036 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -126,6 +126,7 @@ static const struct option long_options[] = { - { "group", 1, NULL, 'g' }, - { "ip-addr", 1, NULL, 'i' }, - { "ipaddr", 1, NULL, 'i' }, -+ { "long-options", 0, NULL, 0 }, - { "new-style", 0, NULL, 'n' }, - { "newstyle", 0, NULL, 'n' }, - { "old-style", 0, NULL, 'o' }, -@@ -137,6 +138,7 @@ static const struct option long_options[] = { - { "readonly", 0, NULL, 'r' }, - { "run", 1, NULL, 0 }, - { "selinux-label", 1, NULL, 0 }, -+ { "short-options", 0, NULL, 0 }, - { "single", 0, NULL, 's' }, - { "stdin", 0, NULL, 's' }, - { "threads", 1, NULL, 't' }, -@@ -263,6 +265,14 @@ main (int argc, char *argv[]) - t->filename = optarg; - filter_filenames = t; - } -+ else if (strcmp (long_options[option_index].name, "long-options") == 0) { -+ for (i = 0; long_options[i].name != NULL; ++i) { -+ if (strcmp (long_options[i].name, "long-options") != 0 && -+ strcmp (long_options[i].name, "short-options") != 0) -+ printf ("--%s\n", long_options[i].name); -+ } -+ exit (EXIT_SUCCESS); -+ } - else if (strcmp (long_options[option_index].name, "run") == 0) { - if (socket_activation) { - fprintf (stderr, "%s: cannot use socket activation with --run flag\n", -@@ -276,6 +286,13 @@ main (int argc, char *argv[]) - selinux_label = optarg; - break; - } -+ else if (strcmp (long_options[option_index].name, "short-options") == 0) { -+ for (i = 0; short_options[i]; ++i) { -+ if (short_options[i] != ':') -+ printf ("-%c\n", short_options[i]); -+ } -+ exit (EXIT_SUCCESS); -+ } - else if (strcmp (long_options[option_index].name, "tls") == 0) { - tls_set_on_cli = 1; - if (strcmp (optarg, "off") == 0 || strcmp (optarg, "0") == 0) --- -2.16.2 - diff --git a/nbdkit.spec b/nbdkit.spec index df7fe27..2b32649 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,7 +20,7 @@ %global verify_tarball_signature 1 Name: nbdkit -Version: 1.3.2 +Version: 1.3.3 Release: 1%{?dist} Summary: NBD server @@ -34,12 +34,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz. Source2: libguestfs.keyring %endif -# Upstream patch to fix tests. Touches autotools files so we -# need autotools temporarily. -Patch1: 0001-tests-If-guestfish-isn-t-available-disk-is-not-creat.patch -Patch2: 0002-Add-simple-bash-completion-script.patch -BuildRequires: autoconf, automake, libtool - %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -146,6 +140,10 @@ trivial dependencies. A null (bitbucket) plugin. +* nbdkit-random-plugin + + Random content plugin for testing. + * nbdkit-split-plugin Concatenate one or more files into a single virtual disk. @@ -154,6 +152,10 @@ trivial dependencies. A streaming file serving plugin. +* nbdkit-zero-plugin + + Zero-length plugin for testing. + %package example-plugins Summary: Example plugins for %{name} @@ -430,8 +432,6 @@ gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif %setup -q %autopatch -p1 -# Temporarily while patches touch autotools files. -autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. @@ -545,14 +545,18 @@ popd %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* +%{_mandir}/man1/nbdkit-zero-plugin.1* %files example-plugins @@ -705,6 +709,11 @@ popd %changelog +* Mon Jul 11 2018 Richard W.M. Jones - 1.3.3-1 +- New upstream version 1.3.3. +- New plugins: nbdkit-zero-plugin, nbdkit-random-plugin. +- Remove upstream patches. + * Sat Jun 9 2018 Richard W.M. Jones - 1.3.2-2 - New upstream version 1.3.2. - Remove patches now upstream. diff --git a/sources b/sources index e3e8154..e23c798 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.3.2.tar.gz) = 03db669bef2fde2714ac5b7143bd1e81517f175dac9913e116d8207dd7fe4aba187478d8b2506cfe296672e89229a530e045f4f50118aa59e03e629939f9d68b -SHA512 (nbdkit-1.3.2.tar.gz.sig) = 2d96e4e48e07ae530e6e62cc759adfb49f3daf8732c5b67a4ae26c2f6d99d2179716310dee764cb3a1fbc91d95d279e7c417ba1b3871ac96a0ab4d3fbf8c4697 +SHA512 (nbdkit-1.3.3.tar.gz) = 6a721093baa860adecf07355fe152c7ae1d06e9d73e9e3408bb83c1a50c6b903b89dc87b21853e38928f50076873a72e3d36c11cb1bb94abaad99233c6c6709e +SHA512 (nbdkit-1.3.3.tar.gz.sig) = d66763ddf1fbe511bf7c544ab04db9485c757e89faa2355120af7ce67099d9f5e009954fc26c510a17cacc8608050fcb4490019ee89af43cd841e94d74252f63 From a14cb3b016332ff40cdcd55809282c502bae89dd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 11 Jun 2018 20:12:13 +0100 Subject: [PATCH 090/683] Revert "nbdkit-plugin-tar should be noarch." Because the plugins directory is archful (%{_libdir}) it is not in fact a noarch package. This reverts commit f192c6da9057eeccc6b01710c0e71099ffb352fc and partially reverts commit 9df870792f4c29597cc99f3a3dd3048c61ee04c5. --- nbdkit.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2b32649..276267a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -331,9 +331,8 @@ This package lets you write Ruby plugins for %{name}. %package plugin-tar Summary: Tar archive plugin for %{name} License: BSD -BuildArch: noarch -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description plugin-tar From e75b67457ab7a061f5507dc4513d7c80f87ecab0 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 12 Jun 2018 09:59:12 +0200 Subject: [PATCH 091/683] Fix bogus date in changelog --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 276267a..d5ad7bc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -708,7 +708,7 @@ popd %changelog -* Mon Jul 11 2018 Richard W.M. Jones - 1.3.3-1 +* Mon Jun 11 2018 Richard W.M. Jones - 1.3.3-1 - New upstream version 1.3.3. - New plugins: nbdkit-zero-plugin, nbdkit-random-plugin. - Remove upstream patches. From 3d5206894f12b8b3b6df832ec927ca482295929c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 14 Jun 2018 13:45:36 +0100 Subject: [PATCH 092/683] Fix use of autosetup / autopatch macros. See: http://rpm.org/user_doc/autosetup.html --- nbdkit.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d5ad7bc..ac1edde 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -429,8 +429,7 @@ for %{name}. tmphome="$(mktemp -d)" gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif -%setup -q -%autopatch -p1 +%autosetup -p1 %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. From 6dc0b1b3f77a1b172a56953fa6269bb9d3e8873d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 19 Jun 2018 10:48:18 +0200 Subject: [PATCH 093/683] Rebuilt for Python 3.7 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index ac1edde..395ecbf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.3.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -707,6 +707,9 @@ popd %changelog +* Tue Jun 19 2018 Miro Hrončok - 1.3.3-2 +- Rebuilt for Python 3.7 + * Mon Jun 11 2018 Richard W.M. Jones - 1.3.3-1 - New upstream version 1.3.3. - New plugins: nbdkit-zero-plugin, nbdkit-random-plugin. From ae3f35d3975405652755aa817735926699f0ede8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 23 Jun 2018 15:15:19 +0100 Subject: [PATCH 094/683] New upstream version 1.3.4. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 395ecbf..210a2fc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,8 +20,8 @@ %global verify_tarball_signature 1 Name: nbdkit -Version: 1.3.3 -Release: 2%{?dist} +Version: 1.3.4 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -707,6 +707,9 @@ popd %changelog +* Sat Jun 23 2018 Richard W.M. Jones - 1.3.4-1 +- New upstream version 1.3.4. + * Tue Jun 19 2018 Miro Hrončok - 1.3.3-2 - Rebuilt for Python 3.7 diff --git a/sources b/sources index e23c798..f9d1725 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.3.3.tar.gz) = 6a721093baa860adecf07355fe152c7ae1d06e9d73e9e3408bb83c1a50c6b903b89dc87b21853e38928f50076873a72e3d36c11cb1bb94abaad99233c6c6709e -SHA512 (nbdkit-1.3.3.tar.gz.sig) = d66763ddf1fbe511bf7c544ab04db9485c757e89faa2355120af7ce67099d9f5e009954fc26c510a17cacc8608050fcb4490019ee89af43cd841e94d74252f63 +SHA512 (nbdkit-1.3.4.tar.gz) = ba9a91511b79f50a190b8857ca8fd37f9d663d41ff0defb6c67b9e1c2511d17e3aa5a8b5643b633698a3f22f984e276ab9cf3c098a79a84634d3166891147b75 +SHA512 (nbdkit-1.3.4.tar.gz.sig) = 26146aafc31f068ed9759e0e74d4317dc5ee4be6653c04dd6f7dbcd80808831782debeffffc065b570b9fa9a53125f811ccf47ccfca6d5a84653d0b356f56aae From 3c237f554a117acb96328ab88f742fea2ee825e5 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Wed, 27 Jun 2018 20:21:50 +0200 Subject: [PATCH 095/683] Perl 5.28 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 210a2fc..56ceec7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.3.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -707,6 +707,9 @@ popd %changelog +* Wed Jun 27 2018 Jitka Plesnikova - 1.3.4-2 +- Perl 5.28 rebuild + * Sat Jun 23 2018 Richard W.M. Jones - 1.3.4-1 - New upstream version 1.3.4. From 64dbc2987484ce845ac868bedb1d68ed460c47ba Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 1 Jul 2018 16:35:07 +0100 Subject: [PATCH 096/683] Add generic patches_touch_autotools mechanism for running autoreconf. --- nbdkit.spec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 56ceec7..6302323 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,6 +34,11 @@ Source1: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz. Source2: libguestfs.keyring %endif +%global patches_touch_autotools 0 +%if 0%{patches_touch_autotools} +BuildRequires: autoconf, automake, libtool +%endif + %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -430,6 +435,9 @@ tmphome="$(mktemp -d)" gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif %autosetup -p1 +%if 0%{patches_touch_autotools} +autoreconf -i +%endif %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. From e2f1ec40a6557ae82a074c6997757c7587cca911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 2 Jul 2018 18:22:44 +0200 Subject: [PATCH 097/683] Rebuilt for Python 3.7 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6302323..65e0e56 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.3.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -715,6 +715,9 @@ popd %changelog +* Mon Jul 02 2018 Miro Hrončok - 1.3.4-3 +- Rebuilt for Python 3.7 + * Wed Jun 27 2018 Jitka Plesnikova - 1.3.4-2 - Perl 5.28 rebuild From d63e60347a77b0c86031d632bfeafff1fc8b28ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 3 Jul 2018 12:39:08 +0200 Subject: [PATCH 098/683] Perl 5.28 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 65e0e56..5c841f4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.3.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -715,6 +715,9 @@ popd %changelog +* Tue Jul 03 2018 Petr Pisar - 1.3.4-4 +- Perl 5.28 rebuild + * Mon Jul 02 2018 Miro Hrončok - 1.3.4-3 - Rebuilt for Python 3.7 From b39011cce0aab050e73ac1da28a6e850dc1a52d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Jul 2018 10:45:32 +0100 Subject: [PATCH 099/683] New upstream version 1.4.0. Add nbdkit-plugin-tcl subpackage. +BR python-unversioned-command --- nbdkit.spec | 35 ++++++++++++++++++++++++++++++----- sources | 4 ++-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5c841f4..e17bf77 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,8 +20,8 @@ %global verify_tarball_signature 1 Name: nbdkit -Version: 1.3.4 -Release: 4%{?dist} +Version: 1.4.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -64,7 +64,7 @@ BuildRequires: e2fsprogs-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -BuildRequires: python2-devel +BuildRequires: python2-devel, python-unversioned-command %if 0%{?have_python3} BuildRequires: python3-devel %endif @@ -74,8 +74,9 @@ BuildRequires: python3-devel BuildRequires: ocaml >= 4.02.2 %endif BuildRequires: ruby-devel +BuildRequires: tcl-devel %if 0%{verify_tarball_signature} -BuildRequires: gnupg2 +BuildRequires: gnupg2 %endif # Only for running the test suite: @@ -344,6 +345,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package is a tar archive plugin for %{name}. +%package plugin-tcl +Summary: Tcl plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-tcl +This package lets you write Tcl plugins for %{name}. + + %package plugin-xz Summary: XZ file serving plugin for %{name} License: BSD @@ -464,7 +476,7 @@ make %{?_smp_mflags} %if 0%{?have_python3} pushd python3 export PYTHON=%{_bindir}/python3 -%configure --disable-static --disable-perl --disable-ocaml --disable-ruby +%configure --disable-static --disable-perl --disable-ocaml --disable-ruby --disable-tcl # Verify that it picked the correct version of Python # to avoid RHBZ#1404631 happening again silently. grep '^PYTHON_VERSION = 3' Makefile @@ -661,6 +673,13 @@ popd %{_mandir}/man1/nbdkit-tar-plugin.1* +%files plugin-tcl +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so +%{_mandir}/man3/nbdkit-tcl-plugin.3* + + %files plugin-xz %doc README %license LICENSE @@ -700,6 +719,7 @@ popd %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb +%doc plugins/tcl/example.tcl %{_includedir}/nbdkit-common.h %{_includedir}/nbdkit-filter.h %{_includedir}/nbdkit-plugin.h @@ -715,6 +735,11 @@ popd %changelog +* Fri Jul 6 2018 Richard W.M. Jones - 1.4.0-1 +- New upstream version 1.4.0. +- Add nbdkit-plugin-tcl subpackage. +- +BR python-unversioned-command + * Tue Jul 03 2018 Petr Pisar - 1.3.4-4 - Perl 5.28 rebuild diff --git a/sources b/sources index f9d1725..eda5482 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.3.4.tar.gz) = ba9a91511b79f50a190b8857ca8fd37f9d663d41ff0defb6c67b9e1c2511d17e3aa5a8b5643b633698a3f22f984e276ab9cf3c098a79a84634d3166891147b75 -SHA512 (nbdkit-1.3.4.tar.gz.sig) = 26146aafc31f068ed9759e0e74d4317dc5ee4be6653c04dd6f7dbcd80808831782debeffffc065b570b9fa9a53125f811ccf47ccfca6d5a84653d0b356f56aae +SHA512 (nbdkit-1.4.0.tar.gz) = c9503f074ef767c0d75d9869d2374763494b13a9ce27a0b9d48fe83b6975bd4e81662d967fd20e2212a05621c7899cc40c4056985bb82c1efb9b50fb94b2d168 +SHA512 (nbdkit-1.4.0.tar.gz.sig) = bcd2a7d6e2fa45d93d3b2eec9ab15c52ed1ef1a3aaa5dd7beb1ca3ad52d9621826457ef1513c6166d6173282da42a04b73a1384d32ce0c66398ecac90d39b98a From 9bbeddb9f52bb13f5e1d8ad8fb76411cd1cb5a29 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Jul 2018 12:37:42 +0100 Subject: [PATCH 100/683] Add workaround for broken libvirt (RHBZ#1598440). --- nbdkit.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index e17bf77..ce032b8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -518,6 +518,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt +# Workaround for broken libvirt (RHBZ#1598440). +export LIBGUESTFS_BACKEND=direct + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From f07a27aa88fe39b7680a01b47ddaf7186ffc7876 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Jul 2018 12:47:00 +0100 Subject: [PATCH 101/683] Reorder basic-filters %description alphabetically. --- nbdkit.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ce032b8..b5c1464 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -402,14 +402,14 @@ trivial dependencies. Log all transactions to a file. -* nbdkit-offset-filter - - Serve an offset and range. - * nbdkit-nozero-filter Adjust handling of zero requests by plugins. +* nbdkit-offset-filter + + Serve an offset and range. + * nbdkit-partition-filter Serve a single partition. From 934ad2c5e3c0fa566457319cd808d54a9b25e21c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Jul 2018 12:48:27 +0100 Subject: [PATCH 102/683] Fix Source URLs. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b5c1464..307515f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,9 +27,9 @@ Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit -Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz +Source0: http://libguestfs.org/download/nbdkit/1.4-stable/%{name}-%{version}.tar.gz %if 0%{verify_tarball_signature} -Source1: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz.sig +Source1: http://libguestfs.org/download/nbdkit/1.4-stable/%{name}-%{version}.tar.gz.sig # Keyring used to verify tarball signature. Source2: libguestfs.keyring %endif From 5f25a71ea3aced6d4c0c21d34275ddc117c39b33 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 6 Jul 2018 15:07:04 +0100 Subject: [PATCH 103/683] Revert "Add workaround for broken libvirt (RHBZ#1598440)." Fixed upstream by libvirt-4.5.0-2.fc29. This reverts commit 9bbeddb9f52bb13f5e1d8ad8fb76411cd1cb5a29. --- nbdkit.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 307515f..dfeb9c8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -518,9 +518,6 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt -# Workaround for broken libvirt (RHBZ#1598440). -export LIBGUESTFS_BACKEND=direct - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From a7ff5bd624043ec5f34d5b90f7e1999fd996ee69 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 7 Jul 2018 07:28:53 +0100 Subject: [PATCH 104/683] New upstream version 1.5.0. Add Lua plugin and nbdkit-plugin-lua subpackage. --- nbdkit.spec | 32 ++++++++++++++++++++++++++++---- sources | 4 ++-- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dfeb9c8..26e5d45 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,16 +20,16 @@ %global verify_tarball_signature 1 Name: nbdkit -Version: 1.4.0 +Version: 1.5.0 Release: 1%{?dist} Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit -Source0: http://libguestfs.org/download/nbdkit/1.4-stable/%{name}-%{version}.tar.gz +Source0: http://libguestfs.org/download/nbdkit/1.5-development/%{name}-%{version}.tar.gz %if 0%{verify_tarball_signature} -Source1: http://libguestfs.org/download/nbdkit/1.4-stable/%{name}-%{version}.tar.gz.sig +Source1: http://libguestfs.org/download/nbdkit/1.5-development/%{name}-%{version}.tar.gz.sig # Keyring used to verify tarball signature. Source2: libguestfs.keyring %endif @@ -75,6 +75,7 @@ BuildRequires: ocaml >= 4.02.2 %endif BuildRequires: ruby-devel BuildRequires: tcl-devel +BuildRequires: lua-devel %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif @@ -240,6 +241,17 @@ libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. +%package plugin-lua +Summary: Lua plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-lua +This package lets you write Lua plugins for %{name}. + + %ifarch %{ocaml_native_compiler} %package plugin-ocaml Summary: OCaml plugin for %{name} @@ -476,7 +488,7 @@ make %{?_smp_mflags} %if 0%{?have_python3} pushd python3 export PYTHON=%{_bindir}/python3 -%configure --disable-static --disable-perl --disable-ocaml --disable-ruby --disable-tcl +%configure --disable-static --disable-lua --disable-perl --disable-ocaml --disable-ruby --disable-tcl # Verify that it picked the correct version of Python # to avoid RHBZ#1404631 happening again silently. grep '^PYTHON_VERSION = 3' Makefile @@ -622,6 +634,13 @@ popd %{_mandir}/man1/nbdkit-libvirt-plugin.1* +%files plugin-lua +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so +%{_mandir}/man3/nbdkit-lua-plugin.3* + + %ifarch %{ocaml_native_compiler} %files plugin-ocaml %doc README @@ -716,6 +735,7 @@ popd # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c %doc plugins/example4/nbdkit-example4-plugin +%doc plugins/lua/example.lua %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb @@ -735,6 +755,10 @@ popd %changelog +* Sat Jul 7 2018 Richard W.M. Jones - 1.5.0-1 +- New upstream version 1.5.0. +- Add Lua plugin and nbdkit-plugin-lua subpackage. + * Fri Jul 6 2018 Richard W.M. Jones - 1.4.0-1 - New upstream version 1.4.0. - Add nbdkit-plugin-tcl subpackage. diff --git a/sources b/sources index eda5482..df0e689 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.4.0.tar.gz) = c9503f074ef767c0d75d9869d2374763494b13a9ce27a0b9d48fe83b6975bd4e81662d967fd20e2212a05621c7899cc40c4056985bb82c1efb9b50fb94b2d168 -SHA512 (nbdkit-1.4.0.tar.gz.sig) = bcd2a7d6e2fa45d93d3b2eec9ab15c52ed1ef1a3aaa5dd7beb1ca3ad52d9621826457ef1513c6166d6173282da42a04b73a1384d32ce0c66398ecac90d39b98a +SHA512 (nbdkit-1.5.0.tar.gz) = a3fa45d3d01137eb641f724a3d4ddcd85bc42bbf3776a1494cd91e25a9122b188943d0cb3f0ac65b1cd27faf7c540eed71e5a70421548d133b769f85dbb6bb59 +SHA512 (nbdkit-1.5.0.tar.gz.sig) = 82b811053d69290d82a2804d67ceb3af8c18ba670d83aa4a9ac224a29e1f030bccad7d827af8de03ffab3fd5daa5e1a6344f6702b33ca8ed5ab5e0d6f0b01221 From bdb7df6fd9bb67e935b84012b611cb397b3db746 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 7 Jul 2018 07:31:15 +0100 Subject: [PATCH 105/683] Make python-unversioned-command dependent on Fedora >= 29. --- nbdkit.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 26e5d45..0147fc4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -64,7 +64,10 @@ BuildRequires: e2fsprogs-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -BuildRequires: python2-devel, python-unversioned-command +BuildRequires: python2-devel +%if 0%{?fedora} >= 29 +BuildRequires: python-unversioned-command +%endif %if 0%{?have_python3} BuildRequires: python3-devel %endif @@ -758,6 +761,7 @@ popd * Sat Jul 7 2018 Richard W.M. Jones - 1.5.0-1 - New upstream version 1.5.0. - Add Lua plugin and nbdkit-plugin-lua subpackage. +- Make python-unversioned-command dependent on Fedora >= 29. * Fri Jul 6 2018 Richard W.M. Jones - 1.4.0-1 - New upstream version 1.4.0. From 7d9af9b55fec126245aa9bec68dbc0d66f36e5be Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 11:24:41 +0000 Subject: [PATCH 106/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0147fc4..b7ef724 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.5.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -758,6 +758,9 @@ popd %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 1.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Sat Jul 7 2018 Richard W.M. Jones - 1.5.0-1 - New upstream version 1.5.0. - Add Lua plugin and nbdkit-plugin-lua subpackage. From e84c5f9b8203d63e2082654b39e0e972aaf4c378 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 15 Jul 2018 16:33:25 +0100 Subject: [PATCH 107/683] Add all upstream patches since 1.5.0. New pattern plugin. --- ...-bash-Don-t-define-bashcompdir-twice.patch | 24 + ...s-to-improve-the-flow-of-the-man-pag.patch | 60 + ...ng-Add-illustrations-to-the-man-page.patch | 56 + ...ua-into-alphabetical-order-in-the-li.patch | 28 + 0005-Add-pattern-plugin.patch | 548 +++ ...d-a-second-test-of-the-offset-filter.patch | 166 + ...ts-Test-largest-possible-plugin-size.patch | 169 + ...x-broken-cross-reference-in-man-page.patch | 25 + ...ome-over-long-lines-in-documentation.patch | 103 + ...-docs-Add-podwrapper-from-libguestfs.patch | 3976 +++++++++++++++++ nbdkit.spec | 25 +- 11 files changed, 5178 insertions(+), 2 deletions(-) create mode 100644 0001-bash-Don-t-define-bashcompdir-twice.patch create mode 100644 0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch create mode 100644 0003-streaming-Add-illustrations-to-the-man-page.patch create mode 100644 0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch create mode 100644 0005-Add-pattern-plugin.patch create mode 100644 0006-tests-Add-a-second-test-of-the-offset-filter.patch create mode 100644 0007-tests-Test-largest-possible-plugin-size.patch create mode 100644 0008-docs-Fix-broken-cross-reference-in-man-page.patch create mode 100644 0009-docs-Break-up-some-over-long-lines-in-documentation.patch create mode 100644 0010-docs-Add-podwrapper-from-libguestfs.patch diff --git a/0001-bash-Don-t-define-bashcompdir-twice.patch b/0001-bash-Don-t-define-bashcompdir-twice.patch new file mode 100644 index 0000000..00fd704 --- /dev/null +++ b/0001-bash-Don-t-define-bashcompdir-twice.patch @@ -0,0 +1,24 @@ +From ef13e7db5d9d8e5ff6977821c3e798bb6c7725d9 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 10 Jul 2018 10:28:44 +0100 +Subject: [PATCH 01/10] bash: Don't define bashcompdir twice. + +--- + bash/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/bash/Makefile.am b/bash/Makefile.am +index f38b7a1..e46784c 100644 +--- a/bash/Makefile.am ++++ b/bash/Makefile.am +@@ -36,7 +36,6 @@ EXTRA_DIST = README + + if HAVE_BASH_COMPLETION + +-bashcompdir = @bashcompdir@ + dist_bashcomp_DATA = nbdkit + + endif +-- +2.17.1 + diff --git a/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch b/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch new file mode 100644 index 0000000..ee26f6e --- /dev/null +++ b/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch @@ -0,0 +1,60 @@ +From 9fb8c7b550cddb6504386a8776e0abaeac4c1f20 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 14 Jul 2018 21:25:13 +0100 +Subject: [PATCH 02/10] xz: Minor rewrites to improve the flow of the man page. + +--- + plugins/xz/nbdkit-xz-plugin.pod | 26 ++++++++++++++------------ + 1 file changed, 14 insertions(+), 12 deletions(-) + +diff --git a/plugins/xz/nbdkit-xz-plugin.pod b/plugins/xz/nbdkit-xz-plugin.pod +index 75cb881..7d8332a 100644 +--- a/plugins/xz/nbdkit-xz-plugin.pod ++++ b/plugins/xz/nbdkit-xz-plugin.pod +@@ -24,29 +24,31 @@ find out how many streams and blocks are in an xz file by doing: + $ xz --list winxp.img.xz + Strms Blocks Compressed Uncompressed Ratio Check Filename + 1 1 2,100.0 MiB 6,144.0 MiB 0.342 CRC64 winxp.img.xz +- ============= ++ ↑↑↑ ↑↑↑ ++ streams blocks + + xz files are seekable on block boundaries only. Seeking is done by +-seeking directly to the lower block boundary, then (slowly) +-uncompressing data until the precise byte is reached. +- +-B + +-To do this, use the I<--block-size> option with a small-ish block +-size. For example the same image as above compressed with a 16 MB +-block size: ++Use the I<--block-size> option with a small-ish block size. For ++example this is the same image compressed with a 16 MB block size: + + $ xz --best --block-size=16777216 winxp.img ++ ───────────────────── + $ xz --list winxp.img.xz + Strms Blocks Compressed Uncompressed Ratio Check Filename + 1 384 2,120.1 MiB 6,144.0 MiB 0.345 CRC64 winxp.img.xz ++ ↑↑↑ ++ blocks + +-This file can be accessed randomly, and at most 16 MB of compressed +-data will have to be uncompressed to seek to any byte. ++This file can be accessed randomly. At most 16 MB will have to be ++uncompressed to seek to any byte. + +-Note as you would expect, xz cannot compress quite as efficiently when +-using a small block size. The space penalty in the above example is ++As you would expect, xz cannot compress as efficiently when using a ++smaller block size. The space penalty in the above example is + S 1%> of the compressed file size. + + =head1 PARAMETERS +-- +2.17.1 + diff --git a/0003-streaming-Add-illustrations-to-the-man-page.patch b/0003-streaming-Add-illustrations-to-the-man-page.patch new file mode 100644 index 0000000..0f8d30d --- /dev/null +++ b/0003-streaming-Add-illustrations-to-the-man-page.patch @@ -0,0 +1,56 @@ +From 166be40fa335649caf2615b384cc006d92bc5170 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 11:14:49 +0100 +Subject: [PATCH 03/10] streaming: Add illustrations to the man page. + +Also improve the flow of the language and provide cross-reference to +captive nbdkit. +--- + plugins/streaming/nbdkit-streaming-plugin.pod | 25 ++++++++++++++++--- + 1 file changed, 21 insertions(+), 4 deletions(-) + +diff --git a/plugins/streaming/nbdkit-streaming-plugin.pod b/plugins/streaming/nbdkit-streaming-plugin.pod +index a4a9714..98e8337 100644 +--- a/plugins/streaming/nbdkit-streaming-plugin.pod ++++ b/plugins/streaming/nbdkit-streaming-plugin.pod +@@ -18,16 +18,33 @@ end of the disk without seeking backwards, then this plugin will turn + the resulting disk image into a stream of data which is written to the + named C parameter. + +-Typical usage is with qemu tools. For example: ++ ┌───────────┐ ++ client │ nbdkit │ plugin streams ++ writes ──────▶│ streaming │──────▶ data to pipe ++ │ plugin │ ++ └───────────┘ + +- qemu-img convert input -O raw output ++Typical usage is with qemu tools. The following command will I ++work because the output is a pipe or socket: + +-does I work if C is a pipe. However this does: ++ qemu-img convert input -O raw pipe + +- nbdkit -U /tmp/nbd.sock streaming pipe=output --run ' ++However this will work: ++ ++ nbdkit -U - streaming pipe=pipe --run ' + qemu-img convert -n input -O raw $nbd + ' + ++ ┌───────────┐ ┌───────────┐ ++ reads │ qemu-img │ │ nbdkit │ plugin streams ++ input ──────▶│ convert │──────▶│ streaming │──────▶ data to pipe ++ file │ command │ │ plugin │ ++ └───────────┘ ↑└───────────┘ ++ Unix domain socket (-U -) ++ ++For use of the I<--run> and I<-U -> options, see ++L. ++ + =head1 PARAMETERS + + =over 4 +-- +2.17.1 + diff --git a/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch b/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch new file mode 100644 index 0000000..7a43b0a --- /dev/null +++ b/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch @@ -0,0 +1,28 @@ +From bc3b8c27b40165af6d7dcca15dfae98cbf7566e8 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 11:51:39 +0100 +Subject: [PATCH 04/10] tests: Put test.lua into alphabetical order in the + list. + +Fixes commit ff2b304e9c5ddef01081b9aef113bf0cf6dfabac. +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 58d24fc..5f21e75 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -57,8 +57,8 @@ EXTRA_DIST = \ + test-help-plugin.sh \ + test-ip.sh \ + test-log.sh \ +- test-nozero.sh \ + test.lua \ ++ test-nozero.sh \ + test_ocaml_plugin.ml \ + test-ocaml.c \ + test-parallel-file.sh \ +-- +2.17.1 + diff --git a/0005-Add-pattern-plugin.patch b/0005-Add-pattern-plugin.patch new file mode 100644 index 0000000..22fff7c --- /dev/null +++ b/0005-Add-pattern-plugin.patch @@ -0,0 +1,548 @@ +From 0a9205dc8c3b5d5703bd71bc58db503c05b0063b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 7 Jul 2018 13:30:32 +0100 +Subject: [PATCH 05/10] Add pattern plugin. + +This generates a simple, fixed test pattern which can be used to test +nbdkit filters (especially nbdkit-offset-filter), and also NBD +clients. +--- + common-rules.mk | 1 + + configure.ac | 1 + + plugins/null/nbdkit-null-plugin.pod | 1 + + plugins/pattern/Makefile.am | 60 ++++++++++ + plugins/pattern/nbdkit-pattern-plugin.pod | 99 ++++++++++++++++ + plugins/pattern/pattern.c | 134 ++++++++++++++++++++++ + plugins/random/nbdkit-random-plugin.pod | 1 + + plugins/zero/nbdkit-zero-plugin.pod | 1 + + tests/Makefile.am | 4 + + tests/test-pattern.sh | 121 +++++++++++++++++++ + 10 files changed, 423 insertions(+) + create mode 100644 plugins/pattern/Makefile.am + create mode 100644 plugins/pattern/nbdkit-pattern-plugin.pod + create mode 100644 plugins/pattern/pattern.c + create mode 100755 tests/test-pattern.sh + +diff --git a/common-rules.mk b/common-rules.mk +index 5877907..01beff5 100644 +--- a/common-rules.mk ++++ b/common-rules.mk +@@ -46,6 +46,7 @@ plugins = \ + nbd \ + null \ + ocaml \ ++ pattern \ + perl \ + python \ + random \ +diff --git a/configure.ac b/configure.ac +index 6e8d3e2..6304ac8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -610,6 +610,7 @@ AC_CONFIG_FILES([Makefile + plugins/nbd/Makefile + plugins/null/Makefile + plugins/ocaml/Makefile ++ plugins/pattern/Makefile + plugins/perl/Makefile + plugins/python/Makefile + plugins/random/Makefile +diff --git a/plugins/null/nbdkit-null-plugin.pod b/plugins/null/nbdkit-null-plugin.pod +index 7bd7278..55affb8 100644 +--- a/plugins/null/nbdkit-null-plugin.pod ++++ b/plugins/null/nbdkit-null-plugin.pod +@@ -33,6 +33,7 @@ This parameter is required. + + L, + L, ++L, + L. + L. + +diff --git a/plugins/pattern/Makefile.am b/plugins/pattern/Makefile.am +new file mode 100644 +index 0000000..da092db +--- /dev/null ++++ b/plugins/pattern/Makefile.am +@@ -0,0 +1,60 @@ ++# nbdkit ++# Copyright (C) 2017-2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++include $(top_srcdir)/common-rules.mk ++ ++EXTRA_DIST = nbdkit-pattern-plugin.pod ++ ++plugin_LTLIBRARIES = nbdkit-pattern-plugin.la ++ ++nbdkit_pattern_plugin_la_SOURCES = \ ++ pattern.c \ ++ $(top_srcdir)/include/nbdkit-plugin.h ++ ++nbdkit_pattern_plugin_la_CPPFLAGS = \ ++ -I$(top_srcdir)/include ++nbdkit_pattern_plugin_la_CFLAGS = \ ++ $(WARNINGS_CFLAGS) ++nbdkit_pattern_plugin_la_LDFLAGS = \ ++ -module -avoid-version -shared ++ ++if HAVE_POD2MAN ++ ++man_MANS = nbdkit-pattern-plugin.1 ++CLEANFILES += $(man_MANS) ++ ++nbdkit-pattern-plugin.1: nbdkit-pattern-plugin.pod ++ $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ ++ if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ ++ mv $@.t $@ ++ ++endif +diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod +new file mode 100644 +index 0000000..7a6b498 +--- /dev/null ++++ b/plugins/pattern/nbdkit-pattern-plugin.pod +@@ -0,0 +1,99 @@ ++=encoding utf8 ++ ++=head1 NAME ++ ++nbdkit-pattern-plugin - plugin to serve a fixed pattern of data for testing ++ ++=head1 SYNOPSIS ++ ++ nbdkit pattern size=SIZE ++ ++=head1 DESCRIPTION ++ ++C is a plugin for L which serves a ++fixed pattern of data, read only. This is used for testing nbdkit ++filters and NBD clients. ++ ++The fixed pattern is the offset, as a 64 bit big endian integer, every ++8 bytes. In hexadecimal this looks like: ++ ++ offset data ++ 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ++ 0010: 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 18 ++ 0020: 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 28 ++ └──────────┬──────────┘ ++ 64 bit big endian int which encodes the offset of ++ the first byte of this int in the file ++ ++The size of the virtual disk must be specified using the C ++parameter. If the size is not a multiple of 8 then the last 8 byte ++offset in the pattern is truncated. ++ ++=head1 PARAMETERS ++ ++=over 4 ++ ++=item B ++ ++Specify the virtual size of the disk image. ++ ++This parameter is required. ++ ++=back ++ ++=head1 SEE ALSO ++ ++L, ++L, ++L, ++L, ++L, ++L. ++ ++=head1 AUTHORS ++ ++Richard W.M. Jones ++ ++=head1 COPYRIGHT ++ ++Copyright (C) 2018 Red Hat Inc. ++ ++=head1 LICENSE ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are ++met: ++ ++=over 4 ++ ++=item * ++ ++Redistributions of source code must retain the above copyright ++notice, this list of conditions and the following disclaimer. ++ ++=item * ++ ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++ ++=item * ++ ++Neither the name of Red Hat nor the names of its contributors may be ++used to endorse or promote products derived from this software without ++specific prior written permission. ++ ++=back ++ ++THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGE. +diff --git a/plugins/pattern/pattern.c b/plugins/pattern/pattern.c +new file mode 100644 +index 0000000..e1dc798 +--- /dev/null ++++ b/plugins/pattern/pattern.c +@@ -0,0 +1,134 @@ ++/* nbdkit ++ * Copyright (C) 2017-2018 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define NBDKIT_API_VERSION 2 ++#include ++ ++/* The size of disk in bytes (initialized by size= parameter). */ ++static size_t size = 0; ++ ++static int ++pattern_config (const char *key, const char *value) ++{ ++ int64_t r; ++ ++ if (strcmp (key, "size") == 0) { ++ r = nbdkit_parse_size (value); ++ if (r == -1) ++ return -1; ++ if (r > SIZE_MAX) { ++ nbdkit_error ("size > SIZE_MAX"); ++ return -1; ++ } ++ size = (ssize_t) r; ++ } ++ else { ++ nbdkit_error ("unknown parameter '%s'", key); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++#define pattern_config_help \ ++ "size= (required) Size of the backing disk" ++ ++#define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL ++ ++/* No meaning, just used as the address for the handle. */ ++static int ph; ++ ++/* Create the per-connection handle. */ ++static void * ++pattern_open (int readonly) ++{ ++ return &ph; ++} ++ ++/* Get the disk size. */ ++static int64_t ++pattern_get_size (void *handle) ++{ ++ return (int64_t) size; ++} ++ ++#define MIN(a, b) ((a) < (b) ? (a) : (b)) ++ ++/* Read data. */ ++static int ++pattern_pread (void *handle, void *buf, uint32_t count, uint64_t offset, ++ uint32_t flags) ++{ ++ char *b = buf; ++ uint64_t d; ++ uint64_t o; ++ size_t n; ++ ++ while (count > 0) { ++ d = htobe64 (offset & ~7); ++ o = offset & 7; ++ n = MIN (count, 8-o); ++ memcpy (b, (char *)&d + o, n); ++ b += 8-o; ++ offset += 8-o; ++ count -= n; ++ } ++ ++ return 0; ++} ++ ++static struct nbdkit_plugin plugin = { ++ .name = "pattern", ++ .version = PACKAGE_VERSION, ++ .config = pattern_config, ++ .config_help = pattern_config_help, ++ .open = pattern_open, ++ .get_size = pattern_get_size, ++ .pread = pattern_pread, ++ /* In this plugin, errno is preserved properly along error return ++ * paths from failed system calls. ++ */ ++ .errno_is_preserved = 1, ++}; ++ ++NBDKIT_REGISTER_PLUGIN(plugin) +diff --git a/plugins/random/nbdkit-random-plugin.pod b/plugins/random/nbdkit-random-plugin.pod +index e746699..6539d61 100644 +--- a/plugins/random/nbdkit-random-plugin.pod ++++ b/plugins/random/nbdkit-random-plugin.pod +@@ -44,6 +44,7 @@ If not specified then a random seed is chosen. + L, + L, + L, ++L, + L. + + =head1 AUTHORS +diff --git a/plugins/zero/nbdkit-zero-plugin.pod b/plugins/zero/nbdkit-zero-plugin.pod +index 67763da..015c70a 100644 +--- a/plugins/zero/nbdkit-zero-plugin.pod ++++ b/plugins/zero/nbdkit-zero-plugin.pod +@@ -21,6 +21,7 @@ protocol and NBD clients. + L, + L, + L, ++L, + L. + + =head1 AUTHORS +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 5f21e75..354c12c 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -63,6 +63,7 @@ EXTRA_DIST = \ + test-ocaml.c \ + test-parallel-file.sh \ + test-parallel-nbd.sh \ ++ test-pattern.sh \ + test-python-exception.sh \ + test.pl \ + test.py \ +@@ -315,6 +316,9 @@ test_memory_SOURCES = test-memory.c test.h + test_memory_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_memory_LDADD = libtest.la $(LIBGUESTFS_LIBS) + ++# pattern plugin test. ++TESTS += test-pattern.sh ++ + # nbd plugin test. + LIBGUESTFS_TESTS += test-nbd + +diff --git a/tests/test-pattern.sh b/tests/test-pattern.sh +new file mode 100755 +index 0000000..2db4e0c +--- /dev/null ++++ b/tests/test-pattern.sh +@@ -0,0 +1,121 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Test the pattern plugin. ++# ++# Note we don't have any client which can issue misaligned NBD ++# requests. qemu-io will issue 512-byte aligned requests no matter ++# what read parameters we give it. Hence these tests are rather ++# limited. (XXX) ++ ++set -e ++ ++files="pattern.out pattern.pid pattern.sock" ++rm -f $files ++ ++# Test that qemu-io works ++if ! qemu-io --help >/dev/null; then ++ echo "$0: missing or broken qemu-io" ++ exit 77 ++fi ++ ++# Run nbdkit with pattern plugin. ++nbdkit -P pattern.pid -U pattern.sock pattern size=1G ++ ++# We may have to wait a short time for the pid file to appear. ++for i in `seq 1 10`; do ++ if test -f pattern.pid; then ++ break ++ fi ++ sleep 1 ++done ++if ! test -f pattern.pid; then ++ echo "$0: PID file was not created" ++ exit 1 ++fi ++ ++pid="$(cat pattern.pid)" ++ ++# Kill the nbdkit process on exit. ++cleanup () ++{ ++ status=$? ++ ++ kill $pid ++ rm -f $files ++ ++ exit $status ++} ++trap cleanup INT QUIT TERM EXIT ERR ++ ++qemu-io -r -f raw 'nbd+unix://?socket=pattern.sock' \ ++ -c 'r -v 0 512' | grep -E '^[[:xdigit:]]+:' > pattern.out ++if [ "$(cat pattern.out)" != "00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ................ ++00000010: 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 18 ................ ++00000020: 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 28 ................ ++00000030: 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 38 .......0.......8 ++00000040: 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 48 ...............H ++00000050: 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 58 .......P.......X ++00000060: 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 68 ...............h ++00000070: 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 78 .......p.......x ++00000080: 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 88 ................ ++00000090: 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 98 ................ ++000000a0: 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00 a8 ................ ++000000b0: 00 00 00 00 00 00 00 b0 00 00 00 00 00 00 00 b8 ................ ++000000c0: 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 c8 ................ ++000000d0: 00 00 00 00 00 00 00 d0 00 00 00 00 00 00 00 d8 ................ ++000000e0: 00 00 00 00 00 00 00 e0 00 00 00 00 00 00 00 e8 ................ ++000000f0: 00 00 00 00 00 00 00 f0 00 00 00 00 00 00 00 f8 ................ ++00000100: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 08 ................ ++00000110: 00 00 00 00 00 00 01 10 00 00 00 00 00 00 01 18 ................ ++00000120: 00 00 00 00 00 00 01 20 00 00 00 00 00 00 01 28 ................ ++00000130: 00 00 00 00 00 00 01 30 00 00 00 00 00 00 01 38 .......0.......8 ++00000140: 00 00 00 00 00 00 01 40 00 00 00 00 00 00 01 48 ...............H ++00000150: 00 00 00 00 00 00 01 50 00 00 00 00 00 00 01 58 .......P.......X ++00000160: 00 00 00 00 00 00 01 60 00 00 00 00 00 00 01 68 ...............h ++00000170: 00 00 00 00 00 00 01 70 00 00 00 00 00 00 01 78 .......p.......x ++00000180: 00 00 00 00 00 00 01 80 00 00 00 00 00 00 01 88 ................ ++00000190: 00 00 00 00 00 00 01 90 00 00 00 00 00 00 01 98 ................ ++000001a0: 00 00 00 00 00 00 01 a0 00 00 00 00 00 00 01 a8 ................ ++000001b0: 00 00 00 00 00 00 01 b0 00 00 00 00 00 00 01 b8 ................ ++000001c0: 00 00 00 00 00 00 01 c0 00 00 00 00 00 00 01 c8 ................ ++000001d0: 00 00 00 00 00 00 01 d0 00 00 00 00 00 00 01 d8 ................ ++000001e0: 00 00 00 00 00 00 01 e0 00 00 00 00 00 00 01 e8 ................ ++000001f0: 00 00 00 00 00 00 01 f0 00 00 00 00 00 00 01 f8 ................" ] ++then ++ echo "$0: unexpected pattern:" ++ cat pattern.out ++ exit 1 ++fi ++ ++# The cleanup() function is called implicitly on exit. +-- +2.17.1 + diff --git a/0006-tests-Add-a-second-test-of-the-offset-filter.patch b/0006-tests-Add-a-second-test-of-the-offset-filter.patch new file mode 100644 index 0000000..e5de95a --- /dev/null +++ b/0006-tests-Add-a-second-test-of-the-offset-filter.patch @@ -0,0 +1,166 @@ +From 97a5e57037aa0130a1e46aa6162171d941a58d62 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sat, 7 Jul 2018 14:10:11 +0100 +Subject: [PATCH 06/10] tests: Add a second test of the offset filter. + +This tests that the offset filter works for non-aligned offsets and +that nbdkit can handle virtual disks which are ~ 2^63 bits in size. + +Implemented using the pattern plugin. +--- + tests/Makefile.am | 3 ++ + tests/test-offset2.sh | 121 ++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 124 insertions(+) + create mode 100755 tests/test-offset2.sh + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 354c12c..6c3a5a6 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -61,6 +61,7 @@ EXTRA_DIST = \ + test-nozero.sh \ + test_ocaml_plugin.ml \ + test-ocaml.c \ ++ test-offset2.sh \ + test-parallel-file.sh \ + test-parallel-nbd.sh \ + test-pattern.sh \ +@@ -539,6 +540,8 @@ test_offset_SOURCES = test-offset.c test.h + test_offset_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_offset_LDADD = libtest.la $(LIBGUESTFS_LIBS) + ++TESTS += test-offset2.sh ++ + # partition filter test. + LIBGUESTFS_TESTS += test-partition + +diff --git a/tests/test-offset2.sh b/tests/test-offset2.sh +new file mode 100755 +index 0000000..a4f44cc +--- /dev/null ++++ b/tests/test-offset2.sh +@@ -0,0 +1,121 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Additional test of the offset filter using the pattern plugin. ++ ++set -e ++set -x ++ ++files="offset2.out offset2.pid offset2.sock" ++rm -f $files ++ ++# Test that qemu-io works ++if ! qemu-io --help >/dev/null; then ++ echo "$0: missing or broken qemu-io" ++ exit 77 ++fi ++ ++# Run nbdkit with pattern plugin and offset filter in front. ++# 8070450532247927809 = 7E - 1023 ++nbdkit -P offset2.pid -U offset2.sock \ ++ --filter=offset \ ++ pattern size=7E \ ++ offset=8070450532247927809 range=512 ++ ++# We may have to wait a short time for the pid file to appear. ++for i in `seq 1 10`; do ++ if test -f offset2.pid; then ++ break ++ fi ++ sleep 1 ++done ++if ! test -f offset2.pid; then ++ echo "$0: PID file was not created" ++ exit 1 ++fi ++ ++pid="$(cat offset2.pid)" ++ ++# Kill the nbdkit process on exit. ++cleanup () ++{ ++ status=$? ++ ++ kill $pid ++ rm -f $files ++ ++ exit $status ++} ++trap cleanup INT QUIT TERM EXIT ERR ++ ++qemu-io -r -f raw 'nbd+unix://?socket=offset2.sock' \ ++ -c 'r -v 0 512' | grep -E '^[[:xdigit:]]+:' > offset2.out ++if [ "$(cat offset2.out)" != "00000000: ff ff ff ff ff fc 00 6f ff ff ff ff ff fc 08 6f .......o.......o ++00000010: ff ff ff ff ff fc 10 6f ff ff ff ff ff fc 18 6f .......o.......o ++00000020: ff ff ff ff ff fc 20 6f ff ff ff ff ff fc 28 6f .......o.......o ++00000030: ff ff ff ff ff fc 30 6f ff ff ff ff ff fc 38 6f ......0o......8o ++00000040: ff ff ff ff ff fc 40 6f ff ff ff ff ff fc 48 6f .......o......Ho ++00000050: ff ff ff ff ff fc 50 6f ff ff ff ff ff fc 58 6f ......Po......Xo ++00000060: ff ff ff ff ff fc 60 6f ff ff ff ff ff fc 68 6f .......o......ho ++00000070: ff ff ff ff ff fc 70 6f ff ff ff ff ff fc 78 6f ......po......xo ++00000080: ff ff ff ff ff fc 80 6f ff ff ff ff ff fc 88 6f .......o.......o ++00000090: ff ff ff ff ff fc 90 6f ff ff ff ff ff fc 98 6f .......o.......o ++000000a0: ff ff ff ff ff fc a0 6f ff ff ff ff ff fc a8 6f .......o.......o ++000000b0: ff ff ff ff ff fc b0 6f ff ff ff ff ff fc b8 6f .......o.......o ++000000c0: ff ff ff ff ff fc c0 6f ff ff ff ff ff fc c8 6f .......o.......o ++000000d0: ff ff ff ff ff fc d0 6f ff ff ff ff ff fc d8 6f .......o.......o ++000000e0: ff ff ff ff ff fc e0 6f ff ff ff ff ff fc e8 6f .......o.......o ++000000f0: ff ff ff ff ff fc f0 6f ff ff ff ff ff fc f8 6f .......o.......o ++00000100: ff ff ff ff ff fd 00 6f ff ff ff ff ff fd 08 6f .......o.......o ++00000110: ff ff ff ff ff fd 10 6f ff ff ff ff ff fd 18 6f .......o.......o ++00000120: ff ff ff ff ff fd 20 6f ff ff ff ff ff fd 28 6f .......o.......o ++00000130: ff ff ff ff ff fd 30 6f ff ff ff ff ff fd 38 6f ......0o......8o ++00000140: ff ff ff ff ff fd 40 6f ff ff ff ff ff fd 48 6f .......o......Ho ++00000150: ff ff ff ff ff fd 50 6f ff ff ff ff ff fd 58 6f ......Po......Xo ++00000160: ff ff ff ff ff fd 60 6f ff ff ff ff ff fd 68 6f .......o......ho ++00000170: ff ff ff ff ff fd 70 6f ff ff ff ff ff fd 78 6f ......po......xo ++00000180: ff ff ff ff ff fd 80 6f ff ff ff ff ff fd 88 6f .......o.......o ++00000190: ff ff ff ff ff fd 90 6f ff ff ff ff ff fd 98 6f .......o.......o ++000001a0: ff ff ff ff ff fd a0 6f ff ff ff ff ff fd a8 6f .......o.......o ++000001b0: ff ff ff ff ff fd b0 6f ff ff ff ff ff fd b8 6f .......o.......o ++000001c0: ff ff ff ff ff fd c0 6f ff ff ff ff ff fd c8 6f .......o.......o ++000001d0: ff ff ff ff ff fd d0 6f ff ff ff ff ff fd d8 6f .......o.......o ++000001e0: ff ff ff ff ff fd e0 6f ff ff ff ff ff fd e8 6f .......o.......o ++000001f0: ff ff ff ff ff fd f0 6f ff ff ff ff ff fd f8 6f .......o.......o" ] ++then ++ echo "$0: unexpected pattern:" ++ cat offset2.out ++ exit 1 ++fi ++ ++# The cleanup() function is called implicitly on exit. +-- +2.17.1 + diff --git a/0007-tests-Test-largest-possible-plugin-size.patch b/0007-tests-Test-largest-possible-plugin-size.patch new file mode 100644 index 0000000..8b7971c --- /dev/null +++ b/0007-tests-Test-largest-possible-plugin-size.patch @@ -0,0 +1,169 @@ +From 4e1a521228115c04cc7c5a2f625218a9bbd5101f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 11:46:12 +0100 +Subject: [PATCH 07/10] tests: Test largest possible plugin size. + +This test is incomplete because it is too large for qemu to open. +However at least we are testing that nbdkit works. + +Implemented using the pattern plugin. +--- + plugins/pattern/nbdkit-pattern-plugin.pod | 13 +++ + tests/Makefile.am | 3 +- + tests/test-pattern-largest.sh | 99 +++++++++++++++++++++++ + 3 files changed, 114 insertions(+), 1 deletion(-) + create mode 100755 tests/test-pattern-largest.sh + +diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod +index 7a6b498..425cae6 100644 +--- a/plugins/pattern/nbdkit-pattern-plugin.pod ++++ b/plugins/pattern/nbdkit-pattern-plugin.pod +@@ -29,6 +29,19 @@ The size of the virtual disk must be specified using the C + parameter. If the size is not a multiple of 8 then the last 8 byte + offset in the pattern is truncated. + ++=head2 Largest possible size ++ ++nbdkit itself limits plugins to S<2⁶³-1> bytes ++(S, ++S). ++ ++To test if NBD clients are free of bugs (not to mention nbdkit itself) ++you can use: ++ ++ nbdkit pattern size=9223372036854775807 ++ ++Note this is too large for qemu to open. ++ + =head1 PARAMETERS + + =over 4 +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 6c3a5a6..9dd451d 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -65,6 +65,7 @@ EXTRA_DIST = \ + test-parallel-file.sh \ + test-parallel-nbd.sh \ + test-pattern.sh \ ++ test-pattern-largest.sh \ + test-python-exception.sh \ + test.pl \ + test.py \ +@@ -318,7 +319,7 @@ test_memory_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_memory_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + # pattern plugin test. +-TESTS += test-pattern.sh ++TESTS += test-pattern.sh test-pattern-largest.sh + + # nbd plugin test. + LIBGUESTFS_TESTS += test-nbd +diff --git a/tests/test-pattern-largest.sh b/tests/test-pattern-largest.sh +new file mode 100755 +index 0000000..5ff891f +--- /dev/null ++++ b/tests/test-pattern-largest.sh +@@ -0,0 +1,99 @@ ++#!/bin/bash - ++# nbdkit ++# Copyright (C) 2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Test the pattern plugin with the largest possible size supported ++# by nbdkit. ++ ++set -e ++ ++files="pattern-largest.out pattern-largest.pid pattern-largest.sock" ++rm -f $files ++ ++# Test that qemu-io works ++if ! qemu-io --help >/dev/null; then ++ echo "$0: missing or broken qemu-io" ++ exit 77 ++fi ++ ++# Run nbdkit with pattern plugin. ++# size = 2^63-1 ++nbdkit -P pattern-largest.pid -U pattern-largest.sock \ ++ pattern size=9223372036854775807 ++ ++# We may have to wait a short time for the pid file to appear. ++for i in `seq 1 10`; do ++ if test -f pattern-largest.pid; then ++ break ++ fi ++ sleep 1 ++done ++if ! test -f pattern-largest.pid; then ++ echo "$0: PID file was not created" ++ exit 1 ++fi ++ ++pid="$(cat pattern-largest.pid)" ++ ++# Kill the nbdkit process on exit. ++cleanup () ++{ ++ status=$? ++ ++ kill $pid ++ rm -f $files ++ ++ exit $status ++} ++trap cleanup INT QUIT TERM EXIT ERR ++ ++# qemu cannot open this image! ++# ++# can't open device nbd+unix://?socket=pattern-largest.sock: Could not get image size: File too large ++# ++# Therefore we skip the remainder of this test (in effect, testing ++# only that nbdkit can create the file). ++exit 77 ++ ++# XXX Unfortunately qemu-io can only issue 512-byte aligned requests, ++# and the final block is only 511 bytes, so we have to request the 512 ++# bytes before that block. ++qemu-io -r -f raw 'nbd+unix://?socket=pattern-largest.sock' \ ++ -c 'r -v 9223372036854774784 512' | grep -E '^[[:xdigit:]]+:' > pattern-largest.out ++if [ "$(cat pattern-largest.out)" != "XXX EXPECTED PATTERN HERE" ] ++then ++ echo "$0: unexpected pattern:" ++ cat pattern-largest.out ++ exit 1 ++fi ++ ++# The cleanup() function is called implicitly on exit. +-- +2.17.1 + diff --git a/0008-docs-Fix-broken-cross-reference-in-man-page.patch b/0008-docs-Fix-broken-cross-reference-in-man-page.patch new file mode 100644 index 0000000..dd2fdc9 --- /dev/null +++ b/0008-docs-Fix-broken-cross-reference-in-man-page.patch @@ -0,0 +1,25 @@ +From 4c3ea9514184958c356ff6f613d43b896cb26b0e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 15:15:44 +0100 +Subject: [PATCH 08/10] docs: Fix broken cross-reference in man page. + +--- + docs/nbdkit-filter.pod.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/nbdkit-filter.pod.in b/docs/nbdkit-filter.pod.in +index 4621106..16be2c7 100644 +--- a/docs/nbdkit-filter.pod.in ++++ b/docs/nbdkit-filter.pod.in +@@ -591,7 +591,7 @@ which defines C<$(NBDKIT_FILTERDIR)> in automake-generated Makefiles. + =head1 SEE ALSO + + L, +-L. ++L. + + Standard filters provided by nbdkit: + +-- +2.17.1 + diff --git a/0009-docs-Break-up-some-over-long-lines-in-documentation.patch b/0009-docs-Break-up-some-over-long-lines-in-documentation.patch new file mode 100644 index 0000000..53dacc1 --- /dev/null +++ b/0009-docs-Break-up-some-over-long-lines-in-documentation.patch @@ -0,0 +1,103 @@ +From cf495ffb975d4557a6092a19f382a9a69b457300 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 16:26:18 +0100 +Subject: [PATCH 09/10] docs: Break up some over-long lines in documentation. + +We will enforce a limit of 76 chars (in most cases) in a future +commit. +--- + plugins/ext2/nbdkit-ext2-plugin.pod | 3 ++- + plugins/lua/nbdkit-lua-plugin.pod | 3 ++- + plugins/perl/nbdkit-perl-plugin.pod | 3 ++- + plugins/python/nbdkit-python-plugin.pod | 3 ++- + plugins/ruby/nbdkit-ruby-plugin.pod | 3 ++- + plugins/tcl/nbdkit-tcl-plugin.pod | 3 ++- + 6 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/plugins/ext2/nbdkit-ext2-plugin.pod b/plugins/ext2/nbdkit-ext2-plugin.pod +index 29c76aa..7479ebe 100644 +--- a/plugins/ext2/nbdkit-ext2-plugin.pod ++++ b/plugins/ext2/nbdkit-ext2-plugin.pod +@@ -2,7 +2,8 @@ + + =head1 NAME + +-nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or ext4 filesystems ++nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or ++ext4 filesystems + + =head1 SYNOPSIS + +diff --git a/plugins/lua/nbdkit-lua-plugin.pod b/plugins/lua/nbdkit-lua-plugin.pod +index 385a0e4..dfeef4f 100644 +--- a/plugins/lua/nbdkit-lua-plugin.pod ++++ b/plugins/lua/nbdkit-lua-plugin.pod +@@ -260,7 +260,8 @@ partial, your function should call C. + + =over 4 + +-=item Missing: C, C, C, C, C, C, C, C, C ++=item Missing: C, C, C, C, C, ++C, C, C, C + + These are not yet supported. + +diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod +index 0fc7f93..ce8bb51 100644 +--- a/plugins/perl/nbdkit-perl-plugin.pod ++++ b/plugins/perl/nbdkit-perl-plugin.pod +@@ -339,7 +339,8 @@ C. + These are not needed because you can just use regular Perl C + and C constructs. + +-=item Missing: C, C, C, C, C ++=item Missing: C, C, C, C, ++C + + These are not yet supported. + +diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod +index e54df1f..c80af9b 100644 +--- a/plugins/python/nbdkit-python-plugin.pod ++++ b/plugins/python/nbdkit-python-plugin.pod +@@ -258,7 +258,8 @@ use C. + These are not needed because you can just use ordinary Python + constructs. + +-=item Missing: C, C, C, C, C ++=item Missing: C, C, C, C, ++C + + These are not yet supported. + +diff --git a/plugins/ruby/nbdkit-ruby-plugin.pod b/plugins/ruby/nbdkit-ruby-plugin.pod +index 505af69..29d072a 100644 +--- a/plugins/ruby/nbdkit-ruby-plugin.pod ++++ b/plugins/ruby/nbdkit-ruby-plugin.pod +@@ -273,7 +273,8 @@ use C. + These are not needed because you can just use ordinary Ruby + constructs. + +-=item Missing: C, C, C, C, C ++=item Missing: C, C, C, C, ++C + + These are not yet supported. + +diff --git a/plugins/tcl/nbdkit-tcl-plugin.pod b/plugins/tcl/nbdkit-tcl-plugin.pod +index 434233d..17b5c5f 100644 +--- a/plugins/tcl/nbdkit-tcl-plugin.pod ++++ b/plugins/tcl/nbdkit-tcl-plugin.pod +@@ -266,7 +266,8 @@ partial, your function should call C. + + =over 4 + +-=item Missing: C, C, C, C, C, C, C, C, C ++=item Missing: C, C, C, C, C, ++C, C, C, C + + These are not yet supported. + +-- +2.17.1 + diff --git a/0010-docs-Add-podwrapper-from-libguestfs.patch b/0010-docs-Add-podwrapper-from-libguestfs.patch new file mode 100644 index 0000000..fc6e859 --- /dev/null +++ b/0010-docs-Add-podwrapper-from-libguestfs.patch @@ -0,0 +1,3976 @@ +From 24a0a8ced608395b614ad42ae550588e08d3c636 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 15 Jul 2018 14:13:53 +0100 +Subject: [PATCH 10/10] docs: Add podwrapper from libguestfs. + +Use podwrapper from libguestfs to generate man pages instead of +pod2man. This allows finer control over how man pages are generated, +lets us add standard sections, lets us perform more checks on the POD, +and lets us generate HTML. + +Note I have relicensed my code under a BSD license for nbdkit. +--- + .gitignore | 7 +- + Makefile.am | 1 + + README | 6 +- + configure.ac | 31 +- + docs/Makefile.am | 54 +- + ...nbdkit-filter.pod.in => nbdkit-filter.pod} | 42 -- + ...nbdkit-plugin.pod.in => nbdkit-plugin.pod} | 42 -- + docs/{nbdkit.pod.in => nbdkit.pod} | 42 -- + filters/blocksize/Makefile.am | 10 +- + filters/blocksize/nbdkit-blocksize-filter.pod | 42 -- + filters/cache/Makefile.am | 10 +- + filters/cache/nbdkit-cache-filter.pod | 42 -- + filters/cow/Makefile.am | 10 +- + filters/cow/nbdkit-cow-filter.pod | 42 -- + filters/delay/Makefile.am | 10 +- + filters/delay/nbdkit-delay-filter.pod | 42 -- + filters/fua/Makefile.am | 10 +- + filters/fua/nbdkit-fua-filter.pod | 42 -- + filters/log/Makefile.am | 10 +- + filters/log/nbdkit-log-filter.pod | 42 -- + filters/nozero/Makefile.am | 10 +- + filters/nozero/nbdkit-nozero-filter.pod | 42 -- + filters/offset/Makefile.am | 10 +- + filters/offset/nbdkit-offset-filter.pod | 42 -- + filters/partition/Makefile.am | 10 +- + filters/partition/nbdkit-partition-filter.pod | 42 -- + html/pod.css | 155 ++++++ + plugins/curl/Makefile.am | 10 +- + plugins/curl/nbdkit-curl-plugin.pod | 42 -- + plugins/example1/Makefile.am | 10 +- + plugins/example1/nbdkit-example1-plugin.pod | 42 -- + plugins/example2/Makefile.am | 10 +- + plugins/example2/nbdkit-example2-plugin.pod | 42 -- + plugins/example3/Makefile.am | 10 +- + plugins/example3/nbdkit-example3-plugin.pod | 42 -- + plugins/example4/Makefile.am | 10 +- + plugins/example4/example4.pl | 42 -- + plugins/ext2/Makefile.am | 10 +- + plugins/ext2/nbdkit-ext2-plugin.pod | 42 -- + plugins/file/Makefile.am | 10 +- + plugins/file/nbdkit-file-plugin.pod | 42 -- + plugins/guestfs/Makefile.am | 10 +- + plugins/guestfs/nbdkit-guestfs-plugin.pod | 42 -- + plugins/gzip/Makefile.am | 10 +- + plugins/gzip/nbdkit-gzip-plugin.pod | 42 -- + plugins/libvirt/Makefile.am | 10 +- + plugins/libvirt/nbdkit-libvirt-plugin.pod | 42 -- + plugins/lua/Makefile.am | 10 +- + plugins/lua/nbdkit-lua-plugin.pod | 42 -- + plugins/memory/Makefile.am | 10 +- + plugins/memory/nbdkit-memory-plugin.pod | 42 -- + plugins/nbd/Makefile.am | 10 +- + plugins/nbd/nbdkit-nbd-plugin.pod | 42 -- + plugins/null/Makefile.am | 10 +- + plugins/null/nbdkit-null-plugin.pod | 42 -- + plugins/ocaml/Makefile.am | 10 +- + plugins/ocaml/nbdkit-ocaml-plugin.pod | 42 -- + plugins/pattern/Makefile.am | 10 +- + plugins/pattern/nbdkit-pattern-plugin.pod | 42 -- + plugins/perl/Makefile.am | 10 +- + plugins/perl/nbdkit-perl-plugin.pod | 42 -- + plugins/python/Makefile.am | 10 +- + plugins/python/nbdkit-python-plugin.pod | 42 -- + plugins/random/Makefile.am | 10 +- + plugins/random/nbdkit-random-plugin.pod | 42 -- + plugins/ruby/Makefile.am | 10 +- + plugins/ruby/nbdkit-ruby-plugin.pod | 42 -- + plugins/split/Makefile.am | 10 +- + plugins/split/nbdkit-split-plugin.pod | 42 -- + plugins/streaming/Makefile.am | 10 +- + plugins/streaming/nbdkit-streaming-plugin.pod | 42 -- + plugins/tar/Makefile.am | 10 +- + plugins/tar/tar.pl | 42 -- + plugins/tcl/Makefile.am | 10 +- + plugins/tcl/nbdkit-tcl-plugin.pod | 42 -- + plugins/vddk/Makefile.am | 10 +- + plugins/vddk/nbdkit-vddk-plugin.pod | 42 -- + plugins/xz/Makefile.am | 10 +- + plugins/xz/nbdkit-xz-plugin.pod | 42 -- + plugins/zero/Makefile.am | 10 +- + plugins/zero/nbdkit-zero-plugin.pod | 42 -- + podwrapper.pl.in | 496 ++++++++++++++++++ + 82 files changed, 889 insertions(+), 1859 deletions(-) + rename docs/{nbdkit-filter.pod.in => nbdkit-filter.pod} (93%) + rename docs/{nbdkit-plugin.pod.in => nbdkit-plugin.pod} (95%) + rename docs/{nbdkit.pod.in => nbdkit.pod} (95%) + create mode 100644 html/pod.css + create mode 100755 podwrapper.pl.in + +diff --git a/.gitignore b/.gitignore +index 2692542..a84ad9a 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -32,9 +32,9 @@ Makefile.in + /config.sub + /configure + /depcomp +-/docs/nbdkit-filter.pod +-/docs/nbdkit-plugin.pod +-/docs/nbdkit.pod ++/docs/filter-links.pod ++/docs/plugin-links.pod ++/html/*.html + /INSTALL + /install-sh + /libtool +@@ -43,6 +43,7 @@ Makefile.in + /nbdkit + /plugins/example4/nbdkit-example4-plugin + /plugins/tar/nbdkit-tar-plugin ++/podwrapper.pl + /src/nbdkit + /src/nbdkit.pc + /src/test-utils +diff --git a/Makefile.am b/Makefile.am +index fc4d750..6a3a377 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -37,6 +37,7 @@ ACLOCAL_AMFLAGS = -I m4 + EXTRA_DIST = \ + .dir-locals.el \ + .gitignore \ ++ html/pod.css \ + LICENSE \ + nbdkit.in \ + OTHER_PLUGINS \ +diff --git a/README b/README +index 9642579..685b41f 100644 +--- a/README ++++ b/README +@@ -32,9 +32,11 @@ Building from source + + By default nbdkit needs nothing except Linux and reasonably recent gcc. + +-To build the man pages, you will need to install: ++To build the man pages, you will optionally need to install: + +- - pod2man (included with perl) ++ - perl ++ ++ - Pod::Man and Pod::Simple (perl library) + + There are some *optional* libraries you may want to install for + plugins or extra features. +diff --git a/configure.ac b/configure.ac +index 6304ac8..9fe147c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,28 +197,31 @@ PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ + ]) + AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) + +-dnl Check for Perl POD. +-AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) +-AS_IF([test "x$POD2MAN" != "xno"],[ +- POD2MAN_ARGS="--center=nbdkit --release=nbdkit" +- # Check whether pod2man supports --utf8, and if so add it to $POD2MAN_ARGS. +- AC_MSG_CHECKING([if $POD2MAN supports --utf8]) +- AS_IF([$POD2MAN --help 2>&1 | grep -s -q -- --utf8],[ +- AC_MSG_RESULT([yes]) +- POD2MAN_ARGS="$POD2MAN_ARGS --utf8" ++dnl Check we have enough to run podwrapper. ++AC_CHECK_PROG([PERL],[perl],[perl],[no]) ++AS_IF([test "x$PERL" != "xno"],[ ++ AC_MSG_CHECKING([if we have perl Pod::Man and Pod::Simple]) ++ AS_IF([$PERL -MPod::Man -MPod::Simple -e 1 >&AS_MESSAGE_LOG_FD 2>&1],[ ++ enable_pod=yes + ],[ +- AC_MSG_RESULT([no]) ++ enable_pod=no + ]) +- AC_SUBST([POD2MAN_ARGS]) ++ AC_MSG_RESULT([$enable_pod]) + ]) +-AM_CONDITIONAL([HAVE_POD2MAN], [test "x$POD2MAN" != "xno"]) ++AM_CONDITIONAL([HAVE_POD], ++ [test "x$PERL" != "xno" && test "x$enable_pod" = "xyes"]) + ++dnl Define the path to the podwrapper program. ++PODWRAPPER="$PERL $(pwd)/podwrapper.pl" ++AC_SUBST([PODWRAPPER]) ++ ++dnl Allow all plugins and filters to be disabled. + AC_ARG_ENABLE([plugins], + [AS_HELP_STRING([--disable-plugins], [disable all bundled plugins and filters])]) + AM_CONDITIONAL([HAVE_PLUGINS], [test "x$enable_plugins" != "xno"]) + + dnl Check for Perl, for embedding in the perl plugin. +-AC_CHECK_PROG([PERL],[perl],[perl],[no]) ++dnl Note that the perl binary is checked above. + AC_ARG_ENABLE([perl], + AS_HELP_STRING([--disable-perl], [disable Perl embed plugin]), + [], +@@ -590,6 +593,8 @@ dnl Produce output files. + AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_FILES([nbdkit], + [chmod +x,-w nbdkit]) ++AC_CONFIG_FILES([podwrapper.pl], ++ [chmod +x,-w podwrapper.pl]) + AC_CONFIG_FILES([Makefile + bash/Makefile + docs/Makefile +diff --git a/docs/Makefile.am b/docs/Makefile.am +index a3d7071..2c1243a 100644 +--- a/docs/Makefile.am ++++ b/docs/Makefile.am +@@ -34,11 +34,11 @@ include $(top_srcdir)/common-rules.mk + + EXTRA_DIST = \ + make-links.sh \ +- nbdkit.pod.in \ +- nbdkit-plugin.pod.in \ +- nbdkit-filter.pod.in ++ nbdkit.pod \ ++ nbdkit-plugin.pod \ ++ nbdkit-filter.pod + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = \ + nbdkit.1 \ +@@ -46,28 +46,36 @@ man_MANS = \ + nbdkit-filter.3 + CLEANFILES += $(man_MANS) + +-nbdkit.1: nbdkit.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=nbdkit $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++nbdkit.1: nbdkit.pod plugin-links.pod filter-links.pod ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ --insert plugin-links.pod:__PLUGIN_LINKS__ \ ++ --insert filter-links.pod:__FILTER_LINKS__ \ ++ $< + +-nbdkit-plugin.3: nbdkit-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=nbdkit-plugin $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++nbdkit-plugin.3: nbdkit-plugin.pod plugin-links.pod ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ --insert plugin-links.pod:__PLUGIN_LINKS__ \ ++ $< + +-nbdkit-filter.3: nbdkit-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=nbdkit-filter $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++nbdkit-filter.3: nbdkit-filter.pod filter-links.pod ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ --insert filter-links.pod:__FILTER_LINKS__ \ ++ $< + +-%.pod: %.pod.in ++endif HAVE_POD ++ ++# XXX Language links are broken - they link to section 1 instead of section 3. ++plugin-links.pod: $(top_srcdir)/common-rules.mk ++ rm -f $@ $@-t ++ $(srcdir)/make-links.sh plugin 1 $(plugins) > $@-t ++ mv $@-t $@ ++ ++filter-links.pod: $(top_srcdir)/common-rules.mk + rm -f $@ $@-t +- $(SED) \ +- -e 's/__PLUGIN_LINKS__/$(shell $(srcdir)/make-links.sh plugin 1 $(plugins))/' \ +- -e 's/__FILTER_LINKS__/$(shell $(srcdir)/make-links.sh filter 1 $(filters))/' \ +- $< > $@-t +- chmod -w $@-t ++ $(srcdir)/make-links.sh filter 1 $(filters) > $@-t + mv $@-t $@ + +-endif ++MAINTAINERCLEANFILES = plugin-links.pod filter-links.pod +diff --git a/docs/nbdkit-filter.pod.in b/docs/nbdkit-filter.pod +similarity index 93% +rename from docs/nbdkit-filter.pod.in +rename to docs/nbdkit-filter.pod +index 16be2c7..77a5e79 100644 +--- a/docs/nbdkit-filter.pod.in ++++ b/docs/nbdkit-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-filter - How to write nbdkit filters +@@ -604,43 +602,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/docs/nbdkit-plugin.pod.in b/docs/nbdkit-plugin.pod +similarity index 95% +rename from docs/nbdkit-plugin.pod.in +rename to docs/nbdkit-plugin.pod +index f32d1af..fb43f8c 100644 +--- a/docs/nbdkit-plugin.pod.in ++++ b/docs/nbdkit-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-plugin - How to write nbdkit plugins +@@ -897,43 +895,3 @@ Pino Toscano + =head1 COPYRIGHT + + Copyright (C) 2013-2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/docs/nbdkit.pod.in b/docs/nbdkit.pod +similarity index 95% +rename from docs/nbdkit.pod.in +rename to docs/nbdkit.pod +index bfd9da9..be69619 100644 +--- a/docs/nbdkit.pod.in ++++ b/docs/nbdkit.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit - A toolkit for creating NBD servers +@@ -1023,43 +1021,3 @@ Pino Toscano + =head1 COPYRIGHT + + Copyright (C) 2013-2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/blocksize/Makefile.am b/filters/blocksize/Makefile.am +index bd09a2d..02db7bb 100644 +--- a/filters/blocksize/Makefile.am ++++ b/filters/blocksize/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_blocksize_filter_la_CFLAGS = \ + nbdkit_blocksize_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-blocksize-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-blocksize-filter.1: nbdkit-blocksize-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/blocksize/nbdkit-blocksize-filter.pod b/filters/blocksize/nbdkit-blocksize-filter.pod +index 39a2ffc..d271aba 100644 +--- a/filters/blocksize/nbdkit-blocksize-filter.pod ++++ b/filters/blocksize/nbdkit-blocksize-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-blocksize-filter - nbdkit blocksize filter +@@ -99,43 +97,3 @@ Eric Blake + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/cache/Makefile.am b/filters/cache/Makefile.am +index 1e932e8..867812e 100644 +--- a/filters/cache/Makefile.am ++++ b/filters/cache/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_cache_filter_la_CFLAGS = \ + nbdkit_cache_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-cache-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-cache-filter.1: nbdkit-cache-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/cache/nbdkit-cache-filter.pod b/filters/cache/nbdkit-cache-filter.pod +index a59c54e..ed9df19 100644 +--- a/filters/cache/nbdkit-cache-filter.pod ++++ b/filters/cache/nbdkit-cache-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-cache-filter - nbdkit caching filter +@@ -80,43 +78,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/cow/Makefile.am b/filters/cow/Makefile.am +index 3b83142..778df1e 100644 +--- a/filters/cow/Makefile.am ++++ b/filters/cow/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_cow_filter_la_CFLAGS = \ + nbdkit_cow_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-cow-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-cow-filter.1: nbdkit-cow-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/cow/nbdkit-cow-filter.pod b/filters/cow/nbdkit-cow-filter.pod +index accf81c..a4b8d72 100644 +--- a/filters/cow/nbdkit-cow-filter.pod ++++ b/filters/cow/nbdkit-cow-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-cow-filter - nbdkit copy-on-write (COW) filter +@@ -120,43 +118,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/delay/Makefile.am b/filters/delay/Makefile.am +index a907ea6..17bec3b 100644 +--- a/filters/delay/Makefile.am ++++ b/filters/delay/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_delay_filter_la_CFLAGS = \ + nbdkit_delay_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-delay-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-delay-filter.1: nbdkit-delay-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/delay/nbdkit-delay-filter.pod b/filters/delay/nbdkit-delay-filter.pod +index 10aba94..32e29d7 100644 +--- a/filters/delay/nbdkit-delay-filter.pod ++++ b/filters/delay/nbdkit-delay-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-delay-filter - nbdkit delay filter +@@ -46,43 +44,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/fua/Makefile.am b/filters/fua/Makefile.am +index 557e585..d4af39a 100644 +--- a/filters/fua/Makefile.am ++++ b/filters/fua/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_fua_filter_la_CFLAGS = \ + nbdkit_fua_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-fua-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-fua-filter.1: nbdkit-fua-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/fua/nbdkit-fua-filter.pod b/filters/fua/nbdkit-fua-filter.pod +index cec54d5..601e308 100644 +--- a/filters/fua/nbdkit-fua-filter.pod ++++ b/filters/fua/nbdkit-fua-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-fua-filter - nbdkit FUA filter +@@ -77,43 +75,3 @@ Eric Blake + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/log/Makefile.am b/filters/log/Makefile.am +index 95bce2b..b9b661e 100644 +--- a/filters/log/Makefile.am ++++ b/filters/log/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_log_filter_la_CFLAGS = \ + nbdkit_log_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-log-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-log-filter.1: nbdkit-log-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/log/nbdkit-log-filter.pod b/filters/log/nbdkit-log-filter.pod +index b011624..89ea551 100644 +--- a/filters/log/nbdkit-log-filter.pod ++++ b/filters/log/nbdkit-log-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-log-filter - nbdkit log filter +@@ -75,43 +73,3 @@ Eric Blake + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/nozero/Makefile.am b/filters/nozero/Makefile.am +index 3e2eebc..f0cc2c6 100644 +--- a/filters/nozero/Makefile.am ++++ b/filters/nozero/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_nozero_filter_la_CFLAGS = \ + nbdkit_nozero_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-nozero-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-nozero-filter.1: nbdkit-nozero-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/nozero/nbdkit-nozero-filter.pod b/filters/nozero/nbdkit-nozero-filter.pod +index 4065302..bb8743c 100644 +--- a/filters/nozero/nbdkit-nozero-filter.pod ++++ b/filters/nozero/nbdkit-nozero-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-nozero-filter - nbdkit nozero filter +@@ -57,43 +55,3 @@ Eric Blake + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/offset/Makefile.am b/filters/offset/Makefile.am +index e055ed4..0fe9106 100644 +--- a/filters/offset/Makefile.am ++++ b/filters/offset/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_offset_filter_la_CFLAGS = \ + nbdkit_offset_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-offset-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-offset-filter.1: nbdkit-offset-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/offset/nbdkit-offset-filter.pod b/filters/offset/nbdkit-offset-filter.pod +index 7579d9f..ee8061b 100644 +--- a/filters/offset/nbdkit-offset-filter.pod ++++ b/filters/offset/nbdkit-offset-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-offset-filter - nbdkit offset filter +@@ -76,43 +74,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/filters/partition/Makefile.am b/filters/partition/Makefile.am +index a1bb0d9..9ab8730 100644 +--- a/filters/partition/Makefile.am ++++ b/filters/partition/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_partition_filter_la_CFLAGS = \ + nbdkit_partition_filter_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-partition-filter.1 + CLEANFILES += $(man_MANS) + + nbdkit-partition-filter.1: nbdkit-partition-filter.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/filters/partition/nbdkit-partition-filter.pod b/filters/partition/nbdkit-partition-filter.pod +index 0b78d6b..bc5f346 100644 +--- a/filters/partition/nbdkit-partition-filter.pod ++++ b/filters/partition/nbdkit-partition-filter.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-partition-filter - nbdkit partition filter +@@ -57,43 +55,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/html/pod.css b/html/pod.css +new file mode 100644 +index 0000000..1c07ec8 +--- /dev/null ++++ b/html/pod.css +@@ -0,0 +1,155 @@ ++/* CSS to make pod2html files look a little bit better. */ ++ ++body { ++ margin-left: 4em; ++} ++ ++body p, body ul, ol, body dl { ++ margin-left: 2em; ++ width: 31em; ++} ++ ++pre { ++ width: 31em; ++} ++ ++li { ++ padding-bottom: 0.5em; ++} ++ ++/* Code sections. */ ++ ++pre { ++ background-color: #f8f8f8; ++ color: rgb(204,0,0); ++ font-weight: 550; ++ border-left: 6px solid rgb(204,64,64); ++ padding: 6px; ++ margin-left: 1em; ++ font-size: 120%; ++} ++ ++/* Bold, italic in man pages. */ ++b, strong { ++ color: rgb(204,0,0); ++} ++ ++i, em { ++ color: rgb(204,0,0); ++} ++ ++/* Name heading. */ ++ ++body > h1:first-of-type { ++ display: none; ++} ++ ++body > h1:first-of-type + p { ++ font-size: 125%; ++ font-weight: bold; ++ color: rgb(204,0,0); ++ margin-left: -32px; ++} ++ ++/* Warning heading in man pages. */ ++a[name="warning"] { ++ -moz-border-radius-topleft: 5px; ++ -moz-border-radius-topright: 5px; ++ border-radius-topleft: 5px; ++ border-radius-topright: 5px; ++ ++ color: white; ++ background-color: rgb(204,0,0); ++} ++a[name="warning"]:before { ++ content: "\00a0\00a0\00a0"; ++} ++a[name="warning"]:after { ++ content: "\00a0\00a0\00a0"; ++} ++ ++/* Put the index on the right hand side in a floating box. */ ++ul[id="index"] { ++ float: right; ++ width: 18em; ++ border-left: 3em solid white; ++ background-color: #fcfcfc; ++ margin-top: 32px; ++ padding-top: 0px; ++ margin-left: 1em; ++ padding-left: 1em; ++ padding-right: 1em; ++ font-size: 90%; ++} ++ ++ul[id="index"] a[href] { ++ text-decoration: none; ++} ++ ++ul[id="index"] a[href]:hover { ++ text-decoration: underline; ++} ++ ++ul[id="index"] a[href]:before { ++ content: '#\00a0'; ++ color: rgb(204,0,0); ++ font-size: x-small; ++} ++ ++ul[id="index"] { ++ width: 17em; ++ list-style: none; ++ margin-left: 0px; ++ margin-right: 0px; ++ padding-left: 0px; ++ padding-right: 0px; ++} ++ ++ul[id="index"] > li { ++ margin-bottom: 0.5em; ++} ++ ++ul[id="index"] > li ul { ++ width: 16em; ++ list-style: none; ++ margin-left: 0px; ++ margin-right: 0px; ++ padding-left: 0px; ++ padding-right: 0px; ++ margin-bottom: 0.5em; ++} ++ ++ul[id="index"] > li ul li { ++ display: inline; ++ margin-right: 1em; ++} ++ ++/* ++ul[id="index"] > li ul li:after { ++ color: #ccc; ++ content: '\2014'; ++} ++*/ ++ ++/* Get rid of those horrible
's :-( */ ++hr { display: none; } ++ ++/* Demote

's and set rest of headers relative. */ ++h1 { ++ font-size: 100%; ++ color: black; ++ border-bottom: solid 1px rgb(204,0,0); ++} ++ ++h2 { ++ font-size: 95%; ++ border-bottom: none; ++} ++ ++h3 { ++ font-size: 90%; ++} ++ ++h4 { ++ font-size: 85%; ++} +diff --git a/plugins/curl/Makefile.am b/plugins/curl/Makefile.am +index 91a3a3a..b58b40c 100644 +--- a/plugins/curl/Makefile.am ++++ b/plugins/curl/Makefile.am +@@ -52,16 +52,16 @@ nbdkit_curl_plugin_la_LIBADD = \ + nbdkit_curl_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-curl-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-curl-plugin.1: nbdkit-curl-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/curl/nbdkit-curl-plugin.pod b/plugins/curl/nbdkit-curl-plugin.pod +index 30e2949..9bbd285 100644 +--- a/plugins/curl/nbdkit-curl-plugin.pod ++++ b/plugins/curl/nbdkit-curl-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-curl-plugin - nbdkit curl plugin (HTTP, FTP, SSH and other protocols) +@@ -122,43 +120,3 @@ Parts derived from Alexander Graf's "QEMU Block driver for CURL images". + =head1 COPYRIGHT + + Copyright (C) 2014 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/example1/Makefile.am b/plugins/example1/Makefile.am +index 8c66bbb..e324dd8 100644 +--- a/plugins/example1/Makefile.am ++++ b/plugins/example1/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_example1_plugin_la_CFLAGS = \ + nbdkit_example1_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-example1-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-example1-plugin.1: nbdkit-example1-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/example1/nbdkit-example1-plugin.pod b/plugins/example1/nbdkit-example1-plugin.pod +index a28e5f2..81a80de 100644 +--- a/plugins/example1/nbdkit-example1-plugin.pod ++++ b/plugins/example1/nbdkit-example1-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-example1-plugin - A minimal nbdkit plugin +@@ -32,43 +30,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/example2/Makefile.am b/plugins/example2/Makefile.am +index 810d735..3125b8e 100644 +--- a/plugins/example2/Makefile.am ++++ b/plugins/example2/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_example2_plugin_la_CFLAGS = \ + nbdkit_example2_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-example2-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-example2-plugin.1: nbdkit-example2-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/example2/nbdkit-example2-plugin.pod b/plugins/example2/nbdkit-example2-plugin.pod +index 1a22bc6..dc16260 100644 +--- a/plugins/example2/nbdkit-example2-plugin.pod ++++ b/plugins/example2/nbdkit-example2-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-example2-plugin - An example nbdkit plugin +@@ -30,43 +28,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/example3/Makefile.am b/plugins/example3/Makefile.am +index 5ca25ad..f4a423d 100644 +--- a/plugins/example3/Makefile.am ++++ b/plugins/example3/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_example3_plugin_la_CFLAGS = \ + nbdkit_example3_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-example3-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-example3-plugin.1: nbdkit-example3-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/example3/nbdkit-example3-plugin.pod b/plugins/example3/nbdkit-example3-plugin.pod +index 11dfc99..5c51f83 100644 +--- a/plugins/example3/nbdkit-example3-plugin.pod ++++ b/plugins/example3/nbdkit-example3-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-example3-plugin - An example nbdkit plugin +@@ -40,43 +38,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/example4/Makefile.am b/plugins/example4/Makefile.am +index cf9f687..589b3f5 100644 +--- a/plugins/example4/Makefile.am ++++ b/plugins/example4/Makefile.am +@@ -48,16 +48,16 @@ nbdkit-example4-plugin: $(source) + mv $@-t $@ + chmod 0555 $@ + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-example4-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-example4-plugin.1: $(source) +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --name nbdkit-example4-plugin --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/example4/example4.pl b/plugins/example4/example4.pl +index b0086ac..0f0baa8 100644 +--- a/plugins/example4/example4.pl ++++ b/plugins/example4/example4.pl +@@ -3,8 +3,6 @@ + + =pod + +-=encoding utf8 +- + =head1 NAME + + nbdkit-example4-plugin - An example nbdkit plugin written in Perl +@@ -48,46 +46,6 @@ Richard W.M. Jones + + Copyright (C) 2017 Red Hat Inc. + +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +- + =cut + + use strict; +diff --git a/plugins/ext2/Makefile.am b/plugins/ext2/Makefile.am +index b644451..da92c1b 100644 +--- a/plugins/ext2/Makefile.am ++++ b/plugins/ext2/Makefile.am +@@ -52,15 +52,15 @@ nbdkit_ext2_plugin_la_LIBADD = \ + nbdkit_ext2_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-ext2-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-ext2-plugin.1: nbdkit-ext2-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + endif +diff --git a/plugins/ext2/nbdkit-ext2-plugin.pod b/plugins/ext2/nbdkit-ext2-plugin.pod +index 7479ebe..5cdda06 100644 +--- a/plugins/ext2/nbdkit-ext2-plugin.pod ++++ b/plugins/ext2/nbdkit-ext2-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or +@@ -89,43 +87,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/file/Makefile.am b/plugins/file/Makefile.am +index 7500438..00eaf59 100644 +--- a/plugins/file/Makefile.am ++++ b/plugins/file/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_file_plugin_la_CFLAGS = \ + nbdkit_file_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-file-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-file-plugin.1: nbdkit-file-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/file/nbdkit-file-plugin.pod b/plugins/file/nbdkit-file-plugin.pod +index 016513a..824058e 100644 +--- a/plugins/file/nbdkit-file-plugin.pod ++++ b/plugins/file/nbdkit-file-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-file-plugin - nbdkit file plugin +@@ -54,43 +52,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/guestfs/Makefile.am b/plugins/guestfs/Makefile.am +index 79b97c5..19fe31a 100644 +--- a/plugins/guestfs/Makefile.am ++++ b/plugins/guestfs/Makefile.am +@@ -52,16 +52,16 @@ nbdkit_guestfs_plugin_la_LIBADD = \ + nbdkit_guestfs_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-guestfs-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-guestfs-plugin.1: nbdkit-guestfs-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/guestfs/nbdkit-guestfs-plugin.pod b/plugins/guestfs/nbdkit-guestfs-plugin.pod +index 9fde4b4..4bdb7ab 100644 +--- a/plugins/guestfs/nbdkit-guestfs-plugin.pod ++++ b/plugins/guestfs/nbdkit-guestfs-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-guestfs-plugin - nbdkit libguestfs plugin +@@ -201,43 +199,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/gzip/Makefile.am b/plugins/gzip/Makefile.am +index 6e95a66..b1e42c7 100644 +--- a/plugins/gzip/Makefile.am ++++ b/plugins/gzip/Makefile.am +@@ -52,16 +52,16 @@ nbdkit_gzip_plugin_la_LIBADD = \ + nbdkit_gzip_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-gzip-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-gzip-plugin.1: nbdkit-gzip-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/gzip/nbdkit-gzip-plugin.pod b/plugins/gzip/nbdkit-gzip-plugin.pod +index 7959329..a5f6b79 100644 +--- a/plugins/gzip/nbdkit-gzip-plugin.pod ++++ b/plugins/gzip/nbdkit-gzip-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-gzip-plugin - nbdkit gzip plugin +@@ -33,43 +31,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/libvirt/Makefile.am b/plugins/libvirt/Makefile.am +index 1f53cbc..f7ab44a 100644 +--- a/plugins/libvirt/Makefile.am ++++ b/plugins/libvirt/Makefile.am +@@ -52,16 +52,16 @@ nbdkit_libvirt_plugin_la_LIBADD = \ + nbdkit_libvirt_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-libvirt-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-libvirt-plugin.1: nbdkit-libvirt-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/libvirt/nbdkit-libvirt-plugin.pod b/plugins/libvirt/nbdkit-libvirt-plugin.pod +index 2ee18cc..4bfa972 100644 +--- a/plugins/libvirt/nbdkit-libvirt-plugin.pod ++++ b/plugins/libvirt/nbdkit-libvirt-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-libvirt-plugin - nbdkit libvirt plugin using virDomainBlockPeek +@@ -62,43 +60,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/lua/Makefile.am b/plugins/lua/Makefile.am +index 91d0395..9135b88 100644 +--- a/plugins/lua/Makefile.am ++++ b/plugins/lua/Makefile.am +@@ -53,16 +53,16 @@ nbdkit_lua_plugin_la_LDFLAGS = \ + -module -avoid-version -shared \ + $(LUA_LIBS) + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-lua-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-lua-plugin.3: nbdkit-lua-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/lua/nbdkit-lua-plugin.pod b/plugins/lua/nbdkit-lua-plugin.pod +index dfeef4f..9ebebab 100644 +--- a/plugins/lua/nbdkit-lua-plugin.pod ++++ b/plugins/lua/nbdkit-lua-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-lua-plugin - nbdkit Lua plugin +@@ -286,43 +284,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/memory/Makefile.am b/plugins/memory/Makefile.am +index 8bd3949..3eaedca 100644 +--- a/plugins/memory/Makefile.am ++++ b/plugins/memory/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_memory_plugin_la_CFLAGS = \ + nbdkit_memory_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-memory-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-memory-plugin.1: nbdkit-memory-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod +index 6f7fc46..5d11d86 100644 +--- a/plugins/memory/nbdkit-memory-plugin.pod ++++ b/plugins/memory/nbdkit-memory-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-memory-plugin - nbdkit virtual memory plugin +@@ -50,43 +48,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/nbd/Makefile.am b/plugins/nbd/Makefile.am +index b4a0d94..f930b26 100644 +--- a/plugins/nbd/Makefile.am ++++ b/plugins/nbd/Makefile.am +@@ -48,14 +48,14 @@ nbdkit_nbd_plugin_la_CFLAGS = \ + nbdkit_nbd_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-nbd-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-nbd-plugin.1: nbdkit-nbd-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/nbd/nbdkit-nbd-plugin.pod b/plugins/nbd/nbdkit-nbd-plugin.pod +index 2b3a054..74df7ed 100644 +--- a/plugins/nbd/nbdkit-nbd-plugin.pod ++++ b/plugins/nbd/nbdkit-nbd-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-nbd-plugin - nbdkit nbd plugin +@@ -54,43 +52,3 @@ Eric Blake + =head1 COPYRIGHT + + Copyright (C) 2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/null/Makefile.am b/plugins/null/Makefile.am +index f37e1ba..b98b041 100644 +--- a/plugins/null/Makefile.am ++++ b/plugins/null/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_null_plugin_la_CFLAGS = \ + nbdkit_null_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-null-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-null-plugin.1: nbdkit-null-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/null/nbdkit-null-plugin.pod b/plugins/null/nbdkit-null-plugin.pod +index 55affb8..fd6f4d6 100644 +--- a/plugins/null/nbdkit-null-plugin.pod ++++ b/plugins/null/nbdkit-null-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-null-plugin - nbdkit bitbucket plugin +@@ -44,43 +42,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am +index 22970f9..484d041 100644 +--- a/plugins/ocaml/Makefile.am ++++ b/plugins/ocaml/Makefile.am +@@ -67,16 +67,16 @@ libnbdkitocaml_la_CFLAGS = \ + $(WARNINGS_CFLAGS) \ + -fPIC + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-ocaml-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-ocaml-plugin.3: nbdkit-ocaml-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod +index 8f67d9b..80af5bb 100644 +--- a/plugins/ocaml/nbdkit-ocaml-plugin.pod ++++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-ocaml-plugin - writing nbdkit plugins in OCaml +@@ -122,43 +120,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2014 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/pattern/Makefile.am b/plugins/pattern/Makefile.am +index da092db..f5b99a2 100644 +--- a/plugins/pattern/Makefile.am ++++ b/plugins/pattern/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_pattern_plugin_la_CFLAGS = \ + nbdkit_pattern_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-pattern-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-pattern-plugin.1: nbdkit-pattern-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod +index 425cae6..1b22f39 100644 +--- a/plugins/pattern/nbdkit-pattern-plugin.pod ++++ b/plugins/pattern/nbdkit-pattern-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-pattern-plugin - plugin to serve a fixed pattern of data for testing +@@ -70,43 +68,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/perl/Makefile.am b/plugins/perl/Makefile.am +index 293d059..1b792a2 100644 +--- a/plugins/perl/Makefile.am ++++ b/plugins/perl/Makefile.am +@@ -54,16 +54,16 @@ nbdkit_perl_plugin_la_LDFLAGS = \ + -module -avoid-version -shared \ + $(PERL_LDOPTS) + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-perl-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-perl-plugin.3: nbdkit-perl-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod +index ce8bb51..1ddd6b6 100644 +--- a/plugins/perl/nbdkit-perl-plugin.pod ++++ b/plugins/perl/nbdkit-perl-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-perl-plugin - nbdkit perl plugin +@@ -366,43 +364,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2014 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/python/Makefile.am b/plugins/python/Makefile.am +index bcd102f..292d30b 100644 +--- a/plugins/python/Makefile.am ++++ b/plugins/python/Makefile.am +@@ -55,16 +55,16 @@ nbdkit_python_plugin_la_LDFLAGS = \ + -module -avoid-version -shared \ + $(PYTHON_LDFLAGS) + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-python-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-python-plugin.3: nbdkit-python-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod +index c80af9b..f6ada4d 100644 +--- a/plugins/python/nbdkit-python-plugin.pod ++++ b/plugins/python/nbdkit-python-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-python-plugin - nbdkit python plugin +@@ -285,43 +283,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2014 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/random/Makefile.am b/plugins/random/Makefile.am +index fac200d..d990158 100644 +--- a/plugins/random/Makefile.am ++++ b/plugins/random/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_random_plugin_la_CFLAGS = \ + nbdkit_random_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-random-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-random-plugin.1: nbdkit-random-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/random/nbdkit-random-plugin.pod b/plugins/random/nbdkit-random-plugin.pod +index 6539d61..9967f5b 100644 +--- a/plugins/random/nbdkit-random-plugin.pod ++++ b/plugins/random/nbdkit-random-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-random-plugin - plugin to serve random data +@@ -54,43 +52,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/ruby/Makefile.am b/plugins/ruby/Makefile.am +index 092f9e6..c5af56d 100644 +--- a/plugins/ruby/Makefile.am ++++ b/plugins/ruby/Makefile.am +@@ -55,16 +55,16 @@ nbdkit_ruby_plugin_la_LDFLAGS = \ + -module -avoid-version -shared \ + $(RUBY_LDFLAGS) + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-ruby-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-ruby-plugin.3: nbdkit-ruby-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/ruby/nbdkit-ruby-plugin.pod b/plugins/ruby/nbdkit-ruby-plugin.pod +index 29d072a..fab816f 100644 +--- a/plugins/ruby/nbdkit-ruby-plugin.pod ++++ b/plugins/ruby/nbdkit-ruby-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-ruby-plugin - nbdkit ruby plugin +@@ -300,43 +298,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2016 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/split/Makefile.am b/plugins/split/Makefile.am +index 42b9bfd..49c13f4 100644 +--- a/plugins/split/Makefile.am ++++ b/plugins/split/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_split_plugin_la_CFLAGS = \ + nbdkit_split_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-split-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-split-plugin.1: nbdkit-split-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/split/nbdkit-split-plugin.pod b/plugins/split/nbdkit-split-plugin.pod +index fb47faf..a7cb5ff 100644 +--- a/plugins/split/nbdkit-split-plugin.pod ++++ b/plugins/split/nbdkit-split-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-split-plugin - nbdkit plugin to concatenate split files into one disk +@@ -79,43 +77,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/streaming/Makefile.am b/plugins/streaming/Makefile.am +index ea64109..5443c4b 100644 +--- a/plugins/streaming/Makefile.am ++++ b/plugins/streaming/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_streaming_plugin_la_CFLAGS = \ + nbdkit_streaming_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-streaming-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-streaming-plugin.1: nbdkit-streaming-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/streaming/nbdkit-streaming-plugin.pod b/plugins/streaming/nbdkit-streaming-plugin.pod +index 98e8337..b33f756 100644 +--- a/plugins/streaming/nbdkit-streaming-plugin.pod ++++ b/plugins/streaming/nbdkit-streaming-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-streaming-plugin - nbdkit streaming plugin +@@ -81,43 +79,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2014 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/tar/Makefile.am b/plugins/tar/Makefile.am +index d65ebf7..c4872d4 100644 +--- a/plugins/tar/Makefile.am ++++ b/plugins/tar/Makefile.am +@@ -48,16 +48,16 @@ nbdkit-tar-plugin: $(source) + mv $@-t $@ + chmod 0555 $@ + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-tar-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-tar-plugin.1: $(source) +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --name nbdkit-tar-plugin --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/tar/tar.pl b/plugins/tar/tar.pl +index 69f693e..e92f748 100644 +--- a/plugins/tar/tar.pl ++++ b/plugins/tar/tar.pl +@@ -3,8 +3,6 @@ + + =pod + +-=encoding utf8 +- + =head1 NAME + + nbdkit-tar-plugin - Read and write files inside tar files without unpacking. +@@ -72,46 +70,6 @@ Based on the virt-v2v OVA importer written by Tomáš Golembiovský. + + Copyright (C) 2017 Red Hat Inc. + +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +- + =cut + + use strict; +diff --git a/plugins/tcl/Makefile.am b/plugins/tcl/Makefile.am +index fb21481..befaf07 100644 +--- a/plugins/tcl/Makefile.am ++++ b/plugins/tcl/Makefile.am +@@ -53,16 +53,16 @@ nbdkit_tcl_plugin_la_LDFLAGS = \ + -module -avoid-version -shared \ + $(TCL_LIBS) + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-tcl-plugin.3 + CLEANFILES += $(man_MANS) + + nbdkit-tcl-plugin.3: nbdkit-tcl-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=3 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/tcl/nbdkit-tcl-plugin.pod b/plugins/tcl/nbdkit-tcl-plugin.pod +index 17b5c5f..2d40ba1 100644 +--- a/plugins/tcl/nbdkit-tcl-plugin.pod ++++ b/plugins/tcl/nbdkit-tcl-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-tcl-plugin - nbdkit Tcl plugin +@@ -292,43 +290,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/vddk/Makefile.am b/plugins/vddk/Makefile.am +index 3b3e8aa..5d5762f 100644 +--- a/plugins/vddk/Makefile.am ++++ b/plugins/vddk/Makefile.am +@@ -54,16 +54,16 @@ nbdkit_vddk_plugin_la_LIBADD = \ + nbdkit_vddk_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-vddk-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-vddk-plugin.1: nbdkit-vddk-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod +index 241a992..25e78ff 100644 +--- a/plugins/vddk/nbdkit-vddk-plugin.pod ++++ b/plugins/vddk/nbdkit-vddk-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit +@@ -328,43 +326,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013-2017 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/xz/Makefile.am b/plugins/xz/Makefile.am +index 39baef8..9b20718 100644 +--- a/plugins/xz/Makefile.am ++++ b/plugins/xz/Makefile.am +@@ -56,16 +56,16 @@ nbdkit_xz_plugin_la_LIBADD = \ + nbdkit_xz_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-xz-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-xz-plugin.1: nbdkit-xz-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD + + endif +diff --git a/plugins/xz/nbdkit-xz-plugin.pod b/plugins/xz/nbdkit-xz-plugin.pod +index 7d8332a..e5e708f 100644 +--- a/plugins/xz/nbdkit-xz-plugin.pod ++++ b/plugins/xz/nbdkit-xz-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-xz-plugin - nbdkit xz plugin +@@ -96,43 +94,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2013 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/plugins/zero/Makefile.am b/plugins/zero/Makefile.am +index 11ccce0..0dcbbf0 100644 +--- a/plugins/zero/Makefile.am ++++ b/plugins/zero/Makefile.am +@@ -47,14 +47,14 @@ nbdkit_zero_plugin_la_CFLAGS = \ + nbdkit_zero_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +-if HAVE_POD2MAN ++if HAVE_POD + + man_MANS = nbdkit-zero-plugin.1 + CLEANFILES += $(man_MANS) + + nbdkit-zero-plugin.1: nbdkit-zero-plugin.pod +- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ +- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ +- mv $@.t $@ ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< + +-endif ++endif HAVE_POD +diff --git a/plugins/zero/nbdkit-zero-plugin.pod b/plugins/zero/nbdkit-zero-plugin.pod +index 015c70a..72bb1aa 100644 +--- a/plugins/zero/nbdkit-zero-plugin.pod ++++ b/plugins/zero/nbdkit-zero-plugin.pod +@@ -1,5 +1,3 @@ +-=encoding utf8 +- + =head1 NAME + + nbdkit-zero-plugin - nbdkit zero length plugin +@@ -31,43 +29,3 @@ Richard W.M. Jones + =head1 COPYRIGHT + + Copyright (C) 2018 Red Hat Inc. +- +-=head1 LICENSE +- +-Redistribution and use in source and binary forms, with or without +-modification, are permitted provided that the following conditions are +-met: +- +-=over 4 +- +-=item * +- +-Redistributions of source code must retain the above copyright +-notice, this list of conditions and the following disclaimer. +- +-=item * +- +-Redistributions in binary form must reproduce the above copyright +-notice, this list of conditions and the following disclaimer in the +-documentation and/or other materials provided with the distribution. +- +-=item * +- +-Neither the name of Red Hat nor the names of its contributors may be +-used to endorse or promote products derived from this software without +-specific prior written permission. +- +-=back +- +-THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +-SUCH DAMAGE. +diff --git a/podwrapper.pl.in b/podwrapper.pl.in +new file mode 100755 +index 0000000..6518b4b +--- /dev/null ++++ b/podwrapper.pl.in +@@ -0,0 +1,496 @@ ++#!/usr/bin/env perl ++# podwrapper.pl ++# @configure_input@ ++# Copyright (C) 2010-2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++use warnings; ++use strict; ++ ++use Pod::Usage; ++use Getopt::Long; ++use Pod::Man; ++use Pod::Simple; ++use Pod::Simple::Text; ++use Pod::Simple::XHTML; ++use File::Basename; ++ ++# https://www.redhat.com/archives/libguestfs/2013-May/thread.html#00088 ++eval { $Text::Wrap::huge = "overflow" }; ++ ++=head1 NAME ++ ++podwrapper.pl - Generate documentation from POD input files ++ ++=head1 SYNOPSIS ++ ++ EXTRA_DIST = foo.pod ++ ++ if HAVE_POD ++ ++ man_MANS = foo.1 ++ CLEANFILES += $(man_MANS) ++ ++ foo.1: foo.pod ++ $(PODWRAPPER) --section 1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< ++ ++ endif HAVE_POD ++ ++=head1 DESCRIPTION ++ ++podwrapper.pl is a Perl script that generates various output formats ++from POD input files that nbdkit uses for most documentation. ++ ++You must specify one input file, and one or more output formats. The ++output options are I<--man>, I<--html> and I<--text> (see below). ++ ++In C files, use a variation of the boilerplate shown in ++the L section above. ++ ++For information about the POD format, see L. ++ ++=head1 OPTIONS ++ ++=over 4 ++ ++=cut ++ ++my $help; ++ ++=item B<--help> ++ ++Display brief help. ++ ++=cut ++ ++my $html; ++ ++=item B<--html output.html> ++ ++Write a web page to C. If this option is not ++given, then no web page output is produced. ++ ++=cut ++ ++my @inserts; ++ ++=item B<--insert filename:__PATTERN__> ++ ++In the input file, replace the literal text C<__PATTERN__> with the ++replacement file C. You can give this option multiple ++times. ++ ++The contents of C are treated as POD. ++Compare and contrast with I<--verbatim>. ++ ++Although it is conventional to use C<__...__> (double underscores) for ++patterns, in fact you can use any string as the pattern. ++ ++=cut ++ ++my $man; ++ ++=item B<--man output.n> ++ ++Write a man page to C (C is the manual section number). ++If this option is not given, then no man page output is produced. ++ ++=cut ++ ++my $name; ++ ++=item B<--name name> ++ ++Set the name of the man page. If not set, defaults to the basename ++of the input file. ++ ++=cut ++ ++my $section; ++ ++=item B<--section N> ++ ++Set the section of the man page (a number such as C<1> for ++command line utilities or C<3> for C API documentation). If ++not set, defaults to C<1>. ++ ++=cut ++ ++my $text; ++ ++=item B<--text output.txt> ++ ++Write a text file to C. If this option is not ++given, then no text output is produced. ++ ++=cut ++ ++my @verbatims; ++ ++=item B<--verbatim filename:__PATTERN__> ++ ++In the input file, replace the literal text C<__PATTERN__> with the ++replacement file C. You can give this option multiple ++times. ++ ++The contents of C are inserted as verbatim text, and ++are I interpreted as POD. ++Compare and contrast with I<--insert>. ++ ++Although it is conventional to use C<__...__> (double underscores) for ++patterns, in fact you can use any string as the pattern. ++ ++=cut ++ ++# Clean up the program name. ++my $progname = $0; ++$progname =~ s{.*/}{}; ++ ++# Parse options. ++GetOptions ("help|?" => \$help, ++ "html=s" => \$html, ++ "insert=s" => \@inserts, ++ "man=s" => \$man, ++ "name=s" => \$name, ++ "section=s" => \$section, ++ "text=s" => \$text, ++ "verbatim=s" => \@verbatims, ++ ) or pod2usage (2); ++pod2usage (1) if $help; ++ ++die "$progname: missing argument: podwrapper input.pod\n" unless @ARGV == 1; ++my $input = $ARGV[0]; ++ ++# There should be at least one output. ++die "$progname: $input: no output format specified. Use --man and/or --html and/or --text.\n" ++ unless defined $man || defined $html || defined $text; ++ ++# Default for $name and $section. ++$name = basename ($input, ".pod") unless defined $name; ++$section = 1 unless defined $section; ++ ++# Note that these @...@ are substituted by ./configure. ++my $abs_top_srcdir = "@abs_top_srcdir@"; ++my $abs_top_builddir = "@abs_top_builddir@"; ++my $package_name = "@PACKAGE_NAME@"; ++my $package_version = "@PACKAGE_VERSION@"; ++ ++die "$progname: ./configure substitutions were not performed" ++ unless $abs_top_srcdir && $abs_top_builddir && ++ $package_name && $package_version; ++ ++# Create a stable date (thanks Hilko Bengen). ++my $date; ++my $filename = "$abs_top_srcdir/.git"; ++if (!$date && -d $filename) { ++ local $ENV{GIT_DIR} = $filename; ++ $_ = `git show -s --format=%ci`; ++ $date = $1 if /^(\d+-\d+-\d+)\s/; ++} ++if (!$date) { ++ my ($day, $month, $year) = (localtime)[3,4,5]; ++ $date = sprintf ("%04d-%02d-%02d", $year+1900, $month+1, $day); ++} ++ ++# Create a release string. ++my $release = "$package_name-$package_version"; ++ ++#print "input=$input\n"; ++#print "name=$name\n"; ++#print "section=$section\n"; ++#print "date=$date\n"; ++ ++# Read the input. ++my $content = read_whole_file ($input); ++ ++# Perform @inserts. ++foreach (@inserts) { ++ my @a = split /:/, $_, 2; ++ die "$progname: $input: no colon in parameter of --insert\n" unless @a >= 2; ++ my $replacement = read_whole_file ($a[0]); ++ my $oldcontent = $content; ++ $content =~ s/$a[1]/$replacement/ge; ++ die "$progname: $input: could not find pattern '$a[1]' in input file\n" ++ if $content eq $oldcontent; ++} ++ ++# Turn external links to this man page into simple cross-section links. ++$content =~ s,\QL<$name($section)/\E,L= 2; ++ my $replacement = read_verbatim_file ($a[0]); ++ my $oldcontent = $content; ++ $content =~ s/$a[1]/$replacement/ge; ++ die "$progname: $input: could not find pattern '$a[1]' in input file\n" ++ if $content eq $oldcontent; ++} ++ ++# There should be no =encoding line present in the content (we will add one). ++die "$progname: $input: =encoding must not be present in input\n" ++ if $content =~ /^=encoding/m; ++ ++$content =~ s/^=(.*)/\n=encoding utf8\n\n=$1/m; ++ ++# Verify sections present / not present. ++die "$progname: $input: missing DESCRIPTION section\n" ++ if $content !~ /^=head1 DESCRIPTION/m; ++die "$progname: $input: missing AUTHOR or AUTHORS section\n" ++ unless $content =~ /^=head1 AUTHOR/m; ++die "$progname: $input: missing SEE ALSO section\n" ++ unless $content =~ /^=head1 SEE ALSO/m; ++die "$progname: $input: missing COPYRIGHT section\n" ++ unless $content =~ /^=head1 COPYRIGHT/m; ++die "$progname: $input: BUGS is now added automatically, do not add it to the POD file\n" ++ if $content =~ /^=head1 (REPORTING )?BUGS/m; ++die "$progname: $input: LICENSE is now added automatically, do not add it to the POD file\n" ++ if $content =~ /^=head1 LICENSE/m; ++ ++# Add standard LICENSE section at the end. ++$content .= ++" ++ ++=head1 LICENSE ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are ++met: ++ ++=over 4 ++ ++=item * ++ ++Redistributions of source code must retain the above copyright ++notice, this list of conditions and the following disclaimer. ++ ++=item * ++ ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++ ++=item * ++ ++Neither the name of Red Hat nor the names of its contributors may be ++used to endorse or promote products derived from this software without ++specific prior written permission. ++ ++=back ++ ++THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGE. ++"; ++ ++# Check no over-long lines in the input. (As a special exception this ++# is permitted in verbatim sections or if the line contains a URL). ++my @lines = split /\n/, $content; ++foreach (@lines) { ++ die "$progname: $input: line too long:\n$_\n" ++ if length $_ > 76 && ++ substr ($_, 0, 1) ne ' ' && ++ ! m/https?:/; ++} ++ ++# Output man page. ++SUBMAN: { ++ package Podwrapper::Man; ++ ++ use vars qw(@ISA $VERSION); ++ @ISA = qw(Pod::Man); ++ $VERSION = $package_version; ++ ++ # Override the L<> method. ++ sub cmd_l ++ { ++ my ($self, $attrs, $text) = @_; ++ return $text; ++ } ++} ++ ++if ($man) { ++ my $parser = Podwrapper::Man->new ( ++ name => $name, ++ release => $release, section => $section, ++ center => "Virtualization Support", ++ date => $date, ++ stderr => 1, utf8 => 1 ++ ); ++ my $output; ++ $parser->no_errata_section (1); ++ $parser->complain_stderr (1); ++ $parser->output_string (\$output); ++ $parser->parse_string_document ($content) ++ or die "$progname: could not parse input document"; ++ open OUT, ">$man" or die "$progname: $man: $!"; ++ print OUT $output or die "$progname: $man: $!"; ++ close OUT or die "$progname: $man: $!"; ++ if ($parser->any_errata_seen) { ++ unlink $man; ++ die "$input: errors or warnings in this POD file, see messages above\n" ++ } ++ #print "$progname: wrote $man\n"; ++} ++ ++# Output HTML. ++SUBHTML: { ++ # Subclass Pod::Simple::XHTML. See the documentation. ++ package Podwrapper::XHTML; ++ ++ use vars qw(@ISA $VERSION); ++ @ISA = qw(Pod::Simple::XHTML); ++ $VERSION = $package_version; ++ ++ sub is_an_nbdkit_page ++ { ++ local $_ = shift; ++ ++ return 1 if /^nbdkit/; ++ return 0; ++ } ++ ++ sub resolve_man_page_link ++ { ++ my $self = shift; ++ my $name = $_[0]; # eg. "nbdkit(1)", can be undef ++ my $anchor = $_[1]; # eg. "SYNOPSIS", can be undef ++ my $r = ""; ++ if (defined $name) { ++ return $self->SUPER::resolve_man_page_link (@_) ++ unless is_an_nbdkit_page ($name); ++ $name =~ s/\((.*)\)$/.$1/; ++ $r .= "$name.html"; ++ } ++ $r .= "#" . $self->idify ($anchor, 1) if defined $anchor; ++ $r; ++ } ++ ++ # For some reason Pod::Simple::XHTML usually cannot find a ++ # title for the page. This defaults the HTML field ++ # to the same as the man page name. ++ sub default_title { $name } ++} ++ ++if ($html) { ++ mkdir "$abs_top_builddir/html"; ++ ++ my $parser = Podwrapper::XHTML->new; ++ my $output; ++ $parser->no_errata_section (1); ++ $parser->complain_stderr (1); ++ $parser->output_string (\$output); ++ # Added in Pod::Simple 3.16, 2011-03-14. ++ eval { $parser->html_charset ("UTF-8") }; ++ $parser->html_css ("pod.css"); ++ $parser->index (1); ++ $parser->parse_string_document ($content); ++ ++ # Hack for Perl 5.16. ++ $output =~ s{/>pod.css<}{/>\n<}; ++ ++ open OUT, ">$html" or die "$progname: $html: $!"; ++ print OUT $output or die "$progname: $html: $!"; ++ close OUT or die "$progname: $html: $!"; ++ if ($parser->any_errata_seen) { ++ unlink $html; ++ die "$input: errors or warnings in this POD file, see messages above\n" ++ } ++ #print "$progname: wrote $html\n"; ++} ++ ++# Output text. ++if ($text) { ++ my $parser = Pod::Simple::Text->new; ++ my $output; ++ $parser->no_errata_section (1); ++ $parser->complain_stderr (1); ++ $parser->output_string (\$output); ++ $parser->parse_string_document ($content); ++ open OUT, ">$text" or die "$progname: $text: $!"; ++ binmode OUT, ":utf8"; ++ print OUT $output or die "$progname: $text: $!"; ++ close OUT or die "$progname: $text: $!"; ++ if ($parser->any_errata_seen) { ++ unlink $text; ++ die "$input: errors or warnings in this POD file, see messages above\n" ++ } ++ #print "$progname: wrote $text\n"; ++} ++ ++sub read_whole_file ++{ ++ my $input = shift; ++ local $/ = undef; ++ ++ open FILE, "<:encoding(UTF-8)", $input or die "$progname: $input: $!"; ++ $_ = <FILE>; ++ close FILE; ++ $_; ++} ++ ++sub read_verbatim_file ++{ ++ my $input = shift; ++ my $r = ""; ++ ++ open FILE, "<:encoding(UTF-8)", $input or die "$progname: $input: $!"; ++ while (<FILE>) { ++ $r .= " $_"; ++ } ++ close FILE; ++ $r; ++} ++ ++=head1 SEE ALSO ++ ++L<perlpod(1)>, ++L<Pod::Simple(3pm)>. ++ ++=head1 AUTHOR ++ ++Richard W.M. Jones. ++ ++=head1 COPYRIGHT ++ ++Copyright (C) 2012-2018 Red Hat Inc. +-- +2.17.1 + diff --git a/nbdkit.spec b/nbdkit.spec index b7ef724..aafa58f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ Name: nbdkit Version: 1.5.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -34,7 +34,18 @@ Source1: http://libguestfs.org/download/nbdkit/1.5-development/%{name}-%{ Source2: libguestfs.keyring %endif -%global patches_touch_autotools 0 +Patch0001: 0001-bash-Don-t-define-bashcompdir-twice.patch +Patch0002: 0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch +Patch0003: 0003-streaming-Add-illustrations-to-the-man-page.patch +Patch0004: 0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch +Patch0005: 0005-Add-pattern-plugin.patch +Patch0006: 0006-tests-Add-a-second-test-of-the-offset-filter.patch +Patch0007: 0007-tests-Test-largest-possible-plugin-size.patch +Patch0008: 0008-docs-Fix-broken-cross-reference-in-man-page.patch +Patch0009: 0009-docs-Break-up-some-over-long-lines-in-documentation.patch +Patch0010: 0010-docs-Add-podwrapper-from-libguestfs.patch + +%global patches_touch_autotools 1 %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -150,6 +161,10 @@ trivial dependencies. A null (bitbucket) plugin. +* nbdkit-pattern-plugin + + Fixed test pattern. + * nbdkit-random-plugin Random content plugin for testing. @@ -578,6 +593,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so @@ -586,6 +602,7 @@ popd %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* @@ -758,6 +775,10 @@ popd %changelog +* Sun Jul 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-3 +- Add all upstream patches since 1.5.0. +- New pattern plugin. + * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 149038540362db6658208d97e8c8b3a8ea492f09 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 17:36:29 +0100 Subject: [PATCH 108/683] Add fixes for 32 bit platforms i686 and armv7. --- ...-bash-Don-t-define-bashcompdir-twice.patch | 2 +- ...s-to-improve-the-flow-of-the-man-pag.patch | 2 +- ...ng-Add-illustrations-to-the-man-page.patch | 2 +- ...ua-into-alphabetical-order-in-the-li.patch | 2 +- 0005-Add-pattern-plugin.patch | 2 +- ...d-a-second-test-of-the-offset-filter.patch | 2 +- ...ts-Test-largest-possible-plugin-size.patch | 2 +- ...x-broken-cross-reference-in-man-page.patch | 2 +- ...ome-over-long-lines-in-documentation.patch | 2 +- ...-docs-Add-podwrapper-from-libguestfs.patch | 2 +- 0011-Rework-README-file.patch | 230 ++++++++++++++++++ ...dom-Make-these-plugins-work-on-32-bi.patch | 142 +++++++++++ nbdkit.spec | 3 + 13 files changed, 385 insertions(+), 10 deletions(-) create mode 100644 0011-Rework-README-file.patch create mode 100644 0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch diff --git a/0001-bash-Don-t-define-bashcompdir-twice.patch b/0001-bash-Don-t-define-bashcompdir-twice.patch index 00fd704..dc7fcb7 100644 --- a/0001-bash-Don-t-define-bashcompdir-twice.patch +++ b/0001-bash-Don-t-define-bashcompdir-twice.patch @@ -1,7 +1,7 @@ From ef13e7db5d9d8e5ff6977821c3e798bb6c7725d9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 10 Jul 2018 10:28:44 +0100 -Subject: [PATCH 01/10] bash: Don't define bashcompdir twice. +Subject: [PATCH 01/12] bash: Don't define bashcompdir twice. --- bash/Makefile.am | 1 - diff --git a/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch b/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch index ee26f6e..8ce1119 100644 --- a/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch +++ b/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch @@ -1,7 +1,7 @@ From 9fb8c7b550cddb6504386a8776e0abaeac4c1f20 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 Jul 2018 21:25:13 +0100 -Subject: [PATCH 02/10] xz: Minor rewrites to improve the flow of the man page. +Subject: [PATCH 02/12] xz: Minor rewrites to improve the flow of the man page. --- plugins/xz/nbdkit-xz-plugin.pod | 26 ++++++++++++++------------ diff --git a/0003-streaming-Add-illustrations-to-the-man-page.patch b/0003-streaming-Add-illustrations-to-the-man-page.patch index 0f8d30d..77fe932 100644 --- a/0003-streaming-Add-illustrations-to-the-man-page.patch +++ b/0003-streaming-Add-illustrations-to-the-man-page.patch @@ -1,7 +1,7 @@ From 166be40fa335649caf2615b384cc006d92bc5170 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 11:14:49 +0100 -Subject: [PATCH 03/10] streaming: Add illustrations to the man page. +Subject: [PATCH 03/12] streaming: Add illustrations to the man page. Also improve the flow of the language and provide cross-reference to captive nbdkit. diff --git a/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch b/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch index 7a43b0a..d0b4d72 100644 --- a/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch +++ b/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch @@ -1,7 +1,7 @@ From bc3b8c27b40165af6d7dcca15dfae98cbf7566e8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 11:51:39 +0100 -Subject: [PATCH 04/10] tests: Put test.lua into alphabetical order in the +Subject: [PATCH 04/12] tests: Put test.lua into alphabetical order in the list. Fixes commit ff2b304e9c5ddef01081b9aef113bf0cf6dfabac. diff --git a/0005-Add-pattern-plugin.patch b/0005-Add-pattern-plugin.patch index 22fff7c..1b063c9 100644 --- a/0005-Add-pattern-plugin.patch +++ b/0005-Add-pattern-plugin.patch @@ -1,7 +1,7 @@ From 0a9205dc8c3b5d5703bd71bc58db503c05b0063b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 Jul 2018 13:30:32 +0100 -Subject: [PATCH 05/10] Add pattern plugin. +Subject: [PATCH 05/12] Add pattern plugin. This generates a simple, fixed test pattern which can be used to test nbdkit filters (especially nbdkit-offset-filter), and also NBD diff --git a/0006-tests-Add-a-second-test-of-the-offset-filter.patch b/0006-tests-Add-a-second-test-of-the-offset-filter.patch index e5de95a..44ffb29 100644 --- a/0006-tests-Add-a-second-test-of-the-offset-filter.patch +++ b/0006-tests-Add-a-second-test-of-the-offset-filter.patch @@ -1,7 +1,7 @@ From 97a5e57037aa0130a1e46aa6162171d941a58d62 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 Jul 2018 14:10:11 +0100 -Subject: [PATCH 06/10] tests: Add a second test of the offset filter. +Subject: [PATCH 06/12] tests: Add a second test of the offset filter. This tests that the offset filter works for non-aligned offsets and that nbdkit can handle virtual disks which are ~ 2^63 bits in size. diff --git a/0007-tests-Test-largest-possible-plugin-size.patch b/0007-tests-Test-largest-possible-plugin-size.patch index 8b7971c..f8e3d3e 100644 --- a/0007-tests-Test-largest-possible-plugin-size.patch +++ b/0007-tests-Test-largest-possible-plugin-size.patch @@ -1,7 +1,7 @@ From 4e1a521228115c04cc7c5a2f625218a9bbd5101f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 11:46:12 +0100 -Subject: [PATCH 07/10] tests: Test largest possible plugin size. +Subject: [PATCH 07/12] tests: Test largest possible plugin size. This test is incomplete because it is too large for qemu to open. However at least we are testing that nbdkit works. diff --git a/0008-docs-Fix-broken-cross-reference-in-man-page.patch b/0008-docs-Fix-broken-cross-reference-in-man-page.patch index dd2fdc9..127cee6 100644 --- a/0008-docs-Fix-broken-cross-reference-in-man-page.patch +++ b/0008-docs-Fix-broken-cross-reference-in-man-page.patch @@ -1,7 +1,7 @@ From 4c3ea9514184958c356ff6f613d43b896cb26b0e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 15:15:44 +0100 -Subject: [PATCH 08/10] docs: Fix broken cross-reference in man page. +Subject: [PATCH 08/12] docs: Fix broken cross-reference in man page. --- docs/nbdkit-filter.pod.in | 2 +- diff --git a/0009-docs-Break-up-some-over-long-lines-in-documentation.patch b/0009-docs-Break-up-some-over-long-lines-in-documentation.patch index 53dacc1..f300047 100644 --- a/0009-docs-Break-up-some-over-long-lines-in-documentation.patch +++ b/0009-docs-Break-up-some-over-long-lines-in-documentation.patch @@ -1,7 +1,7 @@ From cf495ffb975d4557a6092a19f382a9a69b457300 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 16:26:18 +0100 -Subject: [PATCH 09/10] docs: Break up some over-long lines in documentation. +Subject: [PATCH 09/12] docs: Break up some over-long lines in documentation. We will enforce a limit of 76 chars (in most cases) in a future commit. diff --git a/0010-docs-Add-podwrapper-from-libguestfs.patch b/0010-docs-Add-podwrapper-from-libguestfs.patch index fc6e859..33e0b7c 100644 --- a/0010-docs-Add-podwrapper-from-libguestfs.patch +++ b/0010-docs-Add-podwrapper-from-libguestfs.patch @@ -1,7 +1,7 @@ From 24a0a8ced608395b614ad42ae550588e08d3c636 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Jul 2018 14:13:53 +0100 -Subject: [PATCH 10/10] docs: Add podwrapper from libguestfs. +Subject: [PATCH 10/12] docs: Add podwrapper from libguestfs. Use podwrapper from libguestfs to generate man pages instead of pod2man. This allows finer control over how man pages are generated, diff --git a/0011-Rework-README-file.patch b/0011-Rework-README-file.patch new file mode 100644 index 0000000..0facc9d --- /dev/null +++ b/0011-Rework-README-file.patch @@ -0,0 +1,230 @@ +From 730f8388467426bfd061151205d93391c942b86a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 15 Jul 2018 17:26:59 +0100 +Subject: [PATCH 11/12] Rework README file. + +--- + README | 119 +++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 65 insertions(+), 54 deletions(-) + +diff --git a/README b/README +index 685b41f..5114b31 100644 +--- a/README ++++ b/README +@@ -1,7 +1,7 @@ +-NBD is a protocol for accessing Block Devices (hard disks and +-disk-like things) over a Network. ++NBD — Network Block Device — is a protocol for accessing Block Devices ++(hard disks and disk-like things) over a Network. + +-'nbdkit' is a toolkit for creating NBD servers. ++nbdkit is a toolkit for creating NBD servers. + + The key features are: + +@@ -13,24 +13,39 @@ The key features are: + libraries or included in proprietary code. + + * Well-documented, simple plugin API with a stable ABI guarantee. +- Lets you export "unconventional" block devices easily. ++ Lets you export “unconventional” block devices easily. + + * You can write plugins in C, Lua, Perl, Python, OCaml, Ruby or Tcl. + +-For documentation, see the docs/ directory. ++ * Filters can be stacked in front of plugins to transform the output. + +-For plugins and examples, see the plugins/ directory. ++For documentation, see the ‘docs/’ directory. + +-License +-------- ++For plugins, examples and filters, see the ‘plugins/’ and ‘filters/’ ++directories. ++ ++LICENSE ++======= + + This software is copyright (C) Red Hat Inc. and licensed under a BSD +-license. See LICENSE for details. ++license. See ‘LICENSE’ for details. + +-Building from source +--------------------- ++BUILDING FROM SOURCE ++==================== + +-By default nbdkit needs nothing except Linux and reasonably recent gcc. ++Requirements ++------------ ++ ++To build the basic server and some plugins nbdkit needs nothing except ++Linux and reasonably recent gcc. ++ ++Although it is possible to build without it, it’s recommended to ++enable TLS support for which you will need: ++ ++ - gnutls >= 3.3.0 ++ ++Optional dependencies ++--------------------- + + To build the man pages, you will optionally need to install: + +@@ -38,13 +53,6 @@ To build the man pages, you will optionally need to install: + + - Pod::Man and Pod::Simple (perl library) + +-There are some *optional* libraries you may want to install for +-plugins or extra features. +- +-For TLS support: +- +- - gnutls >= 3.3.0 +- + For the gzip plugin: + + - zlib +@@ -79,19 +87,22 @@ For the VDDK plugin: + + For the Perl, example4 and tar plugins: + ++ - perl interpreter ++ + - perl development libraries + + - perl module ExtUtils::Embed + + For the Python plugin: + +- - python development libraries ++ - python interpreter + (either version 2 or 3 may be used) + ++ - python development libraries ++ + For the OCaml plugin: + +- - OCaml >= 4.02.2 which has support for shared libraries, see: +- http://caml.inria.fr/mantis/view.php?id=6693 ++ - OCaml >= 4.02.2 + + For the Tcl plugin: + +@@ -109,81 +120,81 @@ To run the test suite: + + - bash + +-To test for memory leaks ('make check-valgrind'): ++To test for memory leaks (‘make check-valgrind’): + + - valgrind program and development headers + + For non-essential enhancements to the test suite: + ++ - qemu-io (usually shipped with qemu) ++ + - socat + + - ss (from iproute package) + +-After installing any dependencies: ++Building ++-------- + +- To build from tarball: To build from git: +- ---------------------- ------------------ +- autoreconf -i +- ./configure ./configure +- make make +- make check make check ++ To build from tarball: To build from git: ++ ---------------------- ------------------ ++ autoreconf -i ++ ./configure ./configure ++ make make ++ make check make check + + To run nbdkit from the source directory, use the top level ./nbdkit + script. It will run nbdkit and plugins from the locally compiled + directory: + +- $ ./nbdkit example1 -f -v +- ./src/nbdkit ./plugins/example1/.libs/nbdkit-example1-plugin.so -f -v +- [etc] ++ $ ./nbdkit example1 -f -v ++ ./src/nbdkit ./plugins/example1/.libs/nbdkit-example1-plugin.so -f -v ++ [etc] + + Optionally run this command as root to install everything: + +- make install ++ make install + + Python + ------ + + By default nbdkit uses the Python version of the Python interpreter +-called "python" on the current $PATH. To use another version of ++called “python” on the current $PATH. To use another version of + Python you may need to set the PYTHON variable when configuring. For + example: + +- ./configure PYTHON=/usr/bin/python3 ++ ./configure PYTHON=/usr/bin/python3 + +-Tests +------ ++Running the tests ++----------------- + + You will need to install libguestfs to run most of the test suite: + +- make check ++ make check + + The test suite is fairly comprehensive. It runs the newly built + nbdkit + plugins as a captive process, and tests them using + libguestfs. If there is a failure, look at the corresponding +-tests/*.log file for debug information. ++‘tests/*.log’ file for debug information. + +-Developers +----------- ++DOWNLOAD TARBALLS ++================= ++ ++Tarballs are available from: ++http://libguestfs.org/download/nbdkit ++ ++DEVELOPERS ++========== + + Install the valgrind program and development headers. + + Use: + +- ./configure --enable-gcc-warnings --enable-valgrind ++ ./configure --enable-gcc-warnings --enable-valgrind + + When testing use: + +- make check +- make check-valgrind +- +-Packager information +--------------------- +- +-Tarballs are available from: +-http://libguestfs.org/download/nbdkit +- +-Developer information +---------------------- ++ make check ++ make check-valgrind + + For development ideas, see the TODO file. + +-- +2.17.1 + diff --git a/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch b/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch new file mode 100644 index 0000000..715b04e --- /dev/null +++ b/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch @@ -0,0 +1,142 @@ +From 0c710f36c5e686ae0f02c67dc6b19e1622e23d8a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 15 Jul 2018 17:32:22 +0100 +Subject: [PATCH 12/12] null, pattern, random: Make these plugins work on 32 + bit machines. + +These plugins had copied code from the nbdkit-memory-plugin. The +memory plugin needs to store actual data in an array so uses size_t. +However these other plugins don't have to store anything and so shoule +use int64_t, enabling them to work on 32 bit platforms. +--- + plugins/null/null.c | 10 +++------- + plugins/pattern/pattern.c | 12 ++++-------- + plugins/random/random.c | 12 ++++-------- + 3 files changed, 11 insertions(+), 23 deletions(-) + +diff --git a/plugins/null/null.c b/plugins/null/null.c +index 905cc64..1daafac 100644 +--- a/plugins/null/null.c ++++ b/plugins/null/null.c +@@ -44,7 +44,7 @@ + #include <nbdkit-plugin.h> + + /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ +-static size_t size = 0; ++static int64_t size = 0; + + static int + null_config (const char *key, const char *value) +@@ -55,11 +55,7 @@ null_config (const char *key, const char *value) + r = nbdkit_parse_size (value); + if (r == -1) + return -1; +- if (r > SIZE_MAX) { +- nbdkit_error ("size > SIZE_MAX"); +- return -1; +- } +- size = (ssize_t) r; ++ size = r; + } + else { + nbdkit_error ("unknown parameter '%s'", key); +@@ -108,7 +104,7 @@ null_close (void *handle) + static int64_t + null_get_size (void *handle) + { +- return (int64_t) size; ++ return size; + } + + /* Read data. */ +diff --git a/plugins/pattern/pattern.c b/plugins/pattern/pattern.c +index e1dc798..11b258d 100644 +--- a/plugins/pattern/pattern.c ++++ b/plugins/pattern/pattern.c +@@ -45,7 +45,7 @@ + #include <nbdkit-plugin.h> + + /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ +-static size_t size = 0; ++static int64_t size = 0; + + static int + pattern_config (const char *key, const char *value) +@@ -56,11 +56,7 @@ pattern_config (const char *key, const char *value) + r = nbdkit_parse_size (value); + if (r == -1) + return -1; +- if (r > SIZE_MAX) { +- nbdkit_error ("size > SIZE_MAX"); +- return -1; +- } +- size = (ssize_t) r; ++ size = r; + } + else { + nbdkit_error ("unknown parameter '%s'", key); +@@ -89,7 +85,7 @@ pattern_open (int readonly) + static int64_t + pattern_get_size (void *handle) + { +- return (int64_t) size; ++ return size; + } + + #define MIN(a, b) ((a) < (b) ? (a) : (b)) +@@ -102,7 +98,7 @@ pattern_pread (void *handle, void *buf, uint32_t count, uint64_t offset, + char *b = buf; + uint64_t d; + uint64_t o; +- size_t n; ++ uint32_t n; + + while (count > 0) { + d = htobe64 (offset & ~7); +diff --git a/plugins/random/random.c b/plugins/random/random.c +index 185609d..8adc26e 100644 +--- a/plugins/random/random.c ++++ b/plugins/random/random.c +@@ -45,7 +45,7 @@ + #include <nbdkit-plugin.h> + + /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ +-static size_t size = 0; ++static int64_t size = 0; + + /* Seed. */ + static uint32_t seed; +@@ -95,11 +95,7 @@ random_config (const char *key, const char *value) + r = nbdkit_parse_size (value); + if (r == -1) + return -1; +- if (r > SIZE_MAX) { +- nbdkit_error ("size > SIZE_MAX"); +- return -1; +- } +- size = (ssize_t) r; ++ size = r; + } + else { + nbdkit_error ("unknown parameter '%s'", key); +@@ -129,7 +125,7 @@ random_open (int readonly) + static int64_t + random_get_size (void *handle) + { +- return (int64_t) size; ++ return size; + } + + /* Read data. */ +@@ -137,7 +133,7 @@ static int + random_pread (void *handle, void *buf, uint32_t count, uint64_t offset, + uint32_t flags) + { +- size_t i; ++ uint32_t i; + unsigned char *b = buf; + uint32_t s; + +-- +2.17.1 + diff --git a/nbdkit.spec b/nbdkit.spec index aafa58f..03be5e6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,6 +44,8 @@ Patch0007: 0007-tests-Test-largest-possible-plugin-size.patch Patch0008: 0008-docs-Fix-broken-cross-reference-in-man-page.patch Patch0009: 0009-docs-Break-up-some-over-long-lines-in-documentation.patch Patch0010: 0010-docs-Add-podwrapper-from-libguestfs.patch +Patch0011: 0011-Rework-README-file.patch +Patch0012: 0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch %global patches_touch_autotools 1 %if 0%{patches_touch_autotools} @@ -778,6 +780,7 @@ popd * Sun Jul 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-3 - Add all upstream patches since 1.5.0. - New pattern plugin. +- Add fixes for 32 bit platforms i686 and armv7. * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 948daff1f0225e3af40652b1057fb7adf7d6168d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 20 Jul 2018 14:53:14 +0100 Subject: [PATCH 109/683] Small refactorings in the spec file. --- nbdkit.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 03be5e6..609b1e3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -19,6 +19,12 @@ # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 +# If there are patches which touch autotools files, set this to 1. +%global patches_touch_autotools %{nil} + +# The source directory. +%global source_directory 1.5-development + Name: nbdkit Version: 1.5.0 Release: 3%{?dist} @@ -27,9 +33,9 @@ Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit -Source0: http://libguestfs.org/download/nbdkit/1.5-development/%{name}-%{version}.tar.gz +Source0: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz %if 0%{verify_tarball_signature} -Source1: http://libguestfs.org/download/nbdkit/1.5-development/%{name}-%{version}.tar.gz.sig +Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz.sig # Keyring used to verify tarball signature. Source2: libguestfs.keyring %endif @@ -46,8 +52,6 @@ Patch0009: 0009-docs-Break-up-some-over-long-lines-in-documentation.patch Patch0010: 0010-docs-Add-podwrapper-from-libguestfs.patch Patch0011: 0011-Rework-README-file.patch Patch0012: 0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch - -%global patches_touch_autotools 1 %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -777,6 +781,8 @@ popd %changelog +- Small refactorings in the spec file. + * Sun Jul 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-3 - Add all upstream patches since 1.5.0. - New pattern plugin. From 4a0a6e00e3bf4f936188eb4cf1b4f82267b68545 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 20 Jul 2018 14:53:36 +0100 Subject: [PATCH 110/683] New upstream version 1.5.1. Remove patches, all upstream in this version. --- ...-bash-Don-t-define-bashcompdir-twice.patch | 24 - ...s-to-improve-the-flow-of-the-man-pag.patch | 60 - ...ng-Add-illustrations-to-the-man-page.patch | 56 - ...ua-into-alphabetical-order-in-the-li.patch | 28 - 0005-Add-pattern-plugin.patch | 548 --- ...d-a-second-test-of-the-offset-filter.patch | 166 - ...ts-Test-largest-possible-plugin-size.patch | 169 - ...x-broken-cross-reference-in-man-page.patch | 25 - ...ome-over-long-lines-in-documentation.patch | 103 - ...-docs-Add-podwrapper-from-libguestfs.patch | 3976 ----------------- 0011-Rework-README-file.patch | 230 - ...dom-Make-these-plugins-work-on-32-bi.patch | 142 - nbdkit.spec | 19 +- sources | 4 +- 14 files changed, 7 insertions(+), 5543 deletions(-) delete mode 100644 0001-bash-Don-t-define-bashcompdir-twice.patch delete mode 100644 0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch delete mode 100644 0003-streaming-Add-illustrations-to-the-man-page.patch delete mode 100644 0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch delete mode 100644 0005-Add-pattern-plugin.patch delete mode 100644 0006-tests-Add-a-second-test-of-the-offset-filter.patch delete mode 100644 0007-tests-Test-largest-possible-plugin-size.patch delete mode 100644 0008-docs-Fix-broken-cross-reference-in-man-page.patch delete mode 100644 0009-docs-Break-up-some-over-long-lines-in-documentation.patch delete mode 100644 0010-docs-Add-podwrapper-from-libguestfs.patch delete mode 100644 0011-Rework-README-file.patch delete mode 100644 0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch diff --git a/0001-bash-Don-t-define-bashcompdir-twice.patch b/0001-bash-Don-t-define-bashcompdir-twice.patch deleted file mode 100644 index dc7fcb7..0000000 --- a/0001-bash-Don-t-define-bashcompdir-twice.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ef13e7db5d9d8e5ff6977821c3e798bb6c7725d9 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 10 Jul 2018 10:28:44 +0100 -Subject: [PATCH 01/12] bash: Don't define bashcompdir twice. - ---- - bash/Makefile.am | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/bash/Makefile.am b/bash/Makefile.am -index f38b7a1..e46784c 100644 ---- a/bash/Makefile.am -+++ b/bash/Makefile.am -@@ -36,7 +36,6 @@ EXTRA_DIST = README - - if HAVE_BASH_COMPLETION - --bashcompdir = @bashcompdir@ - dist_bashcomp_DATA = nbdkit - - endif --- -2.17.1 - diff --git a/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch b/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch deleted file mode 100644 index 8ce1119..0000000 --- a/0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 9fb8c7b550cddb6504386a8776e0abaeac4c1f20 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 14 Jul 2018 21:25:13 +0100 -Subject: [PATCH 02/12] xz: Minor rewrites to improve the flow of the man page. - ---- - plugins/xz/nbdkit-xz-plugin.pod | 26 ++++++++++++++------------ - 1 file changed, 14 insertions(+), 12 deletions(-) - -diff --git a/plugins/xz/nbdkit-xz-plugin.pod b/plugins/xz/nbdkit-xz-plugin.pod -index 75cb881..7d8332a 100644 ---- a/plugins/xz/nbdkit-xz-plugin.pod -+++ b/plugins/xz/nbdkit-xz-plugin.pod -@@ -24,29 +24,31 @@ find out how many streams and blocks are in an xz file by doing: - $ xz --list winxp.img.xz - Strms Blocks Compressed Uncompressed Ratio Check Filename - 1 1 2,100.0 MiB 6,144.0 MiB 0.342 CRC64 winxp.img.xz -- ============= -+ ↑↑↑ ↑↑↑ -+ streams blocks - - xz files are seekable on block boundaries only. Seeking is done by --seeking directly to the lower block boundary, then (slowly) --uncompressing data until the precise byte is reached. -- --B<To get best random access performance, you must prepare your xz -+seeking directly to the lower block boundary, then uncompressing data -+until the precise byte is reached. As uncompressing xz data is slow, -+B<to get best random access performance, you must prepare your xz - files with many small blocks.> - --To do this, use the I<--block-size> option with a small-ish block --size. For example the same image as above compressed with a 16 MB --block size: -+Use the I<--block-size> option with a small-ish block size. For -+example this is the same image compressed with a 16 MB block size: - - $ xz --best --block-size=16777216 winxp.img -+ ───────────────────── - $ xz --list winxp.img.xz - Strms Blocks Compressed Uncompressed Ratio Check Filename - 1 384 2,120.1 MiB 6,144.0 MiB 0.345 CRC64 winxp.img.xz -+ ↑↑↑ -+ blocks - --This file can be accessed randomly, and at most 16 MB of compressed --data will have to be uncompressed to seek to any byte. -+This file can be accessed randomly. At most 16 MB will have to be -+uncompressed to seek to any byte. - --Note as you would expect, xz cannot compress quite as efficiently when --using a small block size. The space penalty in the above example is -+As you would expect, xz cannot compress as efficiently when using a -+smaller block size. The space penalty in the above example is - S<E<lt> 1%> of the compressed file size. - - =head1 PARAMETERS --- -2.17.1 - diff --git a/0003-streaming-Add-illustrations-to-the-man-page.patch b/0003-streaming-Add-illustrations-to-the-man-page.patch deleted file mode 100644 index 77fe932..0000000 --- a/0003-streaming-Add-illustrations-to-the-man-page.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 166be40fa335649caf2615b384cc006d92bc5170 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 11:14:49 +0100 -Subject: [PATCH 03/12] streaming: Add illustrations to the man page. - -Also improve the flow of the language and provide cross-reference to -captive nbdkit. ---- - plugins/streaming/nbdkit-streaming-plugin.pod | 25 ++++++++++++++++--- - 1 file changed, 21 insertions(+), 4 deletions(-) - -diff --git a/plugins/streaming/nbdkit-streaming-plugin.pod b/plugins/streaming/nbdkit-streaming-plugin.pod -index a4a9714..98e8337 100644 ---- a/plugins/streaming/nbdkit-streaming-plugin.pod -+++ b/plugins/streaming/nbdkit-streaming-plugin.pod -@@ -18,16 +18,33 @@ end of the disk without seeking backwards, then this plugin will turn - the resulting disk image into a stream of data which is written to the - named C<pipe> parameter. - --Typical usage is with qemu tools. For example: -+ ┌───────────┐ -+ client │ nbdkit │ plugin streams -+ writes ──────▶│ streaming │──────▶ data to pipe -+ │ plugin │ -+ └───────────┘ - -- qemu-img convert input -O raw output -+Typical usage is with qemu tools. The following command will I<not> -+work because the output is a pipe or socket: - --does I<not> work if C<output> is a pipe. However this does: -+ qemu-img convert input -O raw pipe - -- nbdkit -U /tmp/nbd.sock streaming pipe=output --run ' -+However this will work: -+ -+ nbdkit -U - streaming pipe=pipe --run ' - qemu-img convert -n input -O raw $nbd - ' - -+ ┌───────────┐ ┌───────────┐ -+ reads │ qemu-img │ │ nbdkit │ plugin streams -+ input ──────▶│ convert │──────▶│ streaming │──────▶ data to pipe -+ file │ command │ │ plugin │ -+ └───────────┘ ↑└───────────┘ -+ Unix domain socket (-U -) -+ -+For use of the I<--run> and I<-U -> options, see -+L<nbdkit(1)/CAPTIVE NBDKIT>. -+ - =head1 PARAMETERS - - =over 4 --- -2.17.1 - diff --git a/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch b/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch deleted file mode 100644 index d0b4d72..0000000 --- a/0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch +++ /dev/null @@ -1,28 +0,0 @@ -From bc3b8c27b40165af6d7dcca15dfae98cbf7566e8 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 11:51:39 +0100 -Subject: [PATCH 04/12] tests: Put test.lua into alphabetical order in the - list. - -Fixes commit ff2b304e9c5ddef01081b9aef113bf0cf6dfabac. ---- - tests/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 58d24fc..5f21e75 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -57,8 +57,8 @@ EXTRA_DIST = \ - test-help-plugin.sh \ - test-ip.sh \ - test-log.sh \ -- test-nozero.sh \ - test.lua \ -+ test-nozero.sh \ - test_ocaml_plugin.ml \ - test-ocaml.c \ - test-parallel-file.sh \ --- -2.17.1 - diff --git a/0005-Add-pattern-plugin.patch b/0005-Add-pattern-plugin.patch deleted file mode 100644 index 1b063c9..0000000 --- a/0005-Add-pattern-plugin.patch +++ /dev/null @@ -1,548 +0,0 @@ -From 0a9205dc8c3b5d5703bd71bc58db503c05b0063b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 7 Jul 2018 13:30:32 +0100 -Subject: [PATCH 05/12] Add pattern plugin. - -This generates a simple, fixed test pattern which can be used to test -nbdkit filters (especially nbdkit-offset-filter), and also NBD -clients. ---- - common-rules.mk | 1 + - configure.ac | 1 + - plugins/null/nbdkit-null-plugin.pod | 1 + - plugins/pattern/Makefile.am | 60 ++++++++++ - plugins/pattern/nbdkit-pattern-plugin.pod | 99 ++++++++++++++++ - plugins/pattern/pattern.c | 134 ++++++++++++++++++++++ - plugins/random/nbdkit-random-plugin.pod | 1 + - plugins/zero/nbdkit-zero-plugin.pod | 1 + - tests/Makefile.am | 4 + - tests/test-pattern.sh | 121 +++++++++++++++++++ - 10 files changed, 423 insertions(+) - create mode 100644 plugins/pattern/Makefile.am - create mode 100644 plugins/pattern/nbdkit-pattern-plugin.pod - create mode 100644 plugins/pattern/pattern.c - create mode 100755 tests/test-pattern.sh - -diff --git a/common-rules.mk b/common-rules.mk -index 5877907..01beff5 100644 ---- a/common-rules.mk -+++ b/common-rules.mk -@@ -46,6 +46,7 @@ plugins = \ - nbd \ - null \ - ocaml \ -+ pattern \ - perl \ - python \ - random \ -diff --git a/configure.ac b/configure.ac -index 6e8d3e2..6304ac8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -610,6 +610,7 @@ AC_CONFIG_FILES([Makefile - plugins/nbd/Makefile - plugins/null/Makefile - plugins/ocaml/Makefile -+ plugins/pattern/Makefile - plugins/perl/Makefile - plugins/python/Makefile - plugins/random/Makefile -diff --git a/plugins/null/nbdkit-null-plugin.pod b/plugins/null/nbdkit-null-plugin.pod -index 7bd7278..55affb8 100644 ---- a/plugins/null/nbdkit-null-plugin.pod -+++ b/plugins/null/nbdkit-null-plugin.pod -@@ -33,6 +33,7 @@ This parameter is required. - - L<nbdkit(1)>, - L<nbdkit-plugin(3)>, -+L<nbdkit-pattern-plugin(1)>, - L<nbdkit-random-plugin(1)>. - L<nbdkit-zero-plugin(1)>. - -diff --git a/plugins/pattern/Makefile.am b/plugins/pattern/Makefile.am -new file mode 100644 -index 0000000..da092db ---- /dev/null -+++ b/plugins/pattern/Makefile.am -@@ -0,0 +1,60 @@ -+# nbdkit -+# Copyright (C) 2017-2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+include $(top_srcdir)/common-rules.mk -+ -+EXTRA_DIST = nbdkit-pattern-plugin.pod -+ -+plugin_LTLIBRARIES = nbdkit-pattern-plugin.la -+ -+nbdkit_pattern_plugin_la_SOURCES = \ -+ pattern.c \ -+ $(top_srcdir)/include/nbdkit-plugin.h -+ -+nbdkit_pattern_plugin_la_CPPFLAGS = \ -+ -I$(top_srcdir)/include -+nbdkit_pattern_plugin_la_CFLAGS = \ -+ $(WARNINGS_CFLAGS) -+nbdkit_pattern_plugin_la_LDFLAGS = \ -+ -module -avoid-version -shared -+ -+if HAVE_POD2MAN -+ -+man_MANS = nbdkit-pattern-plugin.1 -+CLEANFILES += $(man_MANS) -+ -+nbdkit-pattern-plugin.1: nbdkit-pattern-plugin.pod -+ $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -+ if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -+ mv $@.t $@ -+ -+endif -diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod -new file mode 100644 -index 0000000..7a6b498 ---- /dev/null -+++ b/plugins/pattern/nbdkit-pattern-plugin.pod -@@ -0,0 +1,99 @@ -+=encoding utf8 -+ -+=head1 NAME -+ -+nbdkit-pattern-plugin - plugin to serve a fixed pattern of data for testing -+ -+=head1 SYNOPSIS -+ -+ nbdkit pattern size=SIZE -+ -+=head1 DESCRIPTION -+ -+C<nbdkit-pattern-plugin> is a plugin for L<nbdkit(1)> which serves a -+fixed pattern of data, read only. This is used for testing nbdkit -+filters and NBD clients. -+ -+The fixed pattern is the offset, as a 64 bit big endian integer, every -+8 bytes. In hexadecimal this looks like: -+ -+ offset data -+ 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 -+ 0010: 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 18 -+ 0020: 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 28 -+ └──────────┬──────────┘ -+ 64 bit big endian int which encodes the offset of -+ the first byte of this int in the file -+ -+The size of the virtual disk must be specified using the C<size> -+parameter. If the size is not a multiple of 8 then the last 8 byte -+offset in the pattern is truncated. -+ -+=head1 PARAMETERS -+ -+=over 4 -+ -+=item B<size=SIZE> -+ -+Specify the virtual size of the disk image. -+ -+This parameter is required. -+ -+=back -+ -+=head1 SEE ALSO -+ -+L<nbdkit(1)>, -+L<nbdkit-plugin(3)>, -+L<nbdkit-null-plugin(1)>, -+L<nbdkit-offset-filter(1)>, -+L<nbdkit-random-plugin(1)>, -+L<nbdkit-zero-plugin(1)>. -+ -+=head1 AUTHORS -+ -+Richard W.M. Jones -+ -+=head1 COPYRIGHT -+ -+Copyright (C) 2018 Red Hat Inc. -+ -+=head1 LICENSE -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are -+met: -+ -+=over 4 -+ -+=item * -+ -+Redistributions of source code must retain the above copyright -+notice, this list of conditions and the following disclaimer. -+ -+=item * -+ -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+ -+=item * -+ -+Neither the name of Red Hat nor the names of its contributors may be -+used to endorse or promote products derived from this software without -+specific prior written permission. -+ -+=back -+ -+THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+SUCH DAMAGE. -diff --git a/plugins/pattern/pattern.c b/plugins/pattern/pattern.c -new file mode 100644 -index 0000000..e1dc798 ---- /dev/null -+++ b/plugins/pattern/pattern.c -@@ -0,0 +1,134 @@ -+/* nbdkit -+ * Copyright (C) 2017-2018 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include <config.h> -+ -+#include <stdio.h> -+#include <stdlib.h> -+#include <stdint.h> -+#include <inttypes.h> -+#include <string.h> -+#include <errno.h> -+#include <time.h> -+ -+#define NBDKIT_API_VERSION 2 -+#include <nbdkit-plugin.h> -+ -+/* The size of disk in bytes (initialized by size=<SIZE> parameter). */ -+static size_t size = 0; -+ -+static int -+pattern_config (const char *key, const char *value) -+{ -+ int64_t r; -+ -+ if (strcmp (key, "size") == 0) { -+ r = nbdkit_parse_size (value); -+ if (r == -1) -+ return -1; -+ if (r > SIZE_MAX) { -+ nbdkit_error ("size > SIZE_MAX"); -+ return -1; -+ } -+ size = (ssize_t) r; -+ } -+ else { -+ nbdkit_error ("unknown parameter '%s'", key); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+#define pattern_config_help \ -+ "size=<SIZE> (required) Size of the backing disk" -+ -+#define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL -+ -+/* No meaning, just used as the address for the handle. */ -+static int ph; -+ -+/* Create the per-connection handle. */ -+static void * -+pattern_open (int readonly) -+{ -+ return &ph; -+} -+ -+/* Get the disk size. */ -+static int64_t -+pattern_get_size (void *handle) -+{ -+ return (int64_t) size; -+} -+ -+#define MIN(a, b) ((a) < (b) ? (a) : (b)) -+ -+/* Read data. */ -+static int -+pattern_pread (void *handle, void *buf, uint32_t count, uint64_t offset, -+ uint32_t flags) -+{ -+ char *b = buf; -+ uint64_t d; -+ uint64_t o; -+ size_t n; -+ -+ while (count > 0) { -+ d = htobe64 (offset & ~7); -+ o = offset & 7; -+ n = MIN (count, 8-o); -+ memcpy (b, (char *)&d + o, n); -+ b += 8-o; -+ offset += 8-o; -+ count -= n; -+ } -+ -+ return 0; -+} -+ -+static struct nbdkit_plugin plugin = { -+ .name = "pattern", -+ .version = PACKAGE_VERSION, -+ .config = pattern_config, -+ .config_help = pattern_config_help, -+ .open = pattern_open, -+ .get_size = pattern_get_size, -+ .pread = pattern_pread, -+ /* In this plugin, errno is preserved properly along error return -+ * paths from failed system calls. -+ */ -+ .errno_is_preserved = 1, -+}; -+ -+NBDKIT_REGISTER_PLUGIN(plugin) -diff --git a/plugins/random/nbdkit-random-plugin.pod b/plugins/random/nbdkit-random-plugin.pod -index e746699..6539d61 100644 ---- a/plugins/random/nbdkit-random-plugin.pod -+++ b/plugins/random/nbdkit-random-plugin.pod -@@ -44,6 +44,7 @@ If not specified then a random seed is chosen. - L<nbdkit(1)>, - L<nbdkit-plugin(3)>, - L<nbdkit-null-plugin(1)>, -+L<nbdkit-pattern-plugin(1)>, - L<nbdkit-zero-plugin(1)>. - - =head1 AUTHORS -diff --git a/plugins/zero/nbdkit-zero-plugin.pod b/plugins/zero/nbdkit-zero-plugin.pod -index 67763da..015c70a 100644 ---- a/plugins/zero/nbdkit-zero-plugin.pod -+++ b/plugins/zero/nbdkit-zero-plugin.pod -@@ -21,6 +21,7 @@ protocol and NBD clients. - L<nbdkit(1)>, - L<nbdkit-plugin(3)>, - L<nbdkit-null-plugin(1)>, -+L<nbdkit-pattern-plugin(1)>, - L<nbdkit-random-plugin(1)>. - - =head1 AUTHORS -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 5f21e75..354c12c 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -63,6 +63,7 @@ EXTRA_DIST = \ - test-ocaml.c \ - test-parallel-file.sh \ - test-parallel-nbd.sh \ -+ test-pattern.sh \ - test-python-exception.sh \ - test.pl \ - test.py \ -@@ -315,6 +316,9 @@ test_memory_SOURCES = test-memory.c test.h - test_memory_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_memory_LDADD = libtest.la $(LIBGUESTFS_LIBS) - -+# pattern plugin test. -+TESTS += test-pattern.sh -+ - # nbd plugin test. - LIBGUESTFS_TESTS += test-nbd - -diff --git a/tests/test-pattern.sh b/tests/test-pattern.sh -new file mode 100755 -index 0000000..2db4e0c ---- /dev/null -+++ b/tests/test-pattern.sh -@@ -0,0 +1,121 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Test the pattern plugin. -+# -+# Note we don't have any client which can issue misaligned NBD -+# requests. qemu-io will issue 512-byte aligned requests no matter -+# what read parameters we give it. Hence these tests are rather -+# limited. (XXX) -+ -+set -e -+ -+files="pattern.out pattern.pid pattern.sock" -+rm -f $files -+ -+# Test that qemu-io works -+if ! qemu-io --help >/dev/null; then -+ echo "$0: missing or broken qemu-io" -+ exit 77 -+fi -+ -+# Run nbdkit with pattern plugin. -+nbdkit -P pattern.pid -U pattern.sock pattern size=1G -+ -+# We may have to wait a short time for the pid file to appear. -+for i in `seq 1 10`; do -+ if test -f pattern.pid; then -+ break -+ fi -+ sleep 1 -+done -+if ! test -f pattern.pid; then -+ echo "$0: PID file was not created" -+ exit 1 -+fi -+ -+pid="$(cat pattern.pid)" -+ -+# Kill the nbdkit process on exit. -+cleanup () -+{ -+ status=$? -+ -+ kill $pid -+ rm -f $files -+ -+ exit $status -+} -+trap cleanup INT QUIT TERM EXIT ERR -+ -+qemu-io -r -f raw 'nbd+unix://?socket=pattern.sock' \ -+ -c 'r -v 0 512' | grep -E '^[[:xdigit:]]+:' > pattern.out -+if [ "$(cat pattern.out)" != "00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ................ -+00000010: 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 18 ................ -+00000020: 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 28 ................ -+00000030: 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 38 .......0.......8 -+00000040: 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 48 ...............H -+00000050: 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 58 .......P.......X -+00000060: 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 68 ...............h -+00000070: 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 78 .......p.......x -+00000080: 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 88 ................ -+00000090: 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 98 ................ -+000000a0: 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00 a8 ................ -+000000b0: 00 00 00 00 00 00 00 b0 00 00 00 00 00 00 00 b8 ................ -+000000c0: 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 c8 ................ -+000000d0: 00 00 00 00 00 00 00 d0 00 00 00 00 00 00 00 d8 ................ -+000000e0: 00 00 00 00 00 00 00 e0 00 00 00 00 00 00 00 e8 ................ -+000000f0: 00 00 00 00 00 00 00 f0 00 00 00 00 00 00 00 f8 ................ -+00000100: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 08 ................ -+00000110: 00 00 00 00 00 00 01 10 00 00 00 00 00 00 01 18 ................ -+00000120: 00 00 00 00 00 00 01 20 00 00 00 00 00 00 01 28 ................ -+00000130: 00 00 00 00 00 00 01 30 00 00 00 00 00 00 01 38 .......0.......8 -+00000140: 00 00 00 00 00 00 01 40 00 00 00 00 00 00 01 48 ...............H -+00000150: 00 00 00 00 00 00 01 50 00 00 00 00 00 00 01 58 .......P.......X -+00000160: 00 00 00 00 00 00 01 60 00 00 00 00 00 00 01 68 ...............h -+00000170: 00 00 00 00 00 00 01 70 00 00 00 00 00 00 01 78 .......p.......x -+00000180: 00 00 00 00 00 00 01 80 00 00 00 00 00 00 01 88 ................ -+00000190: 00 00 00 00 00 00 01 90 00 00 00 00 00 00 01 98 ................ -+000001a0: 00 00 00 00 00 00 01 a0 00 00 00 00 00 00 01 a8 ................ -+000001b0: 00 00 00 00 00 00 01 b0 00 00 00 00 00 00 01 b8 ................ -+000001c0: 00 00 00 00 00 00 01 c0 00 00 00 00 00 00 01 c8 ................ -+000001d0: 00 00 00 00 00 00 01 d0 00 00 00 00 00 00 01 d8 ................ -+000001e0: 00 00 00 00 00 00 01 e0 00 00 00 00 00 00 01 e8 ................ -+000001f0: 00 00 00 00 00 00 01 f0 00 00 00 00 00 00 01 f8 ................" ] -+then -+ echo "$0: unexpected pattern:" -+ cat pattern.out -+ exit 1 -+fi -+ -+# The cleanup() function is called implicitly on exit. --- -2.17.1 - diff --git a/0006-tests-Add-a-second-test-of-the-offset-filter.patch b/0006-tests-Add-a-second-test-of-the-offset-filter.patch deleted file mode 100644 index 44ffb29..0000000 --- a/0006-tests-Add-a-second-test-of-the-offset-filter.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 97a5e57037aa0130a1e46aa6162171d941a58d62 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 7 Jul 2018 14:10:11 +0100 -Subject: [PATCH 06/12] tests: Add a second test of the offset filter. - -This tests that the offset filter works for non-aligned offsets and -that nbdkit can handle virtual disks which are ~ 2^63 bits in size. - -Implemented using the pattern plugin. ---- - tests/Makefile.am | 3 ++ - tests/test-offset2.sh | 121 ++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 124 insertions(+) - create mode 100755 tests/test-offset2.sh - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 354c12c..6c3a5a6 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -61,6 +61,7 @@ EXTRA_DIST = \ - test-nozero.sh \ - test_ocaml_plugin.ml \ - test-ocaml.c \ -+ test-offset2.sh \ - test-parallel-file.sh \ - test-parallel-nbd.sh \ - test-pattern.sh \ -@@ -539,6 +540,8 @@ test_offset_SOURCES = test-offset.c test.h - test_offset_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_offset_LDADD = libtest.la $(LIBGUESTFS_LIBS) - -+TESTS += test-offset2.sh -+ - # partition filter test. - LIBGUESTFS_TESTS += test-partition - -diff --git a/tests/test-offset2.sh b/tests/test-offset2.sh -new file mode 100755 -index 0000000..a4f44cc ---- /dev/null -+++ b/tests/test-offset2.sh -@@ -0,0 +1,121 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Additional test of the offset filter using the pattern plugin. -+ -+set -e -+set -x -+ -+files="offset2.out offset2.pid offset2.sock" -+rm -f $files -+ -+# Test that qemu-io works -+if ! qemu-io --help >/dev/null; then -+ echo "$0: missing or broken qemu-io" -+ exit 77 -+fi -+ -+# Run nbdkit with pattern plugin and offset filter in front. -+# 8070450532247927809 = 7E - 1023 -+nbdkit -P offset2.pid -U offset2.sock \ -+ --filter=offset \ -+ pattern size=7E \ -+ offset=8070450532247927809 range=512 -+ -+# We may have to wait a short time for the pid file to appear. -+for i in `seq 1 10`; do -+ if test -f offset2.pid; then -+ break -+ fi -+ sleep 1 -+done -+if ! test -f offset2.pid; then -+ echo "$0: PID file was not created" -+ exit 1 -+fi -+ -+pid="$(cat offset2.pid)" -+ -+# Kill the nbdkit process on exit. -+cleanup () -+{ -+ status=$? -+ -+ kill $pid -+ rm -f $files -+ -+ exit $status -+} -+trap cleanup INT QUIT TERM EXIT ERR -+ -+qemu-io -r -f raw 'nbd+unix://?socket=offset2.sock' \ -+ -c 'r -v 0 512' | grep -E '^[[:xdigit:]]+:' > offset2.out -+if [ "$(cat offset2.out)" != "00000000: ff ff ff ff ff fc 00 6f ff ff ff ff ff fc 08 6f .......o.......o -+00000010: ff ff ff ff ff fc 10 6f ff ff ff ff ff fc 18 6f .......o.......o -+00000020: ff ff ff ff ff fc 20 6f ff ff ff ff ff fc 28 6f .......o.......o -+00000030: ff ff ff ff ff fc 30 6f ff ff ff ff ff fc 38 6f ......0o......8o -+00000040: ff ff ff ff ff fc 40 6f ff ff ff ff ff fc 48 6f .......o......Ho -+00000050: ff ff ff ff ff fc 50 6f ff ff ff ff ff fc 58 6f ......Po......Xo -+00000060: ff ff ff ff ff fc 60 6f ff ff ff ff ff fc 68 6f .......o......ho -+00000070: ff ff ff ff ff fc 70 6f ff ff ff ff ff fc 78 6f ......po......xo -+00000080: ff ff ff ff ff fc 80 6f ff ff ff ff ff fc 88 6f .......o.......o -+00000090: ff ff ff ff ff fc 90 6f ff ff ff ff ff fc 98 6f .......o.......o -+000000a0: ff ff ff ff ff fc a0 6f ff ff ff ff ff fc a8 6f .......o.......o -+000000b0: ff ff ff ff ff fc b0 6f ff ff ff ff ff fc b8 6f .......o.......o -+000000c0: ff ff ff ff ff fc c0 6f ff ff ff ff ff fc c8 6f .......o.......o -+000000d0: ff ff ff ff ff fc d0 6f ff ff ff ff ff fc d8 6f .......o.......o -+000000e0: ff ff ff ff ff fc e0 6f ff ff ff ff ff fc e8 6f .......o.......o -+000000f0: ff ff ff ff ff fc f0 6f ff ff ff ff ff fc f8 6f .......o.......o -+00000100: ff ff ff ff ff fd 00 6f ff ff ff ff ff fd 08 6f .......o.......o -+00000110: ff ff ff ff ff fd 10 6f ff ff ff ff ff fd 18 6f .......o.......o -+00000120: ff ff ff ff ff fd 20 6f ff ff ff ff ff fd 28 6f .......o.......o -+00000130: ff ff ff ff ff fd 30 6f ff ff ff ff ff fd 38 6f ......0o......8o -+00000140: ff ff ff ff ff fd 40 6f ff ff ff ff ff fd 48 6f .......o......Ho -+00000150: ff ff ff ff ff fd 50 6f ff ff ff ff ff fd 58 6f ......Po......Xo -+00000160: ff ff ff ff ff fd 60 6f ff ff ff ff ff fd 68 6f .......o......ho -+00000170: ff ff ff ff ff fd 70 6f ff ff ff ff ff fd 78 6f ......po......xo -+00000180: ff ff ff ff ff fd 80 6f ff ff ff ff ff fd 88 6f .......o.......o -+00000190: ff ff ff ff ff fd 90 6f ff ff ff ff ff fd 98 6f .......o.......o -+000001a0: ff ff ff ff ff fd a0 6f ff ff ff ff ff fd a8 6f .......o.......o -+000001b0: ff ff ff ff ff fd b0 6f ff ff ff ff ff fd b8 6f .......o.......o -+000001c0: ff ff ff ff ff fd c0 6f ff ff ff ff ff fd c8 6f .......o.......o -+000001d0: ff ff ff ff ff fd d0 6f ff ff ff ff ff fd d8 6f .......o.......o -+000001e0: ff ff ff ff ff fd e0 6f ff ff ff ff ff fd e8 6f .......o.......o -+000001f0: ff ff ff ff ff fd f0 6f ff ff ff ff ff fd f8 6f .......o.......o" ] -+then -+ echo "$0: unexpected pattern:" -+ cat offset2.out -+ exit 1 -+fi -+ -+# The cleanup() function is called implicitly on exit. --- -2.17.1 - diff --git a/0007-tests-Test-largest-possible-plugin-size.patch b/0007-tests-Test-largest-possible-plugin-size.patch deleted file mode 100644 index f8e3d3e..0000000 --- a/0007-tests-Test-largest-possible-plugin-size.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 4e1a521228115c04cc7c5a2f625218a9bbd5101f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 11:46:12 +0100 -Subject: [PATCH 07/12] tests: Test largest possible plugin size. - -This test is incomplete because it is too large for qemu to open. -However at least we are testing that nbdkit works. - -Implemented using the pattern plugin. ---- - plugins/pattern/nbdkit-pattern-plugin.pod | 13 +++ - tests/Makefile.am | 3 +- - tests/test-pattern-largest.sh | 99 +++++++++++++++++++++++ - 3 files changed, 114 insertions(+), 1 deletion(-) - create mode 100755 tests/test-pattern-largest.sh - -diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod -index 7a6b498..425cae6 100644 ---- a/plugins/pattern/nbdkit-pattern-plugin.pod -+++ b/plugins/pattern/nbdkit-pattern-plugin.pod -@@ -29,6 +29,19 @@ The size of the virtual disk must be specified using the C<size> - parameter. If the size is not a multiple of 8 then the last 8 byte - offset in the pattern is truncated. - -+=head2 Largest possible size -+ -+nbdkit itself limits plugins to S<2⁶³-1> bytes -+(S<decimal: 9223372036854775807>, -+S<hexadecimal: 0x7fff_ffff_ffff_ffff>). -+ -+To test if NBD clients are free of bugs (not to mention nbdkit itself) -+you can use: -+ -+ nbdkit pattern size=9223372036854775807 -+ -+Note this is too large for qemu to open. -+ - =head1 PARAMETERS - - =over 4 -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 6c3a5a6..9dd451d 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -65,6 +65,7 @@ EXTRA_DIST = \ - test-parallel-file.sh \ - test-parallel-nbd.sh \ - test-pattern.sh \ -+ test-pattern-largest.sh \ - test-python-exception.sh \ - test.pl \ - test.py \ -@@ -318,7 +319,7 @@ test_memory_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_memory_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - # pattern plugin test. --TESTS += test-pattern.sh -+TESTS += test-pattern.sh test-pattern-largest.sh - - # nbd plugin test. - LIBGUESTFS_TESTS += test-nbd -diff --git a/tests/test-pattern-largest.sh b/tests/test-pattern-largest.sh -new file mode 100755 -index 0000000..5ff891f ---- /dev/null -+++ b/tests/test-pattern-largest.sh -@@ -0,0 +1,99 @@ -+#!/bin/bash - -+# nbdkit -+# Copyright (C) 2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Test the pattern plugin with the largest possible size supported -+# by nbdkit. -+ -+set -e -+ -+files="pattern-largest.out pattern-largest.pid pattern-largest.sock" -+rm -f $files -+ -+# Test that qemu-io works -+if ! qemu-io --help >/dev/null; then -+ echo "$0: missing or broken qemu-io" -+ exit 77 -+fi -+ -+# Run nbdkit with pattern plugin. -+# size = 2^63-1 -+nbdkit -P pattern-largest.pid -U pattern-largest.sock \ -+ pattern size=9223372036854775807 -+ -+# We may have to wait a short time for the pid file to appear. -+for i in `seq 1 10`; do -+ if test -f pattern-largest.pid; then -+ break -+ fi -+ sleep 1 -+done -+if ! test -f pattern-largest.pid; then -+ echo "$0: PID file was not created" -+ exit 1 -+fi -+ -+pid="$(cat pattern-largest.pid)" -+ -+# Kill the nbdkit process on exit. -+cleanup () -+{ -+ status=$? -+ -+ kill $pid -+ rm -f $files -+ -+ exit $status -+} -+trap cleanup INT QUIT TERM EXIT ERR -+ -+# qemu cannot open this image! -+# -+# can't open device nbd+unix://?socket=pattern-largest.sock: Could not get image size: File too large -+# -+# Therefore we skip the remainder of this test (in effect, testing -+# only that nbdkit can create the file). -+exit 77 -+ -+# XXX Unfortunately qemu-io can only issue 512-byte aligned requests, -+# and the final block is only 511 bytes, so we have to request the 512 -+# bytes before that block. -+qemu-io -r -f raw 'nbd+unix://?socket=pattern-largest.sock' \ -+ -c 'r -v 9223372036854774784 512' | grep -E '^[[:xdigit:]]+:' > pattern-largest.out -+if [ "$(cat pattern-largest.out)" != "XXX EXPECTED PATTERN HERE" ] -+then -+ echo "$0: unexpected pattern:" -+ cat pattern-largest.out -+ exit 1 -+fi -+ -+# The cleanup() function is called implicitly on exit. --- -2.17.1 - diff --git a/0008-docs-Fix-broken-cross-reference-in-man-page.patch b/0008-docs-Fix-broken-cross-reference-in-man-page.patch deleted file mode 100644 index 127cee6..0000000 --- a/0008-docs-Fix-broken-cross-reference-in-man-page.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4c3ea9514184958c356ff6f613d43b896cb26b0e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 15:15:44 +0100 -Subject: [PATCH 08/12] docs: Fix broken cross-reference in man page. - ---- - docs/nbdkit-filter.pod.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/nbdkit-filter.pod.in b/docs/nbdkit-filter.pod.in -index 4621106..16be2c7 100644 ---- a/docs/nbdkit-filter.pod.in -+++ b/docs/nbdkit-filter.pod.in -@@ -591,7 +591,7 @@ which defines C<$(NBDKIT_FILTERDIR)> in automake-generated Makefiles. - =head1 SEE ALSO - - L<nbdkit(1)>, --L<nbdkit-plugin(1)>. -+L<nbdkit-plugin(3)>. - - Standard filters provided by nbdkit: - --- -2.17.1 - diff --git a/0009-docs-Break-up-some-over-long-lines-in-documentation.patch b/0009-docs-Break-up-some-over-long-lines-in-documentation.patch deleted file mode 100644 index f300047..0000000 --- a/0009-docs-Break-up-some-over-long-lines-in-documentation.patch +++ /dev/null @@ -1,103 +0,0 @@ -From cf495ffb975d4557a6092a19f382a9a69b457300 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 16:26:18 +0100 -Subject: [PATCH 09/12] docs: Break up some over-long lines in documentation. - -We will enforce a limit of 76 chars (in most cases) in a future -commit. ---- - plugins/ext2/nbdkit-ext2-plugin.pod | 3 ++- - plugins/lua/nbdkit-lua-plugin.pod | 3 ++- - plugins/perl/nbdkit-perl-plugin.pod | 3 ++- - plugins/python/nbdkit-python-plugin.pod | 3 ++- - plugins/ruby/nbdkit-ruby-plugin.pod | 3 ++- - plugins/tcl/nbdkit-tcl-plugin.pod | 3 ++- - 6 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/plugins/ext2/nbdkit-ext2-plugin.pod b/plugins/ext2/nbdkit-ext2-plugin.pod -index 29c76aa..7479ebe 100644 ---- a/plugins/ext2/nbdkit-ext2-plugin.pod -+++ b/plugins/ext2/nbdkit-ext2-plugin.pod -@@ -2,7 +2,8 @@ - - =head1 NAME - --nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or ext4 filesystems -+nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or -+ext4 filesystems - - =head1 SYNOPSIS - -diff --git a/plugins/lua/nbdkit-lua-plugin.pod b/plugins/lua/nbdkit-lua-plugin.pod -index 385a0e4..dfeef4f 100644 ---- a/plugins/lua/nbdkit-lua-plugin.pod -+++ b/plugins/lua/nbdkit-lua-plugin.pod -@@ -260,7 +260,8 @@ partial, your function should call C<error>. - - =over 4 - --=item Missing: C<load>, C<unload>, C<name>, C<version>, C<longname>, C<description>, C<config_help>, C<can_zero>, C<can_fua> -+=item Missing: C<load>, C<unload>, C<name>, C<version>, C<longname>, -+C<description>, C<config_help>, C<can_zero>, C<can_fua> - - These are not yet supported. - -diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod -index 0fc7f93..ce8bb51 100644 ---- a/plugins/perl/nbdkit-perl-plugin.pod -+++ b/plugins/perl/nbdkit-perl-plugin.pod -@@ -339,7 +339,8 @@ C<Nbdkit::set_error(POSIX::EOPNOTSUPP)>. - These are not needed because you can just use regular Perl C<BEGIN> - and C<END> constructs. - --=item Missing: C<name>, C<version>, C<longname>, C<description>, C<config_help> -+=item Missing: C<name>, C<version>, C<longname>, C<description>, -+C<config_help> - - These are not yet supported. - -diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod -index e54df1f..c80af9b 100644 ---- a/plugins/python/nbdkit-python-plugin.pod -+++ b/plugins/python/nbdkit-python-plugin.pod -@@ -258,7 +258,8 @@ use C<nbdkit.set_error(errno.EOPNOTSUPP)>. - These are not needed because you can just use ordinary Python - constructs. - --=item Missing: C<name>, C<version>, C<longname>, C<description>, C<config_help> -+=item Missing: C<name>, C<version>, C<longname>, C<description>, -+C<config_help> - - These are not yet supported. - -diff --git a/plugins/ruby/nbdkit-ruby-plugin.pod b/plugins/ruby/nbdkit-ruby-plugin.pod -index 505af69..29d072a 100644 ---- a/plugins/ruby/nbdkit-ruby-plugin.pod -+++ b/plugins/ruby/nbdkit-ruby-plugin.pod -@@ -273,7 +273,8 @@ use C<Nbdkit.set_error(Errno::EOPNOTSUPP)>. - These are not needed because you can just use ordinary Ruby - constructs. - --=item Missing: C<name>, C<version>, C<longname>, C<description>, C<config_help> -+=item Missing: C<name>, C<version>, C<longname>, C<description>, -+C<config_help> - - These are not yet supported. - -diff --git a/plugins/tcl/nbdkit-tcl-plugin.pod b/plugins/tcl/nbdkit-tcl-plugin.pod -index 434233d..17b5c5f 100644 ---- a/plugins/tcl/nbdkit-tcl-plugin.pod -+++ b/plugins/tcl/nbdkit-tcl-plugin.pod -@@ -266,7 +266,8 @@ partial, your function should call C<error>. - - =over 4 - --=item Missing: C<load>, C<unload>, C<name>, C<version>, C<longname>, C<description>, C<config_help>, C<can_zero>, C<can_fua> -+=item Missing: C<load>, C<unload>, C<name>, C<version>, C<longname>, -+C<description>, C<config_help>, C<can_zero>, C<can_fua> - - These are not yet supported. - --- -2.17.1 - diff --git a/0010-docs-Add-podwrapper-from-libguestfs.patch b/0010-docs-Add-podwrapper-from-libguestfs.patch deleted file mode 100644 index 33e0b7c..0000000 --- a/0010-docs-Add-podwrapper-from-libguestfs.patch +++ /dev/null @@ -1,3976 +0,0 @@ -From 24a0a8ced608395b614ad42ae550588e08d3c636 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 14:13:53 +0100 -Subject: [PATCH 10/12] docs: Add podwrapper from libguestfs. - -Use podwrapper from libguestfs to generate man pages instead of -pod2man. This allows finer control over how man pages are generated, -lets us add standard sections, lets us perform more checks on the POD, -and lets us generate HTML. - -Note I have relicensed my code under a BSD license for nbdkit. ---- - .gitignore | 7 +- - Makefile.am | 1 + - README | 6 +- - configure.ac | 31 +- - docs/Makefile.am | 54 +- - ...nbdkit-filter.pod.in => nbdkit-filter.pod} | 42 -- - ...nbdkit-plugin.pod.in => nbdkit-plugin.pod} | 42 -- - docs/{nbdkit.pod.in => nbdkit.pod} | 42 -- - filters/blocksize/Makefile.am | 10 +- - filters/blocksize/nbdkit-blocksize-filter.pod | 42 -- - filters/cache/Makefile.am | 10 +- - filters/cache/nbdkit-cache-filter.pod | 42 -- - filters/cow/Makefile.am | 10 +- - filters/cow/nbdkit-cow-filter.pod | 42 -- - filters/delay/Makefile.am | 10 +- - filters/delay/nbdkit-delay-filter.pod | 42 -- - filters/fua/Makefile.am | 10 +- - filters/fua/nbdkit-fua-filter.pod | 42 -- - filters/log/Makefile.am | 10 +- - filters/log/nbdkit-log-filter.pod | 42 -- - filters/nozero/Makefile.am | 10 +- - filters/nozero/nbdkit-nozero-filter.pod | 42 -- - filters/offset/Makefile.am | 10 +- - filters/offset/nbdkit-offset-filter.pod | 42 -- - filters/partition/Makefile.am | 10 +- - filters/partition/nbdkit-partition-filter.pod | 42 -- - html/pod.css | 155 ++++++ - plugins/curl/Makefile.am | 10 +- - plugins/curl/nbdkit-curl-plugin.pod | 42 -- - plugins/example1/Makefile.am | 10 +- - plugins/example1/nbdkit-example1-plugin.pod | 42 -- - plugins/example2/Makefile.am | 10 +- - plugins/example2/nbdkit-example2-plugin.pod | 42 -- - plugins/example3/Makefile.am | 10 +- - plugins/example3/nbdkit-example3-plugin.pod | 42 -- - plugins/example4/Makefile.am | 10 +- - plugins/example4/example4.pl | 42 -- - plugins/ext2/Makefile.am | 10 +- - plugins/ext2/nbdkit-ext2-plugin.pod | 42 -- - plugins/file/Makefile.am | 10 +- - plugins/file/nbdkit-file-plugin.pod | 42 -- - plugins/guestfs/Makefile.am | 10 +- - plugins/guestfs/nbdkit-guestfs-plugin.pod | 42 -- - plugins/gzip/Makefile.am | 10 +- - plugins/gzip/nbdkit-gzip-plugin.pod | 42 -- - plugins/libvirt/Makefile.am | 10 +- - plugins/libvirt/nbdkit-libvirt-plugin.pod | 42 -- - plugins/lua/Makefile.am | 10 +- - plugins/lua/nbdkit-lua-plugin.pod | 42 -- - plugins/memory/Makefile.am | 10 +- - plugins/memory/nbdkit-memory-plugin.pod | 42 -- - plugins/nbd/Makefile.am | 10 +- - plugins/nbd/nbdkit-nbd-plugin.pod | 42 -- - plugins/null/Makefile.am | 10 +- - plugins/null/nbdkit-null-plugin.pod | 42 -- - plugins/ocaml/Makefile.am | 10 +- - plugins/ocaml/nbdkit-ocaml-plugin.pod | 42 -- - plugins/pattern/Makefile.am | 10 +- - plugins/pattern/nbdkit-pattern-plugin.pod | 42 -- - plugins/perl/Makefile.am | 10 +- - plugins/perl/nbdkit-perl-plugin.pod | 42 -- - plugins/python/Makefile.am | 10 +- - plugins/python/nbdkit-python-plugin.pod | 42 -- - plugins/random/Makefile.am | 10 +- - plugins/random/nbdkit-random-plugin.pod | 42 -- - plugins/ruby/Makefile.am | 10 +- - plugins/ruby/nbdkit-ruby-plugin.pod | 42 -- - plugins/split/Makefile.am | 10 +- - plugins/split/nbdkit-split-plugin.pod | 42 -- - plugins/streaming/Makefile.am | 10 +- - plugins/streaming/nbdkit-streaming-plugin.pod | 42 -- - plugins/tar/Makefile.am | 10 +- - plugins/tar/tar.pl | 42 -- - plugins/tcl/Makefile.am | 10 +- - plugins/tcl/nbdkit-tcl-plugin.pod | 42 -- - plugins/vddk/Makefile.am | 10 +- - plugins/vddk/nbdkit-vddk-plugin.pod | 42 -- - plugins/xz/Makefile.am | 10 +- - plugins/xz/nbdkit-xz-plugin.pod | 42 -- - plugins/zero/Makefile.am | 10 +- - plugins/zero/nbdkit-zero-plugin.pod | 42 -- - podwrapper.pl.in | 496 ++++++++++++++++++ - 82 files changed, 889 insertions(+), 1859 deletions(-) - rename docs/{nbdkit-filter.pod.in => nbdkit-filter.pod} (93%) - rename docs/{nbdkit-plugin.pod.in => nbdkit-plugin.pod} (95%) - rename docs/{nbdkit.pod.in => nbdkit.pod} (95%) - create mode 100644 html/pod.css - create mode 100755 podwrapper.pl.in - -diff --git a/.gitignore b/.gitignore -index 2692542..a84ad9a 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -32,9 +32,9 @@ Makefile.in - /config.sub - /configure - /depcomp --/docs/nbdkit-filter.pod --/docs/nbdkit-plugin.pod --/docs/nbdkit.pod -+/docs/filter-links.pod -+/docs/plugin-links.pod -+/html/*.html - /INSTALL - /install-sh - /libtool -@@ -43,6 +43,7 @@ Makefile.in - /nbdkit - /plugins/example4/nbdkit-example4-plugin - /plugins/tar/nbdkit-tar-plugin -+/podwrapper.pl - /src/nbdkit - /src/nbdkit.pc - /src/test-utils -diff --git a/Makefile.am b/Makefile.am -index fc4d750..6a3a377 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -37,6 +37,7 @@ ACLOCAL_AMFLAGS = -I m4 - EXTRA_DIST = \ - .dir-locals.el \ - .gitignore \ -+ html/pod.css \ - LICENSE \ - nbdkit.in \ - OTHER_PLUGINS \ -diff --git a/README b/README -index 9642579..685b41f 100644 ---- a/README -+++ b/README -@@ -32,9 +32,11 @@ Building from source - - By default nbdkit needs nothing except Linux and reasonably recent gcc. - --To build the man pages, you will need to install: -+To build the man pages, you will optionally need to install: - -- - pod2man (included with perl) -+ - perl -+ -+ - Pod::Man and Pod::Simple (perl library) - - There are some *optional* libraries you may want to install for - plugins or extra features. -diff --git a/configure.ac b/configure.ac -index 6304ac8..9fe147c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -197,28 +197,31 @@ PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ - ]) - AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) - --dnl Check for Perl POD. --AC_CHECK_PROG([POD2MAN], [pod2man], [pod2man], [no]) --AS_IF([test "x$POD2MAN" != "xno"],[ -- POD2MAN_ARGS="--center=nbdkit --release=nbdkit" -- # Check whether pod2man supports --utf8, and if so add it to $POD2MAN_ARGS. -- AC_MSG_CHECKING([if $POD2MAN supports --utf8]) -- AS_IF([$POD2MAN --help 2>&1 | grep -s -q -- --utf8],[ -- AC_MSG_RESULT([yes]) -- POD2MAN_ARGS="$POD2MAN_ARGS --utf8" -+dnl Check we have enough to run podwrapper. -+AC_CHECK_PROG([PERL],[perl],[perl],[no]) -+AS_IF([test "x$PERL" != "xno"],[ -+ AC_MSG_CHECKING([if we have perl Pod::Man and Pod::Simple]) -+ AS_IF([$PERL -MPod::Man -MPod::Simple -e 1 >&AS_MESSAGE_LOG_FD 2>&1],[ -+ enable_pod=yes - ],[ -- AC_MSG_RESULT([no]) -+ enable_pod=no - ]) -- AC_SUBST([POD2MAN_ARGS]) -+ AC_MSG_RESULT([$enable_pod]) - ]) --AM_CONDITIONAL([HAVE_POD2MAN], [test "x$POD2MAN" != "xno"]) -+AM_CONDITIONAL([HAVE_POD], -+ [test "x$PERL" != "xno" && test "x$enable_pod" = "xyes"]) - -+dnl Define the path to the podwrapper program. -+PODWRAPPER="$PERL $(pwd)/podwrapper.pl" -+AC_SUBST([PODWRAPPER]) -+ -+dnl Allow all plugins and filters to be disabled. - AC_ARG_ENABLE([plugins], - [AS_HELP_STRING([--disable-plugins], [disable all bundled plugins and filters])]) - AM_CONDITIONAL([HAVE_PLUGINS], [test "x$enable_plugins" != "xno"]) - - dnl Check for Perl, for embedding in the perl plugin. --AC_CHECK_PROG([PERL],[perl],[perl],[no]) -+dnl Note that the perl binary is checked above. - AC_ARG_ENABLE([perl], - AS_HELP_STRING([--disable-perl], [disable Perl embed plugin]), - [], -@@ -590,6 +593,8 @@ dnl Produce output files. - AC_CONFIG_HEADERS([config.h]) - AC_CONFIG_FILES([nbdkit], - [chmod +x,-w nbdkit]) -+AC_CONFIG_FILES([podwrapper.pl], -+ [chmod +x,-w podwrapper.pl]) - AC_CONFIG_FILES([Makefile - bash/Makefile - docs/Makefile -diff --git a/docs/Makefile.am b/docs/Makefile.am -index a3d7071..2c1243a 100644 ---- a/docs/Makefile.am -+++ b/docs/Makefile.am -@@ -34,11 +34,11 @@ include $(top_srcdir)/common-rules.mk - - EXTRA_DIST = \ - make-links.sh \ -- nbdkit.pod.in \ -- nbdkit-plugin.pod.in \ -- nbdkit-filter.pod.in -+ nbdkit.pod \ -+ nbdkit-plugin.pod \ -+ nbdkit-filter.pod - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = \ - nbdkit.1 \ -@@ -46,28 +46,36 @@ man_MANS = \ - nbdkit-filter.3 - CLEANFILES += $(man_MANS) - --nbdkit.1: nbdkit.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=nbdkit $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+nbdkit.1: nbdkit.pod plugin-links.pod filter-links.pod -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ --insert plugin-links.pod:__PLUGIN_LINKS__ \ -+ --insert filter-links.pod:__FILTER_LINKS__ \ -+ $< - --nbdkit-plugin.3: nbdkit-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=nbdkit-plugin $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+nbdkit-plugin.3: nbdkit-plugin.pod plugin-links.pod -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ --insert plugin-links.pod:__PLUGIN_LINKS__ \ -+ $< - --nbdkit-filter.3: nbdkit-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=nbdkit-filter $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+nbdkit-filter.3: nbdkit-filter.pod filter-links.pod -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ --insert filter-links.pod:__FILTER_LINKS__ \ -+ $< - --%.pod: %.pod.in -+endif HAVE_POD -+ -+# XXX Language links are broken - they link to section 1 instead of section 3. -+plugin-links.pod: $(top_srcdir)/common-rules.mk -+ rm -f $@ $@-t -+ $(srcdir)/make-links.sh plugin 1 $(plugins) > $@-t -+ mv $@-t $@ -+ -+filter-links.pod: $(top_srcdir)/common-rules.mk - rm -f $@ $@-t -- $(SED) \ -- -e 's/__PLUGIN_LINKS__/$(shell $(srcdir)/make-links.sh plugin 1 $(plugins))/' \ -- -e 's/__FILTER_LINKS__/$(shell $(srcdir)/make-links.sh filter 1 $(filters))/' \ -- $< > $@-t -- chmod -w $@-t -+ $(srcdir)/make-links.sh filter 1 $(filters) > $@-t - mv $@-t $@ - --endif -+MAINTAINERCLEANFILES = plugin-links.pod filter-links.pod -diff --git a/docs/nbdkit-filter.pod.in b/docs/nbdkit-filter.pod -similarity index 93% -rename from docs/nbdkit-filter.pod.in -rename to docs/nbdkit-filter.pod -index 16be2c7..77a5e79 100644 ---- a/docs/nbdkit-filter.pod.in -+++ b/docs/nbdkit-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-filter - How to write nbdkit filters -@@ -604,43 +602,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/docs/nbdkit-plugin.pod.in b/docs/nbdkit-plugin.pod -similarity index 95% -rename from docs/nbdkit-plugin.pod.in -rename to docs/nbdkit-plugin.pod -index f32d1af..fb43f8c 100644 ---- a/docs/nbdkit-plugin.pod.in -+++ b/docs/nbdkit-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-plugin - How to write nbdkit plugins -@@ -897,43 +895,3 @@ Pino Toscano - =head1 COPYRIGHT - - Copyright (C) 2013-2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/docs/nbdkit.pod.in b/docs/nbdkit.pod -similarity index 95% -rename from docs/nbdkit.pod.in -rename to docs/nbdkit.pod -index bfd9da9..be69619 100644 ---- a/docs/nbdkit.pod.in -+++ b/docs/nbdkit.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit - A toolkit for creating NBD servers -@@ -1023,43 +1021,3 @@ Pino Toscano - =head1 COPYRIGHT - - Copyright (C) 2013-2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/blocksize/Makefile.am b/filters/blocksize/Makefile.am -index bd09a2d..02db7bb 100644 ---- a/filters/blocksize/Makefile.am -+++ b/filters/blocksize/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_blocksize_filter_la_CFLAGS = \ - nbdkit_blocksize_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-blocksize-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-blocksize-filter.1: nbdkit-blocksize-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/blocksize/nbdkit-blocksize-filter.pod b/filters/blocksize/nbdkit-blocksize-filter.pod -index 39a2ffc..d271aba 100644 ---- a/filters/blocksize/nbdkit-blocksize-filter.pod -+++ b/filters/blocksize/nbdkit-blocksize-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-blocksize-filter - nbdkit blocksize filter -@@ -99,43 +97,3 @@ Eric Blake - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/cache/Makefile.am b/filters/cache/Makefile.am -index 1e932e8..867812e 100644 ---- a/filters/cache/Makefile.am -+++ b/filters/cache/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_cache_filter_la_CFLAGS = \ - nbdkit_cache_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-cache-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-cache-filter.1: nbdkit-cache-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/cache/nbdkit-cache-filter.pod b/filters/cache/nbdkit-cache-filter.pod -index a59c54e..ed9df19 100644 ---- a/filters/cache/nbdkit-cache-filter.pod -+++ b/filters/cache/nbdkit-cache-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-cache-filter - nbdkit caching filter -@@ -80,43 +78,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/cow/Makefile.am b/filters/cow/Makefile.am -index 3b83142..778df1e 100644 ---- a/filters/cow/Makefile.am -+++ b/filters/cow/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_cow_filter_la_CFLAGS = \ - nbdkit_cow_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-cow-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-cow-filter.1: nbdkit-cow-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/cow/nbdkit-cow-filter.pod b/filters/cow/nbdkit-cow-filter.pod -index accf81c..a4b8d72 100644 ---- a/filters/cow/nbdkit-cow-filter.pod -+++ b/filters/cow/nbdkit-cow-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-cow-filter - nbdkit copy-on-write (COW) filter -@@ -120,43 +118,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/delay/Makefile.am b/filters/delay/Makefile.am -index a907ea6..17bec3b 100644 ---- a/filters/delay/Makefile.am -+++ b/filters/delay/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_delay_filter_la_CFLAGS = \ - nbdkit_delay_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-delay-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-delay-filter.1: nbdkit-delay-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/delay/nbdkit-delay-filter.pod b/filters/delay/nbdkit-delay-filter.pod -index 10aba94..32e29d7 100644 ---- a/filters/delay/nbdkit-delay-filter.pod -+++ b/filters/delay/nbdkit-delay-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-delay-filter - nbdkit delay filter -@@ -46,43 +44,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/fua/Makefile.am b/filters/fua/Makefile.am -index 557e585..d4af39a 100644 ---- a/filters/fua/Makefile.am -+++ b/filters/fua/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_fua_filter_la_CFLAGS = \ - nbdkit_fua_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-fua-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-fua-filter.1: nbdkit-fua-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/fua/nbdkit-fua-filter.pod b/filters/fua/nbdkit-fua-filter.pod -index cec54d5..601e308 100644 ---- a/filters/fua/nbdkit-fua-filter.pod -+++ b/filters/fua/nbdkit-fua-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-fua-filter - nbdkit FUA filter -@@ -77,43 +75,3 @@ Eric Blake - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/log/Makefile.am b/filters/log/Makefile.am -index 95bce2b..b9b661e 100644 ---- a/filters/log/Makefile.am -+++ b/filters/log/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_log_filter_la_CFLAGS = \ - nbdkit_log_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-log-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-log-filter.1: nbdkit-log-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/log/nbdkit-log-filter.pod b/filters/log/nbdkit-log-filter.pod -index b011624..89ea551 100644 ---- a/filters/log/nbdkit-log-filter.pod -+++ b/filters/log/nbdkit-log-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-log-filter - nbdkit log filter -@@ -75,43 +73,3 @@ Eric Blake - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/nozero/Makefile.am b/filters/nozero/Makefile.am -index 3e2eebc..f0cc2c6 100644 ---- a/filters/nozero/Makefile.am -+++ b/filters/nozero/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_nozero_filter_la_CFLAGS = \ - nbdkit_nozero_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-nozero-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-nozero-filter.1: nbdkit-nozero-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/nozero/nbdkit-nozero-filter.pod b/filters/nozero/nbdkit-nozero-filter.pod -index 4065302..bb8743c 100644 ---- a/filters/nozero/nbdkit-nozero-filter.pod -+++ b/filters/nozero/nbdkit-nozero-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-nozero-filter - nbdkit nozero filter -@@ -57,43 +55,3 @@ Eric Blake - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/offset/Makefile.am b/filters/offset/Makefile.am -index e055ed4..0fe9106 100644 ---- a/filters/offset/Makefile.am -+++ b/filters/offset/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_offset_filter_la_CFLAGS = \ - nbdkit_offset_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-offset-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-offset-filter.1: nbdkit-offset-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/offset/nbdkit-offset-filter.pod b/filters/offset/nbdkit-offset-filter.pod -index 7579d9f..ee8061b 100644 ---- a/filters/offset/nbdkit-offset-filter.pod -+++ b/filters/offset/nbdkit-offset-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-offset-filter - nbdkit offset filter -@@ -76,43 +74,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/filters/partition/Makefile.am b/filters/partition/Makefile.am -index a1bb0d9..9ab8730 100644 ---- a/filters/partition/Makefile.am -+++ b/filters/partition/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_partition_filter_la_CFLAGS = \ - nbdkit_partition_filter_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-partition-filter.1 - CLEANFILES += $(man_MANS) - - nbdkit-partition-filter.1: nbdkit-partition-filter.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/filters/partition/nbdkit-partition-filter.pod b/filters/partition/nbdkit-partition-filter.pod -index 0b78d6b..bc5f346 100644 ---- a/filters/partition/nbdkit-partition-filter.pod -+++ b/filters/partition/nbdkit-partition-filter.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-partition-filter - nbdkit partition filter -@@ -57,43 +55,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/html/pod.css b/html/pod.css -new file mode 100644 -index 0000000..1c07ec8 ---- /dev/null -+++ b/html/pod.css -@@ -0,0 +1,155 @@ -+/* CSS to make pod2html files look a little bit better. */ -+ -+body { -+ margin-left: 4em; -+} -+ -+body p, body ul, ol, body dl { -+ margin-left: 2em; -+ width: 31em; -+} -+ -+pre { -+ width: 31em; -+} -+ -+li { -+ padding-bottom: 0.5em; -+} -+ -+/* Code sections. */ -+ -+pre { -+ background-color: #f8f8f8; -+ color: rgb(204,0,0); -+ font-weight: 550; -+ border-left: 6px solid rgb(204,64,64); -+ padding: 6px; -+ margin-left: 1em; -+ font-size: 120%; -+} -+ -+/* Bold, italic in man pages. */ -+b, strong { -+ color: rgb(204,0,0); -+} -+ -+i, em { -+ color: rgb(204,0,0); -+} -+ -+/* Name heading. */ -+ -+body > h1:first-of-type { -+ display: none; -+} -+ -+body > h1:first-of-type + p { -+ font-size: 125%; -+ font-weight: bold; -+ color: rgb(204,0,0); -+ margin-left: -32px; -+} -+ -+/* Warning heading in man pages. */ -+a[name="warning"] { -+ -moz-border-radius-topleft: 5px; -+ -moz-border-radius-topright: 5px; -+ border-radius-topleft: 5px; -+ border-radius-topright: 5px; -+ -+ color: white; -+ background-color: rgb(204,0,0); -+} -+a[name="warning"]:before { -+ content: "\00a0\00a0\00a0"; -+} -+a[name="warning"]:after { -+ content: "\00a0\00a0\00a0"; -+} -+ -+/* Put the index on the right hand side in a floating box. */ -+ul[id="index"] { -+ float: right; -+ width: 18em; -+ border-left: 3em solid white; -+ background-color: #fcfcfc; -+ margin-top: 32px; -+ padding-top: 0px; -+ margin-left: 1em; -+ padding-left: 1em; -+ padding-right: 1em; -+ font-size: 90%; -+} -+ -+ul[id="index"] a[href] { -+ text-decoration: none; -+} -+ -+ul[id="index"] a[href]:hover { -+ text-decoration: underline; -+} -+ -+ul[id="index"] a[href]:before { -+ content: '#\00a0'; -+ color: rgb(204,0,0); -+ font-size: x-small; -+} -+ -+ul[id="index"] { -+ width: 17em; -+ list-style: none; -+ margin-left: 0px; -+ margin-right: 0px; -+ padding-left: 0px; -+ padding-right: 0px; -+} -+ -+ul[id="index"] > li { -+ margin-bottom: 0.5em; -+} -+ -+ul[id="index"] > li ul { -+ width: 16em; -+ list-style: none; -+ margin-left: 0px; -+ margin-right: 0px; -+ padding-left: 0px; -+ padding-right: 0px; -+ margin-bottom: 0.5em; -+} -+ -+ul[id="index"] > li ul li { -+ display: inline; -+ margin-right: 1em; -+} -+ -+/* -+ul[id="index"] > li ul li:after { -+ color: #ccc; -+ content: '\2014'; -+} -+*/ -+ -+/* Get rid of those horrible <hr>'s :-( */ -+hr { display: none; } -+ -+/* Demote <h1>'s and set rest of headers relative. */ -+h1 { -+ font-size: 100%; -+ color: black; -+ border-bottom: solid 1px rgb(204,0,0); -+} -+ -+h2 { -+ font-size: 95%; -+ border-bottom: none; -+} -+ -+h3 { -+ font-size: 90%; -+} -+ -+h4 { -+ font-size: 85%; -+} -diff --git a/plugins/curl/Makefile.am b/plugins/curl/Makefile.am -index 91a3a3a..b58b40c 100644 ---- a/plugins/curl/Makefile.am -+++ b/plugins/curl/Makefile.am -@@ -52,16 +52,16 @@ nbdkit_curl_plugin_la_LIBADD = \ - nbdkit_curl_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-curl-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-curl-plugin.1: nbdkit-curl-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/curl/nbdkit-curl-plugin.pod b/plugins/curl/nbdkit-curl-plugin.pod -index 30e2949..9bbd285 100644 ---- a/plugins/curl/nbdkit-curl-plugin.pod -+++ b/plugins/curl/nbdkit-curl-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-curl-plugin - nbdkit curl plugin (HTTP, FTP, SSH and other protocols) -@@ -122,43 +120,3 @@ Parts derived from Alexander Graf's "QEMU Block driver for CURL images". - =head1 COPYRIGHT - - Copyright (C) 2014 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/example1/Makefile.am b/plugins/example1/Makefile.am -index 8c66bbb..e324dd8 100644 ---- a/plugins/example1/Makefile.am -+++ b/plugins/example1/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_example1_plugin_la_CFLAGS = \ - nbdkit_example1_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-example1-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-example1-plugin.1: nbdkit-example1-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/example1/nbdkit-example1-plugin.pod b/plugins/example1/nbdkit-example1-plugin.pod -index a28e5f2..81a80de 100644 ---- a/plugins/example1/nbdkit-example1-plugin.pod -+++ b/plugins/example1/nbdkit-example1-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-example1-plugin - A minimal nbdkit plugin -@@ -32,43 +30,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/example2/Makefile.am b/plugins/example2/Makefile.am -index 810d735..3125b8e 100644 ---- a/plugins/example2/Makefile.am -+++ b/plugins/example2/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_example2_plugin_la_CFLAGS = \ - nbdkit_example2_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-example2-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-example2-plugin.1: nbdkit-example2-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/example2/nbdkit-example2-plugin.pod b/plugins/example2/nbdkit-example2-plugin.pod -index 1a22bc6..dc16260 100644 ---- a/plugins/example2/nbdkit-example2-plugin.pod -+++ b/plugins/example2/nbdkit-example2-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-example2-plugin - An example nbdkit plugin -@@ -30,43 +28,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/example3/Makefile.am b/plugins/example3/Makefile.am -index 5ca25ad..f4a423d 100644 ---- a/plugins/example3/Makefile.am -+++ b/plugins/example3/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_example3_plugin_la_CFLAGS = \ - nbdkit_example3_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-example3-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-example3-plugin.1: nbdkit-example3-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/example3/nbdkit-example3-plugin.pod b/plugins/example3/nbdkit-example3-plugin.pod -index 11dfc99..5c51f83 100644 ---- a/plugins/example3/nbdkit-example3-plugin.pod -+++ b/plugins/example3/nbdkit-example3-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-example3-plugin - An example nbdkit plugin -@@ -40,43 +38,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/example4/Makefile.am b/plugins/example4/Makefile.am -index cf9f687..589b3f5 100644 ---- a/plugins/example4/Makefile.am -+++ b/plugins/example4/Makefile.am -@@ -48,16 +48,16 @@ nbdkit-example4-plugin: $(source) - mv $@-t $@ - chmod 0555 $@ - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-example4-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-example4-plugin.1: $(source) -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --name nbdkit-example4-plugin --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/example4/example4.pl b/plugins/example4/example4.pl -index b0086ac..0f0baa8 100644 ---- a/plugins/example4/example4.pl -+++ b/plugins/example4/example4.pl -@@ -3,8 +3,6 @@ - - =pod - --=encoding utf8 -- - =head1 NAME - - nbdkit-example4-plugin - An example nbdkit plugin written in Perl -@@ -48,46 +46,6 @@ Richard W.M. Jones - - Copyright (C) 2017 Red Hat Inc. - --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -- - =cut - - use strict; -diff --git a/plugins/ext2/Makefile.am b/plugins/ext2/Makefile.am -index b644451..da92c1b 100644 ---- a/plugins/ext2/Makefile.am -+++ b/plugins/ext2/Makefile.am -@@ -52,15 +52,15 @@ nbdkit_ext2_plugin_la_LIBADD = \ - nbdkit_ext2_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-ext2-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-ext2-plugin.1: nbdkit-ext2-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - endif -diff --git a/plugins/ext2/nbdkit-ext2-plugin.pod b/plugins/ext2/nbdkit-ext2-plugin.pod -index 7479ebe..5cdda06 100644 ---- a/plugins/ext2/nbdkit-ext2-plugin.pod -+++ b/plugins/ext2/nbdkit-ext2-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-ext2-plugin - Read and write files inside ext2, ext3 or -@@ -89,43 +87,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/file/Makefile.am b/plugins/file/Makefile.am -index 7500438..00eaf59 100644 ---- a/plugins/file/Makefile.am -+++ b/plugins/file/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_file_plugin_la_CFLAGS = \ - nbdkit_file_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-file-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-file-plugin.1: nbdkit-file-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/file/nbdkit-file-plugin.pod b/plugins/file/nbdkit-file-plugin.pod -index 016513a..824058e 100644 ---- a/plugins/file/nbdkit-file-plugin.pod -+++ b/plugins/file/nbdkit-file-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-file-plugin - nbdkit file plugin -@@ -54,43 +52,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/guestfs/Makefile.am b/plugins/guestfs/Makefile.am -index 79b97c5..19fe31a 100644 ---- a/plugins/guestfs/Makefile.am -+++ b/plugins/guestfs/Makefile.am -@@ -52,16 +52,16 @@ nbdkit_guestfs_plugin_la_LIBADD = \ - nbdkit_guestfs_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-guestfs-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-guestfs-plugin.1: nbdkit-guestfs-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/guestfs/nbdkit-guestfs-plugin.pod b/plugins/guestfs/nbdkit-guestfs-plugin.pod -index 9fde4b4..4bdb7ab 100644 ---- a/plugins/guestfs/nbdkit-guestfs-plugin.pod -+++ b/plugins/guestfs/nbdkit-guestfs-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-guestfs-plugin - nbdkit libguestfs plugin -@@ -201,43 +199,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/gzip/Makefile.am b/plugins/gzip/Makefile.am -index 6e95a66..b1e42c7 100644 ---- a/plugins/gzip/Makefile.am -+++ b/plugins/gzip/Makefile.am -@@ -52,16 +52,16 @@ nbdkit_gzip_plugin_la_LIBADD = \ - nbdkit_gzip_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-gzip-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-gzip-plugin.1: nbdkit-gzip-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/gzip/nbdkit-gzip-plugin.pod b/plugins/gzip/nbdkit-gzip-plugin.pod -index 7959329..a5f6b79 100644 ---- a/plugins/gzip/nbdkit-gzip-plugin.pod -+++ b/plugins/gzip/nbdkit-gzip-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-gzip-plugin - nbdkit gzip plugin -@@ -33,43 +31,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/libvirt/Makefile.am b/plugins/libvirt/Makefile.am -index 1f53cbc..f7ab44a 100644 ---- a/plugins/libvirt/Makefile.am -+++ b/plugins/libvirt/Makefile.am -@@ -52,16 +52,16 @@ nbdkit_libvirt_plugin_la_LIBADD = \ - nbdkit_libvirt_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-libvirt-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-libvirt-plugin.1: nbdkit-libvirt-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/libvirt/nbdkit-libvirt-plugin.pod b/plugins/libvirt/nbdkit-libvirt-plugin.pod -index 2ee18cc..4bfa972 100644 ---- a/plugins/libvirt/nbdkit-libvirt-plugin.pod -+++ b/plugins/libvirt/nbdkit-libvirt-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-libvirt-plugin - nbdkit libvirt plugin using virDomainBlockPeek -@@ -62,43 +60,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/lua/Makefile.am b/plugins/lua/Makefile.am -index 91d0395..9135b88 100644 ---- a/plugins/lua/Makefile.am -+++ b/plugins/lua/Makefile.am -@@ -53,16 +53,16 @@ nbdkit_lua_plugin_la_LDFLAGS = \ - -module -avoid-version -shared \ - $(LUA_LIBS) - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-lua-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-lua-plugin.3: nbdkit-lua-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/lua/nbdkit-lua-plugin.pod b/plugins/lua/nbdkit-lua-plugin.pod -index dfeef4f..9ebebab 100644 ---- a/plugins/lua/nbdkit-lua-plugin.pod -+++ b/plugins/lua/nbdkit-lua-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-lua-plugin - nbdkit Lua plugin -@@ -286,43 +284,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/memory/Makefile.am b/plugins/memory/Makefile.am -index 8bd3949..3eaedca 100644 ---- a/plugins/memory/Makefile.am -+++ b/plugins/memory/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_memory_plugin_la_CFLAGS = \ - nbdkit_memory_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-memory-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-memory-plugin.1: nbdkit-memory-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod -index 6f7fc46..5d11d86 100644 ---- a/plugins/memory/nbdkit-memory-plugin.pod -+++ b/plugins/memory/nbdkit-memory-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-memory-plugin - nbdkit virtual memory plugin -@@ -50,43 +48,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/nbd/Makefile.am b/plugins/nbd/Makefile.am -index b4a0d94..f930b26 100644 ---- a/plugins/nbd/Makefile.am -+++ b/plugins/nbd/Makefile.am -@@ -48,14 +48,14 @@ nbdkit_nbd_plugin_la_CFLAGS = \ - nbdkit_nbd_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-nbd-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-nbd-plugin.1: nbdkit-nbd-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/nbd/nbdkit-nbd-plugin.pod b/plugins/nbd/nbdkit-nbd-plugin.pod -index 2b3a054..74df7ed 100644 ---- a/plugins/nbd/nbdkit-nbd-plugin.pod -+++ b/plugins/nbd/nbdkit-nbd-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-nbd-plugin - nbdkit nbd plugin -@@ -54,43 +52,3 @@ Eric Blake - =head1 COPYRIGHT - - Copyright (C) 2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/null/Makefile.am b/plugins/null/Makefile.am -index f37e1ba..b98b041 100644 ---- a/plugins/null/Makefile.am -+++ b/plugins/null/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_null_plugin_la_CFLAGS = \ - nbdkit_null_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-null-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-null-plugin.1: nbdkit-null-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/null/nbdkit-null-plugin.pod b/plugins/null/nbdkit-null-plugin.pod -index 55affb8..fd6f4d6 100644 ---- a/plugins/null/nbdkit-null-plugin.pod -+++ b/plugins/null/nbdkit-null-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-null-plugin - nbdkit bitbucket plugin -@@ -44,43 +42,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am -index 22970f9..484d041 100644 ---- a/plugins/ocaml/Makefile.am -+++ b/plugins/ocaml/Makefile.am -@@ -67,16 +67,16 @@ libnbdkitocaml_la_CFLAGS = \ - $(WARNINGS_CFLAGS) \ - -fPIC - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-ocaml-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-ocaml-plugin.3: nbdkit-ocaml-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod -index 8f67d9b..80af5bb 100644 ---- a/plugins/ocaml/nbdkit-ocaml-plugin.pod -+++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-ocaml-plugin - writing nbdkit plugins in OCaml -@@ -122,43 +120,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2014 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/pattern/Makefile.am b/plugins/pattern/Makefile.am -index da092db..f5b99a2 100644 ---- a/plugins/pattern/Makefile.am -+++ b/plugins/pattern/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_pattern_plugin_la_CFLAGS = \ - nbdkit_pattern_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-pattern-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-pattern-plugin.1: nbdkit-pattern-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/pattern/nbdkit-pattern-plugin.pod b/plugins/pattern/nbdkit-pattern-plugin.pod -index 425cae6..1b22f39 100644 ---- a/plugins/pattern/nbdkit-pattern-plugin.pod -+++ b/plugins/pattern/nbdkit-pattern-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-pattern-plugin - plugin to serve a fixed pattern of data for testing -@@ -70,43 +68,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/perl/Makefile.am b/plugins/perl/Makefile.am -index 293d059..1b792a2 100644 ---- a/plugins/perl/Makefile.am -+++ b/plugins/perl/Makefile.am -@@ -54,16 +54,16 @@ nbdkit_perl_plugin_la_LDFLAGS = \ - -module -avoid-version -shared \ - $(PERL_LDOPTS) - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-perl-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-perl-plugin.3: nbdkit-perl-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/perl/nbdkit-perl-plugin.pod b/plugins/perl/nbdkit-perl-plugin.pod -index ce8bb51..1ddd6b6 100644 ---- a/plugins/perl/nbdkit-perl-plugin.pod -+++ b/plugins/perl/nbdkit-perl-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-perl-plugin - nbdkit perl plugin -@@ -366,43 +364,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2014 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/python/Makefile.am b/plugins/python/Makefile.am -index bcd102f..292d30b 100644 ---- a/plugins/python/Makefile.am -+++ b/plugins/python/Makefile.am -@@ -55,16 +55,16 @@ nbdkit_python_plugin_la_LDFLAGS = \ - -module -avoid-version -shared \ - $(PYTHON_LDFLAGS) - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-python-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-python-plugin.3: nbdkit-python-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod -index c80af9b..f6ada4d 100644 ---- a/plugins/python/nbdkit-python-plugin.pod -+++ b/plugins/python/nbdkit-python-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-python-plugin - nbdkit python plugin -@@ -285,43 +283,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2014 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/random/Makefile.am b/plugins/random/Makefile.am -index fac200d..d990158 100644 ---- a/plugins/random/Makefile.am -+++ b/plugins/random/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_random_plugin_la_CFLAGS = \ - nbdkit_random_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-random-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-random-plugin.1: nbdkit-random-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/random/nbdkit-random-plugin.pod b/plugins/random/nbdkit-random-plugin.pod -index 6539d61..9967f5b 100644 ---- a/plugins/random/nbdkit-random-plugin.pod -+++ b/plugins/random/nbdkit-random-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-random-plugin - plugin to serve random data -@@ -54,43 +52,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/ruby/Makefile.am b/plugins/ruby/Makefile.am -index 092f9e6..c5af56d 100644 ---- a/plugins/ruby/Makefile.am -+++ b/plugins/ruby/Makefile.am -@@ -55,16 +55,16 @@ nbdkit_ruby_plugin_la_LDFLAGS = \ - -module -avoid-version -shared \ - $(RUBY_LDFLAGS) - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-ruby-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-ruby-plugin.3: nbdkit-ruby-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/ruby/nbdkit-ruby-plugin.pod b/plugins/ruby/nbdkit-ruby-plugin.pod -index 29d072a..fab816f 100644 ---- a/plugins/ruby/nbdkit-ruby-plugin.pod -+++ b/plugins/ruby/nbdkit-ruby-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-ruby-plugin - nbdkit ruby plugin -@@ -300,43 +298,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2016 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/split/Makefile.am b/plugins/split/Makefile.am -index 42b9bfd..49c13f4 100644 ---- a/plugins/split/Makefile.am -+++ b/plugins/split/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_split_plugin_la_CFLAGS = \ - nbdkit_split_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-split-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-split-plugin.1: nbdkit-split-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/split/nbdkit-split-plugin.pod b/plugins/split/nbdkit-split-plugin.pod -index fb47faf..a7cb5ff 100644 ---- a/plugins/split/nbdkit-split-plugin.pod -+++ b/plugins/split/nbdkit-split-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-split-plugin - nbdkit plugin to concatenate split files into one disk -@@ -79,43 +77,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/streaming/Makefile.am b/plugins/streaming/Makefile.am -index ea64109..5443c4b 100644 ---- a/plugins/streaming/Makefile.am -+++ b/plugins/streaming/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_streaming_plugin_la_CFLAGS = \ - nbdkit_streaming_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-streaming-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-streaming-plugin.1: nbdkit-streaming-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/streaming/nbdkit-streaming-plugin.pod b/plugins/streaming/nbdkit-streaming-plugin.pod -index 98e8337..b33f756 100644 ---- a/plugins/streaming/nbdkit-streaming-plugin.pod -+++ b/plugins/streaming/nbdkit-streaming-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-streaming-plugin - nbdkit streaming plugin -@@ -81,43 +79,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2014 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/tar/Makefile.am b/plugins/tar/Makefile.am -index d65ebf7..c4872d4 100644 ---- a/plugins/tar/Makefile.am -+++ b/plugins/tar/Makefile.am -@@ -48,16 +48,16 @@ nbdkit-tar-plugin: $(source) - mv $@-t $@ - chmod 0555 $@ - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-tar-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-tar-plugin.1: $(source) -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --name nbdkit-tar-plugin --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/tar/tar.pl b/plugins/tar/tar.pl -index 69f693e..e92f748 100644 ---- a/plugins/tar/tar.pl -+++ b/plugins/tar/tar.pl -@@ -3,8 +3,6 @@ - - =pod - --=encoding utf8 -- - =head1 NAME - - nbdkit-tar-plugin - Read and write files inside tar files without unpacking. -@@ -72,46 +70,6 @@ Based on the virt-v2v OVA importer written by Tomáš Golembiovský. - - Copyright (C) 2017 Red Hat Inc. - --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -- - =cut - - use strict; -diff --git a/plugins/tcl/Makefile.am b/plugins/tcl/Makefile.am -index fb21481..befaf07 100644 ---- a/plugins/tcl/Makefile.am -+++ b/plugins/tcl/Makefile.am -@@ -53,16 +53,16 @@ nbdkit_tcl_plugin_la_LDFLAGS = \ - -module -avoid-version -shared \ - $(TCL_LIBS) - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-tcl-plugin.3 - CLEANFILES += $(man_MANS) - - nbdkit-tcl-plugin.3: nbdkit-tcl-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=3 --name=`basename $@ .3` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=3 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/tcl/nbdkit-tcl-plugin.pod b/plugins/tcl/nbdkit-tcl-plugin.pod -index 17b5c5f..2d40ba1 100644 ---- a/plugins/tcl/nbdkit-tcl-plugin.pod -+++ b/plugins/tcl/nbdkit-tcl-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-tcl-plugin - nbdkit Tcl plugin -@@ -292,43 +290,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/vddk/Makefile.am b/plugins/vddk/Makefile.am -index 3b3e8aa..5d5762f 100644 ---- a/plugins/vddk/Makefile.am -+++ b/plugins/vddk/Makefile.am -@@ -54,16 +54,16 @@ nbdkit_vddk_plugin_la_LIBADD = \ - nbdkit_vddk_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-vddk-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-vddk-plugin.1: nbdkit-vddk-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod -index 241a992..25e78ff 100644 ---- a/plugins/vddk/nbdkit-vddk-plugin.pod -+++ b/plugins/vddk/nbdkit-vddk-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit -@@ -328,43 +326,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013-2017 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/xz/Makefile.am b/plugins/xz/Makefile.am -index 39baef8..9b20718 100644 ---- a/plugins/xz/Makefile.am -+++ b/plugins/xz/Makefile.am -@@ -56,16 +56,16 @@ nbdkit_xz_plugin_la_LIBADD = \ - nbdkit_xz_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-xz-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-xz-plugin.1: nbdkit-xz-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD - - endif -diff --git a/plugins/xz/nbdkit-xz-plugin.pod b/plugins/xz/nbdkit-xz-plugin.pod -index 7d8332a..e5e708f 100644 ---- a/plugins/xz/nbdkit-xz-plugin.pod -+++ b/plugins/xz/nbdkit-xz-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-xz-plugin - nbdkit xz plugin -@@ -96,43 +94,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2013 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/plugins/zero/Makefile.am b/plugins/zero/Makefile.am -index 11ccce0..0dcbbf0 100644 ---- a/plugins/zero/Makefile.am -+++ b/plugins/zero/Makefile.am -@@ -47,14 +47,14 @@ nbdkit_zero_plugin_la_CFLAGS = \ - nbdkit_zero_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - --if HAVE_POD2MAN -+if HAVE_POD - - man_MANS = nbdkit-zero-plugin.1 - CLEANFILES += $(man_MANS) - - nbdkit-zero-plugin.1: nbdkit-zero-plugin.pod -- $(POD2MAN) $(POD2MAN_ARGS) --section=1 --name=`basename $@ .1` $< $@.t && \ -- if grep 'POD ERROR' $@.t; then rm $@.t; exit 1; fi && \ -- mv $@.t $@ -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< - --endif -+endif HAVE_POD -diff --git a/plugins/zero/nbdkit-zero-plugin.pod b/plugins/zero/nbdkit-zero-plugin.pod -index 015c70a..72bb1aa 100644 ---- a/plugins/zero/nbdkit-zero-plugin.pod -+++ b/plugins/zero/nbdkit-zero-plugin.pod -@@ -1,5 +1,3 @@ --=encoding utf8 -- - =head1 NAME - - nbdkit-zero-plugin - nbdkit zero length plugin -@@ -31,43 +29,3 @@ Richard W.M. Jones - =head1 COPYRIGHT - - Copyright (C) 2018 Red Hat Inc. -- --=head1 LICENSE -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- --=over 4 -- --=item * -- --Redistributions of source code must retain the above copyright --notice, this list of conditions and the following disclaimer. -- --=item * -- --Redistributions in binary form must reproduce the above copyright --notice, this list of conditions and the following disclaimer in the --documentation and/or other materials provided with the distribution. -- --=item * -- --Neither the name of Red Hat nor the names of its contributors may be --used to endorse or promote products derived from this software without --specific prior written permission. -- --=back -- --THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND --ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, --THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR --CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, --SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT --LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF --USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND --ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, --OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT --OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF --SUCH DAMAGE. -diff --git a/podwrapper.pl.in b/podwrapper.pl.in -new file mode 100755 -index 0000000..6518b4b ---- /dev/null -+++ b/podwrapper.pl.in -@@ -0,0 +1,496 @@ -+#!/usr/bin/env perl -+# podwrapper.pl -+# @configure_input@ -+# Copyright (C) 2010-2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+use warnings; -+use strict; -+ -+use Pod::Usage; -+use Getopt::Long; -+use Pod::Man; -+use Pod::Simple; -+use Pod::Simple::Text; -+use Pod::Simple::XHTML; -+use File::Basename; -+ -+# https://www.redhat.com/archives/libguestfs/2013-May/thread.html#00088 -+eval { $Text::Wrap::huge = "overflow" }; -+ -+=head1 NAME -+ -+podwrapper.pl - Generate documentation from POD input files -+ -+=head1 SYNOPSIS -+ -+ EXTRA_DIST = foo.pod -+ -+ if HAVE_POD -+ -+ man_MANS = foo.1 -+ CLEANFILES += $(man_MANS) -+ -+ foo.1: foo.pod -+ $(PODWRAPPER) --section 1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< -+ -+ endif HAVE_POD -+ -+=head1 DESCRIPTION -+ -+podwrapper.pl is a Perl script that generates various output formats -+from POD input files that nbdkit uses for most documentation. -+ -+You must specify one input file, and one or more output formats. The -+output options are I<--man>, I<--html> and I<--text> (see below). -+ -+In C<Makefile.am> files, use a variation of the boilerplate shown in -+the L</SYNOPSIS> section above. -+ -+For information about the POD format, see L<perlpod(1)>. -+ -+=head1 OPTIONS -+ -+=over 4 -+ -+=cut -+ -+my $help; -+ -+=item B<--help> -+ -+Display brief help. -+ -+=cut -+ -+my $html; -+ -+=item B<--html output.html> -+ -+Write a web page to C<output.html>. If this option is not -+given, then no web page output is produced. -+ -+=cut -+ -+my @inserts; -+ -+=item B<--insert filename:__PATTERN__> -+ -+In the input file, replace the literal text C<__PATTERN__> with the -+replacement file C<filename>. You can give this option multiple -+times. -+ -+The contents of C<filename> are treated as POD. -+Compare and contrast with I<--verbatim>. -+ -+Although it is conventional to use C<__...__> (double underscores) for -+patterns, in fact you can use any string as the pattern. -+ -+=cut -+ -+my $man; -+ -+=item B<--man output.n> -+ -+Write a man page to C<output.n> (C<n> is the manual section number). -+If this option is not given, then no man page output is produced. -+ -+=cut -+ -+my $name; -+ -+=item B<--name name> -+ -+Set the name of the man page. If not set, defaults to the basename -+of the input file. -+ -+=cut -+ -+my $section; -+ -+=item B<--section N> -+ -+Set the section of the man page (a number such as C<1> for -+command line utilities or C<3> for C API documentation). If -+not set, defaults to C<1>. -+ -+=cut -+ -+my $text; -+ -+=item B<--text output.txt> -+ -+Write a text file to C<output.txt>. If this option is not -+given, then no text output is produced. -+ -+=cut -+ -+my @verbatims; -+ -+=item B<--verbatim filename:__PATTERN__> -+ -+In the input file, replace the literal text C<__PATTERN__> with the -+replacement file C<filename>. You can give this option multiple -+times. -+ -+The contents of C<filename> are inserted as verbatim text, and -+are I<not> interpreted as POD. -+Compare and contrast with I<--insert>. -+ -+Although it is conventional to use C<__...__> (double underscores) for -+patterns, in fact you can use any string as the pattern. -+ -+=cut -+ -+# Clean up the program name. -+my $progname = $0; -+$progname =~ s{.*/}{}; -+ -+# Parse options. -+GetOptions ("help|?" => \$help, -+ "html=s" => \$html, -+ "insert=s" => \@inserts, -+ "man=s" => \$man, -+ "name=s" => \$name, -+ "section=s" => \$section, -+ "text=s" => \$text, -+ "verbatim=s" => \@verbatims, -+ ) or pod2usage (2); -+pod2usage (1) if $help; -+ -+die "$progname: missing argument: podwrapper input.pod\n" unless @ARGV == 1; -+my $input = $ARGV[0]; -+ -+# There should be at least one output. -+die "$progname: $input: no output format specified. Use --man and/or --html and/or --text.\n" -+ unless defined $man || defined $html || defined $text; -+ -+# Default for $name and $section. -+$name = basename ($input, ".pod") unless defined $name; -+$section = 1 unless defined $section; -+ -+# Note that these @...@ are substituted by ./configure. -+my $abs_top_srcdir = "@abs_top_srcdir@"; -+my $abs_top_builddir = "@abs_top_builddir@"; -+my $package_name = "@PACKAGE_NAME@"; -+my $package_version = "@PACKAGE_VERSION@"; -+ -+die "$progname: ./configure substitutions were not performed" -+ unless $abs_top_srcdir && $abs_top_builddir && -+ $package_name && $package_version; -+ -+# Create a stable date (thanks Hilko Bengen). -+my $date; -+my $filename = "$abs_top_srcdir/.git"; -+if (!$date && -d $filename) { -+ local $ENV{GIT_DIR} = $filename; -+ $_ = `git show -s --format=%ci`; -+ $date = $1 if /^(\d+-\d+-\d+)\s/; -+} -+if (!$date) { -+ my ($day, $month, $year) = (localtime)[3,4,5]; -+ $date = sprintf ("%04d-%02d-%02d", $year+1900, $month+1, $day); -+} -+ -+# Create a release string. -+my $release = "$package_name-$package_version"; -+ -+#print "input=$input\n"; -+#print "name=$name\n"; -+#print "section=$section\n"; -+#print "date=$date\n"; -+ -+# Read the input. -+my $content = read_whole_file ($input); -+ -+# Perform @inserts. -+foreach (@inserts) { -+ my @a = split /:/, $_, 2; -+ die "$progname: $input: no colon in parameter of --insert\n" unless @a >= 2; -+ my $replacement = read_whole_file ($a[0]); -+ my $oldcontent = $content; -+ $content =~ s/$a[1]/$replacement/ge; -+ die "$progname: $input: could not find pattern '$a[1]' in input file\n" -+ if $content eq $oldcontent; -+} -+ -+# Turn external links to this man page into simple cross-section links. -+$content =~ s,\QL<$name($section)/\E,L</,g; -+ -+# Perform @verbatims. -+foreach (@verbatims) { -+ my @a = split /:/, $_, 2; -+ die "$progname: $input: no colon in parameter of --verbatim\n" unless @a >= 2; -+ my $replacement = read_verbatim_file ($a[0]); -+ my $oldcontent = $content; -+ $content =~ s/$a[1]/$replacement/ge; -+ die "$progname: $input: could not find pattern '$a[1]' in input file\n" -+ if $content eq $oldcontent; -+} -+ -+# There should be no =encoding line present in the content (we will add one). -+die "$progname: $input: =encoding must not be present in input\n" -+ if $content =~ /^=encoding/m; -+ -+$content =~ s/^=(.*)/\n=encoding utf8\n\n=$1/m; -+ -+# Verify sections present / not present. -+die "$progname: $input: missing DESCRIPTION section\n" -+ if $content !~ /^=head1 DESCRIPTION/m; -+die "$progname: $input: missing AUTHOR or AUTHORS section\n" -+ unless $content =~ /^=head1 AUTHOR/m; -+die "$progname: $input: missing SEE ALSO section\n" -+ unless $content =~ /^=head1 SEE ALSO/m; -+die "$progname: $input: missing COPYRIGHT section\n" -+ unless $content =~ /^=head1 COPYRIGHT/m; -+die "$progname: $input: BUGS is now added automatically, do not add it to the POD file\n" -+ if $content =~ /^=head1 (REPORTING )?BUGS/m; -+die "$progname: $input: LICENSE is now added automatically, do not add it to the POD file\n" -+ if $content =~ /^=head1 LICENSE/m; -+ -+# Add standard LICENSE section at the end. -+$content .= -+" -+ -+=head1 LICENSE -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are -+met: -+ -+=over 4 -+ -+=item * -+ -+Redistributions of source code must retain the above copyright -+notice, this list of conditions and the following disclaimer. -+ -+=item * -+ -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+ -+=item * -+ -+Neither the name of Red Hat nor the names of its contributors may be -+used to endorse or promote products derived from this software without -+specific prior written permission. -+ -+=back -+ -+THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+SUCH DAMAGE. -+"; -+ -+# Check no over-long lines in the input. (As a special exception this -+# is permitted in verbatim sections or if the line contains a URL). -+my @lines = split /\n/, $content; -+foreach (@lines) { -+ die "$progname: $input: line too long:\n$_\n" -+ if length $_ > 76 && -+ substr ($_, 0, 1) ne ' ' && -+ ! m/https?:/; -+} -+ -+# Output man page. -+SUBMAN: { -+ package Podwrapper::Man; -+ -+ use vars qw(@ISA $VERSION); -+ @ISA = qw(Pod::Man); -+ $VERSION = $package_version; -+ -+ # Override the L<> method. -+ sub cmd_l -+ { -+ my ($self, $attrs, $text) = @_; -+ return $text; -+ } -+} -+ -+if ($man) { -+ my $parser = Podwrapper::Man->new ( -+ name => $name, -+ release => $release, section => $section, -+ center => "Virtualization Support", -+ date => $date, -+ stderr => 1, utf8 => 1 -+ ); -+ my $output; -+ $parser->no_errata_section (1); -+ $parser->complain_stderr (1); -+ $parser->output_string (\$output); -+ $parser->parse_string_document ($content) -+ or die "$progname: could not parse input document"; -+ open OUT, ">$man" or die "$progname: $man: $!"; -+ print OUT $output or die "$progname: $man: $!"; -+ close OUT or die "$progname: $man: $!"; -+ if ($parser->any_errata_seen) { -+ unlink $man; -+ die "$input: errors or warnings in this POD file, see messages above\n" -+ } -+ #print "$progname: wrote $man\n"; -+} -+ -+# Output HTML. -+SUBHTML: { -+ # Subclass Pod::Simple::XHTML. See the documentation. -+ package Podwrapper::XHTML; -+ -+ use vars qw(@ISA $VERSION); -+ @ISA = qw(Pod::Simple::XHTML); -+ $VERSION = $package_version; -+ -+ sub is_an_nbdkit_page -+ { -+ local $_ = shift; -+ -+ return 1 if /^nbdkit/; -+ return 0; -+ } -+ -+ sub resolve_man_page_link -+ { -+ my $self = shift; -+ my $name = $_[0]; # eg. "nbdkit(1)", can be undef -+ my $anchor = $_[1]; # eg. "SYNOPSIS", can be undef -+ my $r = ""; -+ if (defined $name) { -+ return $self->SUPER::resolve_man_page_link (@_) -+ unless is_an_nbdkit_page ($name); -+ $name =~ s/\((.*)\)$/.$1/; -+ $r .= "$name.html"; -+ } -+ $r .= "#" . $self->idify ($anchor, 1) if defined $anchor; -+ $r; -+ } -+ -+ # For some reason Pod::Simple::XHTML usually cannot find a -+ # title for the page. This defaults the HTML <title> field -+ # to the same as the man page name. -+ sub default_title { $name } -+} -+ -+if ($html) { -+ mkdir "$abs_top_builddir/html"; -+ -+ my $parser = Podwrapper::XHTML->new; -+ my $output; -+ $parser->no_errata_section (1); -+ $parser->complain_stderr (1); -+ $parser->output_string (\$output); -+ # Added in Pod::Simple 3.16, 2011-03-14. -+ eval { $parser->html_charset ("UTF-8") }; -+ $parser->html_css ("pod.css"); -+ $parser->index (1); -+ $parser->parse_string_document ($content); -+ -+ # Hack for Perl 5.16. -+ $output =~ s{/>pod.css<}{/>\n<}; -+ -+ open OUT, ">$html" or die "$progname: $html: $!"; -+ print OUT $output or die "$progname: $html: $!"; -+ close OUT or die "$progname: $html: $!"; -+ if ($parser->any_errata_seen) { -+ unlink $html; -+ die "$input: errors or warnings in this POD file, see messages above\n" -+ } -+ #print "$progname: wrote $html\n"; -+} -+ -+# Output text. -+if ($text) { -+ my $parser = Pod::Simple::Text->new; -+ my $output; -+ $parser->no_errata_section (1); -+ $parser->complain_stderr (1); -+ $parser->output_string (\$output); -+ $parser->parse_string_document ($content); -+ open OUT, ">$text" or die "$progname: $text: $!"; -+ binmode OUT, ":utf8"; -+ print OUT $output or die "$progname: $text: $!"; -+ close OUT or die "$progname: $text: $!"; -+ if ($parser->any_errata_seen) { -+ unlink $text; -+ die "$input: errors or warnings in this POD file, see messages above\n" -+ } -+ #print "$progname: wrote $text\n"; -+} -+ -+sub read_whole_file -+{ -+ my $input = shift; -+ local $/ = undef; -+ -+ open FILE, "<:encoding(UTF-8)", $input or die "$progname: $input: $!"; -+ $_ = <FILE>; -+ close FILE; -+ $_; -+} -+ -+sub read_verbatim_file -+{ -+ my $input = shift; -+ my $r = ""; -+ -+ open FILE, "<:encoding(UTF-8)", $input or die "$progname: $input: $!"; -+ while (<FILE>) { -+ $r .= " $_"; -+ } -+ close FILE; -+ $r; -+} -+ -+=head1 SEE ALSO -+ -+L<perlpod(1)>, -+L<Pod::Simple(3pm)>. -+ -+=head1 AUTHOR -+ -+Richard W.M. Jones. -+ -+=head1 COPYRIGHT -+ -+Copyright (C) 2012-2018 Red Hat Inc. --- -2.17.1 - diff --git a/0011-Rework-README-file.patch b/0011-Rework-README-file.patch deleted file mode 100644 index 0facc9d..0000000 --- a/0011-Rework-README-file.patch +++ /dev/null @@ -1,230 +0,0 @@ -From 730f8388467426bfd061151205d93391c942b86a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 17:26:59 +0100 -Subject: [PATCH 11/12] Rework README file. - ---- - README | 119 +++++++++++++++++++++++++++++++-------------------------- - 1 file changed, 65 insertions(+), 54 deletions(-) - -diff --git a/README b/README -index 685b41f..5114b31 100644 ---- a/README -+++ b/README -@@ -1,7 +1,7 @@ --NBD is a protocol for accessing Block Devices (hard disks and --disk-like things) over a Network. -+NBD — Network Block Device — is a protocol for accessing Block Devices -+(hard disks and disk-like things) over a Network. - --'nbdkit' is a toolkit for creating NBD servers. -+nbdkit is a toolkit for creating NBD servers. - - The key features are: - -@@ -13,24 +13,39 @@ The key features are: - libraries or included in proprietary code. - - * Well-documented, simple plugin API with a stable ABI guarantee. -- Lets you export "unconventional" block devices easily. -+ Lets you export “unconventional” block devices easily. - - * You can write plugins in C, Lua, Perl, Python, OCaml, Ruby or Tcl. - --For documentation, see the docs/ directory. -+ * Filters can be stacked in front of plugins to transform the output. - --For plugins and examples, see the plugins/ directory. -+For documentation, see the ‘docs/’ directory. - --License --------- -+For plugins, examples and filters, see the ‘plugins/’ and ‘filters/’ -+directories. -+ -+LICENSE -+======= - - This software is copyright (C) Red Hat Inc. and licensed under a BSD --license. See LICENSE for details. -+license. See ‘LICENSE’ for details. - --Building from source ---------------------- -+BUILDING FROM SOURCE -+==================== - --By default nbdkit needs nothing except Linux and reasonably recent gcc. -+Requirements -+------------ -+ -+To build the basic server and some plugins nbdkit needs nothing except -+Linux and reasonably recent gcc. -+ -+Although it is possible to build without it, it’s recommended to -+enable TLS support for which you will need: -+ -+ - gnutls >= 3.3.0 -+ -+Optional dependencies -+--------------------- - - To build the man pages, you will optionally need to install: - -@@ -38,13 +53,6 @@ To build the man pages, you will optionally need to install: - - - Pod::Man and Pod::Simple (perl library) - --There are some *optional* libraries you may want to install for --plugins or extra features. -- --For TLS support: -- -- - gnutls >= 3.3.0 -- - For the gzip plugin: - - - zlib -@@ -79,19 +87,22 @@ For the VDDK plugin: - - For the Perl, example4 and tar plugins: - -+ - perl interpreter -+ - - perl development libraries - - - perl module ExtUtils::Embed - - For the Python plugin: - -- - python development libraries -+ - python interpreter - (either version 2 or 3 may be used) - -+ - python development libraries -+ - For the OCaml plugin: - -- - OCaml >= 4.02.2 which has support for shared libraries, see: -- http://caml.inria.fr/mantis/view.php?id=6693 -+ - OCaml >= 4.02.2 - - For the Tcl plugin: - -@@ -109,81 +120,81 @@ To run the test suite: - - - bash - --To test for memory leaks ('make check-valgrind'): -+To test for memory leaks (‘make check-valgrind’): - - - valgrind program and development headers - - For non-essential enhancements to the test suite: - -+ - qemu-io (usually shipped with qemu) -+ - - socat - - - ss (from iproute package) - --After installing any dependencies: -+Building -+-------- - -- To build from tarball: To build from git: -- ---------------------- ------------------ -- autoreconf -i -- ./configure ./configure -- make make -- make check make check -+ To build from tarball: To build from git: -+ ---------------------- ------------------ -+ autoreconf -i -+ ./configure ./configure -+ make make -+ make check make check - - To run nbdkit from the source directory, use the top level ./nbdkit - script. It will run nbdkit and plugins from the locally compiled - directory: - -- $ ./nbdkit example1 -f -v -- ./src/nbdkit ./plugins/example1/.libs/nbdkit-example1-plugin.so -f -v -- [etc] -+ $ ./nbdkit example1 -f -v -+ ./src/nbdkit ./plugins/example1/.libs/nbdkit-example1-plugin.so -f -v -+ [etc] - - Optionally run this command as root to install everything: - -- make install -+ make install - - Python - ------ - - By default nbdkit uses the Python version of the Python interpreter --called "python" on the current $PATH. To use another version of -+called “python” on the current $PATH. To use another version of - Python you may need to set the PYTHON variable when configuring. For - example: - -- ./configure PYTHON=/usr/bin/python3 -+ ./configure PYTHON=/usr/bin/python3 - --Tests ------- -+Running the tests -+----------------- - - You will need to install libguestfs to run most of the test suite: - -- make check -+ make check - - The test suite is fairly comprehensive. It runs the newly built - nbdkit + plugins as a captive process, and tests them using - libguestfs. If there is a failure, look at the corresponding --tests/*.log file for debug information. -+‘tests/*.log’ file for debug information. - --Developers ------------ -+DOWNLOAD TARBALLS -+================= -+ -+Tarballs are available from: -+http://libguestfs.org/download/nbdkit -+ -+DEVELOPERS -+========== - - Install the valgrind program and development headers. - - Use: - -- ./configure --enable-gcc-warnings --enable-valgrind -+ ./configure --enable-gcc-warnings --enable-valgrind - - When testing use: - -- make check -- make check-valgrind -- --Packager information ---------------------- -- --Tarballs are available from: --http://libguestfs.org/download/nbdkit -- --Developer information ----------------------- -+ make check -+ make check-valgrind - - For development ideas, see the TODO file. - --- -2.17.1 - diff --git a/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch b/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch deleted file mode 100644 index 715b04e..0000000 --- a/0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 0c710f36c5e686ae0f02c67dc6b19e1622e23d8a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 15 Jul 2018 17:32:22 +0100 -Subject: [PATCH 12/12] null, pattern, random: Make these plugins work on 32 - bit machines. - -These plugins had copied code from the nbdkit-memory-plugin. The -memory plugin needs to store actual data in an array so uses size_t. -However these other plugins don't have to store anything and so shoule -use int64_t, enabling them to work on 32 bit platforms. ---- - plugins/null/null.c | 10 +++------- - plugins/pattern/pattern.c | 12 ++++-------- - plugins/random/random.c | 12 ++++-------- - 3 files changed, 11 insertions(+), 23 deletions(-) - -diff --git a/plugins/null/null.c b/plugins/null/null.c -index 905cc64..1daafac 100644 ---- a/plugins/null/null.c -+++ b/plugins/null/null.c -@@ -44,7 +44,7 @@ - #include <nbdkit-plugin.h> - - /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ --static size_t size = 0; -+static int64_t size = 0; - - static int - null_config (const char *key, const char *value) -@@ -55,11 +55,7 @@ null_config (const char *key, const char *value) - r = nbdkit_parse_size (value); - if (r == -1) - return -1; -- if (r > SIZE_MAX) { -- nbdkit_error ("size > SIZE_MAX"); -- return -1; -- } -- size = (ssize_t) r; -+ size = r; - } - else { - nbdkit_error ("unknown parameter '%s'", key); -@@ -108,7 +104,7 @@ null_close (void *handle) - static int64_t - null_get_size (void *handle) - { -- return (int64_t) size; -+ return size; - } - - /* Read data. */ -diff --git a/plugins/pattern/pattern.c b/plugins/pattern/pattern.c -index e1dc798..11b258d 100644 ---- a/plugins/pattern/pattern.c -+++ b/plugins/pattern/pattern.c -@@ -45,7 +45,7 @@ - #include <nbdkit-plugin.h> - - /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ --static size_t size = 0; -+static int64_t size = 0; - - static int - pattern_config (const char *key, const char *value) -@@ -56,11 +56,7 @@ pattern_config (const char *key, const char *value) - r = nbdkit_parse_size (value); - if (r == -1) - return -1; -- if (r > SIZE_MAX) { -- nbdkit_error ("size > SIZE_MAX"); -- return -1; -- } -- size = (ssize_t) r; -+ size = r; - } - else { - nbdkit_error ("unknown parameter '%s'", key); -@@ -89,7 +85,7 @@ pattern_open (int readonly) - static int64_t - pattern_get_size (void *handle) - { -- return (int64_t) size; -+ return size; - } - - #define MIN(a, b) ((a) < (b) ? (a) : (b)) -@@ -102,7 +98,7 @@ pattern_pread (void *handle, void *buf, uint32_t count, uint64_t offset, - char *b = buf; - uint64_t d; - uint64_t o; -- size_t n; -+ uint32_t n; - - while (count > 0) { - d = htobe64 (offset & ~7); -diff --git a/plugins/random/random.c b/plugins/random/random.c -index 185609d..8adc26e 100644 ---- a/plugins/random/random.c -+++ b/plugins/random/random.c -@@ -45,7 +45,7 @@ - #include <nbdkit-plugin.h> - - /* The size of disk in bytes (initialized by size=<SIZE> parameter). */ --static size_t size = 0; -+static int64_t size = 0; - - /* Seed. */ - static uint32_t seed; -@@ -95,11 +95,7 @@ random_config (const char *key, const char *value) - r = nbdkit_parse_size (value); - if (r == -1) - return -1; -- if (r > SIZE_MAX) { -- nbdkit_error ("size > SIZE_MAX"); -- return -1; -- } -- size = (ssize_t) r; -+ size = r; - } - else { - nbdkit_error ("unknown parameter '%s'", key); -@@ -129,7 +125,7 @@ random_open (int readonly) - static int64_t - random_get_size (void *handle) - { -- return (int64_t) size; -+ return size; - } - - /* Read data. */ -@@ -137,7 +133,7 @@ static int - random_pread (void *handle, void *buf, uint32_t count, uint64_t offset, - uint32_t flags) - { -- size_t i; -+ uint32_t i; - unsigned char *b = buf; - uint32_t s; - --- -2.17.1 - diff --git a/nbdkit.spec b/nbdkit.spec index 609b1e3..f88fbd8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,8 +26,8 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.0 -Release: 3%{?dist} +Version: 1.5.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -40,18 +40,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -Patch0001: 0001-bash-Don-t-define-bashcompdir-twice.patch -Patch0002: 0002-xz-Minor-rewrites-to-improve-the-flow-of-the-man-pag.patch -Patch0003: 0003-streaming-Add-illustrations-to-the-man-page.patch -Patch0004: 0004-tests-Put-test.lua-into-alphabetical-order-in-the-li.patch -Patch0005: 0005-Add-pattern-plugin.patch -Patch0006: 0006-tests-Add-a-second-test-of-the-offset-filter.patch -Patch0007: 0007-tests-Test-largest-possible-plugin-size.patch -Patch0008: 0008-docs-Fix-broken-cross-reference-in-man-page.patch -Patch0009: 0009-docs-Break-up-some-over-long-lines-in-documentation.patch -Patch0010: 0010-docs-Add-podwrapper-from-libguestfs.patch -Patch0011: 0011-Rework-README-file.patch -Patch0012: 0012-null-pattern-random-Make-these-plugins-work-on-32-bi.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -781,6 +769,9 @@ popd %changelog +* Fri Jul 20 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-1 +- New upstream version 1.5.1. +- Remove patches, all upstream in this version. - Small refactorings in the spec file. * Sun Jul 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-3 diff --git a/sources b/sources index df0e689..e836feb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.0.tar.gz) = a3fa45d3d01137eb641f724a3d4ddcd85bc42bbf3776a1494cd91e25a9122b188943d0cb3f0ac65b1cd27faf7c540eed71e5a70421548d133b769f85dbb6bb59 -SHA512 (nbdkit-1.5.0.tar.gz.sig) = 82b811053d69290d82a2804d67ceb3af8c18ba670d83aa4a9ac224a29e1f030bccad7d827af8de03ffab3fd5daa5e1a6344f6702b33ca8ed5ab5e0d6f0b01221 +SHA512 (nbdkit-1.5.1.tar.gz) = 7011b59fe36271281831b00122a90003408fd9ab1cbf5b41d836a2e339650e7c0753efff29fe0f13117a16f4fa2848f5fe31611033532e34f2f671c299963f2c +SHA512 (nbdkit-1.5.1.tar.gz.sig) = 8cc16bb9cba6ba77bffeba6b12e0135ce87f0b88fc09f8d8fa0a4477b5755d260dce5a010143e9497837a5ca80f366797f6ed2e784747c85211c68465de52ffe From b160c01694171297a902e0c6d8e51f58b84c5c19 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 24 Jul 2018 15:45:22 +0100 Subject: [PATCH 111/683] Enable VDDK plugin. --- 0001-vddk-Remove-vimapiver-parameter.patch | 115 ++++ ...pile-time-dependency-on-VDDK-library.patch | 595 ++++++++++++++++++ ...-about-my-experiment-with-PrepareFor.patch | 29 + nbdkit.spec | 31 +- 4 files changed, 768 insertions(+), 2 deletions(-) create mode 100644 0001-vddk-Remove-vimapiver-parameter.patch create mode 100644 0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch create mode 100644 0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch diff --git a/0001-vddk-Remove-vimapiver-parameter.patch b/0001-vddk-Remove-vimapiver-parameter.patch new file mode 100644 index 0000000..53952a9 --- /dev/null +++ b/0001-vddk-Remove-vimapiver-parameter.patch @@ -0,0 +1,115 @@ +From ecface865aa121a601c571831d78f4ea1f0574b8 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 24 Jul 2018 12:08:41 +0100 +Subject: [PATCH 1/3] vddk: Remove vimapiver parameter. + +VDDK never used this, setting it is useless. +--- + plugins/vddk/nbdkit-vddk-plugin.pod | 12 ++---------- + plugins/vddk/vddk.c | 20 +++----------------- + 2 files changed, 5 insertions(+), 27 deletions(-) + +diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod +index 09901de..ad6fcd9 100644 +--- a/plugins/vddk/nbdkit-vddk-plugin.pod ++++ b/plugins/vddk/nbdkit-vddk-plugin.pod +@@ -8,7 +8,7 @@ nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit + [vm=moref=ID] [server=HOSTNAME] [user=USERNAME] + [password=PASSWORD | password=- | password=+FILENAME] + [cookie=COOKIE] [thumbprint=THUMBPRINT] +- [vimapiver=APIVER] [port=PORT] [nfchostport=PORT] ++ [port=PORT] [nfchostport=PORT] + [snapshot=MOREF] [transports=MODE:MODE:...] + nbdkit vddk --dump-plugin + +@@ -175,10 +175,7 @@ L<https://blogs.vmware.com/vsphere/2012/02/uniquely-identifying-virtual-machines + + =item B<vimapiver=APIVER> + +-Optional. Specify the VIM API version. If not given it defaults to +-the current version. +- +-(Only supported in VDDK ≥ 6.5.0) ++This parameter is ignored for backwards compatibility. + + =back + +@@ -269,11 +266,6 @@ at runtime. + If this is printed then the C<nfchostport=PORT> parameter is supported + by this build. + +-=item C<vddk_has_vimapiver=1> +- +-If this is printed then the C<vimapiver=APIVER> parameter is supported +-by this build. +- + =back + + =head1 DEBUGGING VDDK +diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c +index 8bc1517..7e0590e 100644 +--- a/plugins/vddk/vddk.c ++++ b/plugins/vddk/vddk.c +@@ -1,5 +1,5 @@ + /* nbdkit +- * Copyright (C) 2013-2017 Red Hat Inc. ++ * Copyright (C) 2013-2018 Red Hat Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -59,7 +59,6 @@ static const char *snapshot_moref = NULL; /* snapshot */ + static const char *thumb_print = NULL; /* thumbprint */ + static const char *transport_modes = NULL; /* transports */ + static const char *username = NULL; /* user */ +-static const char *vim_api_ver = NULL; /* vimapiver */ + static const char *vmx_spec = NULL; /* vm */ + static int is_remote = 0; + +@@ -208,12 +207,7 @@ vddk_config (const char *key, const char *value) + username = value; + } + else if (strcmp (key, "vimapiver") == 0) { +-#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER +- vim_api_ver = value; +-#else +- nbdkit_error ("this version of VDDK is too old to support vimapiver"); +- return -1; +-#endif ++ /* Ignored for backwards compatibility. */ + } + else if (strcmp (key, "vm") == 0) { + vmx_spec = value; +@@ -248,8 +242,7 @@ vddk_config_complete (void) + cookie || + thumb_print || + port || +- nfc_host_port || +- vim_api_ver; ++ nfc_host_port; + + if (is_remote) { + #define missing(test, param) \ +@@ -281,10 +274,6 @@ vddk_dump_plugin (void) + printf ("vddk_has_nfchostport=1\n"); + #endif + +-#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER +- printf ("vddk_has_vimapiver=1\n"); +-#endif +- + /* XXX We really need to print the version of the dynamically + * linked library here, but VDDK does not provide it. + */ +@@ -336,9 +325,6 @@ vddk_open (int readonly) + params.port = port; + #if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT + params.nfcHostPort = nfc_host_port; +-#endif +-#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER +- params.vimApiVer = (char *) vim_api_ver; + #endif + } + +-- +2.18.0 + diff --git a/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch b/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch new file mode 100644 index 0000000..f95acd2 --- /dev/null +++ b/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch @@ -0,0 +1,595 @@ +From 8d7f7c26eb435334d7fa35e84ceee7d266dfae4c Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 24 Jul 2018 12:11:17 +0100 +Subject: [PATCH 2/3] vddk: Remove compile-time dependency on VDDK library. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Allow the plugin to be compiled without needing the library. Instead +of linking to the library at compile time we open the library at +runtime using dlopen. + +The plugin is now compiled unconditionally, unless you use +‘./configure --disable-vddk’. (Of course you still need the VDDK +library if you want to use the plugin. We cannot even test the plugin +loads without the library.). + +This change also moves the initialization of VDDK (calling InitEx) +into the config_complete method instead of the load method. This +later initialization allows the "config=FILENAME" and +"libdir=PATHNAME" parameters to have an effect whereas previously they +were silently ignored. +--- + README | 4 - + configure.ac | 75 ++--------------- + plugins/vddk/Makefile.am | 13 +-- + plugins/vddk/README.VDDK | 25 ++---- + plugins/vddk/nbdkit-vddk-plugin.pod | 48 ++++++++--- + plugins/vddk/vddk-structs.h | 125 ++++++++++++++++++++++++++++ + plugins/vddk/vddk.c | 89 ++++++++++++++------ + 7 files changed, 244 insertions(+), 135 deletions(-) + create mode 100644 plugins/vddk/vddk-structs.h + +diff --git a/README b/README +index 6d8bcab..e4eda79 100644 +--- a/README ++++ b/README +@@ -81,10 +81,6 @@ For the ext2 plugin: + + - com_err + +-For the VDDK plugin: +- +- - VDDK (see plugins/vddk/README.VDDK) +- + For the Perl, example4 and tar plugins: + + - perl interpreter +diff --git a/configure.ac b/configure.ac +index 832bae9..f61ca1d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -517,77 +517,14 @@ AS_IF([test "$with_ext2" != "no"], [ + AM_CONDITIONAL([HAVE_EXT2], + [test "x$EXT2FS_LIBS" != "x" && test "x$COM_ERR_LIBS" != "x"]) + ++dnl Check if the user wants to disable VDDK support. + dnl See plugins/vddk/README.VDDK. +-AC_CHECK_SIZEOF([size_t]) +-AS_IF([test "x$ac_cv_sizeof_size_t" = "x4"],[bits=32],[bits=64]) +-AC_ARG_WITH([vddk],[ +- AS_HELP_STRING([--with-vddk], +- [enable VMware VDDK plugin @<:@default=no@:>@])], ++AC_ARG_ENABLE([vddk],[ ++ AS_HELP_STRING([--disable-vddk], ++ [disable VMware VDDK plugin])], + [], +- [with_vddk=no]) +-AS_IF([test "$with_vddk" = "yes"],[ +- VDDK_CFLAGS= +- VDDK_LIBS="-lvixDiskLib" +- # XXX Warning: stupid VMware API. +- VDDK_LIBDIR="$libdir/vmware-vix-disklib" +- AC_MSG_NOTICE([VDDK plugin enabled from $VDDK_LIBDIR]) +- ],[ +- AS_IF([test "$with_vddk" != "no"], [ +- VDDK_CFLAGS="-I$with_vddk/include" +- VDDK_LIBS="-L$with_vddk/lib$bits -lvixDiskLib" +- VDDK_LIBDIR="$with_vddk" +- AC_MSG_NOTICE([VDDK plugin enabled from $with_vddk]) +- ], +- [AC_MSG_NOTICE([VDDK plugin disabled]) +- ]) +-]) +- +-dnl If the VDDK plugin was enabled, compile and link a test program to make +-dnl sure the library really works. +-AS_IF([test "x$VDDK_LIBS" != "x"],[ +- # Save CFLAGS etc while we do this test. +- acx_nbdkit_save_CFLAGS="${CFLAGS}" +- acx_nbdkit_save_LIBS="${LIBS}" +- CFLAGS="$CFLAGS $VDDK_CFLAGS" +- LIBS="$VDDK_LIBS $LIBS" +- +- AC_MSG_CHECKING([if we can link to VDDK]) +- AC_LINK_IFELSE([ +- AC_LANG_SOURCE([[ +-#include <stdio.h> +-#include <stdint.h> +-#include <vixDiskLib.h> +- +-int +-main () +-{ +- VixDiskLib_Exit (); +-} +-]]) +- ],[ +- AC_MSG_RESULT([yes]) +- ],[ +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([could not link to VDDK, see ‘config.log’ for more information]) +- ]) +- +- dnl Check for optional fields in VixDiskLibConnectParams struct. +- AC_CHECK_MEMBERS([VixDiskLibConnectParams.nfcHostPort, VixDiskLibConnectParams.vimApiVer], +- [], [], [[ +-#include <stdio.h> +-#include <stdint.h> +-#include <vixDiskLib.h> +-]]) +- +- dnl Restore CFLAGS, etc. +- CFLAGS="${acx_nbdkit_save_CFLAGS}" +- LIBS="${acx_nbdkit_save_LIBS}" +-]) +- +-AC_SUBST([VDDK_CFLAGS]) +-AC_SUBST([VDDK_LIBS]) +-AC_DEFINE_UNQUOTED([VDDK_LIBDIR],["$VDDK_LIBDIR"],[VDDK 'libDir'.]) +-AM_CONDITIONAL([HAVE_VDDK],[test "x$VDDK_LIBS" != "x"]) ++ [enable_vddk=yes]) ++AM_CONDITIONAL([HAVE_VDDK], [test "x$enable_vddk" = "xyes"]) + + dnl Produce output files. + AC_CONFIG_HEADERS([config.h]) +diff --git a/plugins/vddk/Makefile.am b/plugins/vddk/Makefile.am +index 5d5762f..5e780b5 100644 +--- a/plugins/vddk/Makefile.am ++++ b/plugins/vddk/Makefile.am +@@ -1,5 +1,5 @@ + # nbdkit +-# Copyright (C) 2013 Red Hat Inc. ++# Copyright (C) 2013-2018 Red Hat Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without +@@ -42,15 +42,16 @@ plugin_LTLIBRARIES = nbdkit-vddk-plugin.la + + nbdkit_vddk_plugin_la_SOURCES = \ + vddk.c \ ++ vddk-structs.h \ + $(top_srcdir)/include/nbdkit-plugin.h + + nbdkit_vddk_plugin_la_CPPFLAGS = \ +- -I$(top_srcdir)/include ++ -I$(top_srcdir)/include \ ++ -DVDDK_LIBDIR=\"$(libdir)/vmware-vix-disklib\" + nbdkit_vddk_plugin_la_CFLAGS = \ +- $(WARNINGS_CFLAGS) \ +- $(VDDK_CFLAGS) ++ $(WARNINGS_CFLAGS) + nbdkit_vddk_plugin_la_LIBADD = \ +- $(VDDK_LIBS) ++ -ldl + nbdkit_vddk_plugin_la_LDFLAGS = \ + -module -avoid-version -shared + +@@ -66,4 +67,4 @@ nbdkit-vddk-plugin.1: nbdkit-vddk-plugin.pod + + endif HAVE_POD + +-endif ++endif HAVE_VDDK +diff --git a/plugins/vddk/README.VDDK b/plugins/vddk/README.VDDK +index d8c62b1..1e56631 100644 +--- a/plugins/vddk/README.VDDK ++++ b/plugins/vddk/README.VDDK +@@ -11,27 +11,14 @@ account and download it from: + This directory contains an nbdkit plugin which uses this library to + export VMDK files and VMware disks over NBD. + +-VDDK >= 6.5 is required. +- +-Note: VDDK can do NBD on its own, so nbdkit might not be needed unless +-you want the extra features and flexibility of nbdkit. +- +-It is never compiled by default. To enable it you have to do: +- +- ./configure --with-vddk +- +-If the VDDK library is located in a non-standard location, use this +-instead: +- +- ./configure --with-vddk=/path/to/vmware-vix-disklib-distrib +- +-(This looks for include/ and lib{32,64}/ subdirectories of the given +-path for header files and libraries respectively.) ++You do NOT require VDDK to compile the plugin, and the plugin does not ++contain any VMware code. You only need VDDK at runtime. The plugin ++uses dlopen to load the library from LD_LIBRARY_PATH (or else the ++standard shared library paths). + + After building nbdkit-vddk-plugin.so, read the man page to find out +-how to use it (nbdkit-vddk-plugin(1)). +- +-You'll probably also want to read the VDDK developer documentation. ++how to use it (nbdkit-vddk-plugin(1)). You'll probably also want to ++read the VDDK developer documentation. + + Bugs + ---- +diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod +index ad6fcd9..2764883 100644 +--- a/plugins/vddk/nbdkit-vddk-plugin.pod ++++ b/plugins/vddk/nbdkit-vddk-plugin.pod +@@ -14,21 +14,41 @@ nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit + + =head1 DESCRIPTION + +-C<nbdkit-vddk-plugin> is a L<nbdkit(1)> plugin that serves files from ++C<nbdkit-vddk-plugin> is an L<nbdkit(1)> plugin that serves files from + local VMware VMDK files, VMware ESXi servers, VMware VCenter servers, +-and other sources by using VMware's proprietary VDDK library. ++and other sources. It requires VMware's proprietary VDDK library that ++you must download yourself separately. + + The plugin can serve read-only (if the I<-r> option is used) or + read/write. + +-=head1 LIBRARY LOCATION ++=head1 LIBRARY AND CONFIG FILE LOCATIONS + +-If the VDDK library (C<libvixDiskLib.so>) is located on a non-standard +-path, you may need to set C<LD_LIBRARY_PATH> or modify +-C</etc/ld.so.conf> before this plugin will work. ++If the VDDK library (F<libvixDiskLib.so.6>) is located on a ++non-standard path, you may need to set C<LD_LIBRARY_PATH> or modify ++F</etc/ld.so.conf> before this plugin will work. In addition you may ++want to set the C<libdir> parameter so that the VDDK library can load ++plugins like Advanced Transport. + +-The VDDK library may depend on C<libexpat.so.0> or other libraries +-which you may have to install yourself. ++For 64 bit platforms pass the F<lib64> subdirectory: ++ ++ export LD_LIBRARY_PATH=/path/to/vmware-vix-disklib-distrib/lib64 ++ ++For 32 bit platforms pass the F<lib32> subdirectory: ++ ++ export LD_LIBRARY_PATH=/path/to/vmware-vix-disklib-distrib/lib32 ++ ++Then pass the VDDK distribution directory as C<libdir> along with ++other parameters as required: ++ ++ nbdkit vddk \ ++ libdir=/path/to/vmware-vix-disklib-distrib \ ++ file=file.vmdk ++ ++VDDK itself looks in a few default locations for the optional ++configuration file, usually including F</etc/vmware/config> and ++F<$HOME/.vmware/config>, but you can override this using the C<config> ++parameter. + + =head1 PARAMETERS + +@@ -65,11 +85,14 @@ L</NOTES> below). + + =item B<libdir=PATHNAME> + +-Optional. This sets the path of the VMware VDDK library. It must be +-an absolute path. ++Optional. This sets the path of the VMware VDDK distribution. It ++must be an absolute path. ++ ++VDDK uses this to load its own plugins, if this path is unspecified or ++wrong then VDDK will work with reduced functionality. + + If the parameter is not given, then a hard-coded path determined at +-compile time is used. ++compile time is used, see L</DUMP-PLUGIN OUTPUT> below. + + =item B<nfchostport=PORT> + +@@ -305,7 +328,6 @@ support this. + + =head1 SEE ALSO + +-L<https://github.com/libguestfs/nbdkit/blob/master/plugins/vddk/vddk.c>, + L<nbdkit(1)>, + L<nbdkit-plugin(3)>, + L<virsh(1)>, +@@ -317,4 +339,4 @@ Richard W.M. Jones + + =head1 COPYRIGHT + +-Copyright (C) 2013-2017 Red Hat Inc. ++Copyright (C) 2013-2018 Red Hat Inc. +diff --git a/plugins/vddk/vddk-structs.h b/plugins/vddk/vddk-structs.h +new file mode 100644 +index 0000000..3e7a3c6 +--- /dev/null ++++ b/plugins/vddk/vddk-structs.h +@@ -0,0 +1,125 @@ ++/* nbdkit ++ * Copyright (C) 2013-2018 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++/* Types and structs that we pass to or return from the VDDK API. ++ * ++ * Updated to VDDK 6.7 ++ */ ++ ++#ifndef NBDKIT_VDDK_STRUCTS_H ++#define NBDKIT_VDDK_STRUCTS_H ++ ++typedef uint64_t VixError; ++#define VIX_OK 0 ++ ++#define VIXDISKLIB_FLAG_OPEN_READ_ONLY 4 ++#define VIXDISKLIB_SECTOR_SIZE 512 ++ ++typedef void *VixDiskLibConnection; ++typedef void *VixDiskLibHandle; ++ ++typedef void VixDiskLibGenericLogFunc (const char *fmt, va_list args); ++ ++enum VixDiskLibCredType { ++ VIXDISKLIB_CRED_UID = 1, ++ VIXDISKLIB_CRED_SESSIONID = 2, ++ VIXDISKLIB_CRED_TICKETID = 3, ++ VIXDISKLIB_CRED_SSPI = 4, ++ VIXDISKLIB_CRED_UNKNOWN = 256 ++}; ++ ++enum VixDiskLibSpecType { ++ VIXDISKLIB_SPEC_VMX = 0, ++ VIXDISKLIB_SPEC_VSTORAGE_OBJECT = 1, ++ VIXDISKLIB_SPEC_UNKNOWN = 2 ++}; ++ ++struct VixDiskLibVStorageObjectSpec { ++ char *id; ++ char *datastoreMoRef; ++ char *ssId; ++}; ++ ++typedef struct VixDiskLibConnectParams { ++ char *vmxSpec; ++ char *serverName; ++ char *thumbPrint; ++ long reserved1; ++ enum VixDiskLibCredType credType; ++ union { ++ struct { ++ char *userName; ++ char *password; ++ } uid; ++ struct { ++ char *cookie; ++ char *userName; ++ char *key; ++ } sessionId; ++ void *reserved2; ++ } creds; ++ uint32_t port; ++ uint32_t nfcHostPort; ++ char *reserved3; ++ char reserved4[8]; ++ void *reserved5; ++ union { ++ struct VixDiskLibVStorageObjectSpec vStorageObjSpec; ++ } spec; ++ enum VixDiskLibSpecType specType; ++} VixDiskLibConnectParams; ++ ++struct VixDiskLibGeometry { ++ uint32_t cylinders; ++ uint32_t heads; ++ uint32_t sectors; ++}; ++ ++enum VixDiskLibAdapterType { ++ VIXDISKLIB_ADAPTER_IDE = 1, ++ VIXDISKLIB_ADAPTER_SCSI_BUSLOGIC = 2, ++ VIXDISKLIB_ADAPTER_SCSI_LSILOGIC = 3, ++ VIXDISKLIB_ADAPTER_UNKNOWN = 256 ++}; ++ ++typedef struct VixDiskLibInfo { ++ struct VixDiskLibGeometry biosGeo; ++ struct VixDiskLibGeometry physGeo; ++ uint64_t capacity; ++ enum VixDiskLibAdapterType adapterType; ++ int numLinks; ++ char *parentFileNameHint; ++ char *uuid; ++} VixDiskLibInfo; ++ ++#endif /* NBDKIT_VDDK_STRUCTS_H */ +diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c +index 7e0590e..748f1b3 100644 +--- a/plugins/vddk/vddk.c ++++ b/plugins/vddk/vddk.c +@@ -39,14 +39,36 @@ + #include <inttypes.h> + #include <string.h> + #include <unistd.h> ++#include <dlfcn.h> + + #include <nbdkit-plugin.h> + +-#include <vixDiskLib.h> ++#include "vddk-structs.h" + ++/* The VDDK APIs that we call. These globals are initialized when the ++ * plugin is loaded (by vddk_load). ++ */ ++char *(*VixDiskLib_GetErrorText) (VixError err, const char *unused); ++void (*VixDiskLib_FreeErrorText) (char *text); ++VixError (*VixDiskLib_InitEx) (uint32_t major, uint32_t minor, VixDiskLibGenericLogFunc *log_function, VixDiskLibGenericLogFunc *warn_function, VixDiskLibGenericLogFunc *panic_function, const char *lib_dir, const char *config_file); ++void (*VixDiskLib_Exit) (void); ++VixError (*VixDiskLib_ConnectEx) (const VixDiskLibConnectParams *params, char read_only, const char *snapshot_ref, const char *transport_modes, VixDiskLibConnection *connection); ++VixError (*VixDiskLib_Open) (const VixDiskLibConnection connection, const char *path, uint32_t flags, VixDiskLibHandle *handle); ++const char *(*VixDiskLib_GetTransportMode) (VixDiskLibHandle handle); ++VixError (*VixDiskLib_Close) (VixDiskLibHandle handle); ++VixError (*VixDiskLib_Disconnect) (VixDiskLibConnection connection); ++VixError (*VixDiskLib_GetInfo) (VixDiskLibHandle handle, VixDiskLibInfo **info); ++void (*VixDiskLib_FreeInfo) (VixDiskLibInfo *info); ++VixError (*VixDiskLib_Read) (VixDiskLibHandle handle, uint64_t start_sector, uint64_t nr_sectors, unsigned char *buf); ++VixError (*VixDiskLib_Write) (VixDiskLibHandle handle, uint64_t start_sector, uint64_t nr_sectors, const unsigned char *buf); ++ ++/* Parameters passed to InitEx. */ + #define VDDK_MAJOR 5 + #define VDDK_MINOR 1 + ++static void *dl = NULL; /* dlopen handle */ ++static int init_called = 0; /* was InitEx called */ ++ + static char *config = NULL; /* config */ + static const char *cookie = NULL; /* cookie */ + static const char *filename = NULL; /* file */ +@@ -120,27 +142,39 @@ error_function (const char *fs, va_list args) + static void + vddk_load (void) + { +- VixError err; ++ const char *soname = "libvixDiskLib.so.6"; + +- DEBUG_CALL ("VixDiskLib_InitEx", +- "%d, %d, &debug_fn, &error_fn, &error_fn, %s, %s", +- VDDK_MAJOR, VDDK_MINOR, libdir, config ? : "NULL"); +- err = VixDiskLib_InitEx (VDDK_MAJOR, VDDK_MINOR, +- &debug_function, /* log function */ +- &error_function, /* warn function */ +- &error_function, /* panic function */ +- libdir, config); +- if (err != VIX_OK) { +- VDDK_ERROR (err, "VixDiskLib_InitEx"); ++ /* Load the plugin and set the entry points. */ ++ dl = dlopen (soname, RTLD_NOW); ++ if (dl == NULL) { ++ nbdkit_error ("%s: %s", soname, dlerror ()); + exit (EXIT_FAILURE); + } ++ ++ VixDiskLib_GetErrorText = dlsym (dl, "VixDiskLib_GetErrorText"); ++ VixDiskLib_FreeErrorText = dlsym (dl, "VixDiskLib_FreeErrorText"); ++ VixDiskLib_InitEx = dlsym (dl, "VixDiskLib_InitEx"); ++ VixDiskLib_Exit = dlsym (dl, "VixDiskLib_Exit"); ++ VixDiskLib_ConnectEx = dlsym (dl, "VixDiskLib_ConnectEx"); ++ VixDiskLib_Open = dlsym (dl, "VixDiskLib_Open"); ++ VixDiskLib_GetTransportMode = dlsym (dl, "VixDiskLib_GetTransportMode"); ++ VixDiskLib_Close = dlsym (dl, "VixDiskLib_Close"); ++ VixDiskLib_Disconnect = dlsym (dl, "VixDiskLib_Disconnect"); ++ VixDiskLib_GetInfo = dlsym (dl, "VixDiskLib_GetInfo"); ++ VixDiskLib_FreeInfo = dlsym (dl, "VixDiskLib_FreeInfo"); ++ VixDiskLib_Read = dlsym (dl, "VixDiskLib_Read"); ++ VixDiskLib_Write = dlsym (dl, "VixDiskLib_Write"); + } + + static void + vddk_unload (void) + { +- DEBUG_CALL ("VixDiskLib_Exit", ""); +- VixDiskLib_Exit (); ++ if (init_called) { ++ DEBUG_CALL ("VixDiskLib_Exit", ""); ++ VixDiskLib_Exit (); ++ } ++ if (dl) ++ dlclose (dl); + free (config); + free (password); + } +@@ -170,15 +204,10 @@ vddk_config (const char *key, const char *value) + libdir = value; + } + else if (strcmp (key, "nfchostport") == 0) { +-#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT + if (sscanf (value, "%d", &nfc_host_port) != 1) { + nbdkit_error ("cannot parse nfchostport: %s", value); + return -1; + } +-#else +- nbdkit_error ("this version of VDDK is too old to support nfchostpost"); +- return -1; +-#endif + } + else if (strcmp (key, "password") == 0) { + free (password); +@@ -223,6 +252,8 @@ vddk_config (const char *key, const char *value) + static int + vddk_config_complete (void) + { ++ VixError err; ++ + if (filename == NULL) { + nbdkit_error ("you must supply the file=<FILENAME> parameter after the plugin name on the command line"); + return -1; +@@ -258,6 +289,21 @@ vddk_config_complete (void) + #undef missing + } + ++ /* Initialize VDDK library. */ ++ DEBUG_CALL ("VixDiskLib_InitEx", ++ "%d, %d, &debug_fn, &error_fn, &error_fn, %s, %s", ++ VDDK_MAJOR, VDDK_MINOR, libdir, config ? : "NULL"); ++ err = VixDiskLib_InitEx (VDDK_MAJOR, VDDK_MINOR, ++ &debug_function, /* log function */ ++ &error_function, /* warn function */ ++ &error_function, /* panic function */ ++ libdir, config); ++ if (err != VIX_OK) { ++ VDDK_ERROR (err, "VixDiskLib_InitEx"); ++ exit (EXIT_FAILURE); ++ } ++ init_called = 1; ++ + return 0; + } + +@@ -269,10 +315,7 @@ static void + vddk_dump_plugin (void) + { + printf ("vddk_default_libdir=%s\n", VDDK_LIBDIR); +- +-#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT + printf ("vddk_has_nfchostport=1\n"); +-#endif + + /* XXX We really need to print the version of the dynamically + * linked library here, but VDDK does not provide it. +@@ -323,9 +366,7 @@ vddk_open (int readonly) + } + params.thumbPrint = (char *) thumb_print; + params.port = port; +-#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT + params.nfcHostPort = nfc_host_port; +-#endif + } + + /* XXX Some documentation suggests we should call +-- +2.18.0 + diff --git a/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch b/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch new file mode 100644 index 0000000..d092ef8 --- /dev/null +++ b/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch @@ -0,0 +1,29 @@ +From ba593d2dfa3b3ccd4073f7bad7bcd2d67ce23b64 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 24 Jul 2018 15:35:20 +0100 +Subject: [PATCH 3/3] vddk: Add comment about my experiment with + PrepareForAccess. + +--- + plugins/vddk/vddk.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c +index 748f1b3..54b95fb 100644 +--- a/plugins/vddk/vddk.c ++++ b/plugins/vddk/vddk.c +@@ -370,8 +370,9 @@ vddk_open (int readonly) + } + + /* XXX Some documentation suggests we should call +- * VixDiskLib_PrepareForAccess here. However we need the true VM +- * name to do that. ++ * VixDiskLib_PrepareForAccess here. It may be required for ++ * Advanced Transport modes, but I could not make it work with ++ * either ESXi or vCenter servers. + */ + + DEBUG_CALL ("VixDiskLib_ConnectEx", +-- +2.18.0 + diff --git a/nbdkit.spec b/nbdkit.spec index f88fbd8..91b94a9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,14 +20,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.5-development Name: nbdkit Version: 1.5.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -40,6 +40,11 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patches (after 1.5.1) which enable the VDDK plugin. +Patch1: 0001-vddk-Remove-vimapiver-parameter.patch +Patch2: 0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch +Patch3: 0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -380,6 +385,18 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Tcl plugins for %{name}. +%package plugin-vddk +Summary: VMware VDDK plugin for %{name} +License: BSD + +Requires: %{name}%{?_isa} = %{version}-%{release} + + +%description plugin-vddk +This package is a plugin for %{name} which connects to +VMware VDDK for accessing VMware disks and servers. + + %package plugin-xz Summary: XZ file serving plugin for %{name} License: BSD @@ -713,6 +730,13 @@ popd %{_mandir}/man3/nbdkit-tcl-plugin.3* +%files plugin-vddk +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so +%{_mandir}/man1/nbdkit-vddk-plugin.1* + + %files plugin-xz %doc README %license LICENSE @@ -769,6 +793,9 @@ popd %changelog +* Tue Jul 24 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-2 +- Enable VDDK plugin. + * Fri Jul 20 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-1 - New upstream version 1.5.1. - Remove patches, all upstream in this version. From aa1623f19431edc7be21ae443a78ddf78f39ab67 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 24 Jul 2018 20:57:09 +0100 Subject: [PATCH 112/683] Limit VDDK plugin to i386 and x86-64. These are the only architectures for which VMware provides this library. --- nbdkit.spec | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 91b94a9..6feef62 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -385,6 +385,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} This package lets you write Tcl plugins for %{name}. +%ifarch %{ix86} x86_64 %package plugin-vddk Summary: VMware VDDK plugin for %{name} License: BSD @@ -395,6 +396,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description plugin-vddk This package is a plugin for %{name} which connects to VMware VDDK for accessing VMware disks and servers. +%endif %package plugin-xz @@ -554,6 +556,13 @@ popd # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete +# Delete the VDDK plugin on !x86 architectures since it is not +# applicable there. +%ifnarch %{ix86} x86_64 +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-vddk-plugin.1* +%endif + %check # Workaround for broken libvirt (RHBZ#1138604). @@ -730,11 +739,13 @@ popd %{_mandir}/man3/nbdkit-tcl-plugin.3* +%ifarch %{ix86} x86_64 %files plugin-vddk %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so %{_mandir}/man1/nbdkit-vddk-plugin.1* +%endif %files plugin-xz @@ -794,7 +805,7 @@ popd %changelog * Tue Jul 24 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-2 -- Enable VDDK plugin. +- Enable VDDK plugin on x86-64 only. * Fri Jul 20 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-1 - New upstream version 1.5.1. From 62417b12ba0da6d2df6d594584a1bd488dfeb0bb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Aug 2018 17:37:27 +0100 Subject: [PATCH 113/683] New upstream version 1.5.2. Remove patches which are all upstream. New filter: truncate. --- 0001-vddk-Remove-vimapiver-parameter.patch | 115 ---- ...pile-time-dependency-on-VDDK-library.patch | 595 ------------------ ...-about-my-experiment-with-PrepareFor.patch | 29 - nbdkit.spec | 22 +- sources | 4 +- 5 files changed, 16 insertions(+), 749 deletions(-) delete mode 100644 0001-vddk-Remove-vimapiver-parameter.patch delete mode 100644 0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch delete mode 100644 0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch diff --git a/0001-vddk-Remove-vimapiver-parameter.patch b/0001-vddk-Remove-vimapiver-parameter.patch deleted file mode 100644 index 53952a9..0000000 --- a/0001-vddk-Remove-vimapiver-parameter.patch +++ /dev/null @@ -1,115 +0,0 @@ -From ecface865aa121a601c571831d78f4ea1f0574b8 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 24 Jul 2018 12:08:41 +0100 -Subject: [PATCH 1/3] vddk: Remove vimapiver parameter. - -VDDK never used this, setting it is useless. ---- - plugins/vddk/nbdkit-vddk-plugin.pod | 12 ++---------- - plugins/vddk/vddk.c | 20 +++----------------- - 2 files changed, 5 insertions(+), 27 deletions(-) - -diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod -index 09901de..ad6fcd9 100644 ---- a/plugins/vddk/nbdkit-vddk-plugin.pod -+++ b/plugins/vddk/nbdkit-vddk-plugin.pod -@@ -8,7 +8,7 @@ nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit - [vm=moref=ID] [server=HOSTNAME] [user=USERNAME] - [password=PASSWORD | password=- | password=+FILENAME] - [cookie=COOKIE] [thumbprint=THUMBPRINT] -- [vimapiver=APIVER] [port=PORT] [nfchostport=PORT] -+ [port=PORT] [nfchostport=PORT] - [snapshot=MOREF] [transports=MODE:MODE:...] - nbdkit vddk --dump-plugin - -@@ -175,10 +175,7 @@ L<https://blogs.vmware.com/vsphere/2012/02/uniquely-identifying-virtual-machines - - =item B<vimapiver=APIVER> - --Optional. Specify the VIM API version. If not given it defaults to --the current version. -- --(Only supported in VDDK ≥ 6.5.0) -+This parameter is ignored for backwards compatibility. - - =back - -@@ -269,11 +266,6 @@ at runtime. - If this is printed then the C<nfchostport=PORT> parameter is supported - by this build. - --=item C<vddk_has_vimapiver=1> -- --If this is printed then the C<vimapiver=APIVER> parameter is supported --by this build. -- - =back - - =head1 DEBUGGING VDDK -diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c -index 8bc1517..7e0590e 100644 ---- a/plugins/vddk/vddk.c -+++ b/plugins/vddk/vddk.c -@@ -1,5 +1,5 @@ - /* nbdkit -- * Copyright (C) 2013-2017 Red Hat Inc. -+ * Copyright (C) 2013-2018 Red Hat Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -59,7 +59,6 @@ static const char *snapshot_moref = NULL; /* snapshot */ - static const char *thumb_print = NULL; /* thumbprint */ - static const char *transport_modes = NULL; /* transports */ - static const char *username = NULL; /* user */ --static const char *vim_api_ver = NULL; /* vimapiver */ - static const char *vmx_spec = NULL; /* vm */ - static int is_remote = 0; - -@@ -208,12 +207,7 @@ vddk_config (const char *key, const char *value) - username = value; - } - else if (strcmp (key, "vimapiver") == 0) { --#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER -- vim_api_ver = value; --#else -- nbdkit_error ("this version of VDDK is too old to support vimapiver"); -- return -1; --#endif -+ /* Ignored for backwards compatibility. */ - } - else if (strcmp (key, "vm") == 0) { - vmx_spec = value; -@@ -248,8 +242,7 @@ vddk_config_complete (void) - cookie || - thumb_print || - port || -- nfc_host_port || -- vim_api_ver; -+ nfc_host_port; - - if (is_remote) { - #define missing(test, param) \ -@@ -281,10 +274,6 @@ vddk_dump_plugin (void) - printf ("vddk_has_nfchostport=1\n"); - #endif - --#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER -- printf ("vddk_has_vimapiver=1\n"); --#endif -- - /* XXX We really need to print the version of the dynamically - * linked library here, but VDDK does not provide it. - */ -@@ -336,9 +325,6 @@ vddk_open (int readonly) - params.port = port; - #if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT - params.nfcHostPort = nfc_host_port; --#endif --#if HAVE_VIXDISKLIBCONNECTPARAMS_VIMAPIVER -- params.vimApiVer = (char *) vim_api_ver; - #endif - } - --- -2.18.0 - diff --git a/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch b/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch deleted file mode 100644 index f95acd2..0000000 --- a/0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch +++ /dev/null @@ -1,595 +0,0 @@ -From 8d7f7c26eb435334d7fa35e84ceee7d266dfae4c Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 24 Jul 2018 12:11:17 +0100 -Subject: [PATCH 2/3] vddk: Remove compile-time dependency on VDDK library. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Allow the plugin to be compiled without needing the library. Instead -of linking to the library at compile time we open the library at -runtime using dlopen. - -The plugin is now compiled unconditionally, unless you use -‘./configure --disable-vddk’. (Of course you still need the VDDK -library if you want to use the plugin. We cannot even test the plugin -loads without the library.). - -This change also moves the initialization of VDDK (calling InitEx) -into the config_complete method instead of the load method. This -later initialization allows the "config=FILENAME" and -"libdir=PATHNAME" parameters to have an effect whereas previously they -were silently ignored. ---- - README | 4 - - configure.ac | 75 ++--------------- - plugins/vddk/Makefile.am | 13 +-- - plugins/vddk/README.VDDK | 25 ++---- - plugins/vddk/nbdkit-vddk-plugin.pod | 48 ++++++++--- - plugins/vddk/vddk-structs.h | 125 ++++++++++++++++++++++++++++ - plugins/vddk/vddk.c | 89 ++++++++++++++------ - 7 files changed, 244 insertions(+), 135 deletions(-) - create mode 100644 plugins/vddk/vddk-structs.h - -diff --git a/README b/README -index 6d8bcab..e4eda79 100644 ---- a/README -+++ b/README -@@ -81,10 +81,6 @@ For the ext2 plugin: - - - com_err - --For the VDDK plugin: -- -- - VDDK (see plugins/vddk/README.VDDK) -- - For the Perl, example4 and tar plugins: - - - perl interpreter -diff --git a/configure.ac b/configure.ac -index 832bae9..f61ca1d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -517,77 +517,14 @@ AS_IF([test "$with_ext2" != "no"], [ - AM_CONDITIONAL([HAVE_EXT2], - [test "x$EXT2FS_LIBS" != "x" && test "x$COM_ERR_LIBS" != "x"]) - -+dnl Check if the user wants to disable VDDK support. - dnl See plugins/vddk/README.VDDK. --AC_CHECK_SIZEOF([size_t]) --AS_IF([test "x$ac_cv_sizeof_size_t" = "x4"],[bits=32],[bits=64]) --AC_ARG_WITH([vddk],[ -- AS_HELP_STRING([--with-vddk], -- [enable VMware VDDK plugin @<:@default=no@:>@])], -+AC_ARG_ENABLE([vddk],[ -+ AS_HELP_STRING([--disable-vddk], -+ [disable VMware VDDK plugin])], - [], -- [with_vddk=no]) --AS_IF([test "$with_vddk" = "yes"],[ -- VDDK_CFLAGS= -- VDDK_LIBS="-lvixDiskLib" -- # XXX Warning: stupid VMware API. -- VDDK_LIBDIR="$libdir/vmware-vix-disklib" -- AC_MSG_NOTICE([VDDK plugin enabled from $VDDK_LIBDIR]) -- ],[ -- AS_IF([test "$with_vddk" != "no"], [ -- VDDK_CFLAGS="-I$with_vddk/include" -- VDDK_LIBS="-L$with_vddk/lib$bits -lvixDiskLib" -- VDDK_LIBDIR="$with_vddk" -- AC_MSG_NOTICE([VDDK plugin enabled from $with_vddk]) -- ], -- [AC_MSG_NOTICE([VDDK plugin disabled]) -- ]) --]) -- --dnl If the VDDK plugin was enabled, compile and link a test program to make --dnl sure the library really works. --AS_IF([test "x$VDDK_LIBS" != "x"],[ -- # Save CFLAGS etc while we do this test. -- acx_nbdkit_save_CFLAGS="${CFLAGS}" -- acx_nbdkit_save_LIBS="${LIBS}" -- CFLAGS="$CFLAGS $VDDK_CFLAGS" -- LIBS="$VDDK_LIBS $LIBS" -- -- AC_MSG_CHECKING([if we can link to VDDK]) -- AC_LINK_IFELSE([ -- AC_LANG_SOURCE([[ --#include <stdio.h> --#include <stdint.h> --#include <vixDiskLib.h> -- --int --main () --{ -- VixDiskLib_Exit (); --} --]]) -- ],[ -- AC_MSG_RESULT([yes]) -- ],[ -- AC_MSG_RESULT([no]) -- AC_MSG_ERROR([could not link to VDDK, see ‘config.log’ for more information]) -- ]) -- -- dnl Check for optional fields in VixDiskLibConnectParams struct. -- AC_CHECK_MEMBERS([VixDiskLibConnectParams.nfcHostPort, VixDiskLibConnectParams.vimApiVer], -- [], [], [[ --#include <stdio.h> --#include <stdint.h> --#include <vixDiskLib.h> --]]) -- -- dnl Restore CFLAGS, etc. -- CFLAGS="${acx_nbdkit_save_CFLAGS}" -- LIBS="${acx_nbdkit_save_LIBS}" --]) -- --AC_SUBST([VDDK_CFLAGS]) --AC_SUBST([VDDK_LIBS]) --AC_DEFINE_UNQUOTED([VDDK_LIBDIR],["$VDDK_LIBDIR"],[VDDK 'libDir'.]) --AM_CONDITIONAL([HAVE_VDDK],[test "x$VDDK_LIBS" != "x"]) -+ [enable_vddk=yes]) -+AM_CONDITIONAL([HAVE_VDDK], [test "x$enable_vddk" = "xyes"]) - - dnl Produce output files. - AC_CONFIG_HEADERS([config.h]) -diff --git a/plugins/vddk/Makefile.am b/plugins/vddk/Makefile.am -index 5d5762f..5e780b5 100644 ---- a/plugins/vddk/Makefile.am -+++ b/plugins/vddk/Makefile.am -@@ -1,5 +1,5 @@ - # nbdkit --# Copyright (C) 2013 Red Hat Inc. -+# Copyright (C) 2013-2018 Red Hat Inc. - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without -@@ -42,15 +42,16 @@ plugin_LTLIBRARIES = nbdkit-vddk-plugin.la - - nbdkit_vddk_plugin_la_SOURCES = \ - vddk.c \ -+ vddk-structs.h \ - $(top_srcdir)/include/nbdkit-plugin.h - - nbdkit_vddk_plugin_la_CPPFLAGS = \ -- -I$(top_srcdir)/include -+ -I$(top_srcdir)/include \ -+ -DVDDK_LIBDIR=\"$(libdir)/vmware-vix-disklib\" - nbdkit_vddk_plugin_la_CFLAGS = \ -- $(WARNINGS_CFLAGS) \ -- $(VDDK_CFLAGS) -+ $(WARNINGS_CFLAGS) - nbdkit_vddk_plugin_la_LIBADD = \ -- $(VDDK_LIBS) -+ -ldl - nbdkit_vddk_plugin_la_LDFLAGS = \ - -module -avoid-version -shared - -@@ -66,4 +67,4 @@ nbdkit-vddk-plugin.1: nbdkit-vddk-plugin.pod - - endif HAVE_POD - --endif -+endif HAVE_VDDK -diff --git a/plugins/vddk/README.VDDK b/plugins/vddk/README.VDDK -index d8c62b1..1e56631 100644 ---- a/plugins/vddk/README.VDDK -+++ b/plugins/vddk/README.VDDK -@@ -11,27 +11,14 @@ account and download it from: - This directory contains an nbdkit plugin which uses this library to - export VMDK files and VMware disks over NBD. - --VDDK >= 6.5 is required. -- --Note: VDDK can do NBD on its own, so nbdkit might not be needed unless --you want the extra features and flexibility of nbdkit. -- --It is never compiled by default. To enable it you have to do: -- -- ./configure --with-vddk -- --If the VDDK library is located in a non-standard location, use this --instead: -- -- ./configure --with-vddk=/path/to/vmware-vix-disklib-distrib -- --(This looks for include/ and lib{32,64}/ subdirectories of the given --path for header files and libraries respectively.) -+You do NOT require VDDK to compile the plugin, and the plugin does not -+contain any VMware code. You only need VDDK at runtime. The plugin -+uses dlopen to load the library from LD_LIBRARY_PATH (or else the -+standard shared library paths). - - After building nbdkit-vddk-plugin.so, read the man page to find out --how to use it (nbdkit-vddk-plugin(1)). -- --You'll probably also want to read the VDDK developer documentation. -+how to use it (nbdkit-vddk-plugin(1)). You'll probably also want to -+read the VDDK developer documentation. - - Bugs - ---- -diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod -index ad6fcd9..2764883 100644 ---- a/plugins/vddk/nbdkit-vddk-plugin.pod -+++ b/plugins/vddk/nbdkit-vddk-plugin.pod -@@ -14,21 +14,41 @@ nbdkit-vddk-plugin - VMware VDDK plugin for nbdkit - - =head1 DESCRIPTION - --C<nbdkit-vddk-plugin> is a L<nbdkit(1)> plugin that serves files from -+C<nbdkit-vddk-plugin> is an L<nbdkit(1)> plugin that serves files from - local VMware VMDK files, VMware ESXi servers, VMware VCenter servers, --and other sources by using VMware's proprietary VDDK library. -+and other sources. It requires VMware's proprietary VDDK library that -+you must download yourself separately. - - The plugin can serve read-only (if the I<-r> option is used) or - read/write. - --=head1 LIBRARY LOCATION -+=head1 LIBRARY AND CONFIG FILE LOCATIONS - --If the VDDK library (C<libvixDiskLib.so>) is located on a non-standard --path, you may need to set C<LD_LIBRARY_PATH> or modify --C</etc/ld.so.conf> before this plugin will work. -+If the VDDK library (F<libvixDiskLib.so.6>) is located on a -+non-standard path, you may need to set C<LD_LIBRARY_PATH> or modify -+F</etc/ld.so.conf> before this plugin will work. In addition you may -+want to set the C<libdir> parameter so that the VDDK library can load -+plugins like Advanced Transport. - --The VDDK library may depend on C<libexpat.so.0> or other libraries --which you may have to install yourself. -+For 64 bit platforms pass the F<lib64> subdirectory: -+ -+ export LD_LIBRARY_PATH=/path/to/vmware-vix-disklib-distrib/lib64 -+ -+For 32 bit platforms pass the F<lib32> subdirectory: -+ -+ export LD_LIBRARY_PATH=/path/to/vmware-vix-disklib-distrib/lib32 -+ -+Then pass the VDDK distribution directory as C<libdir> along with -+other parameters as required: -+ -+ nbdkit vddk \ -+ libdir=/path/to/vmware-vix-disklib-distrib \ -+ file=file.vmdk -+ -+VDDK itself looks in a few default locations for the optional -+configuration file, usually including F</etc/vmware/config> and -+F<$HOME/.vmware/config>, but you can override this using the C<config> -+parameter. - - =head1 PARAMETERS - -@@ -65,11 +85,14 @@ L</NOTES> below). - - =item B<libdir=PATHNAME> - --Optional. This sets the path of the VMware VDDK library. It must be --an absolute path. -+Optional. This sets the path of the VMware VDDK distribution. It -+must be an absolute path. -+ -+VDDK uses this to load its own plugins, if this path is unspecified or -+wrong then VDDK will work with reduced functionality. - - If the parameter is not given, then a hard-coded path determined at --compile time is used. -+compile time is used, see L</DUMP-PLUGIN OUTPUT> below. - - =item B<nfchostport=PORT> - -@@ -305,7 +328,6 @@ support this. - - =head1 SEE ALSO - --L<https://github.com/libguestfs/nbdkit/blob/master/plugins/vddk/vddk.c>, - L<nbdkit(1)>, - L<nbdkit-plugin(3)>, - L<virsh(1)>, -@@ -317,4 +339,4 @@ Richard W.M. Jones - - =head1 COPYRIGHT - --Copyright (C) 2013-2017 Red Hat Inc. -+Copyright (C) 2013-2018 Red Hat Inc. -diff --git a/plugins/vddk/vddk-structs.h b/plugins/vddk/vddk-structs.h -new file mode 100644 -index 0000000..3e7a3c6 ---- /dev/null -+++ b/plugins/vddk/vddk-structs.h -@@ -0,0 +1,125 @@ -+/* nbdkit -+ * Copyright (C) 2013-2018 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* Types and structs that we pass to or return from the VDDK API. -+ * -+ * Updated to VDDK 6.7 -+ */ -+ -+#ifndef NBDKIT_VDDK_STRUCTS_H -+#define NBDKIT_VDDK_STRUCTS_H -+ -+typedef uint64_t VixError; -+#define VIX_OK 0 -+ -+#define VIXDISKLIB_FLAG_OPEN_READ_ONLY 4 -+#define VIXDISKLIB_SECTOR_SIZE 512 -+ -+typedef void *VixDiskLibConnection; -+typedef void *VixDiskLibHandle; -+ -+typedef void VixDiskLibGenericLogFunc (const char *fmt, va_list args); -+ -+enum VixDiskLibCredType { -+ VIXDISKLIB_CRED_UID = 1, -+ VIXDISKLIB_CRED_SESSIONID = 2, -+ VIXDISKLIB_CRED_TICKETID = 3, -+ VIXDISKLIB_CRED_SSPI = 4, -+ VIXDISKLIB_CRED_UNKNOWN = 256 -+}; -+ -+enum VixDiskLibSpecType { -+ VIXDISKLIB_SPEC_VMX = 0, -+ VIXDISKLIB_SPEC_VSTORAGE_OBJECT = 1, -+ VIXDISKLIB_SPEC_UNKNOWN = 2 -+}; -+ -+struct VixDiskLibVStorageObjectSpec { -+ char *id; -+ char *datastoreMoRef; -+ char *ssId; -+}; -+ -+typedef struct VixDiskLibConnectParams { -+ char *vmxSpec; -+ char *serverName; -+ char *thumbPrint; -+ long reserved1; -+ enum VixDiskLibCredType credType; -+ union { -+ struct { -+ char *userName; -+ char *password; -+ } uid; -+ struct { -+ char *cookie; -+ char *userName; -+ char *key; -+ } sessionId; -+ void *reserved2; -+ } creds; -+ uint32_t port; -+ uint32_t nfcHostPort; -+ char *reserved3; -+ char reserved4[8]; -+ void *reserved5; -+ union { -+ struct VixDiskLibVStorageObjectSpec vStorageObjSpec; -+ } spec; -+ enum VixDiskLibSpecType specType; -+} VixDiskLibConnectParams; -+ -+struct VixDiskLibGeometry { -+ uint32_t cylinders; -+ uint32_t heads; -+ uint32_t sectors; -+}; -+ -+enum VixDiskLibAdapterType { -+ VIXDISKLIB_ADAPTER_IDE = 1, -+ VIXDISKLIB_ADAPTER_SCSI_BUSLOGIC = 2, -+ VIXDISKLIB_ADAPTER_SCSI_LSILOGIC = 3, -+ VIXDISKLIB_ADAPTER_UNKNOWN = 256 -+}; -+ -+typedef struct VixDiskLibInfo { -+ struct VixDiskLibGeometry biosGeo; -+ struct VixDiskLibGeometry physGeo; -+ uint64_t capacity; -+ enum VixDiskLibAdapterType adapterType; -+ int numLinks; -+ char *parentFileNameHint; -+ char *uuid; -+} VixDiskLibInfo; -+ -+#endif /* NBDKIT_VDDK_STRUCTS_H */ -diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c -index 7e0590e..748f1b3 100644 ---- a/plugins/vddk/vddk.c -+++ b/plugins/vddk/vddk.c -@@ -39,14 +39,36 @@ - #include <inttypes.h> - #include <string.h> - #include <unistd.h> -+#include <dlfcn.h> - - #include <nbdkit-plugin.h> - --#include <vixDiskLib.h> -+#include "vddk-structs.h" - -+/* The VDDK APIs that we call. These globals are initialized when the -+ * plugin is loaded (by vddk_load). -+ */ -+char *(*VixDiskLib_GetErrorText) (VixError err, const char *unused); -+void (*VixDiskLib_FreeErrorText) (char *text); -+VixError (*VixDiskLib_InitEx) (uint32_t major, uint32_t minor, VixDiskLibGenericLogFunc *log_function, VixDiskLibGenericLogFunc *warn_function, VixDiskLibGenericLogFunc *panic_function, const char *lib_dir, const char *config_file); -+void (*VixDiskLib_Exit) (void); -+VixError (*VixDiskLib_ConnectEx) (const VixDiskLibConnectParams *params, char read_only, const char *snapshot_ref, const char *transport_modes, VixDiskLibConnection *connection); -+VixError (*VixDiskLib_Open) (const VixDiskLibConnection connection, const char *path, uint32_t flags, VixDiskLibHandle *handle); -+const char *(*VixDiskLib_GetTransportMode) (VixDiskLibHandle handle); -+VixError (*VixDiskLib_Close) (VixDiskLibHandle handle); -+VixError (*VixDiskLib_Disconnect) (VixDiskLibConnection connection); -+VixError (*VixDiskLib_GetInfo) (VixDiskLibHandle handle, VixDiskLibInfo **info); -+void (*VixDiskLib_FreeInfo) (VixDiskLibInfo *info); -+VixError (*VixDiskLib_Read) (VixDiskLibHandle handle, uint64_t start_sector, uint64_t nr_sectors, unsigned char *buf); -+VixError (*VixDiskLib_Write) (VixDiskLibHandle handle, uint64_t start_sector, uint64_t nr_sectors, const unsigned char *buf); -+ -+/* Parameters passed to InitEx. */ - #define VDDK_MAJOR 5 - #define VDDK_MINOR 1 - -+static void *dl = NULL; /* dlopen handle */ -+static int init_called = 0; /* was InitEx called */ -+ - static char *config = NULL; /* config */ - static const char *cookie = NULL; /* cookie */ - static const char *filename = NULL; /* file */ -@@ -120,27 +142,39 @@ error_function (const char *fs, va_list args) - static void - vddk_load (void) - { -- VixError err; -+ const char *soname = "libvixDiskLib.so.6"; - -- DEBUG_CALL ("VixDiskLib_InitEx", -- "%d, %d, &debug_fn, &error_fn, &error_fn, %s, %s", -- VDDK_MAJOR, VDDK_MINOR, libdir, config ? : "NULL"); -- err = VixDiskLib_InitEx (VDDK_MAJOR, VDDK_MINOR, -- &debug_function, /* log function */ -- &error_function, /* warn function */ -- &error_function, /* panic function */ -- libdir, config); -- if (err != VIX_OK) { -- VDDK_ERROR (err, "VixDiskLib_InitEx"); -+ /* Load the plugin and set the entry points. */ -+ dl = dlopen (soname, RTLD_NOW); -+ if (dl == NULL) { -+ nbdkit_error ("%s: %s", soname, dlerror ()); - exit (EXIT_FAILURE); - } -+ -+ VixDiskLib_GetErrorText = dlsym (dl, "VixDiskLib_GetErrorText"); -+ VixDiskLib_FreeErrorText = dlsym (dl, "VixDiskLib_FreeErrorText"); -+ VixDiskLib_InitEx = dlsym (dl, "VixDiskLib_InitEx"); -+ VixDiskLib_Exit = dlsym (dl, "VixDiskLib_Exit"); -+ VixDiskLib_ConnectEx = dlsym (dl, "VixDiskLib_ConnectEx"); -+ VixDiskLib_Open = dlsym (dl, "VixDiskLib_Open"); -+ VixDiskLib_GetTransportMode = dlsym (dl, "VixDiskLib_GetTransportMode"); -+ VixDiskLib_Close = dlsym (dl, "VixDiskLib_Close"); -+ VixDiskLib_Disconnect = dlsym (dl, "VixDiskLib_Disconnect"); -+ VixDiskLib_GetInfo = dlsym (dl, "VixDiskLib_GetInfo"); -+ VixDiskLib_FreeInfo = dlsym (dl, "VixDiskLib_FreeInfo"); -+ VixDiskLib_Read = dlsym (dl, "VixDiskLib_Read"); -+ VixDiskLib_Write = dlsym (dl, "VixDiskLib_Write"); - } - - static void - vddk_unload (void) - { -- DEBUG_CALL ("VixDiskLib_Exit", ""); -- VixDiskLib_Exit (); -+ if (init_called) { -+ DEBUG_CALL ("VixDiskLib_Exit", ""); -+ VixDiskLib_Exit (); -+ } -+ if (dl) -+ dlclose (dl); - free (config); - free (password); - } -@@ -170,15 +204,10 @@ vddk_config (const char *key, const char *value) - libdir = value; - } - else if (strcmp (key, "nfchostport") == 0) { --#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT - if (sscanf (value, "%d", &nfc_host_port) != 1) { - nbdkit_error ("cannot parse nfchostport: %s", value); - return -1; - } --#else -- nbdkit_error ("this version of VDDK is too old to support nfchostpost"); -- return -1; --#endif - } - else if (strcmp (key, "password") == 0) { - free (password); -@@ -223,6 +252,8 @@ vddk_config (const char *key, const char *value) - static int - vddk_config_complete (void) - { -+ VixError err; -+ - if (filename == NULL) { - nbdkit_error ("you must supply the file=<FILENAME> parameter after the plugin name on the command line"); - return -1; -@@ -258,6 +289,21 @@ vddk_config_complete (void) - #undef missing - } - -+ /* Initialize VDDK library. */ -+ DEBUG_CALL ("VixDiskLib_InitEx", -+ "%d, %d, &debug_fn, &error_fn, &error_fn, %s, %s", -+ VDDK_MAJOR, VDDK_MINOR, libdir, config ? : "NULL"); -+ err = VixDiskLib_InitEx (VDDK_MAJOR, VDDK_MINOR, -+ &debug_function, /* log function */ -+ &error_function, /* warn function */ -+ &error_function, /* panic function */ -+ libdir, config); -+ if (err != VIX_OK) { -+ VDDK_ERROR (err, "VixDiskLib_InitEx"); -+ exit (EXIT_FAILURE); -+ } -+ init_called = 1; -+ - return 0; - } - -@@ -269,10 +315,7 @@ static void - vddk_dump_plugin (void) - { - printf ("vddk_default_libdir=%s\n", VDDK_LIBDIR); -- --#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT - printf ("vddk_has_nfchostport=1\n"); --#endif - - /* XXX We really need to print the version of the dynamically - * linked library here, but VDDK does not provide it. -@@ -323,9 +366,7 @@ vddk_open (int readonly) - } - params.thumbPrint = (char *) thumb_print; - params.port = port; --#if HAVE_VIXDISKLIBCONNECTPARAMS_NFCHOSTPORT - params.nfcHostPort = nfc_host_port; --#endif - } - - /* XXX Some documentation suggests we should call --- -2.18.0 - diff --git a/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch b/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch deleted file mode 100644 index d092ef8..0000000 --- a/0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ba593d2dfa3b3ccd4073f7bad7bcd2d67ce23b64 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 24 Jul 2018 15:35:20 +0100 -Subject: [PATCH 3/3] vddk: Add comment about my experiment with - PrepareForAccess. - ---- - plugins/vddk/vddk.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c -index 748f1b3..54b95fb 100644 ---- a/plugins/vddk/vddk.c -+++ b/plugins/vddk/vddk.c -@@ -370,8 +370,9 @@ vddk_open (int readonly) - } - - /* XXX Some documentation suggests we should call -- * VixDiskLib_PrepareForAccess here. However we need the true VM -- * name to do that. -+ * VixDiskLib_PrepareForAccess here. It may be required for -+ * Advanced Transport modes, but I could not make it work with -+ * either ESXi or vCenter servers. - */ - - DEBUG_CALL ("VixDiskLib_ConnectEx", --- -2.18.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 6feef62..0c99004 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,14 +20,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.5-development Name: nbdkit -Version: 1.5.1 -Release: 2%{?dist} +Version: 1.5.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -40,11 +40,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patches (after 1.5.1) which enable the VDDK plugin. -Patch1: 0001-vddk-Remove-vimapiver-parameter.patch -Patch2: 0002-vddk-Remove-compile-time-dependency-on-VDDK-library.patch -Patch3: 0003-vddk-Add-comment-about-my-experiment-with-PrepareFor.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -457,6 +452,10 @@ trivial dependencies. Serve a single partition. +* nbdkit-truncate-filter + + Truncate, expand, round up or round down a plugin size. + %package devel Summary: Development files and documentation for %{name} @@ -767,6 +766,7 @@ popd %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* @@ -776,6 +776,7 @@ popd %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* +%{_mandir}/man1/nbdkit-truncate-filter.1* %files devel @@ -804,6 +805,11 @@ popd %changelog +* Wed Aug 1 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.2-1 +- New upstream version 1.5.2. +- Remove patches which are all upstream. +- New filter: truncate. + * Tue Jul 24 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-2 - Enable VDDK plugin on x86-64 only. diff --git a/sources b/sources index e836feb..5cdaa60 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.1.tar.gz) = 7011b59fe36271281831b00122a90003408fd9ab1cbf5b41d836a2e339650e7c0753efff29fe0f13117a16f4fa2848f5fe31611033532e34f2f671c299963f2c -SHA512 (nbdkit-1.5.1.tar.gz.sig) = 8cc16bb9cba6ba77bffeba6b12e0135ce87f0b88fc09f8d8fa0a4477b5755d260dce5a010143e9497837a5ca80f366797f6ed2e784747c85211c68465de52ffe +SHA512 (nbdkit-1.5.2.tar.gz) = 69e91a5a696d37886946856b9ec84196a9add6c059e8dd48fcb0e4c36e7b2b4cf49051dd804e5a5775b93042198128f562dce3fcb8aa5f0df38894fb4b41b3b3 +SHA512 (nbdkit-1.5.2.tar.gz.sig) = 69dcd32f85010ad2ef73fc1ff54ac8bf165be98a1487edd277591871d371d43cd4ea4d407a0d2ea4aa29fa0415dc2cc8e38a0dd1c0eca84d640bd1fe78913869 From f9d7a8cd31855a687a4d6797ba2a77377fc21282 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 6 Aug 2018 20:33:57 +0100 Subject: [PATCH 114/683] New upstream version 1.5.3. New filter: error. --- nbdkit.spec | 12 +++++++++++- sources | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0c99004..b982b7f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,7 +26,7 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.2 +Version: 1.5.3 Release: 1%{?dist} Summary: NBD server @@ -432,6 +432,10 @@ trivial dependencies. Inject read and write delays. +* nbdkit-error-filter + + Inject errors. + * nbdkit-fua-filter Modify flush behaviour in plugins. @@ -761,6 +765,7 @@ popd %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so +%{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so @@ -771,6 +776,7 @@ popd %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* +%{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* %{_mandir}/man1/nbdkit-nozero-filter.1* @@ -805,6 +811,10 @@ popd %changelog +* Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.3-1 +- New upstream version 1.5.3. +- New filter: error. + * Wed Aug 1 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.2-1 - New upstream version 1.5.2. - Remove patches which are all upstream. diff --git a/sources b/sources index 5cdaa60..aac727c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.2.tar.gz) = 69e91a5a696d37886946856b9ec84196a9add6c059e8dd48fcb0e4c36e7b2b4cf49051dd804e5a5775b93042198128f562dce3fcb8aa5f0df38894fb4b41b3b3 -SHA512 (nbdkit-1.5.2.tar.gz.sig) = 69dcd32f85010ad2ef73fc1ff54ac8bf165be98a1487edd277591871d371d43cd4ea4d407a0d2ea4aa29fa0415dc2cc8e38a0dd1c0eca84d640bd1fe78913869 +SHA512 (nbdkit-1.5.3.tar.gz) = e2da54e14bb49b083564f83f27b9e06c054e80ee3edcb94978e0d896230d679e9dc4b6747c063027da14d03788ffadee1cf6ef53387ecf0dbe551e8d7afaa871 +SHA512 (nbdkit-1.5.3.tar.gz.sig) = 32079d105f2108b691d739eb874479d173fac034c3036a100639b73375fe1767ee50a960a06a0b13a65ddf07625898f8cafd108d131a593e190d1ced78a92662 From eb867f6953f28eb95f66c8031b65b3c7dd56d767 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 6 Aug 2018 20:48:06 +0100 Subject: [PATCH 115/683] Make nbdkit-plugin-tar require nbdkit-plugin-perl. The tar plugin is written in Perl and so won't work unless the Perl plugin is also installed. This dependency should be generated automatically, but for now we add it manually. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index b982b7f..6dd85e0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -363,6 +363,8 @@ Summary: Tar archive plugin for %{name} License: BSD Requires: %{name}%{?_isa} = %{version}-%{release} +# XXX This dependency should be autogenerated. +Requires: %{name}-plugin-perl %description plugin-tar From 5fd2e11b699e6a9203e4e3a6cf90f3b409fc7ae0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 11 Aug 2018 18:18:57 +0100 Subject: [PATCH 116/683] New upstream version 1.5.4. Add topic man pages. --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6dd85e0..6c44f9b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,7 +26,7 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.3 +Version: 1.5.4 Release: 1%{?dist} Summary: NBD server @@ -609,6 +609,10 @@ popd %dir %{_libdir}/%{name}/plugins %dir %{_libdir}/%{name}/filters %{_mandir}/man1/nbdkit.1* +%{_mandir}/man1/nbdkit-captive.1* +%{_mandir}/man1/nbdkit-probing.1* +%{_mandir}/man1/nbdkit-service.1* +%{_mandir}/man1/nbdkit-tls.1* %files basic-plugins @@ -813,6 +817,10 @@ popd %changelog +* Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.4-1 +- New upstream version 1.5.4. +- Add topic man pages. + * Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.3-1 - New upstream version 1.5.3. - New filter: error. diff --git a/sources b/sources index aac727c..7156203 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.3.tar.gz) = e2da54e14bb49b083564f83f27b9e06c054e80ee3edcb94978e0d896230d679e9dc4b6747c063027da14d03788ffadee1cf6ef53387ecf0dbe551e8d7afaa871 -SHA512 (nbdkit-1.5.3.tar.gz.sig) = 32079d105f2108b691d739eb874479d173fac034c3036a100639b73375fe1767ee50a960a06a0b13a65ddf07625898f8cafd108d131a593e190d1ced78a92662 +SHA512 (nbdkit-1.5.4.tar.gz) = 4c9e5626c09876fd18dd2c0d16dd97b1121c819e9c85d85d48184e0787b1197d229216ed455bd5285f5e444e97b250b72bb69994e1caa4babd73bd2de69afa48 +SHA512 (nbdkit-1.5.4.tar.gz.sig) = 9a0f71eb07965c459b439be561cadfc13ed6a44fd68f38b8658438d4835971516b746bca451e2612a811c047d6e04fef195af0e86371b8f9f8bbb064ff1a2898 From d8bb7c2fa0ac76f920e1fb4e7cdc70526508cc00 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 13 Aug 2018 17:31:25 +0100 Subject: [PATCH 117/683] New upstream version 1.5.5. New plugin: data. --- nbdkit.spec | 12 +++++++++++- sources | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6c44f9b..49810e2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,7 +26,7 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.4 +Version: 1.5.5 Release: 1%{?dist} Summary: NBD server @@ -132,6 +132,10 @@ Obsoletes: %{name}-plugin-streaming < 1.1.19-1 This package contains some basic plugins for %{name} which have only trivial dependencies. +* nbdkit-data-plugin + + Serve small files directly from the command line. + * nbdkit-file-plugin A file serving plugin. @@ -618,6 +622,7 @@ popd %files basic-plugins %doc README %license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-data-plugin.so %{_libdir}/%{name}/plugins/nbdkit-file-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so @@ -627,6 +632,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so +%{_mandir}/man1/nbdkit-data-plugin.1* %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* @@ -817,6 +823,10 @@ popd %changelog +* Mon Aug 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-1 +- New upstream version 1.5.5. +- New plugin: data. + * Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.4-1 - New upstream version 1.5.4. - Add topic man pages. diff --git a/sources b/sources index 7156203..9f8c1aa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.4.tar.gz) = 4c9e5626c09876fd18dd2c0d16dd97b1121c819e9c85d85d48184e0787b1197d229216ed455bd5285f5e444e97b250b72bb69994e1caa4babd73bd2de69afa48 -SHA512 (nbdkit-1.5.4.tar.gz.sig) = 9a0f71eb07965c459b439be561cadfc13ed6a44fd68f38b8658438d4835971516b746bca451e2612a811c047d6e04fef195af0e86371b8f9f8bbb064ff1a2898 +SHA512 (nbdkit-1.5.5.tar.gz) = 39395de7cb3f36cc6f35144fc2570125f85a469022ed0198639d90da048c7e029b8f3aac7a999867672778282224e51c12811924784d1d488ac359f4e7d98ded +SHA512 (nbdkit-1.5.5.tar.gz.sig) = 272999d768ed61c6bd4e7c8998e6454683703d9ed666c2295ab3f96e119aec32a42b007a76d0ae07d0d7e4beae7a28ac4cde89f5bf892c00a339565d8a2fa0aa From b772c3dfaeabfdfd61591b3e416e1721dcc8fb25 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 14 Aug 2018 12:08:45 +0100 Subject: [PATCH 118/683] Make nbdkit a metapackage. Package server in nbdkit-server subpackage. Rename all nbdkit-plugin-FOO to nbdkit-FOO-plugin to match upstream. --- nbdkit.spec | 261 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 179 insertions(+), 82 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 49810e2..ac70136 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ Name: nbdkit Version: 1.5.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -94,6 +94,13 @@ BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/socat BuildRequires: /usr/sbin/ss +# nbdkit is a metapackage pulling the server and a useful subset +# of the plugins and filters. +Requires: nbdkit-server +Requires: nbdkit-basic-plugins +Requires: nbdkit-basic-filters + + %description NBD is a protocol for accessing block devices (hard disks and disk-like things) over the network. @@ -110,17 +117,29 @@ The key features are: * Liberal license (BSD) allows nbdkit to be linked to proprietary libraries or included in proprietary code. -You probably want to install one of more plugins (%{name}-plugin-*). +In Fedora, '%{name}' is a meta-package which pulls in the core server +and a useful subset of plugins and filters. -To develop plugins, install the %{name}-devel package and start by +If you want just the server, install '%{name}-server'. + +To develop plugins, install the '%{name}-devel' package and start by reading the nbdkit(1) and nbdkit-plugin(3) manual pages. +%package server +Summary: The %{name} server +License: BSD + + +%description server +This package contains the %{name} server with no plugins or filters. + + %package basic-plugins Summary: Basic plugins for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} # For upgrade path, remove these in Fedora 30. Obsoletes: %{name}-plugin-file < 1.1.19-1 @@ -184,7 +203,7 @@ trivial dependencies. Summary: Example plugins for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} # For upgrade path, remove this in Fedora 30. Obsoletes: %{name}-plugin-examples < 1.1.19-1 @@ -197,217 +216,286 @@ This package contains example plugins for %{name}. # The plugins below have non-trivial dependencies are so are # packaged separately. -%package plugin-curl +%package curl-plugin Summary: HTTP/FTP/SSH (cURL) plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-curl = %{version}-%{release} +Obsoletes: %{name}-plugin-curl <= %{version}-%{release} -%description plugin-curl +%description curl-plugin This package contains cURL (HTTP/FTP/SSH) support for %{name}. -%package plugin-ext2 +%package ext2-plugin Summary: ext2, ext3 and ext4 filesystem support for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-ext2 = %{version}-%{release} +Obsoletes: %{name}-plugin-ext2 <= %{version}-%{release} -%description plugin-ext2 +%description ext2-plugin This package contains ext2, ext3 and ext4 filesystem support for %{name}. %if 0%{?have_libguestfs} -%package plugin-guestfs +%package guestfs-plugin Summary: libguestfs plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-guestfs = %{version}-%{release} +Obsoletes: %{name}-plugin-guestfs <= %{version}-%{release} -%description plugin-guestfs +%description guestfs-plugin This package is a libguestfs plugin for %{name}. %endif -%package plugin-gzip +%package gzip-plugin Summary: GZip file serving plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-gzip = %{version}-%{release} +Obsoletes: %{name}-plugin-gzip <= %{version}-%{release} -%description plugin-gzip +%description gzip-plugin This package is a gzip file serving plugin for %{name}. -%package plugin-libvirt +%package libvirt-plugin Summary: Libvirt plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-libvirt = %{version}-%{release} +Obsoletes: %{name}-plugin-libvirt <= %{version}-%{release} -%description plugin-libvirt +%description libvirt-plugin This package is a libvirt plugin for %{name}. It lets you access libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. -%package plugin-lua +%package lua-plugin Summary: Lua plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-lua = %{version}-%{release} +Obsoletes: %{name}-plugin-lua <= %{version}-%{release} -%description plugin-lua +%description lua-plugin This package lets you write Lua plugins for %{name}. %ifarch %{ocaml_native_compiler} -%package plugin-ocaml +%package ocaml-plugin Summary: OCaml plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-ocaml = %{version}-%{release} +Obsoletes: %{name}-plugin-ocaml <= %{version}-%{release} -%description plugin-ocaml +%description ocaml-plugin This package lets you run OCaml plugins for %{name}. To compile OCaml plugins you will also need to install -%{name}-plugin-ocaml-devel. +%{name}-ocaml-plugin-devel. -%package plugin-ocaml-devel +%package ocaml-plugin-devel Summary: OCaml development environment for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-plugin-ocaml%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-ocaml-devel = %{version}-%{release} +Obsoletes: %{name}-plugin-ocaml-devel <= %{version}-%{release} -%description plugin-ocaml-devel +%description ocaml-plugin-devel This package lets you write OCaml plugins for %{name}. %endif -%package plugin-perl +%package perl-plugin Summary: Perl plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-perl = %{version}-%{release} +Obsoletes: %{name}-plugin-perl <= %{version}-%{release} -%description plugin-perl +%description perl-plugin This package lets you write Perl plugins for %{name}. -%package plugin-python-common +%package python-plugin-common Summary: Python 2 and 3 plugin common files for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-python-common = %{version}-%{release} +Obsoletes: %{name}-plugin-python-common <= %{version}-%{release} -%description plugin-python-common +%description python-plugin-common This package contains common files shared between Python 2 and Python 3 %{name} plugins. You should not install this package directly. Instead install -either %{name}-plugin-python2 or %{name}-plugin-python3. +either %{name}-python2-plugin or %{name}-python3-plugin. -%package plugin-python2 +%package python2-plugin Summary: Python 2 plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-plugin-python-common = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: %{name}-python-plugin-common = %{version}-%{release} +# For upgrade path, remove this in Fedora 30. Provides: %{name}-plugin-python = %{version}-%{release} Obsoletes: %{name}-plugin-python <= %{version}-%{release} +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-python2 = %{version}-%{release} +Obsoletes: %{name}-plugin-python2 <= %{version}-%{release} -%description plugin-python2 + +%description python2-plugin This package lets you write Python 2 plugins for %{name}. %if 0%{?have_python3} -%package plugin-python3 +%package python3-plugin Summary: Python 3 plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-plugin-python-common = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: %{name}-python-plugin-common = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-python3 = %{version}-%{release} +Obsoletes: %{name}-plugin-python3 <= %{version}-%{release} -%description plugin-python3 +%description python3-plugin This package lets you write Python 3 plugins for %{name}. %endif -%package plugin-ruby +%package ruby-plugin Summary: Ruby plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-ruby = %{version}-%{release} +Obsoletes: %{name}-plugin-ruby <= %{version}-%{release} -%description plugin-ruby +%description ruby-plugin This package lets you write Ruby plugins for %{name}. -%package plugin-tar +%package tar-plugin Summary: Tar archive plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} # XXX This dependency should be autogenerated. -Requires: %{name}-plugin-perl +Requires: %{name}-perl-plugin + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-tar = %{version}-%{release} +Obsoletes: %{name}-plugin-tar <= %{version}-%{release} -%description plugin-tar +%description tar-plugin This package is a tar archive plugin for %{name}. -%package plugin-tcl +%package tcl-plugin Summary: Tcl plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-tcl = %{version}-%{release} +Obsoletes: %{name}-plugin-tcl <= %{version}-%{release} -%description plugin-tcl +%description tcl-plugin This package lets you write Tcl plugins for %{name}. %ifarch %{ix86} x86_64 -%package plugin-vddk +%package vddk-plugin Summary: VMware VDDK plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-vddk = %{version}-%{release} +Obsoletes: %{name}-plugin-vddk <= %{version}-%{release} -%description plugin-vddk +%description vddk-plugin This package is a plugin for %{name} which connects to VMware VDDK for accessing VMware disks and servers. %endif -%package plugin-xz +%package xz-plugin Summary: XZ file serving plugin for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# For upgrade path, remove this in Fedora 31. +Provides: %{name}-plugin-xz = %{version}-%{release} +Obsoletes: %{name}-plugin-xz <= %{version}-%{release} -%description plugin-xz +%description xz-plugin This package is a xz file serving plugin for %{name}. @@ -415,7 +503,7 @@ This package is a xz file serving plugin for %{name}. Summary: Basic filters for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} %description basic-filters @@ -471,7 +559,7 @@ trivial dependencies. Summary: Development files and documentation for %{name} License: BSD -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: pkgconfig @@ -485,7 +573,7 @@ plugins for %{name}. Summary: Bash tab-completion for %{name} BuildArch: noarch Requires: bash-completion >= 2.0 -Requires: %{name} = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} %description bash-completion @@ -606,6 +694,10 @@ popd %files +# metapackage so empty + + +%files server %doc README %license LICENSE %{_sbindir}/nbdkit @@ -652,14 +744,14 @@ popd %{_mandir}/man1/nbdkit-example*-plugin.1* -%files plugin-curl +%files curl-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so %{_mandir}/man1/nbdkit-curl-plugin.1* -%files plugin-ext2 +%files ext2-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so @@ -667,7 +759,7 @@ popd %if 0%{?have_libguestfs} -%files plugin-guestfs +%files guestfs-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so @@ -675,21 +767,21 @@ popd %endif -%files plugin-gzip +%files gzip-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so %{_mandir}/man1/nbdkit-gzip-plugin.1* -%files plugin-libvirt +%files libvirt-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* -%files plugin-lua +%files lua-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so @@ -697,57 +789,57 @@ popd %ifarch %{ocaml_native_compiler} -%files plugin-ocaml +%files ocaml-plugin %doc README %license LICENSE %{_libdir}/libnbdkitocaml.so.* -%files plugin-ocaml-devel +%files ocaml-plugin-devel %{_libdir}/libnbdkitocaml.so %{_libdir}/ocaml/NBDKit.* %{_mandir}/man3/nbdkit-ocaml-plugin.3* %endif -%files plugin-perl +%files perl-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so %{_mandir}/man3/nbdkit-perl-plugin.3* -%files plugin-python-common +%files python-plugin-common %doc README %license LICENSE %{_mandir}/man3/nbdkit-python-plugin.3* -%files plugin-python2 +%files python2-plugin %{_libdir}/%{name}/plugins/nbdkit-python-plugin.so %{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so %if 0%{?have_python3} -%files plugin-python3 +%files python3-plugin %{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so %endif -%files plugin-ruby +%files ruby-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so %{_mandir}/man3/nbdkit-ruby-plugin.3* -%files plugin-tar +%files tar-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tar-plugin %{_mandir}/man1/nbdkit-tar-plugin.1* -%files plugin-tcl +%files tcl-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so @@ -755,7 +847,7 @@ popd %ifarch %{ix86} x86_64 -%files plugin-vddk +%files vddk-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so @@ -763,7 +855,7 @@ popd %endif -%files plugin-xz +%files xz-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so @@ -823,6 +915,11 @@ popd %changelog +* Tue Aug 14 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-2 +- Make nbdkit a metapackage. +- Package server in nbdkit-server subpackage. +- Rename all nbdkit-plugin-FOO to nbdkit-FOO-plugin to match upstream. + * Mon Aug 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-1 - New upstream version 1.5.5. - New plugin: data. From 70d469e6209bb717c2f22d1b3a14e4bd088f9340 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 16 Aug 2018 22:49:05 +0100 Subject: [PATCH 119/683] New upstream version 1.5.6. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ac70136..ee2d1e0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,8 +26,8 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.5 -Release: 2%{?dist} +Version: 1.5.6 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -915,6 +915,9 @@ popd %changelog +* Thu Aug 16 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.6-1 +- New upstream version 1.5.6. + * Tue Aug 14 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-2 - Make nbdkit a metapackage. - Package server in nbdkit-server subpackage. diff --git a/sources b/sources index 9f8c1aa..ea48167 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.5.tar.gz) = 39395de7cb3f36cc6f35144fc2570125f85a469022ed0198639d90da048c7e029b8f3aac7a999867672778282224e51c12811924784d1d488ac359f4e7d98ded -SHA512 (nbdkit-1.5.5.tar.gz.sig) = 272999d768ed61c6bd4e7c8998e6454683703d9ed666c2295ab3f96e119aec32a42b007a76d0ae07d0d7e4beae7a28ac4cde89f5bf892c00a339565d8a2fa0aa +SHA512 (nbdkit-1.5.6.tar.gz) = bacdc95b909e943e6476f24d10e7e9e2ea0b9e26362c35c604c8e1cdf361e333e47c38747b491077e9444466e014fe9f67c6db8be3a98f1f0e7bffee555c1bc0 +SHA512 (nbdkit-1.5.6.tar.gz.sig) = 96917b05005adba7333073b4ba91b3b499f76c418833344cda5a93603a84bc78421749f5ed13432323216f0b1195bf0bbebd63ba4959390568b7a4289a69d0db From cc648daf62202858af379b4484aaad948bf9390a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 18 Aug 2018 11:07:07 +0100 Subject: [PATCH 120/683] Disable libvirt on riscv64. Other simplifications to %configure line. --- nbdkit.spec | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ee2d1e0..52b9c2a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -16,6 +16,11 @@ %global have_python3 1 %endif +# Disable libvirt on riscv64 for now. +%ifnarch riscv64 +%global have_libvirt 1 +%endif + # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -27,7 +32,7 @@ Name: nbdkit Version: 1.5.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -61,7 +66,9 @@ BuildRequires: libselinux-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel %endif +%if 0%{?have_libvirt} BuildRequires: libvirt-devel +%endif BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel @@ -279,6 +286,7 @@ Obsoletes: %{name}-plugin-gzip <= %{version}-%{release} This package is a gzip file serving plugin for %{name}. +%if 0%{?have_libvirt} %package libvirt-plugin Summary: Libvirt plugin for %{name} License: BSD @@ -294,6 +302,7 @@ Obsoletes: %{name}-plugin-libvirt <= %{version}-%{release} This package is a libvirt plugin for %{name}. It lets you access libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. +%endif %package lua-plugin @@ -610,13 +619,36 @@ copy="$(mktemp -d)" cp -a . "$copy" mv "$copy" python3 -%configure --disable-static --with-tls-priority=@NBDKIT,SYSTEM +%configure \ + --disable-static \ +%if 0%{?have_libguestfs} + --with-libguestfs \ +%else + --without-libguestfs \ +%endif +%if 0%{?have_libvirt} + --with-libvirt \ +%else + --without-libvirt \ +%endif + --with-tls-priority=@NBDKIT,SYSTEM make %{?_smp_mflags} %if 0%{?have_python3} pushd python3 export PYTHON=%{_bindir}/python3 -%configure --disable-static --disable-lua --disable-perl --disable-ocaml --disable-ruby --disable-tcl +%configure \ + --disable-static \ + --disable-lua \ + --disable-perl \ + --disable-ocaml \ + --disable-ruby \ + --disable-tcl \ + --without-curl \ + --without-ext2 \ + --without-libvirt \ + --without-liblzma \ + --without-zlib # Verify that it picked the correct version of Python # to avoid RHBZ#1404631 happening again silently. grep '^PYTHON_VERSION = 3' Makefile @@ -774,11 +806,13 @@ popd %{_mandir}/man1/nbdkit-gzip-plugin.1* +%if 0%{?have_libvirt} %files libvirt-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* +%endif %files lua-plugin @@ -915,6 +949,10 @@ popd %changelog +* Sat Aug 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.6-2 +- Disable libvirt on riscv64. +- Other simplifications to %%configure line. + * Thu Aug 16 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.6-1 - New upstream version 1.5.6. From 72eaac919d2cc0b293a72dd85cf3932a05b9803b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 18 Aug 2018 22:30:25 +0100 Subject: [PATCH 121/683] New upstream version 1.5.7. --- nbdkit.spec | 8 ++++++-- sources | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 52b9c2a..73e9c6a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.6 -Release: 2%{?dist} +Version: 1.5.7 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -739,6 +739,7 @@ popd %{_mandir}/man1/nbdkit.1* %{_mandir}/man1/nbdkit-captive.1* %{_mandir}/man1/nbdkit-probing.1* +%{_mandir}/man1/nbdkit-protocol.1* %{_mandir}/man1/nbdkit-service.1* %{_mandir}/man1/nbdkit-tls.1* @@ -949,6 +950,9 @@ popd %changelog +* Sat Aug 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.7-1 +- New upstream version 1.5.7. + * Sat Aug 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.6-2 - Disable libvirt on riscv64. - Other simplifications to %%configure line. diff --git a/sources b/sources index ea48167..617a67c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.6.tar.gz) = bacdc95b909e943e6476f24d10e7e9e2ea0b9e26362c35c604c8e1cdf361e333e47c38747b491077e9444466e014fe9f67c6db8be3a98f1f0e7bffee555c1bc0 -SHA512 (nbdkit-1.5.6.tar.gz.sig) = 96917b05005adba7333073b4ba91b3b499f76c418833344cda5a93603a84bc78421749f5ed13432323216f0b1195bf0bbebd63ba4959390568b7a4289a69d0db +SHA512 (nbdkit-1.5.7.tar.gz) = 98a9d1b1f95340f16a1e060b7e4d95535c7115d0c8388df1ef6ac81a81396fc6836755d36e6bf329169ba1b63f5e5ad29b47e01acca6a2135aa650ebc7526e9a +SHA512 (nbdkit-1.5.7.tar.gz.sig) = cb569278eb83b8ee5336cb8d74500e82bd17f30fe6d6dac138cda70993c3ad99d28121a7d6c8365926e30b875504e2a75e8f80175c2950d65a6a87461168c936 From 8c4e0a710b03f828dd6095c29e6b4d6b8ee204cf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 21 Aug 2018 12:54:50 +0100 Subject: [PATCH 122/683] New upstream version 1.5.8. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 73e9c6a..e726033 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.7 +Version: 1.5.8 Release: 1%{?dist} Summary: NBD server @@ -950,6 +950,9 @@ popd %changelog +* Tue Aug 21 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.8-1 +- New upstream version 1.5.8. + * Sat Aug 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.7-1 - New upstream version 1.5.7. diff --git a/sources b/sources index 617a67c..d366d4b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.7.tar.gz) = 98a9d1b1f95340f16a1e060b7e4d95535c7115d0c8388df1ef6ac81a81396fc6836755d36e6bf329169ba1b63f5e5ad29b47e01acca6a2135aa650ebc7526e9a -SHA512 (nbdkit-1.5.7.tar.gz.sig) = cb569278eb83b8ee5336cb8d74500e82bd17f30fe6d6dac138cda70993c3ad99d28121a7d6c8365926e30b875504e2a75e8f80175c2950d65a6a87461168c936 +SHA512 (nbdkit-1.5.8.tar.gz) = 46068dfba9548d65d4d63ea5456390f6649b7eddc58ece7b0517785e0e388c3084ee72eb623981c0e10657d7c51ac5ecc36c437be162193cd6dddcd58cabed37 +SHA512 (nbdkit-1.5.8.tar.gz.sig) = db2fa1d25abd67486cbc56a7a2d6e06677b63c00ae91482cd033566b8e38399f600d8126a00cc9b20a8ac52667e7b96d40d13135fb5951bd98d93b269af1dcc3 From 0d7a614562a36029aaea0c17e55b6682ce9417c0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 26 Aug 2018 20:21:54 +0100 Subject: [PATCH 123/683] New upstream version 1.5.9. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e726033..a92e1ea 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.8 +Version: 1.5.9 Release: 1%{?dist} Summary: NBD server @@ -950,6 +950,9 @@ popd %changelog +* Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-1 +- New upstream version 1.5.9. + * Tue Aug 21 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.8-1 - New upstream version 1.5.8. diff --git a/sources b/sources index d366d4b..e743b7e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.8.tar.gz) = 46068dfba9548d65d4d63ea5456390f6649b7eddc58ece7b0517785e0e388c3084ee72eb623981c0e10657d7c51ac5ecc36c437be162193cd6dddcd58cabed37 -SHA512 (nbdkit-1.5.8.tar.gz.sig) = db2fa1d25abd67486cbc56a7a2d6e06677b63c00ae91482cd033566b8e38399f600d8126a00cc9b20a8ac52667e7b96d40d13135fb5951bd98d93b269af1dcc3 +SHA512 (nbdkit-1.5.9.tar.gz) = 3142fd69d203e0c9caff64089a27ad20af03e8782c4af5477aea4f844158d27a74d538e83993cc4abbab48a41da72655c5cd8a07f9d06fde01665cf4714f00b9 +SHA512 (nbdkit-1.5.9.tar.gz.sig) = 6d103a7ad91441ba0aaf116e52c51caf339c5173ffa75b8b750d7fb0d030f248a36bb7c68876a7d795cc75c0d842337575cce383fc829167a8ec644aa32ada9d From f123f78660963d4f242739306dff32369199bd4c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 26 Aug 2018 20:49:31 +0100 Subject: [PATCH 124/683] Add upstream patches since 1.5.9 was released. --- ...t-describing-largest-size-supported-.patch | 42 +++++++++++++++++++ ...ng-of-size-parameter-on-32-bit-platf.patch | 37 ++++++++++++++++ nbdkit.spec | 9 +++- 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 0001-tests-Fix-comment-describing-largest-size-supported-.patch create mode 100644 0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch diff --git a/0001-tests-Fix-comment-describing-largest-size-supported-.patch b/0001-tests-Fix-comment-describing-largest-size-supported-.patch new file mode 100644 index 0000000..a8e0478 --- /dev/null +++ b/0001-tests-Fix-comment-describing-largest-size-supported-.patch @@ -0,0 +1,42 @@ +From 5fe11d518d97a22668b5a42e6865b5b5a06958fb Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 26 Aug 2018 20:31:04 +0100 +Subject: [PATCH 1/2] tests: Fix comment describing largest size supported by + qemu. + +Fixes commit ce1aed4ee811c234795d3c1f272a03b4105bf7ec +and commit 99136752e5de4d526df49051667311d87ff1e9a2. +--- + tests/test-memory-largest-for-qemu.sh | 2 +- + tests/test-pattern-largest-for-qemu.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test-memory-largest-for-qemu.sh b/tests/test-memory-largest-for-qemu.sh +index e85abad..9bc498d 100755 +--- a/tests/test-memory-largest-for-qemu.sh ++++ b/tests/test-memory-largest-for-qemu.sh +@@ -46,7 +46,7 @@ if ! qemu-io --help >/dev/null; then + fi + + # Run nbdkit with memory plugin. +-# size = (2^63-1) & 511 which is the largest supported by qemu. ++# size = (2^63-1) & ~511 which is the largest supported by qemu. + nbdkit -f -v -D memory.dir=1 \ + -P memory-largest-for-qemu.pid -U memory-largest-for-qemu.sock \ + memory size=9223372036854775296 & +diff --git a/tests/test-pattern-largest-for-qemu.sh b/tests/test-pattern-largest-for-qemu.sh +index ae1ba71..cf70354 100755 +--- a/tests/test-pattern-largest-for-qemu.sh ++++ b/tests/test-pattern-largest-for-qemu.sh +@@ -46,7 +46,7 @@ if ! qemu-io --help >/dev/null; then + fi + + # Run nbdkit with pattern plugin. +-# size = (2^63-1) & 511 which is the largest supported by qemu. ++# size = (2^63-1) & ~511 which is the largest supported by qemu. + nbdkit -P pattern-largest-for-qemu.pid -U pattern-largest-for-qemu.sock \ + pattern size=9223372036854775296 + +-- +2.18.0 + diff --git a/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch b/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch new file mode 100644 index 0000000..116b356 --- /dev/null +++ b/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch @@ -0,0 +1,37 @@ +From 5de18b3764e86414325bbfdb6dc297462598072f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 26 Aug 2018 20:46:52 +0100 +Subject: [PATCH 2/2] memory: Fix parsing of size= parameter on 32 bit + platforms. + +--- + plugins/memory/memory.c | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/plugins/memory/memory.c b/plugins/memory/memory.c +index 0b7fced..f175792 100644 +--- a/plugins/memory/memory.c ++++ b/plugins/memory/memory.c +@@ -272,17 +272,10 @@ memory_unload (void) + static int + memory_config (const char *key, const char *value) + { +- int64_t r; +- + if (strcmp (key, "size") == 0) { +- r = nbdkit_parse_size (value); +- if (r == -1) ++ size = nbdkit_parse_size (value); ++ if (size == -1) + return -1; +- if (r > SIZE_MAX) { +- nbdkit_error ("size > SIZE_MAX"); +- return -1; +- } +- size = (ssize_t) r; + } + else { + nbdkit_error ("unknown parameter '%s'", key); +-- +2.18.0 + diff --git a/nbdkit.spec b/nbdkit.spec index a92e1ea..248b697 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.5.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -45,6 +45,10 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# All upstream patches since 1.5.9 was released. +Patch1: 0001-tests-Fix-comment-describing-largest-size-supported-.patch +Patch2: 0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -950,8 +954,9 @@ popd %changelog -* Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-1 +* Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-2 - New upstream version 1.5.9. +- Add upstream patches since 1.5.9 was released. * Tue Aug 21 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.8-1 - New upstream version 1.5.8. From cdd1bda62ec31f3d27d8dbf5304848241e60c344 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 27 Aug 2018 12:03:34 +0100 Subject: [PATCH 125/683] New upstream version 1.5.10. Remove upstream patches. --- ...t-describing-largest-size-supported-.patch | 42 ------------------- ...ng-of-size-parameter-on-32-bit-platf.patch | 37 ---------------- nbdkit.spec | 12 +++--- sources | 4 +- 4 files changed, 8 insertions(+), 87 deletions(-) delete mode 100644 0001-tests-Fix-comment-describing-largest-size-supported-.patch delete mode 100644 0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch diff --git a/0001-tests-Fix-comment-describing-largest-size-supported-.patch b/0001-tests-Fix-comment-describing-largest-size-supported-.patch deleted file mode 100644 index a8e0478..0000000 --- a/0001-tests-Fix-comment-describing-largest-size-supported-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5fe11d518d97a22668b5a42e6865b5b5a06958fb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 26 Aug 2018 20:31:04 +0100 -Subject: [PATCH 1/2] tests: Fix comment describing largest size supported by - qemu. - -Fixes commit ce1aed4ee811c234795d3c1f272a03b4105bf7ec -and commit 99136752e5de4d526df49051667311d87ff1e9a2. ---- - tests/test-memory-largest-for-qemu.sh | 2 +- - tests/test-pattern-largest-for-qemu.sh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/test-memory-largest-for-qemu.sh b/tests/test-memory-largest-for-qemu.sh -index e85abad..9bc498d 100755 ---- a/tests/test-memory-largest-for-qemu.sh -+++ b/tests/test-memory-largest-for-qemu.sh -@@ -46,7 +46,7 @@ if ! qemu-io --help >/dev/null; then - fi - - # Run nbdkit with memory plugin. --# size = (2^63-1) & 511 which is the largest supported by qemu. -+# size = (2^63-1) & ~511 which is the largest supported by qemu. - nbdkit -f -v -D memory.dir=1 \ - -P memory-largest-for-qemu.pid -U memory-largest-for-qemu.sock \ - memory size=9223372036854775296 & -diff --git a/tests/test-pattern-largest-for-qemu.sh b/tests/test-pattern-largest-for-qemu.sh -index ae1ba71..cf70354 100755 ---- a/tests/test-pattern-largest-for-qemu.sh -+++ b/tests/test-pattern-largest-for-qemu.sh -@@ -46,7 +46,7 @@ if ! qemu-io --help >/dev/null; then - fi - - # Run nbdkit with pattern plugin. --# size = (2^63-1) & 511 which is the largest supported by qemu. -+# size = (2^63-1) & ~511 which is the largest supported by qemu. - nbdkit -P pattern-largest-for-qemu.pid -U pattern-largest-for-qemu.sock \ - pattern size=9223372036854775296 - --- -2.18.0 - diff --git a/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch b/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch deleted file mode 100644 index 116b356..0000000 --- a/0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5de18b3764e86414325bbfdb6dc297462598072f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 26 Aug 2018 20:46:52 +0100 -Subject: [PATCH 2/2] memory: Fix parsing of size= parameter on 32 bit - platforms. - ---- - plugins/memory/memory.c | 11 ++--------- - 1 file changed, 2 insertions(+), 9 deletions(-) - -diff --git a/plugins/memory/memory.c b/plugins/memory/memory.c -index 0b7fced..f175792 100644 ---- a/plugins/memory/memory.c -+++ b/plugins/memory/memory.c -@@ -272,17 +272,10 @@ memory_unload (void) - static int - memory_config (const char *key, const char *value) - { -- int64_t r; -- - if (strcmp (key, "size") == 0) { -- r = nbdkit_parse_size (value); -- if (r == -1) -+ size = nbdkit_parse_size (value); -+ if (size == -1) - return -1; -- if (r > SIZE_MAX) { -- nbdkit_error ("size > SIZE_MAX"); -- return -1; -- } -- size = (ssize_t) r; - } - else { - nbdkit_error ("unknown parameter '%s'", key); --- -2.18.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 248b697..7a285cd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.5-development Name: nbdkit -Version: 1.5.9 -Release: 2%{?dist} +Version: 1.5.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -45,10 +45,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# All upstream patches since 1.5.9 was released. -Patch1: 0001-tests-Fix-comment-describing-largest-size-supported-.patch -Patch2: 0002-memory-Fix-parsing-of-size-parameter-on-32-bit-platf.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -954,6 +950,10 @@ popd %changelog +* Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-1 +- New upstream version 1.5.10. +- Remove upstream patches. + * Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-2 - New upstream version 1.5.9. - Add upstream patches since 1.5.9 was released. diff --git a/sources b/sources index e743b7e..6540759 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.9.tar.gz) = 3142fd69d203e0c9caff64089a27ad20af03e8782c4af5477aea4f844158d27a74d538e83993cc4abbab48a41da72655c5cd8a07f9d06fde01665cf4714f00b9 -SHA512 (nbdkit-1.5.9.tar.gz.sig) = 6d103a7ad91441ba0aaf116e52c51caf339c5173ffa75b8b750d7fb0d030f248a36bb7c68876a7d795cc75c0d842337575cce383fc829167a8ec644aa32ada9d +SHA512 (nbdkit-1.5.10.tar.gz) = 342a9d2e0f91b31767a2d522237054a238bd903b8c49f3ccc6f7652d9a011395ca874adfb9ebda9cc150b62d9293f16d67b7d116d0cc7bcf7835608e0289737f +SHA512 (nbdkit-1.5.10.tar.gz.sig) = 3af2258227c16b78c3ffeb8ab915f7f21a2dc43577fa2199403a412901be210776815a8c5a9b0f9eea5becdad1c95de8453def764c40edab07d9856c1a43cac4 From 1461b159c67542e5c95c5f7c5b3888b202260f16 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 27 Aug 2018 12:19:01 +0100 Subject: [PATCH 126/683] Add upstream patch after 1.5.10 to fix build. --- ...x-include-directory-for-nbdkit-plugi.patch | 25 +++++++++++++++++++ nbdkit.spec | 10 +++++--- 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch diff --git a/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch b/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch new file mode 100644 index 0000000..5d7e960 --- /dev/null +++ b/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch @@ -0,0 +1,25 @@ +From 9aa3a2a229e1dc3936e0295b05e151b4ef9a8826 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 12:17:33 +0100 +Subject: [PATCH] common/sparse: Fix include directory for nbdkit-plugin.h. + +Fixes commit 5986c3063ee1d2f28a33d01006bc31b596b4d5f6. +--- + common/sparse/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/common/sparse/Makefile.am b/common/sparse/Makefile.am +index b6cf2f9..6d73878 100644 +--- a/common/sparse/Makefile.am ++++ b/common/sparse/Makefile.am +@@ -38,6 +38,7 @@ libsparse_la_SOURCES = \ + sparse.c \ + sparse.h + libsparse_la_CPPFLAGS = \ ++ -I$(top_srcdir)/include \ + -I$(top_srcdir)/common/include + libsparse_la_CFLAGS = \ + $(WARNINGS_CFLAGS) +-- +2.18.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 7a285cd..38da7a0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,14 +25,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.5-development Name: nbdkit Version: 1.5.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -45,6 +45,8 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +Patch1: 0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -950,9 +952,9 @@ popd %changelog -* Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-1 +* Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-2 - New upstream version 1.5.10. -- Remove upstream patches. +- Add upstream patch after 1.5.10 to fix build. * Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-2 - New upstream version 1.5.9. From 7d3de34ec7cc0c6bd55fae85caf560202a814d7c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 27 Aug 2018 19:41:52 +0100 Subject: [PATCH 127/683] Add upstream patches after 1.5.10. --- ...x-include-directory-for-nbdkit-plugi.patch | 2 +- ...y-Small-refinements-to-the-man-pages.patch | 52 ++++ ...how-to-preload-disk-images-into-the-.patch | 44 ++++ ...s-plugin-to-work-with-64-bit-offsets.patch | 58 +++++ ...espace-at-the-end-of-the-data-string.patch | 29 +++ ...le-of-partitioned-7-EB-disk-and-test.patch | 235 ++++++++++++++++++ nbdkit.spec | 11 +- 7 files changed, 427 insertions(+), 4 deletions(-) create mode 100644 0002-data-memory-Small-refinements-to-the-man-pages.patch create mode 100644 0003-memory-Document-how-to-preload-disk-images-into-the-.patch create mode 100644 0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch create mode 100644 0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch create mode 100644 0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch diff --git a/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch b/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch index 5d7e960..7bc9092 100644 --- a/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch +++ b/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch @@ -1,7 +1,7 @@ From 9aa3a2a229e1dc3936e0295b05e151b4ef9a8826 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 27 Aug 2018 12:17:33 +0100 -Subject: [PATCH] common/sparse: Fix include directory for nbdkit-plugin.h. +Subject: [PATCH 1/6] common/sparse: Fix include directory for nbdkit-plugin.h. Fixes commit 5986c3063ee1d2f28a33d01006bc31b596b4d5f6. --- diff --git a/0002-data-memory-Small-refinements-to-the-man-pages.patch b/0002-data-memory-Small-refinements-to-the-man-pages.patch new file mode 100644 index 0000000..fdbef8f --- /dev/null +++ b/0002-data-memory-Small-refinements-to-the-man-pages.patch @@ -0,0 +1,52 @@ +From 087cd104e7fcbd48db66e1a4f4b134ae2e456842 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 12:45:50 +0100 +Subject: [PATCH 2/6] data, memory: Small refinements to the man pages. + +--- + plugins/data/nbdkit-data-plugin.pod | 3 +++ + plugins/memory/nbdkit-memory-plugin.pod | 7 ++++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/plugins/data/nbdkit-data-plugin.pod b/plugins/data/nbdkit-data-plugin.pod +index 27a7850..c174abb 100644 +--- a/plugins/data/nbdkit-data-plugin.pod ++++ b/plugins/data/nbdkit-data-plugin.pod +@@ -28,6 +28,9 @@ image, possibly followed by zeroes (using the C<size> parameter to pad + the image to the full size), or use the C<data> parameter creatively + to make mostly sparse disk images. + ++The C<size> parameter can specify any virtual size up to the maximum ++supported by nbdkit (C<2⁶³-1> bytes). ++ + =head1 EXAMPLES + + =over 4 +diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod +index 0493d8d..bc1fecc 100644 +--- a/plugins/memory/nbdkit-memory-plugin.pod ++++ b/plugins/memory/nbdkit-memory-plugin.pod +@@ -13,7 +13,8 @@ single disk image in virtual memory, and discards it when nbdkit + exits. + + All nbdkit clients will see the same disk content, initially all +-zeroes. ++zeroes. This plugin can be used for testing or where you don't care ++about the final content of the disk image. + + The disk image is stored in memory using a sparse array. The + allocated parts of the disk image cannot be larger than physical RAM +@@ -26,8 +27,8 @@ maximum supported by nbdkit (C<2⁶³-1> bytes). This limit is tested + when nbdkit is compiled, and it should work on all platforms and + architectures supported by nbdkit. + +-This can be used for testing where you don't care about the final +-content of the disk image. ++If you want an in-memory disk image preinitialized with some data, ++look at L<nbdkit-data-plugin(1)> instead. + + =head1 PARAMETERS + +-- +2.18.0 + diff --git a/0003-memory-Document-how-to-preload-disk-images-into-the-.patch b/0003-memory-Document-how-to-preload-disk-images-into-the-.patch new file mode 100644 index 0000000..ebbf5b2 --- /dev/null +++ b/0003-memory-Document-how-to-preload-disk-images-into-the-.patch @@ -0,0 +1,44 @@ +From 7544ba9c12edc462799969129f49f0a1b76a6ef1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 13:48:21 +0100 +Subject: [PATCH 3/6] memory: Document how to preload disk images into the + plugin. + +--- + plugins/memory/nbdkit-memory-plugin.pod | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod +index bc1fecc..d5ea8ba 100644 +--- a/plugins/memory/nbdkit-memory-plugin.pod ++++ b/plugins/memory/nbdkit-memory-plugin.pod +@@ -27,8 +27,24 @@ maximum supported by nbdkit (C<2⁶³-1> bytes). This limit is tested + when nbdkit is compiled, and it should work on all platforms and + architectures supported by nbdkit. + +-If you want an in-memory disk image preinitialized with some data, +-look at L<nbdkit-data-plugin(1)> instead. ++=head2 Preloading data ++ ++If you want an in-memory disk image preinitialized with a small amount ++of data specified on the command line, look at ++L<nbdkit-data-plugin(1)> instead. ++ ++If you want to preload a large amount of data (eg. a disk image) into ++the memory plugin, use L<qemu-img(1)>: ++ ++ $ rm -f pid ++ $ nbdkit -P pid memory size=10G ++ ++ # wait for nbdkit to become ready to accept connections: ++ $ while [ ! -f pid ]; do sleep 1; done ++ ++ # preload Fedora disk image: ++ $ virt-builder fedora-28 --size=10G ++ $ qemu-img convert -p -n fedora-28.img nbd:localhost:10809 + + =head1 PARAMETERS + +-- +2.18.0 + diff --git a/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch b/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch new file mode 100644 index 0000000..d2e083b --- /dev/null +++ b/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch @@ -0,0 +1,58 @@ +From 5afc6acd0719ed5b5c4e48763237efe9230fb8a7 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 16:18:26 +0100 +Subject: [PATCH 4/6] data: Fix this plugin to work with 64 bit offsets. + +It can now handle 64 bit offsets on both 32 and 64 bit platforms. +--- + plugins/data/data.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/plugins/data/data.c b/plugins/data/data.c +index e61e3be..3d27227 100644 +--- a/plugins/data/data.c ++++ b/plugins/data/data.c +@@ -35,6 +35,8 @@ + + #include <stdio.h> + #include <stdlib.h> ++#include <stdint.h> ++#include <inttypes.h> + #include <string.h> + + #if defined(HAVE_GNUTLS) && defined(HAVE_GNUTLS_BASE64_DECODE2) +@@ -107,25 +109,23 @@ read_base64 (const char *value) + static int + read_data (const char *value) + { +- size_t offset = 0; ++ int64_t offset = 0; + size_t i, len = strlen (value); + + for (i = 0; i < len; ++i) { +- int j, n; ++ int64_t j; ++ int n; + char c; + +- /* XXX Using the %i type specifier limits this plugin to creating +- * 32 bit data (even on 64 bit platforms). +- */ +- if (sscanf (&value[i], " @%i%n", &j, &n) == 1) { +- if (j == -1) { ++ if (sscanf (&value[i], " @%" SCNi64 "%n", &j, &n) == 1) { ++ if (j < 0) { + nbdkit_error ("data parameter @OFFSET must not be negative"); + return -1; + } + i += n; + offset = j; + } +- else if (sscanf (&value[i], " %i%n", &j, &n) == 1) { ++ else if (sscanf (&value[i], " %" SCNi64 "%n", &j, &n) == 1) { + if (j < 0 || j > 255) { + nbdkit_error ("data parameter BYTE must be in the range 0..255"); + return -1; +-- +2.18.0 + diff --git a/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch b/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch new file mode 100644 index 0000000..fb31dce --- /dev/null +++ b/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch @@ -0,0 +1,29 @@ +From f6d1419f36905965ec5ccb43236617639ea21c7f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 18:52:51 +0100 +Subject: [PATCH 5/6] data: Permit whitespace at the end of the data string. + +--- + plugins/data/data.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/plugins/data/data.c b/plugins/data/data.c +index 3d27227..0925233 100644 +--- a/plugins/data/data.c ++++ b/plugins/data/data.c +@@ -141,6 +141,12 @@ read_data (const char *value) + return -1; + offset++; + } ++ /* We have to have a rule to skip just whitespace so that ++ * whitespace is permitted at the end of the string. ++ */ ++ else if (sscanf (&value[i], " %n", &n) == 0) { ++ i += n; ++ } + else { + nbdkit_error ("data parameter: parsing error at offset %zu", i); + return -1; +-- +2.18.0 + diff --git a/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch b/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch new file mode 100644 index 0000000..6b6f136 --- /dev/null +++ b/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch @@ -0,0 +1,235 @@ +From 2c548ffcf2745f23a504d646f64a20c984bc2e32 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Aug 2018 18:48:51 +0100 +Subject: [PATCH 6/6] data: Add example of partitioned 7 EB disk, and test. + +--- + plugins/data/nbdkit-data-plugin.pod | 48 ++++++++++- + tests/Makefile.am | 2 + + tests/test-data-7E.sh | 128 ++++++++++++++++++++++++++++ + 3 files changed, 177 insertions(+), 1 deletion(-) + create mode 100755 tests/test-data-7E.sh + +diff --git a/plugins/data/nbdkit-data-plugin.pod b/plugins/data/nbdkit-data-plugin.pod +index c174abb..5d66f43 100644 +--- a/plugins/data/nbdkit-data-plugin.pod ++++ b/plugins/data/nbdkit-data-plugin.pod +@@ -56,7 +56,7 @@ base64 decoding of C<MTIz>), followed by S<1M - 3 bytes> of zeroes. + @0x1fe 0x55 0xaa" \ + size=1M + +-The last example was created by running: ++This example was created by running: + + $ rm -f disk + $ truncate -s 1M disk +@@ -75,6 +75,52 @@ The last example was created by running: + and then translating the disk data and offsets into the C<data> + string (see L</DATA FORMAT>). + ++=item Create a 7 EB (exabyte) disk with one empty GPT-formatted partition: ++ ++The data plugin supports huge sparse virtual disks, up to the maximum ++size supported by nbdkit itself (S<2⁶³-1 bytes> = ++S<8 exabytes - 1 byte>). These cause all sorts of problems for ++software and so make excellent test cases. To partition such a huge ++disk requires the GPT (GUID Partition Table) format since MBR is ++limited to just 2 TB. ++ ++ nbdkit data data=" ++ @0x1c0 2 0 0xee 0xfe 0xff 0xff 0x01 0 0 0 0xff 0xff 0xff 0xff ++ @0x1fe 0x55 0xaa ++ @0x200 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 ++ 0 0 1 0 0x5c 0 0 0 ++ 0x9b 0xe5 0x6a 0xc5 0 0 0 0 1 0 0 0 0 0 0 0 ++ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 0x22 0 0 0 0 0 0 0 ++ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f ++ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c 2 0 0 0 0 0 0 0 ++ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 ++ @0x400 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 ++ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 ++ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c ++ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 ++ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 ++ @0x6fffffffffffbe00 ++ 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 ++ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 ++ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c ++ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 ++ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 ++ @0x6ffffffffffffe00 ++ 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 ++ 0 0 1 0 0x5c 0 0 0 ++ 0x6c 0x76 0xa1 0xa0 0 0 0 0 ++ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 1 0 0 0 0 0 0 0 0x22 0 0 0 0 0 0 0 ++ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f ++ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c ++ 0xdf 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 ++ " size=7E ++ + =back + + =head1 PARAMETERS +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 1dbfd32..aa7c0e2 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -48,6 +48,7 @@ EXTRA_DIST = \ + test-captive.sh \ + test-cow.sh \ + test-cxx.sh \ ++ test-data-7E.sh \ + test-data-base64.sh \ + test-data-raw.sh \ + test-debug-flags.sh \ +@@ -281,6 +282,7 @@ endif HAVE_GUESTFISH + # data plugin test. + LIBGUESTFS_TESTS += test-data + TESTS += \ ++ test-data-7E.sh \ + test-data-base64.sh \ + test-data-raw.sh + +diff --git a/tests/test-data-7E.sh b/tests/test-data-7E.sh +new file mode 100755 +index 0000000..8327511 +--- /dev/null ++++ b/tests/test-data-7E.sh +@@ -0,0 +1,128 @@ ++#!/usr/bin/env bash ++# nbdkit ++# Copyright (C) 2018 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Test the data plugin creating a 7 EB partitioned disk, and ++# the partition filter on top. ++ ++set -e ++set -x ++ ++files="data-7E.out data-7E.pid data-7E.sock" ++rm -f $files ++ ++# Test that qemu-io works ++if ! qemu-io --help >/dev/null; then ++ echo "$0: missing or broken qemu-io" ++ exit 77 ++fi ++ ++# Run nbdkit. ++nbdkit -P data-7E.pid -U data-7E.sock \ ++ --filter=partition \ ++ data size=7E partition=1 \ ++ data=" ++ @0x1c0 2 0 0xee 0xfe 0xff 0xff 0x01 0 0 0 0xff 0xff 0xff 0xff ++ @0x1fe 0x55 0xaa ++ @0x200 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 ++ 0 0 1 0 0x5c 0 0 0 ++ 0x9b 0xe5 0x6a 0xc5 0 0 0 0 1 0 0 0 0 0 0 0 ++ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 0x22 0 0 0 0 0 0 0 ++ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f ++ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c 2 0 0 0 0 0 0 0 ++ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 ++ @0x400 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 ++ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 ++ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c ++ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 ++ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 ++ @0x6fffffffffffbe00 ++ 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 ++ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 ++ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c ++ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 ++ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 ++ @0x6ffffffffffffe00 ++ 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 ++ 0 0 1 0 0x5c 0 0 0 ++ 0x6c 0x76 0xa1 0xa0 0 0 0 0 ++ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 1 0 0 0 0 0 0 0 0x22 0 0 0 0 0 0 0 ++ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f ++ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c ++ 0xdf 0xff 0xff 0xff 0xff 0xff 0x37 0 ++ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 ++ " ++ ++# We may have to wait a short time for the pid file to appear. ++for i in `seq 1 10`; do ++ if test -f data-7E.pid; then ++ break ++ fi ++ sleep 1 ++done ++if ! test -f data-7E.pid; then ++ echo "$0: PID file was not created" ++ exit 1 ++fi ++ ++pid="$(cat data-7E.pid)" ++ ++# Kill the nbdkit process on exit. ++cleanup () ++{ ++ status=$? ++ trap '' INT QUIT TERM EXIT ERR ++ echo $0: cleanup: exit code $status ++ ++ kill $pid ++ rm -f $files ++ ++ exit $status ++} ++trap cleanup INT QUIT TERM EXIT ERR ++ ++# Since we're reading the empty first partition, any read returns zeroes. ++qemu-io -r -f raw 'nbd+unix://?socket=data-7E.sock' \ ++ -c 'r -v 498 16' | grep -E '^[[:xdigit:]]+:' > data-7E.out ++if [ "$(cat data-7E.out)" != "000001f2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................" ] ++then ++ echo "$0: unexpected pattern:" ++ cat data-7E.out ++ exit 1 ++fi ++ ++# The cleanup() function is called implicitly on exit. +-- +2.18.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 38da7a0..720845f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.5.10 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -46,6 +46,11 @@ Source2: libguestfs.keyring %endif Patch1: 0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch +Patch2: 0002-data-memory-Small-refinements-to-the-man-pages.patch +Patch3: 0003-memory-Document-how-to-preload-disk-images-into-the-.patch +Patch4: 0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch +Patch5: 0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch +Patch6: 0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -952,9 +957,9 @@ popd %changelog -* Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-2 +* Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-3 - New upstream version 1.5.10. -- Add upstream patch after 1.5.10 to fix build. +- Add upstream patches after 1.5.10. * Sun Aug 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.9-2 - New upstream version 1.5.9. From d9bde535530141a9304b2b97e1f4885eac178cb5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 Aug 2018 16:58:45 +0100 Subject: [PATCH 128/683] New upstream version 1.6.0, stable branch. --- ...x-include-directory-for-nbdkit-plugi.patch | 25 -- ...y-Small-refinements-to-the-man-pages.patch | 52 ---- ...how-to-preload-disk-images-into-the-.patch | 44 ---- ...s-plugin-to-work-with-64-bit-offsets.patch | 58 ----- ...espace-at-the-end-of-the-data-string.patch | 29 --- ...le-of-partitioned-7-EB-disk-and-test.patch | 235 ------------------ nbdkit.spec | 18 +- sources | 4 +- 8 files changed, 9 insertions(+), 456 deletions(-) delete mode 100644 0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch delete mode 100644 0002-data-memory-Small-refinements-to-the-man-pages.patch delete mode 100644 0003-memory-Document-how-to-preload-disk-images-into-the-.patch delete mode 100644 0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch delete mode 100644 0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch delete mode 100644 0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch diff --git a/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch b/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch deleted file mode 100644 index 7bc9092..0000000 --- a/0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 9aa3a2a229e1dc3936e0295b05e151b4ef9a8826 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 12:17:33 +0100 -Subject: [PATCH 1/6] common/sparse: Fix include directory for nbdkit-plugin.h. - -Fixes commit 5986c3063ee1d2f28a33d01006bc31b596b4d5f6. ---- - common/sparse/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/common/sparse/Makefile.am b/common/sparse/Makefile.am -index b6cf2f9..6d73878 100644 ---- a/common/sparse/Makefile.am -+++ b/common/sparse/Makefile.am -@@ -38,6 +38,7 @@ libsparse_la_SOURCES = \ - sparse.c \ - sparse.h - libsparse_la_CPPFLAGS = \ -+ -I$(top_srcdir)/include \ - -I$(top_srcdir)/common/include - libsparse_la_CFLAGS = \ - $(WARNINGS_CFLAGS) --- -2.18.0 - diff --git a/0002-data-memory-Small-refinements-to-the-man-pages.patch b/0002-data-memory-Small-refinements-to-the-man-pages.patch deleted file mode 100644 index fdbef8f..0000000 --- a/0002-data-memory-Small-refinements-to-the-man-pages.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 087cd104e7fcbd48db66e1a4f4b134ae2e456842 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 12:45:50 +0100 -Subject: [PATCH 2/6] data, memory: Small refinements to the man pages. - ---- - plugins/data/nbdkit-data-plugin.pod | 3 +++ - plugins/memory/nbdkit-memory-plugin.pod | 7 ++++--- - 2 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/plugins/data/nbdkit-data-plugin.pod b/plugins/data/nbdkit-data-plugin.pod -index 27a7850..c174abb 100644 ---- a/plugins/data/nbdkit-data-plugin.pod -+++ b/plugins/data/nbdkit-data-plugin.pod -@@ -28,6 +28,9 @@ image, possibly followed by zeroes (using the C<size> parameter to pad - the image to the full size), or use the C<data> parameter creatively - to make mostly sparse disk images. - -+The C<size> parameter can specify any virtual size up to the maximum -+supported by nbdkit (C<2⁶³-1> bytes). -+ - =head1 EXAMPLES - - =over 4 -diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod -index 0493d8d..bc1fecc 100644 ---- a/plugins/memory/nbdkit-memory-plugin.pod -+++ b/plugins/memory/nbdkit-memory-plugin.pod -@@ -13,7 +13,8 @@ single disk image in virtual memory, and discards it when nbdkit - exits. - - All nbdkit clients will see the same disk content, initially all --zeroes. -+zeroes. This plugin can be used for testing or where you don't care -+about the final content of the disk image. - - The disk image is stored in memory using a sparse array. The - allocated parts of the disk image cannot be larger than physical RAM -@@ -26,8 +27,8 @@ maximum supported by nbdkit (C<2⁶³-1> bytes). This limit is tested - when nbdkit is compiled, and it should work on all platforms and - architectures supported by nbdkit. - --This can be used for testing where you don't care about the final --content of the disk image. -+If you want an in-memory disk image preinitialized with some data, -+look at L<nbdkit-data-plugin(1)> instead. - - =head1 PARAMETERS - --- -2.18.0 - diff --git a/0003-memory-Document-how-to-preload-disk-images-into-the-.patch b/0003-memory-Document-how-to-preload-disk-images-into-the-.patch deleted file mode 100644 index ebbf5b2..0000000 --- a/0003-memory-Document-how-to-preload-disk-images-into-the-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 7544ba9c12edc462799969129f49f0a1b76a6ef1 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 13:48:21 +0100 -Subject: [PATCH 3/6] memory: Document how to preload disk images into the - plugin. - ---- - plugins/memory/nbdkit-memory-plugin.pod | 20 ++++++++++++++++++-- - 1 file changed, 18 insertions(+), 2 deletions(-) - -diff --git a/plugins/memory/nbdkit-memory-plugin.pod b/plugins/memory/nbdkit-memory-plugin.pod -index bc1fecc..d5ea8ba 100644 ---- a/plugins/memory/nbdkit-memory-plugin.pod -+++ b/plugins/memory/nbdkit-memory-plugin.pod -@@ -27,8 +27,24 @@ maximum supported by nbdkit (C<2⁶³-1> bytes). This limit is tested - when nbdkit is compiled, and it should work on all platforms and - architectures supported by nbdkit. - --If you want an in-memory disk image preinitialized with some data, --look at L<nbdkit-data-plugin(1)> instead. -+=head2 Preloading data -+ -+If you want an in-memory disk image preinitialized with a small amount -+of data specified on the command line, look at -+L<nbdkit-data-plugin(1)> instead. -+ -+If you want to preload a large amount of data (eg. a disk image) into -+the memory plugin, use L<qemu-img(1)>: -+ -+ $ rm -f pid -+ $ nbdkit -P pid memory size=10G -+ -+ # wait for nbdkit to become ready to accept connections: -+ $ while [ ! -f pid ]; do sleep 1; done -+ -+ # preload Fedora disk image: -+ $ virt-builder fedora-28 --size=10G -+ $ qemu-img convert -p -n fedora-28.img nbd:localhost:10809 - - =head1 PARAMETERS - --- -2.18.0 - diff --git a/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch b/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch deleted file mode 100644 index d2e083b..0000000 --- a/0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 5afc6acd0719ed5b5c4e48763237efe9230fb8a7 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 16:18:26 +0100 -Subject: [PATCH 4/6] data: Fix this plugin to work with 64 bit offsets. - -It can now handle 64 bit offsets on both 32 and 64 bit platforms. ---- - plugins/data/data.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/plugins/data/data.c b/plugins/data/data.c -index e61e3be..3d27227 100644 ---- a/plugins/data/data.c -+++ b/plugins/data/data.c -@@ -35,6 +35,8 @@ - - #include <stdio.h> - #include <stdlib.h> -+#include <stdint.h> -+#include <inttypes.h> - #include <string.h> - - #if defined(HAVE_GNUTLS) && defined(HAVE_GNUTLS_BASE64_DECODE2) -@@ -107,25 +109,23 @@ read_base64 (const char *value) - static int - read_data (const char *value) - { -- size_t offset = 0; -+ int64_t offset = 0; - size_t i, len = strlen (value); - - for (i = 0; i < len; ++i) { -- int j, n; -+ int64_t j; -+ int n; - char c; - -- /* XXX Using the %i type specifier limits this plugin to creating -- * 32 bit data (even on 64 bit platforms). -- */ -- if (sscanf (&value[i], " @%i%n", &j, &n) == 1) { -- if (j == -1) { -+ if (sscanf (&value[i], " @%" SCNi64 "%n", &j, &n) == 1) { -+ if (j < 0) { - nbdkit_error ("data parameter @OFFSET must not be negative"); - return -1; - } - i += n; - offset = j; - } -- else if (sscanf (&value[i], " %i%n", &j, &n) == 1) { -+ else if (sscanf (&value[i], " %" SCNi64 "%n", &j, &n) == 1) { - if (j < 0 || j > 255) { - nbdkit_error ("data parameter BYTE must be in the range 0..255"); - return -1; --- -2.18.0 - diff --git a/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch b/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch deleted file mode 100644 index fb31dce..0000000 --- a/0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f6d1419f36905965ec5ccb43236617639ea21c7f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 18:52:51 +0100 -Subject: [PATCH 5/6] data: Permit whitespace at the end of the data string. - ---- - plugins/data/data.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/plugins/data/data.c b/plugins/data/data.c -index 3d27227..0925233 100644 ---- a/plugins/data/data.c -+++ b/plugins/data/data.c -@@ -141,6 +141,12 @@ read_data (const char *value) - return -1; - offset++; - } -+ /* We have to have a rule to skip just whitespace so that -+ * whitespace is permitted at the end of the string. -+ */ -+ else if (sscanf (&value[i], " %n", &n) == 0) { -+ i += n; -+ } - else { - nbdkit_error ("data parameter: parsing error at offset %zu", i); - return -1; --- -2.18.0 - diff --git a/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch b/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch deleted file mode 100644 index 6b6f136..0000000 --- a/0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch +++ /dev/null @@ -1,235 +0,0 @@ -From 2c548ffcf2745f23a504d646f64a20c984bc2e32 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Aug 2018 18:48:51 +0100 -Subject: [PATCH 6/6] data: Add example of partitioned 7 EB disk, and test. - ---- - plugins/data/nbdkit-data-plugin.pod | 48 ++++++++++- - tests/Makefile.am | 2 + - tests/test-data-7E.sh | 128 ++++++++++++++++++++++++++++ - 3 files changed, 177 insertions(+), 1 deletion(-) - create mode 100755 tests/test-data-7E.sh - -diff --git a/plugins/data/nbdkit-data-plugin.pod b/plugins/data/nbdkit-data-plugin.pod -index c174abb..5d66f43 100644 ---- a/plugins/data/nbdkit-data-plugin.pod -+++ b/plugins/data/nbdkit-data-plugin.pod -@@ -56,7 +56,7 @@ base64 decoding of C<MTIz>), followed by S<1M - 3 bytes> of zeroes. - @0x1fe 0x55 0xaa" \ - size=1M - --The last example was created by running: -+This example was created by running: - - $ rm -f disk - $ truncate -s 1M disk -@@ -75,6 +75,52 @@ The last example was created by running: - and then translating the disk data and offsets into the C<data> - string (see L</DATA FORMAT>). - -+=item Create a 7 EB (exabyte) disk with one empty GPT-formatted partition: -+ -+The data plugin supports huge sparse virtual disks, up to the maximum -+size supported by nbdkit itself (S<2⁶³-1 bytes> = -+S<8 exabytes - 1 byte>). These cause all sorts of problems for -+software and so make excellent test cases. To partition such a huge -+disk requires the GPT (GUID Partition Table) format since MBR is -+limited to just 2 TB. -+ -+ nbdkit data data=" -+ @0x1c0 2 0 0xee 0xfe 0xff 0xff 0x01 0 0 0 0xff 0xff 0xff 0xff -+ @0x1fe 0x55 0xaa -+ @0x200 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 -+ 0 0 1 0 0x5c 0 0 0 -+ 0x9b 0xe5 0x6a 0xc5 0 0 0 0 1 0 0 0 0 0 0 0 -+ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 0x22 0 0 0 0 0 0 0 -+ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f -+ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c 2 0 0 0 0 0 0 0 -+ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 -+ @0x400 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 -+ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 -+ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c -+ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 -+ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 -+ @0x6fffffffffffbe00 -+ 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 -+ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 -+ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c -+ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 -+ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 -+ @0x6ffffffffffffe00 -+ 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 -+ 0 0 1 0 0x5c 0 0 0 -+ 0x6c 0x76 0xa1 0xa0 0 0 0 0 -+ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 1 0 0 0 0 0 0 0 0x22 0 0 0 0 0 0 0 -+ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f -+ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c -+ 0xdf 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 -+ " size=7E -+ - =back - - =head1 PARAMETERS -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 1dbfd32..aa7c0e2 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -48,6 +48,7 @@ EXTRA_DIST = \ - test-captive.sh \ - test-cow.sh \ - test-cxx.sh \ -+ test-data-7E.sh \ - test-data-base64.sh \ - test-data-raw.sh \ - test-debug-flags.sh \ -@@ -281,6 +282,7 @@ endif HAVE_GUESTFISH - # data plugin test. - LIBGUESTFS_TESTS += test-data - TESTS += \ -+ test-data-7E.sh \ - test-data-base64.sh \ - test-data-raw.sh - -diff --git a/tests/test-data-7E.sh b/tests/test-data-7E.sh -new file mode 100755 -index 0000000..8327511 ---- /dev/null -+++ b/tests/test-data-7E.sh -@@ -0,0 +1,128 @@ -+#!/usr/bin/env bash -+# nbdkit -+# Copyright (C) 2018 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Test the data plugin creating a 7 EB partitioned disk, and -+# the partition filter on top. -+ -+set -e -+set -x -+ -+files="data-7E.out data-7E.pid data-7E.sock" -+rm -f $files -+ -+# Test that qemu-io works -+if ! qemu-io --help >/dev/null; then -+ echo "$0: missing or broken qemu-io" -+ exit 77 -+fi -+ -+# Run nbdkit. -+nbdkit -P data-7E.pid -U data-7E.sock \ -+ --filter=partition \ -+ data size=7E partition=1 \ -+ data=" -+ @0x1c0 2 0 0xee 0xfe 0xff 0xff 0x01 0 0 0 0xff 0xff 0xff 0xff -+ @0x1fe 0x55 0xaa -+ @0x200 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 -+ 0 0 1 0 0x5c 0 0 0 -+ 0x9b 0xe5 0x6a 0xc5 0 0 0 0 1 0 0 0 0 0 0 0 -+ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 0x22 0 0 0 0 0 0 0 -+ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f -+ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c 2 0 0 0 0 0 0 0 -+ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 -+ @0x400 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 -+ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 -+ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c -+ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 -+ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 -+ @0x6fffffffffffbe00 -+ 0xaf 0x3d 0xc6 0x0f 0x83 0x84 0x72 0x47 -+ 0x8e 0x79 0x3d 0x69 0xd8 0x47 0x7d 0xe4 -+ 0xd5 0x19 0x46 0x95 0xe3 0x82 0xa8 0x4c -+ 0x95 0x82 0x7a 0xbe 0x1c 0xfc 0x62 0x90 -+ 0x80 0 0 0 0 0 0 0 0x80 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0 0 0 0 0 0 0 0 0x70 0 0x31 0 0 0 0 0 -+ @0x6ffffffffffffe00 -+ 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 -+ 0 0 1 0 0x5c 0 0 0 -+ 0x6c 0x76 0xa1 0xa0 0 0 0 0 -+ 0xff 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 1 0 0 0 0 0 0 0 0x22 0 0 0 0 0 0 0 -+ 0xde 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x72 0xb6 0x9e 0x0c 0x6b 0x76 0xb0 0x4f -+ 0xb3 0x94 0xb2 0xf1 0x61 0xec 0xdd 0x3c -+ 0xdf 0xff 0xff 0xff 0xff 0xff 0x37 0 -+ 0x80 0 0 0 0x80 0 0 0 0x79 0x8a 0xd0 0x7e 0 0 0 0 -+ " -+ -+# We may have to wait a short time for the pid file to appear. -+for i in `seq 1 10`; do -+ if test -f data-7E.pid; then -+ break -+ fi -+ sleep 1 -+done -+if ! test -f data-7E.pid; then -+ echo "$0: PID file was not created" -+ exit 1 -+fi -+ -+pid="$(cat data-7E.pid)" -+ -+# Kill the nbdkit process on exit. -+cleanup () -+{ -+ status=$? -+ trap '' INT QUIT TERM EXIT ERR -+ echo $0: cleanup: exit code $status -+ -+ kill $pid -+ rm -f $files -+ -+ exit $status -+} -+trap cleanup INT QUIT TERM EXIT ERR -+ -+# Since we're reading the empty first partition, any read returns zeroes. -+qemu-io -r -f raw 'nbd+unix://?socket=data-7E.sock' \ -+ -c 'r -v 498 16' | grep -E '^[[:xdigit:]]+:' > data-7E.out -+if [ "$(cat data-7E.out)" != "000001f2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................" ] -+then -+ echo "$0: unexpected pattern:" -+ cat data-7E.out -+ exit 1 -+fi -+ -+# The cleanup() function is called implicitly on exit. --- -2.18.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 720845f..1141d30 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,14 +25,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.5-development +%global source_directory 1.6-stable Name: nbdkit -Version: 1.5.10 -Release: 3%{?dist} +Version: 1.6.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -45,13 +45,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -Patch1: 0001-common-sparse-Fix-include-directory-for-nbdkit-plugi.patch -Patch2: 0002-data-memory-Small-refinements-to-the-man-pages.patch -Patch3: 0003-memory-Document-how-to-preload-disk-images-into-the-.patch -Patch4: 0004-data-Fix-this-plugin-to-work-with-64-bit-offsets.patch -Patch5: 0005-data-Permit-whitespace-at-the-end-of-the-data-string.patch -Patch6: 0006-data-Add-example-of-partitioned-7-EB-disk-and-test.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -957,6 +950,9 @@ popd %changelog +* Tue Aug 28 2018 Richard W.M. Jones <rjones@redhat.com> - 1.6.0-1 +- New upstream version 1.6.0, stable branch. + * Mon Aug 27 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.10-3 - New upstream version 1.5.10. - Add upstream patches after 1.5.10. diff --git a/sources b/sources index 6540759..5e391a4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.5.10.tar.gz) = 342a9d2e0f91b31767a2d522237054a238bd903b8c49f3ccc6f7652d9a011395ca874adfb9ebda9cc150b62d9293f16d67b7d116d0cc7bcf7835608e0289737f -SHA512 (nbdkit-1.5.10.tar.gz.sig) = 3af2258227c16b78c3ffeb8ab915f7f21a2dc43577fa2199403a412901be210776815a8c5a9b0f9eea5becdad1c95de8453def764c40edab07d9856c1a43cac4 +SHA512 (nbdkit-1.6.0.tar.gz) = d395e1b62a370b6ba66768b866534c4341210b77e47ff4b120b00722bda63e2c317573f9d0a1a85ee8c3dd6f7d1f0726bcacdebf3bf34f36272eea4baa047916 +SHA512 (nbdkit-1.6.0.tar.gz.sig) = 89b14d8a70752642268fdbd06236d603b2716a930739d5d1e037f195153ab8d70b38c379c1bffeec65f78d391c2204a6f171920b74684fb02fd3c5996c1040a4 From 089b243a4a40ee2521a658332b0ba13d3b8c567c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 8 Sep 2018 10:44:47 +0100 Subject: [PATCH 129/683] New upstream version 1.7.0, development branch. Add nbdkit-sh-plugin. --- nbdkit.spec | 14 ++++++++++++-- sources | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1141d30..9dc5bca 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,10 +28,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.6-stable +%global source_directory 1.7-development Name: nbdkit -Version: 1.6.0 +Version: 1.7.0 Release: 1%{?dist} Summary: NBD server @@ -193,6 +193,10 @@ trivial dependencies. Random content plugin for testing. +* nbdkit-sh-plugin + + Write plugins as shell scripts or executables. + * nbdkit-split-plugin Concatenate one or more files into a single virtual disk. @@ -754,6 +758,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so @@ -764,6 +769,7 @@ popd %{_mandir}/man1/nbdkit-null-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* +%{_mandir}/man3/nbdkit-sh-plugin.3* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* %{_mandir}/man1/nbdkit-zero-plugin.1* @@ -950,6 +956,10 @@ popd %changelog +* Sat Sep 08 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-1 +- New upstream version 1.7.0, development branch. +- Add nbdkit-sh-plugin. + * Tue Aug 28 2018 Richard W.M. Jones <rjones@redhat.com> - 1.6.0-1 - New upstream version 1.6.0, stable branch. diff --git a/sources b/sources index 5e391a4..077ed0e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.6.0.tar.gz) = d395e1b62a370b6ba66768b866534c4341210b77e47ff4b120b00722bda63e2c317573f9d0a1a85ee8c3dd6f7d1f0726bcacdebf3bf34f36272eea4baa047916 -SHA512 (nbdkit-1.6.0.tar.gz.sig) = 89b14d8a70752642268fdbd06236d603b2716a930739d5d1e037f195153ab8d70b38c379c1bffeec65f78d391c2204a6f171920b74684fb02fd3c5996c1040a4 +SHA512 (nbdkit-1.7.0.tar.gz) = 9488a50d4d5613cb7534b00ceddd2790add51333514fa45ea533c3f5e03420019040275fe591525bda1fa361b83acc02457910f42d4b8aed8999a34ee836eccf +SHA512 (nbdkit-1.7.0.tar.gz.sig) = 53997551d213000d4fb07626b79d1c814898279f14e2a4838ae4ff72ce7a5ed8bafd1ac743ccecb4b781b431063684df0a9f5facc1b5033eb9d290f2ceecf9ab From f4d20e9538474697775adf90d5368bf2c52cc7c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 8 Sep 2018 12:43:48 +0100 Subject: [PATCH 130/683] Add plugins/sh/example.sh to nbdkit-devel. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 9dc5bca..2d6ad2b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -940,6 +940,7 @@ popd %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb +%doc plugins/sh/example.sh %doc plugins/tcl/example.tcl %{_includedir}/nbdkit-common.h %{_includedir}/nbdkit-filter.h From 3d82870e6c12d5c29483efdbce801e6b7fc8a832 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 10 Sep 2018 17:17:56 +0100 Subject: [PATCH 131/683] New upstream version 1.7.1. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2d6ad2b..dfebe43 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.0 +Version: 1.7.1 Release: 1%{?dist} Summary: NBD server @@ -957,6 +957,9 @@ popd %changelog +* Mon Sep 10 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.1-1 +- New upstream version 1.7.1. + * Sat Sep 08 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-1 - New upstream version 1.7.0, development branch. - Add nbdkit-sh-plugin. diff --git a/sources b/sources index 077ed0e..f28b959 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.0.tar.gz) = 9488a50d4d5613cb7534b00ceddd2790add51333514fa45ea533c3f5e03420019040275fe591525bda1fa361b83acc02457910f42d4b8aed8999a34ee836eccf -SHA512 (nbdkit-1.7.0.tar.gz.sig) = 53997551d213000d4fb07626b79d1c814898279f14e2a4838ae4ff72ce7a5ed8bafd1ac743ccecb4b781b431063684df0a9f5facc1b5033eb9d290f2ceecf9ab +SHA512 (nbdkit-1.7.1.tar.gz) = 387958a31069d4ee60ede178b386ebd22504c4b2599fec2d9c22982cadaacbf2639c3ac53f1fd83b9fca78c5d72de54b2aec60fc514ce9ef6a917f4610428fd1 +SHA512 (nbdkit-1.7.1.tar.gz.sig) = 4d525392d329903114bc460def34ed665c9cf025cb2561d0247193e22357602a01fcb7718dc690e89c21fc85a73b3448901c1e81fdb0d9aeaeb4614cd3a351e0 From 71ae6907fe9cc0735faeed252337da25cbf00a26 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Sep 2018 23:17:33 +0100 Subject: [PATCH 132/683] New upstream version 1.7.2. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dfebe43..936fdc0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.1 +Version: 1.7.2 Release: 1%{?dist} Summary: NBD server @@ -957,6 +957,9 @@ popd %changelog +* Thu Sep 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.2-1 +- New upstream version 1.7.2. + * Mon Sep 10 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.1-1 - New upstream version 1.7.1. diff --git a/sources b/sources index f28b959..a554457 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.1.tar.gz) = 387958a31069d4ee60ede178b386ebd22504c4b2599fec2d9c22982cadaacbf2639c3ac53f1fd83b9fca78c5d72de54b2aec60fc514ce9ef6a917f4610428fd1 -SHA512 (nbdkit-1.7.1.tar.gz.sig) = 4d525392d329903114bc460def34ed665c9cf025cb2561d0247193e22357602a01fcb7718dc690e89c21fc85a73b3448901c1e81fdb0d9aeaeb4614cd3a351e0 +SHA512 (nbdkit-1.7.2.tar.gz) = 247c2c4667ff59040930f4b951ebae4e5041eeb74809f70fc2a3304c0a3226ad808062efa033d6effe37626564a6a5111be4d808a7681f9b1c447bab637cfdad +SHA512 (nbdkit-1.7.2.tar.gz.sig) = dae963da56ea0bef29383d4967e0ec52787fba8040176adf0c3d93d2170890924af52dd620a9c177d6bbc9d784a9bc5df3a724fc07722f68194548aa594179c2 From c6544c0564cc20ff105a64558900a91f7b3c0ca8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 18 Sep 2018 22:59:54 +0100 Subject: [PATCH 133/683] New upstream version 1.7.3. Add partitioning plugin. --- nbdkit.spec | 12 +++++++++++- sources | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 936fdc0..8b32c46 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.2 +Version: 1.7.3 Release: 1%{?dist} Summary: NBD server @@ -189,6 +189,10 @@ trivial dependencies. Fixed test pattern. +* nbdkit-partitioning-plugin + + Create virtual disks from partitions. + * nbdkit-random-plugin Random content plugin for testing. @@ -756,6 +760,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so @@ -767,6 +772,7 @@ popd %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man3/nbdkit-sh-plugin.3* @@ -957,6 +963,10 @@ popd %changelog +* Tue Sep 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.3-1 +- New upstream version 1.7.3. +- Add partitioning plugin. + * Thu Sep 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.2-1 - New upstream version 1.7.2. diff --git a/sources b/sources index a554457..fb16860 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.2.tar.gz) = 247c2c4667ff59040930f4b951ebae4e5041eeb74809f70fc2a3304c0a3226ad808062efa033d6effe37626564a6a5111be4d808a7681f9b1c447bab637cfdad -SHA512 (nbdkit-1.7.2.tar.gz.sig) = dae963da56ea0bef29383d4967e0ec52787fba8040176adf0c3d93d2170890924af52dd620a9c177d6bbc9d784a9bc5df3a724fc07722f68194548aa594179c2 +SHA512 (nbdkit-1.7.3.tar.gz) = 8be50cf96b5cbe916e0b2cb36760e1555565b6a9d0f78f8a01338869a2a8e28d3b0244d295aea5435840ec232d48c97e0ea76b78f90787214ef5cf352949e1a7 +SHA512 (nbdkit-1.7.3.tar.gz.sig) = 056f766fdcbce33e573c1b88c7ac7408ccb14c96e75b677142391168b225cd754a46c4f990218dc47a76a63231aeb03c6f762d03448ae126aaf26cf1093c9f76 From d8f8536a7ddbcb847cbdac2c5a2a198fea3691db Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Oct 2018 21:43:31 +0100 Subject: [PATCH 134/683] New upstream version 1.7.4. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8b32c46..96c686c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.3 +Version: 1.7.4 Release: 1%{?dist} Summary: NBD server @@ -963,6 +963,9 @@ popd %changelog +* Tue Oct 2 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.4-1 +- New upstream version 1.7.4. + * Tue Sep 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.3-1 - New upstream version 1.7.3. - Add partitioning plugin. diff --git a/sources b/sources index fb16860..c9df932 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.3.tar.gz) = 8be50cf96b5cbe916e0b2cb36760e1555565b6a9d0f78f8a01338869a2a8e28d3b0244d295aea5435840ec232d48c97e0ea76b78f90787214ef5cf352949e1a7 -SHA512 (nbdkit-1.7.3.tar.gz.sig) = 056f766fdcbce33e573c1b88c7ac7408ccb14c96e75b677142391168b225cd754a46c4f990218dc47a76a63231aeb03c6f762d03448ae126aaf26cf1093c9f76 +SHA512 (nbdkit-1.7.4.tar.gz) = 8f78118ce8e09210aecb16514c43a99bd8469ddda2c79ac5cf8b7551e75816267c9d8fb1f09d1e5bcfe9af08e1ef7379ca1426f4af7215320eb91834f60d251e +SHA512 (nbdkit-1.7.4.tar.gz.sig) = dc214134636870cead61fe05efc57ac94e81e2909a6f021f15ef1115eee57b79e134686da6b2b2dc317b3e4e33861524c0e4b23daa7cdaeebb47f1b4c9deeb94 From bb74bac2abea8d84ada8bdd3dd44e3d43a988f27 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 16 Oct 2018 09:42:28 +0100 Subject: [PATCH 135/683] New upstream version 1.7.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 96c686c..f8fec57 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.4 +Version: 1.7.5 Release: 1%{?dist} Summary: NBD server @@ -963,6 +963,9 @@ popd %changelog +* Tue Oct 16 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.5-1 +- New upstream version 1.7.5. + * Tue Oct 2 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.4-1 - New upstream version 1.7.4. diff --git a/sources b/sources index c9df932..88371ca 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.4.tar.gz) = 8f78118ce8e09210aecb16514c43a99bd8469ddda2c79ac5cf8b7551e75816267c9d8fb1f09d1e5bcfe9af08e1ef7379ca1426f4af7215320eb91834f60d251e -SHA512 (nbdkit-1.7.4.tar.gz.sig) = dc214134636870cead61fe05efc57ac94e81e2909a6f021f15ef1115eee57b79e134686da6b2b2dc317b3e4e33861524c0e4b23daa7cdaeebb47f1b4c9deeb94 +SHA512 (nbdkit-1.7.5.tar.gz) = 48fa19b2c224be861f11c910cd0dc20670a7d404a371bf63631e6665e78f9d21829a3db607f79225a4ec2037bc2aabf1e2f81fdae881c6095c7797dfe0bdec3b +SHA512 (nbdkit-1.7.5.tar.gz.sig) = 126cbfde91495eb4ba09e057c6c60e9b29652c973b8f9af6eccdac11be37fa4dde7753c2837664a59ecf7fa4f59d22304bb36507ecaae0eacaca25a710fdb96b From 402c5ca6a1afe0ba87d0276c6076a816790f769a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 17 Oct 2018 13:28:00 +0100 Subject: [PATCH 136/683] New upstream version 1.7.6. New nbdkit-iso-plugin subpackage. --- nbdkit.spec | 25 ++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f8fec57..803dfd1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.5 +Version: 1.7.6 Release: 1%{?dist} Summary: NBD server @@ -294,6 +294,18 @@ Obsoletes: %{name}-plugin-gzip <= %{version}-%{release} This package is a gzip file serving plugin for %{name}. +%package iso-plugin +Summary: Virtual ISO 9660 plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: genisoimage + + +%description iso-plugin +This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. + + %if 0%{?have_libvirt} %package libvirt-plugin Summary: Libvirt plugin for %{name} @@ -819,6 +831,13 @@ popd %{_mandir}/man1/nbdkit-gzip-plugin.1* +%files iso-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-iso-plugin.so +%{_mandir}/man1/nbdkit-iso-plugin.1* + + %if 0%{?have_libvirt} %files libvirt-plugin %doc README @@ -963,6 +982,10 @@ popd %changelog +* Wed Oct 17 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.6-1 +- New upstream version 1.7.6. +- New nbdkit-iso-plugin subpackage. + * Tue Oct 16 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.5-1 - New upstream version 1.7.5. diff --git a/sources b/sources index 88371ca..d89bcff 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.5.tar.gz) = 48fa19b2c224be861f11c910cd0dc20670a7d404a371bf63631e6665e78f9d21829a3db607f79225a4ec2037bc2aabf1e2f81fdae881c6095c7797dfe0bdec3b -SHA512 (nbdkit-1.7.5.tar.gz.sig) = 126cbfde91495eb4ba09e057c6c60e9b29652c973b8f9af6eccdac11be37fa4dde7753c2837664a59ecf7fa4f59d22304bb36507ecaae0eacaca25a710fdb96b +SHA512 (nbdkit-1.7.6.tar.gz) = 4b426b8be544c4f8af86069cfc840d42bc461db30e04801597bccaf203cbe8ae7c85002ed0a156feff2d8e300be0f3ff1bb526ff2b45d3b5463710a1454a740b +SHA512 (nbdkit-1.7.6.tar.gz.sig) = 5477c7a23f5e154832224fe709e38541554c5f6f435f51125f42192ba79938f7bfb23751a0eb8135b32aa7cdd93a17b5d8970c121e82c13d2cb85ab0b7187a9f From 207d479926971dca8ad0393c7e286cf746c90539 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 17 Oct 2018 13:51:59 +0100 Subject: [PATCH 137/683] Add missing BR genisoimage (for nbdkit-iso-plugin). --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 803dfd1..e2a2085 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -73,6 +73,7 @@ BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel BuildRequires: e2fsprogs-devel +BuildRequires: genisoimage BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) From bfed8fe9236307b5ddde0ee0d5c2e51ce38d421e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 29 Oct 2018 22:06:42 +0000 Subject: [PATCH 138/683] New upstream version 1.7.7. New nbdkit-floppy-plugin subpackage. --- nbdkit.spec | 12 +++++++++++- sources | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e2a2085..c498d5b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.6 +Version: 1.7.7 Release: 1%{?dist} Summary: NBD server @@ -167,6 +167,10 @@ trivial dependencies. A file serving plugin. +* nbdkit-floppy-plugin + + Create a virtual floppy disk from a directory. + * nbdkit-memory-plugin A virtual memory plugin. @@ -770,6 +774,7 @@ popd %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-data-plugin.so %{_libdir}/%{name}/plugins/nbdkit-file-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-floppy-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so @@ -782,6 +787,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so %{_mandir}/man1/nbdkit-data-plugin.1* %{_mandir}/man1/nbdkit-file-plugin.1* +%{_mandir}/man1/nbdkit-floppy-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* @@ -983,6 +989,10 @@ popd %changelog +* Mon Oct 29 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.7-1 +- New upstream version 1.7.7. +- New nbdkit-floppy-plugin subpackage. + * Wed Oct 17 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.6-1 - New upstream version 1.7.6. - New nbdkit-iso-plugin subpackage. diff --git a/sources b/sources index d89bcff..ac85f5a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.6.tar.gz) = 4b426b8be544c4f8af86069cfc840d42bc461db30e04801597bccaf203cbe8ae7c85002ed0a156feff2d8e300be0f3ff1bb526ff2b45d3b5463710a1454a740b -SHA512 (nbdkit-1.7.6.tar.gz.sig) = 5477c7a23f5e154832224fe709e38541554c5f6f435f51125f42192ba79938f7bfb23751a0eb8135b32aa7cdd93a17b5d8970c121e82c13d2cb85ab0b7187a9f +SHA512 (nbdkit-1.7.7.tar.gz) = 676cf602ad78a1800b8487c457b07731a0c95a70d65f6be69c978880e08d82ab321d7badf945aa7e279e516c0f17a86f7f41214c564a78ae3172a91bdb698691 +SHA512 (nbdkit-1.7.7.tar.gz.sig) = 05f1d6da9e02838266a59b9a66370592d13114171c523a39f692e444f1e19dee8a1aaa9f2555bcefa3318087dea5f4c64ad435aa88e5fdb150fd5ba4f9b415df From 23bf3d7ef6abf0109863e569e42b4426bd5f7aa6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 30 Oct 2018 22:50:42 +0000 Subject: [PATCH 139/683] New upstream version 1.7.8. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c498d5b..26c79c1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.7 +Version: 1.7.8 Release: 1%{?dist} Summary: NBD server @@ -989,6 +989,9 @@ popd %changelog +* Tue Oct 30 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.8-1 +- New upstream version 1.7.8. + * Mon Oct 29 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.7-1 - New upstream version 1.7.7. - New nbdkit-floppy-plugin subpackage. diff --git a/sources b/sources index ac85f5a..f5d67a4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.7.tar.gz) = 676cf602ad78a1800b8487c457b07731a0c95a70d65f6be69c978880e08d82ab321d7badf945aa7e279e516c0f17a86f7f41214c564a78ae3172a91bdb698691 -SHA512 (nbdkit-1.7.7.tar.gz.sig) = 05f1d6da9e02838266a59b9a66370592d13114171c523a39f692e444f1e19dee8a1aaa9f2555bcefa3318087dea5f4c64ad435aa88e5fdb150fd5ba4f9b415df +SHA512 (nbdkit-1.7.8.tar.gz) = 033a071c422a49f4616ce766482f9b953c3e16fb3e0c4ad01c15d6de27577546f1cf34b222aaf6850085503b330223c6fc323e168b5edf84dcccb6a101faaaaf +SHA512 (nbdkit-1.7.8.tar.gz.sig) = ac7bef8d18bd5a57e34cbd7490558d7feff1d97710bb17acb1a020e44b4ab96966644ea7d0b3eb3e7e4b31c5939573a626a2964f9a2e4315c5d63b2dbd583286 From 7ad48d85e7611913d4d2f9d31b5c81ec8707f287 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 6 Nov 2018 19:20:05 +0000 Subject: [PATCH 140/683] New upstream version 1.7.9. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 26c79c1..104c90e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.8 +Version: 1.7.9 Release: 1%{?dist} Summary: NBD server @@ -989,6 +989,9 @@ popd %changelog +* Tue Nov 06 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.9-1 +- New upstream version 1.7.9. + * Tue Oct 30 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.8-1 - New upstream version 1.7.8. diff --git a/sources b/sources index f5d67a4..e96a28d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.8.tar.gz) = 033a071c422a49f4616ce766482f9b953c3e16fb3e0c4ad01c15d6de27577546f1cf34b222aaf6850085503b330223c6fc323e168b5edf84dcccb6a101faaaaf -SHA512 (nbdkit-1.7.8.tar.gz.sig) = ac7bef8d18bd5a57e34cbd7490558d7feff1d97710bb17acb1a020e44b4ab96966644ea7d0b3eb3e7e4b31c5939573a626a2964f9a2e4315c5d63b2dbd583286 +SHA512 (nbdkit-1.7.9.tar.gz) = 7dd84a1b0c5cc6ddc4545fc51ff2545c0089af62717ffc031b1acdba77f102abd48daafaf89055f8bda02b396e3cb201506b616c20e868a381e24012f6a62a3d +SHA512 (nbdkit-1.7.9.tar.gz.sig) = e9d7ec07ff01905160a15752139dca2f2db02d175b9cc9f48b6b64b0826a258749b8b49bd8a6dab70a644244bb7da96b406c40a01310a636af03f7ea62b9f37e From bc6a311564b95de41dc2548564d1ac83c4509089 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 6 Nov 2018 21:34:28 +0000 Subject: [PATCH 141/683] nbdkit metapackage should depend on versioned -server subpackage etc. Fixes commit b772c3dfaeabfdfd61591b3e416e1721dcc8fb25. --- nbdkit.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 104c90e..47485ff 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.7.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -104,9 +104,9 @@ BuildRequires: /usr/sbin/ss # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. -Requires: nbdkit-server -Requires: nbdkit-basic-plugins -Requires: nbdkit-basic-filters +Requires: nbdkit-server%{?_isa} = %{version}-%{release} +Requires: nbdkit-basic-plugins%{?_isa} = %{version}-%{release} +Requires: nbdkit-basic-filters%{?_isa} = %{version}-%{release} %description @@ -989,6 +989,9 @@ popd %changelog +* Tue Nov 06 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.9-2 +- nbdkit metapackage should depend on versioned -server subpackage etc. + * Tue Nov 06 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.9-1 - New upstream version 1.7.9. From fda10ee1964d4089848df86e07482a8beaa3a9af Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 9 Nov 2018 17:54:57 +0000 Subject: [PATCH 142/683] New upstream version 1.7.10, possibly final before 1.8. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 47485ff..bbb2970 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.7-development Name: nbdkit -Version: 1.7.9 -Release: 2%{?dist} +Version: 1.7.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -989,6 +989,9 @@ popd %changelog +* Fri Nov 09 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.10-1 +- New upstream version 1.7.10, possibly final before 1.8. + * Tue Nov 06 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.9-2 - nbdkit metapackage should depend on versioned -server subpackage etc. diff --git a/sources b/sources index e96a28d..912aad4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.9.tar.gz) = 7dd84a1b0c5cc6ddc4545fc51ff2545c0089af62717ffc031b1acdba77f102abd48daafaf89055f8bda02b396e3cb201506b616c20e868a381e24012f6a62a3d -SHA512 (nbdkit-1.7.9.tar.gz.sig) = e9d7ec07ff01905160a15752139dca2f2db02d175b9cc9f48b6b64b0826a258749b8b49bd8a6dab70a644244bb7da96b406c40a01310a636af03f7ea62b9f37e +SHA512 (nbdkit-1.7.10.tar.gz) = dd173ce88d89b686b56ad57674200fb8e6a9c6408856647abb2c276bb096166336f65609ee4a3e000db88bcd13a10a63d99abfa61dd84f4a0d0a5ac2fa7b45cf +SHA512 (nbdkit-1.7.10.tar.gz.sig) = e9aed3a72f18e6b1c5c7dd624a14c4e62f1784c0fd9eda8e122ef5eeeb70bc45be3b331eb374be57039a9289a15e04162bebe4f97ffe5f1895646e6d9710d746 From f8dd6dabe1db4a40e892d515e3eb834785666370 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 9 Nov 2018 21:50:26 +0000 Subject: [PATCH 143/683] Tidy up %descriptions. --- nbdkit.spec | 115 +++++++++++++++------------------------------------- 1 file changed, 33 insertions(+), 82 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bbb2970..5a3e297 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -113,18 +113,24 @@ Requires: nbdkit-basic-filters%{?_isa} = %{version}-%{release} NBD is a protocol for accessing block devices (hard disks and disk-like things) over the network. -'nbdkit' is a toolkit for creating NBD servers. +nbdkit is a toolkit for creating NBD servers. The key features are: * Multithreaded NBD server written in C with good performance. -* Well-documented, simple plugin API with a stable ABI guarantee. - Allows you to export "unconventional" block devices easily. +* 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 to export "unconventional" block devices easily. + +* You can write plugins in C or many other languages. + +* Filters can be stacked in front of plugins to transform the output. + In Fedora, '%{name}' is a meta-package which pulls in the core server and a useful subset of plugins and filters. @@ -159,64 +165,31 @@ Obsoletes: %{name}-plugin-streaming < 1.1.19-1 This package contains some basic plugins for %{name} which have only trivial dependencies. -* nbdkit-data-plugin +nbdkit-data-plugin Serve small amounts of data from the command line. - Serve small files directly from the command line. +nbdkit-file-plugin The normal file plugin for serving files. -* nbdkit-file-plugin +nbdkit-floppy-plugin Create a virtual floppy disk from a directory. - A file serving plugin. +nbdkit-memory-plugin A virtual memory plugin. -* nbdkit-floppy-plugin +nbdkit-nbd-plugin An NBD forwarding plugin. - Create a virtual floppy disk from a directory. +nbdkit-null-plugin A null (bitbucket) plugin. -* nbdkit-memory-plugin +nbdkit-pattern-plugin Fixed test pattern. - A virtual memory plugin. +nbdkit-partitioning-plugin Create virtual disks from partitions. -* nbdkit-nbd-plugin +nbdkit-random-plugin Random content plugin for testing. - An NBD forwarding plugin. +nbdkit-sh-plugin Write plugins as shell scripts or executables. - It provides an NBD server that forwards all traffic as a client to - another existing NBD server. A primary usage of this setup is to - alter the set of features available to the ultimate end client, - without having to change the original server (for example, to - convert between oldstyle and newtyle, or to add TLS support where - the original server lacks it). +nbdkit-split-plugin Concatenate one or more files. -* nbdkit-null-plugin +nbdkit-streaming-plugin A streaming file serving plugin. - A null (bitbucket) plugin. - -* nbdkit-pattern-plugin - - Fixed test pattern. - -* nbdkit-partitioning-plugin - - Create virtual disks from partitions. - -* nbdkit-random-plugin - - Random content plugin for testing. - -* nbdkit-sh-plugin - - Write plugins as shell scripts or executables. - -* nbdkit-split-plugin - - Concatenate one or more files into a single virtual disk. - -* nbdkit-streaming-plugin - - A streaming file serving plugin. - -* nbdkit-zero-plugin - - Zero-length plugin for testing. +nbdkit-zero-plugin Zero-length plugin for testing. %package example-plugins @@ -544,49 +517,27 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains some basic filters for %{name} which have only trivial dependencies. -* nbdkit-blocksize-filter +nbdkit-blocksize-filter Adjust block size of requests sent to plugins. - Adjust block size of requests sent to plugins. +nbdkit-cache-filter Server-side cache. -* nbdkit-cache-filter +nbdkit-cow-filter Copy-on-write overlay for read-only plugins. - Server-side cache. +nbdkit-delay-filter Inject read and write delays. -* nbdkig-cow-filter +nbdkit-error-filter Inject errors. - Copy-on-write overlay for read-only plugins. +nbdkit-fua-filter Modify flush behaviour in plugins. -* nbdkit-delay-filter +nbdkit-log-filter Log all transactions to a file. - Inject read and write delays. +nbdkit-nozero-filter Adjust handling of zero requests by plugins. -* nbdkit-error-filter +nbdkit-offset-filter Serve an offset and range. - Inject errors. +nbdkit-partition-filter Serve a single partition. -* nbdkit-fua-filter - - Modify flush behaviour in plugins. - -* nbdkit-log-filter - - Log all transactions to a file. - -* nbdkit-nozero-filter - - Adjust handling of zero requests by plugins. - -* nbdkit-offset-filter - - Serve an offset and range. - -* nbdkit-partition-filter - - Serve a single partition. - -* nbdkit-truncate-filter - - Truncate, expand, round up or round down a plugin size. +nbdkit-truncate-filter Truncate, expand, round up or round down size. %package devel From d2b33071b54512f99d0a2303adfe691421108e1f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 12 Nov 2018 20:45:26 +0000 Subject: [PATCH 144/683] New stable branch version 1.8.0. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5a3e297..b999a4b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,10 +28,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.7-development +%global source_directory 1.8-stable Name: nbdkit -Version: 1.7.10 +Version: 1.8.0 Release: 1%{?dist} Summary: NBD server @@ -940,6 +940,9 @@ popd %changelog +* Mon Nov 12 2018 Richard W.M. Jones <rjones@redhat.com> - 1.8.0-1 +- New stable branch version 1.8.0. + * Fri Nov 09 2018 Richard W.M. Jones <rjones@redhat.com> - 1.7.10-1 - New upstream version 1.7.10, possibly final before 1.8. diff --git a/sources b/sources index 912aad4..2b622d3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.7.10.tar.gz) = dd173ce88d89b686b56ad57674200fb8e6a9c6408856647abb2c276bb096166336f65609ee4a3e000db88bcd13a10a63d99abfa61dd84f4a0d0a5ac2fa7b45cf -SHA512 (nbdkit-1.7.10.tar.gz.sig) = e9aed3a72f18e6b1c5c7dd624a14c4e62f1784c0fd9eda8e122ef5eeeb70bc45be3b331eb374be57039a9289a15e04162bebe4f97ffe5f1895646e6d9710d746 +SHA512 (nbdkit-1.8.0.tar.gz) = 961af6dad446a2ad3ad1fbd0fae5644ef60e07024b0f79ffe9b29ed04c21d995d2cc515afe7a88954d7bbe0dcf9682306547454facf25dd32e8562e2090d66c9 +SHA512 (nbdkit-1.8.0.tar.gz.sig) = a360ea34609c747784ce79c717aaa2cc7006ea01b3acd23653b8f1d52c40b972e128c582c416b6c07ada0e99773ad3ddcc8b4bd927f7fb66bb036e39b52a1123 From 8eb71289b82a4410b01964ca16aaa5ddce7b6e31 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 14 Nov 2018 15:30:00 +0000 Subject: [PATCH 145/683] New upstream version 1.9.0. New development branch. --- nbdkit.spec | 8 ++++++-- sources | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b999a4b..5f7e16d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,10 +28,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.8-stable +%global source_directory 1.9-development Name: nbdkit -Version: 1.8.0 +Version: 1.9.0 Release: 1%{?dist} Summary: NBD server @@ -940,6 +940,10 @@ popd %changelog +* Wed Nov 14 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.0-1 +- New upstream version 1.9.0. +- New development branch. + * Mon Nov 12 2018 Richard W.M. Jones <rjones@redhat.com> - 1.8.0-1 - New stable branch version 1.8.0. diff --git a/sources b/sources index 2b622d3..e8a563d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.8.0.tar.gz) = 961af6dad446a2ad3ad1fbd0fae5644ef60e07024b0f79ffe9b29ed04c21d995d2cc515afe7a88954d7bbe0dcf9682306547454facf25dd32e8562e2090d66c9 -SHA512 (nbdkit-1.8.0.tar.gz.sig) = a360ea34609c747784ce79c717aaa2cc7006ea01b3acd23653b8f1d52c40b972e128c582c416b6c07ada0e99773ad3ddcc8b4bd927f7fb66bb036e39b52a1123 +SHA512 (nbdkit-1.9.0.tar.gz) = 4ccfc0532fe127d6258adc1bada6a23ec01a4ac2f7e90fce27e89d68ffa0adafad571616d3105d1a17756ba8cc13530433c48d55143522dcc322ec1bbabb5caa +SHA512 (nbdkit-1.9.0.tar.gz.sig) = d5998becbee33f71fd023dc13ba18990951b41b9189fdc34ae736b1fd9db4b8658bed612df72f5610d064c9d4283c1f0525b87b211ad520ee499843e34036cad From 20e4534d4a9b5c62b7c930c705d3ac9fed554597 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 18 Nov 2018 10:35:08 +0000 Subject: [PATCH 146/683] New upstream version 1.9.1. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5f7e16d..ff95513 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.0 +Version: 1.9.1 Release: 1%{?dist} Summary: NBD server @@ -940,6 +940,9 @@ popd %changelog +* Sun Nov 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.1-1 +- New upstream version 1.9.1. + * Wed Nov 14 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.0-1 - New upstream version 1.9.0. - New development branch. diff --git a/sources b/sources index e8a563d..80ba52c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.0.tar.gz) = 4ccfc0532fe127d6258adc1bada6a23ec01a4ac2f7e90fce27e89d68ffa0adafad571616d3105d1a17756ba8cc13530433c48d55143522dcc322ec1bbabb5caa -SHA512 (nbdkit-1.9.0.tar.gz.sig) = d5998becbee33f71fd023dc13ba18990951b41b9189fdc34ae736b1fd9db4b8658bed612df72f5610d064c9d4283c1f0525b87b211ad520ee499843e34036cad +SHA512 (nbdkit-1.9.1.tar.gz) = 7c21d22219c2dd4ace57e5ede3f45b33ffc4de6229c2be42ae30dd94e804f50b6d7734ece586cce36b7c1fbf40f59aa7eed3524fe9a2d3b46d5a3e7d9b6f4612 +SHA512 (nbdkit-1.9.1.tar.gz.sig) = c38e514230359bd8aae78841a4ef60b8bba765c857a4ea5ee6be9c69557a2a26fff015aafce632d08fa809e2b06b9b90d830db2f022a04bb7f8bb332e915487a From c805a3e46e387c03d28cf381c6d3e967bb06add5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 18 Nov 2018 11:55:47 +0000 Subject: [PATCH 147/683] Workaround for RHBZ#1650975. --- nbdkit.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index ff95513..39b2f03 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -677,6 +677,13 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 +# qemu in Fedora Rawhide broken: +# https://bugzilla.redhat.com/show_bug.cgi?id=1650975 +make -C tests test-error +rm tests/test-error +touch tests/test-error +chmod +x tests/test-error + make check -j1 || { cat tests/test-suite.log exit 1 From 6480eb2093c9db0c1f1ba09d89fd09335bb9fe6e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 18 Nov 2018 14:37:46 +0000 Subject: [PATCH 148/683] Fix previous commit. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 39b2f03..fb87756 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -677,12 +677,14 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 +%ifarch %{complete_test_arches} # qemu in Fedora Rawhide broken: # https://bugzilla.redhat.com/show_bug.cgi?id=1650975 make -C tests test-error rm tests/test-error touch tests/test-error chmod +x tests/test-error +%endif make check -j1 || { cat tests/test-suite.log From a92aab6c551225faa610c442da0693f4c23e49ce Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Nov 2018 10:21:57 +0000 Subject: [PATCH 149/683] New upstream version 1.9.2. - Add new filter subpackage: nbdkit-xz-filter. - Deprecate (but do not remove) nbdkit-xz-plugin. --- nbdkit.spec | 28 +++++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fb87756..fe859e8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.1 +Version: 1.9.2 Release: 1%{?dist} Summary: NBD server @@ -505,6 +505,9 @@ Obsoletes: %{name}-plugin-xz <= %{version}-%{release} %description xz-plugin This package is a xz file serving plugin for %{name}. +This is deprecated and will be removed in %{name} 1.12. You should +start to use %{name}-xz-filter instead. + %package basic-filters Summary: Basic filters for %{name} @@ -540,6 +543,17 @@ nbdkit-partition-filter Serve a single partition. nbdkit-truncate-filter Truncate, expand, round up or round down size. +%package xz-filter +Summary: XZ filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description xz-filter +This package is the xz filter for %{name}. + + %package devel Summary: Development files and documentation for %{name} License: BSD @@ -922,6 +936,13 @@ popd %{_mandir}/man1/nbdkit-truncate-filter.1* +%files xz-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-xz-filter.so +%{_mandir}/man1/nbdkit-xz-filter.1* + + %files devel %doc OTHER_PLUGINS README TODO %license LICENSE @@ -949,6 +970,11 @@ popd %changelog +* Thu Nov 22 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.2-1 +- New upstream version 1.9.2. +- Add new filter subpackage: nbdkit-xz-filter. +- Deprecate (but do not remove) nbdkit-xz-plugin. + * Sun Nov 18 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.1-1 - New upstream version 1.9.1. diff --git a/sources b/sources index 80ba52c..3a8a4a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.1.tar.gz) = 7c21d22219c2dd4ace57e5ede3f45b33ffc4de6229c2be42ae30dd94e804f50b6d7734ece586cce36b7c1fbf40f59aa7eed3524fe9a2d3b46d5a3e7d9b6f4612 -SHA512 (nbdkit-1.9.1.tar.gz.sig) = c38e514230359bd8aae78841a4ef60b8bba765c857a4ea5ee6be9c69557a2a26fff015aafce632d08fa809e2b06b9b90d830db2f022a04bb7f8bb332e915487a +SHA512 (nbdkit-1.9.2.tar.gz) = d2fd6eea20734e8ac487c78c958884ea3a836773fa03504860ccafa9cfd020707f2c578ad8de4c7a1f3306666c185e92361c3ba0e5dc50a68291056f7dc1987a +SHA512 (nbdkit-1.9.2.tar.gz.sig) = 31771399be5b2ec089a0f8e7c592e2ee2c15fc4a31ef9aee6050f2ece635e145200449fedffb1226b5f25869a4de1550a2ebb61f764405e01be9fb57e66aeeba From 23b74f0e2579c16149c1e996f6e37c45fdda4b95 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 29 Nov 2018 21:48:52 +0000 Subject: [PATCH 150/683] New upstream version 1.9.3. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fe859e8..3a723a4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.2 +Version: 1.9.3 Release: 1%{?dist} Summary: NBD server @@ -970,6 +970,9 @@ popd %changelog +* Thu Nov 29 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.3-1 +- New upstream version 1.9.3. + * Thu Nov 22 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.2-1 - New upstream version 1.9.2. - Add new filter subpackage: nbdkit-xz-filter. diff --git a/sources b/sources index 3a8a4a1..aa3243a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.2.tar.gz) = d2fd6eea20734e8ac487c78c958884ea3a836773fa03504860ccafa9cfd020707f2c578ad8de4c7a1f3306666c185e92361c3ba0e5dc50a68291056f7dc1987a -SHA512 (nbdkit-1.9.2.tar.gz.sig) = 31771399be5b2ec089a0f8e7c592e2ee2c15fc4a31ef9aee6050f2ece635e145200449fedffb1226b5f25869a4de1550a2ebb61f764405e01be9fb57e66aeeba +SHA512 (nbdkit-1.9.3.tar.gz) = e0e61e62b7d36b47d4819d30ec3c790f4dc78603efd67bec313deac835f495173e54144576f44b540d699da0922a106dcbbb5951f1815258e845a9c94259aa77 +SHA512 (nbdkit-1.9.3.tar.gz.sig) = bb59987e0315b28bf34d831305eabe0364ab7641d973f86d3e08b5d77d0c0284df750d8584fe7a0070adab3e88018a46094face3d2c5b0aae2524af5e2ea8a2e From 2b5a05f3ed28f2892772b9bdff46561145939096 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 4 Dec 2018 10:31:00 +0000 Subject: [PATCH 151/683] New upstream version 1.9.4. Fix low priority security issue with TLS: https://www.redhat.com/archives/libguestfs/2018-December/msg00047.html --- nbdkit.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3a723a4..8eaeba5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.3 +Version: 1.9.4 Release: 1%{?dist} Summary: NBD server @@ -970,6 +970,11 @@ popd %changelog +* Tue Dec 04 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.4-1 +- New upstream version 1.9.4. +- Fix low priority security issue with TLS: + https://www.redhat.com/archives/libguestfs/2018-December/msg00047.html + * Thu Nov 29 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.3-1 - New upstream version 1.9.3. diff --git a/sources b/sources index aa3243a..1d31999 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.3.tar.gz) = e0e61e62b7d36b47d4819d30ec3c790f4dc78603efd67bec313deac835f495173e54144576f44b540d699da0922a106dcbbb5951f1815258e845a9c94259aa77 -SHA512 (nbdkit-1.9.3.tar.gz.sig) = bb59987e0315b28bf34d831305eabe0364ab7641d973f86d3e08b5d77d0c0284df750d8584fe7a0070adab3e88018a46094face3d2c5b0aae2524af5e2ea8a2e +SHA512 (nbdkit-1.9.4.tar.gz) = 63bd34a58a6acabadd5936cd8deee5b7769e375cf954d229572542587e7fea6b0a986611725c95cf80daed723a0fbe4101709bcc43a09435d5f494a1685ca64f +SHA512 (nbdkit-1.9.4.tar.gz.sig) = 5b265f8f5bb3fa32d9c42b74f27fe874c8531118f98a03e53020f62a61b5291cb3033cd1574407c4f23fda793e19cf55ccd072e718b8012cdf25cdd62cfe4f00 From edfaaebe11a75b927e533a750e6b3a95b2e4771c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 4 Dec 2018 10:47:52 +0000 Subject: [PATCH 152/683] New man page nbdkit-loop(1). --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 8eaeba5..8db95b2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -737,6 +737,7 @@ popd %dir %{_libdir}/%{name}/filters %{_mandir}/man1/nbdkit.1* %{_mandir}/man1/nbdkit-captive.1* +%{_mandir}/man1/nbdkit-loop.1* %{_mandir}/man1/nbdkit-probing.1* %{_mandir}/man1/nbdkit-protocol.1* %{_mandir}/man1/nbdkit-service.1* @@ -974,6 +975,7 @@ popd - New upstream version 1.9.4. - Fix low priority security issue with TLS: https://www.redhat.com/archives/libguestfs/2018-December/msg00047.html +- New man page nbdkit-loop(1). * Thu Nov 29 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.3-1 - New upstream version 1.9.3. From 381ed6af20f68a001323bab965a4f745fa4f9aa6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 10 Dec 2018 16:41:41 +0000 Subject: [PATCH 153/683] New upstream version 1.9.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8db95b2..d2e6bdd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.4 +Version: 1.9.5 Release: 1%{?dist} Summary: NBD server @@ -971,6 +971,9 @@ popd %changelog +* Mon Dec 10 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.5-1 +- New upstream version 1.9.5. + * Tue Dec 04 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.4-1 - New upstream version 1.9.4. - Fix low priority security issue with TLS: diff --git a/sources b/sources index 1d31999..ab99db4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.4.tar.gz) = 63bd34a58a6acabadd5936cd8deee5b7769e375cf954d229572542587e7fea6b0a986611725c95cf80daed723a0fbe4101709bcc43a09435d5f494a1685ca64f -SHA512 (nbdkit-1.9.4.tar.gz.sig) = 5b265f8f5bb3fa32d9c42b74f27fe874c8531118f98a03e53020f62a61b5291cb3033cd1574407c4f23fda793e19cf55ccd072e718b8012cdf25cdd62cfe4f00 +SHA512 (nbdkit-1.9.5.tar.gz) = 4f760fc2b1069f30c1960a5a3f6571697eabe1464421d1eb4fb5dc10e4235bff1eb43150e4a5c69c5215fbf23ff5e81287b12a2034e361e291e8ba4d81213c7f +SHA512 (nbdkit-1.9.5.tar.gz.sig) = d5ff947c8cd1d66cdfdddca28dd79acb0a53de050762a03f26de0fb6f9ead79554de4426cacb6834c99c4f9b6a23f5e68701088ba3b558d1ef5954d8f3cbc506 From 405f844a326204edc11db8bd739717d6f4f07c82 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Dec 2018 11:12:52 +0000 Subject: [PATCH 154/683] New upstream version 1.9.6. Add nbdkit-full-plugin. --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d2e6bdd..7f71211 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.5 +Version: 1.9.6 Release: 1%{?dist} Summary: NBD server @@ -171,6 +171,8 @@ nbdkit-file-plugin The normal file plugin for serving files. nbdkit-floppy-plugin Create a virtual floppy disk from a directory. +nbdkit-full-plugin A virtual disk that returns ENOSPC errors. + nbdkit-memory-plugin A virtual memory plugin. nbdkit-nbd-plugin An NBD forwarding plugin. @@ -750,6 +752,7 @@ popd %{_libdir}/%{name}/plugins/nbdkit-data-plugin.so %{_libdir}/%{name}/plugins/nbdkit-file-plugin.so %{_libdir}/%{name}/plugins/nbdkit-floppy-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-full-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so @@ -763,6 +766,7 @@ popd %{_mandir}/man1/nbdkit-data-plugin.1* %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-floppy-plugin.1* +%{_mandir}/man1/nbdkit-full-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* @@ -971,6 +975,10 @@ popd %changelog +* Thu Dec 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.6-1 +- New upstream version 1.9.6. +- Add nbdkit-full-plugin. + * Mon Dec 10 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.5-1 - New upstream version 1.9.5. diff --git a/sources b/sources index ab99db4..e6260fb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.5.tar.gz) = 4f760fc2b1069f30c1960a5a3f6571697eabe1464421d1eb4fb5dc10e4235bff1eb43150e4a5c69c5215fbf23ff5e81287b12a2034e361e291e8ba4d81213c7f -SHA512 (nbdkit-1.9.5.tar.gz.sig) = d5ff947c8cd1d66cdfdddca28dd79acb0a53de050762a03f26de0fb6f9ead79554de4426cacb6834c99c4f9b6a23f5e68701088ba3b558d1ef5954d8f3cbc506 +SHA512 (nbdkit-1.9.6.tar.gz) = d3ba7e3991f51a548b721223c1234c63bd2c847099474e7496f9f248d28b530156cfaaa0022fac4abe8111e9ad7bdaef0f2dcdb08b3525645a0ff396d68176d9 +SHA512 (nbdkit-1.9.6.tar.gz.sig) = 433d721bd44841d6c02434c1c3df543f0f66d0ea5c561a0fa09364963942998d6854941487c990102a735b29a3b15333c6500921c5919c6a0db96d1d091afc20 From d9619d91d2791abe87490b2da661043d9dab593e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 15 Dec 2018 20:51:28 +0000 Subject: [PATCH 155/683] New upstream version 1.9.7. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7f71211..0b27895 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.6 +Version: 1.9.7 Release: 1%{?dist} Summary: NBD server @@ -975,6 +975,9 @@ popd %changelog +* Sat Dec 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.7-1 +- New upstream version 1.9.7. + * Thu Dec 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.6-1 - New upstream version 1.9.6. - Add nbdkit-full-plugin. diff --git a/sources b/sources index e6260fb..9d010a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.6.tar.gz) = d3ba7e3991f51a548b721223c1234c63bd2c847099474e7496f9f248d28b530156cfaaa0022fac4abe8111e9ad7bdaef0f2dcdb08b3525645a0ff396d68176d9 -SHA512 (nbdkit-1.9.6.tar.gz.sig) = 433d721bd44841d6c02434c1c3df543f0f66d0ea5c561a0fa09364963942998d6854941487c990102a735b29a3b15333c6500921c5919c6a0db96d1d091afc20 +SHA512 (nbdkit-1.9.7.tar.gz) = 24c5ce51f6ec4e648c2fa6ba80769d2e82c46f5f7fb2c65646509e70d9bbd8f3d5d7c20b73a7344b93f5e8a226f8e1d13cd586d84560638704c6faba60d2c741 +SHA512 (nbdkit-1.9.7.tar.gz.sig) = a50973ea34a29df9d4d8081c66bc09d18946d50186d586ec9bd04f4be6527665f9a425bdc0dacb53145f6db0ea36eff1ed92583a75be5fc21b85aa1a006f3c04 From b1cfd0095729160d767acdb9fe2fd19d8f2c7e6c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 15 Dec 2018 21:46:49 +0000 Subject: [PATCH 156/683] Remove some old Obsoletes rules for Fedora 30. NB: Do not backport this to older branches! --- nbdkit.spec | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0b27895..75baa29 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -155,11 +155,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove these in Fedora 30. -Obsoletes: %{name}-plugin-file < 1.1.19-1 -Obsoletes: %{name}-plugin-nbd < 1.1.19-1 -Obsoletes: %{name}-plugin-streaming < 1.1.19-1 - %description basic-plugins This package contains some basic plugins for %{name} which have only @@ -200,9 +195,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 30. -Obsoletes: %{name}-plugin-examples < 1.1.19-1 - %description example-plugins This package contains example plugins for %{name}. @@ -397,10 +389,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-python-plugin-common = %{version}-%{release} -# For upgrade path, remove this in Fedora 30. -Provides: %{name}-plugin-python = %{version}-%{release} -Obsoletes: %{name}-plugin-python <= %{version}-%{release} - # For upgrade path, remove this in Fedora 31. Provides: %{name}-plugin-python2 = %{version}-%{release} Obsoletes: %{name}-plugin-python2 <= %{version}-%{release} From c6c0e764743facd9d2def884d591a87e58db8861 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 17 Dec 2018 21:28:32 +0000 Subject: [PATCH 157/683] Remove misguided LDFLAGS hack which removed server hardening. https://bugzilla.redhat.com/show_bug.cgi?id=1624149#c6 --- nbdkit.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 75baa29..3d4c923 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.9.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -589,10 +589,6 @@ autoreconf -i %build -# Force immediate binding for hardened build for plugins. -# https://bugzilla.redhat.com/show_bug.cgi?id=977446#c13 -export LDFLAGS="$LDFLAGS -Wl,-z,now" - # Build for Python 3 in a separate subdirectory. Upstream does not # support srcdir!=builddir so copy the whole source. copy="$(mktemp -d)" @@ -963,6 +959,10 @@ popd %changelog +* Mon Dec 17 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.7-2 +- Remove misguided LDFLAGS hack which removed server hardening. + https://bugzilla.redhat.com/show_bug.cgi?id=1624149#c6 + * Sat Dec 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.7-1 - New upstream version 1.9.7. From ec5016310ac4211b0cacfd390c227eb217c4945f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Jan 2019 10:21:03 +0000 Subject: [PATCH 158/683] New upstream version 1.9.8. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3d4c923..37098f2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.7 -Release: 2%{?dist} +Version: 1.9.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Tue Jan 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.8-1 +- New upstream version 1.9.8. + * Mon Dec 17 2018 Richard W.M. Jones <rjones@redhat.com> - 1.9.7-2 - Remove misguided LDFLAGS hack which removed server hardening. https://bugzilla.redhat.com/show_bug.cgi?id=1624149#c6 diff --git a/sources b/sources index 9d010a1..25f87dd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.7.tar.gz) = 24c5ce51f6ec4e648c2fa6ba80769d2e82c46f5f7fb2c65646509e70d9bbd8f3d5d7c20b73a7344b93f5e8a226f8e1d13cd586d84560638704c6faba60d2c741 -SHA512 (nbdkit-1.9.7.tar.gz.sig) = a50973ea34a29df9d4d8081c66bc09d18946d50186d586ec9bd04f4be6527665f9a425bdc0dacb53145f6db0ea36eff1ed92583a75be5fc21b85aa1a006f3c04 +SHA512 (nbdkit-1.9.8.tar.gz) = b1331a651a2b83ced47d284a3b835f42409a93e76aaf37eea244f24a7a9b85dec4c0088851cfb8cece234ed1f7065de6e7933645cdebb84cf1f3a70e95e8d59e +SHA512 (nbdkit-1.9.8.tar.gz.sig) = 64c49d6d8f15688d552996199e8397dfbc44cda5de1a634e6a65f269b7cfec6634a9c2167b8c70318c5dc0d20769155042b71b4a0a33b9f62931214e8ea4da10 From a7eb1efbf3219396b677e9fee67a308557681c50 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 7 Jan 2019 09:04:11 +0000 Subject: [PATCH 159/683] New upstream version 1.9.9. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 37098f2..533d8f3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.8 +Version: 1.9.9 Release: 1%{?dist} Summary: NBD server @@ -959,6 +959,9 @@ popd %changelog +* Mon Jan 7 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.9-1 +- New upstream version 1.9.9. + * Tue Jan 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.8-1 - New upstream version 1.9.8. diff --git a/sources b/sources index 25f87dd..65d047f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.8.tar.gz) = b1331a651a2b83ced47d284a3b835f42409a93e76aaf37eea244f24a7a9b85dec4c0088851cfb8cece234ed1f7065de6e7933645cdebb84cf1f3a70e95e8d59e -SHA512 (nbdkit-1.9.8.tar.gz.sig) = 64c49d6d8f15688d552996199e8397dfbc44cda5de1a634e6a65f269b7cfec6634a9c2167b8c70318c5dc0d20769155042b71b4a0a33b9f62931214e8ea4da10 +SHA512 (nbdkit-1.9.9.tar.gz) = 96d486d5646d59ace59dca2428adfdb957a7b6af232ba6e363cb7f52b9a77febc00e10bde95f13e829b04bd1d344234c9ed49df4def1ac80497b08f7d5bc92a7 +SHA512 (nbdkit-1.9.9.tar.gz.sig) = 23e7869c87518756b6d4794629c7291dbc98739aeef7c8e2ed103f65fae7098be69d462ba207c89de232a3e0f094ff66e0d560f173ed7bae85c0926bcd3c2c84 From 4659558694a6e2eab41b76149fff4f7bd136ad74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org> Date: Mon, 14 Jan 2019 19:09:48 +0100 Subject: [PATCH 160/683] Rebuilt for libcrypt.so.2 (#1666033) --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 533d8f3..36071a9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.9.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 1.9.9-2 +- Rebuilt for libcrypt.so.2 (#1666033) + * Mon Jan 7 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.9-1 - New upstream version 1.9.9. From 2dea7e6c91284a41bf10061a837a92a009918fb1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 15 Jan 2019 23:32:19 +0000 Subject: [PATCH 161/683] New upstream version 1.9.10. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 36071a9..f59fa8c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.9-development Name: nbdkit -Version: 1.9.9 -Release: 2%{?dist} +Version: 1.9.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Tue Jan 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.10-1 +- New upstream version 1.9.10. + * Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 1.9.9-2 - Rebuilt for libcrypt.so.2 (#1666033) diff --git a/sources b/sources index 65d047f..f084ba8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.9.tar.gz) = 96d486d5646d59ace59dca2428adfdb957a7b6af232ba6e363cb7f52b9a77febc00e10bde95f13e829b04bd1d344234c9ed49df4def1ac80497b08f7d5bc92a7 -SHA512 (nbdkit-1.9.9.tar.gz.sig) = 23e7869c87518756b6d4794629c7291dbc98739aeef7c8e2ed103f65fae7098be69d462ba207c89de232a3e0f094ff66e0d560f173ed7bae85c0926bcd3c2c84 +SHA512 (nbdkit-1.9.10.tar.gz) = 32b7056312a84ae54de8550a8766bf5815b601eb6210859fbfa00045d7c7276a30c29f503b9897852c5dff75608666b0038711beedb6146ef03bd340dcf89470 +SHA512 (nbdkit-1.9.10.tar.gz.sig) = 385cf477ec85d5e08bb03d5367d8b5dcbad0467790faffac17357d31a147ed724d41d39d135089ce5b371bcf7a97419446c68820ae9b5d5092ee0edf3403ce3a From 777dcf1a9663f5f53e3eb6224c87049d19b0effd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 18 Jan 2019 15:35:18 +0000 Subject: [PATCH 162/683] New upstream version 1.10.0. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f59fa8c..b9cb85b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,10 +28,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.9-development +%global source_directory 1.10-stable Name: nbdkit -Version: 1.9.10 +Version: 1.10.0 Release: 1%{?dist} Summary: NBD server @@ -959,6 +959,9 @@ popd %changelog +* Fri Jan 18 2019 Richard W.M. Jones <rjones@redhat.com> - 1.10.0-1 +- New upstream version 1.10.0. + * Tue Jan 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.9.10-1 - New upstream version 1.9.10. diff --git a/sources b/sources index f084ba8..57cc36a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.9.10.tar.gz) = 32b7056312a84ae54de8550a8766bf5815b601eb6210859fbfa00045d7c7276a30c29f503b9897852c5dff75608666b0038711beedb6146ef03bd340dcf89470 -SHA512 (nbdkit-1.9.10.tar.gz.sig) = 385cf477ec85d5e08bb03d5367d8b5dcbad0467790faffac17357d31a147ed724d41d39d135089ce5b371bcf7a97419446c68820ae9b5d5092ee0edf3403ce3a +SHA512 (nbdkit-1.10.0.tar.gz) = b07bb88f61ffcd97da1a2eac3808808c44916a19ab8a2566a80b60514dc7a33f55e147163a872ec34586eb789b67dbf7113177a20c26c9ad114674abb952e50f +SHA512 (nbdkit-1.10.0.tar.gz.sig) = 37eefdd6fc16084e01fd6c696530b49aadbf0b9aa3cf96e140d748b98aba053d464af50ac2e8bcff23e88961f1e6f82bd8b46a8b026cdb719cbe8ecc0e2189b5 From 2df1f9e040b43dabed3497e45e870a057e28f825 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Mon, 21 Jan 2019 23:04:35 +0900 Subject: [PATCH 163/683] F-30: rebuild against ruby26 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b9cb85b..37d3085 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.10.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Mon Jan 21 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.10.0-2 +- F-30: rebuild against ruby26 + * Fri Jan 18 2019 Richard W.M. Jones <rjones@redhat.com> - 1.10.0-1 - New upstream version 1.10.0. From f38df010177736c07968e20cfdbaa7a1d94f4e12 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Jan 2019 23:09:25 +0000 Subject: [PATCH 164/683] New upstream version 1.11.1. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 37d3085..1233769 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,11 +28,11 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.10-stable +%global source_directory 1.11-development Name: nbdkit -Version: 1.10.0 -Release: 2%{?dist} +Version: 1.11.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Tue Jan 22 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.1-1 +- New upstream version 1.11.1. + * Mon Jan 21 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.10.0-2 - F-30: rebuild against ruby26 diff --git a/sources b/sources index 57cc36a..7007493 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.10.0.tar.gz) = b07bb88f61ffcd97da1a2eac3808808c44916a19ab8a2566a80b60514dc7a33f55e147163a872ec34586eb789b67dbf7113177a20c26c9ad114674abb952e50f -SHA512 (nbdkit-1.10.0.tar.gz.sig) = 37eefdd6fc16084e01fd6c696530b49aadbf0b9aa3cf96e140d748b98aba053d464af50ac2e8bcff23e88961f1e6f82bd8b46a8b026cdb719cbe8ecc0e2189b5 +SHA512 (nbdkit-1.11.1.tar.gz) = 459fa9c9a86cf0353bd5ae0417b2258de770179c0808ecda72c0099feb888919876f43eafa2393d30f392d77b14b80324e0f8e441f2992d8353eaefb29532421 +SHA512 (nbdkit-1.11.1.tar.gz.sig) = fe3d602a344a391afea2796d15c0fb1e9108a152c17c03734b8914d7618ddb684abf2f3b3f865dc730c5dd82ca103a97358e2ea38d1b4a5c75038864c9952adb From 0fe01986080a2e5c8654ee7656603e50efb6dcaa Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Jan 2019 23:25:37 +0000 Subject: [PATCH 165/683] Fix test. --- ...partition2.sh-depend-on-disk-file-be.patch | 38 +++++++++++++++++++ nbdkit.spec | 2 + 2 files changed, 40 insertions(+) create mode 100644 0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch diff --git a/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch b/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch new file mode 100644 index 0000000..04e8ca5 --- /dev/null +++ b/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch @@ -0,0 +1,38 @@ +From 1a0c80cbe9f561fd6a8801c3bfda1783ce40080f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 22 Jan 2019 23:22:55 +0000 +Subject: [PATCH] =?UTF-8?q?tests:=20Make=20test-partition2.sh=20depend=20o?= + =?UTF-8?q?n=20=E2=80=98disk=E2=80=99=20file=20being=20created.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This requires guestfish, so make the test depend on that (although it +does not really need it). + +Fixes commit bf41e6b04b683570e8b059527ef604add2d42705. +--- + tests/Makefile.am | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 5e8b53c..859b6ed 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -798,9 +798,10 @@ test_offset_LDADD = libtest.la $(LIBGUESTFS_LIBS) + TESTS += test-offset2.sh + + # partition filter test. +-TESTS += \ +- test-partition1.sh \ +- test-partition2.sh ++TESTS += test-partition1.sh ++if HAVE_GUESTFISH ++TESTS += test-partition2.sh ++endif + + # truncate filter tests. + TESTS += \ +-- +2.20.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 1233769..df810bf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,6 +45,8 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +Patch1: 0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 459c59ab31faca06727430bef009d5b651148f0b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 23 Jan 2019 09:28:56 +0000 Subject: [PATCH 166/683] Invoke autotools after applying patch. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index df810bf..0bd349f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,7 +25,7 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.11-development From 7b3c6f23867230856cf5b6ad23f3346416c8a027 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 23 Jan 2019 09:39:13 +0000 Subject: [PATCH 167/683] Add second upstream patch to fix the tests. --- ...partition2.sh-depend-on-disk-file-be.patch | 4 +-- 0002-tests-Name-endif-HAVE_GUESTFISH.patch | 31 +++++++++++++++++++ nbdkit.spec | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 0002-tests-Name-endif-HAVE_GUESTFISH.patch diff --git a/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch b/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch index 04e8ca5..6cc3c50 100644 --- a/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch +++ b/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch @@ -1,8 +1,8 @@ From 1a0c80cbe9f561fd6a8801c3bfda1783ce40080f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Jan 2019 23:22:55 +0000 -Subject: [PATCH] =?UTF-8?q?tests:=20Make=20test-partition2.sh=20depend=20o?= - =?UTF-8?q?n=20=E2=80=98disk=E2=80=99=20file=20being=20created.?= +Subject: [PATCH 1/2] =?UTF-8?q?tests:=20Make=20test-partition2.sh=20depend?= + =?UTF-8?q?=20on=20=E2=80=98disk=E2=80=99=20file=20being=20created.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/0002-tests-Name-endif-HAVE_GUESTFISH.patch b/0002-tests-Name-endif-HAVE_GUESTFISH.patch new file mode 100644 index 0000000..4b25d97 --- /dev/null +++ b/0002-tests-Name-endif-HAVE_GUESTFISH.patch @@ -0,0 +1,31 @@ +From cfd884c1ad379a5127fca72d2305ae3373bcb989 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 23 Jan 2019 09:36:44 +0000 +Subject: [PATCH 2/2] tests: Name endif HAVE_GUESTFISH. + +The Fedora build removes if HAVE_GUESTFISH / endif HAVE_GUESTFISH on +some architectures, but it does this by matching the reminder comment +on the endif. If this is missing it gets confused. + +Fixes commit 1a0c80cbe9f561fd6a8801c3bfda1783ce40080f +and commit bf41e6b04b683570e8b059527ef604add2d42705. +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 859b6ed..948f14b 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -801,7 +801,7 @@ TESTS += test-offset2.sh + TESTS += test-partition1.sh + if HAVE_GUESTFISH + TESTS += test-partition2.sh +-endif ++endif HAVE_GUESTFISH + + # truncate filter tests. + TESTS += \ +-- +2.20.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 0bd349f..7ac2162 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,6 +46,7 @@ Source2: libguestfs.keyring %endif Patch1: 0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch +Patch2: 0002-tests-Name-endif-HAVE_GUESTFISH.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From fcff8d2bb2481c2ad8a652935af2039b14597ea0 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Thu, 24 Jan 2019 13:27:38 +0900 Subject: [PATCH 168/683] F-30: rebuild again against ruby26 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7ac2162..c0e199c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.11.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -962,6 +962,9 @@ popd %changelog +* Thu Jan 24 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.11.1-2 +- F-30: rebuild again against ruby26 + * Tue Jan 22 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.1-1 - New upstream version 1.11.1. From e9f944b4e72072607aa9ff7bd7ec284f2c2cb5d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 24 Jan 2019 11:23:32 +0000 Subject: [PATCH 169/683] New upstream version 1.11.2. Drop patches included in upstream tarball. --- ...partition2.sh-depend-on-disk-file-be.patch | 38 ------------------- 0002-tests-Name-endif-HAVE_GUESTFISH.patch | 31 --------------- nbdkit.spec | 13 ++++--- 3 files changed, 7 insertions(+), 75 deletions(-) delete mode 100644 0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch delete mode 100644 0002-tests-Name-endif-HAVE_GUESTFISH.patch diff --git a/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch b/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch deleted file mode 100644 index 6cc3c50..0000000 --- a/0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1a0c80cbe9f561fd6a8801c3bfda1783ce40080f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 22 Jan 2019 23:22:55 +0000 -Subject: [PATCH 1/2] =?UTF-8?q?tests:=20Make=20test-partition2.sh=20depend?= - =?UTF-8?q?=20on=20=E2=80=98disk=E2=80=99=20file=20being=20created.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This requires guestfish, so make the test depend on that (although it -does not really need it). - -Fixes commit bf41e6b04b683570e8b059527ef604add2d42705. ---- - tests/Makefile.am | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 5e8b53c..859b6ed 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -798,9 +798,10 @@ test_offset_LDADD = libtest.la $(LIBGUESTFS_LIBS) - TESTS += test-offset2.sh - - # partition filter test. --TESTS += \ -- test-partition1.sh \ -- test-partition2.sh -+TESTS += test-partition1.sh -+if HAVE_GUESTFISH -+TESTS += test-partition2.sh -+endif - - # truncate filter tests. - TESTS += \ --- -2.20.1 - diff --git a/0002-tests-Name-endif-HAVE_GUESTFISH.patch b/0002-tests-Name-endif-HAVE_GUESTFISH.patch deleted file mode 100644 index 4b25d97..0000000 --- a/0002-tests-Name-endif-HAVE_GUESTFISH.patch +++ /dev/null @@ -1,31 +0,0 @@ -From cfd884c1ad379a5127fca72d2305ae3373bcb989 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 23 Jan 2019 09:36:44 +0000 -Subject: [PATCH 2/2] tests: Name endif HAVE_GUESTFISH. - -The Fedora build removes if HAVE_GUESTFISH / endif HAVE_GUESTFISH on -some architectures, but it does this by matching the reminder comment -on the endif. If this is missing it gets confused. - -Fixes commit 1a0c80cbe9f561fd6a8801c3bfda1783ce40080f -and commit bf41e6b04b683570e8b059527ef604add2d42705. ---- - tests/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 859b6ed..948f14b 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -801,7 +801,7 @@ TESTS += test-offset2.sh - TESTS += test-partition1.sh - if HAVE_GUESTFISH - TESTS += test-partition2.sh --endif -+endif HAVE_GUESTFISH - - # truncate filter tests. - TESTS += \ --- -2.20.1 - diff --git a/nbdkit.spec b/nbdkit.spec index c0e199c..01a82cb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,14 +25,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.11-development Name: nbdkit -Version: 1.11.1 -Release: 2%{?dist} +Version: 1.11.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -45,9 +45,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -Patch1: 0001-tests-Make-test-partition2.sh-depend-on-disk-file-be.patch -Patch2: 0002-tests-Name-endif-HAVE_GUESTFISH.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -962,6 +959,10 @@ popd %changelog +* Thu Jan 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.2-1 +- New upstream version 1.11.2. +- Drop patches included in upstream tarball. + * Thu Jan 24 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.11.1-2 - F-30: rebuild again against ruby26 From badadff8d29d44449687650533fba522cf532ef1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 24 Jan 2019 11:27:35 +0000 Subject: [PATCH 170/683] Forgot to upload sources in previous commit. --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 7007493..bc21a8c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.1.tar.gz) = 459fa9c9a86cf0353bd5ae0417b2258de770179c0808ecda72c0099feb888919876f43eafa2393d30f392d77b14b80324e0f8e441f2992d8353eaefb29532421 -SHA512 (nbdkit-1.11.1.tar.gz.sig) = fe3d602a344a391afea2796d15c0fb1e9108a152c17c03734b8914d7618ddb684abf2f3b3f865dc730c5dd82ca103a97358e2ea38d1b4a5c75038864c9952adb +SHA512 (nbdkit-1.11.2.tar.gz) = ac6cac00eee15d9b90ae9dc391bf1b2ff276415cf226cf9e7f3e4f3793ba72ce9316f97a00157c55503f609ce8b3cee7db10069b8a66bf875f9998eaa6678bfa +SHA512 (nbdkit-1.11.2.tar.gz.sig) = 22563daee96fbf60020533528b69a758244d84f46084f4a536a81aa2b8e237dd68513872b4af687f1fa3e92459b863403384f46c330889b17a3ae4686a9645db From 2e23f9392f1bdbc88fdc946c48b0a14304edd3f0 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Fri, 25 Jan 2019 07:57:00 +0900 Subject: [PATCH 171/683] F-30: rebuild against ruby26 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 01a82cb..8678e39 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.11.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Thu Jan 24 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.11.2-2 +- F-30: rebuild against ruby26 + * Thu Jan 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.2-1 - New upstream version 1.11.2. - Drop patches included in upstream tarball. From 83ede3f5fb30f1198e6e297759123ee14fca8f47 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 28 Jan 2019 14:21:50 +0000 Subject: [PATCH 172/683] New upstream version 1.11.3. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8678e39..fad570f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.2 -Release: 2%{?dist} +Version: 1.11.3 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Mon Jan 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.3-1 +- New upstream version 1.11.3. + * Thu Jan 24 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.11.2-2 - F-30: rebuild against ruby26 diff --git a/sources b/sources index bc21a8c..d09b8fc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.2.tar.gz) = ac6cac00eee15d9b90ae9dc391bf1b2ff276415cf226cf9e7f3e4f3793ba72ce9316f97a00157c55503f609ce8b3cee7db10069b8a66bf875f9998eaa6678bfa -SHA512 (nbdkit-1.11.2.tar.gz.sig) = 22563daee96fbf60020533528b69a758244d84f46084f4a536a81aa2b8e237dd68513872b4af687f1fa3e92459b863403384f46c330889b17a3ae4686a9645db +SHA512 (nbdkit-1.11.3.tar.gz) = f0d5a15858a7aec5fd6d33dac8380a93d6c6ec09058fb9c0554dc971340b459ca75763be6aec543616f787ec7937d6316764b1cfa6ae0162736cd239f7d66bff +SHA512 (nbdkit-1.11.3.tar.gz.sig) = 742e5006bcb25cf0e2518aaf24a49c32b0c1cc87d1d3f1a762bae9515eef4295fb97b774f647a183018e99a70f4c8b291cf9f19b458f38569adc65a0faa7c831 From e4aebce94f1368cf1eb3be3818b892ac83a5bb6b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 30 Jan 2019 19:56:20 +0000 Subject: [PATCH 173/683] New upstream version 1.11.4. --- nbdkit.spec | 5 ++++- sources | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fad570f..2dd83b7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.3 +Version: 1.11.4 Release: 1%{?dist} Summary: NBD server @@ -959,6 +959,9 @@ popd %changelog +* Wed Jan 30 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.4-1 +- New upstream version 1.11.4. + * Mon Jan 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.3-1 - New upstream version 1.11.3. diff --git a/sources b/sources index d09b8fc..3005a79 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (nbdkit-1.11.3.tar.gz) = f0d5a15858a7aec5fd6d33dac8380a93d6c6ec09058fb9c0554dc971340b459ca75763be6aec543616f787ec7937d6316764b1cfa6ae0162736cd239f7d66bff -SHA512 (nbdkit-1.11.3.tar.gz.sig) = 742e5006bcb25cf0e2518aaf24a49c32b0c1cc87d1d3f1a762bae9515eef4295fb97b774f647a183018e99a70f4c8b291cf9f19b458f38569adc65a0faa7c831 +SHA512 (nbdkit-1.11.4.tar.gz) = 8bc8d0f70580eb89ec39c5db53af03e1bfe09003b5f95c279780e7478143da63cdc7890b35864035aae24e23f818f7b826715d244c1252b05d7eb7865cdf92fb From 108cffaa33d10a65c59ffd8246629e0fc8f6a970 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 30 Jan 2019 19:58:50 +0000 Subject: [PATCH 174/683] Remember to add signature. --- sources | 1 + 1 file changed, 1 insertion(+) diff --git a/sources b/sources index 3005a79..89778a3 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (nbdkit-1.11.4.tar.gz) = 8bc8d0f70580eb89ec39c5db53af03e1bfe09003b5f95c279780e7478143da63cdc7890b35864035aae24e23f818f7b826715d244c1252b05d7eb7865cdf92fb +SHA512 (nbdkit-1.11.4.tar.gz.sig) = ff3d9092eca797dc298b5e5deb9d7a7992e8e88177e7510f7085047dadd04fe43fc297c7010fcda343aa1bd826abf57df5aaa71c0db88543207bdc4635b542b9 From b2bfbcbddb19c93af626c63472b11fb343ccabe1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Fri, 1 Feb 2019 12:03:06 +0000 Subject: [PATCH 175/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2dd83b7..8fadbfc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.11.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Jan 30 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.4-1 - New upstream version 1.11.4. From 8d370f099f0bf450f87dc2ad3fa6bc9b1b9dd810 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 5 Feb 2019 16:06:01 +0000 Subject: [PATCH 176/683] New upstream version 1.11.5. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8fadbfc..4c4ed6c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,8 +31,8 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.4 -Release: 2%{?dist} +Version: 1.11.5 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -959,6 +959,9 @@ popd %changelog +* Tue Feb 05 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.5-1 +- New upstream version 1.11.5. + * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index 89778a3..74aca9c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.4.tar.gz) = 8bc8d0f70580eb89ec39c5db53af03e1bfe09003b5f95c279780e7478143da63cdc7890b35864035aae24e23f818f7b826715d244c1252b05d7eb7865cdf92fb -SHA512 (nbdkit-1.11.4.tar.gz.sig) = ff3d9092eca797dc298b5e5deb9d7a7992e8e88177e7510f7085047dadd04fe43fc297c7010fcda343aa1bd826abf57df5aaa71c0db88543207bdc4635b542b9 +SHA512 (nbdkit-1.11.5.tar.gz) = 378e5c199344094d6018ab069eef9d6a8c654bc4256b5ca5ba7f196458a795854c84202d22d70ebb4d740e1b87a5923005d48045f812f479e0bf1a4330170796 +SHA512 (nbdkit-1.11.5.tar.gz.sig) = 3e9366cf2eca2c90a82791a62164f5c66ce5c99875351a551f052230c25d8155bb2e833123721c2bfa3199eef9f1258e37ff74baa5a73ea00af101926be3612e From 3d8e2fc142a2f049e87805e464f26aa4bca8b7d3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 1 Mar 2019 18:49:42 +0000 Subject: [PATCH 177/683] New upstream version 1.11.6. - Add linuxdisk plugin. - Remove rust plugin if compiled. --- nbdkit.spec | 33 +++++++++++++++++++++++++++++++-- sources | 4 ++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4c4ed6c..9b9608b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,7 +31,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.5 +Version: 1.11.6 Release: 1%{?dist} Summary: NBD server @@ -72,7 +72,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel -BuildRequires: e2fsprogs-devel +BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage BuildRequires: bash-completion BuildRequires: perl-devel @@ -297,6 +297,19 @@ virDomainBlockPeek API. %endif +%package linuxdisk-plugin +Summary: Virtual Linux disk plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +# for mke2fs +Requires: e2fsprogs + + +%description linuxdisk-plugin +This package is a virtual Linux disk plugin for %{name}. + + %package lua-plugin Summary: Lua plugin for %{name} License: BSD @@ -668,6 +681,10 @@ rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-vddk-plugin.1* %endif +# If cargo happens to be installed on the machine then the +# rust plugin is built. Delete it if this happens. +rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* + %check # Workaround for broken libvirt (RHBZ#1138604). @@ -817,6 +834,13 @@ popd %endif +%files linuxdisk-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-linuxdisk-plugin.so +%{_mandir}/man1/nbdkit-linuxdisk-plugin.1* + + %files lua-plugin %doc README %license LICENSE @@ -959,6 +983,11 @@ popd %changelog +* Fri Mar 01 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.6-1 +- New upstream version 1.11.6. +- Add linuxdisk plugin. +- Remove rust plugin if compiled. + * Tue Feb 05 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.5-1 - New upstream version 1.11.5. diff --git a/sources b/sources index 74aca9c..914e80c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.5.tar.gz) = 378e5c199344094d6018ab069eef9d6a8c654bc4256b5ca5ba7f196458a795854c84202d22d70ebb4d740e1b87a5923005d48045f812f479e0bf1a4330170796 -SHA512 (nbdkit-1.11.5.tar.gz.sig) = 3e9366cf2eca2c90a82791a62164f5c66ce5c99875351a551f052230c25d8155bb2e833123721c2bfa3199eef9f1258e37ff74baa5a73ea00af101926be3612e +SHA512 (nbdkit-1.11.6.tar.gz) = 2262533796a13f3097f2e892ef06122505810f8f7fb7b19d6e9b0aed0b612228181ea31048f6f818195b7cded4669948ca3ef74fca3e245661eee4cccfeb5276 +SHA512 (nbdkit-1.11.6.tar.gz.sig) = ec33f8cc713144309a9f0a517a278122f58daac7c43051c4d6f8fc73eac2f8aa12cc29f52e5886650e5c51c603bde0a8d3eab241d986845921144568f550c65f From df26f1b46f9b56746deaff2e967b6c60d2f6a43b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 2 Mar 2019 08:32:49 +0000 Subject: [PATCH 178/683] New upstream version 1.11.6. Add linuxdisk plugin. Remove rust plugin if compiled. --- ...-include-directory-to-get-nbdkit-plu.patch | 34 +++++++++++++++++++ nbdkit.spec | 5 ++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch diff --git a/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch b/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch new file mode 100644 index 0000000..dcf7b8a --- /dev/null +++ b/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch @@ -0,0 +1,34 @@ +From d77c93b1cc42fc6cbda1b2abf941b001ad741cba Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 2 Mar 2019 08:28:04 +0000 +Subject: [PATCH] common: utils: Use include/ directory to get + <nbdkit-plugin.h> + +This worked before because nbdkit was installed by the system package +manager, but if not: + + utils.c:42:10: fatal error: nbdkit-plugin.h: No such file or directory + 42 | #include <nbdkit-plugin.h> + | ^~~~~~~~~~~~~~~~~ + compilation terminated. + +Fixes commit 96b468d2e4214d15d722bd44db289d95e137280a. +--- + common/utils/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/common/utils/Makefile.am b/common/utils/Makefile.am +index e002586..d1d95ed 100644 +--- a/common/utils/Makefile.am ++++ b/common/utils/Makefile.am +@@ -37,5 +37,7 @@ noinst_LTLIBRARIES = libutils.la + libutils_la_SOURCES = \ + utils.c \ + utils.h ++libutils_la_CPPFLAGS = \ ++ -I$(top_srcdir)/include + libutils_la_CFLAGS = \ + $(WARNINGS_CFLAGS) +-- +2.20.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 9b9608b..3aa3bfd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,7 +25,7 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.11-development @@ -45,6 +45,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream fix to include directory. +Patch1: 0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 18f1736652b6369fd75937f60c32a57324fa4086 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 5 Mar 2019 19:34:23 +0000 Subject: [PATCH 179/683] Add nbdkit rate filter. --- ...-include-directory-to-get-nbdkit-plu.patch | 2 +- ...filter-for-rate-limiting-connections.patch | 844 ++++++++++++++++++ nbdkit.spec | 11 +- 3 files changed, 855 insertions(+), 2 deletions(-) create mode 100644 0002-Add-new-filter-for-rate-limiting-connections.patch diff --git a/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch b/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch index dcf7b8a..a268b4b 100644 --- a/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch +++ b/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch @@ -1,7 +1,7 @@ From d77c93b1cc42fc6cbda1b2abf941b001ad741cba Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 2 Mar 2019 08:28:04 +0000 -Subject: [PATCH] common: utils: Use include/ directory to get +Subject: [PATCH 1/2] common: utils: Use include/ directory to get <nbdkit-plugin.h> This worked before because nbdkit was installed by the system package diff --git a/0002-Add-new-filter-for-rate-limiting-connections.patch b/0002-Add-new-filter-for-rate-limiting-connections.patch new file mode 100644 index 0000000..512685b --- /dev/null +++ b/0002-Add-new-filter-for-rate-limiting-connections.patch @@ -0,0 +1,844 @@ +From 53d75b09d9873c69a2d0e7f514a24af746f14292 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 5 Mar 2019 06:24:29 +0000 +Subject: [PATCH 2/2] Add new filter for rate-limiting connections. + +As an example this creates a RAM disk with the rate filter on top, +then copies the data out to a local file: + + $ time ./nbdkit --filter=rate memory size=50M rate=10M \ + --run 'qemu-img convert $nbd /var/tmp/disk.img' + + real 0m40.023s + user 0m0.032s + sys 0m0.081s + +The size of the RAM disk is 8*50 = 400 Mbits, and we copy out at a +rate of 10 Mbps, so it takes exactly 40 seconds. +--- + filters/delay/nbdkit-delay-filter.pod | 4 +- + filters/rate/nbdkit-rate-filter.pod | 86 ++++++++++ + configure.ac | 2 + + filters/rate/bucket.h | 71 ++++++++ + filters/rate/bucket.c | 166 ++++++++++++++++++ + filters/rate/rate.c | 231 ++++++++++++++++++++++++++ + TODO | 9 + + filters/rate/Makefile.am | 64 +++++++ + tests/Makefile.am | 6 +- + tests/test-rate.sh | 60 +++++++ + 10 files changed, 697 insertions(+), 2 deletions(-) + create mode 100644 filters/rate/nbdkit-rate-filter.pod + create mode 100644 filters/rate/bucket.h + create mode 100644 filters/rate/bucket.c + create mode 100644 filters/rate/rate.c + create mode 100644 filters/rate/Makefile.am + create mode 100755 tests/test-rate.sh + +diff --git a/filters/delay/nbdkit-delay-filter.pod b/filters/delay/nbdkit-delay-filter.pod +index 7009a8c..c2eb172 100644 +--- a/filters/delay/nbdkit-delay-filter.pod ++++ b/filters/delay/nbdkit-delay-filter.pod +@@ -17,6 +17,7 @@ nbdkit-delay-filter - nbdkit delay filter + C<nbdkit-delay-filter> is a filter that delays read and write requests + by some seconds or milliseconds. This is used to simulate a slow or + remote server, or to test certain kinds of race conditions in Linux. ++To limit server bandwidth use L<nbdkit-rate-filter(1)> instead. + + =head1 EXAMPLES + +@@ -74,7 +75,8 @@ milliseconds. + =head1 SEE ALSO + + L<nbdkit(1)>, +-L<nbdkit-filter(3)>. ++L<nbdkit-filter(3)>, ++L<nbdkit-rate-filter(1)>. + + =head1 AUTHORS + +diff --git a/filters/rate/nbdkit-rate-filter.pod b/filters/rate/nbdkit-rate-filter.pod +new file mode 100644 +index 0000000..99a0373 +--- /dev/null ++++ b/filters/rate/nbdkit-rate-filter.pod +@@ -0,0 +1,86 @@ ++=head1 NAME ++ ++nbdkit-rate-filter - limit bandwidth by connection or server ++ ++=head1 SYNOPSIS ++ ++ nbdkit --filter=rate PLUGIN [PLUGIN-ARGS...] ++ [rate=BITSPERSEC] ++ [connection-rate=BITSPERSEC] ++ ++=head1 DESCRIPTION ++ ++C<nbdkit-rate-filter> is a filter that limits the bandwidth that can ++be used by the server. Limits can be applied per connection and/or ++for the server as a whole. ++ ++=head1 EXAMPLES ++ ++=over 4 ++ ++=item nbdkit --filter=rate memory size=64M rate=1M ++ ++Create a 64M RAM disk and limit server bandwidth as a whole to a ++maximum of S<1 Mbps> (megabit per second). ++ ++=item nbdkit --filter=rate memory size=64M connection-rate=50K ++ ++Limit each connection to S<50 Kbps> (kilobits per second). However as ++there is no limit to the number of simultaneous connections this does ++not limit overall server bandwidth. ++ ++=item nbdkit --filter=rate memory size=64M connection-rate=50K rate=1M ++ ++Limit each connection to S<50 Kbps>. Additionally the total bandwidth ++across all connections to the server is limited to S<1 Mbps>. ++ ++=back ++ ++=head1 PARAMETERS ++ ++=over 4 ++ ++=item B<connection-rate=>BITSPERSEC ++ ++Limit each connection to C<BITSPERSEC>. ++ ++=item B<rate=>BITSPERSEC ++ ++Limit total bandwidth across all connections to C<BITSPERSEC>. ++ ++=back ++ ++C<BITSPERSEC> can be specified as a simple number, or you can use a ++number followed by C<K>, C<M> etc to mean kilobits, megabits and so ++on. ++ ++=head1 NOTES ++ ++You can specify C<rate> and C<connection-rate> on their own or ++together. If you specify neither, the filter is turned off. ++ ++The rate filter approximates the bandwidth used by the NBD protocol on ++the wire. Some operations such as zeroing and trimming are ++effectively free (because only a tiny NBD message is sent over the ++network) and so do not count against the bandwidth limit. NBD and TCP ++protocol overhead is not included, so you may find that other tools ++such as L<tc(8)> and L<iptables(8)> give more accurate results. ++ ++here are separate bandwidth limits for read and write (ie. download ++and upload to the server). ++ ++=head1 SEE ALSO ++ ++L<nbdkit(1)>, ++L<nbdkit-delay-filter(1)>, ++L<nbdkit-filter(3)>, ++L<iptables(8)>, ++L<tc(8)>. ++ ++=head1 AUTHORS ++ ++Richard W.M. Jones ++ ++=head1 COPYRIGHT ++ ++Copyright (C) 2019 Red Hat Inc. +diff --git a/configure.ac b/configure.ac +index 9e7e5ca..467d48f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -819,6 +819,7 @@ filters="\ + nozero \ + offset \ + partition \ ++ rate \ + truncate \ + xz \ + " +@@ -889,6 +890,7 @@ AC_CONFIG_FILES([Makefile + filters/nozero/Makefile + filters/offset/Makefile + filters/partition/Makefile ++ filters/rate/Makefile + filters/truncate/Makefile + filters/xz/Makefile + fuzzing/Makefile +diff --git a/filters/rate/bucket.h b/filters/rate/bucket.h +new file mode 100644 +index 0000000..bc36fc1 +--- /dev/null ++++ b/filters/rate/bucket.h +@@ -0,0 +1,71 @@ ++/* nbdkit ++ * Copyright (C) 2018-2019 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#ifndef NBDKIT_BUCKET_H ++#define NBDKIT_BUCKET_H ++ ++#include <stdint.h> ++#include <time.h> ++#include <sys/time.h> ++ ++/* A token bucket. */ ++struct bucket { ++ uint64_t rate; /* Fill rate. 0 = no limit set. */ ++ uint64_t capacity; /* Maximum capacity of the bucket. */ ++ uint64_t level; /* How full is the bucket now? */ ++ struct timeval tv; /* Last time we updated the level. */ ++}; ++ ++/* Initialize the bucket structure. Capacity is expressed in ++ * rate-equivalent seconds. ++ */ ++extern void bucket_init (struct bucket *bucket, ++ uint64_t rate, double capacity); ++ ++/* Take up to N tokens from the bucket. Returns the number ++ * of tokens remaining (that could not be taken from the bucket), ++ * or 0 if we were able to take all N tokens from the bucket. ++ * ++ * In the case that the return value > 0, *TS is initialized with the ++ * estimated length of time you should sleep. Note that *TS is _NOT_ ++ * initialized if the return value == 0, because the caller should not ++ * sleep in that case. ++ * ++ * In the case where the caller needs to sleep, it must make a further ++ * call to bucket_run before proceeding, since another thread may have ++ * "stolen" the tokens while you were sleeping. ++ */ ++extern uint64_t bucket_run (struct bucket *bucket, uint64_t n, ++ struct timespec *ts); ++ ++#endif /* NBDKIT_BUCKET_H */ +diff --git a/filters/rate/bucket.c b/filters/rate/bucket.c +new file mode 100644 +index 0000000..b68d7b3 +--- /dev/null ++++ b/filters/rate/bucket.c +@@ -0,0 +1,166 @@ ++/* nbdkit ++ * Copyright (C) 2018-2019 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++/* This filter is implemented using a Token Bucket ++ * (https://en.wikipedia.org/wiki/Token_bucket). There are two ++ * buckets per connection (one each for reading and writing) and two ++ * global buckets (also for reading and writing). ++ * ++ * We add tokens at the desired rate (the per-connection rate for the ++ * connection buckets, and the global rate for the global buckets). ++ * Note that we don't actually keep the buckets updated in real time ++ * because as a filter we are called asynchronously. Instead for each ++ * bucket we store the last time we were called and add the ++ * appropriate number of tokens when we are called next. ++ * ++ * The bucket capacity controls the burstiness allowed. This is ++ * hard-coded at the moment but could be configurable. All buckets ++ * start off full. ++ * ++ * When a packet is to be read or written, if there are sufficient ++ * tokens in the bucket then the packet may be immediately passed ++ * through to the underlying plugin. The number of bits used is ++ * deducted from the appropriate per-connection and global bucket. ++ * ++ * If there are insufficient tokens then the packet must be delayed. ++ * This is done by inserting a sleep which has an estimated length ++ * that is long enough based on the rate at which enough tokens will ++ * replenish the bucket to allow the packet to be sent next time. ++ */ ++ ++#include <config.h> ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <stdint.h> ++#include <inttypes.h> ++#include <string.h> ++#include <time.h> ++#include <sys/time.h> ++ ++#include <nbdkit-filter.h> ++ ++#include "minmax.h" ++ ++#include "bucket.h" ++ ++int rate_debug_bucket; /* -D rate.bucket=1 */ ++ ++void ++bucket_init (struct bucket *bucket, uint64_t rate, double capacity) ++{ ++ bucket->rate = rate; ++ ++ /* Capacity is expressed in seconds, but we want to know the ++ * capacity in tokens, so multiply by the rate to get this. ++ */ ++ bucket->capacity = rate * capacity; ++ ++ /* Buckets start off full. */ ++ bucket->level = capacity; ++ ++ gettimeofday (&bucket->tv, NULL); ++} ++ ++/* Return the number of microseconds in y - x. */ ++static int64_t ++tvdiff (const struct timeval *x, const struct timeval *y) ++{ ++ int64_t usec; ++ ++ usec = (y->tv_sec - x->tv_sec) * 1000000; ++ usec += y->tv_usec - x->tv_usec; ++ return usec; ++} ++ ++uint64_t ++bucket_run (struct bucket *bucket, uint64_t n, struct timespec *ts) ++{ ++ struct timeval now; ++ int64_t usec; ++ uint64_t add, nsec; ++ ++ /* rate == 0 is a special case meaning that there is no limit being ++ * enforced. ++ */ ++ if (bucket->rate == 0) ++ return 0; ++ ++ gettimeofday (&now, NULL); ++ ++ /* Work out how much time has elapsed since we last added tokens to ++ * the bucket, and add the correct number of tokens. ++ */ ++ usec = tvdiff (&bucket->tv, &now); ++ if (usec < 0) /* Maybe happens if system time not monotonic? */ ++ usec = 0; ++ ++ add = bucket->rate * usec / 1000000; ++ add = MIN (add, bucket->capacity - bucket->level); ++ if (rate_debug_bucket) ++ nbdkit_debug ("bucket %p: adding %" PRIu64 " tokens, new level %" PRIu64, ++ bucket, add, bucket->level + add); ++ bucket->level += add; ++ bucket->tv = now; ++ ++ /* Can we deduct N tokens from the bucket? If yes then we're good, ++ * and we can return 0 which means the caller won't sleep. ++ */ ++ if (bucket->level >= n) { ++ if (rate_debug_bucket) ++ nbdkit_debug ("bucket %p: deducting %" PRIu64 " tokens", bucket, n); ++ bucket->level -= n; ++ return 0; ++ } ++ ++ if (rate_debug_bucket) ++ nbdkit_debug ("bucket %p: deducting %" PRIu64 " tokens, bucket empty, " ++ "need another %" PRIu64 " tokens", ++ bucket, bucket->level, n - bucket->level); ++ ++ n -= bucket->level; ++ bucket->level = 0; ++ ++ /* Now we need to estimate how long it will take to add N tokens to ++ * the bucket, which is how long the caller must sleep for. ++ */ ++ nsec = 1000000000 * n / bucket->rate; ++ ts->tv_sec = nsec / 1000000000; ++ ts->tv_nsec = nsec % 1000000000; ++ ++ if (rate_debug_bucket) ++ nbdkit_debug ("bucket %p: sleeping for %.1f seconds", bucket, ++ nsec / 1000000000.); ++ ++ return n; ++} +diff --git a/filters/rate/rate.c b/filters/rate/rate.c +new file mode 100644 +index 0000000..a0c6ae3 +--- /dev/null ++++ b/filters/rate/rate.c +@@ -0,0 +1,231 @@ ++/* nbdkit ++ * Copyright (C) 2018-2019 Red Hat Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * * Neither the name of Red Hat nor the names of its contributors may be ++ * used to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++/* For a note on the implementation of this filter, see bucket.c. */ ++ ++#include <config.h> ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <stdint.h> ++#include <string.h> ++#include <time.h> ++#include <sys/time.h> ++ ++#include <pthread.h> ++ ++#include <nbdkit-filter.h> ++ ++#include "bucket.h" ++ ++#define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL ++ ++/* Per-connection and global limit, both in bits per second, with zero ++ * meaning not set / not enforced. ++ */ ++static uint64_t connection_rate = 0; ++static uint64_t rate = 0; ++ ++/* Bucket capacity controls the burst rate. It is expressed as the ++ * length of time in "rate-equivalent seconds" that the client can ++ * burst for after a period of inactivity. This could be adjustable ++ * in future. ++ */ ++#define BUCKET_CAPACITY 2.0 ++ ++/* Global read and write buckets. */ ++static struct bucket read_bucket; ++static pthread_mutex_t read_bucket_lock = PTHREAD_MUTEX_INITIALIZER; ++static struct bucket write_bucket; ++static pthread_mutex_t write_bucket_lock = PTHREAD_MUTEX_INITIALIZER; ++ ++/* Per-connection handle. */ ++struct rate_handle { ++ /* Per-connection read and write buckets. */ ++ struct bucket read_bucket; ++ pthread_mutex_t read_bucket_lock; ++ struct bucket write_bucket; ++ pthread_mutex_t write_bucket_lock; ++}; ++ ++/* Called for each key=value passed on the command line. */ ++static int ++rate_config (nbdkit_next_config *next, void *nxdata, ++ const char *key, const char *value) ++{ ++ if (strcmp (key, "rate") == 0) { ++ if (rate > 0) { ++ nbdkit_error ("rate set twice on the command line"); ++ return -1; ++ } ++ rate = nbdkit_parse_size (value); ++ if (rate == -1) ++ return -1; ++ if (rate == 0) { ++ nbdkit_error ("rate cannot be set to 0"); ++ return -1; ++ } ++ return 0; ++ } ++ else if (strcmp (key, "connection-rate") == 0) { ++ if (connection_rate > 0) { ++ nbdkit_error ("connection-rate set twice on the command line"); ++ return -1; ++ } ++ connection_rate = nbdkit_parse_size (value); ++ if (connection_rate == -1) ++ return -1; ++ if (connection_rate == 0) { ++ nbdkit_error ("connection-rate cannot be set to 0"); ++ return -1; ++ } ++ return 0; ++ } ++ else ++ return next (nxdata, key, value); ++} ++ ++static int ++rate_config_complete (nbdkit_next_config_complete *next, void *nxdata) ++{ ++ /* Initialize the global buckets. */ ++ bucket_init (&read_bucket, rate, BUCKET_CAPACITY); ++ bucket_init (&write_bucket, rate, BUCKET_CAPACITY); ++ ++ return next (nxdata); ++} ++ ++#define rate_config_help \ ++ "rate=BITSPERSEC Limit total bandwidth.\n" \ ++ "connection-rate=BITSPERSEC Limit per-connection bandwidth." ++ ++/* Create the per-connection handle. */ ++static void * ++rate_open (nbdkit_next_open *next, void *nxdata, int readonly) ++{ ++ struct rate_handle *h; ++ ++ if (next (nxdata, readonly) == -1) ++ return NULL; ++ ++ h = malloc (sizeof *h); ++ if (h == NULL) { ++ nbdkit_error ("malloc: %m"); ++ return NULL; ++ } ++ ++ bucket_init (&h->read_bucket, connection_rate, BUCKET_CAPACITY); ++ bucket_init (&h->write_bucket, connection_rate, BUCKET_CAPACITY); ++ pthread_mutex_init (&h->read_bucket_lock, NULL); ++ pthread_mutex_init (&h->write_bucket_lock, NULL); ++ ++ return h; ++} ++ ++/* Free up the per-connection handle. */ ++static void ++rate_close (void *handle) ++{ ++ struct rate_handle *h = handle; ++ ++ pthread_mutex_destroy (&h->read_bucket_lock); ++ pthread_mutex_destroy (&h->write_bucket_lock); ++ free (h); ++} ++ ++static inline void ++maybe_sleep (struct bucket *bucket, pthread_mutex_t *lock, uint32_t count) ++{ ++ struct timespec ts; ++ uint64_t bits; ++ ++ /* Count is in bytes, but we rate limit using bits. We could ++ * multiply this by 10 to include start/stop but let's not ++ * second-guess the transport layers underneath. ++ */ ++ bits = count * UINT64_C(8); ++ ++ while (bits > 0) { ++ /* Run the token bucket algorithm. */ ++ pthread_mutex_lock (lock); ++ bits = bucket_run (bucket, bits, &ts); ++ pthread_mutex_unlock (lock); ++ ++ if (bits > 0) ++ nanosleep (&ts, NULL); ++ } ++} ++ ++/* Read data. */ ++static int ++rate_pread (struct nbdkit_next_ops *next_ops, void *nxdata, ++ void *handle, void *buf, uint32_t count, uint64_t offset, ++ uint32_t flags, int *err) ++{ ++ struct rate_handle *h = handle; ++ ++ maybe_sleep (&read_bucket, &read_bucket_lock, count); ++ maybe_sleep (&h->read_bucket, &h->read_bucket_lock, count); ++ ++ return next_ops->pread (nxdata, buf, count, offset, flags, err); ++} ++ ++/* Write data. */ ++static int ++rate_pwrite (struct nbdkit_next_ops *next_ops, void *nxdata, ++ void *handle, ++ const void *buf, uint32_t count, uint64_t offset, uint32_t flags, ++ int *err) ++{ ++ struct rate_handle *h = handle; ++ ++ maybe_sleep (&write_bucket, &write_bucket_lock, count); ++ maybe_sleep (&h->write_bucket, &h->write_bucket_lock, count); ++ ++ return next_ops->pwrite (nxdata, buf, count, offset, flags, err); ++} ++ ++static struct nbdkit_filter filter = { ++ .name = "rate", ++ .longname = "nbdkit rate filter", ++ .version = PACKAGE_VERSION, ++ .config = rate_config, ++ .config_complete = rate_config_complete, ++ .config_help = rate_config_help, ++ .open = rate_open, ++ .close = rate_close, ++ .pread = rate_pread, ++ .pwrite = rate_pwrite, ++}; ++ ++NBDKIT_REGISTER_FILTER(filter) +diff --git a/TODO b/TODO +index 59590a1..b589127 100644 +--- a/TODO ++++ b/TODO +@@ -129,6 +129,15 @@ Suggestions for filters + * nbdkit-cache-filter should handle ENOSPC errors automatically by + reclaiming blocks from the cache + ++nbdkit-rate-filter: ++ ++* allow other kinds of traffic shaping such as VBR ++ ++* limit traffic per client (ie. per IP address) ++ ++* split large requests to avoid long, lumpy sleeps when request size ++ is much larger than rate limit ++ + Filters for security + -------------------- + +diff --git a/filters/rate/Makefile.am b/filters/rate/Makefile.am +new file mode 100644 +index 0000000..c39aa01 +--- /dev/null ++++ b/filters/rate/Makefile.am +@@ -0,0 +1,64 @@ ++# nbdkit ++# Copyright (C) 2018-2019 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++include $(top_srcdir)/common-rules.mk ++ ++EXTRA_DIST = nbdkit-rate-filter.pod ++ ++filter_LTLIBRARIES = nbdkit-rate-filter.la ++ ++nbdkit_rate_filter_la_SOURCES = \ ++ bucket.c \ ++ bucket.h \ ++ rate.c \ ++ $(top_srcdir)/include/nbdkit-filter.h ++ ++nbdkit_rate_filter_la_CPPFLAGS = \ ++ -I$(top_srcdir)/include \ ++ -I$(top_srcdir)/common/include ++nbdkit_rate_filter_la_CFLAGS = \ ++ $(WARNINGS_CFLAGS) ++nbdkit_rate_filter_la_LDFLAGS = \ ++ -module -avoid-version -shared \ ++ -Wl,--version-script=$(top_srcdir)/filters/filters.syms ++ ++if HAVE_POD ++ ++man_MANS = nbdkit-rate-filter.1 ++CLEANFILES += $(man_MANS) ++ ++nbdkit-rate-filter.1: nbdkit-rate-filter.pod ++ $(PODWRAPPER) --section=1 --man $@ \ ++ --html $(top_builddir)/html/$@.html \ ++ $< ++ ++endif HAVE_POD +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 3992d9b..d1e6f0e 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1,5 +1,5 @@ + # nbdkit +-# Copyright (C) 2013-2018 Red Hat Inc. ++# Copyright (C) 2013-2019 Red Hat Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without +@@ -97,6 +97,7 @@ EXTRA_DIST = \ + test-python-exception.sh \ + test.pl \ + test.py \ ++ test-rate.sh \ + test.rb \ + test.tcl \ + test-shebang-perl.sh \ +@@ -810,6 +811,9 @@ if HAVE_GUESTFISH + TESTS += test-partition2.sh + endif HAVE_GUESTFISH + ++# rate filter test. ++TESTS += test-rate.sh ++ + # truncate filter tests. + TESTS += \ + test-truncate1.sh \ +diff --git a/tests/test-rate.sh b/tests/test-rate.sh +new file mode 100755 +index 0000000..010ef19 +--- /dev/null ++++ b/tests/test-rate.sh +@@ -0,0 +1,60 @@ ++#!/usr/bin/env bash ++# nbdkit ++# Copyright (C) 2018-2019 Red Hat Inc. ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++source ./functions.sh ++set -e ++set -x ++ ++requires qemu-img --version ++ ++files="rate.img rate.time rate.err" ++rm -f $files ++cleanup_fn rm -f $files ++ ++# This should take no less than 20 seconds to run: ++# (8 * 25 * 1024 * 1024) / (10 * 1024 * 1024) = 20 ++ ++# We are using the bash time builtin, so setting TIMEFORMAT will ++# control the output format of the time builtin. For strange use of ++# { ; } here, see: https://stackoverflow.com/a/13356654 ++set +x ++{ TIMEFORMAT="%0R" ; time nbdkit --filter=rate memory size=25M rate=10M --run 'qemu-img convert -p $nbd rate.img' 2>rate.err ; } 2>rate.time ++set -x ++ ++cat rate.err ||: ++ ++seconds="$( cat rate.time )" ++if [ "$seconds" -lt 20 ]; then ++ echo "$0: rate filter failed: command took $seconds seconds, expected > 20" ++ exit 1 ++fi +-- +2.20.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 3aa3bfd..ff4d5fa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.11.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -47,6 +47,8 @@ Source2: libguestfs.keyring # Upstream fix to include directory. Patch1: 0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch +# Posted but not upstream patch to add nbdkit-rate-filter. +Patch2: 0002-Add-new-filter-for-rate-limiting-connections.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -546,6 +548,8 @@ nbdkit-offset-filter Serve an offset and range. nbdkit-partition-filter Serve a single partition. +nbdkit-rate-filter Limit bandwidth by connection or server. + nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -938,6 +942,7 @@ popd %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* @@ -949,6 +954,7 @@ popd %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* +%{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -986,6 +992,9 @@ popd %changelog +* Tue Mar 05 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.6-2 +- Add nbdkit rate filter. + * Fri Mar 01 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.6-1 - New upstream version 1.11.6. - Add linuxdisk plugin. From fa93f5d5ded6a242a3f3355f9250bbf1c875d975 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 06:39:35 +0000 Subject: [PATCH 180/683] New upstream version 1.11.7. Add nbdkit ssh plugin. Remove patches already upstream. --- ...-include-directory-to-get-nbdkit-plu.patch | 34 - ...filter-for-rate-limiting-connections.patch | 844 ------------------ nbdkit.spec | 32 +- sources | 4 +- 4 files changed, 24 insertions(+), 890 deletions(-) delete mode 100644 0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch delete mode 100644 0002-Add-new-filter-for-rate-limiting-connections.patch diff --git a/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch b/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch deleted file mode 100644 index a268b4b..0000000 --- a/0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d77c93b1cc42fc6cbda1b2abf941b001ad741cba Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 2 Mar 2019 08:28:04 +0000 -Subject: [PATCH 1/2] common: utils: Use include/ directory to get - <nbdkit-plugin.h> - -This worked before because nbdkit was installed by the system package -manager, but if not: - - utils.c:42:10: fatal error: nbdkit-plugin.h: No such file or directory - 42 | #include <nbdkit-plugin.h> - | ^~~~~~~~~~~~~~~~~ - compilation terminated. - -Fixes commit 96b468d2e4214d15d722bd44db289d95e137280a. ---- - common/utils/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/common/utils/Makefile.am b/common/utils/Makefile.am -index e002586..d1d95ed 100644 ---- a/common/utils/Makefile.am -+++ b/common/utils/Makefile.am -@@ -37,5 +37,7 @@ noinst_LTLIBRARIES = libutils.la - libutils_la_SOURCES = \ - utils.c \ - utils.h -+libutils_la_CPPFLAGS = \ -+ -I$(top_srcdir)/include - libutils_la_CFLAGS = \ - $(WARNINGS_CFLAGS) --- -2.20.1 - diff --git a/0002-Add-new-filter-for-rate-limiting-connections.patch b/0002-Add-new-filter-for-rate-limiting-connections.patch deleted file mode 100644 index 512685b..0000000 --- a/0002-Add-new-filter-for-rate-limiting-connections.patch +++ /dev/null @@ -1,844 +0,0 @@ -From 53d75b09d9873c69a2d0e7f514a24af746f14292 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 5 Mar 2019 06:24:29 +0000 -Subject: [PATCH 2/2] Add new filter for rate-limiting connections. - -As an example this creates a RAM disk with the rate filter on top, -then copies the data out to a local file: - - $ time ./nbdkit --filter=rate memory size=50M rate=10M \ - --run 'qemu-img convert $nbd /var/tmp/disk.img' - - real 0m40.023s - user 0m0.032s - sys 0m0.081s - -The size of the RAM disk is 8*50 = 400 Mbits, and we copy out at a -rate of 10 Mbps, so it takes exactly 40 seconds. ---- - filters/delay/nbdkit-delay-filter.pod | 4 +- - filters/rate/nbdkit-rate-filter.pod | 86 ++++++++++ - configure.ac | 2 + - filters/rate/bucket.h | 71 ++++++++ - filters/rate/bucket.c | 166 ++++++++++++++++++ - filters/rate/rate.c | 231 ++++++++++++++++++++++++++ - TODO | 9 + - filters/rate/Makefile.am | 64 +++++++ - tests/Makefile.am | 6 +- - tests/test-rate.sh | 60 +++++++ - 10 files changed, 697 insertions(+), 2 deletions(-) - create mode 100644 filters/rate/nbdkit-rate-filter.pod - create mode 100644 filters/rate/bucket.h - create mode 100644 filters/rate/bucket.c - create mode 100644 filters/rate/rate.c - create mode 100644 filters/rate/Makefile.am - create mode 100755 tests/test-rate.sh - -diff --git a/filters/delay/nbdkit-delay-filter.pod b/filters/delay/nbdkit-delay-filter.pod -index 7009a8c..c2eb172 100644 ---- a/filters/delay/nbdkit-delay-filter.pod -+++ b/filters/delay/nbdkit-delay-filter.pod -@@ -17,6 +17,7 @@ nbdkit-delay-filter - nbdkit delay filter - C<nbdkit-delay-filter> is a filter that delays read and write requests - by some seconds or milliseconds. This is used to simulate a slow or - remote server, or to test certain kinds of race conditions in Linux. -+To limit server bandwidth use L<nbdkit-rate-filter(1)> instead. - - =head1 EXAMPLES - -@@ -74,7 +75,8 @@ milliseconds. - =head1 SEE ALSO - - L<nbdkit(1)>, --L<nbdkit-filter(3)>. -+L<nbdkit-filter(3)>, -+L<nbdkit-rate-filter(1)>. - - =head1 AUTHORS - -diff --git a/filters/rate/nbdkit-rate-filter.pod b/filters/rate/nbdkit-rate-filter.pod -new file mode 100644 -index 0000000..99a0373 ---- /dev/null -+++ b/filters/rate/nbdkit-rate-filter.pod -@@ -0,0 +1,86 @@ -+=head1 NAME -+ -+nbdkit-rate-filter - limit bandwidth by connection or server -+ -+=head1 SYNOPSIS -+ -+ nbdkit --filter=rate PLUGIN [PLUGIN-ARGS...] -+ [rate=BITSPERSEC] -+ [connection-rate=BITSPERSEC] -+ -+=head1 DESCRIPTION -+ -+C<nbdkit-rate-filter> is a filter that limits the bandwidth that can -+be used by the server. Limits can be applied per connection and/or -+for the server as a whole. -+ -+=head1 EXAMPLES -+ -+=over 4 -+ -+=item nbdkit --filter=rate memory size=64M rate=1M -+ -+Create a 64M RAM disk and limit server bandwidth as a whole to a -+maximum of S<1 Mbps> (megabit per second). -+ -+=item nbdkit --filter=rate memory size=64M connection-rate=50K -+ -+Limit each connection to S<50 Kbps> (kilobits per second). However as -+there is no limit to the number of simultaneous connections this does -+not limit overall server bandwidth. -+ -+=item nbdkit --filter=rate memory size=64M connection-rate=50K rate=1M -+ -+Limit each connection to S<50 Kbps>. Additionally the total bandwidth -+across all connections to the server is limited to S<1 Mbps>. -+ -+=back -+ -+=head1 PARAMETERS -+ -+=over 4 -+ -+=item B<connection-rate=>BITSPERSEC -+ -+Limit each connection to C<BITSPERSEC>. -+ -+=item B<rate=>BITSPERSEC -+ -+Limit total bandwidth across all connections to C<BITSPERSEC>. -+ -+=back -+ -+C<BITSPERSEC> can be specified as a simple number, or you can use a -+number followed by C<K>, C<M> etc to mean kilobits, megabits and so -+on. -+ -+=head1 NOTES -+ -+You can specify C<rate> and C<connection-rate> on their own or -+together. If you specify neither, the filter is turned off. -+ -+The rate filter approximates the bandwidth used by the NBD protocol on -+the wire. Some operations such as zeroing and trimming are -+effectively free (because only a tiny NBD message is sent over the -+network) and so do not count against the bandwidth limit. NBD and TCP -+protocol overhead is not included, so you may find that other tools -+such as L<tc(8)> and L<iptables(8)> give more accurate results. -+ -+here are separate bandwidth limits for read and write (ie. download -+and upload to the server). -+ -+=head1 SEE ALSO -+ -+L<nbdkit(1)>, -+L<nbdkit-delay-filter(1)>, -+L<nbdkit-filter(3)>, -+L<iptables(8)>, -+L<tc(8)>. -+ -+=head1 AUTHORS -+ -+Richard W.M. Jones -+ -+=head1 COPYRIGHT -+ -+Copyright (C) 2019 Red Hat Inc. -diff --git a/configure.ac b/configure.ac -index 9e7e5ca..467d48f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -819,6 +819,7 @@ filters="\ - nozero \ - offset \ - partition \ -+ rate \ - truncate \ - xz \ - " -@@ -889,6 +890,7 @@ AC_CONFIG_FILES([Makefile - filters/nozero/Makefile - filters/offset/Makefile - filters/partition/Makefile -+ filters/rate/Makefile - filters/truncate/Makefile - filters/xz/Makefile - fuzzing/Makefile -diff --git a/filters/rate/bucket.h b/filters/rate/bucket.h -new file mode 100644 -index 0000000..bc36fc1 ---- /dev/null -+++ b/filters/rate/bucket.h -@@ -0,0 +1,71 @@ -+/* nbdkit -+ * Copyright (C) 2018-2019 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#ifndef NBDKIT_BUCKET_H -+#define NBDKIT_BUCKET_H -+ -+#include <stdint.h> -+#include <time.h> -+#include <sys/time.h> -+ -+/* A token bucket. */ -+struct bucket { -+ uint64_t rate; /* Fill rate. 0 = no limit set. */ -+ uint64_t capacity; /* Maximum capacity of the bucket. */ -+ uint64_t level; /* How full is the bucket now? */ -+ struct timeval tv; /* Last time we updated the level. */ -+}; -+ -+/* Initialize the bucket structure. Capacity is expressed in -+ * rate-equivalent seconds. -+ */ -+extern void bucket_init (struct bucket *bucket, -+ uint64_t rate, double capacity); -+ -+/* Take up to N tokens from the bucket. Returns the number -+ * of tokens remaining (that could not be taken from the bucket), -+ * or 0 if we were able to take all N tokens from the bucket. -+ * -+ * In the case that the return value > 0, *TS is initialized with the -+ * estimated length of time you should sleep. Note that *TS is _NOT_ -+ * initialized if the return value == 0, because the caller should not -+ * sleep in that case. -+ * -+ * In the case where the caller needs to sleep, it must make a further -+ * call to bucket_run before proceeding, since another thread may have -+ * "stolen" the tokens while you were sleeping. -+ */ -+extern uint64_t bucket_run (struct bucket *bucket, uint64_t n, -+ struct timespec *ts); -+ -+#endif /* NBDKIT_BUCKET_H */ -diff --git a/filters/rate/bucket.c b/filters/rate/bucket.c -new file mode 100644 -index 0000000..b68d7b3 ---- /dev/null -+++ b/filters/rate/bucket.c -@@ -0,0 +1,166 @@ -+/* nbdkit -+ * Copyright (C) 2018-2019 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* This filter is implemented using a Token Bucket -+ * (https://en.wikipedia.org/wiki/Token_bucket). There are two -+ * buckets per connection (one each for reading and writing) and two -+ * global buckets (also for reading and writing). -+ * -+ * We add tokens at the desired rate (the per-connection rate for the -+ * connection buckets, and the global rate for the global buckets). -+ * Note that we don't actually keep the buckets updated in real time -+ * because as a filter we are called asynchronously. Instead for each -+ * bucket we store the last time we were called and add the -+ * appropriate number of tokens when we are called next. -+ * -+ * The bucket capacity controls the burstiness allowed. This is -+ * hard-coded at the moment but could be configurable. All buckets -+ * start off full. -+ * -+ * When a packet is to be read or written, if there are sufficient -+ * tokens in the bucket then the packet may be immediately passed -+ * through to the underlying plugin. The number of bits used is -+ * deducted from the appropriate per-connection and global bucket. -+ * -+ * If there are insufficient tokens then the packet must be delayed. -+ * This is done by inserting a sleep which has an estimated length -+ * that is long enough based on the rate at which enough tokens will -+ * replenish the bucket to allow the packet to be sent next time. -+ */ -+ -+#include <config.h> -+ -+#include <stdio.h> -+#include <stdlib.h> -+#include <stdint.h> -+#include <inttypes.h> -+#include <string.h> -+#include <time.h> -+#include <sys/time.h> -+ -+#include <nbdkit-filter.h> -+ -+#include "minmax.h" -+ -+#include "bucket.h" -+ -+int rate_debug_bucket; /* -D rate.bucket=1 */ -+ -+void -+bucket_init (struct bucket *bucket, uint64_t rate, double capacity) -+{ -+ bucket->rate = rate; -+ -+ /* Capacity is expressed in seconds, but we want to know the -+ * capacity in tokens, so multiply by the rate to get this. -+ */ -+ bucket->capacity = rate * capacity; -+ -+ /* Buckets start off full. */ -+ bucket->level = capacity; -+ -+ gettimeofday (&bucket->tv, NULL); -+} -+ -+/* Return the number of microseconds in y - x. */ -+static int64_t -+tvdiff (const struct timeval *x, const struct timeval *y) -+{ -+ int64_t usec; -+ -+ usec = (y->tv_sec - x->tv_sec) * 1000000; -+ usec += y->tv_usec - x->tv_usec; -+ return usec; -+} -+ -+uint64_t -+bucket_run (struct bucket *bucket, uint64_t n, struct timespec *ts) -+{ -+ struct timeval now; -+ int64_t usec; -+ uint64_t add, nsec; -+ -+ /* rate == 0 is a special case meaning that there is no limit being -+ * enforced. -+ */ -+ if (bucket->rate == 0) -+ return 0; -+ -+ gettimeofday (&now, NULL); -+ -+ /* Work out how much time has elapsed since we last added tokens to -+ * the bucket, and add the correct number of tokens. -+ */ -+ usec = tvdiff (&bucket->tv, &now); -+ if (usec < 0) /* Maybe happens if system time not monotonic? */ -+ usec = 0; -+ -+ add = bucket->rate * usec / 1000000; -+ add = MIN (add, bucket->capacity - bucket->level); -+ if (rate_debug_bucket) -+ nbdkit_debug ("bucket %p: adding %" PRIu64 " tokens, new level %" PRIu64, -+ bucket, add, bucket->level + add); -+ bucket->level += add; -+ bucket->tv = now; -+ -+ /* Can we deduct N tokens from the bucket? If yes then we're good, -+ * and we can return 0 which means the caller won't sleep. -+ */ -+ if (bucket->level >= n) { -+ if (rate_debug_bucket) -+ nbdkit_debug ("bucket %p: deducting %" PRIu64 " tokens", bucket, n); -+ bucket->level -= n; -+ return 0; -+ } -+ -+ if (rate_debug_bucket) -+ nbdkit_debug ("bucket %p: deducting %" PRIu64 " tokens, bucket empty, " -+ "need another %" PRIu64 " tokens", -+ bucket, bucket->level, n - bucket->level); -+ -+ n -= bucket->level; -+ bucket->level = 0; -+ -+ /* Now we need to estimate how long it will take to add N tokens to -+ * the bucket, which is how long the caller must sleep for. -+ */ -+ nsec = 1000000000 * n / bucket->rate; -+ ts->tv_sec = nsec / 1000000000; -+ ts->tv_nsec = nsec % 1000000000; -+ -+ if (rate_debug_bucket) -+ nbdkit_debug ("bucket %p: sleeping for %.1f seconds", bucket, -+ nsec / 1000000000.); -+ -+ return n; -+} -diff --git a/filters/rate/rate.c b/filters/rate/rate.c -new file mode 100644 -index 0000000..a0c6ae3 ---- /dev/null -+++ b/filters/rate/rate.c -@@ -0,0 +1,231 @@ -+/* nbdkit -+ * Copyright (C) 2018-2019 Red Hat Inc. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are -+ * met: -+ * -+ * * Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * * Neither the name of Red Hat nor the names of its contributors may be -+ * used to endorse or promote products derived from this software without -+ * specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* For a note on the implementation of this filter, see bucket.c. */ -+ -+#include <config.h> -+ -+#include <stdio.h> -+#include <stdlib.h> -+#include <stdint.h> -+#include <string.h> -+#include <time.h> -+#include <sys/time.h> -+ -+#include <pthread.h> -+ -+#include <nbdkit-filter.h> -+ -+#include "bucket.h" -+ -+#define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL -+ -+/* Per-connection and global limit, both in bits per second, with zero -+ * meaning not set / not enforced. -+ */ -+static uint64_t connection_rate = 0; -+static uint64_t rate = 0; -+ -+/* Bucket capacity controls the burst rate. It is expressed as the -+ * length of time in "rate-equivalent seconds" that the client can -+ * burst for after a period of inactivity. This could be adjustable -+ * in future. -+ */ -+#define BUCKET_CAPACITY 2.0 -+ -+/* Global read and write buckets. */ -+static struct bucket read_bucket; -+static pthread_mutex_t read_bucket_lock = PTHREAD_MUTEX_INITIALIZER; -+static struct bucket write_bucket; -+static pthread_mutex_t write_bucket_lock = PTHREAD_MUTEX_INITIALIZER; -+ -+/* Per-connection handle. */ -+struct rate_handle { -+ /* Per-connection read and write buckets. */ -+ struct bucket read_bucket; -+ pthread_mutex_t read_bucket_lock; -+ struct bucket write_bucket; -+ pthread_mutex_t write_bucket_lock; -+}; -+ -+/* Called for each key=value passed on the command line. */ -+static int -+rate_config (nbdkit_next_config *next, void *nxdata, -+ const char *key, const char *value) -+{ -+ if (strcmp (key, "rate") == 0) { -+ if (rate > 0) { -+ nbdkit_error ("rate set twice on the command line"); -+ return -1; -+ } -+ rate = nbdkit_parse_size (value); -+ if (rate == -1) -+ return -1; -+ if (rate == 0) { -+ nbdkit_error ("rate cannot be set to 0"); -+ return -1; -+ } -+ return 0; -+ } -+ else if (strcmp (key, "connection-rate") == 0) { -+ if (connection_rate > 0) { -+ nbdkit_error ("connection-rate set twice on the command line"); -+ return -1; -+ } -+ connection_rate = nbdkit_parse_size (value); -+ if (connection_rate == -1) -+ return -1; -+ if (connection_rate == 0) { -+ nbdkit_error ("connection-rate cannot be set to 0"); -+ return -1; -+ } -+ return 0; -+ } -+ else -+ return next (nxdata, key, value); -+} -+ -+static int -+rate_config_complete (nbdkit_next_config_complete *next, void *nxdata) -+{ -+ /* Initialize the global buckets. */ -+ bucket_init (&read_bucket, rate, BUCKET_CAPACITY); -+ bucket_init (&write_bucket, rate, BUCKET_CAPACITY); -+ -+ return next (nxdata); -+} -+ -+#define rate_config_help \ -+ "rate=BITSPERSEC Limit total bandwidth.\n" \ -+ "connection-rate=BITSPERSEC Limit per-connection bandwidth." -+ -+/* Create the per-connection handle. */ -+static void * -+rate_open (nbdkit_next_open *next, void *nxdata, int readonly) -+{ -+ struct rate_handle *h; -+ -+ if (next (nxdata, readonly) == -1) -+ return NULL; -+ -+ h = malloc (sizeof *h); -+ if (h == NULL) { -+ nbdkit_error ("malloc: %m"); -+ return NULL; -+ } -+ -+ bucket_init (&h->read_bucket, connection_rate, BUCKET_CAPACITY); -+ bucket_init (&h->write_bucket, connection_rate, BUCKET_CAPACITY); -+ pthread_mutex_init (&h->read_bucket_lock, NULL); -+ pthread_mutex_init (&h->write_bucket_lock, NULL); -+ -+ return h; -+} -+ -+/* Free up the per-connection handle. */ -+static void -+rate_close (void *handle) -+{ -+ struct rate_handle *h = handle; -+ -+ pthread_mutex_destroy (&h->read_bucket_lock); -+ pthread_mutex_destroy (&h->write_bucket_lock); -+ free (h); -+} -+ -+static inline void -+maybe_sleep (struct bucket *bucket, pthread_mutex_t *lock, uint32_t count) -+{ -+ struct timespec ts; -+ uint64_t bits; -+ -+ /* Count is in bytes, but we rate limit using bits. We could -+ * multiply this by 10 to include start/stop but let's not -+ * second-guess the transport layers underneath. -+ */ -+ bits = count * UINT64_C(8); -+ -+ while (bits > 0) { -+ /* Run the token bucket algorithm. */ -+ pthread_mutex_lock (lock); -+ bits = bucket_run (bucket, bits, &ts); -+ pthread_mutex_unlock (lock); -+ -+ if (bits > 0) -+ nanosleep (&ts, NULL); -+ } -+} -+ -+/* Read data. */ -+static int -+rate_pread (struct nbdkit_next_ops *next_ops, void *nxdata, -+ void *handle, void *buf, uint32_t count, uint64_t offset, -+ uint32_t flags, int *err) -+{ -+ struct rate_handle *h = handle; -+ -+ maybe_sleep (&read_bucket, &read_bucket_lock, count); -+ maybe_sleep (&h->read_bucket, &h->read_bucket_lock, count); -+ -+ return next_ops->pread (nxdata, buf, count, offset, flags, err); -+} -+ -+/* Write data. */ -+static int -+rate_pwrite (struct nbdkit_next_ops *next_ops, void *nxdata, -+ void *handle, -+ const void *buf, uint32_t count, uint64_t offset, uint32_t flags, -+ int *err) -+{ -+ struct rate_handle *h = handle; -+ -+ maybe_sleep (&write_bucket, &write_bucket_lock, count); -+ maybe_sleep (&h->write_bucket, &h->write_bucket_lock, count); -+ -+ return next_ops->pwrite (nxdata, buf, count, offset, flags, err); -+} -+ -+static struct nbdkit_filter filter = { -+ .name = "rate", -+ .longname = "nbdkit rate filter", -+ .version = PACKAGE_VERSION, -+ .config = rate_config, -+ .config_complete = rate_config_complete, -+ .config_help = rate_config_help, -+ .open = rate_open, -+ .close = rate_close, -+ .pread = rate_pread, -+ .pwrite = rate_pwrite, -+}; -+ -+NBDKIT_REGISTER_FILTER(filter) -diff --git a/TODO b/TODO -index 59590a1..b589127 100644 ---- a/TODO -+++ b/TODO -@@ -129,6 +129,15 @@ Suggestions for filters - * nbdkit-cache-filter should handle ENOSPC errors automatically by - reclaiming blocks from the cache - -+nbdkit-rate-filter: -+ -+* allow other kinds of traffic shaping such as VBR -+ -+* limit traffic per client (ie. per IP address) -+ -+* split large requests to avoid long, lumpy sleeps when request size -+ is much larger than rate limit -+ - Filters for security - -------------------- - -diff --git a/filters/rate/Makefile.am b/filters/rate/Makefile.am -new file mode 100644 -index 0000000..c39aa01 ---- /dev/null -+++ b/filters/rate/Makefile.am -@@ -0,0 +1,64 @@ -+# nbdkit -+# Copyright (C) 2018-2019 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+include $(top_srcdir)/common-rules.mk -+ -+EXTRA_DIST = nbdkit-rate-filter.pod -+ -+filter_LTLIBRARIES = nbdkit-rate-filter.la -+ -+nbdkit_rate_filter_la_SOURCES = \ -+ bucket.c \ -+ bucket.h \ -+ rate.c \ -+ $(top_srcdir)/include/nbdkit-filter.h -+ -+nbdkit_rate_filter_la_CPPFLAGS = \ -+ -I$(top_srcdir)/include \ -+ -I$(top_srcdir)/common/include -+nbdkit_rate_filter_la_CFLAGS = \ -+ $(WARNINGS_CFLAGS) -+nbdkit_rate_filter_la_LDFLAGS = \ -+ -module -avoid-version -shared \ -+ -Wl,--version-script=$(top_srcdir)/filters/filters.syms -+ -+if HAVE_POD -+ -+man_MANS = nbdkit-rate-filter.1 -+CLEANFILES += $(man_MANS) -+ -+nbdkit-rate-filter.1: nbdkit-rate-filter.pod -+ $(PODWRAPPER) --section=1 --man $@ \ -+ --html $(top_builddir)/html/$@.html \ -+ $< -+ -+endif HAVE_POD -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 3992d9b..d1e6f0e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1,5 +1,5 @@ - # nbdkit --# Copyright (C) 2013-2018 Red Hat Inc. -+# Copyright (C) 2013-2019 Red Hat Inc. - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without -@@ -97,6 +97,7 @@ EXTRA_DIST = \ - test-python-exception.sh \ - test.pl \ - test.py \ -+ test-rate.sh \ - test.rb \ - test.tcl \ - test-shebang-perl.sh \ -@@ -810,6 +811,9 @@ if HAVE_GUESTFISH - TESTS += test-partition2.sh - endif HAVE_GUESTFISH - -+# rate filter test. -+TESTS += test-rate.sh -+ - # truncate filter tests. - TESTS += \ - test-truncate1.sh \ -diff --git a/tests/test-rate.sh b/tests/test-rate.sh -new file mode 100755 -index 0000000..010ef19 ---- /dev/null -+++ b/tests/test-rate.sh -@@ -0,0 +1,60 @@ -+#!/usr/bin/env bash -+# nbdkit -+# Copyright (C) 2018-2019 Red Hat Inc. -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+source ./functions.sh -+set -e -+set -x -+ -+requires qemu-img --version -+ -+files="rate.img rate.time rate.err" -+rm -f $files -+cleanup_fn rm -f $files -+ -+# This should take no less than 20 seconds to run: -+# (8 * 25 * 1024 * 1024) / (10 * 1024 * 1024) = 20 -+ -+# We are using the bash time builtin, so setting TIMEFORMAT will -+# control the output format of the time builtin. For strange use of -+# { ; } here, see: https://stackoverflow.com/a/13356654 -+set +x -+{ TIMEFORMAT="%0R" ; time nbdkit --filter=rate memory size=25M rate=10M --run 'qemu-img convert -p $nbd rate.img' 2>rate.err ; } 2>rate.time -+set -x -+ -+cat rate.err ||: -+ -+seconds="$( cat rate.time )" -+if [ "$seconds" -lt 20 ]; then -+ echo "$0: rate filter failed: command took $seconds seconds, expected > 20" -+ exit 1 -+fi --- -2.20.1 - diff --git a/nbdkit.spec b/nbdkit.spec index ff4d5fa..8e9652c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,14 +25,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.11-development Name: nbdkit -Version: 1.11.6 -Release: 2%{?dist} +Version: 1.11.7 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -45,11 +45,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream fix to include directory. -Patch1: 0001-common-utils-Use-include-directory-to-get-nbdkit-plu.patch -# Posted but not upstream patch to add nbdkit-rate-filter. -Patch2: 0002-Add-new-filter-for-rate-limiting-connections.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -77,6 +72,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel +BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage BuildRequires: bash-completion @@ -209,7 +205,7 @@ This package contains example plugins for %{name}. # packaged separately. %package curl-plugin -Summary: HTTP/FTP/SSH (cURL) plugin for %{name} +Summary: HTTP/FTP (cURL) plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -220,7 +216,7 @@ Obsoletes: %{name}-plugin-curl <= %{version}-%{release} %description curl-plugin -This package contains cURL (HTTP/FTP/SSH) support for %{name}. +This package contains cURL (HTTP/FTP) support for %{name}. %package ext2-plugin @@ -449,6 +445,17 @@ Obsoletes: %{name}-plugin-ruby <= %{version}-%{release} This package lets you write Ruby plugins for %{name}. +%package ssh-plugin +Summary: SSH plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description ssh-plugin +This package contains SSH support for %{name}. + + %package tar-plugin Summary: Tar archive plugin for %{name} License: BSD @@ -992,6 +999,11 @@ popd %changelog +* Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-1 +- New upstream version 1.11.7. +- Add nbdkit ssh plugin. +- Remove patches already upstream. + * Tue Mar 05 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.6-2 - Add nbdkit rate filter. diff --git a/sources b/sources index 914e80c..cddc0c3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.6.tar.gz) = 2262533796a13f3097f2e892ef06122505810f8f7fb7b19d6e9b0aed0b612228181ea31048f6f818195b7cded4669948ca3ef74fca3e245661eee4cccfeb5276 -SHA512 (nbdkit-1.11.6.tar.gz.sig) = ec33f8cc713144309a9f0a517a278122f58daac7c43051c4d6f8fc73eac2f8aa12cc29f52e5886650e5c51c603bde0a8d3eab241d986845921144568f550c65f +SHA512 (nbdkit-1.11.7.tar.gz) = c86161122d4f1060eab0b2aba319e29944649b453c44d9a1f7d660cc0d01b953f3808bfe41fcbf8c932c0a7d73011a692445a18cd48e6f4f7bf83a66bd1c6abd +SHA512 (nbdkit-1.11.7.tar.gz.sig) = 89a0f77db0964219883802dc4060d6e645d4c826e35bfd1a3ba9412c291d7802c194b700105e2db35d876657099bb5d26990ad78e6b67f16ddfed3464e931d7b From 77e2d5c48db4aef87667d17fee6c87e48d107350 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 06:54:16 +0000 Subject: [PATCH 181/683] Add missing %files ssh-plugin section. --- nbdkit.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 8e9652c..cf54745 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -906,6 +906,13 @@ popd %{_mandir}/man3/nbdkit-ruby-plugin.3* +%files ssh-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-ssh-plugin.so +%{_mandir}/man1/nbdkit-ssh-plugin.1* + + %files tar-plugin %doc README %license LICENSE From 3bbb5060483c8a6b337729cd57b7ab9e9d8b0646 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 07:04:42 +0000 Subject: [PATCH 182/683] For Fedora 31 only, remove old Provides/Obsoletes. --- nbdkit.spec | 68 ----------------------------------------------------- 1 file changed, 68 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index cf54745..d11a3d5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -210,10 +210,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-curl = %{version}-%{release} -Obsoletes: %{name}-plugin-curl <= %{version}-%{release} - %description curl-plugin This package contains cURL (HTTP/FTP) support for %{name}. @@ -225,10 +221,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-ext2 = %{version}-%{release} -Obsoletes: %{name}-plugin-ext2 <= %{version}-%{release} - %description ext2-plugin This package contains ext2, ext3 and ext4 filesystem support for @@ -242,10 +234,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-guestfs = %{version}-%{release} -Obsoletes: %{name}-plugin-guestfs <= %{version}-%{release} - %description guestfs-plugin This package is a libguestfs plugin for %{name}. @@ -258,10 +246,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-gzip = %{version}-%{release} -Obsoletes: %{name}-plugin-gzip <= %{version}-%{release} - %description gzip-plugin This package is a gzip file serving plugin for %{name}. @@ -286,10 +270,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-libvirt = %{version}-%{release} -Obsoletes: %{name}-plugin-libvirt <= %{version}-%{release} - %description libvirt-plugin This package is a libvirt plugin for %{name}. It lets you access @@ -317,10 +297,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-lua = %{version}-%{release} -Obsoletes: %{name}-plugin-lua <= %{version}-%{release} - %description lua-plugin This package lets you write Lua plugins for %{name}. @@ -333,10 +309,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-ocaml = %{version}-%{release} -Obsoletes: %{name}-plugin-ocaml <= %{version}-%{release} - %description ocaml-plugin This package lets you run OCaml plugins for %{name}. @@ -352,10 +324,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-ocaml-devel = %{version}-%{release} -Obsoletes: %{name}-plugin-ocaml-devel <= %{version}-%{release} - %description ocaml-plugin-devel This package lets you write OCaml plugins for %{name}. @@ -368,10 +336,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-perl = %{version}-%{release} -Obsoletes: %{name}-plugin-perl <= %{version}-%{release} - %description perl-plugin This package lets you write Perl plugins for %{name}. @@ -383,10 +347,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-python-common = %{version}-%{release} -Obsoletes: %{name}-plugin-python-common <= %{version}-%{release} - %description python-plugin-common This package contains common files shared between Python 2 @@ -403,10 +363,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-python-plugin-common = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-python2 = %{version}-%{release} -Obsoletes: %{name}-plugin-python2 <= %{version}-%{release} - %description python2-plugin This package lets you write Python 2 plugins for %{name}. @@ -420,10 +376,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-python-plugin-common = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-python3 = %{version}-%{release} -Obsoletes: %{name}-plugin-python3 <= %{version}-%{release} - %description python3-plugin This package lets you write Python 3 plugins for %{name}. @@ -436,10 +388,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-ruby = %{version}-%{release} -Obsoletes: %{name}-plugin-ruby <= %{version}-%{release} - %description ruby-plugin This package lets you write Ruby plugins for %{name}. @@ -464,10 +412,6 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} # XXX This dependency should be autogenerated. Requires: %{name}-perl-plugin -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-tar = %{version}-%{release} -Obsoletes: %{name}-plugin-tar <= %{version}-%{release} - %description tar-plugin This package is a tar archive plugin for %{name}. @@ -479,10 +423,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-tcl = %{version}-%{release} -Obsoletes: %{name}-plugin-tcl <= %{version}-%{release} - %description tcl-plugin This package lets you write Tcl plugins for %{name}. @@ -495,10 +435,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-vddk = %{version}-%{release} -Obsoletes: %{name}-plugin-vddk <= %{version}-%{release} - %description vddk-plugin This package is a plugin for %{name} which connects to @@ -512,10 +448,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# For upgrade path, remove this in Fedora 31. -Provides: %{name}-plugin-xz = %{version}-%{release} -Obsoletes: %{name}-plugin-xz <= %{version}-%{release} - %description xz-plugin This package is a xz file serving plugin for %{name}. From 325808dc9d28efd3a7af3e8e0dbeefdc8ac14e0d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 07:54:49 +0000 Subject: [PATCH 183/683] Remove workaround for QEMU bug which is fixed in Fedora 30+. Make the tests run in parallel, otherwise they are too slow. --- nbdkit.spec | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d11a3d5..7fc457f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -640,16 +640,7 @@ mkdir -p $HOME/.cache/libvirt export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 -%ifarch %{complete_test_arches} -# qemu in Fedora Rawhide broken: -# https://bugzilla.redhat.com/show_bug.cgi?id=1650975 -make -C tests test-error -rm tests/test-error -touch tests/test-error -chmod +x tests/test-error -%endif - -make check -j1 || { +make %{?_smp_mflags} check || { cat tests/test-suite.log exit 1 } @@ -658,7 +649,7 @@ make check -j1 || { %if 0%{?have_libguestfs} %if 0%{?have_python3} pushd python3 -make check -j1 -C tests TESTS=test-python || { +make %{?_smp_mflags} check -C tests TESTS=test-python || { cat tests/test-suite.log exit 1 } From 49fbd7a7861b3ea7025475d032c03834417af863 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 07:55:42 +0000 Subject: [PATCH 184/683] For Fedora 31 only, rebuild without provides/obsoletes. --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7fc457f..ab38ea8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -32,7 +32,7 @@ Name: nbdkit Version: 1.11.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -929,6 +929,11 @@ popd %changelog +* Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-2 +- Remove Provides/Obsoletes in Fedora 31. +- Remove workaround for QEMU bug which is fixed in Fedora 30+. +- Make the tests run in parallel, otherwise they are too slow. + * Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-1 - New upstream version 1.11.7. - Add nbdkit ssh plugin. From 3dfe4e3c2e544e24debc37dc5600bf31e48d734d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Mar 2019 08:48:46 +0000 Subject: [PATCH 185/683] Remove Python 2 plugin completely. https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal --- nbdkit.spec | 132 +++++++--------------------------------------------- 1 file changed, 17 insertions(+), 115 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ab38ea8..36f91ea 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -11,11 +11,6 @@ # often broken on non-x86_64 arches. %global complete_test_arches x86_64 -# Currently everything has Python 2. RHEL 7 doesn't have Python 3. -%if 0%{?rhel} != 7 -%global have_python3 1 -%endif - # Disable libvirt on riscv64 for now. %ifnarch riscv64 %global have_libvirt 1 @@ -32,7 +27,7 @@ Name: nbdkit Version: 1.11.7 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -78,13 +73,7 @@ BuildRequires: genisoimage BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -BuildRequires: python2-devel -%if 0%{?fedora} >= 29 -BuildRequires: python-unversioned-command -%endif -%if 0%{?have_python3} BuildRequires: python3-devel -%endif %ifarch %{ocaml_native_compiler} # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 @@ -341,45 +330,21 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package lets you write Perl plugins for %{name}. -%package python-plugin-common -Summary: Python 2 and 3 plugin common files for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description python-plugin-common -This package contains common files shared between Python 2 -and Python 3 %{name} plugins. - -You should not install this package directly. Instead install -either %{name}-python2-plugin or %{name}-python3-plugin. - - -%package python2-plugin -Summary: Python 2 plugin for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: %{name}-python-plugin-common = %{version}-%{release} - - -%description python2-plugin -This package lets you write Python 2 plugins for %{name}. - - -%if 0%{?have_python3} -%package python3-plugin +%package python-plugin Summary: Python 3 plugin for %{name} License: BSD +# Remove in Fedora 33: +Provides: %{name}-python3-plugin = %{version}-%{release} +Obsoletes: %{name}-python3-plugin <= %{version}-%{release} +Provides: %{name}-python-plugin-common = %{version}-%{release} +Obsoletes: %{name}-python-plugin-common <= %{version}-%{release} + Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: %{name}-python-plugin-common = %{version}-%{release} -%description python3-plugin +%description python-plugin This package lets you write Python 3 plugins for %{name}. -%endif %package ruby-plugin @@ -548,13 +513,8 @@ autoreconf -i %build -# Build for Python 3 in a separate subdirectory. Upstream does not -# support srcdir!=builddir so copy the whole source. -copy="$(mktemp -d)" -cp -a . "$copy" -mv "$copy" python3 - %configure \ + PYTHON=%{_bindir}/python3 \ --disable-static \ %if 0%{?have_libguestfs} --with-libguestfs \ @@ -567,55 +527,16 @@ mv "$copy" python3 --without-libvirt \ %endif --with-tls-priority=@NBDKIT,SYSTEM -make %{?_smp_mflags} -%if 0%{?have_python3} -pushd python3 -export PYTHON=%{_bindir}/python3 -%configure \ - --disable-static \ - --disable-lua \ - --disable-perl \ - --disable-ocaml \ - --disable-ruby \ - --disable-tcl \ - --without-curl \ - --without-ext2 \ - --without-libvirt \ - --without-liblzma \ - --without-zlib # Verify that it picked the correct version of Python # to avoid RHBZ#1404631 happening again silently. grep '^PYTHON_VERSION = 3' Makefile + make %{?_smp_mflags} -unset PYTHON -popd -%endif %install -# Install for Python 2 and Python 3 separately. -# We do the Python 3 install first since that build is -# incomplete. -%if 0%{?have_python3} -pushd python3 %make_install -popd - -pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/ -mv nbdkit-python-plugin.so nbdkit-python3-plugin.so -popd -%endif - -%make_install - -pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/ -mv nbdkit-python-plugin.so nbdkit-python2-plugin.so -# For backwards compatibility, "the" python plugin is Python 2. -# Probably we will change this in future if Fedora switches -# exclusively to Python 3. -ln -s nbdkit-python2-plugin.so nbdkit-python-plugin.so -popd # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete @@ -645,19 +566,6 @@ make %{?_smp_mflags} check || { exit 1 } -%ifarch %{complete_test_arches} -%if 0%{?have_libguestfs} -%if 0%{?have_python3} -pushd python3 -make %{?_smp_mflags} check -C tests TESTS=test-python || { - cat tests/test-suite.log - exit 1 - } -popd -%endif -%endif -%endif - %ifarch %{ocaml_native_compiler} %ldconfig_scriptlets plugin-ocaml @@ -805,21 +713,11 @@ popd %{_mandir}/man3/nbdkit-perl-plugin.3* -%files python-plugin-common +%files python-plugin %doc README %license LICENSE -%{_mandir}/man3/nbdkit-python-plugin.3* - - -%files python2-plugin %{_libdir}/%{name}/plugins/nbdkit-python-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so - - -%if 0%{?have_python3} -%files python3-plugin -%{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so -%endif +%{_mandir}/man3/nbdkit-python-plugin.3* %files ruby-plugin @@ -929,6 +827,10 @@ popd %changelog +* Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-3 +- Remove Python 2 plugin completely. + https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + * Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-2 - Remove Provides/Obsoletes in Fedora 31. - Remove workaround for QEMU bug which is fixed in Fedora 30+. From 53b3645e714bea1a82f364a99f1cc822f8d7df33 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 12 Mar 2019 21:55:13 +0000 Subject: [PATCH 186/683] New upstream version 1.11.8. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 36f91ea..0d0bb26 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,8 +26,8 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.7 -Release: 3%{?dist} +Version: 1.11.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -827,6 +827,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Mar 12 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.8-1 +- New upstream version 1.11.8. + * Thu Mar 07 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.7-3 - Remove Python 2 plugin completely. https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal diff --git a/sources b/sources index cddc0c3..94f6c82 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.7.tar.gz) = c86161122d4f1060eab0b2aba319e29944649b453c44d9a1f7d660cc0d01b953f3808bfe41fcbf8c932c0a7d73011a692445a18cd48e6f4f7bf83a66bd1c6abd -SHA512 (nbdkit-1.11.7.tar.gz.sig) = 89a0f77db0964219883802dc4060d6e645d4c826e35bfd1a3ba9412c291d7802c194b700105e2db35d876657099bb5d26990ad78e6b67f16ddfed3464e931d7b +SHA512 (nbdkit-1.11.8.tar.gz) = 80b56c7cdfa56dfa259c8e04161a6127a933c7ca7b8f3de52ae76ef57d5f7b3de4ba5abe0aae3012a40ce16d3b1aabadf18e9cf740cf4320c8a7996ef6648e02 +SHA512 (nbdkit-1.11.8.tar.gz.sig) = eff8330ba8e463e35e7639c346c05a3f9bfce7f18e9073627f38a3ab414d27b924f67733ceb815afc4b5d53468f78532e7ef53ce95e5d6f79c1a8df714815d58 From 43f581b4342fbc586dfc762658fbf9a756a2cac9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 12 Mar 2019 22:14:58 +0000 Subject: [PATCH 187/683] tests: Use a more robust method to create the test disk atomically. --- ...-robust-method-to-create-the-test-di.patch | 31 +++++++++++++++++++ nbdkit.spec | 6 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch diff --git a/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch b/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch new file mode 100644 index 0000000..71ecdc6 --- /dev/null +++ b/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch @@ -0,0 +1,31 @@ +From 183d81fa792fd024f62d068ead9cad0cc53d3c8e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 12 Mar 2019 22:13:24 +0000 +Subject: [PATCH] tests: Use a more robust method to create the test disk + atomically. + +--- + tests/Makefile.am | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 1712565..f50a35e 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -334,9 +334,10 @@ check_DATA += disk + CLEANFILES += disk + + disk: +- rm -f $@ test1.img +- guestfish -N fs:ext4:100M -m /dev/sda1 write /hello.txt "hello,world" +- mv test1.img disk ++ rm -f $@ $@-t ++ guestfish -N $@-t=fs:ext4:100M -m /dev/sda1 \ ++ write /hello.txt "hello,world" ++ mv $@-t $@ + + endif HAVE_GUESTFISH + +-- +2.20.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 0d0bb26..eb43be7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,7 +20,8 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +#%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.11-development @@ -40,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch for tests. +Patch1: 0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 214b66bb6ff281336305c4b96161e73b3aab9bc4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 12 Mar 2019 22:21:01 +0000 Subject: [PATCH 188/683] +BR ssh-keygen. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index eb43be7..bf3f3df 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -95,6 +95,7 @@ BuildRequires: /usr/bin/certtool BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/socat BuildRequires: /usr/sbin/ss +BuildRequires: /usr/bin/ssh-keygen # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. From ff7421fe0e4aa28bc540e673fbd5b2866c7f81e0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 23 Mar 2019 12:15:22 +0000 Subject: [PATCH 189/683] New upstream version 1.11.9. --- ...-robust-method-to-create-the-test-di.patch | 31 ------------------- nbdkit.spec | 11 +++---- 2 files changed, 5 insertions(+), 37 deletions(-) delete mode 100644 0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch diff --git a/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch b/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch deleted file mode 100644 index 71ecdc6..0000000 --- a/0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 183d81fa792fd024f62d068ead9cad0cc53d3c8e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 12 Mar 2019 22:13:24 +0000 -Subject: [PATCH] tests: Use a more robust method to create the test disk - atomically. - ---- - tests/Makefile.am | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 1712565..f50a35e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -334,9 +334,10 @@ check_DATA += disk - CLEANFILES += disk - - disk: -- rm -f $@ test1.img -- guestfish -N fs:ext4:100M -m /dev/sda1 write /hello.txt "hello,world" -- mv test1.img disk -+ rm -f $@ $@-t -+ guestfish -N $@-t=fs:ext4:100M -m /dev/sda1 \ -+ write /hello.txt "hello,world" -+ mv $@-t $@ - - endif HAVE_GUESTFISH - --- -2.20.1 - diff --git a/nbdkit.spec b/nbdkit.spec index bf3f3df..da9ad63 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -20,14 +20,13 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -#%global patches_touch_autotools %{nil} -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.11-development Name: nbdkit -Version: 1.11.8 +Version: 1.11.9 Release: 1%{?dist} Summary: NBD server @@ -41,9 +40,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch for tests. -Patch1: 0001-tests-Use-a-more-robust-method-to-create-the-test-di.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -832,6 +828,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Mar 23 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.9-1 +- New upstream version 1.11.9. + * Tue Mar 12 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.8-1 - New upstream version 1.11.8. From 74708da224755c55f46b5ebe6f8cbf8721a8a995 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 23 Mar 2019 12:19:10 +0000 Subject: [PATCH 190/683] Forgot to upload sources to previous commit. --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 94f6c82..79d4b48 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.8.tar.gz) = 80b56c7cdfa56dfa259c8e04161a6127a933c7ca7b8f3de52ae76ef57d5f7b3de4ba5abe0aae3012a40ce16d3b1aabadf18e9cf740cf4320c8a7996ef6648e02 -SHA512 (nbdkit-1.11.8.tar.gz.sig) = eff8330ba8e463e35e7639c346c05a3f9bfce7f18e9073627f38a3ab414d27b924f67733ceb815afc4b5d53468f78532e7ef53ce95e5d6f79c1a8df714815d58 +SHA512 (nbdkit-1.11.9.tar.gz) = 99e19ac13b02f0c6b95eb3f78ad014900cab143d5769996d4c23193f4975701cb6cdc59a23c1a078f3e5e4e61be5761c60c818ab930f6d0e4900e363f3a6a2c5 +SHA512 (nbdkit-1.11.9.tar.gz.sig) = f83101b97c7b187418e95f285f2afcd8e217a62bfd9bb0e8dd34083ecca6c39ce1a2400793b1078faa5d6391fc0455b09f93566e42239c993bdbdd905c00531f From db3a28f0a7790daa0728d6015d4f8f39a0b80fc7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 23 Mar 2019 18:09:39 +0000 Subject: [PATCH 191/683] Disable full tests on x86_64. Because of RHBZ#1692047 --- nbdkit.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index da9ad63..d1de0a0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -9,7 +9,8 @@ # On all other architectures, a simpler test suite must pass. This # omits any tests that run full qemu, since running qemu under TCG is # often broken on non-x86_64 arches. -%global complete_test_arches x86_64 +# x86_64 is currently broken in F31 by https://bugzilla.redhat.com/1692047 +%global complete_test_arches NONE # Disable libvirt on riscv64 for now. %ifnarch riscv64 From 60d0fe0e688f1708076e2e72e2797321e03a6179 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 28 Mar 2019 16:36:44 +0000 Subject: [PATCH 192/683] New upstream version 1.11.10. --- nbdkit.spec | 6 +++++- sources | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d1de0a0..c591ffe 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.9 +Version: 1.11.10 Release: 1%{?dist} Summary: NBD server @@ -89,6 +89,7 @@ BuildRequires: gnupg2 # Only for running the test suite: BuildRequires: /usr/bin/certtool +BuildRequires: jq BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/socat BuildRequires: /usr/sbin/ss @@ -829,6 +830,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Mar 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.10-1 +- New upstream version 1.11.10. + * Sat Mar 23 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.9-1 - New upstream version 1.11.9. diff --git a/sources b/sources index 79d4b48..ddc5be2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.9.tar.gz) = 99e19ac13b02f0c6b95eb3f78ad014900cab143d5769996d4c23193f4975701cb6cdc59a23c1a078f3e5e4e61be5761c60c818ab930f6d0e4900e363f3a6a2c5 -SHA512 (nbdkit-1.11.9.tar.gz.sig) = f83101b97c7b187418e95f285f2afcd8e217a62bfd9bb0e8dd34083ecca6c39ce1a2400793b1078faa5d6391fc0455b09f93566e42239c993bdbdd905c00531f +SHA512 (nbdkit-1.11.10.tar.gz) = 8fa205a60579e1c54c61ec6e0d37b78f75b3bc42286749e9cbc335a9369679777cf451f38c40778ef201b530bb3cb4bb2af55bd07b9a0ae4dc67f4b838b0e5f0 +SHA512 (nbdkit-1.11.10.tar.gz.sig) = 3aae4592b34fae6dbb7cdd90dec0462dee09bdd2afd9d54923261abdafa01c4c15526916779dd689854c09102dfb87dbef57bf2b32537e0ae5b8b0bc6ce37566 From 929d1f7a4e2bcf40aefe93b1accdea86e9d4f65f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 29 Mar 2019 13:54:47 +0000 Subject: [PATCH 193/683] New upstream version 1.11.11. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c591ffe..5c7e58b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.10 +Version: 1.11.11 Release: 1%{?dist} Summary: NBD server @@ -830,6 +830,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Mar 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.11-1 +- New upstream version 1.11.11. + * Thu Mar 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.10-1 - New upstream version 1.11.10. diff --git a/sources b/sources index ddc5be2..83c6570 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.10.tar.gz) = 8fa205a60579e1c54c61ec6e0d37b78f75b3bc42286749e9cbc335a9369679777cf451f38c40778ef201b530bb3cb4bb2af55bd07b9a0ae4dc67f4b838b0e5f0 -SHA512 (nbdkit-1.11.10.tar.gz.sig) = 3aae4592b34fae6dbb7cdd90dec0462dee09bdd2afd9d54923261abdafa01c4c15526916779dd689854c09102dfb87dbef57bf2b32537e0ae5b8b0bc6ce37566 +SHA512 (nbdkit-1.11.11.tar.gz) = 85569fde8ac96b69d09ebf6c7fef22bde3a447764fc08b1b32112536088b5d60e18ce8086527bf9d1a58c656ba79c8f20c3161ab020e1b4b00cbe745046e8408 +SHA512 (nbdkit-1.11.11.tar.gz.sig) = 7f2545ec3a21ef771dc16ef6ab348761211bf4d597da9257f15a26f77fb2817baa9d69ad51b9748408c3ab29dfff4bc4052131d33850ed57ed8694813b5e2f70 From 4e9723a10711c451b149de66f422775da383e561 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Apr 2019 12:11:49 +0100 Subject: [PATCH 194/683] New upstream version 1.11.12. New nbdkit-readahead-filter. --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5c7e58b..4d24f80 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.11 +Version: 1.11.12 Release: 1%{?dist} Summary: NBD server @@ -457,6 +457,8 @@ nbdkit-partition-filter Serve a single partition. nbdkit-rate-filter Limit bandwidth by connection or server. +nbdkit-readahead-filter Prefetch data when reading sequentially. + nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -781,6 +783,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so +%{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* @@ -793,6 +796,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1* +%{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -830,6 +834,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue Apr 02 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.12-1 +- New upstream version 1.11.12. +- New nbdkit-readahead-filter. + * Fri Mar 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.11-1 - New upstream version 1.11.11. diff --git a/sources b/sources index 83c6570..551e661 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.11.tar.gz) = 85569fde8ac96b69d09ebf6c7fef22bde3a447764fc08b1b32112536088b5d60e18ce8086527bf9d1a58c656ba79c8f20c3161ab020e1b4b00cbe745046e8408 -SHA512 (nbdkit-1.11.11.tar.gz.sig) = 7f2545ec3a21ef771dc16ef6ab348761211bf4d597da9257f15a26f77fb2817baa9d69ad51b9748408c3ab29dfff4bc4052131d33850ed57ed8694813b5e2f70 +SHA512 (nbdkit-1.11.12.tar.gz) = 94e815915682807e326aa6b3c956dae1214807452535d8206122a4f1e834d2e46e327e87602ac18b283b96a956b41eb3e1ae54cdff5ab2c32f955ac6cd799985 +SHA512 (nbdkit-1.11.12.tar.gz.sig) = 2fc24dc3a3369c5c26a5187630859d44321db1800c7600adad616017ee79149f0e2fb4d8cbe01c5cf3c7d0a4bd81601a74d8bc61f0ea842c5c31540146efc047 From f2d242ec5daa0420be798b343ab50907c921a22f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Apr 2019 22:14:36 +0100 Subject: [PATCH 195/683] New upstream version 1.11.13. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4d24f80..55e0527 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.12 +Version: 1.11.13 Release: 1%{?dist} Summary: NBD server @@ -834,6 +834,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Apr 02 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.13-1 +- New upstream version 1.11.13. + * Tue Apr 02 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.12-1 - New upstream version 1.11.12. - New nbdkit-readahead-filter. diff --git a/sources b/sources index 551e661..897b56c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.12.tar.gz) = 94e815915682807e326aa6b3c956dae1214807452535d8206122a4f1e834d2e46e327e87602ac18b283b96a956b41eb3e1ae54cdff5ab2c32f955ac6cd799985 -SHA512 (nbdkit-1.11.12.tar.gz.sig) = 2fc24dc3a3369c5c26a5187630859d44321db1800c7600adad616017ee79149f0e2fb4d8cbe01c5cf3c7d0a4bd81601a74d8bc61f0ea842c5c31540146efc047 +SHA512 (nbdkit-1.11.13.tar.gz) = 97a8204f5665d3a0a46a621a50e6158c852391916a73fee1fe682c4330cc9ba6cba94859d1cdc0ce5f48f11601ae11892b81efd16f6666d9828da9e5f6d95f6e +SHA512 (nbdkit-1.11.13.tar.gz.sig) = 2bc20b83f905d02690bab64cf23373ea3cdb9f45118dd321216742d29afb48b1140bc861b60479bebc42319163931fb16f9efa69fcadf68c6da77663b6782068 From a7dbaded7d4bb759c44dc86535032bf003102d29 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 6 Apr 2019 16:14:09 +0100 Subject: [PATCH 196/683] New upstream version 1.11.14. Remove deprecated nbdkit-xz-plugin (replaced by nbdkit-xz-filter). --- nbdkit.spec | 31 +++++++++---------------------- sources | 4 ++-- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 55e0527..1a0eca8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.13 +Version: 1.11.14 Release: 1%{?dist} Summary: NBD server @@ -410,20 +410,6 @@ VMware VDDK for accessing VMware disks and servers. %endif -%package xz-plugin -Summary: XZ file serving plugin for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description xz-plugin -This package is a xz file serving plugin for %{name}. - -This is deprecated and will be removed in %{name} 1.12. You should -start to use %{name}-xz-filter instead. - - %package basic-filters Summary: Basic filters for %{name} License: BSD @@ -468,6 +454,10 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +# Remove in Fedora 33: +Provides: %{name}-xz-plugin = %{version}-%{release} +Obsoletes: %{name}-xz-plugin <= %{version}-%{release} + %description xz-filter This package is the xz filter for %{name}. @@ -762,13 +752,6 @@ make %{?_smp_mflags} check || { %endif -%files xz-plugin -%doc README -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so -%{_mandir}/man1/nbdkit-xz-plugin.1* - - %files basic-filters %doc README %license LICENSE @@ -834,6 +817,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Apr 06 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.14-1 +- New upstream version 1.11.14. +- Remove deprecated nbdkit-xz-plugin (replaced by nbdkit-xz-filter). + * Tue Apr 02 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.13-1 - New upstream version 1.11.13. diff --git a/sources b/sources index 897b56c..5c00cc8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.13.tar.gz) = 97a8204f5665d3a0a46a621a50e6158c852391916a73fee1fe682c4330cc9ba6cba94859d1cdc0ce5f48f11601ae11892b81efd16f6666d9828da9e5f6d95f6e -SHA512 (nbdkit-1.11.13.tar.gz.sig) = 2bc20b83f905d02690bab64cf23373ea3cdb9f45118dd321216742d29afb48b1140bc861b60479bebc42319163931fb16f9efa69fcadf68c6da77663b6782068 +SHA512 (nbdkit-1.11.14.tar.gz) = fc3ef8ea1f925f4f97c928f6f9f1b85e3165fbd2a9de0a0a62389033e416375cb13cc91581594560a7fab11714328137970b108c69070c336ab59c835831efc4 +SHA512 (nbdkit-1.11.14.tar.gz.sig) = a280b8502070535b304302f60fc94acf9488b8a96b1ddc4a75de866e5438da58d504ef62b17ea7a61f922d6d727c660c06841721c6090d4bf9fab2d41f0c7ef9 From 543e91948eec51f2809d2bb028a271d5bd22da5f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 8 Apr 2019 21:35:56 +0100 Subject: [PATCH 197/683] New upstream version 1.11.15. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1a0eca8..199a608 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.11-development Name: nbdkit -Version: 1.11.14 +Version: 1.11.15 Release: 1%{?dist} Summary: NBD server @@ -817,6 +817,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Apr 08 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.15-1 +- New upstream version 1.11.15. + * Sat Apr 06 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.14-1 - New upstream version 1.11.14. - Remove deprecated nbdkit-xz-plugin (replaced by nbdkit-xz-filter). diff --git a/sources b/sources index 5c00cc8..8576ce6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.14.tar.gz) = fc3ef8ea1f925f4f97c928f6f9f1b85e3165fbd2a9de0a0a62389033e416375cb13cc91581594560a7fab11714328137970b108c69070c336ab59c835831efc4 -SHA512 (nbdkit-1.11.14.tar.gz.sig) = a280b8502070535b304302f60fc94acf9488b8a96b1ddc4a75de866e5438da58d504ef62b17ea7a61f922d6d727c660c06841721c6090d4bf9fab2d41f0c7ef9 +SHA512 (nbdkit-1.11.15.tar.gz) = e1fbe99fd61c0aabf340a15a09fdd7026f890d17ed31cfe5c37ef86c8afb3247921dfa31e2862968b3374c81ae82ffc1a3611469ac8bd850684a8c7fc8d7464e +SHA512 (nbdkit-1.11.15.tar.gz.sig) = 3785b13b3d21e8ee166522de4e2f3c9291489490aeb7e92a45a379f09b6c1edabbdceac91f459f22b1f143a319d86ef571c7132f1a62467fc37007979a749afc From 08e33b1f6db80c290c55ec2ae378ade888335398 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 10 Apr 2019 13:45:05 +0100 Subject: [PATCH 198/683] New upstream version 1.12.0. Add noextents filter. --- nbdkit.spec | 12 ++++++++++-- sources | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 199a608..adfd783 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,10 +24,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.11-development +%global source_directory 1.12-stable Name: nbdkit -Version: 1.11.15 +Version: 1.12.0 Release: 1%{?dist} Summary: NBD server @@ -435,6 +435,8 @@ nbdkit-fua-filter Modify flush behaviour in plugins. nbdkit-log-filter Log all transactions to a file. +nbdkit-noextents-filter Disable extents in the underlying plugin. + nbdkit-nozero-filter Adjust handling of zero requests by plugins. nbdkit-offset-filter Serve an offset and range. @@ -762,6 +764,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so +%{_libdir}/%{name}/filters/nbdkit-noextents-filter.so %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so @@ -775,6 +778,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* +%{_mandir}/man1/nbdkit-noextents-filter.1* %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* @@ -817,6 +821,10 @@ make %{?_smp_mflags} check || { %changelog +* Wed Apr 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-1 +- New upstream version 1.12.0. +- Add noextents filter. + * Mon Apr 08 2019 Richard W.M. Jones <rjones@redhat.com> - 1.11.15-1 - New upstream version 1.11.15. diff --git a/sources b/sources index 8576ce6..f87841a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.11.15.tar.gz) = e1fbe99fd61c0aabf340a15a09fdd7026f890d17ed31cfe5c37ef86c8afb3247921dfa31e2862968b3374c81ae82ffc1a3611469ac8bd850684a8c7fc8d7464e -SHA512 (nbdkit-1.11.15.tar.gz.sig) = 3785b13b3d21e8ee166522de4e2f3c9291489490aeb7e92a45a379f09b6c1edabbdceac91f459f22b1f143a319d86ef571c7132f1a62467fc37007979a749afc +SHA512 (nbdkit-1.12.0.tar.gz) = 9587ef2823f27b91a6e20285cfedc531d8ce4cf375bb50688c7214b2c60e109fbbcbffae711d59dc83ce39f46707fbf21e953997b496c882a792351c0bdf079e +SHA512 (nbdkit-1.12.0.tar.gz.sig) = 4451e5ce8ebebcbc89cc113af11596ac16aa607649731759862d1c44a92a746a04d1ff2450da6a8a1be486bde5df84420d98690b595c7c53f6b322ca7f2a7d8c From 80675284f1066da61f49b478bc78772d050d9d14 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 13 Apr 2019 08:27:21 +0100 Subject: [PATCH 199/683] New upstream version 1.13.0. Add stats filter. --- nbdkit.spec | 12 ++++++++++-- sources | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index adfd783..faaf727 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,10 +24,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.12-stable +%global source_directory 1.13-development Name: nbdkit -Version: 1.12.0 +Version: 1.13.0 Release: 1%{?dist} Summary: NBD server @@ -447,6 +447,8 @@ nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. +nbdkit-stats-filter Display statistics about operations. + nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -770,6 +772,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so +%{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* @@ -784,6 +787,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* +%{_mandir}/man1/nbdkit-stats-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -821,6 +825,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Apr 13 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.0-1 +- New upstream version 1.13.0. +- Add stats filter. + * Wed Apr 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-1 - New upstream version 1.12.0. - Add noextents filter. diff --git a/sources b/sources index f87841a..ac11ed3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.12.0.tar.gz) = 9587ef2823f27b91a6e20285cfedc531d8ce4cf375bb50688c7214b2c60e109fbbcbffae711d59dc83ce39f46707fbf21e953997b496c882a792351c0bdf079e -SHA512 (nbdkit-1.12.0.tar.gz.sig) = 4451e5ce8ebebcbc89cc113af11596ac16aa607649731759862d1c44a92a746a04d1ff2450da6a8a1be486bde5df84420d98690b595c7c53f6b322ca7f2a7d8c +SHA512 (nbdkit-1.13.0.tar.gz) = 3e4957aff0109b2e24826fd79b8112553393ec88e738b8665f6a93fe4a608371073a3f375182c3835a984e9e3cb4ebaf7b5bc2296c6774eb96ca5c294292ed31 +SHA512 (nbdkit-1.13.0.tar.gz.sig) = c396a3ecb0dc2e1154305bcf65d422d5036c708296b137b6be4b3a42bcc2c2463cf3886a6983674edc9a4796a3dea744f9eaeb4f9523500280d4718f8027b6d7 From acd3b8e9711b1562a63fe299d2db3209a0541818 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Apr 2019 18:03:50 +0100 Subject: [PATCH 200/683] New upstream version 1.13.1. Distribute BENCHMARKING and SECURITY files. Includes a fix for possible remote memory heap leak with user plugins. --- nbdkit.spec | 9 +++++++-- sources | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index faaf727..052c310 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.0 +Version: 1.13.1 Release: 1%{?dist} Summary: NBD server @@ -799,7 +799,7 @@ make %{?_smp_mflags} check || { %files devel -%doc OTHER_PLUGINS README TODO +%doc BENCHMARKING OTHER_PLUGINS README SECURITY TODO %license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c @@ -825,6 +825,11 @@ make %{?_smp_mflags} check || { %changelog +* Tue Apr 23 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.1-1 +- New upstream version 1.13.1. +- Distribute BENCHMARKING and SECURITY files. +- Includes a fix for possible remote memory heap leak with user plugins. + * Sat Apr 13 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.0-1 - New upstream version 1.13.0. - Add stats filter. diff --git a/sources b/sources index ac11ed3..a3ab73c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.0.tar.gz) = 3e4957aff0109b2e24826fd79b8112553393ec88e738b8665f6a93fe4a608371073a3f375182c3835a984e9e3cb4ebaf7b5bc2296c6774eb96ca5c294292ed31 -SHA512 (nbdkit-1.13.0.tar.gz.sig) = c396a3ecb0dc2e1154305bcf65d422d5036c708296b137b6be4b3a42bcc2c2463cf3886a6983674edc9a4796a3dea744f9eaeb4f9523500280d4718f8027b6d7 +SHA512 (nbdkit-1.13.1.tar.gz) = 7e5d46518a9dcaf429154e4b7a6fae85937544eb69dff6b637b99025bb0248aec39947c1196305d4dc99cb743cc59f0d6003caa3d28be2d09c35c28a6348a149 +SHA512 (nbdkit-1.13.1.tar.gz.sig) = 7ff2b53dfb86d8b55f720ae80e2c07f3696e23a32fc81ecc73380f590b7c7e67c97cb255da0a2d0f421e982e9228eaf2eb1345aacb52eb35d73c237d238774ec From 604162381230943a5eb23538e69f26a8f4cf65a9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 24 Apr 2019 22:29:53 +0100 Subject: [PATCH 201/683] New upstream version 1.13.2. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 052c310..12bb9ba 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.1 +Version: 1.13.2 Release: 1%{?dist} Summary: NBD server @@ -825,6 +825,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Apr 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.2-1 +- New upstream version 1.13.2. + * Tue Apr 23 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.1-1 - New upstream version 1.13.1. - Distribute BENCHMARKING and SECURITY files. diff --git a/sources b/sources index a3ab73c..1a3c783 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.1.tar.gz) = 7e5d46518a9dcaf429154e4b7a6fae85937544eb69dff6b637b99025bb0248aec39947c1196305d4dc99cb743cc59f0d6003caa3d28be2d09c35c28a6348a149 -SHA512 (nbdkit-1.13.1.tar.gz.sig) = 7ff2b53dfb86d8b55f720ae80e2c07f3696e23a32fc81ecc73380f590b7c7e67c97cb255da0a2d0f421e982e9228eaf2eb1345aacb52eb35d73c237d238774ec +SHA512 (nbdkit-1.13.2.tar.gz) = e02f0fb66f717b4fec95bb12197c81bd269d7e5a165d8cb496f79d0225218f58b369f5b4f5e2d4bdc228dbc536c6d802889835994e0cc21d124d5fa9d1e05bb1 +SHA512 (nbdkit-1.13.2.tar.gz.sig) = 4846c36fcc1c9217c569b9b898164f1602433ca2eb3bc2aff0f6608c95fecf78b974776001bc3b8215fd6715c3ea5973ddacf7211ad0e87778ca356cc23c597a From ba5e3c8f4fa0243566ec293d7635f17809ec4533 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 27 Apr 2019 21:36:23 +0100 Subject: [PATCH 202/683] New upstream version 1.13.3. Add OCaml example to devel subpackage. --- nbdkit.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 12bb9ba..6d11256 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.2 +Version: 1.13.3 Release: 1%{?dist} Summary: NBD server @@ -805,6 +805,7 @@ make %{?_smp_mflags} check || { %doc plugins/example*/*.c %doc plugins/example4/nbdkit-example4-plugin %doc plugins/lua/example.lua +%doc plugins/ocaml/example.ml %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb @@ -825,6 +826,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Apr 27 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.3-1 +- New upstream version 1.13.3. +- Add OCaml example to devel subpackage. + * Wed Apr 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.2-1 - New upstream version 1.13.2. diff --git a/sources b/sources index 1a3c783..da0f922 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.2.tar.gz) = e02f0fb66f717b4fec95bb12197c81bd269d7e5a165d8cb496f79d0225218f58b369f5b4f5e2d4bdc228dbc536c6d802889835994e0cc21d124d5fa9d1e05bb1 -SHA512 (nbdkit-1.13.2.tar.gz.sig) = 4846c36fcc1c9217c569b9b898164f1602433ca2eb3bc2aff0f6608c95fecf78b974776001bc3b8215fd6715c3ea5973ddacf7211ad0e87778ca356cc23c597a +SHA512 (nbdkit-1.13.3.tar.gz) = 48030a4b0970dc700dee6f445f3bf8a9440fd7853a16597bf4a89bfcdd218ef2e1190916f0f7140ae499a8763d2623886343f109766b98f2e5030a1bffcdc19f +SHA512 (nbdkit-1.13.3.tar.gz.sig) = 55c42491a98e2b2fb72d6b3f99f1666fbe8a9ddc8866233441774ad736fe2a7108fadb7b0d957fb9a69cc31219e5deec3715752eaf8a0cfee39e327c93c4d1ec From 49191054378215261532e0b2cc11896405a86eb4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 21 May 2019 10:56:36 +0100 Subject: [PATCH 203/683] New upstream version 1.13.4. Add new filters: nocache, noparallel. --- nbdkit.spec | 14 +++++++++++++- sources | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6d11256..e401381 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.3 +Version: 1.13.4 Release: 1%{?dist} Summary: NBD server @@ -435,8 +435,12 @@ nbdkit-fua-filter Modify flush behaviour in plugins. nbdkit-log-filter Log all transactions to a file. +nbdkit-nocache-filter Disable cache requests in the underlying plugin. + nbdkit-noextents-filter Disable extents in the underlying plugin. +nbdkit-noparallel-filter Serialize requests to the underlying plugin. + nbdkit-nozero-filter Adjust handling of zero requests by plugins. nbdkit-offset-filter Serve an offset and range. @@ -766,7 +770,9 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so +%{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so +%{_libdir}/%{name}/filters/nbdkit-noparallel-filter.so %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so @@ -781,7 +787,9 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* +%{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* +%{_mandir}/man1/nbdkit-noparallel-filter.1* %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* @@ -826,6 +834,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue May 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.4-1 +- New upstream version 1.13.4. +- Add new filters: nocache, noparallel. + * Sat Apr 27 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.3-1 - New upstream version 1.13.3. - Add OCaml example to devel subpackage. diff --git a/sources b/sources index da0f922..68733c3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.3.tar.gz) = 48030a4b0970dc700dee6f445f3bf8a9440fd7853a16597bf4a89bfcdd218ef2e1190916f0f7140ae499a8763d2623886343f109766b98f2e5030a1bffcdc19f -SHA512 (nbdkit-1.13.3.tar.gz.sig) = 55c42491a98e2b2fb72d6b3f99f1666fbe8a9ddc8866233441774ad736fe2a7108fadb7b0d957fb9a69cc31219e5deec3715752eaf8a0cfee39e327c93c4d1ec +SHA512 (nbdkit-1.13.4.tar.gz) = 6787f43ada427646b6356b11a701673853d188e96a9314b81c3aac04b05fbf8fc50cb360c813a4bb8f55e16bde31696b4b15096f9d34e21b9b4c0eec69afcfb3 +SHA512 (nbdkit-1.13.4.tar.gz.sig) = dd2d5a56bdf071606bd7feb7b85ef1dfb111b1cffc4c4b30f3626a8b3c4f76ec465befda7b04b5d2fffbeacb8c50586ddf9b5701984893397638a32b0875771c From 5f78e80098592d5499868ad9ce16f033e1d4118a Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Thu, 30 May 2019 13:35:29 +0200 Subject: [PATCH 204/683] Perl 5.30 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index e401381..105c06e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -834,6 +834,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.13.4-2 +- Perl 5.30 rebuild + * Tue May 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.4-1 - New upstream version 1.13.4. - Add new filters: nocache, noparallel. From bcc9a0a63c6fd2198809d8cc730bc5a01c3e265a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 9 Jun 2019 22:07:26 +0100 Subject: [PATCH 205/683] New upstream version 1.13.5. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 105c06e..d1bdb7b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,8 +27,8 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.4 -Release: 2%{?dist} +Version: 1.13.5 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -834,6 +834,9 @@ make %{?_smp_mflags} check || { %changelog +* Sun Jun 09 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.5-1 +- New upstream version 1.13.5. + * Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.13.4-2 - Perl 5.30 rebuild diff --git a/sources b/sources index 68733c3..601d746 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.4.tar.gz) = 6787f43ada427646b6356b11a701673853d188e96a9314b81c3aac04b05fbf8fc50cb360c813a4bb8f55e16bde31696b4b15096f9d34e21b9b4c0eec69afcfb3 -SHA512 (nbdkit-1.13.4.tar.gz.sig) = dd2d5a56bdf071606bd7feb7b85ef1dfb111b1cffc4c4b30f3626a8b3c4f76ec465befda7b04b5d2fffbeacb8c50586ddf9b5701984893397638a32b0875771c +SHA512 (nbdkit-1.13.5.tar.gz) = 0fd5b492f1a14de32fde091e9ce53cd733ae862ffc3bfd9abf50132a12f89422f244839d9e6d41e296cbf3f06dcd354d92f18cc043caea7337bca877787955ff +SHA512 (nbdkit-1.13.5.tar.gz.sig) = 70ffa7c620a4866ae03f7cf51ab92f66f7bd26b04e83217a3392bfe319d26f153aa919189c58aee3c19f2c016a09c50233cb5322248461ce7016a2139f41d39c From fec2da296e4b62ab2a9e97dcff8736dd12e9182c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 10 Jun 2019 09:38:05 +0100 Subject: [PATCH 206/683] Further fix for Python 3.8 embed brokenness. --- ...Further-fix-for-Python-3.8-embedding.patch | 49 +++++++++++++++++++ nbdkit.spec | 9 +++- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 0001-python-Further-fix-for-Python-3.8-embedding.patch diff --git a/0001-python-Further-fix-for-Python-3.8-embedding.patch b/0001-python-Further-fix-for-Python-3.8-embedding.patch new file mode 100644 index 0000000..438cff9 --- /dev/null +++ b/0001-python-Further-fix-for-Python-3.8-embedding.patch @@ -0,0 +1,49 @@ +From 4840b5e8293287af45f1e6062e5272a9b2ee0535 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 10 Jun 2019 09:34:59 +0100 +Subject: [PATCH] python: Further fix for Python 3.8 embedding. + +Further attempt to fix Python 3.8; see also +commit fb1a74b3d84571bc4c6bb57b26128c92b3368c52 +and https://bugzilla.redhat.com/show_bug.cgi?id=1718294 +--- + configure.ac | 12 +++--------- + 1 file changed, 3 insertions(+), 9 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 3489ae1..24d986f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -474,18 +474,12 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ + ]) + + dnl Check for Python CFLAGS, libraries. +- dnl For Python >= 3.8 we have to use python-embed.pc, see: ++ dnl For Python >= 3.8 we have to use python-<VERSION>-embed.pc, see: + dnl https://docs.python.org/3.8/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build + dnl The python.pc is called python-<VERSION>.pc on Debian and + dnl later versions of Fedora, and python.pc on older versions + dnl of Fedora. +- PKG_CHECK_MODULES([PYTHON], [python-embed-"$PYTHON_VERSION"], [ +- AC_SUBST([PYTHON_CFLAGS]) +- AC_SUBST([PYTHON_LIBS]) +- AC_SUBST([PYTHON_VERSION]) +- AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time]) +- ],[ +- PKG_CHECK_MODULES([PYTHON], [python-embed], [ ++ PKG_CHECK_MODULES([PYTHON], [python-"$PYTHON_VERSION"-embed], [ + AC_SUBST([PYTHON_CFLAGS]) + AC_SUBST([PYTHON_LIBS]) + AC_SUBST([PYTHON_VERSION]) +@@ -505,7 +499,7 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ + ],[ + AC_MSG_WARN([python $PYTHON_VERSION not found]) + enable_python=no +- ])])])]) ++ ])])]) + + dnl Check for various functions needed by the bindings. + old_LIBS="$LIBS" +-- +2.22.0 + diff --git a/nbdkit.spec b/nbdkit.spec index d1bdb7b..0939c95 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,14 +21,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.13-development Name: nbdkit Version: 1.13.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -41,6 +41,8 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +Patch1: 0001-python-Further-fix-for-Python-3.8-embedding.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -834,6 +836,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jun 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.5-2 +- Further fix for Python 3.8 embed brokenness. + * Sun Jun 09 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.5-1 - New upstream version 1.13.5. From 952b7ceb578a07bca7be1e58e6938b119538d717 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 25 Jul 2019 18:21:25 +0000 Subject: [PATCH 207/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0939c95..1130a2d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.5 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -836,6 +836,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Mon Jun 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.5-2 - Further fix for Python 3.8 embed brokenness. From 87fad0e07150e8660350d580e14ff38b89efe515 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 26 Jul 2019 10:18:03 +0100 Subject: [PATCH 208/683] New upstream version 1.13.6. --- ...Further-fix-for-Python-3.8-embedding.patch | 49 ------------------- nbdkit.spec | 11 +++-- sources | 4 +- 3 files changed, 8 insertions(+), 56 deletions(-) delete mode 100644 0001-python-Further-fix-for-Python-3.8-embedding.patch diff --git a/0001-python-Further-fix-for-Python-3.8-embedding.patch b/0001-python-Further-fix-for-Python-3.8-embedding.patch deleted file mode 100644 index 438cff9..0000000 --- a/0001-python-Further-fix-for-Python-3.8-embedding.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 4840b5e8293287af45f1e6062e5272a9b2ee0535 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 10 Jun 2019 09:34:59 +0100 -Subject: [PATCH] python: Further fix for Python 3.8 embedding. - -Further attempt to fix Python 3.8; see also -commit fb1a74b3d84571bc4c6bb57b26128c92b3368c52 -and https://bugzilla.redhat.com/show_bug.cgi?id=1718294 ---- - configure.ac | 12 +++--------- - 1 file changed, 3 insertions(+), 9 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 3489ae1..24d986f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -474,18 +474,12 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ - ]) - - dnl Check for Python CFLAGS, libraries. -- dnl For Python >= 3.8 we have to use python-embed.pc, see: -+ dnl For Python >= 3.8 we have to use python-<VERSION>-embed.pc, see: - dnl https://docs.python.org/3.8/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build - dnl The python.pc is called python-<VERSION>.pc on Debian and - dnl later versions of Fedora, and python.pc on older versions - dnl of Fedora. -- PKG_CHECK_MODULES([PYTHON], [python-embed-"$PYTHON_VERSION"], [ -- AC_SUBST([PYTHON_CFLAGS]) -- AC_SUBST([PYTHON_LIBS]) -- AC_SUBST([PYTHON_VERSION]) -- AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time]) -- ],[ -- PKG_CHECK_MODULES([PYTHON], [python-embed], [ -+ PKG_CHECK_MODULES([PYTHON], [python-"$PYTHON_VERSION"-embed], [ - AC_SUBST([PYTHON_CFLAGS]) - AC_SUBST([PYTHON_LIBS]) - AC_SUBST([PYTHON_VERSION]) -@@ -505,7 +499,7 @@ AS_IF([test "x$PYTHON" != "xno" && test "x$enable_python" != "xno"],[ - ],[ - AC_MSG_WARN([python $PYTHON_VERSION not found]) - enable_python=no -- ])])])]) -+ ])])]) - - dnl Check for various functions needed by the bindings. - old_LIBS="$LIBS" --- -2.22.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 1130a2d..ddf22fd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,14 +21,14 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.13-development Name: nbdkit -Version: 1.13.5 -Release: 3%{?dist} +Version: 1.13.6 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -41,8 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -Patch1: 0001-python-Further-fix-for-Python-3.8-embedding.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -836,6 +834,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Jul 26 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.6-1 +- New upstream version 1.13.6. + * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index 601d746..767a269 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.5.tar.gz) = 0fd5b492f1a14de32fde091e9ce53cd733ae862ffc3bfd9abf50132a12f89422f244839d9e6d41e296cbf3f06dcd354d92f18cc043caea7337bca877787955ff -SHA512 (nbdkit-1.13.5.tar.gz.sig) = 70ffa7c620a4866ae03f7cf51ab92f66f7bd26b04e83217a3392bfe319d26f153aa919189c58aee3c19f2c016a09c50233cb5322248461ce7016a2139f41d39c +SHA512 (nbdkit-1.13.6.tar.gz) = 1b3d420e96aaf25584b12b0bdc33fb5b46685e9a9dba66e5aea70d1efa1a0fb6de21799c903114091308bb15f406170b50b93f54616c0a6604e035f15433de70 +SHA512 (nbdkit-1.13.6.tar.gz.sig) = 892fe22a69dfd38730c4fa65d0ee353ec06bac30713db2c76c023e97b60a7d70dc7857c2e065407cccd810cd67ffe84f283323db2c56f108e7249f29631f95ff From 4ce7cac1f3b2341c9e9ed47127d1e5b470d0f02d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 26 Jul 2019 10:19:32 +0100 Subject: [PATCH 209/683] Add BR libnbd-devel. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index ddf22fd..3c81b79 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -68,6 +68,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel +BuildRequires: libnbd-devel >= 0.1.9 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage @@ -836,6 +837,7 @@ make %{?_smp_mflags} check || { %changelog * Fri Jul 26 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.6-1 - New upstream version 1.13.6. +- Add BR libnbd-devel. * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 22983c1edb47c9a36a696f0661f3b61c920c7ba7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 26 Jul 2019 21:03:00 +0100 Subject: [PATCH 210/683] New filter: cacheextents. Disable guestfs plugin on i686. --- nbdkit.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3c81b79..62a0124 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,6 +1,6 @@ %global _hardened_build 1 -%ifarch aarch64 %{arm} %{ix86} x86_64 ppc %{power64} +%ifarch aarch64 %{arm} x86_64 ppc %{power64} %global have_libguestfs 1 %endif @@ -426,6 +426,8 @@ nbdkit-blocksize-filter Adjust block size of requests sent to plugins. nbdkit-cache-filter Server-side cache. +nbdkit-cacheextents-filter Cache extents. + nbdkit-cow-filter Copy-on-write overlay for read-only plugins. nbdkit-delay-filter Inject read and write delays. @@ -766,6 +768,7 @@ make %{?_smp_mflags} check || { %license LICENSE %{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so %{_libdir}/%{name}/filters/nbdkit-cache-filter.so +%{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so @@ -783,6 +786,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* +%{_mandir}/man1/nbdkit-cacheextents-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* @@ -838,6 +842,8 @@ make %{?_smp_mflags} check || { * Fri Jul 26 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.6-1 - New upstream version 1.13.6. - Add BR libnbd-devel. +- New filter: cacheextents. +- Disable guestfs plugin on i686. * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 5b18cf23729a5ea526bdaf77489c7b6ccff2144e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 30 Jul 2019 18:58:41 +0100 Subject: [PATCH 211/683] New upstream version 1.13.7. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 62a0124..6863ce2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.6 +Version: 1.13.7 Release: 1%{?dist} Summary: NBD server @@ -68,7 +68,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel -BuildRequires: libnbd-devel >= 0.1.9 +BuildRequires: libnbd-devel >= 0.9.6 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage @@ -839,6 +839,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jul 30 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.7-1 +- New upstream version 1.13.7. + * Fri Jul 26 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.6-1 - New upstream version 1.13.6. - Add BR libnbd-devel. diff --git a/sources b/sources index 767a269..ab42c4d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.6.tar.gz) = 1b3d420e96aaf25584b12b0bdc33fb5b46685e9a9dba66e5aea70d1efa1a0fb6de21799c903114091308bb15f406170b50b93f54616c0a6604e035f15433de70 -SHA512 (nbdkit-1.13.6.tar.gz.sig) = 892fe22a69dfd38730c4fa65d0ee353ec06bac30713db2c76c023e97b60a7d70dc7857c2e065407cccd810cd67ffe84f283323db2c56f108e7249f29631f95ff +SHA512 (nbdkit-1.13.7.tar.gz) = f750617cbc016d6cc4adc52e6f2fbf1ce48fa669cf08fe9cc96bf171111907ba2af57deaf9d1edf6e62882e7d8812a1d1595290fda07401221978b445e72966d +SHA512 (nbdkit-1.13.7.tar.gz.sig) = f199cc75d67f850222205a3aa57e601d68c58065e7445ff7427e594a8c7bf2f5544827f0627a4c7b39ac9c1952863af6f2dcec7d97563586d856920652cf8d2d From 1c44b857a0ff592904181c176cc526cd34aa344c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 31 Jul 2019 10:06:34 +0100 Subject: [PATCH 212/683] Add upstream patch to deal with qemu-img 4.1 output change. --- ...commodate-qemu-img-4.1-output-change.patch | 146 ++++++++++++++++++ nbdkit.spec | 8 +- 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 0001-tests-Accommodate-qemu-img-4.1-output-change.patch diff --git a/0001-tests-Accommodate-qemu-img-4.1-output-change.patch b/0001-tests-Accommodate-qemu-img-4.1-output-change.patch new file mode 100644 index 0000000..7b02f79 --- /dev/null +++ b/0001-tests-Accommodate-qemu-img-4.1-output-change.patch @@ -0,0 +1,146 @@ +From 902f2203f0bc38de25dffd885ca837fe59e4a3fb Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Tue, 30 Jul 2019 15:58:06 -0500 +Subject: [PATCH] tests: Accommodate qemu-img 4.1 output change + +Where qemu-img 4.0 used to say 'virtual size: 100M', the 4.1 release +now says 'virtual size: 100 MiB'. Similarly, '5.0G' turned into '5 +GiB'. But rather than worry about potential future changes to the +human-readable output, we can just use --output=json (at which point +we no longer even have to force qemu-img to the C locale, which we +were not even doing consistently). It might be slightly more robust +to find our specific information using jq, but for now a grep of the +output json is still reliable enough for our needs. + +If the '\b' is a problem on BSD, we could use '([, ]|$)' instead. Or +that's where jq would make it easier to parse off a given number +without worrying about what comes after the number. + +Signed-off-by: Eric Blake <eblake@redhat.com> +--- + tests/test-ip.sh | 10 ++++++---- + tests/test-nbd-tls-psk.sh | 6 +++--- + tests/test-nbd-tls.sh | 6 +++--- + tests/test-tls-psk.sh | 7 +++---- + tests/test-tls.sh | 7 +++---- + tests/test-truncate3.sh | 4 ++-- + 6 files changed, 20 insertions(+), 20 deletions(-) + +diff --git a/tests/test-ip.sh b/tests/test-ip.sh +index 636d3d3..a0f1862 100755 +--- a/tests/test-ip.sh ++++ b/tests/test-ip.sh +@@ -57,15 +57,17 @@ kill -s 0 $pid + # Check we can connect over the IPv4 loopback interface. + ipv4_lo="$(ip -o -4 addr show scope host)" + if test -n "$ipv4_lo"; then +- qemu-img info --image-opts "file.driver=nbd,file.host=127.0.0.1,file.port=$port" > ipv4.out ++ qemu-img info --output=json \ ++ --image-opts "file.driver=nbd,file.host=127.0.0.1,file.port=$port" > ipv4.out + cat ipv4.out +- grep -sq "^virtual size: 100M" ipv4.out ++ grep -sq '"virtual-size": *104857600\b' ipv4.out + fi + + # Check we can connect over the IPv6 loopback interface. + ipv6_lo="$(ip -o -6 addr show scope host)" + if test -n "$ipv6_lo"; then +- qemu-img info --image-opts "file.driver=nbd,file.host=::1,file.port=$port" > ipv6.out ++ qemu-img info --output=json \ ++ --image-opts "file.driver=nbd,file.host=::1,file.port=$port" > ipv6.out + cat ipv6.out +- grep -sq "^virtual size: 100M" ipv6.out ++ grep -sq '"virtual-size": *104857600\b' ipv6.out + fi +diff --git a/tests/test-nbd-tls-psk.sh b/tests/test-nbd-tls-psk.sh +index d0bbc46..82822d1 100755 +--- a/tests/test-nbd-tls-psk.sh ++++ b/tests/test-nbd-tls-psk.sh +@@ -73,9 +73,9 @@ LIBNBD_DEBUG=1 start_nbdkit -P "$pid2" -U "$sock2" --tls=off \ + nbd tls=require tls-psk=keys.psk tls-username=qemu socket="$sock1" + + # Run unencrypted client +-LANG=C qemu-img info -f raw "nbd+unix:///?socket=$sock2" > nbd-tls-psk.out ++qemu-img info --output=json -f raw "nbd+unix:///?socket=$sock2" > nbd-tls-psk.out + + cat nbd-tls-psk.out + +-grep -sq "^file format: raw" nbd-tls-psk.out +-grep -sq "^virtual size: 100M" nbd-tls-psk.out ++grep -sq '"format": *"raw"' nbd-tls-psk.out ++grep -sq '"virtual-size": *104857600\b' nbd-tls-psk.out +diff --git a/tests/test-nbd-tls.sh b/tests/test-nbd-tls.sh +index af824d2..c4f4fac 100755 +--- a/tests/test-nbd-tls.sh ++++ b/tests/test-nbd-tls.sh +@@ -74,9 +74,9 @@ LIBNBD_DEBUG=1 start_nbdkit -P "$pid2" -U "$sock2" --tls=off \ + nbd tls=require tls-certificates="$pkidir" socket="$sock1" + + # Run unencrypted client +-LANG=C qemu-img info -f raw "nbd+unix:///?socket=$sock2" > nbd-tls.out ++qemu-img info --output=json -f raw "nbd+unix:///?socket=$sock2" > nbd-tls.out + + cat nbd-tls.out + +-grep -sq "^file format: raw" nbd-tls.out +-grep -sq "^virtual size: 100M" nbd-tls.out ++grep -sq '"format": *"raw"' nbd-tls.out ++grep -sq '"virtual-size": *104857600\b' nbd-tls.out +diff --git a/tests/test-tls-psk.sh b/tests/test-tls-psk.sh +index 393f589..a4ecb60 100755 +--- a/tests/test-tls-psk.sh ++++ b/tests/test-tls-psk.sh +@@ -72,12 +72,11 @@ start_nbdkit -P tls-psk.pid -p $port -n \ + --tls=require --tls-psk=keys.psk example1 + + # Run qemu-img against the server. +-LANG=C \ +-qemu-img info \ ++qemu-img info --output=json \ + --object "tls-creds-psk,id=tls0,endpoint=client,dir=$PWD" \ + --image-opts "file.driver=nbd,file.host=localhost,file.port=$port,file.tls-creds=tls0" > tls-psk.out + + cat tls-psk.out + +-grep -sq "^file format: raw" tls-psk.out +-grep -sq "^virtual size: 100M" tls-psk.out ++grep -sq '"format": *"raw"' tls-psk.out ++grep -sq '"virtual-size": *104857600\b' tls-psk.out +diff --git a/tests/test-tls.sh b/tests/test-tls.sh +index 70d40ae..2718e55 100755 +--- a/tests/test-tls.sh ++++ b/tests/test-tls.sh +@@ -65,12 +65,11 @@ start_nbdkit -P tls.pid -p $port -n --tls=require \ + --tls-certificates="$pkidir" example1 + + # Run qemu-img against the server. +-LANG=C \ +-qemu-img info \ ++qemu-img info --output=json \ + --object "tls-creds-x509,id=tls0,endpoint=client,dir=$pkidir" \ + --image-opts "file.driver=nbd,file.host=localhost,file.port=$port,file.tls-creds=tls0" > tls.out + + cat tls.out + +-grep -sq "^file format: raw" tls.out +-grep -sq "^virtual size: 100M" tls.out ++grep -sq '"format": *"raw"' tls.out ++grep -sq '"virtual-size": *104857600\b' tls.out +diff --git a/tests/test-truncate3.sh b/tests/test-truncate3.sh +index 0a7fba8..885d58f 100755 +--- a/tests/test-truncate3.sh ++++ b/tests/test-truncate3.sh +@@ -50,8 +50,8 @@ start_nbdkit -P truncate3.pid -U $sock \ + pattern 5G \ + round-up=512 + +-LANG=C qemu-img info nbd:unix:$sock > truncate3.out +-if ! grep "virtual size: 5.0G" truncate3.out; then ++qemu-img info --output=json nbd:unix:$sock > truncate3.out ++if ! grep '"virtual-size": *5368709120' truncate3.out; then + echo "$0: unexpected output from truncate3 regression test:" + cat truncate3.out + exit 1 +-- +2.22.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 6863ce2..407f46a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -41,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch to deal with qemu-img 4.1 output change. +Patch1: 0001-tests-Accommodate-qemu-img-4.1-output-change.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -839,6 +842,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Jul 31 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.7-2 +- Add upstream patch to deal with qemu-img 4.1 output change. + * Tue Jul 30 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.7-1 - New upstream version 1.13.7. From 481170e3672f528b362500f9813550f5cda6853c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 2 Aug 2019 13:48:08 +0100 Subject: [PATCH 213/683] New upstream version 1.13.8. --- ...commodate-qemu-img-4.1-output-change.patch | 146 ------------------ nbdkit.spec | 10 +- sources | 4 +- 3 files changed, 7 insertions(+), 153 deletions(-) delete mode 100644 0001-tests-Accommodate-qemu-img-4.1-output-change.patch diff --git a/0001-tests-Accommodate-qemu-img-4.1-output-change.patch b/0001-tests-Accommodate-qemu-img-4.1-output-change.patch deleted file mode 100644 index 7b02f79..0000000 --- a/0001-tests-Accommodate-qemu-img-4.1-output-change.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 902f2203f0bc38de25dffd885ca837fe59e4a3fb Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Tue, 30 Jul 2019 15:58:06 -0500 -Subject: [PATCH] tests: Accommodate qemu-img 4.1 output change - -Where qemu-img 4.0 used to say 'virtual size: 100M', the 4.1 release -now says 'virtual size: 100 MiB'. Similarly, '5.0G' turned into '5 -GiB'. But rather than worry about potential future changes to the -human-readable output, we can just use --output=json (at which point -we no longer even have to force qemu-img to the C locale, which we -were not even doing consistently). It might be slightly more robust -to find our specific information using jq, but for now a grep of the -output json is still reliable enough for our needs. - -If the '\b' is a problem on BSD, we could use '([, ]|$)' instead. Or -that's where jq would make it easier to parse off a given number -without worrying about what comes after the number. - -Signed-off-by: Eric Blake <eblake@redhat.com> ---- - tests/test-ip.sh | 10 ++++++---- - tests/test-nbd-tls-psk.sh | 6 +++--- - tests/test-nbd-tls.sh | 6 +++--- - tests/test-tls-psk.sh | 7 +++---- - tests/test-tls.sh | 7 +++---- - tests/test-truncate3.sh | 4 ++-- - 6 files changed, 20 insertions(+), 20 deletions(-) - -diff --git a/tests/test-ip.sh b/tests/test-ip.sh -index 636d3d3..a0f1862 100755 ---- a/tests/test-ip.sh -+++ b/tests/test-ip.sh -@@ -57,15 +57,17 @@ kill -s 0 $pid - # Check we can connect over the IPv4 loopback interface. - ipv4_lo="$(ip -o -4 addr show scope host)" - if test -n "$ipv4_lo"; then -- qemu-img info --image-opts "file.driver=nbd,file.host=127.0.0.1,file.port=$port" > ipv4.out -+ qemu-img info --output=json \ -+ --image-opts "file.driver=nbd,file.host=127.0.0.1,file.port=$port" > ipv4.out - cat ipv4.out -- grep -sq "^virtual size: 100M" ipv4.out -+ grep -sq '"virtual-size": *104857600\b' ipv4.out - fi - - # Check we can connect over the IPv6 loopback interface. - ipv6_lo="$(ip -o -6 addr show scope host)" - if test -n "$ipv6_lo"; then -- qemu-img info --image-opts "file.driver=nbd,file.host=::1,file.port=$port" > ipv6.out -+ qemu-img info --output=json \ -+ --image-opts "file.driver=nbd,file.host=::1,file.port=$port" > ipv6.out - cat ipv6.out -- grep -sq "^virtual size: 100M" ipv6.out -+ grep -sq '"virtual-size": *104857600\b' ipv6.out - fi -diff --git a/tests/test-nbd-tls-psk.sh b/tests/test-nbd-tls-psk.sh -index d0bbc46..82822d1 100755 ---- a/tests/test-nbd-tls-psk.sh -+++ b/tests/test-nbd-tls-psk.sh -@@ -73,9 +73,9 @@ LIBNBD_DEBUG=1 start_nbdkit -P "$pid2" -U "$sock2" --tls=off \ - nbd tls=require tls-psk=keys.psk tls-username=qemu socket="$sock1" - - # Run unencrypted client --LANG=C qemu-img info -f raw "nbd+unix:///?socket=$sock2" > nbd-tls-psk.out -+qemu-img info --output=json -f raw "nbd+unix:///?socket=$sock2" > nbd-tls-psk.out - - cat nbd-tls-psk.out - --grep -sq "^file format: raw" nbd-tls-psk.out --grep -sq "^virtual size: 100M" nbd-tls-psk.out -+grep -sq '"format": *"raw"' nbd-tls-psk.out -+grep -sq '"virtual-size": *104857600\b' nbd-tls-psk.out -diff --git a/tests/test-nbd-tls.sh b/tests/test-nbd-tls.sh -index af824d2..c4f4fac 100755 ---- a/tests/test-nbd-tls.sh -+++ b/tests/test-nbd-tls.sh -@@ -74,9 +74,9 @@ LIBNBD_DEBUG=1 start_nbdkit -P "$pid2" -U "$sock2" --tls=off \ - nbd tls=require tls-certificates="$pkidir" socket="$sock1" - - # Run unencrypted client --LANG=C qemu-img info -f raw "nbd+unix:///?socket=$sock2" > nbd-tls.out -+qemu-img info --output=json -f raw "nbd+unix:///?socket=$sock2" > nbd-tls.out - - cat nbd-tls.out - --grep -sq "^file format: raw" nbd-tls.out --grep -sq "^virtual size: 100M" nbd-tls.out -+grep -sq '"format": *"raw"' nbd-tls.out -+grep -sq '"virtual-size": *104857600\b' nbd-tls.out -diff --git a/tests/test-tls-psk.sh b/tests/test-tls-psk.sh -index 393f589..a4ecb60 100755 ---- a/tests/test-tls-psk.sh -+++ b/tests/test-tls-psk.sh -@@ -72,12 +72,11 @@ start_nbdkit -P tls-psk.pid -p $port -n \ - --tls=require --tls-psk=keys.psk example1 - - # Run qemu-img against the server. --LANG=C \ --qemu-img info \ -+qemu-img info --output=json \ - --object "tls-creds-psk,id=tls0,endpoint=client,dir=$PWD" \ - --image-opts "file.driver=nbd,file.host=localhost,file.port=$port,file.tls-creds=tls0" > tls-psk.out - - cat tls-psk.out - --grep -sq "^file format: raw" tls-psk.out --grep -sq "^virtual size: 100M" tls-psk.out -+grep -sq '"format": *"raw"' tls-psk.out -+grep -sq '"virtual-size": *104857600\b' tls-psk.out -diff --git a/tests/test-tls.sh b/tests/test-tls.sh -index 70d40ae..2718e55 100755 ---- a/tests/test-tls.sh -+++ b/tests/test-tls.sh -@@ -65,12 +65,11 @@ start_nbdkit -P tls.pid -p $port -n --tls=require \ - --tls-certificates="$pkidir" example1 - - # Run qemu-img against the server. --LANG=C \ --qemu-img info \ -+qemu-img info --output=json \ - --object "tls-creds-x509,id=tls0,endpoint=client,dir=$pkidir" \ - --image-opts "file.driver=nbd,file.host=localhost,file.port=$port,file.tls-creds=tls0" > tls.out - - cat tls.out - --grep -sq "^file format: raw" tls.out --grep -sq "^virtual size: 100M" tls.out -+grep -sq '"format": *"raw"' tls.out -+grep -sq '"virtual-size": *104857600\b' tls.out -diff --git a/tests/test-truncate3.sh b/tests/test-truncate3.sh -index 0a7fba8..885d58f 100755 ---- a/tests/test-truncate3.sh -+++ b/tests/test-truncate3.sh -@@ -50,8 +50,8 @@ start_nbdkit -P truncate3.pid -U $sock \ - pattern 5G \ - round-up=512 - --LANG=C qemu-img info nbd:unix:$sock > truncate3.out --if ! grep "virtual size: 5.0G" truncate3.out; then -+qemu-img info --output=json nbd:unix:$sock > truncate3.out -+if ! grep '"virtual-size": *5368709120' truncate3.out; then - echo "$0: unexpected output from truncate3 regression test:" - cat truncate3.out - exit 1 --- -2.22.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 407f46a..2ea0fcf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,8 +27,8 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.7 -Release: 2%{?dist} +Version: 1.13.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -41,9 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch to deal with qemu-img 4.1 output change. -Patch1: 0001-tests-Accommodate-qemu-img-4.1-output-change.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -842,6 +839,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Aug 2 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-1 +- New upstream version 1.13.8. + * Wed Jul 31 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.7-2 - Add upstream patch to deal with qemu-img 4.1 output change. diff --git a/sources b/sources index ab42c4d..8eb9ba9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.7.tar.gz) = f750617cbc016d6cc4adc52e6f2fbf1ce48fa669cf08fe9cc96bf171111907ba2af57deaf9d1edf6e62882e7d8812a1d1595290fda07401221978b445e72966d -SHA512 (nbdkit-1.13.7.tar.gz.sig) = f199cc75d67f850222205a3aa57e601d68c58065e7445ff7427e594a8c7bf2f5544827f0627a4c7b39ac9c1952863af6f2dcec7d97563586d856920652cf8d2d +SHA512 (nbdkit-1.13.8.tar.gz) = 51dbe6852f7539a2e07a1435499272a4a3e68163e3e9c90cc460e3d18b9aab26bbd37c6f15c780908d3335b414386aff69943d759a4a2ce3fc09024b7aa8438e +SHA512 (nbdkit-1.13.8.tar.gz.sig) = 34ff83f6bf345fa03081b985abbbf2a93bef6583cd7a67126d9b11c03bab226573a414e69624fb2bde1ca0654a5614d3915a81898d66ebbc05480116f12a3e8c From 693b073f7137e2dfa8c00b8e8ff3905523d51970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz> Date: Mon, 19 Aug 2019 10:20:25 +0200 Subject: [PATCH 214/683] Rebuilt for Python 3.8 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2ea0fcf..d23b647 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -839,6 +839,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.8-2 +- Rebuilt for Python 3.8 + * Fri Aug 2 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-1 - New upstream version 1.13.8. From a1141f59114ae3af6f0af98c45739f2d23b9ca15 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 19 Aug 2019 12:06:00 +0100 Subject: [PATCH 215/683] Fix for libnbd 0.9.8. --- 0001-nbd-Another-libnbd-version-bump.patch | 266 +++++++++++++++++++++ nbdkit.spec | 8 +- 2 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 0001-nbd-Another-libnbd-version-bump.patch diff --git a/0001-nbd-Another-libnbd-version-bump.patch b/0001-nbd-Another-libnbd-version-bump.patch new file mode 100644 index 0000000..caec791 --- /dev/null +++ b/0001-nbd-Another-libnbd-version-bump.patch @@ -0,0 +1,266 @@ +From d5b6da9be6f8009a334da72469072b35fe435e70 Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Wed, 14 Aug 2019 18:59:13 -0500 +Subject: [PATCH] nbd: Another libnbd version bump + +The 0.9.8 release breaks API, requiring a number of changes: +- Use symbolic constants instead of magic numbers/open-coded strings + (well, the string for "base:allocation" was present before this + libnbd bump) +- Change callbacks to drop the valid_flag parameter +- Add _is to nbd_read_only call +- Drop the _callback suffix on nbd_aio_FOO calls +- Add a struct for managing callback/user_data at once + +Signed-off-by: Eric Blake <eblake@redhat.com> +--- + configure.ac | 4 +-- + plugins/nbd/nbd.c | 85 +++++++++++++++++++++-------------------------- + README | 2 +- + 3 files changed, 41 insertions(+), 50 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ee14516..0b54c00 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -721,12 +721,12 @@ AC_ARG_WITH([libnbd], + [], + [with_libnbd=check]) + AS_IF([test "$with_libnbd" != "no"],[ +- PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.6],[ ++ PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.8],[ + AC_SUBST([LIBNBD_CFLAGS]) + AC_SUBST([LIBNBD_LIBS]) + AC_DEFINE([HAVE_LIBNBD],[1],[libnbd found at compile time.]) + ], +- [AC_MSG_WARN([libnbd >= 0.9.6 not found, nbd plugin will be crippled])]) ++ [AC_MSG_WARN([libnbd >= 0.9.8 not found, nbd plugin will be crippled])]) + ]) + AM_CONDITIONAL([HAVE_LIBNBD], [test "x$LIBNBD_LIBS" != "x"]) + +diff --git a/plugins/nbd/nbd.c b/plugins/nbd/nbd.c +index f11e54d..09c8891 100644 +--- a/plugins/nbd/nbd.c ++++ b/plugins/nbd/nbd.c +@@ -62,7 +62,7 @@ struct transaction { + sem_t sem; + uint32_t early_err; + uint32_t err; +- struct nbdkit_extents *extents; ++ nbd_completion_callback cb; + }; + + /* The per-connection handle */ +@@ -160,11 +160,12 @@ nbdplug_config (const char *key, const char *value) + if (strcasecmp (value, "require") == 0 || + strcasecmp (value, "required") == 0 || + strcasecmp (value, "force") == 0) +- tls = 2; ++ tls = LIBNBD_TLS_REQUIRE; + else { +- tls = nbdkit_parse_bool (value); +- if (tls == -1) ++ r = nbdkit_parse_bool (value); ++ if (r == -1) + exit (EXIT_FAILURE); ++ tls = r ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE; + } + } + else if (strcmp (key, "tls-certificates") == 0) { +@@ -245,8 +246,9 @@ nbdplug_config_complete (void) + export = ""; + + if (tls == -1) +- tls = tls_certificates || tls_verify >= 0 || tls_username || tls_psk; +- if (tls > 0) { ++ tls = (tls_certificates || tls_verify >= 0 || tls_username || tls_psk) ++ ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE; ++ if (tls != LIBNBD_TLS_DISABLE) { + struct nbd_handle *nbd = nbd_create (); + + if (!nbd) { +@@ -345,23 +347,12 @@ nbdplug_reader (void *handle) + return NULL; + } + +-/* Prepare for a transaction. */ +-static void +-nbdplug_prepare (struct transaction *trans) +-{ +- memset (trans, 0, sizeof *trans); +- if (sem_init (&trans->sem, 0, 0)) +- assert (false); +-} +- ++/* Callback used at end of a transaction. */ + static int +-nbdplug_notify (unsigned valid_flag, void *opaque, int *error) ++nbdplug_notify (void *opaque, int *error) + { + struct transaction *trans = opaque; + +- if (!(valid_flag & LIBNBD_CALLBACK_VALID)) +- return 0; +- + /* There's a possible race here where trans->cookie has not yet been + * updated by nbdplug_register, but it's only an informational + * message. +@@ -376,6 +367,17 @@ nbdplug_notify (unsigned valid_flag, void *opaque, int *error) + return 1; + } + ++/* Prepare for a transaction. */ ++static void ++nbdplug_prepare (struct transaction *trans) ++{ ++ memset (trans, 0, sizeof *trans); ++ if (sem_init (&trans->sem, 0, 0)) ++ assert (false); ++ trans->cb.callback = nbdplug_notify; ++ trans->cb.user_data = trans; ++} ++ + /* Register a cookie and kick the I/O thread. */ + static void + nbdplug_register (struct handle *h, struct transaction *trans, int64_t cookie) +@@ -466,7 +468,7 @@ nbdplug_open_handle (int readonly) + goto err; + if (nbd_set_export_name (h->nbd, export) == -1) + goto err; +- if (nbd_add_meta_context (h->nbd, "base:allocation") == -1) ++ if (nbd_add_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION) == -1) + goto err; + if (nbd_set_tls (h->nbd, tls) == -1) + goto err; +@@ -570,7 +572,7 @@ static int + nbdplug_can_write (void *handle) + { + struct handle *h = handle; +- int i = nbd_read_only (h->nbd); ++ int i = nbd_is_read_only (h->nbd); + + if (i == -1) { + nbdkit_error ("failure to check readonly flag: %s", nbd_get_error ()); +@@ -674,7 +676,7 @@ static int + nbdplug_can_extents (void *handle) + { + struct handle *h = handle; +- int i = nbd_can_meta_context (h->nbd, "base:allocation"); ++ int i = nbd_can_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION); + + if (i == -1) { + nbdkit_error ("failure to check extents ability: %s", nbd_get_error ()); +@@ -693,8 +695,8 @@ nbdplug_pread (void *handle, void *buf, uint32_t count, uint64_t offset, + + assert (!flags); + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_pread_callback (h->nbd, buf, count, offset, +- nbdplug_notify, &s, 0)); ++ nbdplug_register (h, &s, nbd_aio_pread (h->nbd, buf, count, offset, ++ s.cb, 0)); + return nbdplug_reply (h, &s); + } + +@@ -709,8 +711,8 @@ nbdplug_pwrite (void *handle, const void *buf, uint32_t count, uint64_t offset, + + assert (!(flags & ~NBDKIT_FLAG_FUA)); + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_pwrite_callback (h->nbd, buf, count, offset, +- nbdplug_notify, &s, f)); ++ nbdplug_register (h, &s, nbd_aio_pwrite (h->nbd, buf, count, offset, ++ s.cb, f)); + return nbdplug_reply (h, &s); + } + +@@ -729,8 +731,7 @@ nbdplug_zero (void *handle, uint32_t count, uint64_t offset, uint32_t flags) + if (flags & NBDKIT_FLAG_FUA) + f |= LIBNBD_CMD_FLAG_FUA; + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_zero_callback (h->nbd, count, offset, +- nbdplug_notify, &s, f)); ++ nbdplug_register (h, &s, nbd_aio_zero (h->nbd, count, offset, s.cb, f)); + return nbdplug_reply (h, &s); + } + +@@ -744,8 +745,7 @@ nbdplug_trim (void *handle, uint32_t count, uint64_t offset, uint32_t flags) + + assert (!(flags & ~NBDKIT_FLAG_FUA)); + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_trim_callback (h->nbd, count, offset, +- nbdplug_notify, &s, f)); ++ nbdplug_register (h, &s, nbd_aio_trim (h->nbd, count, offset, s.cb, f)); + return nbdplug_reply (h, &s); + } + +@@ -758,23 +758,17 @@ nbdplug_flush (void *handle, uint32_t flags) + + assert (!flags); + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_flush_callback (h->nbd, +- nbdplug_notify, &s, 0)); ++ nbdplug_register (h, &s, nbd_aio_flush (h->nbd, s.cb, 0)); + return nbdplug_reply (h, &s); + } + + static int +-nbdplug_extent (unsigned valid_flag, void *opaque, +- const char *metacontext, uint64_t offset, ++nbdplug_extent (void *opaque, const char *metacontext, uint64_t offset, + uint32_t *entries, size_t nr_entries, int *error) + { +- struct transaction *trans = opaque; +- struct nbdkit_extents *extents = trans->extents; ++ struct nbdkit_extents *extents = opaque; + +- if (!(valid_flag & LIBNBD_CALLBACK_VALID)) +- return 0; +- +- assert (strcmp (metacontext, "base:allocation") == 0); ++ assert (strcmp (metacontext, LIBNBD_CONTEXT_BASE_ALLOCATION) == 0); + assert (nr_entries % 2 == 0); + while (nr_entries) { + /* We rely on the fact that NBDKIT_EXTENT_* match NBD_STATE_* */ +@@ -797,14 +791,12 @@ nbdplug_extents (void *handle, uint32_t count, uint64_t offset, + struct handle *h = handle; + struct transaction s; + uint32_t f = flags & NBDKIT_FLAG_REQ_ONE ? LIBNBD_CMD_FLAG_REQ_ONE : 0; ++ nbd_extent_callback extcb = { nbdplug_extent, extents }; + + assert (!(flags & ~NBDKIT_FLAG_REQ_ONE)); + nbdplug_prepare (&s); +- s.extents = extents; +- nbdplug_register (h, &s, nbd_aio_block_status_callback (h->nbd, count, offset, +- nbdplug_extent, &s, +- nbdplug_notify, &s, +- f)); ++ nbdplug_register (h, &s, nbd_aio_block_status (h->nbd, count, offset, ++ extcb, s.cb, f)); + return nbdplug_reply (h, &s); + } + +@@ -817,8 +809,7 @@ nbdplug_cache (void *handle, uint32_t count, uint64_t offset, uint32_t flags) + + assert (!flags); + nbdplug_prepare (&s); +- nbdplug_register (h, &s, nbd_aio_cache_callback (h->nbd, count, offset, +- nbdplug_notify, &s, 0)); ++ nbdplug_register (h, &s, nbd_aio_cache (h->nbd, count, offset, s.cb, 0)); + return nbdplug_reply (h, &s); + } + +diff --git a/README b/README +index 06c16dd..b78f490 100644 +--- a/README ++++ b/README +@@ -113,7 +113,7 @@ For the linuxdisk plugin: + + For the nbd plugin, to get URI and TLS support: + +- - libnbd >= 0.9.6 ++ - libnbd >= 0.9.8 + + For the Perl, example4 and tar plugins: + +-- +2.22.0 + diff --git a/nbdkit.spec b/nbdkit.spec index d23b647..9b8ec1c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -41,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Fix for libnbd 0.9.8. +Patch0001: 0001-nbd-Another-libnbd-version-bump.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -839,6 +842,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Aug 19 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-3 +- Fix for libnbd 0.9.8. + * Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.8-2 - Rebuilt for Python 3.8 From cb5a9a5c139f3e3a6a2b1dc8cb70f10999b00efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz> Date: Mon, 19 Aug 2019 16:28:41 +0200 Subject: [PATCH 216/683] Rebuilt for Python 3.8 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9b8ec1c..8503911 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -842,6 +842,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.8-4 +- Rebuilt for Python 3.8 + * Mon Aug 19 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-3 - Fix for libnbd 0.9.8. From 1b316e5034f180d80d1eeacc8a99545bbde477a8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 20 Aug 2019 12:01:39 +0100 Subject: [PATCH 217/683] BR libnbd 0.9.8. --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8503911..9019815 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -71,7 +71,7 @@ BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel -BuildRequires: libnbd-devel >= 0.9.6 +BuildRequires: libnbd-devel >= 0.9.8 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage @@ -842,6 +842,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Aug 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-5 +- BR libnbd 0.9.8. + * Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.8-4 - Rebuilt for Python 3.8 From 331127737ac2606353756ce5ff062b05e46f3fbe Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 09:13:37 +0100 Subject: [PATCH 218/683] Add provides for all basic plugins and filters. --- nbdkit.spec | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9019815..65f4f9d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -151,6 +151,20 @@ Summary: Basic plugins for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +Provides: %{name}-data-plugin = %{version}-%{release} +Provides: %{name}-file-plugin = %{version}-%{release} +Provides: %{name}-floppy-plugin = %{version}-%{release} +Provides: %{name}-full-plugin = %{version}-%{release} +Provides: %{name}-memory-plugin = %{version}-%{release} +Provides: %{name}-nbd-plugin = %{version}-%{release} +Provides: %{name}-null-plugin = %{version}-%{release} +Provides: %{name}-pattern-plugin = %{version}-%{release} +Provides: %{name}-partitioning-plugin = %{version}-%{release} +Provides: %{name}-random-plugin = %{version}-%{release} +Provides: %{name}-sh-plugin = %{version}-%{release} +Provides: %{name}-split-plugin = %{version}-%{release} +Provides: %{name}-streaming-plugin = %{version}-%{release} +Provides: %{name}-zero-plugin = %{version}-%{release} %description basic-plugins @@ -419,6 +433,24 @@ Summary: Basic filters for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +Provides: %{name}-blocksize-filter = %{version}-%{release} +Provides: %{name}-cache-filter = %{version}-%{release} +Provides: %{name}-cacheextents-filter = %{version}-%{release} +Provides: %{name}-cow-filter = %{version}-%{release} +Provides: %{name}-delay-filter = %{version}-%{release} +Provides: %{name}-error-filter = %{version}-%{release} +Provides: %{name}-fua-filter = %{version}-%{release} +Provides: %{name}-log-filter = %{version}-%{release} +Provides: %{name}-nocache-filter = %{version}-%{release} +Provides: %{name}-noextents-filter = %{version}-%{release} +Provides: %{name}-noparallel-filter = %{version}-%{release} +Provides: %{name}-nozero-filter = %{version}-%{release} +Provides: %{name}-offset-filter = %{version}-%{release} +Provides: %{name}-partition-filter = %{version}-%{release} +Provides: %{name}-rate-filter = %{version}-%{release} +Provides: %{name}-readahead-filter = %{version}-%{release} +Provides: %{name}-stats-filter = %{version}-%{release} +Provides: %{name}-truncate-filter = %{version}-%{release} %description basic-filters @@ -842,6 +874,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-6 +- Add provides for all basic plugins and filters. + * Tue Aug 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-5 - BR libnbd 0.9.8. From 495abe826eb3a077dae9fefa01c5094f5b40cd02 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 10:42:50 +0100 Subject: [PATCH 219/683] Remove Requires nbdkit-devel -> nbdkit-server. Still possible to build plugins without needing the server to run them, eg. when building for multilib. --- nbdkit.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 65f4f9d..94400f7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.8 -Release: 6%{?dist} +Release: 7%{?dist} Summary: NBD server License: BSD @@ -513,7 +513,6 @@ This package is the xz filter for %{name}. Summary: Development files and documentation for %{name} License: BSD -Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: pkgconfig @@ -874,8 +873,11 @@ make %{?_smp_mflags} check || { %changelog -* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-6 +* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-7 - Add provides for all basic plugins and filters. +- Remove Requires nbdkit-devel -> nbdkit-server. + Still possible to build plugins without needing the server to run + them, eg. when building for multilib. * Tue Aug 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-5 - BR libnbd 0.9.8. From c2efe7d099887b71382b95ff595033499ebe6fed Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 12:57:56 +0100 Subject: [PATCH 220/683] Revert "Remove Requires nbdkit-devel -> nbdkit-server." This change, while strictly correct, wasn't a particularly good idea. While it would be possible in theory to build plugins without having the server around, almost any reasonable build system might then try to test them against the server. But plugins are not compatible with servers compiled with a different pointer size (eg. i686 plugin with x86-64 server). So it's best to pull in the matching server with the devel package. The downside to this is that you cannot install nbdkit-devel.i686 and nbdkit-devel.x86_64 together. This reverts commit 495abe826eb3a077dae9fefa01c5094f5b40cd02. --- nbdkit.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 94400f7..3f9d0e8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -513,6 +513,7 @@ This package is the xz filter for %{name}. Summary: Development files and documentation for %{name} License: BSD +Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: pkgconfig @@ -875,9 +876,6 @@ make %{?_smp_mflags} check || { %changelog * Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-7 - Add provides for all basic plugins and filters. -- Remove Requires nbdkit-devel -> nbdkit-server. - Still possible to build plugins without needing the server to run - them, eg. when building for multilib. * Tue Aug 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-5 - BR libnbd 0.9.8. From 52cdc4fe66679c1b6632e103d51b4f11f3ca1866 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 18:11:16 +0100 Subject: [PATCH 221/683] New upstream version 1.13.9. --- 0001-nbd-Another-libnbd-version-bump.patch | 266 --------------------- nbdkit.spec | 10 +- sources | 4 +- 3 files changed, 7 insertions(+), 273 deletions(-) delete mode 100644 0001-nbd-Another-libnbd-version-bump.patch diff --git a/0001-nbd-Another-libnbd-version-bump.patch b/0001-nbd-Another-libnbd-version-bump.patch deleted file mode 100644 index caec791..0000000 --- a/0001-nbd-Another-libnbd-version-bump.patch +++ /dev/null @@ -1,266 +0,0 @@ -From d5b6da9be6f8009a334da72469072b35fe435e70 Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Wed, 14 Aug 2019 18:59:13 -0500 -Subject: [PATCH] nbd: Another libnbd version bump - -The 0.9.8 release breaks API, requiring a number of changes: -- Use symbolic constants instead of magic numbers/open-coded strings - (well, the string for "base:allocation" was present before this - libnbd bump) -- Change callbacks to drop the valid_flag parameter -- Add _is to nbd_read_only call -- Drop the _callback suffix on nbd_aio_FOO calls -- Add a struct for managing callback/user_data at once - -Signed-off-by: Eric Blake <eblake@redhat.com> ---- - configure.ac | 4 +-- - plugins/nbd/nbd.c | 85 +++++++++++++++++++++-------------------------- - README | 2 +- - 3 files changed, 41 insertions(+), 50 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ee14516..0b54c00 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -721,12 +721,12 @@ AC_ARG_WITH([libnbd], - [], - [with_libnbd=check]) - AS_IF([test "$with_libnbd" != "no"],[ -- PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.6],[ -+ PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.8],[ - AC_SUBST([LIBNBD_CFLAGS]) - AC_SUBST([LIBNBD_LIBS]) - AC_DEFINE([HAVE_LIBNBD],[1],[libnbd found at compile time.]) - ], -- [AC_MSG_WARN([libnbd >= 0.9.6 not found, nbd plugin will be crippled])]) -+ [AC_MSG_WARN([libnbd >= 0.9.8 not found, nbd plugin will be crippled])]) - ]) - AM_CONDITIONAL([HAVE_LIBNBD], [test "x$LIBNBD_LIBS" != "x"]) - -diff --git a/plugins/nbd/nbd.c b/plugins/nbd/nbd.c -index f11e54d..09c8891 100644 ---- a/plugins/nbd/nbd.c -+++ b/plugins/nbd/nbd.c -@@ -62,7 +62,7 @@ struct transaction { - sem_t sem; - uint32_t early_err; - uint32_t err; -- struct nbdkit_extents *extents; -+ nbd_completion_callback cb; - }; - - /* The per-connection handle */ -@@ -160,11 +160,12 @@ nbdplug_config (const char *key, const char *value) - if (strcasecmp (value, "require") == 0 || - strcasecmp (value, "required") == 0 || - strcasecmp (value, "force") == 0) -- tls = 2; -+ tls = LIBNBD_TLS_REQUIRE; - else { -- tls = nbdkit_parse_bool (value); -- if (tls == -1) -+ r = nbdkit_parse_bool (value); -+ if (r == -1) - exit (EXIT_FAILURE); -+ tls = r ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE; - } - } - else if (strcmp (key, "tls-certificates") == 0) { -@@ -245,8 +246,9 @@ nbdplug_config_complete (void) - export = ""; - - if (tls == -1) -- tls = tls_certificates || tls_verify >= 0 || tls_username || tls_psk; -- if (tls > 0) { -+ tls = (tls_certificates || tls_verify >= 0 || tls_username || tls_psk) -+ ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE; -+ if (tls != LIBNBD_TLS_DISABLE) { - struct nbd_handle *nbd = nbd_create (); - - if (!nbd) { -@@ -345,23 +347,12 @@ nbdplug_reader (void *handle) - return NULL; - } - --/* Prepare for a transaction. */ --static void --nbdplug_prepare (struct transaction *trans) --{ -- memset (trans, 0, sizeof *trans); -- if (sem_init (&trans->sem, 0, 0)) -- assert (false); --} -- -+/* Callback used at end of a transaction. */ - static int --nbdplug_notify (unsigned valid_flag, void *opaque, int *error) -+nbdplug_notify (void *opaque, int *error) - { - struct transaction *trans = opaque; - -- if (!(valid_flag & LIBNBD_CALLBACK_VALID)) -- return 0; -- - /* There's a possible race here where trans->cookie has not yet been - * updated by nbdplug_register, but it's only an informational - * message. -@@ -376,6 +367,17 @@ nbdplug_notify (unsigned valid_flag, void *opaque, int *error) - return 1; - } - -+/* Prepare for a transaction. */ -+static void -+nbdplug_prepare (struct transaction *trans) -+{ -+ memset (trans, 0, sizeof *trans); -+ if (sem_init (&trans->sem, 0, 0)) -+ assert (false); -+ trans->cb.callback = nbdplug_notify; -+ trans->cb.user_data = trans; -+} -+ - /* Register a cookie and kick the I/O thread. */ - static void - nbdplug_register (struct handle *h, struct transaction *trans, int64_t cookie) -@@ -466,7 +468,7 @@ nbdplug_open_handle (int readonly) - goto err; - if (nbd_set_export_name (h->nbd, export) == -1) - goto err; -- if (nbd_add_meta_context (h->nbd, "base:allocation") == -1) -+ if (nbd_add_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION) == -1) - goto err; - if (nbd_set_tls (h->nbd, tls) == -1) - goto err; -@@ -570,7 +572,7 @@ static int - nbdplug_can_write (void *handle) - { - struct handle *h = handle; -- int i = nbd_read_only (h->nbd); -+ int i = nbd_is_read_only (h->nbd); - - if (i == -1) { - nbdkit_error ("failure to check readonly flag: %s", nbd_get_error ()); -@@ -674,7 +676,7 @@ static int - nbdplug_can_extents (void *handle) - { - struct handle *h = handle; -- int i = nbd_can_meta_context (h->nbd, "base:allocation"); -+ int i = nbd_can_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION); - - if (i == -1) { - nbdkit_error ("failure to check extents ability: %s", nbd_get_error ()); -@@ -693,8 +695,8 @@ nbdplug_pread (void *handle, void *buf, uint32_t count, uint64_t offset, - - assert (!flags); - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_pread_callback (h->nbd, buf, count, offset, -- nbdplug_notify, &s, 0)); -+ nbdplug_register (h, &s, nbd_aio_pread (h->nbd, buf, count, offset, -+ s.cb, 0)); - return nbdplug_reply (h, &s); - } - -@@ -709,8 +711,8 @@ nbdplug_pwrite (void *handle, const void *buf, uint32_t count, uint64_t offset, - - assert (!(flags & ~NBDKIT_FLAG_FUA)); - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_pwrite_callback (h->nbd, buf, count, offset, -- nbdplug_notify, &s, f)); -+ nbdplug_register (h, &s, nbd_aio_pwrite (h->nbd, buf, count, offset, -+ s.cb, f)); - return nbdplug_reply (h, &s); - } - -@@ -729,8 +731,7 @@ nbdplug_zero (void *handle, uint32_t count, uint64_t offset, uint32_t flags) - if (flags & NBDKIT_FLAG_FUA) - f |= LIBNBD_CMD_FLAG_FUA; - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_zero_callback (h->nbd, count, offset, -- nbdplug_notify, &s, f)); -+ nbdplug_register (h, &s, nbd_aio_zero (h->nbd, count, offset, s.cb, f)); - return nbdplug_reply (h, &s); - } - -@@ -744,8 +745,7 @@ nbdplug_trim (void *handle, uint32_t count, uint64_t offset, uint32_t flags) - - assert (!(flags & ~NBDKIT_FLAG_FUA)); - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_trim_callback (h->nbd, count, offset, -- nbdplug_notify, &s, f)); -+ nbdplug_register (h, &s, nbd_aio_trim (h->nbd, count, offset, s.cb, f)); - return nbdplug_reply (h, &s); - } - -@@ -758,23 +758,17 @@ nbdplug_flush (void *handle, uint32_t flags) - - assert (!flags); - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_flush_callback (h->nbd, -- nbdplug_notify, &s, 0)); -+ nbdplug_register (h, &s, nbd_aio_flush (h->nbd, s.cb, 0)); - return nbdplug_reply (h, &s); - } - - static int --nbdplug_extent (unsigned valid_flag, void *opaque, -- const char *metacontext, uint64_t offset, -+nbdplug_extent (void *opaque, const char *metacontext, uint64_t offset, - uint32_t *entries, size_t nr_entries, int *error) - { -- struct transaction *trans = opaque; -- struct nbdkit_extents *extents = trans->extents; -+ struct nbdkit_extents *extents = opaque; - -- if (!(valid_flag & LIBNBD_CALLBACK_VALID)) -- return 0; -- -- assert (strcmp (metacontext, "base:allocation") == 0); -+ assert (strcmp (metacontext, LIBNBD_CONTEXT_BASE_ALLOCATION) == 0); - assert (nr_entries % 2 == 0); - while (nr_entries) { - /* We rely on the fact that NBDKIT_EXTENT_* match NBD_STATE_* */ -@@ -797,14 +791,12 @@ nbdplug_extents (void *handle, uint32_t count, uint64_t offset, - struct handle *h = handle; - struct transaction s; - uint32_t f = flags & NBDKIT_FLAG_REQ_ONE ? LIBNBD_CMD_FLAG_REQ_ONE : 0; -+ nbd_extent_callback extcb = { nbdplug_extent, extents }; - - assert (!(flags & ~NBDKIT_FLAG_REQ_ONE)); - nbdplug_prepare (&s); -- s.extents = extents; -- nbdplug_register (h, &s, nbd_aio_block_status_callback (h->nbd, count, offset, -- nbdplug_extent, &s, -- nbdplug_notify, &s, -- f)); -+ nbdplug_register (h, &s, nbd_aio_block_status (h->nbd, count, offset, -+ extcb, s.cb, f)); - return nbdplug_reply (h, &s); - } - -@@ -817,8 +809,7 @@ nbdplug_cache (void *handle, uint32_t count, uint64_t offset, uint32_t flags) - - assert (!flags); - nbdplug_prepare (&s); -- nbdplug_register (h, &s, nbd_aio_cache_callback (h->nbd, count, offset, -- nbdplug_notify, &s, 0)); -+ nbdplug_register (h, &s, nbd_aio_cache (h->nbd, count, offset, s.cb, 0)); - return nbdplug_reply (h, &s); - } - -diff --git a/README b/README -index 06c16dd..b78f490 100644 ---- a/README -+++ b/README -@@ -113,7 +113,7 @@ For the linuxdisk plugin: - - For the nbd plugin, to get URI and TLS support: - -- - libnbd >= 0.9.6 -+ - libnbd >= 0.9.8 - - For the Perl, example4 and tar plugins: - --- -2.22.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 3f9d0e8..6bfb17b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,8 +27,8 @@ %global source_directory 1.13-development Name: nbdkit -Version: 1.13.8 -Release: 7%{?dist} +Version: 1.13.9 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -41,9 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Fix for libnbd 0.9.8. -Patch0001: 0001-nbd-Another-libnbd-version-bump.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -874,6 +871,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.9-1 +- New upstream version 1.13.9. + * Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-7 - Add provides for all basic plugins and filters. diff --git a/sources b/sources index 8eb9ba9..24caf49 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.8.tar.gz) = 51dbe6852f7539a2e07a1435499272a4a3e68163e3e9c90cc460e3d18b9aab26bbd37c6f15c780908d3335b414386aff69943d759a4a2ce3fc09024b7aa8438e -SHA512 (nbdkit-1.13.8.tar.gz.sig) = 34ff83f6bf345fa03081b985abbbf2a93bef6583cd7a67126d9b11c03bab226573a414e69624fb2bde1ca0654a5614d3915a81898d66ebbc05480116f12a3e8c +SHA512 (nbdkit-1.13.9.tar.gz) = 2601f67b4a0e3f4d88e8daeb2460bb6851387d7bca3746c65b2efdcdba35dcf9dd3e9be843a626333bf1ea581a50c02c2afa36a8cee47d5c147b814f1b062e76 +SHA512 (nbdkit-1.13.9.tar.gz.sig) = 5b884fe4d33627926d015f308681b615114e559918bd127fd0ac1fd417409af84d8263b36ec3ab13bc2d556a866256c7ab4325f497f148fbe1cfd3783896e7f6 From b7e38ed29039eeb0c54ce4701d89e6020fdb3cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz> Date: Wed, 21 Aug 2019 19:15:52 +0200 Subject: [PATCH 222/683] Rebuilt for Python 3.8 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6bfb17b..ca3eb49 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -871,6 +871,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Aug 21 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.9-2 +- Rebuilt for Python 3.8 + * Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.9-1 - New upstream version 1.13.9. From 1e59bed6d7f9c7f643b97db726e563eca09e69a6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 18:31:31 +0100 Subject: [PATCH 223/683] Temporarily kill tests/test-shutdown.sh --- nbdkit.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index ca3eb49..4e0a11a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.13.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -595,6 +595,10 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt +# Temporarily kill tests/test-shutdown.sh because this test is racy on +# slow hardware. +truncate -s 0 tests/test-shutdown.sh + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 @@ -871,6 +875,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.9-3 +- Temporarily kill tests/test-shutdown.sh + * Wed Aug 21 2019 Miro Hrončok <mhroncok@redhat.com> - 1.13.9-2 - Rebuilt for Python 3.8 From 15b07b89f6e839aed838d661a5dbbf30e50fa457 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Aug 2019 19:16:46 +0100 Subject: [PATCH 224/683] Temporarily kill tests/test-cache-max-size.sh since it fails sometimes on s390x for unclear reasons. --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 4e0a11a..5c7a6d8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -599,6 +599,12 @@ mkdir -p $HOME/.cache/libvirt # slow hardware. truncate -s 0 tests/test-shutdown.sh +%ifarch s390x +# Temporarily kill tests/test-cache-max-size.sh since it fails +# sometimes on s390x for unclear reasons. +truncate -s 0 tests/test-cache-max-size.sh +%endif + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From 07b855797cb67dedc5fe3613187ae97b86c4d0e6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 28 Aug 2019 19:08:49 +0100 Subject: [PATCH 225/683] New upstream version 1.14.0. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5c7a6d8..4acbb60 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,11 +24,11 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.13-development +%global source_directory 1.14-stable Name: nbdkit -Version: 1.13.9 -Release: 3%{?dist} +Version: 1.14.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -881,6 +881,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Aug 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-1 +- New upstream version 1.14.0. + * Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.9-3 - Temporarily kill tests/test-shutdown.sh diff --git a/sources b/sources index 24caf49..877e83a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.13.9.tar.gz) = 2601f67b4a0e3f4d88e8daeb2460bb6851387d7bca3746c65b2efdcdba35dcf9dd3e9be843a626333bf1ea581a50c02c2afa36a8cee47d5c147b814f1b062e76 -SHA512 (nbdkit-1.13.9.tar.gz.sig) = 5b884fe4d33627926d015f308681b615114e559918bd127fd0ac1fd417409af84d8263b36ec3ab13bc2d556a866256c7ab4325f497f148fbe1cfd3783896e7f6 +SHA512 (nbdkit-1.14.0.tar.gz) = 7f76ffabf01e1458a9a99527756e4d73f3acdb4193f8169b4e60604645d1fc01a96bd16ea76564d587e7773f9c86a40740d4e15863f0b2c051860cdf1f27c942 +SHA512 (nbdkit-1.14.0.tar.gz.sig) = 6f8215537c6bd780875eac154dbb7b8cf2fa95de58ac80eaa8fe44ddcb3e6d2cdef5991f87f888b63f528d6501172f84caafcf1dcb0400c22cde0ebb421524c8 From 9cc5bdb7013dace66836951ac2a4ee0bf234c697 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 29 Aug 2019 21:01:21 +0100 Subject: [PATCH 226/683] Split out nbdkit-nbd-plugin subpackage. Since nbdkit 1.14, nbdkit-nbd-plugin now depends on libnbd. Therefore it shouldn't go into the basic plugins package (which is supposed to have minimal dependencies), but should be placed in its own package. --- nbdkit.spec | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4acbb60..3c1ad3f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,7 +28,7 @@ Name: nbdkit Version: 1.14.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -153,7 +153,6 @@ Provides: %{name}-file-plugin = %{version}-%{release} Provides: %{name}-floppy-plugin = %{version}-%{release} Provides: %{name}-full-plugin = %{version}-%{release} Provides: %{name}-memory-plugin = %{version}-%{release} -Provides: %{name}-nbd-plugin = %{version}-%{release} Provides: %{name}-null-plugin = %{version}-%{release} Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} @@ -178,8 +177,6 @@ nbdkit-full-plugin A virtual disk that returns ENOSPC errors. nbdkit-memory-plugin A virtual memory plugin. -nbdkit-nbd-plugin An NBD forwarding plugin. - nbdkit-null-plugin A null (bitbucket) plugin. nbdkit-pattern-plugin Fixed test pattern. @@ -309,6 +306,18 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package lets you write Lua plugins for %{name}. +%package nbd-plugin +Summary: NBD passthrough plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description nbd-plugin +This package lets you forward NBD connections from %{name} +to another NBD server. + + %ifarch %{ocaml_native_compiler} %package ocaml-plugin Summary: OCaml plugin for %{name} @@ -648,7 +657,6 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/plugins/nbdkit-floppy-plugin.so %{_libdir}/%{name}/plugins/nbdkit-full-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so @@ -662,7 +670,6 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-floppy-plugin.1* %{_mandir}/man1/nbdkit-full-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* -%{_mandir}/man1/nbdkit-nbd-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* @@ -741,6 +748,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man3/nbdkit-lua-plugin.3* +%files nbd-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so +%{_mandir}/man3/nbdkit-nbd-plugin.1* + + %ifarch %{ocaml_native_compiler} %files ocaml-plugin %doc README @@ -881,6 +895,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Aug 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-2 +- Split out nbdkit-nbd-plugin subpackage. + * Wed Aug 28 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-1 - New upstream version 1.14.0. From 7ae098998929a4f6ce9e711aea0fdea5aa86a264 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 29 Aug 2019 21:15:36 +0100 Subject: [PATCH 227/683] Typo in previous commit. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3c1ad3f..7a7d5ae 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -752,7 +752,7 @@ make %{?_smp_mflags} check || { %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so -%{_mandir}/man3/nbdkit-nbd-plugin.1* +%{_mandir}/man1/nbdkit-nbd-plugin.1* %ifarch %{ocaml_native_compiler} From 083e305e64e35d55049871d1548c23deabe11692 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 12 Sep 2019 18:44:58 +0100 Subject: [PATCH 228/683] New upstream version 1.15.1. Fixes Denial of Service / Amplication Attack: https://www.redhat.com/archives/libguestfs/2019-September/msg00084.html --- nbdkit.spec | 11 ++++++++--- sources | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7a7d5ae..55674c4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,11 +24,11 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.14-stable +%global source_directory 1.15-development Name: nbdkit -Version: 1.14.0 -Release: 2%{?dist} +Version: 1.15.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -895,6 +895,11 @@ make %{?_smp_mflags} check || { %changelog +* Thu Sep 12 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.1-1 +- New upstream version 1.15.1. +- Fixes Denial of Service / Amplication Attack: + https://www.redhat.com/archives/libguestfs/2019-September/msg00084.html + * Thu Aug 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-2 - Split out nbdkit-nbd-plugin subpackage. diff --git a/sources b/sources index 877e83a..6232415 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.14.0.tar.gz) = 7f76ffabf01e1458a9a99527756e4d73f3acdb4193f8169b4e60604645d1fc01a96bd16ea76564d587e7773f9c86a40740d4e15863f0b2c051860cdf1f27c942 -SHA512 (nbdkit-1.14.0.tar.gz.sig) = 6f8215537c6bd780875eac154dbb7b8cf2fa95de58ac80eaa8fe44ddcb3e6d2cdef5991f87f888b63f528d6501172f84caafcf1dcb0400c22cde0ebb421524c8 +SHA512 (nbdkit-1.15.1.tar.gz) = 7c8ea12279d5cf068a36207ae12eb98a83d84ab7c3a0df6ac8b2a5bad8b1917cb0f6262e570fdc3907fb2098dd066e69d090dcbfd7ca4eab6dd48645918ea34e +SHA512 (nbdkit-1.15.1.tar.gz.sig) = c75357acd9445dfc82f60dc3023dbbeb9731052e7a497decd4fa9b6a1b28842580337bd6a900f6c195f006279b17d78840abf4e972c2c52a8110442183c3baa2 From f1b63f1ea45d652ab64d8cb293bb7918e55bdc3b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 12 Sep 2019 18:49:19 +0100 Subject: [PATCH 229/683] Add nbdsh BR for tests. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 55674c4..ce8ace8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -91,6 +91,7 @@ BuildRequires: gnupg2 # Only for running the test suite: BuildRequires: /usr/bin/certtool BuildRequires: jq +BuildRequires: /usr/bin/nbdsh BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/socat BuildRequires: /usr/sbin/ss @@ -899,6 +900,7 @@ make %{?_smp_mflags} check || { - New upstream version 1.15.1. - Fixes Denial of Service / Amplication Attack: https://www.redhat.com/archives/libguestfs/2019-September/msg00084.html +- Add nbdsh BR for tests. * Thu Aug 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-2 - Split out nbdkit-nbd-plugin subpackage. From 744d5ea0e4dab093efa2318a25cabea1e736ca24 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 12 Sep 2019 18:59:20 +0100 Subject: [PATCH 230/683] Package <nbdkit-version.h>. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index ce8ace8..f7e3d60 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -884,6 +884,7 @@ make %{?_smp_mflags} check || { %{_includedir}/nbdkit-common.h %{_includedir}/nbdkit-filter.h %{_includedir}/nbdkit-plugin.h +%{_includedir}/nbdkit-version.h %{_mandir}/man3/nbdkit-filter.3* %{_mandir}/man3/nbdkit-plugin.3* %{_libdir}/pkgconfig/nbdkit.pc @@ -901,6 +902,7 @@ make %{?_smp_mflags} check || { - Fixes Denial of Service / Amplication Attack: https://www.redhat.com/archives/libguestfs/2019-September/msg00084.html - Add nbdsh BR for tests. +- Package <nbdkit-version.h>. * Thu Aug 29 2019 Richard W.M. Jones <rjones@redhat.com> - 1.14.0-2 - Split out nbdkit-nbd-plugin subpackage. From fe2ad07c3c94b5f0171b11dd7f300bc548e9d3e0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 20 Sep 2019 15:23:14 +0100 Subject: [PATCH 231/683] New upstream version 1.15.2. Fixes second Denial of Service attack: https://www.redhat.com/archives/libguestfs/2019-September/msg00272.html Add new nbdkit-retry-filter. --- nbdkit.spec | 13 ++++++++++++- sources | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f7e3d60..2c1d132 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.1 +Version: 1.15.2 Release: 1%{?dist} Summary: NBD server @@ -456,6 +456,7 @@ Provides: %{name}-offset-filter = %{version}-%{release} Provides: %{name}-partition-filter = %{version}-%{release} Provides: %{name}-rate-filter = %{version}-%{release} Provides: %{name}-readahead-filter = %{version}-%{release} +Provides: %{name}-retry-filter = %{version}-%{release} Provides: %{name}-stats-filter = %{version}-%{release} Provides: %{name}-truncate-filter = %{version}-%{release} @@ -496,6 +497,8 @@ nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. +nbdkit-retry-filter Reopen connection on error. + nbdkit-stats-filter Display statistics about operations. nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -839,6 +842,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so +%{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* @@ -857,6 +861,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* +%{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-stats-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -897,6 +902,12 @@ make %{?_smp_mflags} check || { %changelog +* Fri Sep 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.2-1 +- New upstream version 1.15.2. +- Fixes second Denial of Service attack: + https://www.redhat.com/archives/libguestfs/2019-September/msg00272.html +- Add new nbdkit-retry-filter. + * Thu Sep 12 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.1-1 - New upstream version 1.15.1. - Fixes Denial of Service / Amplication Attack: diff --git a/sources b/sources index 6232415..88e2d9c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.1.tar.gz) = 7c8ea12279d5cf068a36207ae12eb98a83d84ab7c3a0df6ac8b2a5bad8b1917cb0f6262e570fdc3907fb2098dd066e69d090dcbfd7ca4eab6dd48645918ea34e -SHA512 (nbdkit-1.15.1.tar.gz.sig) = c75357acd9445dfc82f60dc3023dbbeb9731052e7a497decd4fa9b6a1b28842580337bd6a900f6c195f006279b17d78840abf4e972c2c52a8110442183c3baa2 +SHA512 (nbdkit-1.15.2.tar.gz) = e80e83b133d07782652c83e5c31d5a6ec4dd7b0aac574d9da5764313ef9e05921e3540227049a880f9160b5401c33b1c10851e19cf9e5475550343780544595a +SHA512 (nbdkit-1.15.2.tar.gz.sig) = 48aafc2e09ebb13f386eb990e8b1a89203aee9f87a61a2a162771038e026f192b396a7db5f9db4a47b5ba8149c59a9e7b8186fd3feb1a32019a47e6052f99ad8 From 770f56f2df6b88af8693a78caa938c89a5cf960b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 20 Sep 2019 15:36:28 +0100 Subject: [PATCH 232/683] Add new nbdkit-reflection-plugin. --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 2c1d132..f4515f8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -158,6 +158,7 @@ Provides: %{name}-null-plugin = %{version}-%{release} Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} Provides: %{name}-random-plugin = %{version}-%{release} +Provides: %{name}-reflection-plugin = %{version}-%{release} Provides: %{name}-sh-plugin = %{version}-%{release} Provides: %{name}-split-plugin = %{version}-%{release} Provides: %{name}-streaming-plugin = %{version}-%{release} @@ -186,6 +187,8 @@ nbdkit-partitioning-plugin Create virtual disks from partitions. nbdkit-random-plugin Random content plugin for testing. +nbdkit-reflection-plugin Reflect client info back to the client. + nbdkit-sh-plugin Write plugins as shell scripts or executables. nbdkit-split-plugin Concatenate one or more files. @@ -665,6 +668,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-reflection-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so @@ -678,6 +682,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* +%{_mandir}/man1/nbdkit-reflection-plugin.1* %{_mandir}/man3/nbdkit-sh-plugin.3* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* @@ -906,6 +911,7 @@ make %{?_smp_mflags} check || { - New upstream version 1.15.2. - Fixes second Denial of Service attack: https://www.redhat.com/archives/libguestfs/2019-September/msg00272.html +- Add new nbdkit-reflection-plugin. - Add new nbdkit-retry-filter. * Thu Sep 12 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.1-1 From 7edda92aa0c03fcf9a16d19cc78f9fe09fe24892 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 25 Sep 2019 10:33:46 +0100 Subject: [PATCH 233/683] New upstream release 1.15.3. Add new header file nbd-protocol.h to devel subpackage. --- nbdkit.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f4515f8..79d1f37 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.2 +Version: 1.15.3 Release: 1%{?dist} Summary: NBD server @@ -895,6 +895,7 @@ make %{?_smp_mflags} check || { %{_includedir}/nbdkit-filter.h %{_includedir}/nbdkit-plugin.h %{_includedir}/nbdkit-version.h +%{_includedir}/nbd-protocol.h %{_mandir}/man3/nbdkit-filter.3* %{_mandir}/man3/nbdkit-plugin.3* %{_libdir}/pkgconfig/nbdkit.pc @@ -907,6 +908,10 @@ make %{?_smp_mflags} check || { %changelog +* Wed Sep 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.3-1 +- New upstream release 1.15.3. +- Add new header file nbd-protocol.h to devel subpackage. + * Fri Sep 20 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.2-1 - New upstream version 1.15.2. - Fixes second Denial of Service attack: diff --git a/sources b/sources index 88e2d9c..f83057b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.2.tar.gz) = e80e83b133d07782652c83e5c31d5a6ec4dd7b0aac574d9da5764313ef9e05921e3540227049a880f9160b5401c33b1c10851e19cf9e5475550343780544595a -SHA512 (nbdkit-1.15.2.tar.gz.sig) = 48aafc2e09ebb13f386eb990e8b1a89203aee9f87a61a2a162771038e026f192b396a7db5f9db4a47b5ba8149c59a9e7b8186fd3feb1a32019a47e6052f99ad8 +SHA512 (nbdkit-1.15.3.tar.gz) = ae91bf86af132318c3cf188b7261b66060fa42a9f8bafb9ffd6698466ea7d09e12a5936d0c62e549b65356dd88fc5f3c8ea6dbbc65b362aa1cf92c803a1fdfea +SHA512 (nbdkit-1.15.3.tar.gz.sig) = da8566bd4f6054886ebc1626b9cd1cb2e4ec19b19d0e10fe521436dbf8e711dec574f51dc592eadbb91f256b49047a5813d7c265f9f0c633fd356295b43d1b69 From e42bd5a4aa30d445558691b5b1b517f42a2a7170 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Oct 2019 11:30:06 +0100 Subject: [PATCH 234/683] New upstream release 1.15.4. New nbdkit-security(1) man page. Rename nbdkit-reflection-plugin to nbdkit-info-plugin. --- nbdkit.spec | 18 ++++++++++++------ sources | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 79d1f37..5987a6d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.3 +Version: 1.15.4 Release: 1%{?dist} Summary: NBD server @@ -153,12 +153,12 @@ Provides: %{name}-data-plugin = %{version}-%{release} Provides: %{name}-file-plugin = %{version}-%{release} Provides: %{name}-floppy-plugin = %{version}-%{release} Provides: %{name}-full-plugin = %{version}-%{release} +Provides: %{name}-info-plugin = %{version}-%{release} Provides: %{name}-memory-plugin = %{version}-%{release} Provides: %{name}-null-plugin = %{version}-%{release} Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} Provides: %{name}-random-plugin = %{version}-%{release} -Provides: %{name}-reflection-plugin = %{version}-%{release} Provides: %{name}-sh-plugin = %{version}-%{release} Provides: %{name}-split-plugin = %{version}-%{release} Provides: %{name}-streaming-plugin = %{version}-%{release} @@ -177,6 +177,8 @@ nbdkit-floppy-plugin Create a virtual floppy disk from a directory. nbdkit-full-plugin A virtual disk that returns ENOSPC errors. +nbdkit-info-plugin Serve client and server information. + nbdkit-memory-plugin A virtual memory plugin. nbdkit-null-plugin A null (bitbucket) plugin. @@ -187,8 +189,6 @@ nbdkit-partitioning-plugin Create virtual disks from partitions. nbdkit-random-plugin Random content plugin for testing. -nbdkit-reflection-plugin Reflect client info back to the client. - nbdkit-sh-plugin Write plugins as shell scripts or executables. nbdkit-split-plugin Concatenate one or more files. @@ -653,6 +653,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-probing.1* %{_mandir}/man1/nbdkit-protocol.1* %{_mandir}/man1/nbdkit-service.1* +%{_mandir}/man1/nbdkit-security.1* %{_mandir}/man1/nbdkit-tls.1* @@ -663,12 +664,12 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/plugins/nbdkit-file-plugin.so %{_libdir}/%{name}/plugins/nbdkit-floppy-plugin.so %{_libdir}/%{name}/plugins/nbdkit-full-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-reflection-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so @@ -677,12 +678,12 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-floppy-plugin.1* %{_mandir}/man1/nbdkit-full-plugin.1* +%{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* -%{_mandir}/man1/nbdkit-reflection-plugin.1* %{_mandir}/man3/nbdkit-sh-plugin.3* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* @@ -908,6 +909,11 @@ make %{?_smp_mflags} check || { %changelog +* Tue Oct 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.4-1 +- New upstream release 1.15.4. +- New nbdkit-security(1) man page. +- Rename nbdkit-reflection-plugin to nbdkit-info-plugin. + * Wed Sep 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.3-1 - New upstream release 1.15.3. - Add new header file nbd-protocol.h to devel subpackage. diff --git a/sources b/sources index f83057b..1f27733 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.3.tar.gz) = ae91bf86af132318c3cf188b7261b66060fa42a9f8bafb9ffd6698466ea7d09e12a5936d0c62e549b65356dd88fc5f3c8ea6dbbc65b362aa1cf92c803a1fdfea -SHA512 (nbdkit-1.15.3.tar.gz.sig) = da8566bd4f6054886ebc1626b9cd1cb2e4ec19b19d0e10fe521436dbf8e711dec574f51dc592eadbb91f256b49047a5813d7c265f9f0c633fd356295b43d1b69 +SHA512 (nbdkit-1.15.4.tar.gz) = cc5b51eb52d63f7ebc7d0518945716f20cbadf22651e017807872d2cfc0f5c8abd2b182822644a5ec6ab06710d41ace09d4c1598526e9656fff658c4a5c79e16 +SHA512 (nbdkit-1.15.4.tar.gz.sig) = 6a3104c6e794c98cb5e1194132927b89ff090ae5e6aec4aa4cf1e7cee1e6b4af67e7cbbdee801d8112e59b051bb83dfd438bc1bf03216b352262aab0e8f4f5b3 From f1625484a31bd99065c54584aa1d284a1c396b5f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:08:26 +0100 Subject: [PATCH 235/683] New upstream release 1.15.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5987a6d..ca30882 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.4 +Version: 1.15.5 Release: 1%{?dist} Summary: NBD server @@ -909,6 +909,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Oct 19 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.5-1 +- New upstream release 1.15.5. + * Tue Oct 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.4-1 - New upstream release 1.15.4. - New nbdkit-security(1) man page. diff --git a/sources b/sources index 1f27733..be4f378 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.4.tar.gz) = cc5b51eb52d63f7ebc7d0518945716f20cbadf22651e017807872d2cfc0f5c8abd2b182822644a5ec6ab06710d41ace09d4c1598526e9656fff658c4a5c79e16 -SHA512 (nbdkit-1.15.4.tar.gz.sig) = 6a3104c6e794c98cb5e1194132927b89ff090ae5e6aec4aa4cf1e7cee1e6b4af67e7cbbdee801d8112e59b051bb83dfd438bc1bf03216b352262aab0e8f4f5b3 +SHA512 (nbdkit-1.15.5.tar.gz) = ab148286c5c307d2e4c6c6ad5796f752f4f332d478cd71b984b6d7329c9a392e2e27bfc9a70b4927b3610b346c39d77eceb19de5102989340715e3e884d89429 +SHA512 (nbdkit-1.15.5.tar.gz.sig) = 8d4b4a9d95c99ec4c8643566887f1ab077a54b1638a1b759b7922a731b955569b3326db181fb7c1f58e01f97255b3e989cbf4fd28404f46bcbe15499c579a250 From 1c50b6036585b9620c43fb474e01c821ec88805a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:33:03 +0100 Subject: [PATCH 236/683] Make tests/test-captive.sh stable. --- ...ve.sh-Revert-sleep-back-to-5-seconds.patch | 30 +++++++++++++++++++ nbdkit.spec | 3 ++ 2 files changed, 33 insertions(+) create mode 100644 0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch diff --git a/0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch b/0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch new file mode 100644 index 0000000..7d16647 --- /dev/null +++ b/0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch @@ -0,0 +1,30 @@ +From 05e478255b23a7149e5189fe718dad53a4488701 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 19 Oct 2019 18:31:24 +0100 +Subject: [PATCH] tests/test-captive.sh: Revert sleep back to 5 seconds. + +For unknown reasons this makes the test very prone to failure on slow +or heavily loaded machines. + +Reverts sleep change from +commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. +--- + tests/test-captive.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 88c0d81..b62d5fc 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -44,7 +44,7 @@ rm -f $files + cleanup_fn rm -f $files + + nbdkit -U $sock example1 --run ' +- sleep 1; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket ++ sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket + ' > captive.out + + # Check the output. +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index ca30882..687a43b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -41,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Make tests/test-captive.sh stable. +Patch1: 0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From ce06df67498d38ea42763e6905c4247649f50d01 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:33:03 +0100 Subject: [PATCH 237/683] Make tests/test-captive.sh stable (attempt 2). --- ...test-captive.sh-Increase-sleep-times.patch | 39 +++++++++++++++++++ ...test-captive.sh-Remove-useless-sleep.patch | 15 +++---- nbdkit.spec | 3 +- 3 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 0001-tests-test-captive.sh-Increase-sleep-times.patch rename 0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch => 0002-tests-test-captive.sh-Remove-useless-sleep.patch (51%) diff --git a/0001-tests-test-captive.sh-Increase-sleep-times.patch b/0001-tests-test-captive.sh-Increase-sleep-times.patch new file mode 100644 index 0000000..2336777 --- /dev/null +++ b/0001-tests-test-captive.sh-Increase-sleep-times.patch @@ -0,0 +1,39 @@ +From 740f6dee658ee6adb356d9600e2b51bb22dbce1e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 19 Oct 2019 18:31:24 +0100 +Subject: [PATCH 1/2] tests/test-captive.sh: Increase sleep times. + +Short sleeps in this test make the test very prone to failure on slow +or heavily loaded machines. + +Fixes commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. + +See also +https://www.redhat.com/archives/libguestfs/2019-October/msg00115.html +--- + tests/test-captive.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 88c0d81..8890073 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -72,13 +72,13 @@ fi + # Check that nbdkit death from unhandled signal affects exit status + status=0 + nbdkit -U - -P captive.pid example1 --run ' +-test ! -s captive.pid || sleep 1 ++test ! -s captive.pid || sleep 5 + if test ! -s captive.pid; then + echo "no pidfile yet" + exit 10 + fi + kill -s ABRT $(cat captive.pid) || exit 10 +-sleep 1 ++sleep 5 + ' > captive.out || status=$? + if test $status != $(( 128 + $(kill -l ABRT) )); then + echo "$0: unexpected exit status $status" +-- +2.23.0 + diff --git a/0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch b/0002-tests-test-captive.sh-Remove-useless-sleep.patch similarity index 51% rename from 0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch rename to 0002-tests-test-captive.sh-Remove-useless-sleep.patch index 7d16647..a270463 100644 --- a/0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch +++ b/0002-tests-test-captive.sh-Remove-useless-sleep.patch @@ -1,19 +1,14 @@ -From 05e478255b23a7149e5189fe718dad53a4488701 Mon Sep 17 00:00:00 2001 +From f4e7db5062dc59662ce05796f95f93017187f1d6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 19 Oct 2019 18:31:24 +0100 -Subject: [PATCH] tests/test-captive.sh: Revert sleep back to 5 seconds. +Date: Sat, 19 Oct 2019 18:52:47 +0100 +Subject: [PATCH 2/2] tests/test-captive.sh: Remove useless sleep. -For unknown reasons this makes the test very prone to failure on slow -or heavily loaded machines. - -Reverts sleep change from -commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. --- tests/test-captive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 88c0d81..b62d5fc 100755 +index 8890073..22a90ca 100755 --- a/tests/test-captive.sh +++ b/tests/test-captive.sh @@ -44,7 +44,7 @@ rm -f $files @@ -21,7 +16,7 @@ index 88c0d81..b62d5fc 100755 nbdkit -U $sock example1 --run ' - sleep 1; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket -+ sleep 5; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket ++ echo nbd=$nbd; echo port=$port; echo socket=$unixsocket ' > captive.out # Check the output. diff --git a/nbdkit.spec b/nbdkit.spec index 687a43b..61055ee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,7 +42,8 @@ Source2: libguestfs.keyring %endif # Make tests/test-captive.sh stable. -Patch1: 0001-tests-test-captive.sh-Revert-sleep-back-to-5-seconds.patch +Patch1: 0001-tests-test-captive.sh-Increase-sleep-times.patch +Patch2: 0002-tests-test-captive.sh-Remove-useless-sleep.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From 53652f68344e23a719a2859b441b4b2a9eeb40b8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 19:15:04 +0100 Subject: [PATCH 238/683] Make tests/test-socket-activation stable. --- ...test-captive.sh-Increase-sleep-times.patch | 2 +- ...test-captive.sh-Remove-useless-sleep.patch | 2 +- ...t-activation.c-Don-t-check-nbdkit-ex.patch | 57 +++++++++++++++++++ nbdkit.spec | 2 + 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch diff --git a/0001-tests-test-captive.sh-Increase-sleep-times.patch b/0001-tests-test-captive.sh-Increase-sleep-times.patch index 2336777..11fea90 100644 --- a/0001-tests-test-captive.sh-Increase-sleep-times.patch +++ b/0001-tests-test-captive.sh-Increase-sleep-times.patch @@ -1,7 +1,7 @@ From 740f6dee658ee6adb356d9600e2b51bb22dbce1e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:31:24 +0100 -Subject: [PATCH 1/2] tests/test-captive.sh: Increase sleep times. +Subject: [PATCH 1/3] tests/test-captive.sh: Increase sleep times. Short sleeps in this test make the test very prone to failure on slow or heavily loaded machines. diff --git a/0002-tests-test-captive.sh-Remove-useless-sleep.patch b/0002-tests-test-captive.sh-Remove-useless-sleep.patch index a270463..6360027 100644 --- a/0002-tests-test-captive.sh-Remove-useless-sleep.patch +++ b/0002-tests-test-captive.sh-Remove-useless-sleep.patch @@ -1,7 +1,7 @@ From f4e7db5062dc59662ce05796f95f93017187f1d6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:52:47 +0100 -Subject: [PATCH 2/2] tests/test-captive.sh: Remove useless sleep. +Subject: [PATCH 2/3] tests/test-captive.sh: Remove useless sleep. --- tests/test-captive.sh | 2 +- diff --git a/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch b/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch new file mode 100644 index 0000000..b8a06a5 --- /dev/null +++ b/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch @@ -0,0 +1,57 @@ +From c3c6d81418c4dc23ac81dc2a6f5751a8c82667a3 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 19 Oct 2019 19:11:22 +0100 +Subject: [PATCH 3/3] tests/test-socket-activation.c: Don't check nbdkit exit + status. + +In this test we run nbdkit as a subprocess of the test. The test +checked the exit status of nbdkit. However nbdkit can segfault on +shutdown because we are setting MALLOC_PERTURB_. + +We need to fix nbdkit's shutdown path eventually, but for this test it +is not relevant so ignore the exit status. + +This makes the test more stable. +--- + tests/test-socket-activation.c | 23 +---------------------- + 1 file changed, 1 insertion(+), 22 deletions(-) + +diff --git a/tests/test-socket-activation.c b/tests/test-socket-activation.c +index 2141d6d..64ec327 100644 +--- a/tests/test-socket-activation.c ++++ b/tests/test-socket-activation.c +@@ -88,30 +88,9 @@ cleanup (void) + { + int status; + +- if (pid > 0) { ++ if (pid > 0) + kill (pid, SIGTERM); + +- /* Check the status of nbdkit is normal on exit. */ +- if (waitpid (pid, &status, 0) == -1) { +- perror ("waitpid"); +- _exit (EXIT_FAILURE); +- } +- if (WIFEXITED (status) && WEXITSTATUS (status) != 0) { +- _exit (WEXITSTATUS (status)); +- } +- if (WIFSIGNALED (status)) { +- /* Note that nbdkit is supposed to catch the signal we send and +- * exit cleanly, so the following shouldn't happen. +- */ +- fprintf (stderr, "nbdkit terminated by signal %d\n", WTERMSIG (status)); +- _exit (EXIT_FAILURE); +- } +- if (WIFSTOPPED (status)) { +- fprintf (stderr, "nbdkit stopped by signal %d\n", WSTOPSIG (status)); +- _exit (EXIT_FAILURE); +- } +- } +- + unlink (pidpath); + unlink (sockpath); + rmdir (tmpdir); +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 61055ee..8b8f3bd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,6 +44,8 @@ Source2: libguestfs.keyring # Make tests/test-captive.sh stable. Patch1: 0001-tests-test-captive.sh-Increase-sleep-times.patch Patch2: 0002-tests-test-captive.sh-Remove-useless-sleep.patch +# Make tests/test-socket-activation stable. +Patch3: 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From 17c0b5845023ed7f690bfa97b68c3068b4f3c1b5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 19:45:05 +0100 Subject: [PATCH 239/683] Further test stability patches from upstream. --- ...test-captive.sh-Increase-sleep-times.patch | 2 +- ...test-captive.sh-Remove-useless-sleep.patch | 2 +- ...t-activation.c-Don-t-check-nbdkit-ex.patch | 18 +++++---- ...t-captive.sh-Better-test-for-pidfile.patch | 39 +++++++++++++++++++ nbdkit.spec | 5 ++- 5 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 0004-tests-test-captive.sh-Better-test-for-pidfile.patch diff --git a/0001-tests-test-captive.sh-Increase-sleep-times.patch b/0001-tests-test-captive.sh-Increase-sleep-times.patch index 11fea90..a1e223b 100644 --- a/0001-tests-test-captive.sh-Increase-sleep-times.patch +++ b/0001-tests-test-captive.sh-Increase-sleep-times.patch @@ -1,7 +1,7 @@ From 740f6dee658ee6adb356d9600e2b51bb22dbce1e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:31:24 +0100 -Subject: [PATCH 1/3] tests/test-captive.sh: Increase sleep times. +Subject: [PATCH 1/4] tests/test-captive.sh: Increase sleep times. Short sleeps in this test make the test very prone to failure on slow or heavily loaded machines. diff --git a/0002-tests-test-captive.sh-Remove-useless-sleep.patch b/0002-tests-test-captive.sh-Remove-useless-sleep.patch index 6360027..e23195e 100644 --- a/0002-tests-test-captive.sh-Remove-useless-sleep.patch +++ b/0002-tests-test-captive.sh-Remove-useless-sleep.patch @@ -1,7 +1,7 @@ From f4e7db5062dc59662ce05796f95f93017187f1d6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 18:52:47 +0100 -Subject: [PATCH 2/3] tests/test-captive.sh: Remove useless sleep. +Subject: [PATCH 2/4] tests/test-captive.sh: Remove useless sleep. --- tests/test-captive.sh | 2 +- diff --git a/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch b/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch index b8a06a5..6230fdd 100644 --- a/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch +++ b/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch @@ -1,7 +1,7 @@ -From c3c6d81418c4dc23ac81dc2a6f5751a8c82667a3 Mon Sep 17 00:00:00 2001 +From b6cbb0edc94772ce063bc4a64d1940519fd87fa2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Oct 2019 19:11:22 +0100 -Subject: [PATCH 3/3] tests/test-socket-activation.c: Don't check nbdkit exit +Subject: [PATCH 3/4] tests/test-socket-activation.c: Don't check nbdkit exit status. In this test we run nbdkit as a subprocess of the test. The test @@ -13,17 +13,19 @@ is not relevant so ignore the exit status. This makes the test more stable. --- - tests/test-socket-activation.c | 23 +---------------------- - 1 file changed, 1 insertion(+), 22 deletions(-) + tests/test-socket-activation.c | 25 +------------------------ + 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/tests/test-socket-activation.c b/tests/test-socket-activation.c -index 2141d6d..64ec327 100644 +index 2141d6d..ec91114 100644 --- a/tests/test-socket-activation.c +++ b/tests/test-socket-activation.c -@@ -88,30 +88,9 @@ cleanup (void) +@@ -86,32 +86,9 @@ static pid_t pid = 0; + static void + cleanup (void) { - int status; - +- int status; +- - if (pid > 0) { + if (pid > 0) kill (pid, SIGTERM); diff --git a/0004-tests-test-captive.sh-Better-test-for-pidfile.patch b/0004-tests-test-captive.sh-Better-test-for-pidfile.patch new file mode 100644 index 0000000..27f7f6e --- /dev/null +++ b/0004-tests-test-captive.sh-Better-test-for-pidfile.patch @@ -0,0 +1,39 @@ +From 57ae3c6098c35256ab1e3679f77ed28b5aad982a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 19 Oct 2019 19:42:40 +0100 +Subject: [PATCH 4/4] tests/test-captive.sh: Better test for pidfile. + +This test was still unstable on slower machines. Improve the test for +the pidfile to make it more stable. + +Fixes commit 740f6dee658ee6adb356d9600e2b51bb22dbce1e +and commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. +--- + tests/test-captive.sh | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 22a90ca..82697a5 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -72,10 +72,13 @@ fi + # Check that nbdkit death from unhandled signal affects exit status + status=0 + nbdkit -U - -P captive.pid example1 --run ' +-test ! -s captive.pid || sleep 5 +-if test ! -s captive.pid; then +- echo "no pidfile yet" +- exit 10 ++for i in {1..60}; do ++ if test -s captive.pid; then break; fi ++ sleep 1 ++done ++if ! test -s captive.pid; then ++ echo "$0: no pidfile yet" ++ exit 10 + fi + kill -s ABRT $(cat captive.pid) || exit 10 + sleep 5 +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 8b8f3bd..57b452d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -41,11 +41,12 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Make tests/test-captive.sh stable. +# Make tests/test-captive.sh and tests/test-socket-activation stable. +# All upstream after nbdkit 1.15.5. Patch1: 0001-tests-test-captive.sh-Increase-sleep-times.patch Patch2: 0002-tests-test-captive.sh-Remove-useless-sleep.patch -# Make tests/test-socket-activation stable. Patch3: 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch +Patch4: 0004-tests-test-captive.sh-Better-test-for-pidfile.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From 656a67d0b6a43b87484712b0e5f2ab4a8cbcca5f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 24 Oct 2019 14:30:44 +0100 Subject: [PATCH 240/683] New upstream version 1.15.6. --- nbdkit.spec | 19 ++++--------------- sources | 4 ++-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 57b452d..3caf080 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.5 +Version: 1.15.6 Release: 1%{?dist} Summary: NBD server @@ -41,13 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Make tests/test-captive.sh and tests/test-socket-activation stable. -# All upstream after nbdkit 1.15.5. -Patch1: 0001-tests-test-captive.sh-Increase-sleep-times.patch -Patch2: 0002-tests-test-captive.sh-Remove-useless-sleep.patch -Patch3: 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch -Patch4: 0004-tests-test-captive.sh-Better-test-for-pidfile.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -602,13 +595,6 @@ make %{?_smp_mflags} # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete -# Delete the VDDK plugin on !x86 architectures since it is not -# applicable there. -%ifnarch %{ix86} x86_64 -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so -rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-vddk-plugin.1* -%endif - # If cargo happens to be installed on the machine then the # rust plugin is built. Delete it if this happens. rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* @@ -916,6 +902,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Oct 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.6-1 +- New upstream version 1.15.6. + * Sat Oct 19 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.5-1 - New upstream release 1.15.5. diff --git a/sources b/sources index be4f378..b4f9d98 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.5.tar.gz) = ab148286c5c307d2e4c6c6ad5796f752f4f332d478cd71b984b6d7329c9a392e2e27bfc9a70b4927b3610b346c39d77eceb19de5102989340715e3e884d89429 -SHA512 (nbdkit-1.15.5.tar.gz.sig) = 8d4b4a9d95c99ec4c8643566887f1ab077a54b1638a1b759b7922a731b955569b3326db181fb7c1f58e01f97255b3e989cbf4fd28404f46bcbe15499c579a250 +SHA512 (nbdkit-1.15.6.tar.gz) = 680c6ae630ddfe848f7157d3f1c05874d9abef2184a06f4fc69b92a74ea60299a8c1e0006215cfeb32573e21febd9e85e423f1ed1e05669f79fd3fe411c040a0 +SHA512 (nbdkit-1.15.6.tar.gz.sig) = f7a489012dc01963521de619c1f2c035247c845ee514e1d901e547f874da292888635daf296f6b4652c26ef0a07400de56b285e3a00742d1e93515302214bf28 From 26e120b9d6db8df6345b5c4abbe1f559bce0dcdd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 24 Oct 2019 14:38:15 +0100 Subject: [PATCH 241/683] vddk: Disable tests on non-x86 platforms. --- ...k-Disable-tests-on-non-x86-platforms.patch | 48 +++++++++++++++++++ nbdkit.spec | 5 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 0001-vddk-Disable-tests-on-non-x86-platforms.patch diff --git a/0001-vddk-Disable-tests-on-non-x86-platforms.patch b/0001-vddk-Disable-tests-on-non-x86-platforms.patch new file mode 100644 index 0000000..4dfe5cf --- /dev/null +++ b/0001-vddk-Disable-tests-on-non-x86-platforms.patch @@ -0,0 +1,48 @@ +From c472b47a55a331dcb5cc75def71cc665abbc06db Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 24 Oct 2019 14:36:54 +0100 +Subject: [PATCH] vddk: Disable tests on non-x86 platforms. + +Fixes commit a0184ba081164218ddd1928ed48a75fca93406bc. +--- + tests/Makefile.am | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 558ea86..2db5e7b 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -162,12 +162,14 @@ check-valgrind: + check-root: + $(MAKE) check TESTS="test-file-block" + ++if HAVE_VDDK + # Run a basic check against a real copy of VDDK. You must set + # vddkdir to point to the library location, eg: + # + # make check-vddk vddkdir=vmware-vix-disklib-distrib + check-vddk: + $(MAKE) check TESTS=test-vddk-real.sh ++endif HAVE_VDDK + + #---------------------------------------------------------------------- + # Basic server command line and start-up tests. +@@ -713,6 +715,7 @@ test_streaming_SOURCES = test-streaming.c test.h + test_streaming_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) + test_streaming_LDADD = libtest.la $(LIBGUESTFS_LIBS) + ++if HAVE_VDDK + # VDDK plugin test. + # This only tests that the plugin can be loaded against a + # dummy VDDK library, it is not a detailed test. +@@ -737,6 +740,7 @@ libvixDiskLib_la_CXXFLAGS = $(WARNINGS_CFLAGS) + libvixDiskLib_la_LDFLAGS = \ + -shared -version-number 6:0:0 -rpath /nowhere \ + $(NULL) ++endif HAVE_VDDK + + # zero plugin test. + TESTS += test-zero.sh +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 3caf080..56cd8da 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,7 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.15-development @@ -41,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream in > 1.15.6. +Patch1: 0001-vddk-Disable-tests-on-non-x86-platforms.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From ecd14a1e8db5447ef6d952b2fd783eb48239f595 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 6 Nov 2019 14:44:03 +0000 Subject: [PATCH 242/683] New upstream version 1.15.7. --- ...test-captive.sh-Increase-sleep-times.patch | 39 ------------ ...k-Disable-tests-on-non-x86-platforms.patch | 48 --------------- ...test-captive.sh-Remove-useless-sleep.patch | 25 -------- ...t-activation.c-Don-t-check-nbdkit-ex.patch | 59 ------------------- ...t-captive.sh-Better-test-for-pidfile.patch | 39 ------------ nbdkit.spec | 10 ++-- 6 files changed, 5 insertions(+), 215 deletions(-) delete mode 100644 0001-tests-test-captive.sh-Increase-sleep-times.patch delete mode 100644 0001-vddk-Disable-tests-on-non-x86-platforms.patch delete mode 100644 0002-tests-test-captive.sh-Remove-useless-sleep.patch delete mode 100644 0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch delete mode 100644 0004-tests-test-captive.sh-Better-test-for-pidfile.patch diff --git a/0001-tests-test-captive.sh-Increase-sleep-times.patch b/0001-tests-test-captive.sh-Increase-sleep-times.patch deleted file mode 100644 index a1e223b..0000000 --- a/0001-tests-test-captive.sh-Increase-sleep-times.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 740f6dee658ee6adb356d9600e2b51bb22dbce1e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 19 Oct 2019 18:31:24 +0100 -Subject: [PATCH 1/4] tests/test-captive.sh: Increase sleep times. - -Short sleeps in this test make the test very prone to failure on slow -or heavily loaded machines. - -Fixes commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. - -See also -https://www.redhat.com/archives/libguestfs/2019-October/msg00115.html ---- - tests/test-captive.sh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 88c0d81..8890073 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -72,13 +72,13 @@ fi - # Check that nbdkit death from unhandled signal affects exit status - status=0 - nbdkit -U - -P captive.pid example1 --run ' --test ! -s captive.pid || sleep 1 -+test ! -s captive.pid || sleep 5 - if test ! -s captive.pid; then - echo "no pidfile yet" - exit 10 - fi - kill -s ABRT $(cat captive.pid) || exit 10 --sleep 1 -+sleep 5 - ' > captive.out || status=$? - if test $status != $(( 128 + $(kill -l ABRT) )); then - echo "$0: unexpected exit status $status" --- -2.23.0 - diff --git a/0001-vddk-Disable-tests-on-non-x86-platforms.patch b/0001-vddk-Disable-tests-on-non-x86-platforms.patch deleted file mode 100644 index 4dfe5cf..0000000 --- a/0001-vddk-Disable-tests-on-non-x86-platforms.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c472b47a55a331dcb5cc75def71cc665abbc06db Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 24 Oct 2019 14:36:54 +0100 -Subject: [PATCH] vddk: Disable tests on non-x86 platforms. - -Fixes commit a0184ba081164218ddd1928ed48a75fca93406bc. ---- - tests/Makefile.am | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 558ea86..2db5e7b 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -162,12 +162,14 @@ check-valgrind: - check-root: - $(MAKE) check TESTS="test-file-block" - -+if HAVE_VDDK - # Run a basic check against a real copy of VDDK. You must set - # vddkdir to point to the library location, eg: - # - # make check-vddk vddkdir=vmware-vix-disklib-distrib - check-vddk: - $(MAKE) check TESTS=test-vddk-real.sh -+endif HAVE_VDDK - - #---------------------------------------------------------------------- - # Basic server command line and start-up tests. -@@ -713,6 +715,7 @@ test_streaming_SOURCES = test-streaming.c test.h - test_streaming_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) - test_streaming_LDADD = libtest.la $(LIBGUESTFS_LIBS) - -+if HAVE_VDDK - # VDDK plugin test. - # This only tests that the plugin can be loaded against a - # dummy VDDK library, it is not a detailed test. -@@ -737,6 +740,7 @@ libvixDiskLib_la_CXXFLAGS = $(WARNINGS_CFLAGS) - libvixDiskLib_la_LDFLAGS = \ - -shared -version-number 6:0:0 -rpath /nowhere \ - $(NULL) -+endif HAVE_VDDK - - # zero plugin test. - TESTS += test-zero.sh --- -2.23.0 - diff --git a/0002-tests-test-captive.sh-Remove-useless-sleep.patch b/0002-tests-test-captive.sh-Remove-useless-sleep.patch deleted file mode 100644 index e23195e..0000000 --- a/0002-tests-test-captive.sh-Remove-useless-sleep.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f4e7db5062dc59662ce05796f95f93017187f1d6 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 19 Oct 2019 18:52:47 +0100 -Subject: [PATCH 2/4] tests/test-captive.sh: Remove useless sleep. - ---- - tests/test-captive.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 8890073..22a90ca 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -44,7 +44,7 @@ rm -f $files - cleanup_fn rm -f $files - - nbdkit -U $sock example1 --run ' -- sleep 1; echo nbd=$nbd; echo port=$port; echo socket=$unixsocket -+ echo nbd=$nbd; echo port=$port; echo socket=$unixsocket - ' > captive.out - - # Check the output. --- -2.23.0 - diff --git a/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch b/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch deleted file mode 100644 index 6230fdd..0000000 --- a/0003-tests-test-socket-activation.c-Don-t-check-nbdkit-ex.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b6cbb0edc94772ce063bc4a64d1940519fd87fa2 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 19 Oct 2019 19:11:22 +0100 -Subject: [PATCH 3/4] tests/test-socket-activation.c: Don't check nbdkit exit - status. - -In this test we run nbdkit as a subprocess of the test. The test -checked the exit status of nbdkit. However nbdkit can segfault on -shutdown because we are setting MALLOC_PERTURB_. - -We need to fix nbdkit's shutdown path eventually, but for this test it -is not relevant so ignore the exit status. - -This makes the test more stable. ---- - tests/test-socket-activation.c | 25 +------------------------ - 1 file changed, 1 insertion(+), 24 deletions(-) - -diff --git a/tests/test-socket-activation.c b/tests/test-socket-activation.c -index 2141d6d..ec91114 100644 ---- a/tests/test-socket-activation.c -+++ b/tests/test-socket-activation.c -@@ -86,32 +86,9 @@ static pid_t pid = 0; - static void - cleanup (void) - { -- int status; -- -- if (pid > 0) { -+ if (pid > 0) - kill (pid, SIGTERM); - -- /* Check the status of nbdkit is normal on exit. */ -- if (waitpid (pid, &status, 0) == -1) { -- perror ("waitpid"); -- _exit (EXIT_FAILURE); -- } -- if (WIFEXITED (status) && WEXITSTATUS (status) != 0) { -- _exit (WEXITSTATUS (status)); -- } -- if (WIFSIGNALED (status)) { -- /* Note that nbdkit is supposed to catch the signal we send and -- * exit cleanly, so the following shouldn't happen. -- */ -- fprintf (stderr, "nbdkit terminated by signal %d\n", WTERMSIG (status)); -- _exit (EXIT_FAILURE); -- } -- if (WIFSTOPPED (status)) { -- fprintf (stderr, "nbdkit stopped by signal %d\n", WSTOPSIG (status)); -- _exit (EXIT_FAILURE); -- } -- } -- - unlink (pidpath); - unlink (sockpath); - rmdir (tmpdir); --- -2.23.0 - diff --git a/0004-tests-test-captive.sh-Better-test-for-pidfile.patch b/0004-tests-test-captive.sh-Better-test-for-pidfile.patch deleted file mode 100644 index 27f7f6e..0000000 --- a/0004-tests-test-captive.sh-Better-test-for-pidfile.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 57ae3c6098c35256ab1e3679f77ed28b5aad982a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 19 Oct 2019 19:42:40 +0100 -Subject: [PATCH 4/4] tests/test-captive.sh: Better test for pidfile. - -This test was still unstable on slower machines. Improve the test for -the pidfile to make it more stable. - -Fixes commit 740f6dee658ee6adb356d9600e2b51bb22dbce1e -and commit 38165d0f8f5a4eb898d756a561811c2fe042fe4d. ---- - tests/test-captive.sh | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 22a90ca..82697a5 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -72,10 +72,13 @@ fi - # Check that nbdkit death from unhandled signal affects exit status - status=0 - nbdkit -U - -P captive.pid example1 --run ' --test ! -s captive.pid || sleep 5 --if test ! -s captive.pid; then -- echo "no pidfile yet" -- exit 10 -+for i in {1..60}; do -+ if test -s captive.pid; then break; fi -+ sleep 1 -+done -+if ! test -s captive.pid; then -+ echo "$0: no pidfile yet" -+ exit 10 - fi - kill -s ABRT $(cat captive.pid) || exit 10 - sleep 5 --- -2.23.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 56cd8da..3a7dc3d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,13 +21,13 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.15-development Name: nbdkit -Version: 1.15.6 +Version: 1.15.7 Release: 1%{?dist} Summary: NBD server @@ -41,9 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream in > 1.15.6. -Patch1: 0001-vddk-Disable-tests-on-non-x86-platforms.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -905,6 +902,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Nov 06 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.7-1 +- New upstream version 1.15.7. + * Fri Oct 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.6-1 - New upstream version 1.15.6. From acde02c4e804ec4fd26307124afa75c0c49c27d0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 6 Nov 2019 14:47:08 +0000 Subject: [PATCH 243/683] Update sources file. --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index b4f9d98..f21b7fe 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.6.tar.gz) = 680c6ae630ddfe848f7157d3f1c05874d9abef2184a06f4fc69b92a74ea60299a8c1e0006215cfeb32573e21febd9e85e423f1ed1e05669f79fd3fe411c040a0 -SHA512 (nbdkit-1.15.6.tar.gz.sig) = f7a489012dc01963521de619c1f2c035247c845ee514e1d901e547f874da292888635daf296f6b4652c26ef0a07400de56b285e3a00742d1e93515302214bf28 +SHA512 (nbdkit-1.15.7.tar.gz) = a6197790ad98c6fb5a6ddb87ecd4f14df3d7becad3ab7ba32351ed31d72da8fd7b3fc92142fdb413965330df645f375fe2bbc7428cb1af7b3b2b433d24153587 +SHA512 (nbdkit-1.15.7.tar.gz.sig) = 22d3ecdcbec1534db0cf107a8bf751a5995b07e8a76fba8cc282bb2901daef05d03e5af16927ee6f9798e5562f647c260d7a4e1bddfec7ee10502697a8f3aa6c From 6f97abb1da7fa321ad2740bcf663c2f668924538 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 9 Nov 2019 10:53:46 +0000 Subject: [PATCH 244/683] New upstream version 1.15.8. Add new nbdkit-release-notes-* man pages. --- nbdkit.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3a7dc3d..ed36fef 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -27,7 +27,7 @@ %global source_directory 1.15-development Name: nbdkit -Version: 1.15.7 +Version: 1.15.8 Release: 1%{?dist} Summary: NBD server @@ -892,6 +892,7 @@ make %{?_smp_mflags} check || { %{_includedir}/nbd-protocol.h %{_mandir}/man3/nbdkit-filter.3* %{_mandir}/man3/nbdkit-plugin.3* +%{_mandir}/man1/nbdkit-release-notes-1.*.1* %{_libdir}/pkgconfig/nbdkit.pc @@ -902,6 +903,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Nov 09 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.8-1 +- New upstream version 1.15.8. +- Add new nbdkit-release-notes-* man pages. + * Wed Nov 06 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.7-1 - New upstream version 1.15.7. diff --git a/sources b/sources index f21b7fe..c2d19ac 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.7.tar.gz) = a6197790ad98c6fb5a6ddb87ecd4f14df3d7becad3ab7ba32351ed31d72da8fd7b3fc92142fdb413965330df645f375fe2bbc7428cb1af7b3b2b433d24153587 -SHA512 (nbdkit-1.15.7.tar.gz.sig) = 22d3ecdcbec1534db0cf107a8bf751a5995b07e8a76fba8cc282bb2901daef05d03e5af16927ee6f9798e5562f647c260d7a4e1bddfec7ee10502697a8f3aa6c +SHA512 (nbdkit-1.15.8.tar.gz) = 1cae65ea145ee93b35fed68239e920987ef6673e7bac6515de11ce61a30ee5d207f3ebfa5286b5913db1914d0780f1cbbc04ef21f5a069e89cdf2d1c93cb4f93 +SHA512 (nbdkit-1.15.8.tar.gz.sig) = df24342c8f01d58e0ff249a2e524569aa4e8dc417ac9fd354e9fc99e9e9faf1f31d8201efde8d8a7d4af6202c1a1e2ef719e3ccae56b59c7935dd74bc89639d8 From 44e31cc2b8f30f442106cc4e856448a6d8c4e503 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 14 Nov 2019 10:34:10 +0000 Subject: [PATCH 245/683] New stable release 1.16.0. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ed36fef..b34f268 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,10 +24,10 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.15-development +%global source_directory 1.16-stable Name: nbdkit -Version: 1.15.8 +Version: 1.16.0 Release: 1%{?dist} Summary: NBD server @@ -903,6 +903,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Nov 14 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-1 +- New stable release 1.16.0. + * Sat Nov 09 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.8-1 - New upstream version 1.15.8. - Add new nbdkit-release-notes-* man pages. diff --git a/sources b/sources index c2d19ac..2e8a5d5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.15.8.tar.gz) = 1cae65ea145ee93b35fed68239e920987ef6673e7bac6515de11ce61a30ee5d207f3ebfa5286b5913db1914d0780f1cbbc04ef21f5a069e89cdf2d1c93cb4f93 -SHA512 (nbdkit-1.15.8.tar.gz.sig) = df24342c8f01d58e0ff249a2e524569aa4e8dc417ac9fd354e9fc99e9e9faf1f31d8201efde8d8a7d4af6202c1a1e2ef719e3ccae56b59c7935dd74bc89639d8 +SHA512 (nbdkit-1.16.0.tar.gz) = 71f38d0290f6ae9bb765d728857b7eaee12d3960d46ad760f9ebe76c747a26fa72a770982af94d43cda5631f90a3c24002ca671aba599e674e929dcafa533e6e +SHA512 (nbdkit-1.16.0.tar.gz.sig) = bedc654fc3dd5b08415f482678fb7eba4a4c590d139176b0a08833642ee1503af36e868d80dbbeb3ad1e869b2ba001d6f997f8b516988963787e2c00ca4eabb3 From cdf9779d17efa9ffc7ed14e206b6c64350591f2d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 14 Nov 2019 11:24:53 +0000 Subject: [PATCH 246/683] Add upstream patch to try to make test-captive more stable. --- ...ve.sh-Try-to-make-this-test-more-sta.patch | 154 ++++++++++++++++++ nbdkit.spec | 3 + 2 files changed, 157 insertions(+) create mode 100644 0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch diff --git a/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch b/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch new file mode 100644 index 0000000..22d9ed2 --- /dev/null +++ b/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch @@ -0,0 +1,154 @@ +From 376cda7c1ede6f03f8e922e7eae8f8b60cdf8e79 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 14 Nov 2019 11:11:22 +0000 +Subject: [PATCH] tests/test-captive.sh: Try to make this test more stable on + slower machines. + +This test relies on sending a signal to nbdkit which causes nbdkit to +exit before the captive subprocess. On slow machines (especially +armv7 and s390x in Fedora Koji) it appears that the captive subprocess +can still exit before nbdkit receives the signal, resulting in an +incorrect exit status and test failure. + +There's not a lot we can do here except to increase the sleep. +Alternatives might be to try to inspect the status of the nbdkit +process to see if it has become a zombie yet, but that would be hard +to make portable. + +Typical failure on armv7: + +FAIL: test-captive.sh +===================== ++ fail=0 +++ mktemp -u ++ sock=/tmp/tmp.bHGd8vKHxI ++ files='/tmp/tmp.bHGd8vKHxI captive.out captive.pid' ++ rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid ++ cleanup_fn rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid ++ _cleanup_hook[${#_cleanup_hook[@]}]='rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid' ++ nbdkit -U /tmp/tmp.bHGd8vKHxI example1 --run ' + echo nbd=$nbd; echo port=$port; echo socket=$unixsocket + ' +++ cat captive.out ++ '[' 'nbd=nbd:unix:/tmp/tmp.bHGd8vKHxI +port= +socket=/tmp/tmp.bHGd8vKHxI' '!=' 'nbd=nbd:unix:/tmp/tmp.bHGd8vKHxI +port= +socket=/tmp/tmp.bHGd8vKHxI' ']' ++ status=0 ++ nbdkit -U - example1 --run 'exit 2' ++ status=2 ++ test 2 '!=' 2 ++ test -s captive.out ++ status=0 ++ nbdkit -U - -P captive.pid example1 --run ' +for i in {1..60}; do + if test -s captive.pid; then break; fi + sleep 1 +done +if ! test -s captive.pid; then + echo "$0: no pidfile yet" + exit 10 +fi +kill -s ABRT $(cat captive.pid) || exit 10 +sleep 5 +' +++ kill -l ABRT ++ test 0 '!=' 134 ++ echo './test-captive.sh: unexpected exit status 0' +./test-captive.sh: unexpected exit status 0 ++ fail=1 ++ test -s captive.out ++ exit 1 ++ _run_cleanup_hooks ++ status=1 ++ set +e ++ trap '' INT QUIT TERM EXIT ERR ++ echo ./test-captive.sh: run cleanup hooks: exit code 1 +./test-captive.sh: run cleanup hooks: exit code 1 ++ (( i = 0 )) ++ (( i < 1 )) ++ rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid ++ (( ++i )) ++ (( i < 1 )) ++ exit 1 +FAIL test-captive.sh (exit status: 1) + +Typical failure on s390x: + +FAIL: test-captive.sh +===================== ++ fail=0 +++ mktemp -u ++ sock=/tmp/tmp.vTRXPPqeJR ++ files='/tmp/tmp.vTRXPPqeJR captive.out captive.pid' ++ rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid ++ cleanup_fn rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid ++ _cleanup_hook[${#_cleanup_hook[@]}]='rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid' ++ nbdkit -U /tmp/tmp.vTRXPPqeJR example1 --run ' + echo nbd=$nbd; echo port=$port; echo socket=$unixsocket + ' +++ cat captive.out ++ '[' 'nbd=nbd:unix:/tmp/tmp.vTRXPPqeJR +port= +socket=/tmp/tmp.vTRXPPqeJR' '!=' 'nbd=nbd:unix:/tmp/tmp.vTRXPPqeJR +port= +socket=/tmp/tmp.vTRXPPqeJR' ']' ++ status=0 ++ nbdkit -U - example1 --run 'exit 2' ++ status=2 ++ test 2 '!=' 2 ++ test -s captive.out ++ status=0 ++ nbdkit -U - -P captive.pid example1 --run ' +for i in {1..60}; do + if test -s captive.pid; then break; fi + sleep 1 +done +if ! test -s captive.pid; then + echo "$0: no pidfile yet" + exit 10 +fi +kill -s ABRT $(cat captive.pid) || exit 10 +sleep 5 +' +++ kill -l ABRT ++ test 0 '!=' 134 ++ echo './test-captive.sh: unexpected exit status 0' +./test-captive.sh: unexpected exit status 0 ++ fail=1 ++ test -s captive.out ++ exit 1 ++ _run_cleanup_hooks ++ status=1 ++ set +e ++ trap '' INT QUIT TERM EXIT ERR ++ echo ./test-captive.sh: run cleanup hooks: exit code 1 +./test-captive.sh: run cleanup hooks: exit code 1 ++ (( i = 0 )) ++ (( i < 1 )) ++ rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid ++ (( ++i )) ++ (( i < 1 )) ++ exit 1 +FAIL test-captive.sh (exit status: 1) +--- + tests/test-captive.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-captive.sh b/tests/test-captive.sh +index 82697a5..8762b86 100755 +--- a/tests/test-captive.sh ++++ b/tests/test-captive.sh +@@ -81,7 +81,7 @@ if ! test -s captive.pid; then + exit 10 + fi + kill -s ABRT $(cat captive.pid) || exit 10 +-sleep 5 ++sleep 10 + ' > captive.out || status=$? + if test $status != $(( 128 + $(kill -l ABRT) )); then + echo "$0: unexpected exit status $status" +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index b34f268..d6309bc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -41,6 +41,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch to try to make test-captive more stable. +Patch1: 0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 95dbcbc8a18ee2731c3751962fb0b2643c62c51b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 08:37:34 +0000 Subject: [PATCH 247/683] Enable libvirt plugin on all architectures. --- nbdkit.spec | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d6309bc..5d7e78c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -12,11 +12,6 @@ # x86_64 is currently broken in F31 by https://bugzilla.redhat.com/1692047 %global complete_test_arches NONE -# Disable libvirt on riscv64 for now. -%ifnarch riscv64 -%global have_libvirt 1 -%endif - # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -28,7 +23,7 @@ Name: nbdkit Version: 1.16.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -65,9 +60,7 @@ BuildRequires: libselinux-devel %if 0%{?have_libguestfs} BuildRequires: libguestfs-devel %endif -%if 0%{?have_libvirt} BuildRequires: libvirt-devel -%endif BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libcurl-devel @@ -274,7 +267,6 @@ Requires: genisoimage This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. -%if 0%{?have_libvirt} %package libvirt-plugin Summary: Libvirt plugin for %{name} License: BSD @@ -286,7 +278,6 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package is a libvirt plugin for %{name}. It lets you access libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. -%endif %package linuxdisk-plugin @@ -577,11 +568,6 @@ autoreconf -i --with-libguestfs \ %else --without-libguestfs \ -%endif -%if 0%{?have_libvirt} - --with-libvirt \ -%else - --without-libvirt \ %endif --with-tls-priority=@NBDKIT,SYSTEM @@ -731,13 +717,11 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-iso-plugin.1* -%if 0%{?have_libvirt} %files libvirt-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* -%endif %files linuxdisk-plugin @@ -906,6 +890,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-2 +- Enable libvirt plugin on all architectures. + * Thu Nov 14 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-1 - New stable release 1.16.0. From c5d1127c08ab841e8edb7a308e7b8b500de0cdbd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 12:16:20 +0000 Subject: [PATCH 248/683] Pass -fPIC to ocamlopt (needed on riscv64). --- nbdkit.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5d7e78c..ef7e40d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -23,7 +23,7 @@ Name: nbdkit Version: 1.16.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -562,6 +562,7 @@ autoreconf -i %build %configure \ + OCAMLOPTFLAGS="-fPIC" \ PYTHON=%{_bindir}/python3 \ --disable-static \ %if 0%{?have_libguestfs} @@ -890,6 +891,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-3 +- Pass -fPIC to ocamlopt (needed on riscv64). + * Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-2 - Enable libvirt plugin on all architectures. From ec08d81b1412e6c65e3ef3bc29b6c34532f293eb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 12:27:28 +0000 Subject: [PATCH 249/683] Pass -fPIC to ocamlopt on riscv64 only. Probably a workaround for broken OCaml codegen on riscv64. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index ef7e40d..f5c0230 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -562,7 +562,9 @@ autoreconf -i %build %configure \ +%ifarch riscv64 OCAMLOPTFLAGS="-fPIC" \ +%endif PYTHON=%{_bindir}/python3 \ --disable-static \ %if 0%{?have_libguestfs} @@ -892,7 +894,8 @@ make %{?_smp_mflags} check || { %changelog * Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-3 -- Pass -fPIC to ocamlopt (needed on riscv64). +- Pass -fPIC to ocamlopt on riscv64 only. + Probably a workaround for broken OCaml codegen on riscv64. * Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-2 - Enable libvirt plugin on all architectures. From 5adc89253f467c53295edb1f356fc3aa87cf4875 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 13:37:40 +0000 Subject: [PATCH 250/683] Revert "Pass -fPIC to ocamlopt on riscv64 only." Revert "Pass -fPIC to ocamlopt (needed on riscv64)." This reverts commit ec08d81b1412e6c65e3ef3bc29b6c34532f293eb. This reverts commit c5d1127c08ab841e8edb7a308e7b8b500de0cdbd. --- nbdkit.spec | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f5c0230..c04f96a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -23,7 +23,7 @@ Name: nbdkit Version: 1.16.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -562,9 +562,6 @@ autoreconf -i %build %configure \ -%ifarch riscv64 - OCAMLOPTFLAGS="-fPIC" \ -%endif PYTHON=%{_bindir}/python3 \ --disable-static \ %if 0%{?have_libguestfs} @@ -893,9 +890,8 @@ make %{?_smp_mflags} check || { %changelog -* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-3 -- Pass -fPIC to ocamlopt on riscv64 only. - Probably a workaround for broken OCaml codegen on riscv64. +* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-4 +- Rebuild. * Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-2 - Enable libvirt plugin on all architectures. From 1d80227c9618d0aa25693110119ddea4fba6d2ed Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 13:49:03 +0000 Subject: [PATCH 251/683] Define have_ocaml macro. Use it in place of %{ocaml_native_compiler}. Use --disable-ocaml on non-OCaml platforms. Make the example.ml file conditional. --- nbdkit.spec | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c04f96a..214e0db 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -4,6 +4,12 @@ %global have_libguestfs 1 %endif +# We can only compiler the OCaml plugin on platforms which have native +# OCaml support (not bytecode). +%ifarch %{ocaml_native_compiler} +%global have_ocaml 1 +%endif + # Architectures where the complete test suite must pass. # # On all other architectures, a simpler test suite must pass. This @@ -72,7 +78,7 @@ BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python3-devel -%ifarch %{ocaml_native_compiler} +%if 0%{?have_ocaml} # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 BuildRequires: ocaml >= 4.02.2 @@ -316,7 +322,7 @@ This package lets you forward NBD connections from %{name} to another NBD server. -%ifarch %{ocaml_native_compiler} +%if 0%{?have_ocaml} %package ocaml-plugin Summary: OCaml plugin for %{name} License: BSD @@ -564,6 +570,11 @@ autoreconf -i %configure \ PYTHON=%{_bindir}/python3 \ --disable-static \ +%if 0%{?have_ocaml} + --enable-ocaml \ +%else + --disable-ocaml \ +%endif %if 0%{?have_libguestfs} --with-libguestfs \ %else @@ -613,7 +624,7 @@ make %{?_smp_mflags} check || { } -%ifarch %{ocaml_native_compiler} +%if 0%{?have_ocaml} %ldconfig_scriptlets plugin-ocaml %endif @@ -745,7 +756,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-nbd-plugin.1* -%ifarch %{ocaml_native_compiler} +%if 0%{?have_ocaml} %files ocaml-plugin %doc README %license LICENSE @@ -866,7 +877,9 @@ make %{?_smp_mflags} check || { %doc plugins/example*/*.c %doc plugins/example4/nbdkit-example4-plugin %doc plugins/lua/example.lua +%if 0%{?have_ocaml} %doc plugins/ocaml/example.ml +%endif %doc plugins/perl/example.pl %doc plugins/python/example.py %doc plugins/ruby/example.rb From 182b0e713084e003d4d3ab8ee6b124043e0d3527 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 13:50:37 +0000 Subject: [PATCH 252/683] Fix date in changelog --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 214e0db..f7d1a61 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -919,7 +919,7 @@ make %{?_smp_mflags} check || { * Wed Nov 06 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.7-1 - New upstream version 1.15.7. -* Fri Oct 24 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.6-1 +* Fri Oct 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.6-1 - New upstream version 1.15.6. * Sat Oct 19 2019 Richard W.M. Jones <rjones@redhat.com> - 1.15.5-1 From f8beeaf18c98304fe57a908f4e0b5cb09cee0dde Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Nov 2019 13:51:17 +0000 Subject: [PATCH 253/683] Disable OCaml plugin on riscv64 temporarily. --- nbdkit.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f7d1a61..557b04d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -4,11 +4,15 @@ %global have_libguestfs 1 %endif +# Disable OCaml plugin on riscv64. Enable it again when the PIC +# issues have been fixed, in OCaml 4.09.0. +%ifnarch riscv64 # We can only compiler the OCaml plugin on platforms which have native # OCaml support (not bytecode). %ifarch %{ocaml_native_compiler} %global have_ocaml 1 %endif +%endif # Architectures where the complete test suite must pass. # @@ -29,7 +33,7 @@ Name: nbdkit Version: 1.16.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -903,11 +907,9 @@ make %{?_smp_mflags} check || { %changelog -* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-4 -- Rebuild. - -* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-2 +* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-5 - Enable libvirt plugin on all architectures. +- Disable OCaml plugin on riscv64 temporarily. * Thu Nov 14 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-1 - New stable release 1.16.0. From f269e46c70e2f9d7cd89fdc9a5cae71f9d2edfa8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 27 Nov 2019 11:05:38 +0000 Subject: [PATCH 254/683] Use gpgverify macro instead of explicit gpgv2 command. --- nbdkit.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 557b04d..26bc2bd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -33,7 +33,7 @@ Name: nbdkit Version: 1.16.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -554,8 +554,7 @@ for %{name}. %prep %if 0%{verify_tarball_signature} -tmphome="$(mktemp -d)" -gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif %autosetup -p1 %if 0%{patches_touch_autotools} @@ -907,6 +906,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Nov 27 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-6 +- Use gpgverify macro instead of explicit gpgv2 command. + * Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-5 - Enable libvirt plugin on all architectures. - Disable OCaml plugin on riscv64 temporarily. From d35741a127a408a951f1d10ed962321bc0ee3af0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 20:03:32 +0000 Subject: [PATCH 255/683] New upstream development version 1.17.1. Add nbdkit-eval-plugin. Add nbdkit-ip-filter. --- ...ve.sh-Try-to-make-this-test-more-sta.patch | 154 ------------------ nbdkit.spec | 24 ++- sources | 4 +- 3 files changed, 20 insertions(+), 162 deletions(-) delete mode 100644 0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch diff --git a/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch b/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch deleted file mode 100644 index 22d9ed2..0000000 --- a/0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 376cda7c1ede6f03f8e922e7eae8f8b60cdf8e79 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 14 Nov 2019 11:11:22 +0000 -Subject: [PATCH] tests/test-captive.sh: Try to make this test more stable on - slower machines. - -This test relies on sending a signal to nbdkit which causes nbdkit to -exit before the captive subprocess. On slow machines (especially -armv7 and s390x in Fedora Koji) it appears that the captive subprocess -can still exit before nbdkit receives the signal, resulting in an -incorrect exit status and test failure. - -There's not a lot we can do here except to increase the sleep. -Alternatives might be to try to inspect the status of the nbdkit -process to see if it has become a zombie yet, but that would be hard -to make portable. - -Typical failure on armv7: - -FAIL: test-captive.sh -===================== -+ fail=0 -++ mktemp -u -+ sock=/tmp/tmp.bHGd8vKHxI -+ files='/tmp/tmp.bHGd8vKHxI captive.out captive.pid' -+ rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid -+ cleanup_fn rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid -+ _cleanup_hook[${#_cleanup_hook[@]}]='rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid' -+ nbdkit -U /tmp/tmp.bHGd8vKHxI example1 --run ' - echo nbd=$nbd; echo port=$port; echo socket=$unixsocket - ' -++ cat captive.out -+ '[' 'nbd=nbd:unix:/tmp/tmp.bHGd8vKHxI -port= -socket=/tmp/tmp.bHGd8vKHxI' '!=' 'nbd=nbd:unix:/tmp/tmp.bHGd8vKHxI -port= -socket=/tmp/tmp.bHGd8vKHxI' ']' -+ status=0 -+ nbdkit -U - example1 --run 'exit 2' -+ status=2 -+ test 2 '!=' 2 -+ test -s captive.out -+ status=0 -+ nbdkit -U - -P captive.pid example1 --run ' -for i in {1..60}; do - if test -s captive.pid; then break; fi - sleep 1 -done -if ! test -s captive.pid; then - echo "$0: no pidfile yet" - exit 10 -fi -kill -s ABRT $(cat captive.pid) || exit 10 -sleep 5 -' -++ kill -l ABRT -+ test 0 '!=' 134 -+ echo './test-captive.sh: unexpected exit status 0' -./test-captive.sh: unexpected exit status 0 -+ fail=1 -+ test -s captive.out -+ exit 1 -+ _run_cleanup_hooks -+ status=1 -+ set +e -+ trap '' INT QUIT TERM EXIT ERR -+ echo ./test-captive.sh: run cleanup hooks: exit code 1 -./test-captive.sh: run cleanup hooks: exit code 1 -+ (( i = 0 )) -+ (( i < 1 )) -+ rm -f /tmp/tmp.bHGd8vKHxI captive.out captive.pid -+ (( ++i )) -+ (( i < 1 )) -+ exit 1 -FAIL test-captive.sh (exit status: 1) - -Typical failure on s390x: - -FAIL: test-captive.sh -===================== -+ fail=0 -++ mktemp -u -+ sock=/tmp/tmp.vTRXPPqeJR -+ files='/tmp/tmp.vTRXPPqeJR captive.out captive.pid' -+ rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid -+ cleanup_fn rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid -+ _cleanup_hook[${#_cleanup_hook[@]}]='rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid' -+ nbdkit -U /tmp/tmp.vTRXPPqeJR example1 --run ' - echo nbd=$nbd; echo port=$port; echo socket=$unixsocket - ' -++ cat captive.out -+ '[' 'nbd=nbd:unix:/tmp/tmp.vTRXPPqeJR -port= -socket=/tmp/tmp.vTRXPPqeJR' '!=' 'nbd=nbd:unix:/tmp/tmp.vTRXPPqeJR -port= -socket=/tmp/tmp.vTRXPPqeJR' ']' -+ status=0 -+ nbdkit -U - example1 --run 'exit 2' -+ status=2 -+ test 2 '!=' 2 -+ test -s captive.out -+ status=0 -+ nbdkit -U - -P captive.pid example1 --run ' -for i in {1..60}; do - if test -s captive.pid; then break; fi - sleep 1 -done -if ! test -s captive.pid; then - echo "$0: no pidfile yet" - exit 10 -fi -kill -s ABRT $(cat captive.pid) || exit 10 -sleep 5 -' -++ kill -l ABRT -+ test 0 '!=' 134 -+ echo './test-captive.sh: unexpected exit status 0' -./test-captive.sh: unexpected exit status 0 -+ fail=1 -+ test -s captive.out -+ exit 1 -+ _run_cleanup_hooks -+ status=1 -+ set +e -+ trap '' INT QUIT TERM EXIT ERR -+ echo ./test-captive.sh: run cleanup hooks: exit code 1 -./test-captive.sh: run cleanup hooks: exit code 1 -+ (( i = 0 )) -+ (( i < 1 )) -+ rm -f /tmp/tmp.vTRXPPqeJR captive.out captive.pid -+ (( ++i )) -+ (( i < 1 )) -+ exit 1 -FAIL test-captive.sh (exit status: 1) ---- - tests/test-captive.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test-captive.sh b/tests/test-captive.sh -index 82697a5..8762b86 100755 ---- a/tests/test-captive.sh -+++ b/tests/test-captive.sh -@@ -81,7 +81,7 @@ if ! test -s captive.pid; then - exit 10 - fi - kill -s ABRT $(cat captive.pid) || exit 10 --sleep 5 -+sleep 10 - ' > captive.out || status=$? - if test $status != $(( 128 + $(kill -l ABRT) )); then - echo "$0: unexpected exit status $status" --- -2.23.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 26bc2bd..7573a52 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -29,11 +29,11 @@ %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.16-stable +%global source_directory 1.17-development Name: nbdkit -Version: 1.16.0 -Release: 6%{?dist} +Version: 1.17.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -46,9 +46,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch to try to make test-captive more stable. -Patch1: 0001-tests-test-captive.sh-Try-to-make-this-test-more-sta.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -156,6 +153,7 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Provides: %{name}-data-plugin = %{version}-%{release} +Provides: %{name}-eval-plugin = %{version}-%{release} Provides: %{name}-file-plugin = %{version}-%{release} Provides: %{name}-floppy-plugin = %{version}-%{release} Provides: %{name}-full-plugin = %{version}-%{release} @@ -177,6 +175,8 @@ trivial dependencies. nbdkit-data-plugin Serve small amounts of data from the command line. +nbdkit-eval-plugin Write a shell script plugin on the command line. + nbdkit-file-plugin The normal file plugin for serving files. nbdkit-floppy-plugin Create a virtual floppy disk from a directory. @@ -454,6 +454,7 @@ Provides: %{name}-cow-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} Provides: %{name}-fua-filter = %{version}-%{release} +Provides: %{name}-ip-filter = %{version}-%{release} Provides: %{name}-log-filter = %{version}-%{release} Provides: %{name}-nocache-filter = %{version}-%{release} Provides: %{name}-noextents-filter = %{version}-%{release} @@ -486,6 +487,8 @@ nbdkit-error-filter Inject errors. nbdkit-fua-filter Modify flush behaviour in plugins. +nbdkit-ip-filter Filter clients by IP address. + nbdkit-log-filter Log all transactions to a file. nbdkit-nocache-filter Disable cache requests in the underlying plugin. @@ -657,6 +660,7 @@ make %{?_smp_mflags} check || { %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-data-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-eval-plugin.so %{_libdir}/%{name}/plugins/nbdkit-file-plugin.so %{_libdir}/%{name}/plugins/nbdkit-floppy-plugin.so %{_libdir}/%{name}/plugins/nbdkit-full-plugin.so @@ -671,6 +675,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so %{_mandir}/man1/nbdkit-data-plugin.1* +%{_mandir}/man1/nbdkit-eval-plugin.1* %{_mandir}/man1/nbdkit-file-plugin.1* %{_mandir}/man1/nbdkit-floppy-plugin.1* %{_mandir}/man1/nbdkit-full-plugin.1* @@ -833,6 +838,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so +%{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so @@ -852,6 +858,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* +%{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* @@ -906,6 +913,11 @@ make %{?_smp_mflags} check || { %changelog +* Sun Dec 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.1-1 +- New upstream development version 1.17.1. +- Add nbdkit-eval-plugin. +- Add nbdkit-ip-filter. + * Wed Nov 27 2019 Richard W.M. Jones <rjones@redhat.com> - 1.16.0-6 - Use gpgverify macro instead of explicit gpgv2 command. diff --git a/sources b/sources index 2e8a5d5..46184b5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.16.0.tar.gz) = 71f38d0290f6ae9bb765d728857b7eaee12d3960d46ad760f9ebe76c747a26fa72a770982af94d43cda5631f90a3c24002ca671aba599e674e929dcafa533e6e -SHA512 (nbdkit-1.16.0.tar.gz.sig) = bedc654fc3dd5b08415f482678fb7eba4a4c590d139176b0a08833642ee1503af36e868d80dbbeb3ad1e869b2ba001d6f997f8b516988963787e2c00ca4eabb3 +SHA512 (nbdkit-1.17.1.tar.gz) = 58cc49eb638157a07553a8bbb7c6675dc0f123752797f5535a2e7a63d905d576b0328d06cf80d0631d442648846388b343c01359cae821f932ca4f7b3a5ea92c +SHA512 (nbdkit-1.17.1.tar.gz.sig) = e925ac21cd182b0812b7be89ba3c7db0eafa177c84cd988c0ebb9b13377326895153071c6ffe5192538de9fe2c61ec6fe039b8fc80eb58e5a9f2e0156adc6668 From 06b032cc84375409cdac5201ef808616ce8fe098 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 20:16:42 +0000 Subject: [PATCH 256/683] Fix tests. --- ...st-built-nbdkit-not-installed-nbdkit.patch | 26 +++++++++++++++++++ nbdkit.spec | 5 +++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch diff --git a/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch b/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch new file mode 100644 index 0000000..90bb573 --- /dev/null +++ b/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch @@ -0,0 +1,26 @@ +From dcf767f55bcaf52fc7079b653749cccfe493b443 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 1 Dec 2019 20:13:30 +0000 +Subject: [PATCH] tests: Run just built nbdkit, not installed nbdkit. + +Fixes commit 7adcf1bd47c678c1f3489c02f138b32c99657a24. +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 878ff59..f6508a6 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -443,7 +443,7 @@ disk: + rm -rf disk.tmp $@ $@-t + mkdir disk.tmp + echo -n "hello,world" > disk.tmp/hello.txt +- nbdkit -fv -U - linuxdisk disk.tmp size=100M \ ++ $(top_builddir)/nbdkit -fv -U - linuxdisk disk.tmp size=100M \ + --run 'qemu-img convert $$nbd $@-t' + rm -rf disk.tmp + mv $@-t $@ +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 7573a52..164555a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -26,7 +26,7 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.17-development @@ -46,6 +46,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch which fixes the tests. +Patch1: 0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 41f790f919f0659cdec4112afe1606c3bcf3716d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 20:39:55 +0000 Subject: [PATCH 257/683] Fix complete_test_arches. --- nbdkit.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 164555a..34f9e0f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -19,8 +19,7 @@ # On all other architectures, a simpler test suite must pass. This # omits any tests that run full qemu, since running qemu under TCG is # often broken on non-x86_64 arches. -# x86_64 is currently broken in F31 by https://bugzilla.redhat.com/1692047 -%global complete_test_arches NONE +%global complete_test_arches x86_64 # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -569,8 +568,7 @@ autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. -sed -i -e '/^if HAVE_LIBGUESTFS/,/^endif HAVE_LIBGUESTFS/d' tests/Makefile.am -sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am +sed -i -e '/^LIBGUESTFS_TESTS/d' tests/Makefile.am autoreconf -i %endif From 33d5db8c05aa1e9ade7c1ec04b07dc810c1c1d8f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 20:39:55 +0000 Subject: [PATCH 258/683] Fix complete_test_arches again. --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 34f9e0f..79f45be 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -569,6 +569,7 @@ autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. sed -i -e '/^LIBGUESTFS_TESTS/d' tests/Makefile.am +sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am autoreconf -i %endif From 4ccc35c84d1aa38291ab40832825586643bf984e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 21:15:40 +0000 Subject: [PATCH 259/683] Disable libguestfs on ppc64le because of https://bugzilla.redhat.com/show_bug.cgi?id=1778520 --- nbdkit.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 79f45be..36f21b9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,6 +1,8 @@ %global _hardened_build 1 -%ifarch aarch64 %{arm} x86_64 ppc %{power64} +# Broken on {power64} because of +# https://bugzilla.redhat.com/show_bug.cgi?id=1778520 +%ifarch aarch64 %{arm} x86_64 ppc %global have_libguestfs 1 %endif From 42353f51022e0ad5f8829701794fed8f1bffd398 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 1 Dec 2019 21:17:13 +0000 Subject: [PATCH 260/683] Disable package on armv7 https://bugzilla.redhat.com/show_bug.cgi?id=1778517 --- nbdkit.spec | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 36f21b9..6e1de1c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -23,6 +23,18 @@ # often broken on non-x86_64 arches. %global complete_test_arches x86_64 +%if 0%{?rhel} == 7 +# On RHEL 7, nothing in the virt stack is shipped on aarch64 and +# libguestfs was not shipped on POWER (fixed in 7.5). We could in +# theory make all of this work by having lots more conditionals, but +# for now limit this package to x86_64 on RHEL. +ExclusiveArch: x86_64 +%endif + +# The package is broken on armv7 because qemu is not installable. +# https://bugzilla.redhat.com/show_bug.cgi?id=1778517 +ExcludeArch: %{arm} + # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -54,14 +66,6 @@ Patch1: 0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch BuildRequires: autoconf, automake, libtool %endif -%if 0%{?rhel} == 7 -# On RHEL 7, nothing in the virt stack is shipped on aarch64 and -# libguestfs was not shipped on POWER (fixed in 7.5). We could in -# theory make all of this work by having lots more conditionals, but -# for now limit this package to x86_64 on RHEL. -ExclusiveArch: x86_64 -%endif - %ifnarch %{complete_test_arches} BuildRequires: autoconf, automake, libtool %endif From a17a7db49e54fffdd39bce9397ea14628f426d82 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 3 Dec 2019 12:37:31 +0000 Subject: [PATCH 261/683] Revert "Disable package on armv7" This reverts commit 42353f51022e0ad5f8829701794fed8f1bffd398. --- nbdkit.spec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6e1de1c..d2ccce4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,10 +31,6 @@ ExclusiveArch: x86_64 %endif -# The package is broken on armv7 because qemu is not installable. -# https://bugzilla.redhat.com/show_bug.cgi?id=1778517 -ExcludeArch: %{arm} - # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -46,7 +42,7 @@ ExcludeArch: %{arm} Name: nbdkit Version: 1.17.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -921,6 +917,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Dec 3 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.1-2 +- Enable armv7 again. + * Sun Dec 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.1-1 - New upstream development version 1.17.1. - Add nbdkit-eval-plugin. From 7f89f649c0d6fc14500ad1b08f5d065dcb5ed5c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 3 Dec 2019 13:21:12 +0000 Subject: [PATCH 262/683] New upstream development version 1.17.2. Enable armv7 again. --- ...st-built-nbdkit-not-installed-nbdkit.patch | 26 ------------------- nbdkit.spec | 12 ++++----- sources | 4 +-- 3 files changed, 7 insertions(+), 35 deletions(-) delete mode 100644 0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch diff --git a/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch b/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch deleted file mode 100644 index 90bb573..0000000 --- a/0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch +++ /dev/null @@ -1,26 +0,0 @@ -From dcf767f55bcaf52fc7079b653749cccfe493b443 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 1 Dec 2019 20:13:30 +0000 -Subject: [PATCH] tests: Run just built nbdkit, not installed nbdkit. - -Fixes commit 7adcf1bd47c678c1f3489c02f138b32c99657a24. ---- - tests/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 878ff59..f6508a6 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -443,7 +443,7 @@ disk: - rm -rf disk.tmp $@ $@-t - mkdir disk.tmp - echo -n "hello,world" > disk.tmp/hello.txt -- nbdkit -fv -U - linuxdisk disk.tmp size=100M \ -+ $(top_builddir)/nbdkit -fv -U - linuxdisk disk.tmp size=100M \ - --run 'qemu-img convert $$nbd $@-t' - rm -rf disk.tmp - mv $@-t $@ --- -2.23.0 - diff --git a/nbdkit.spec b/nbdkit.spec index d2ccce4..34df974 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -35,14 +35,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.17-development Name: nbdkit -Version: 1.17.1 -Release: 2%{?dist} +Version: 1.17.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -55,9 +55,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch which fixes the tests. -Patch1: 0001-tests-Run-just-built-nbdkit-not-installed-nbdkit.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -917,7 +914,8 @@ make %{?_smp_mflags} check || { %changelog -* Tue Dec 3 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.1-2 +* Tue Dec 3 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.2-1 +- New upstream development version 1.17.2. - Enable armv7 again. * Sun Dec 1 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.1-1 diff --git a/sources b/sources index 46184b5..b7765cf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.1.tar.gz) = 58cc49eb638157a07553a8bbb7c6675dc0f123752797f5535a2e7a63d905d576b0328d06cf80d0631d442648846388b343c01359cae821f932ca4f7b3a5ea92c -SHA512 (nbdkit-1.17.1.tar.gz.sig) = e925ac21cd182b0812b7be89ba3c7db0eafa177c84cd988c0ebb9b13377326895153071c6ffe5192538de9fe2c61ec6fe039b8fc80eb58e5a9f2e0156adc6668 +SHA512 (nbdkit-1.17.2.tar.gz) = b1294a7658ce1d8d5c2bde631efabd2c9d9a1b4e934a3dfa507a20ecf08d195a5afb04a1f05d2eda4e0f4917f18d3b8885a69f9139a100ad96ad4924ed236e51 +SHA512 (nbdkit-1.17.2.tar.gz.sig) = e7474d5371289379140f4ffd18f7c9e23b0f4216ea5ea7c351b47ce9a91cb95cbffc80eadffb63bd6aeed3802e1cf2ea36f8650abc230a09bd5e8726b5f68858 From 7de0a0d09e7369545ab86d112fcf23ebfaca3db6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 Dec 2019 20:46:04 +0000 Subject: [PATCH 263/683] Enable OCaml plugin again on riscv64. Revert "Disable OCaml plugin on riscv64 temporarily." This reverts commit f8beeaf18c98304fe57a908f4e0b5cb09cee0dde. --- nbdkit.spec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 34df974..4c3d081 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -6,15 +6,11 @@ %global have_libguestfs 1 %endif -# Disable OCaml plugin on riscv64. Enable it again when the PIC -# issues have been fixed, in OCaml 4.09.0. -%ifnarch riscv64 # We can only compiler the OCaml plugin on platforms which have native # OCaml support (not bytecode). %ifarch %{ocaml_native_compiler} %global have_ocaml 1 %endif -%endif # Architectures where the complete test suite must pass. # @@ -42,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.17.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -914,6 +910,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Dec 7 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.2-2 +- Reenable OCaml plugin on riscv64 again, should now work with 4.09. + * Tue Dec 3 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.2-1 - New upstream development version 1.17.2. - Enable armv7 again. From fb945f0d3d70ad5d31f194b3144f85fbaf528dac Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 9 Dec 2019 16:41:06 +0000 Subject: [PATCH 264/683] New upstream development version 1.17.3. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4c3d081..6a13d44 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,8 +37,8 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.2 -Release: 2%{?dist} +Version: 1.17.3 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -910,6 +910,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Dec 9 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.3-1 +- New upstream development version 1.17.3. + * Sat Dec 7 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.2-2 - Reenable OCaml plugin on riscv64 again, should now work with 4.09. diff --git a/sources b/sources index b7765cf..bd483d5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.2.tar.gz) = b1294a7658ce1d8d5c2bde631efabd2c9d9a1b4e934a3dfa507a20ecf08d195a5afb04a1f05d2eda4e0f4917f18d3b8885a69f9139a100ad96ad4924ed236e51 -SHA512 (nbdkit-1.17.2.tar.gz.sig) = e7474d5371289379140f4ffd18f7c9e23b0f4216ea5ea7c351b47ce9a91cb95cbffc80eadffb63bd6aeed3802e1cf2ea36f8650abc230a09bd5e8726b5f68858 +SHA512 (nbdkit-1.17.3.tar.gz) = 87d0c35dd201d5e558bf9d3bfe3f937fb7360f5dc208ed43f0ed98e4690c52178bee01e97781359764c38224fad531a7cccc9565ed5e3c5fef7550c04db497cc +SHA512 (nbdkit-1.17.3.tar.gz.sig) = 2db0f1756764b3587217e09fc71828e180d32ef43dc23441e4ca511ae473c7b8bc8993bf8c5f097182b2db9180e841669dd2df59f63f6a64b372b7e3e59179f2 From 7fc80c32df355fb7506e2af507f8c55e3ca784ad Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 10 Dec 2019 10:34:55 +0000 Subject: [PATCH 265/683] Add upstream patch to fix IPv6 support in tests. --- 0001-tests-Fix-test-for-IPv6-support.patch | 73 ++++++++++++++++++++++ nbdkit.spec | 8 ++- 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 0001-tests-Fix-test-for-IPv6-support.patch diff --git a/0001-tests-Fix-test-for-IPv6-support.patch b/0001-tests-Fix-test-for-IPv6-support.patch new file mode 100644 index 0000000..26d9958 --- /dev/null +++ b/0001-tests-Fix-test-for-IPv6-support.patch @@ -0,0 +1,73 @@ +From 8e22f1e40510252aa329eb102a0e24b0f755c29e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 10 Dec 2019 10:21:14 +0000 +Subject: [PATCH] tests: Fix test for IPv6 support. + +Remove bogus existing tests, and add a new test that IPv6 +loopback is working through qemu-img. +--- + tests/functions.sh.in | 18 ++++++++++++++++++ + tests/test-ip-filter.sh | 5 +---- + tests/test-ip.sh | 1 + + 3 files changed, 20 insertions(+), 4 deletions(-) + +diff --git a/tests/functions.sh.in b/tests/functions.sh.in +index 9a19167..e62fb51 100644 +--- a/tests/functions.sh.in ++++ b/tests/functions.sh.in +@@ -71,6 +71,24 @@ requires () + } + } + ++# qemu cannot connect to ::1 if IPv6 is disabled because of ++# the way it uses getaddrinfo. See: ++# https://bugzilla.redhat.com/show_bug.cgi?id=808147 ++# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/SXDLSZ3GKXL6NDAKP4MPJ25IMHKN67X3/ ++requires_ipv6_loopback () ++{ ++ requires qemu-img --version ++ ++ # This should fail with "Connection refused". If IPv6 is broken ++ # then it fails with "Address family for hostname not supported" ++ # instead. It's very unlikely that port 1 is open. ++ if LANG=C qemu-img info "nbd:[::1]:1" |& \ ++ grep -sq "Address family for hostname not supported"; then ++ echo "$0: IPv6 loopback is not available, skipping this test" ++ exit 77 ++ fi ++} ++ + # start_nbdkit -P pidfile args... + # + # Run nbdkit with args and wait for it to start up. If it fails to +diff --git a/tests/test-ip-filter.sh b/tests/test-ip-filter.sh +index 31aad88..a3100a4 100755 +--- a/tests/test-ip-filter.sh ++++ b/tests/test-ip-filter.sh +@@ -38,10 +38,7 @@ set -e + + requires ip -V + requires qemu-img --version +- +-# Check we have IPv4 and IPv6, skip the test otherwise. +-requires ip -o -4 addr show scope host +-requires ip -o -6 addr show scope host ++requires_ipv6_loopback + + rm -f ip-filter.pid + cleanup_fn rm -f ip-filter.pid +diff --git a/tests/test-ip.sh b/tests/test-ip.sh +index a0f1862..61675c2 100755 +--- a/tests/test-ip.sh ++++ b/tests/test-ip.sh +@@ -39,6 +39,7 @@ set -e + requires ip -V + requires qemu-img --version + requires qemu-img info --image-opts driver=file,filename=functions.sh ++requires_ipv6_loopback + + rm -f ip.pid ipv4.out ipv6.out + cleanup_fn rm -f ip.pid ipv4.out ipv6.out +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 6a13d44..81e8deb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.17.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -51,6 +51,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch to fix IPv6 support in tests. +Patch1: 0001-tests-Fix-test-for-IPv6-support.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -910,8 +913,9 @@ make %{?_smp_mflags} check || { %changelog -* Mon Dec 9 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.3-1 +* Tue Dec 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.3-2 - New upstream development version 1.17.3. +- Add upstream patch to fix IPv6 support in tests. * Sat Dec 7 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.2-2 - Reenable OCaml plugin on riscv64 again, should now work with 4.09. From 8187fd3c26d1aa9b2b706af141d6bf58d41b05b3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 13 Dec 2019 10:29:45 +0000 Subject: [PATCH 266/683] New upstream development version 1.17.4. New filter: nofilter. Remove upstream patches. --- 0001-tests-Fix-test-for-IPv6-support.patch | 73 ---------------------- nbdkit.spec | 13 +++- sources | 4 +- 3 files changed, 12 insertions(+), 78 deletions(-) delete mode 100644 0001-tests-Fix-test-for-IPv6-support.patch diff --git a/0001-tests-Fix-test-for-IPv6-support.patch b/0001-tests-Fix-test-for-IPv6-support.patch deleted file mode 100644 index 26d9958..0000000 --- a/0001-tests-Fix-test-for-IPv6-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 8e22f1e40510252aa329eb102a0e24b0f755c29e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 10 Dec 2019 10:21:14 +0000 -Subject: [PATCH] tests: Fix test for IPv6 support. - -Remove bogus existing tests, and add a new test that IPv6 -loopback is working through qemu-img. ---- - tests/functions.sh.in | 18 ++++++++++++++++++ - tests/test-ip-filter.sh | 5 +---- - tests/test-ip.sh | 1 + - 3 files changed, 20 insertions(+), 4 deletions(-) - -diff --git a/tests/functions.sh.in b/tests/functions.sh.in -index 9a19167..e62fb51 100644 ---- a/tests/functions.sh.in -+++ b/tests/functions.sh.in -@@ -71,6 +71,24 @@ requires () - } - } - -+# qemu cannot connect to ::1 if IPv6 is disabled because of -+# the way it uses getaddrinfo. See: -+# https://bugzilla.redhat.com/show_bug.cgi?id=808147 -+# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/SXDLSZ3GKXL6NDAKP4MPJ25IMHKN67X3/ -+requires_ipv6_loopback () -+{ -+ requires qemu-img --version -+ -+ # This should fail with "Connection refused". If IPv6 is broken -+ # then it fails with "Address family for hostname not supported" -+ # instead. It's very unlikely that port 1 is open. -+ if LANG=C qemu-img info "nbd:[::1]:1" |& \ -+ grep -sq "Address family for hostname not supported"; then -+ echo "$0: IPv6 loopback is not available, skipping this test" -+ exit 77 -+ fi -+} -+ - # start_nbdkit -P pidfile args... - # - # Run nbdkit with args and wait for it to start up. If it fails to -diff --git a/tests/test-ip-filter.sh b/tests/test-ip-filter.sh -index 31aad88..a3100a4 100755 ---- a/tests/test-ip-filter.sh -+++ b/tests/test-ip-filter.sh -@@ -38,10 +38,7 @@ set -e - - requires ip -V - requires qemu-img --version -- --# Check we have IPv4 and IPv6, skip the test otherwise. --requires ip -o -4 addr show scope host --requires ip -o -6 addr show scope host -+requires_ipv6_loopback - - rm -f ip-filter.pid - cleanup_fn rm -f ip-filter.pid -diff --git a/tests/test-ip.sh b/tests/test-ip.sh -index a0f1862..61675c2 100755 ---- a/tests/test-ip.sh -+++ b/tests/test-ip.sh -@@ -39,6 +39,7 @@ set -e - requires ip -V - requires qemu-img --version - requires qemu-img info --image-opts driver=file,filename=functions.sh -+requires_ipv6_loopback - - rm -f ip.pid ipv4.out ipv6.out - cleanup_fn rm -f ip.pid ipv4.out ipv6.out --- -2.23.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 81e8deb..5ec658d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,9 +51,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch to fix IPv6 support in tests. -Patch1: 0001-tests-Fix-test-for-IPv6-support.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -458,6 +455,7 @@ Provides: %{name}-ip-filter = %{version}-%{release} Provides: %{name}-log-filter = %{version}-%{release} Provides: %{name}-nocache-filter = %{version}-%{release} Provides: %{name}-noextents-filter = %{version}-%{release} +Provides: %{name}-nofilter-filter = %{version}-%{release} Provides: %{name}-noparallel-filter = %{version}-%{release} Provides: %{name}-nozero-filter = %{version}-%{release} Provides: %{name}-offset-filter = %{version}-%{release} @@ -495,6 +493,8 @@ nbdkit-nocache-filter Disable cache requests in the underlying plugin. nbdkit-noextents-filter Disable extents in the underlying plugin. +nbdkit-nofilter-filter Passthrough filter. + nbdkit-noparallel-filter Serialize requests to the underlying plugin. nbdkit-nozero-filter Adjust handling of zero requests by plugins. @@ -842,6 +842,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-log-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so +%{_libdir}/%{name}/filters/nbdkit-nofilter-filter.so %{_libdir}/%{name}/filters/nbdkit-noparallel-filter.so %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so @@ -862,6 +863,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-log-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* +%{_mandir}/man1/nbdkit-nofilter-filter.1* %{_mandir}/man1/nbdkit-noparallel-filter.1* %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* @@ -913,6 +915,11 @@ make %{?_smp_mflags} check || { %changelog +* Fri Dec 13 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.4-1 +- New upstream development version 1.17.4. +- New filter: nofilter. +- Remove upstream patches. + * Tue Dec 10 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.3-2 - New upstream development version 1.17.3. - Add upstream patch to fix IPv6 support in tests. diff --git a/sources b/sources index bd483d5..88d1041 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.3.tar.gz) = 87d0c35dd201d5e558bf9d3bfe3f937fb7360f5dc208ed43f0ed98e4690c52178bee01e97781359764c38224fad531a7cccc9565ed5e3c5fef7550c04db497cc -SHA512 (nbdkit-1.17.3.tar.gz.sig) = 2db0f1756764b3587217e09fc71828e180d32ef43dc23441e4ca511ae473c7b8bc8993bf8c5f097182b2db9180e841669dd2df59f63f6a64b372b7e3e59179f2 +SHA512 (nbdkit-1.17.4.tar.gz) = 580cdfd4b28ee1d8e7b467b6d4d3e02f2c802667661f6c361407dc20f92f8b7f31fe4bc0f0e7a7bfc10122e43b5fcf2c8cab005c475c1f06e133165acce90af1 +SHA512 (nbdkit-1.17.4.tar.gz.sig) = 64bc6074f9f3cd2b16ed5aea999a8b1ff7baed0b74dc3c31892bbe09926b354fc70745c83d4c4e7ffb5689154101c1b9967553cf5a71032f5694bb3abfebc15b From 74c42afbe89c559f6976d6cb5a5b550f10f33966 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 13 Dec 2019 10:31:24 +0000 Subject: [PATCH 267/683] Forgot to update Version and Release fields. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5ec658d..4ab1563 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,8 +37,8 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.3 -Release: 2%{?dist} +Version: 1.17.4 +Release: 1%{?dist} Summary: NBD server License: BSD From 103ba5091c23a83faebd9d850f7d9005627b2af7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 Dec 2019 12:40:02 +0000 Subject: [PATCH 268/683] Improve test times. --- ...e-excessive-time-taken-by-some-tests.patch | 167 ++++++++ 0002-tests-Improve-test-readahead-test.patch | 377 ++++++++++++++++++ nbdkit.spec | 11 +- 3 files changed, 553 insertions(+), 2 deletions(-) create mode 100644 0001-tests-Reduce-excessive-time-taken-by-some-tests.patch create mode 100644 0002-tests-Improve-test-readahead-test.patch diff --git a/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch b/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch new file mode 100644 index 0000000..1a94cae --- /dev/null +++ b/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch @@ -0,0 +1,167 @@ +From fdbd0ef69f0c222d0cdc35d3c48297aff549abce Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Fri, 13 Dec 2019 15:38:09 +0000 +Subject: [PATCH 1/2] tests: Reduce excessive time taken by some tests. + +For context see: +https://www.redhat.com/archives/libguestfs/2019-December/msg00074.html + +This is mainly about changing tests to use libnbd/nbdsh instead of +libguestfs where libguestfs isn't really necessary for the test. +--- + tests/test-cache-on-read.sh | 37 ++++++++++++++++--------------------- + tests/test-cache.sh | 37 ++++++++++++++++++++----------------- + tests/test-cow.sh | 9 ++++++--- + 3 files changed, 42 insertions(+), 41 deletions(-) + +diff --git a/tests/test-cache-on-read.sh b/tests/test-cache-on-read.sh +index 4ecf3af..6196373 100755 +--- a/tests/test-cache-on-read.sh ++++ b/tests/test-cache-on-read.sh +@@ -30,15 +30,11 @@ + # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + # SUCH DAMAGE. + +-# XXX Suggestion to improve this test: Use the delay filter below the +-# cache filter, and time reads to prove that the second read is faster +-# because it isn't going through the delay filter and plugin. +- + source ./functions.sh + set -e + set -x + +-requires guestfish --version ++requires nbdsh --version + + sock=`mktemp -u` + files="cache-on-read.img $sock cache-on-read.pid" +@@ -46,7 +42,7 @@ rm -f $files + cleanup_fn rm -f $files + + # Create an empty base image. +-truncate -s 1G cache-on-read.img ++truncate -s 128K cache-on-read.img + + # Run nbdkit with the caching filter and cache-on-read set. + start_nbdkit -P cache-on-read.pid -U $sock \ +@@ -54,19 +50,18 @@ start_nbdkit -P cache-on-read.pid -U $sock \ + file cache-on-read.img \ + cache-on-read=true + +-# Open the overlay and perform some operations. +-guestfish --format=raw -a "nbd://?socket=$sock" <<'EOF' +- run +- part-disk /dev/sda gpt +- mkfs ext4 /dev/sda1 +- mount /dev/sda1 / +- fill-dir / 10000 +- fill-pattern "abcde" 5M /large +- write /hello "hello, world" +-EOF ++nbdsh --connect "nbd+unix://?socket=$sock" \ ++ -c ' ++# Write some pattern data to the overlay and check it reads back OK. ++buf = b"abcd" * 16384 ++h.pwrite (buf, 32768) ++zero = h.pread (32768, 0) ++assert zero == bytearray (32768) ++buf2 = h.pread (65536, 32768) ++assert buf == buf2 + +-# Check the last files we created exist. +-guestfish --ro -a cache-on-read.img -m /dev/sda1 <<'EOF' +- cat /hello +- cat /large | cat >/dev/null +-EOF ++# XXX Suggestion to improve this test: Use the delay filter below the ++# cache filter, and time reads to prove that the second read is faster ++# because it is not going through the delay filter and plugin. ++# XXX second h.pread here ... ++' +diff --git a/tests/test-cache.sh b/tests/test-cache.sh +index bafada2..eead7c8 100755 +--- a/tests/test-cache.sh ++++ b/tests/test-cache.sh +@@ -34,7 +34,7 @@ source ./functions.sh + set -e + set -x + +-requires guestfish --version ++requires nbdsh --version + + sock=`mktemp -u` + files="cache.img $sock cache.pid" +@@ -42,24 +42,27 @@ rm -f $files + cleanup_fn rm -f $files + + # Create an empty base image. +-truncate -s 1G cache.img ++truncate -s 128K cache.img + + # Run nbdkit with the caching filter. + start_nbdkit -P cache.pid -U $sock --filter=cache file cache.img + +-# Open the overlay and perform some operations. +-guestfish --format=raw -a "nbd://?socket=$sock" <<'EOF' +- run +- part-disk /dev/sda gpt +- mkfs ext4 /dev/sda1 +- mount /dev/sda1 / +- fill-dir / 10000 +- fill-pattern "abcde" 5M /large +- write /hello "hello, world" +-EOF ++nbdsh --connect "nbd+unix://?socket=$sock" \ ++ -c ' ++# Write some pattern data to the overlay and check it reads back OK. ++buf = b"abcd" * 16384 ++h.pwrite (buf, 32768) ++zero = h.pread (32768, 0) ++assert zero == bytearray (32768) ++buf2 = h.pread (65536, 32768) ++assert buf == buf2 + +-# Check the last files we created exist. +-guestfish --ro -a cache.img -m /dev/sda1 <<'EOF' +- cat /hello +- cat /large | cat >/dev/null +-EOF ++# Flushing should write through to the underlying file. ++h.flush () ++ ++with open ("cache.img", "rb") as file: ++ zero = file.read (32768) ++ assert zero == bytearray (32768) ++ buf2 = file.read (65536) ++ assert buf == buf2 ++' +diff --git a/tests/test-cow.sh b/tests/test-cow.sh +index 5567b77..dea518c 100755 +--- a/tests/test-cow.sh ++++ b/tests/test-cow.sh +@@ -42,7 +42,11 @@ rm -f $files + cleanup_fn rm -f $files + + # Create a base image which is partitioned with an empty filesystem. +-guestfish -N cow-base.img=fs exit ++rm -rf cow.d ++mkdir cow.d ++cleanup_fn rm -rf cow.d ++nbdkit -fv -U - linuxdisk cow.d size=100M \ ++ --run 'qemu-img convert $nbd cow-base.img' + lastmod="$(stat -c "%y" cow-base.img)" + + # Run nbdkit with a COW overlay. +@@ -50,8 +54,7 @@ start_nbdkit -P cow.pid -U $sock --filter=cow file cow-base.img + + # Write some data into the overlay. + guestfish --format=raw -a "nbd://?socket=$sock" -m /dev/sda1 <<EOF +- fill-dir / 10000 +- fill-pattern "abcde" 5M /large ++ fill-pattern "abcde" 128K /large + write /hello "hello, world" + EOF + +-- +2.23.0 + diff --git a/0002-tests-Improve-test-readahead-test.patch b/0002-tests-Improve-test-readahead-test.patch new file mode 100644 index 0000000..778ed9a --- /dev/null +++ b/0002-tests-Improve-test-readahead-test.patch @@ -0,0 +1,377 @@ +From ce8357a883167b75ced16ea9f1488f7933b3e813 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 14 Dec 2019 12:20:55 +0000 +Subject: [PATCH 2/2] tests: Improve test-readahead test. + +See +https://www.redhat.com/archives/libguestfs/2019-December/msg00088.html +--- + tests/Makefile.am | 13 +-- + tests/test-readahead-test-plugin.sh | 48 +++++++++ + tests/test-readahead-test-request.py | 44 +++++++++ + tests/test-readahead.c | 140 --------------------------- + tests/test-readahead.sh | 67 +++++++++++++ + 5 files changed, 166 insertions(+), 146 deletions(-) + create mode 100755 tests/test-readahead-test-plugin.sh + create mode 100755 tests/test-readahead-test-request.py + delete mode 100644 tests/test-readahead.c + create mode 100755 tests/test-readahead.sh + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 1932eea..a5e9897 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -168,7 +168,10 @@ EXTRA_DIST = \ + test-rate.sh \ + test-rate-dynamic.sh \ + test.rb \ ++ test-readahead.sh \ + test-readahead-copy.sh \ ++ test-readahead-test-plugin.sh \ ++ test-readahead-test-request.py \ + test-retry.sh \ + test-retry-extents.sh \ + test-retry-size.sh \ +@@ -1050,12 +1053,10 @@ TESTS += \ + $(NULL) + + # readahead filter test. +-LIBGUESTFS_TESTS += test-readahead +-TESTS += test-readahead-copy.sh +- +-test_readahead_SOURCES = test-readahead.c test.h +-test_readahead_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) +-test_readahead_LDADD = libtest.la $(LIBGUESTFS_LIBS) ++TESTS += \ ++ test-readahead.sh \ ++ test-readahead-copy.sh \ ++ $(NULL) + + # retry filter test. + TESTS += \ +diff --git a/tests/test-readahead-test-plugin.sh b/tests/test-readahead-test-plugin.sh +new file mode 100755 +index 0000000..3c068cb +--- /dev/null ++++ b/tests/test-readahead-test-plugin.sh +@@ -0,0 +1,48 @@ ++#!/usr/bin/env bash ++# nbdkit ++# Copyright (C) 2018-2019 Red Hat Inc. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Test plugin used by test-readahead.sh. ++ ++case "$1" in ++ get_size) ++ # test-readahead-test-request.py will make 10 requests of 512 ++ # bytes each, so this just has to be >= 512*10. ++ echo 1M ++ ;; ++ pread) ++ sleep 5 ++ dd if=/dev/zero count=$3 iflag=count_bytes ++ ;; ++ *) ++ exit 2 ++ ;; ++esac +diff --git a/tests/test-readahead-test-request.py b/tests/test-readahead-test-request.py +new file mode 100755 +index 0000000..fd615bd +--- /dev/null ++++ b/tests/test-readahead-test-request.py +@@ -0,0 +1,44 @@ ++#!/usr/bin/env python3 ++# -*- python -*- ++# nbdkit ++# Copyright (C) 2018-2019 Red Hat Inc. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Used by test-readahead.sh to make a linear series of requests ++# with a constant, known size. ++ ++import nbd ++import sys ++ ++h = nbd.NBD () ++h.connect_unix (sys.argv[1]) ++ ++for i in range (0, 512*10, 512): ++ h.pread (512, i) +diff --git a/tests/test-readahead.c b/tests/test-readahead.c +deleted file mode 100644 +index 1772228..0000000 +--- a/tests/test-readahead.c ++++ /dev/null +@@ -1,140 +0,0 @@ +-/* nbdkit +- * Copyright (C) 2017-2019 Red Hat Inc. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions are +- * met: +- * +- * * Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * +- * * Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * +- * * Neither the name of Red Hat nor the names of its contributors may be +- * used to endorse or promote products derived from this software without +- * specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +- * SUCH DAMAGE. +- */ +- +-#include <config.h> +- +-#include <stdio.h> +-#include <stdlib.h> +-#include <stdint.h> +-#include <inttypes.h> +-#include <string.h> +-#include <unistd.h> +- +-#include <guestfs.h> +- +-#include "test.h" +- +-int +-main (int argc, char *argv[]) +-{ +- guestfs_h *g; +- int r; +- char *data; +- char **files; +- size_t i; +- +- /* The idea behind the test is that the readahead filter should not +- * interfere with normal, complex, non-sequential read and write +- * operations (although it will slow things down a lot). +- */ +- if (test_start_nbdkit ("--filter", "readahead", +- "memory", "1G", NULL) == -1) +- exit (EXIT_FAILURE); +- +- g = guestfs_create (); +- if (g == NULL) { +- perror ("guestfs_create"); +- exit (EXIT_FAILURE); +- } +- +- r = guestfs_add_drive_opts (g, "", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +- -1); +- if (r == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_launch (g) == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_part_disk (g, "/dev/sda", "mbr") == -1) +- exit (EXIT_FAILURE); +- if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_mount_options (g, "discard", "/dev/sda1", "/") == -1) +- exit (EXIT_FAILURE); +- +-#define filename "/hello.txt" +-#define content "hello, people of the world" +- +- if (guestfs_write (g, filename, content, strlen (content)) == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_mkdir (g, "/fill") == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_fill_dir (g, "/fill", 10000) == -1) +- exit (EXIT_FAILURE); +- +- /* Force write through to and read back from disk. */ +- if (guestfs_sync (g) == -1 || guestfs_drop_caches (g, 3) == -1) +- exit (EXIT_FAILURE); +- +- data = guestfs_cat (g, filename); +- if (!data) +- exit (EXIT_FAILURE); +- +- if (strcmp (data, content) != 0) { +- fprintf (stderr, +- "%s FAILED: unexpected content of %s file " +- "(actual: %s, expected: %s)\n", +- program_name, filename, data, content); +- exit (EXIT_FAILURE); +- } +- +- files = guestfs_find (g, "/"); +- if (!files) +- exit (EXIT_FAILURE); +- for (i = 0; files[i] != NULL; ++i) +- free (files[i]); +- free (files); +- +-#ifdef GUESTFS_HAVE_FSTRIM +- /* Delete the files and fstrim to test zeroing/trimming. */ +- if (guestfs_rm (g, filename) == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_rm_rf (g, "/fill") == -1) +- exit (EXIT_FAILURE); +- +- if (guestfs_fstrim (g, "/", -1) == -1) +- exit (EXIT_FAILURE); +-#endif +- +- if (guestfs_shutdown (g) == -1) +- exit (EXIT_FAILURE); +- +- guestfs_close (g); +- exit (EXIT_SUCCESS); +-} +diff --git a/tests/test-readahead.sh b/tests/test-readahead.sh +new file mode 100755 +index 0000000..182aa00 +--- /dev/null ++++ b/tests/test-readahead.sh +@@ -0,0 +1,67 @@ ++#!/usr/bin/env bash ++# nbdkit ++# Copyright (C) 2018-2019 Red Hat Inc. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Is the readahead filter faster? Copy a blank disk with a custom ++# plugin that sleeps on every request. Because the readahead filter ++# should result in fewer requests it should run faster. ++ ++source ./functions.sh ++set -e ++set -x ++ ++requires python3 --version ++requires python3 -c 'import nbd' ++ ++files="readahead.img" ++rm -f $files ++cleanup_fn rm -f $files ++ ++test () ++{ ++ start_t=$SECONDS ++ nbdkit -fv -U - "$@" sh ./test-readahead-test-plugin.sh \ ++ --run './test-readahead-test-request.py $unixsocket' ++ end_t=$SECONDS ++ echo $((end_t - start_t)) ++} ++ ++t1=$(test --filter=readahead) ++t2=$(test) ++ ++# In the t1 case we should make only 1 request into the plugin, ++# resulting in around 1 sleep period (5 seconds). In the t2 case we ++# make 10 requests so sleep for around 50 seconds. t1 should be < t2 ++# is every reasonable scenario. ++if [ $t1 -ge $t2 ]; then ++ echo "$0: readahead filter took longer, should be shorter" ++ exit 1 ++fi +-- +2.23.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 4ab1563..544e704 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,14 +31,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.17-development Name: nbdkit Version: 1.17.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -51,6 +51,10 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patches to improve test times. +Patch1: 0001-tests-Reduce-excessive-time-taken-by-some-tests.patch +Patch2: 0002-tests-Improve-test-readahead-test.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -915,6 +919,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Dec 14 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.4-2 +- Improve test times. + * Fri Dec 13 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.4-1 - New upstream development version 1.17.4. - New filter: nofilter. From 81f9938338d10e225157aae93d8f2e0ec42b6f84 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 15 Dec 2019 18:35:54 +0000 Subject: [PATCH 269/683] New upstream development version 1.17.5. Remove upstream patches. --- ...e-excessive-time-taken-by-some-tests.patch | 167 -------- 0002-tests-Improve-test-readahead-test.patch | 377 ------------------ nbdkit.spec | 14 +- sources | 4 +- 4 files changed, 9 insertions(+), 553 deletions(-) delete mode 100644 0001-tests-Reduce-excessive-time-taken-by-some-tests.patch delete mode 100644 0002-tests-Improve-test-readahead-test.patch diff --git a/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch b/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch deleted file mode 100644 index 1a94cae..0000000 --- a/0001-tests-Reduce-excessive-time-taken-by-some-tests.patch +++ /dev/null @@ -1,167 +0,0 @@ -From fdbd0ef69f0c222d0cdc35d3c48297aff549abce Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Fri, 13 Dec 2019 15:38:09 +0000 -Subject: [PATCH 1/2] tests: Reduce excessive time taken by some tests. - -For context see: -https://www.redhat.com/archives/libguestfs/2019-December/msg00074.html - -This is mainly about changing tests to use libnbd/nbdsh instead of -libguestfs where libguestfs isn't really necessary for the test. ---- - tests/test-cache-on-read.sh | 37 ++++++++++++++++--------------------- - tests/test-cache.sh | 37 ++++++++++++++++++++----------------- - tests/test-cow.sh | 9 ++++++--- - 3 files changed, 42 insertions(+), 41 deletions(-) - -diff --git a/tests/test-cache-on-read.sh b/tests/test-cache-on-read.sh -index 4ecf3af..6196373 100755 ---- a/tests/test-cache-on-read.sh -+++ b/tests/test-cache-on-read.sh -@@ -30,15 +30,11 @@ - # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - # SUCH DAMAGE. - --# XXX Suggestion to improve this test: Use the delay filter below the --# cache filter, and time reads to prove that the second read is faster --# because it isn't going through the delay filter and plugin. -- - source ./functions.sh - set -e - set -x - --requires guestfish --version -+requires nbdsh --version - - sock=`mktemp -u` - files="cache-on-read.img $sock cache-on-read.pid" -@@ -46,7 +42,7 @@ rm -f $files - cleanup_fn rm -f $files - - # Create an empty base image. --truncate -s 1G cache-on-read.img -+truncate -s 128K cache-on-read.img - - # Run nbdkit with the caching filter and cache-on-read set. - start_nbdkit -P cache-on-read.pid -U $sock \ -@@ -54,19 +50,18 @@ start_nbdkit -P cache-on-read.pid -U $sock \ - file cache-on-read.img \ - cache-on-read=true - --# Open the overlay and perform some operations. --guestfish --format=raw -a "nbd://?socket=$sock" <<'EOF' -- run -- part-disk /dev/sda gpt -- mkfs ext4 /dev/sda1 -- mount /dev/sda1 / -- fill-dir / 10000 -- fill-pattern "abcde" 5M /large -- write /hello "hello, world" --EOF -+nbdsh --connect "nbd+unix://?socket=$sock" \ -+ -c ' -+# Write some pattern data to the overlay and check it reads back OK. -+buf = b"abcd" * 16384 -+h.pwrite (buf, 32768) -+zero = h.pread (32768, 0) -+assert zero == bytearray (32768) -+buf2 = h.pread (65536, 32768) -+assert buf == buf2 - --# Check the last files we created exist. --guestfish --ro -a cache-on-read.img -m /dev/sda1 <<'EOF' -- cat /hello -- cat /large | cat >/dev/null --EOF -+# XXX Suggestion to improve this test: Use the delay filter below the -+# cache filter, and time reads to prove that the second read is faster -+# because it is not going through the delay filter and plugin. -+# XXX second h.pread here ... -+' -diff --git a/tests/test-cache.sh b/tests/test-cache.sh -index bafada2..eead7c8 100755 ---- a/tests/test-cache.sh -+++ b/tests/test-cache.sh -@@ -34,7 +34,7 @@ source ./functions.sh - set -e - set -x - --requires guestfish --version -+requires nbdsh --version - - sock=`mktemp -u` - files="cache.img $sock cache.pid" -@@ -42,24 +42,27 @@ rm -f $files - cleanup_fn rm -f $files - - # Create an empty base image. --truncate -s 1G cache.img -+truncate -s 128K cache.img - - # Run nbdkit with the caching filter. - start_nbdkit -P cache.pid -U $sock --filter=cache file cache.img - --# Open the overlay and perform some operations. --guestfish --format=raw -a "nbd://?socket=$sock" <<'EOF' -- run -- part-disk /dev/sda gpt -- mkfs ext4 /dev/sda1 -- mount /dev/sda1 / -- fill-dir / 10000 -- fill-pattern "abcde" 5M /large -- write /hello "hello, world" --EOF -+nbdsh --connect "nbd+unix://?socket=$sock" \ -+ -c ' -+# Write some pattern data to the overlay and check it reads back OK. -+buf = b"abcd" * 16384 -+h.pwrite (buf, 32768) -+zero = h.pread (32768, 0) -+assert zero == bytearray (32768) -+buf2 = h.pread (65536, 32768) -+assert buf == buf2 - --# Check the last files we created exist. --guestfish --ro -a cache.img -m /dev/sda1 <<'EOF' -- cat /hello -- cat /large | cat >/dev/null --EOF -+# Flushing should write through to the underlying file. -+h.flush () -+ -+with open ("cache.img", "rb") as file: -+ zero = file.read (32768) -+ assert zero == bytearray (32768) -+ buf2 = file.read (65536) -+ assert buf == buf2 -+' -diff --git a/tests/test-cow.sh b/tests/test-cow.sh -index 5567b77..dea518c 100755 ---- a/tests/test-cow.sh -+++ b/tests/test-cow.sh -@@ -42,7 +42,11 @@ rm -f $files - cleanup_fn rm -f $files - - # Create a base image which is partitioned with an empty filesystem. --guestfish -N cow-base.img=fs exit -+rm -rf cow.d -+mkdir cow.d -+cleanup_fn rm -rf cow.d -+nbdkit -fv -U - linuxdisk cow.d size=100M \ -+ --run 'qemu-img convert $nbd cow-base.img' - lastmod="$(stat -c "%y" cow-base.img)" - - # Run nbdkit with a COW overlay. -@@ -50,8 +54,7 @@ start_nbdkit -P cow.pid -U $sock --filter=cow file cow-base.img - - # Write some data into the overlay. - guestfish --format=raw -a "nbd://?socket=$sock" -m /dev/sda1 <<EOF -- fill-dir / 10000 -- fill-pattern "abcde" 5M /large -+ fill-pattern "abcde" 128K /large - write /hello "hello, world" - EOF - --- -2.23.0 - diff --git a/0002-tests-Improve-test-readahead-test.patch b/0002-tests-Improve-test-readahead-test.patch deleted file mode 100644 index 778ed9a..0000000 --- a/0002-tests-Improve-test-readahead-test.patch +++ /dev/null @@ -1,377 +0,0 @@ -From ce8357a883167b75ced16ea9f1488f7933b3e813 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 14 Dec 2019 12:20:55 +0000 -Subject: [PATCH 2/2] tests: Improve test-readahead test. - -See -https://www.redhat.com/archives/libguestfs/2019-December/msg00088.html ---- - tests/Makefile.am | 13 +-- - tests/test-readahead-test-plugin.sh | 48 +++++++++ - tests/test-readahead-test-request.py | 44 +++++++++ - tests/test-readahead.c | 140 --------------------------- - tests/test-readahead.sh | 67 +++++++++++++ - 5 files changed, 166 insertions(+), 146 deletions(-) - create mode 100755 tests/test-readahead-test-plugin.sh - create mode 100755 tests/test-readahead-test-request.py - delete mode 100644 tests/test-readahead.c - create mode 100755 tests/test-readahead.sh - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 1932eea..a5e9897 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -168,7 +168,10 @@ EXTRA_DIST = \ - test-rate.sh \ - test-rate-dynamic.sh \ - test.rb \ -+ test-readahead.sh \ - test-readahead-copy.sh \ -+ test-readahead-test-plugin.sh \ -+ test-readahead-test-request.py \ - test-retry.sh \ - test-retry-extents.sh \ - test-retry-size.sh \ -@@ -1050,12 +1053,10 @@ TESTS += \ - $(NULL) - - # readahead filter test. --LIBGUESTFS_TESTS += test-readahead --TESTS += test-readahead-copy.sh -- --test_readahead_SOURCES = test-readahead.c test.h --test_readahead_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) --test_readahead_LDADD = libtest.la $(LIBGUESTFS_LIBS) -+TESTS += \ -+ test-readahead.sh \ -+ test-readahead-copy.sh \ -+ $(NULL) - - # retry filter test. - TESTS += \ -diff --git a/tests/test-readahead-test-plugin.sh b/tests/test-readahead-test-plugin.sh -new file mode 100755 -index 0000000..3c068cb ---- /dev/null -+++ b/tests/test-readahead-test-plugin.sh -@@ -0,0 +1,48 @@ -+#!/usr/bin/env bash -+# nbdkit -+# Copyright (C) 2018-2019 Red Hat Inc. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Test plugin used by test-readahead.sh. -+ -+case "$1" in -+ get_size) -+ # test-readahead-test-request.py will make 10 requests of 512 -+ # bytes each, so this just has to be >= 512*10. -+ echo 1M -+ ;; -+ pread) -+ sleep 5 -+ dd if=/dev/zero count=$3 iflag=count_bytes -+ ;; -+ *) -+ exit 2 -+ ;; -+esac -diff --git a/tests/test-readahead-test-request.py b/tests/test-readahead-test-request.py -new file mode 100755 -index 0000000..fd615bd ---- /dev/null -+++ b/tests/test-readahead-test-request.py -@@ -0,0 +1,44 @@ -+#!/usr/bin/env python3 -+# -*- python -*- -+# nbdkit -+# Copyright (C) 2018-2019 Red Hat Inc. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Used by test-readahead.sh to make a linear series of requests -+# with a constant, known size. -+ -+import nbd -+import sys -+ -+h = nbd.NBD () -+h.connect_unix (sys.argv[1]) -+ -+for i in range (0, 512*10, 512): -+ h.pread (512, i) -diff --git a/tests/test-readahead.c b/tests/test-readahead.c -deleted file mode 100644 -index 1772228..0000000 ---- a/tests/test-readahead.c -+++ /dev/null -@@ -1,140 +0,0 @@ --/* nbdkit -- * Copyright (C) 2017-2019 Red Hat Inc. -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions are -- * met: -- * -- * * Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * -- * * Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * -- * * Neither the name of Red Hat nor the names of its contributors may be -- * used to endorse or promote products derived from this software without -- * specific prior written permission. -- * -- * THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- * SUCH DAMAGE. -- */ -- --#include <config.h> -- --#include <stdio.h> --#include <stdlib.h> --#include <stdint.h> --#include <inttypes.h> --#include <string.h> --#include <unistd.h> -- --#include <guestfs.h> -- --#include "test.h" -- --int --main (int argc, char *argv[]) --{ -- guestfs_h *g; -- int r; -- char *data; -- char **files; -- size_t i; -- -- /* The idea behind the test is that the readahead filter should not -- * interfere with normal, complex, non-sequential read and write -- * operations (although it will slow things down a lot). -- */ -- if (test_start_nbdkit ("--filter", "readahead", -- "memory", "1G", NULL) == -1) -- exit (EXIT_FAILURE); -- -- g = guestfs_create (); -- if (g == NULL) { -- perror ("guestfs_create"); -- exit (EXIT_FAILURE); -- } -- -- r = guestfs_add_drive_opts (g, "", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, -- -1); -- if (r == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_launch (g) == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_part_disk (g, "/dev/sda", "mbr") == -1) -- exit (EXIT_FAILURE); -- if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_mount_options (g, "discard", "/dev/sda1", "/") == -1) -- exit (EXIT_FAILURE); -- --#define filename "/hello.txt" --#define content "hello, people of the world" -- -- if (guestfs_write (g, filename, content, strlen (content)) == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_mkdir (g, "/fill") == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_fill_dir (g, "/fill", 10000) == -1) -- exit (EXIT_FAILURE); -- -- /* Force write through to and read back from disk. */ -- if (guestfs_sync (g) == -1 || guestfs_drop_caches (g, 3) == -1) -- exit (EXIT_FAILURE); -- -- data = guestfs_cat (g, filename); -- if (!data) -- exit (EXIT_FAILURE); -- -- if (strcmp (data, content) != 0) { -- fprintf (stderr, -- "%s FAILED: unexpected content of %s file " -- "(actual: %s, expected: %s)\n", -- program_name, filename, data, content); -- exit (EXIT_FAILURE); -- } -- -- files = guestfs_find (g, "/"); -- if (!files) -- exit (EXIT_FAILURE); -- for (i = 0; files[i] != NULL; ++i) -- free (files[i]); -- free (files); -- --#ifdef GUESTFS_HAVE_FSTRIM -- /* Delete the files and fstrim to test zeroing/trimming. */ -- if (guestfs_rm (g, filename) == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_rm_rf (g, "/fill") == -1) -- exit (EXIT_FAILURE); -- -- if (guestfs_fstrim (g, "/", -1) == -1) -- exit (EXIT_FAILURE); --#endif -- -- if (guestfs_shutdown (g) == -1) -- exit (EXIT_FAILURE); -- -- guestfs_close (g); -- exit (EXIT_SUCCESS); --} -diff --git a/tests/test-readahead.sh b/tests/test-readahead.sh -new file mode 100755 -index 0000000..182aa00 ---- /dev/null -+++ b/tests/test-readahead.sh -@@ -0,0 +1,67 @@ -+#!/usr/bin/env bash -+# nbdkit -+# Copyright (C) 2018-2019 Red Hat Inc. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Is the readahead filter faster? Copy a blank disk with a custom -+# plugin that sleeps on every request. Because the readahead filter -+# should result in fewer requests it should run faster. -+ -+source ./functions.sh -+set -e -+set -x -+ -+requires python3 --version -+requires python3 -c 'import nbd' -+ -+files="readahead.img" -+rm -f $files -+cleanup_fn rm -f $files -+ -+test () -+{ -+ start_t=$SECONDS -+ nbdkit -fv -U - "$@" sh ./test-readahead-test-plugin.sh \ -+ --run './test-readahead-test-request.py $unixsocket' -+ end_t=$SECONDS -+ echo $((end_t - start_t)) -+} -+ -+t1=$(test --filter=readahead) -+t2=$(test) -+ -+# In the t1 case we should make only 1 request into the plugin, -+# resulting in around 1 sleep period (5 seconds). In the t2 case we -+# make 10 requests so sleep for around 50 seconds. t1 should be < t2 -+# is every reasonable scenario. -+if [ $t1 -ge $t2 ]; then -+ echo "$0: readahead filter took longer, should be shorter" -+ exit 1 -+fi --- -2.23.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 544e704..73365e7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -31,14 +31,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.17-development Name: nbdkit -Version: 1.17.4 -Release: 2%{?dist} +Version: 1.17.5 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -51,10 +51,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patches to improve test times. -Patch1: 0001-tests-Reduce-excessive-time-taken-by-some-tests.patch -Patch2: 0002-tests-Improve-test-readahead-test.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -919,6 +915,10 @@ make %{?_smp_mflags} check || { %changelog +* Sun Dec 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.5-1 +- New upstream development version 1.17.5. +- Remove upstream patches. + * Sat Dec 14 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.4-2 - Improve test times. diff --git a/sources b/sources index 88d1041..e369875 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.4.tar.gz) = 580cdfd4b28ee1d8e7b467b6d4d3e02f2c802667661f6c361407dc20f92f8b7f31fe4bc0f0e7a7bfc10122e43b5fcf2c8cab005c475c1f06e133165acce90af1 -SHA512 (nbdkit-1.17.4.tar.gz.sig) = 64bc6074f9f3cd2b16ed5aea999a8b1ff7baed0b74dc3c31892bbe09926b354fc70745c83d4c4e7ffb5689154101c1b9967553cf5a71032f5694bb3abfebc15b +SHA512 (nbdkit-1.17.5.tar.gz) = 7a53e870a43e8ca4ebd12ac51cb2091164bb58b2c9642c7afcb65369b22acc051b8f14aef8556fdeacb34635a8043062b5eeb4f569ded72ae732d530c1d8642f +SHA512 (nbdkit-1.17.5.tar.gz.sig) = 256a9028429509b3951494dd8b867a2146a1d9e4162ec34595a1c4021228166a205ede2d2106e50958df30de3ea47784ad3e9d46fafc8128ff5a5d81c7b54d9e From 959156a90fcba1ae58c2dea33835d85191be8e0c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 21 Jan 2020 13:14:00 +0000 Subject: [PATCH 270/683] New upstream development version 1.17.6. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 73365e7..e100442 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.5 +Version: 1.17.6 Release: 1%{?dist} Summary: NBD server @@ -915,6 +915,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jan 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.6-1 +- New upstream development version 1.17.6. + * Sun Dec 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.5-1 - New upstream development version 1.17.5. - Remove upstream patches. diff --git a/sources b/sources index e369875..d2a9b70 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.5.tar.gz) = 7a53e870a43e8ca4ebd12ac51cb2091164bb58b2c9642c7afcb65369b22acc051b8f14aef8556fdeacb34635a8043062b5eeb4f569ded72ae732d530c1d8642f -SHA512 (nbdkit-1.17.5.tar.gz.sig) = 256a9028429509b3951494dd8b867a2146a1d9e4162ec34595a1c4021228166a205ede2d2106e50958df30de3ea47784ad3e9d46fafc8128ff5a5d81c7b54d9e +SHA512 (nbdkit-1.17.6.tar.gz) = 14f2a08f6e792c9794fc0440628033aefd9d841bc77b82227e6f6ffdfff2e9fb1148ff5beb7edb6ad49b127ecd049170cea5ad27e2e24f25a17df1121edbb03d +SHA512 (nbdkit-1.17.6.tar.gz.sig) = 62abf638e86528a162bd4dd4a589c76fd3aa5f6616ba2118329718373fa60ac555b544fac412b6b080774767f5613d5a79f694efc95f10086d2daa463277b859 From 64498f0fde412bed42aa4d651356c66f948a9249 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 25 Jan 2020 13:25:12 +0000 Subject: [PATCH 271/683] New upstream development version 1.17.7. New filter: extentlist. --- nbdkit.spec | 11 ++++++++++- sources | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e100442..aa59b6e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.6 +Version: 1.17.7 Release: 1%{?dist} Summary: NBD server @@ -450,6 +450,7 @@ Provides: %{name}-cacheextents-filter = %{version}-%{release} Provides: %{name}-cow-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} +Provides: %{name}-extentlist-filter = %{version}-%{release} Provides: %{name}-fua-filter = %{version}-%{release} Provides: %{name}-ip-filter = %{version}-%{release} Provides: %{name}-log-filter = %{version}-%{release} @@ -483,6 +484,8 @@ nbdkit-delay-filter Inject read and write delays. nbdkit-error-filter Inject errors. +nbdkit-extentlist-filter Place extent list over a plugin. + nbdkit-fua-filter Modify flush behaviour in plugins. nbdkit-ip-filter Filter clients by IP address. @@ -837,6 +840,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so +%{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so @@ -858,6 +862,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* +%{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* @@ -915,6 +920,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Jan 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.7-1 +- New upstream development version 1.17.7. +- New filter: extentlist. + * Tue Jan 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.6-1 - New upstream development version 1.17.6. diff --git a/sources b/sources index d2a9b70..cd20a2d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.6.tar.gz) = 14f2a08f6e792c9794fc0440628033aefd9d841bc77b82227e6f6ffdfff2e9fb1148ff5beb7edb6ad49b127ecd049170cea5ad27e2e24f25a17df1121edbb03d -SHA512 (nbdkit-1.17.6.tar.gz.sig) = 62abf638e86528a162bd4dd4a589c76fd3aa5f6616ba2118329718373fa60ac555b544fac412b6b080774767f5613d5a79f694efc95f10086d2daa463277b859 +SHA512 (nbdkit-1.17.7.tar.gz) = 0230c59804ae5d1b68a3bdf35e574a86747dfabc071f01d0eb556a99b968aa9fd6b17fd624a5b67bddfb44d6cd01915cae9db107616ca20bd6f38760de11d7f6 +SHA512 (nbdkit-1.17.7.tar.gz.sig) = 3faae8509870c479289ffe4d3fed7f2da9e07a1e1c6de03f692d72ebcfe0e0331282983fc1baeebb9b73121db85986bd1d9691bd4c6cb919bac07fc5e1d8ca22 From d628f9060363f5ddd8b36e8b0c7aca33628f40ed Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 Jan 2020 11:52:29 +0000 Subject: [PATCH 272/683] Disable tests/test-captive.sh. --- nbdkit.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index aa59b6e..4909b01 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -613,6 +613,10 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt +# tests/test-captive.sh is racy especially on s390x. We need to +# rethink this test upstream. +truncate -s 0 tests/test-captive.sh + # Temporarily kill tests/test-shutdown.sh because this test is racy on # slow hardware. truncate -s 0 tests/test-shutdown.sh From 104db2da67a6df6019d2cb593df31649ba6300c4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Wed, 29 Jan 2020 14:40:16 +0000 Subject: [PATCH 273/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4909b01..33e0859 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.17.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -924,6 +924,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Sat Jan 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.7-1 - New upstream development version 1.17.7. - New filter: extentlist. From 7c331b388ba4589c2d81d446d7b64590496883af Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 12 Feb 2020 16:39:23 +0000 Subject: [PATCH 274/683] New upstream development version 1.17.8. New filter: ext2. Deprecate and remove ext2 plugin. --- nbdkit.spec | 59 ++++++++++++++++++++++++++++++++--------------------- sources | 4 ++-- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 33e0859..aeb63e5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,8 +37,8 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.7 -Release: 2%{?dist} +Version: 1.17.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -226,18 +226,6 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains cURL (HTTP/FTP) support for %{name}. -%package ext2-plugin -Summary: ext2, ext3 and ext4 filesystem support for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description ext2-plugin -This package contains ext2, ext3 and ext4 filesystem support for -%{name}. - - %if 0%{?have_libguestfs} %package guestfs-plugin Summary: libguestfs plugin for %{name} @@ -517,6 +505,22 @@ nbdkit-stats-filter Display statistics about operations. nbdkit-truncate-filter Truncate, expand, round up or round down size. +%package ext2-filter +Summary: ext2, ext3 and ext4 filesystem support for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +# Remove in Fedora 34: +Provides: %{name}-ext2-plugin = %{version}-%{release} +Obsoletes: %{name}-ext2-plugin <= %{version}-%{release} + + +%description ext2-filter +This package contains ext2, ext3 and ext4 filesystem support for +%{name}. + + %package xz-filter Summary: XZ filter for %{name} License: BSD @@ -608,6 +612,10 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # rust plugin is built. Delete it if this happens. rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* +# Remove the deprecated ext2 plugin (use ext2 filter instead). +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-ext2-plugin.1* + %check # Workaround for broken libvirt (RHBZ#1138604). @@ -713,13 +721,6 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-curl-plugin.1* -%files ext2-plugin -%doc README -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so -%{_mandir}/man1/nbdkit-ext2-plugin.1* - - %if 0%{?have_libguestfs} %files guestfs-plugin %doc README @@ -884,6 +885,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-truncate-filter.1* +%files ext2-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-ext2-filter.so +%{_mandir}/man1/nbdkit-ext2-filter.1* + + %files xz-filter %doc README %license LICENSE @@ -924,14 +932,19 @@ make %{?_smp_mflags} check || { %changelog +* Wed Feb 12 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.8-1 +- New upstream development version 1.17.8. +- New filter: ext2. +- Deprecate and remove ext2 plugin. + * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild -* Sat Jan 25 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.7-1 +* Sat Jan 25 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.7-1 - New upstream development version 1.17.7. - New filter: extentlist. -* Tue Jan 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.6-1 +* Tue Jan 21 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.6-1 - New upstream development version 1.17.6. * Sun Dec 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.17.5-1 diff --git a/sources b/sources index cd20a2d..055ed0b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.7.tar.gz) = 0230c59804ae5d1b68a3bdf35e574a86747dfabc071f01d0eb556a99b968aa9fd6b17fd624a5b67bddfb44d6cd01915cae9db107616ca20bd6f38760de11d7f6 -SHA512 (nbdkit-1.17.7.tar.gz.sig) = 3faae8509870c479289ffe4d3fed7f2da9e07a1e1c6de03f692d72ebcfe0e0331282983fc1baeebb9b73121db85986bd1d9691bd4c6cb919bac07fc5e1d8ca22 +SHA512 (nbdkit-1.17.8.tar.gz) = a7f545753f930daf7a03feb1f6caaff75fd231a3a848c67989da464bb1de029eab00155a74f0455c754add9933189b35a565a6abd6db294e3bdd47d7b1895ef5 +SHA512 (nbdkit-1.17.8.tar.gz.sig) = 22bdc248e7bcf7b303c8997dbd0a603f077c7a48e7f8590c3b213c7fb092b1701d6bbe1523302ee7be1378e73cd08c17ca0b6873c0e1d72ebd5f4c55c04ef1e4 From 4822efb72b9a93fef6c383e8ae49a74458cf2cca Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 18 Feb 2020 15:21:54 +0000 Subject: [PATCH 275/683] New upstream development version 1.17.9. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index aeb63e5..2c17c64 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.8 +Version: 1.17.9 Release: 1%{?dist} Summary: NBD server @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Feb 18 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.9-1 +- New upstream development version 1.17.9. + * Wed Feb 12 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.8-1 - New upstream development version 1.17.8. - New filter: ext2. diff --git a/sources b/sources index 055ed0b..07a7834 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.8.tar.gz) = a7f545753f930daf7a03feb1f6caaff75fd231a3a848c67989da464bb1de029eab00155a74f0455c754add9933189b35a565a6abd6db294e3bdd47d7b1895ef5 -SHA512 (nbdkit-1.17.8.tar.gz.sig) = 22bdc248e7bcf7b303c8997dbd0a603f077c7a48e7f8590c3b213c7fb092b1701d6bbe1523302ee7be1378e73cd08c17ca0b6873c0e1d72ebd5f4c55c04ef1e4 +SHA512 (nbdkit-1.17.9.tar.gz) = 5a96b7eb065af9fe31d49a09b9294c758a476531f588b2c80ce3f1e182bece73925e99bca12713f44ea13e96c707e8c3814ff43bd0bed683749fd3016e507545 +SHA512 (nbdkit-1.17.9.tar.gz.sig) = c2dbc24eb32ba5b742b8b0d366ef3f3ee428ce17fd3b4af9d104022fb85a542566105e95f9aafe9ee372eabc08deed8cbd23e73c4d3c1e3a333fed8936156cac From dd5150d5afe73ba2d7472cc8b195524e90d96e03 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 19 Feb 2020 22:04:45 +0000 Subject: [PATCH 276/683] New upstream development version 1.17.10. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2c17c64..f145f93 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.9 +Version: 1.17.10 Release: 1%{?dist} Summary: NBD server @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Feb 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.10-1 +- New upstream development version 1.17.10. + * Tue Feb 18 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.9-1 - New upstream development version 1.17.9. diff --git a/sources b/sources index 07a7834..be6316c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.9.tar.gz) = 5a96b7eb065af9fe31d49a09b9294c758a476531f588b2c80ce3f1e182bece73925e99bca12713f44ea13e96c707e8c3814ff43bd0bed683749fd3016e507545 -SHA512 (nbdkit-1.17.9.tar.gz.sig) = c2dbc24eb32ba5b742b8b0d366ef3f3ee428ce17fd3b4af9d104022fb85a542566105e95f9aafe9ee372eabc08deed8cbd23e73c4d3c1e3a333fed8936156cac +SHA512 (nbdkit-1.17.10.tar.gz) = 53ad5bb12bf33628a9e0c38521467364b55f313761489a3fd0521ff2eee2274775417a28119fd9ce51c01a4c33f9a389cdce470adaf5e58f4e32cbdaeab6aebd +SHA512 (nbdkit-1.17.10.tar.gz.sig) = b4f0bc44bfa8f06b584e1bb7095ae98ece235270bd15111d57e351084d818bd2bad8972f6f4daee04069d673e622240e1dd0cc8f1510aa185b6d56ffae049722 From 71daa3db356d25407f9ca13fb117d9fba5d1dd26 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 25 Feb 2020 19:02:22 +0000 Subject: [PATCH 277/683] New upstream development version 1.17.11. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f145f93..92f50dc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.17-development Name: nbdkit -Version: 1.17.10 +Version: 1.17.11 Release: 1%{?dist} Summary: NBD server @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Feb 25 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.11-1 +- New upstream development version 1.17.11. + * Wed Feb 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.10-1 - New upstream development version 1.17.10. diff --git a/sources b/sources index be6316c..1ca59cd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.10.tar.gz) = 53ad5bb12bf33628a9e0c38521467364b55f313761489a3fd0521ff2eee2274775417a28119fd9ce51c01a4c33f9a389cdce470adaf5e58f4e32cbdaeab6aebd -SHA512 (nbdkit-1.17.10.tar.gz.sig) = b4f0bc44bfa8f06b584e1bb7095ae98ece235270bd15111d57e351084d818bd2bad8972f6f4daee04069d673e622240e1dd0cc8f1510aa185b6d56ffae049722 +SHA512 (nbdkit-1.17.11.tar.gz) = 113bb5e8602b45cafac14ad4c3c5d58b1b5f8171b2e715ee8106708bd8e1b34739cbc7f2162a5c360403f60e189fa1cdddcf6e909e0708fb7b1c95d5795cc228 +SHA512 (nbdkit-1.17.11.tar.gz.sig) = 66649fb32a624ee44bab7a3a2897e8cc68b59f84f0bc668361f3b55560a602cd20d4ced42cf538bccef2f359968b121dc6e81a7d3ceca37799911afcd2b603d5 From 10303676a964c0ec75ee7646647503bd54fe12f6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 26 Feb 2020 13:37:30 +0000 Subject: [PATCH 278/683] OCaml 4.10.0 final. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 92f50dc..fbd97ff 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.17.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Feb 26 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.11-2 +- OCaml 4.10.0 final. + * Tue Feb 25 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.11-1 - New upstream development version 1.17.11. From 153d047540e124a01080816bfd89e395ba1ce9d7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 27 Feb 2020 14:01:24 +0000 Subject: [PATCH 279/683] New upstream stable branch version 1.18.0. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fbd97ff..983b737 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,11 +34,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.17-development +%global source_directory 1.18-stable Name: nbdkit -Version: 1.17.11 -Release: 2%{?dist} +Version: 1.18.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Feb 27 2020 Richard W.M. Jones <rjones@redhat.com> - 1.18.0-1 +- New upstream stable branch version 1.18.0. + * Wed Feb 26 2020 Richard W.M. Jones <rjones@redhat.com> - 1.17.11-2 - OCaml 4.10.0 final. diff --git a/sources b/sources index 1ca59cd..4216e06 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.17.11.tar.gz) = 113bb5e8602b45cafac14ad4c3c5d58b1b5f8171b2e715ee8106708bd8e1b34739cbc7f2162a5c360403f60e189fa1cdddcf6e909e0708fb7b1c95d5795cc228 -SHA512 (nbdkit-1.17.11.tar.gz.sig) = 66649fb32a624ee44bab7a3a2897e8cc68b59f84f0bc668361f3b55560a602cd20d4ced42cf538bccef2f359968b121dc6e81a7d3ceca37799911afcd2b603d5 +SHA512 (nbdkit-1.18.0.tar.gz) = b81d34a8ee9e2d2d84714828caafd2f7728e4c312994cfa6dd1a662b043d0649ba343efd30e634c125f249e9d88fecf60ad56cfd99dd8ab7669cf4565f2c242f +SHA512 (nbdkit-1.18.0.tar.gz.sig) = a16b914c1ab0c7ef83a7da5b200f8e1c83cb45a783744f8a3b7dc69e9f8803075813d65d5c85ba108473b029ba9862b89c709ab5a45b9c22e992fa0e40bc37c1 From eebc6790c3eedbc94b0be3c7296115f24d085496 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 6 Mar 2020 09:29:26 +0000 Subject: [PATCH 280/683] New upstream version 1.19.1. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 983b737..2cb61cc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,10 +34,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.18-stable +%global source_directory 1.19-development Name: nbdkit -Version: 1.18.0 +Version: 1.19.1 Release: 1%{?dist} Summary: NBD server @@ -932,6 +932,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Mar 06 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.1-1 +- New upstream version 1.19.1. + * Thu Feb 27 2020 Richard W.M. Jones <rjones@redhat.com> - 1.18.0-1 - New upstream stable branch version 1.18.0. diff --git a/sources b/sources index 4216e06..a8b9084 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.18.0.tar.gz) = b81d34a8ee9e2d2d84714828caafd2f7728e4c312994cfa6dd1a662b043d0649ba343efd30e634c125f249e9d88fecf60ad56cfd99dd8ab7669cf4565f2c242f -SHA512 (nbdkit-1.18.0.tar.gz.sig) = a16b914c1ab0c7ef83a7da5b200f8e1c83cb45a783744f8a3b7dc69e9f8803075813d65d5c85ba108473b029ba9862b89c709ab5a45b9c22e992fa0e40bc37c1 +SHA512 (nbdkit-1.19.1.tar.gz) = cde102a839c85ab8e51f14901fbd57647c48112dd053ade84dcace0d81628f8bd77adeb10cc6a4cb0e4d508a542c44a482d6fbf58d6c709cc60a4c7f54e25986 +SHA512 (nbdkit-1.19.1.tar.gz.sig) = 432444c52c6349fdc6f894eccbbffb4d4f88ac51b1352832bd245c7e1b411b2a27994522108ee1f4c4e9faea0fc814eaa0628e6392113bdf01a794607c50672b From c51842c7f2573c5e91a0d1314b96e09bd6221c08 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 Mar 2020 10:47:17 +0000 Subject: [PATCH 281/683] New upstream version 1.19.2. New filters: exitlast, limit. --- nbdkit.spec | 12 +++++++++++- sources | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2cb61cc..aecf583 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.1 +Version: 1.19.2 Release: 1%{?dist} Summary: NBD server @@ -438,9 +438,11 @@ Provides: %{name}-cacheextents-filter = %{version}-%{release} Provides: %{name}-cow-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} +Provides: %{name}-exitlast-filter = %{version}-%{release} Provides: %{name}-extentlist-filter = %{version}-%{release} Provides: %{name}-fua-filter = %{version}-%{release} Provides: %{name}-ip-filter = %{version}-%{release} +Provides: %{name}-limit-filter = %{version}-%{release} Provides: %{name}-log-filter = %{version}-%{release} Provides: %{name}-nocache-filter = %{version}-%{release} Provides: %{name}-noextents-filter = %{version}-%{release} @@ -472,12 +474,16 @@ nbdkit-delay-filter Inject read and write delays. nbdkit-error-filter Inject errors. +nbdkit-exitlast-filter Exit on last client connection. + nbdkit-extentlist-filter Place extent list over a plugin. nbdkit-fua-filter Modify flush behaviour in plugins. nbdkit-ip-filter Filter clients by IP address. +nbdkit-limit-filter Limit nr clients that can connect concurrently. + nbdkit-log-filter Log all transactions to a file. nbdkit-nocache-filter Disable cache requests in the underlying plugin. @@ -932,6 +938,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Mar 07 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.2-1 +- New upstream version 1.19.2. +- New filters: exitlast, limit. + * Fri Mar 06 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.1-1 - New upstream version 1.19.1. diff --git a/sources b/sources index a8b9084..6d08fd0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.1.tar.gz) = cde102a839c85ab8e51f14901fbd57647c48112dd053ade84dcace0d81628f8bd77adeb10cc6a4cb0e4d508a542c44a482d6fbf58d6c709cc60a4c7f54e25986 -SHA512 (nbdkit-1.19.1.tar.gz.sig) = 432444c52c6349fdc6f894eccbbffb4d4f88ac51b1352832bd245c7e1b411b2a27994522108ee1f4c4e9faea0fc814eaa0628e6392113bdf01a794607c50672b +SHA512 (nbdkit-1.19.2.tar.gz) = 7cb9fe4761f870315f5a7f29c791e1e82ea0b36458ddc341e2301d3961f8393970f0a3352cf522ad6b4623c1819e2cfe332f37a56de0697d00ee564e87a2d6f5 +SHA512 (nbdkit-1.19.2.tar.gz.sig) = 13752439349cc96e8b218dfc0b1a01dc49b3d30fd8026f853fc30f8647a5afee780d134c6ce4fcde5c90de0d156dcd0957a6e321a2bfc424884cf5f3123868d9 From a1a08282bf3ee78fd2084582ee63ed487202d4c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 Mar 2020 10:55:54 +0000 Subject: [PATCH 282/683] Forgot to update %files in previous commit. --- nbdkit.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index aecf583..1c4911e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -851,9 +851,11 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so +%{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so %{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-ip-filter.so +%{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so @@ -873,9 +875,11 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* +%{_mandir}/man1/nbdkit-exitlast-filter.1* %{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-ip-filter.1* +%{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* From a9549f6654aa0febcf02f2377f327c6a2ef3af03 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 17 Mar 2020 13:41:06 +0000 Subject: [PATCH 283/683] New upstream version 1.19.3. New plugin and subpackage: tmpdisk. --- nbdkit.spec | 28 +++++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1c4911e..e27afd2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.2 +Version: 1.19.3 Release: 1%{?dist} Summary: NBD server @@ -413,6 +413,21 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package lets you write Tcl plugins for %{name}. +%package tmpdisk-plugin +Summary: Remote temporary filesystem disk plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +# For mkfs and mke2fs (defaults). +Requires: util-linux, e2fsprogs +# For other filesystems. +Suggests: xfsprogs, ntfsprogs, dosfstools + + +%description tmpdisk-plugin +This package is a remote temporary filesystem disk plugin for %{name}. + + %ifarch %{ix86} x86_64 %package vddk-plugin Summary: VMware VDDK plugin for %{name} @@ -833,6 +848,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man3/nbdkit-tcl-plugin.3* +%files tmpdisk-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-tmpdisk-plugin.so +%{_mandir}/man1/nbdkit-tmpdisk-plugin.1* + + %ifarch %{ix86} x86_64 %files vddk-plugin %doc README @@ -942,6 +964,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue Mar 17 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.3-1 +- New upstream version 1.19.3. +- New plugin and subpackage: tmpdisk. + * Sat Mar 07 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.2-1 - New upstream version 1.19.2. - New filters: exitlast, limit. diff --git a/sources b/sources index 6d08fd0..b46a134 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.2.tar.gz) = 7cb9fe4761f870315f5a7f29c791e1e82ea0b36458ddc341e2301d3961f8393970f0a3352cf522ad6b4623c1819e2cfe332f37a56de0697d00ee564e87a2d6f5 -SHA512 (nbdkit-1.19.2.tar.gz.sig) = 13752439349cc96e8b218dfc0b1a01dc49b3d30fd8026f853fc30f8647a5afee780d134c6ce4fcde5c90de0d156dcd0957a6e321a2bfc424884cf5f3123868d9 +SHA512 (nbdkit-1.19.3.tar.gz) = 6996123efb0ae92cc9310db94b3a6381989ed114245f53be360e8f9e049af4f224194263a219095240a175013019bfed37dce2999e1cc232e08decc344bfbab4 +SHA512 (nbdkit-1.19.3.tar.gz.sig) = 0760594b6ebc5cb9631af968ac16863df8b3017daab2a8e68b63cbb3772173be6df583983094de5cfcad54888c110be057faa7946fb98e48877cbcf293362fde From 160e7175234670e526ff4058555b6d6a85045422 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 19 Mar 2020 12:30:37 +0000 Subject: [PATCH 284/683] Kill some upstream tests which are problematic. Restore test-shutdown.sh (it was renamed to test-delay-shutdown.sh) --- nbdkit.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e27afd2..3304c63 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.19.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -646,16 +646,16 @@ mkdir -p $HOME/.cache/libvirt # rethink this test upstream. truncate -s 0 tests/test-captive.sh -# Temporarily kill tests/test-shutdown.sh because this test is racy on -# slow hardware. -truncate -s 0 tests/test-shutdown.sh - %ifarch s390x # Temporarily kill tests/test-cache-max-size.sh since it fails # sometimes on s390x for unclear reasons. truncate -s 0 tests/test-cache-max-size.sh %endif +# Temporarily kill test-nbd-tls.sh and test-nbd-tls-psk.sh +# https://www.redhat.com/archives/libguestfs/2020-March/msg00191.html +truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 @@ -964,6 +964,10 @@ make %{?_smp_mflags} check || { %changelog +* Thu Mar 17 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.3-2 +- Kill some upstream tests which are problematic. +- Restore test-shutdown.sh (it was renamed to test-delay-shutdown.sh) + * Tue Mar 17 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.3-1 - New upstream version 1.19.3. - New plugin and subpackage: tmpdisk. From 5bcd6c59688e6d3af63f97436582f1e20347d652 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 20 Mar 2020 13:51:36 +0000 Subject: [PATCH 285/683] New upstream version 1.19.4. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3304c63..155f094 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,8 +37,8 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.3 -Release: 2%{?dist} +Version: 1.19.4 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -964,7 +964,10 @@ make %{?_smp_mflags} check || { %changelog -* Thu Mar 17 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.3-2 +* Fri Mar 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.4-1 +- New upstream version 1.19.4. + +* Thu Mar 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.3-2 - Kill some upstream tests which are problematic. - Restore test-shutdown.sh (it was renamed to test-delay-shutdown.sh) diff --git a/sources b/sources index b46a134..d6a70df 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.3.tar.gz) = 6996123efb0ae92cc9310db94b3a6381989ed114245f53be360e8f9e049af4f224194263a219095240a175013019bfed37dce2999e1cc232e08decc344bfbab4 -SHA512 (nbdkit-1.19.3.tar.gz.sig) = 0760594b6ebc5cb9631af968ac16863df8b3017daab2a8e68b63cbb3772173be6df583983094de5cfcad54888c110be057faa7946fb98e48877cbcf293362fde +SHA512 (nbdkit-1.19.4.tar.gz) = 42b1ffe5a04287089ecd02591b64a1a039d500ce16cff316535895588020b070f3e93e9f08a316bfca5edb8b23151e2f87eb9aa398fc397c9e5966ee8dcd639a +SHA512 (nbdkit-1.19.4.tar.gz.sig) = 03dfff7003c9017c55688c97887227f1d10d0bd4255adda1be75012fee482779d5c7af3cf3f250cd786e41e653b5ceb1c5d2f2c8741b13b8ce0848f908639927 From 395070692126b88b171459d555432cf465885b61 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 28 Mar 2020 20:42:10 +0000 Subject: [PATCH 286/683] New upstream version 1.19.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 155f094..87ac7d5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.4 +Version: 1.19.5 Release: 1%{?dist} Summary: NBD server @@ -964,6 +964,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Mar 28 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.5-1 +- New upstream version 1.19.5. + * Fri Mar 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.4-1 - New upstream version 1.19.4. diff --git a/sources b/sources index d6a70df..fe48d19 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.4.tar.gz) = 42b1ffe5a04287089ecd02591b64a1a039d500ce16cff316535895588020b070f3e93e9f08a316bfca5edb8b23151e2f87eb9aa398fc397c9e5966ee8dcd639a -SHA512 (nbdkit-1.19.4.tar.gz.sig) = 03dfff7003c9017c55688c97887227f1d10d0bd4255adda1be75012fee482779d5c7af3cf3f250cd786e41e653b5ceb1c5d2f2c8741b13b8ce0848f908639927 +SHA512 (nbdkit-1.19.5.tar.gz) = d6973b97a67557c79784a1a1bb1b615b1fbb7739f30af9ac900dfe5e3ee194cb75d77ac387e609fc3c1a9278dbe692628c9f963bfa4a29a8e6abe08c48e1968b +SHA512 (nbdkit-1.19.5.tar.gz.sig) = 1bcb8805585eaa034edc1104c91c593a165517b5e9d127e610c787fde6dbc4c1ab5bc3a2162da1b38f5a9d59a532e687761902cff4eea11a6861b83d042f54f8 From bb6a3d9caca0ef16942f77dc2cd06b66441028c2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 31 Mar 2020 20:45:21 +0100 Subject: [PATCH 287/683] New upstream version 1.19.6. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 87ac7d5..0ecfad2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.5 +Version: 1.19.6 Release: 1%{?dist} Summary: NBD server @@ -964,6 +964,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Mar 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.6-1 +- New upstream version 1.19.6. + * Sat Mar 28 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.5-1 - New upstream version 1.19.5. diff --git a/sources b/sources index fe48d19..d0cd000 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.5.tar.gz) = d6973b97a67557c79784a1a1bb1b615b1fbb7739f30af9ac900dfe5e3ee194cb75d77ac387e609fc3c1a9278dbe692628c9f963bfa4a29a8e6abe08c48e1968b -SHA512 (nbdkit-1.19.5.tar.gz.sig) = 1bcb8805585eaa034edc1104c91c593a165517b5e9d127e610c787fde6dbc4c1ab5bc3a2162da1b38f5a9d59a532e687761902cff4eea11a6861b83d042f54f8 +SHA512 (nbdkit-1.19.6.tar.gz) = 122512a1a5d67bb7423ca426b38acc2ce11ed4756efe1c0e974aeb8e76afde7731cc07fc9cb99f2e47789314d28306f2c29977820e38f0f964f1d77bd5482a60 +SHA512 (nbdkit-1.19.6.tar.gz.sig) = 9c4ba943b7935cf20a67fe880814a5ae95d5ab8c1c775b7e86e653a0b5ef805b86c773baaea218a59f8edd884f2ac726b29265777891b47bb36c0896489d67a2 From 455640d9945c008655df0ba2fe0776866144c814 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Apr 2020 10:38:12 +0100 Subject: [PATCH 288/683] Fix dependencies of nbdkit-tar-plugin. --- nbdkit.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0ecfad2..b0a6385 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -394,8 +394,10 @@ Summary: Tar archive plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# XXX This dependency should be autogenerated. +# XXX These should be autogenerated. Requires: %{name}-perl-plugin +Requires: perl(Cwd) +Requires: perl(IO::File) %description tar-plugin From 48421606c4fe57dee43637cbaa2914b8666532e2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Apr 2020 10:39:44 +0100 Subject: [PATCH 289/683] Fix dependencies of example4 plugin. --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index b0a6385..2427d1e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -206,6 +206,8 @@ Summary: Example plugins for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +# example4 is written in Perl. +Requires: %{name}-perl-plugin %description example-plugins From 0f64c0f03e6ca6b2eb7cb9b973e80bdf86a86701 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 8 Apr 2020 17:33:49 +0100 Subject: [PATCH 290/683] New upstream version 1.19.7. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2427d1e..95dbec6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.6 +Version: 1.19.7 Release: 1%{?dist} Summary: NBD server @@ -968,6 +968,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed Apr 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.7-1 +- New upstream version 1.19.7. + * Tue Mar 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.6-1 - New upstream version 1.19.6. diff --git a/sources b/sources index d0cd000..37a0903 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.6.tar.gz) = 122512a1a5d67bb7423ca426b38acc2ce11ed4756efe1c0e974aeb8e76afde7731cc07fc9cb99f2e47789314d28306f2c29977820e38f0f964f1d77bd5482a60 -SHA512 (nbdkit-1.19.6.tar.gz.sig) = 9c4ba943b7935cf20a67fe880814a5ae95d5ab8c1c775b7e86e653a0b5ef805b86c773baaea218a59f8edd884f2ac726b29265777891b47bb36c0896489d67a2 +SHA512 (nbdkit-1.19.7.tar.gz) = 0dcd78d60fb152122c19a0d9ec77f3be2c4669fa5ce7ed0dc791a13fb9cb3a524d3f601d1485452056b549cef3d871b4db50e91721f6270b4863dea5b9da1477 +SHA512 (nbdkit-1.19.7.tar.gz.sig) = 03bd611bf110cd4cb4fc34adf0780aa33b1b993acd5bd9aa90764a4994013f3ab412408a435757f0c46d49718ff1522b978c7d78fea2a895ba8256fc8cd8e854 From 7f5b53e1d7b6fd19e241907ebbde1ddb569b7d7b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 8 Apr 2020 18:00:00 +0100 Subject: [PATCH 291/683] Disable VDDK on i386, support for VDDK 5.1.1 was removed upstream. --- nbdkit.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 95dbec6..5ba602d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -432,7 +432,7 @@ Suggests: xfsprogs, ntfsprogs, dosfstools This package is a remote temporary filesystem disk plugin for %{name}. -%ifarch %{ix86} x86_64 +%ifarch x86_64 %package vddk-plugin Summary: VMware VDDK plugin for %{name} License: BSD @@ -859,7 +859,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-tmpdisk-plugin.1* -%ifarch %{ix86} x86_64 +%ifarch x86_64 %files vddk-plugin %doc README %license LICENSE @@ -970,6 +970,7 @@ make %{?_smp_mflags} check || { %changelog * Wed Apr 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.7-1 - New upstream version 1.19.7. +- Disable VDDK on i386, support for VDDK 5.1.1 was removed upstream. * Tue Mar 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.6-1 - New upstream version 1.19.6. From db22dd4a9426a98e1ef8ce9467eaf299473c652b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 16 Apr 2020 13:21:03 +0100 Subject: [PATCH 292/683] New upstream version 1.19.8. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5ba602d..3711141 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.7 +Version: 1.19.8 Release: 1%{?dist} Summary: NBD server @@ -968,6 +968,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Apr 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.8-1 +- New upstream version 1.19.8. + * Wed Apr 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.7-1 - New upstream version 1.19.7. - Disable VDDK on i386, support for VDDK 5.1.1 was removed upstream. diff --git a/sources b/sources index 37a0903..cad3481 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.7.tar.gz) = 0dcd78d60fb152122c19a0d9ec77f3be2c4669fa5ce7ed0dc791a13fb9cb3a524d3f601d1485452056b549cef3d871b4db50e91721f6270b4863dea5b9da1477 -SHA512 (nbdkit-1.19.7.tar.gz.sig) = 03bd611bf110cd4cb4fc34adf0780aa33b1b993acd5bd9aa90764a4994013f3ab412408a435757f0c46d49718ff1522b978c7d78fea2a895ba8256fc8cd8e854 +SHA512 (nbdkit-1.19.8.tar.gz) = 928b7fbe30590c32c7b70a14155a4682a5b997a5c7c8d84d88130b62d8d826e6437e2332a39e1479b1b250b7b76c6ee7b75fe6fcf8e9d31f4dec1a9093fe8347 +SHA512 (nbdkit-1.19.8.tar.gz.sig) = 4d8291e7b86a9ba337d7c767f443cb60f85cf43a4f66e8a9f31dd7d5cf4b154be82b57744b4a0d743c9e8991294a44b0d471d972b29f83bb3709a582f668bb64 From a1cacd72334b7d46136a0fae105e7572cb68c042 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 23 Apr 2020 16:50:58 +0100 Subject: [PATCH 293/683] New upstream version 1.19.9. --- nbdkit.spec | 9 ++++++++- sources | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3711141..a7d63f3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.8 +Version: 1.19.9 Release: 1%{?dist} Summary: NBD server @@ -605,9 +605,13 @@ autoreconf -i %build +# Golang bindings are not enabled in the Fedora build since they don't +# need to be. Most people would use them by copying the upstream +# package into their vendor/ directory. %configure \ PYTHON=%{_bindir}/python3 \ --disable-static \ + --disable-golang \ %if 0%{?have_ocaml} --enable-ocaml \ %else @@ -968,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Apr 23 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.9-1 +- New upstream version 1.19.9. + * Thu Apr 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.8-1 - New upstream version 1.19.8. diff --git a/sources b/sources index cad3481..8adfa8c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.8.tar.gz) = 928b7fbe30590c32c7b70a14155a4682a5b997a5c7c8d84d88130b62d8d826e6437e2332a39e1479b1b250b7b76c6ee7b75fe6fcf8e9d31f4dec1a9093fe8347 -SHA512 (nbdkit-1.19.8.tar.gz.sig) = 4d8291e7b86a9ba337d7c767f443cb60f85cf43a4f66e8a9f31dd7d5cf4b154be82b57744b4a0d743c9e8991294a44b0d471d972b29f83bb3709a582f668bb64 +SHA512 (nbdkit-1.19.9.tar.gz) = 292dce12e8421004dbc35c13fc306e586cc0d2885ccc224674fa7bc4134020e80eb117e4f3b19bf28f3507d2bfde6948f8e3c97d6d4a816b08729902c1928e34 +SHA512 (nbdkit-1.19.9.tar.gz.sig) = 00fd19bab1881dc609aede195057ee51a83513994c2681d279e837e1d6c6a92581d3f68bce1eb86111dcf4f1f9193d356610f7ab01c9ebc49a7207fea61cfb1f From f0bcb4bd498449b509b2b842612162e5367b0187 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 24 Apr 2020 20:36:56 +0100 Subject: [PATCH 294/683] New upstream version 1.19.10. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a7d63f3..2f0f45a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.9 +Version: 1.19.10 Release: 1%{?dist} Summary: NBD server @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Apr 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.10-1 +- New upstream version 1.19.10. + * Thu Apr 23 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.9-1 - New upstream version 1.19.9. diff --git a/sources b/sources index 8adfa8c..d8d68c1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.9.tar.gz) = 292dce12e8421004dbc35c13fc306e586cc0d2885ccc224674fa7bc4134020e80eb117e4f3b19bf28f3507d2bfde6948f8e3c97d6d4a816b08729902c1928e34 -SHA512 (nbdkit-1.19.9.tar.gz.sig) = 00fd19bab1881dc609aede195057ee51a83513994c2681d279e837e1d6c6a92581d3f68bce1eb86111dcf4f1f9193d356610f7ab01c9ebc49a7207fea61cfb1f +SHA512 (nbdkit-1.19.10.tar.gz) = f36809950877905e2519367902ae16622b5d6d77ede7ccb868a172777a96c579b46768c06b15579ab12c5efc031d1d9b8b2770c33659044dc7a5be949fe4ddbb +SHA512 (nbdkit-1.19.10.tar.gz.sig) = 23e080cb5ddb3977e4f2b0cf5a59de843484ae9fbf550b6137076ae499577387ea8cc49988e5f608598a235c0844477b12df882972e5cc9f740d1fe253a8f529 From 8cb17624bf632bf387d463cb2c671797819b9e18 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 Apr 2020 20:36:37 +0100 Subject: [PATCH 295/683] New upstream version 1.19.11. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2f0f45a..f324ab1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.10 +Version: 1.19.11 Release: 1%{?dist} Summary: NBD server @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Apr 28 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.11-1 +- New upstream version 1.19.11. + * Fri Apr 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.10-1 - New upstream version 1.19.10. diff --git a/sources b/sources index d8d68c1..2089aa0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.10.tar.gz) = f36809950877905e2519367902ae16622b5d6d77ede7ccb868a172777a96c579b46768c06b15579ab12c5efc031d1d9b8b2770c33659044dc7a5be949fe4ddbb -SHA512 (nbdkit-1.19.10.tar.gz.sig) = 23e080cb5ddb3977e4f2b0cf5a59de843484ae9fbf550b6137076ae499577387ea8cc49988e5f608598a235c0844477b12df882972e5cc9f740d1fe253a8f529 +SHA512 (nbdkit-1.19.11.tar.gz) = 550c39d436724380e17bf6525cbf58a6b5d1f74bb5c26d864e6a2be59dbacae9a48fae5cff38371821c5ddea72643240e2c2c3e84701f97ecbc63c358697021d +SHA512 (nbdkit-1.19.11.tar.gz.sig) = 03eca774ce49de3914fe5335d5213b21ce62ef295ebb8474b4f8c1ae4cad9343a514cf9980832ebc24a519e5cd7fa2634ed4c863712f1d45acc1dc524fbb08e4 From f97a2d6ea065dc15e98656c3286e18f0478682b7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 30 Apr 2020 22:18:00 +0100 Subject: [PATCH 296/683] New upstream version 1.19.12. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f324ab1..a97ae77 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,7 +37,7 @@ ExclusiveArch: x86_64 %global source_directory 1.19-development Name: nbdkit -Version: 1.19.11 +Version: 1.19.12 Release: 1%{?dist} Summary: NBD server @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Apr 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.12-1 +- New upstream version 1.19.12. + * Tue Apr 28 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.11-1 - New upstream version 1.19.11. diff --git a/sources b/sources index 2089aa0..15e442d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.11.tar.gz) = 550c39d436724380e17bf6525cbf58a6b5d1f74bb5c26d864e6a2be59dbacae9a48fae5cff38371821c5ddea72643240e2c2c3e84701f97ecbc63c358697021d -SHA512 (nbdkit-1.19.11.tar.gz.sig) = 03eca774ce49de3914fe5335d5213b21ce62ef295ebb8474b4f8c1ae4cad9343a514cf9980832ebc24a519e5cd7fa2634ed4c863712f1d45acc1dc524fbb08e4 +SHA512 (nbdkit-1.19.12.tar.gz) = 0f38bb7c562eaabf7b4a1f2e327adb8dbfa4793e5d66bf8d1f77cf6c30f632a42f38960936af8f916abea5ac2284ff5a822896c02fe9d9ae841e9503f47406ea +SHA512 (nbdkit-1.19.12.tar.gz.sig) = 6d7b990cb1d027ae4621cc54687687a11a1492926fb5a088c0cf24b32ce033bab431f649b364aa47c83260c9eee9e81023e8bf2d5b78e46bcb3b17035d4750cc From 4e02512ea3b568841a607d492f995246d56a6797 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 2 May 2020 10:24:50 +0100 Subject: [PATCH 297/683] New upstream version 1.20.0. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a97ae77..255ff66 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,10 +34,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.19-development +%global source_directory 1.20-stable Name: nbdkit -Version: 1.19.12 +Version: 1.20.0 Release: 1%{?dist} Summary: NBD server @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat May 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.0-1 +- New upstream version 1.20.0. + * Thu Apr 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.12-1 - New upstream version 1.19.12. diff --git a/sources b/sources index 15e442d..fba62e6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.19.12.tar.gz) = 0f38bb7c562eaabf7b4a1f2e327adb8dbfa4793e5d66bf8d1f77cf6c30f632a42f38960936af8f916abea5ac2284ff5a822896c02fe9d9ae841e9503f47406ea -SHA512 (nbdkit-1.19.12.tar.gz.sig) = 6d7b990cb1d027ae4621cc54687687a11a1492926fb5a088c0cf24b32ce033bab431f649b364aa47c83260c9eee9e81023e8bf2d5b78e46bcb3b17035d4750cc +SHA512 (nbdkit-1.20.0.tar.gz) = e5ff7617c3961bcc981347655acc26f362c87a9e1a543f54b61102e47367d1641507eab5c1974c8e26b0db5021c1dcf9814cd7b43cf3865eea03b4388a1ce647 +SHA512 (nbdkit-1.20.0.tar.gz.sig) = f29edbb5fd20e9252d4953e2a6410fcf1334d20b25d8e8706f954e2e1beccf5ab9e9b0596b5031976a4b2f3c9718d652ee3bb94824a7324ffac64fb93cf04356 From 1c3e016844f2209463b667c292d694ae0874cb10 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 2 May 2020 11:07:42 +0100 Subject: [PATCH 298/683] Upstream patch to fix the --dump-config output. --- ...ver-Fix-binary-in-dump-config-output.patch | 43 +++++++++++++++++++ nbdkit.spec | 7 ++- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 0001-server-Fix-binary-in-dump-config-output.patch diff --git a/0001-server-Fix-binary-in-dump-config-output.patch b/0001-server-Fix-binary-in-dump-config-output.patch new file mode 100644 index 0000000..a35bce5 --- /dev/null +++ b/0001-server-Fix-binary-in-dump-config-output.patch @@ -0,0 +1,43 @@ +From 43f7e07c5b087996ea0c7a80dcf44976d81620be Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 2 May 2020 11:00:33 +0100 +Subject: [PATCH] server: Fix binary in --dump-config output. + +As written this will only work on Linux. On platforms which lack +/proc/self/exe the binary name will be missing in the output. + +Fixes: commit a47857b47b88adbf5054772be4d6746ec08ca16f +--- + server/main.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/server/main.c b/server/main.c +index eb04a174..9dd9d400 100644 +--- a/server/main.c ++++ b/server/main.c +@@ -129,11 +129,10 @@ display_version (void) + } + + static void +-dump_config (const char *argv0) ++dump_config (void) + { +- CLEANUP_FREE char *binary; ++ CLEANUP_FREE char *binary = realpath ("/proc/self/exe", NULL); + +- binary = realpath (argv0, NULL); + if (binary != NULL) + printf ("%s=%s\n", "binary", binary); + printf ("%s=%s\n", "bindir", bindir); +@@ -216,7 +215,7 @@ main (int argc, char *argv[]) + + switch (c) { + case DUMP_CONFIG_OPTION: +- dump_config (argv[0]); ++ dump_config (); + exit (EXIT_SUCCESS); + + case DUMP_PLUGIN_OPTION: +-- +2.25.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 255ff66..4414e41 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.20.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -51,6 +51,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch to fix the --dump-config output. +Patch1: 0001-server-Fix-binary-in-dump-config-output.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -972,7 +975,7 @@ make %{?_smp_mflags} check || { %changelog -* Sat May 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.0-1 +* Sat May 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.0-2 - New upstream version 1.20.0. * Thu Apr 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.19.12-1 From 9ac8ca2741635d151a2572ebbbf398a1d32e3b75 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 4 May 2020 19:08:36 +0100 Subject: [PATCH 299/683] New upstream version 1.20.1. --- nbdkit.spec | 10 +++++----- sources | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4414e41..babdc3a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -37,8 +37,8 @@ ExclusiveArch: x86_64 %global source_directory 1.20-stable Name: nbdkit -Version: 1.20.0 -Release: 2%{?dist} +Version: 1.20.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -51,9 +51,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch to fix the --dump-config output. -Patch1: 0001-server-Fix-binary-in-dump-config-output.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -975,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon May 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.1-2 +- New upstream version 1.20.1. + * Sat May 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.0-2 - New upstream version 1.20.0. diff --git a/sources b/sources index fba62e6..09ada51 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.20.0.tar.gz) = e5ff7617c3961bcc981347655acc26f362c87a9e1a543f54b61102e47367d1641507eab5c1974c8e26b0db5021c1dcf9814cd7b43cf3865eea03b4388a1ce647 -SHA512 (nbdkit-1.20.0.tar.gz.sig) = f29edbb5fd20e9252d4953e2a6410fcf1334d20b25d8e8706f954e2e1beccf5ab9e9b0596b5031976a4b2f3c9718d652ee3bb94824a7324ffac64fb93cf04356 +SHA512 (nbdkit-1.20.1.tar.gz) = d3c1d8bb3c739899303ee20c7375fb2b7126569bf071e4185536aaf776915c69434fbcda09964c9b38b43315a33e11ebd02ac68c7dacfbca676f7431c4d6ca2d +SHA512 (nbdkit-1.20.1.tar.gz.sig) = 9bc993c42b48669ef554a74ca85f36d357432eba8df43d62aa2cee980d6c51c0e69c392aa246c009c0d14d5b89d8fa0b3b0242030363b7e9d94ccb48aae5d47e From cf32d574ac0d856d2065e5c756a37909b04a35c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 4 May 2020 19:09:34 +0100 Subject: [PATCH 300/683] Forgot to remove upstream patch in previous commit. --- ...ver-Fix-binary-in-dump-config-output.patch | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 0001-server-Fix-binary-in-dump-config-output.patch diff --git a/0001-server-Fix-binary-in-dump-config-output.patch b/0001-server-Fix-binary-in-dump-config-output.patch deleted file mode 100644 index a35bce5..0000000 --- a/0001-server-Fix-binary-in-dump-config-output.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 43f7e07c5b087996ea0c7a80dcf44976d81620be Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 2 May 2020 11:00:33 +0100 -Subject: [PATCH] server: Fix binary in --dump-config output. - -As written this will only work on Linux. On platforms which lack -/proc/self/exe the binary name will be missing in the output. - -Fixes: commit a47857b47b88adbf5054772be4d6746ec08ca16f ---- - server/main.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/server/main.c b/server/main.c -index eb04a174..9dd9d400 100644 ---- a/server/main.c -+++ b/server/main.c -@@ -129,11 +129,10 @@ display_version (void) - } - - static void --dump_config (const char *argv0) -+dump_config (void) - { -- CLEANUP_FREE char *binary; -+ CLEANUP_FREE char *binary = realpath ("/proc/self/exe", NULL); - -- binary = realpath (argv0, NULL); - if (binary != NULL) - printf ("%s=%s\n", "binary", binary); - printf ("%s=%s\n", "bindir", bindir); -@@ -216,7 +215,7 @@ main (int argc, char *argv[]) - - switch (c) { - case DUMP_CONFIG_OPTION: -- dump_config (argv[0]); -+ dump_config (); - exit (EXIT_SUCCESS); - - case DUMP_PLUGIN_OPTION: --- -2.25.0 - From 73ab10931b931ade345bb682b106eb83788f4a51 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 5 May 2020 22:09:54 +0100 Subject: [PATCH 301/683] Bump and rebuild for OCaml 4.11.0+dev2-2020-04-22 rebuild. --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index babdc3a..218bfa8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.20.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue May 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.1-2 +- Bump and rebuild for OCaml 4.11.0+dev2-2020-04-22 rebuild. + * Mon May 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.1-2 - New upstream version 1.20.1. From 5f6350a8d8e59a36798d48c96c3df006b1540162 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 May 2020 20:43:49 +0100 Subject: [PATCH 302/683] New upstream development version 1.21.2. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 218bfa8..190816e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -34,11 +34,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.20-stable +%global source_directory 1.21-development Name: nbdkit -Version: 1.20.1 -Release: 2%{?dist} +Version: 1.21.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -972,6 +972,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu May 07 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.2-1 +- New upstream development version 1.21.2. + * Tue May 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.20.1-2 - Bump and rebuild for OCaml 4.11.0+dev2-2020-04-22 rebuild. diff --git a/sources b/sources index 09ada51..4e9c097 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.20.1.tar.gz) = d3c1d8bb3c739899303ee20c7375fb2b7126569bf071e4185536aaf776915c69434fbcda09964c9b38b43315a33e11ebd02ac68c7dacfbca676f7431c4d6ca2d -SHA512 (nbdkit-1.20.1.tar.gz.sig) = 9bc993c42b48669ef554a74ca85f36d357432eba8df43d62aa2cee980d6c51c0e69c392aa246c009c0d14d5b89d8fa0b3b0242030363b7e9d94ccb48aae5d47e +SHA512 (nbdkit-1.21.2.tar.gz) = 88ec488a5071107fb3ae024fd93624605193a10742d2165672c5cff1246475c4313077f69ecdc620d667ef5e1b04cf9d05956cc567ef96fc8d79b1bea07790b0 +SHA512 (nbdkit-1.21.2.tar.gz.sig) = 5a31c2b437f639d2e67c40f2b72a39925d41f477be559df045ad4ecb2b7fd809acfcb54f134ea0138efe554a875c47b08410ebdbc481d887ca5166c2829205a1 From c887509a3ee43ccfee5e593b87cd2c019be6f4c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 8 May 2020 14:47:48 +0100 Subject: [PATCH 303/683] Skip test suite on aarch64 (https://bugzilla.redhat.com/show_bug.cgi?id=1833346) --- nbdkit.spec | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 190816e..407b445 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -19,6 +19,13 @@ # often broken on non-x86_64 arches. %global complete_test_arches x86_64 +# If the test suite is broken on a particular architecture, document +# it as a bug and add it to this list. +# +# aarch64: https://bugzilla.redhat.com/show_bug.cgi?id=1833346 +#global broken_test_arches NONE +%global broken_test_arches aarch64 + %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and # libguestfs was not shipped on POWER (fixed in 7.5). We could in @@ -647,6 +654,7 @@ rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-ext2-plugin.1* %check +%ifnarch %{broken_test_arches} # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt @@ -672,6 +680,7 @@ make %{?_smp_mflags} check || { cat tests/test-suite.log exit 1 } +%endif %if 0%{?have_ocaml} From 7a004c648cbb315a01aaeea8443849711b9a5ddd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 10 May 2020 13:59:21 +0100 Subject: [PATCH 304/683] New upstream development version 1.21.3. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 407b445..edc9910 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.2 +Version: 1.21.3 Release: 1%{?dist} Summary: NBD server @@ -981,6 +981,9 @@ make %{?_smp_mflags} check || { %changelog +* Sun May 10 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.3-1 +- New upstream development version 1.21.3. + * Thu May 07 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.2-1 - New upstream development version 1.21.2. diff --git a/sources b/sources index 4e9c097..106d148 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.2.tar.gz) = 88ec488a5071107fb3ae024fd93624605193a10742d2165672c5cff1246475c4313077f69ecdc620d667ef5e1b04cf9d05956cc567ef96fc8d79b1bea07790b0 -SHA512 (nbdkit-1.21.2.tar.gz.sig) = 5a31c2b437f639d2e67c40f2b72a39925d41f477be559df045ad4ecb2b7fd809acfcb54f134ea0138efe554a875c47b08410ebdbc481d887ca5166c2829205a1 +SHA512 (nbdkit-1.21.3.tar.gz) = 5a73cc56cbbd3af9401c532dee2db24099aa63e5aaa0eb37753c4d8b94f88fd4cb1c597c84e737e13aa1533685911382cde0fdc122d1f29964f946906448cd67 +SHA512 (nbdkit-1.21.3.tar.gz.sig) = 16d197395608737302056ff6fa7bc1bfaa2f473862bf1f99f415838619073e481ebaeaf3fb777cdb8ea4bb8a489bc0ca1ab196ea65499c4ce2fe3ac95f11888f From a77ed1702a7b85754fd122da1098c28fde22dede Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 19 May 2020 18:13:07 +0100 Subject: [PATCH 305/683] New upstream development version 1.21.4. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index edc9910..12beddc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.3 +Version: 1.21.4 Release: 1%{?dist} Summary: NBD server @@ -981,6 +981,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue May 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.4-1 +- New upstream development version 1.21.4. + * Sun May 10 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.3-1 - New upstream development version 1.21.3. diff --git a/sources b/sources index 106d148..8e5ec3f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.3.tar.gz) = 5a73cc56cbbd3af9401c532dee2db24099aa63e5aaa0eb37753c4d8b94f88fd4cb1c597c84e737e13aa1533685911382cde0fdc122d1f29964f946906448cd67 -SHA512 (nbdkit-1.21.3.tar.gz.sig) = 16d197395608737302056ff6fa7bc1bfaa2f473862bf1f99f415838619073e481ebaeaf3fb777cdb8ea4bb8a489bc0ca1ab196ea65499c4ce2fe3ac95f11888f +SHA512 (nbdkit-1.21.4.tar.gz) = fd0865b33975df3d3851b9da3ac78d098e4491fc679f4a4c5c82c4952a6e3b7d581a10a81f5bf2d523c9c2663688385ebdf1eb533ca5e05b2f25674ac28987ff +SHA512 (nbdkit-1.21.4.tar.gz.sig) = 166b0f842a548c1a22eff2f3f0c03c456114e2eba44e5c5be2fa2e12546fc19d2716fa05c8e78f57ccee7711ef6ea29ed7854f55566f459537d0f44203293473 From 1da65fc037b049cb56c1343eea38510ff068f844 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 20 May 2020 16:06:27 +0100 Subject: [PATCH 306/683] Add upstream patch to make tests/test-truncate4.sh more stable on s390x. --- ...st-truncate4.sh-Rewrite-to-use-nbdsh.patch | 167 ++++++++++++++++++ nbdkit.spec | 8 +- 2 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch diff --git a/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch b/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch new file mode 100644 index 0000000..cd6bf8f --- /dev/null +++ b/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch @@ -0,0 +1,167 @@ +From 0632acc76bfeb7d70d3eefa42fc842ce6b7be4f8 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 20 May 2020 13:27:27 +0100 +Subject: [PATCH] tests/test-truncate4.sh: Rewrite to use nbdsh. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The old test relied on issuing an asynchronous command to a qemu-io +subprocess, requiring a sleep to ensure that the command had been +carried out. ‘sleep 1’ was not long enough on s390x as you can see +from this partial trace: + + + exec + + qemu-io -f raw nbd:unix:/tmp/tmp.jqOZGj6dnX + + exec + + echo 'Reading from connection A, try 1' + Reading from connection A, try 1 + + echo 'r -P 1 0 1024' + + sleep 1 + +Above we issue the command and sleep while it executes. However: + + nbdkit: debug: accepted connection + nbdkit: file[1]: debug: truncate: preconnect + nbdkit: file[1]: debug: file: preconnect + nbdkit: file[1]: debug: newstyle negotiation: flags: global 0x3 + + echo 'Resizing down' + Resizing down + + truncate -s 512 truncate4.data + nbdkit: file[1]: debug: newstyle negotiation: client flags: 0x3 + nbdkit: file[1]: debug: newstyle negotiation: NBD_OPT_STRUCTURED_REPLY: client requested structured replies + +Here are still connecting to nbdkit from "connection A", long after +the sleep has finished and the truncate has been done. + +Instead of increasing the sleep and hoping for the best, I chose to +rewrite the test to use nbdsh. This allows us to control both +connections from a single process, making the test predicatable and +easier to understand. +--- + tests/test-truncate4.sh | 85 +++++++++++++++++++++++++---------------- + 1 file changed, 53 insertions(+), 32 deletions(-) + +diff --git a/tests/test-truncate4.sh b/tests/test-truncate4.sh +index e4be626b..36b2743c 100755 +--- a/tests/test-truncate4.sh ++++ b/tests/test-truncate4.sh +@@ -1,6 +1,6 @@ + #!/usr/bin/env bash + # nbdkit +-# Copyright (C) 2019 Red Hat Inc. ++# Copyright (C) 2019-2020 Red Hat Inc. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are +@@ -31,55 +31,76 @@ + # SUCH DAMAGE. + + # Regression test when next_ops->get_size changes between connections. ++# + # For now, NBD does not support dynamic resize; but the file plugin + # reads size from the file system for each new connection, at which + # point the client remembers that size for the life of the connection. ++# + # We are testing that connection A can still see the tail of a file, + # even when connection B is opened while the file was temporarily +-# shorter (if the actions of connection B affect the size visible +-# through connection A, we didn't isolate per-connection state). ++# shorter. If the actions of connection B affect the size visible ++# through connection A, we didn't isolate per-connection state. + + source ./functions.sh + set -e + set -x + +-requires qemu-io --version ++requires nbdsh --version + + sock=`mktemp -u` +-files="truncate4.out truncate4.pid $sock truncate4.data" ++data=truncate4.data ++files="truncate4.pid $sock $data" + rm -f $files + cleanup_fn rm -f $files + +-# Initial file contents: 1k of pattern 1 +-truncate -s 1024 truncate4.data +-qemu-io -c 'w -P 1 0 1024' -f raw truncate4.data ++# Create and truncate the file. ++: > $data + + # Run nbdkit with file plugin and truncate filter in front. + start_nbdkit -P truncate4.pid -U $sock \ + --filter=truncate \ +- file truncate4.data \ ++ file $data \ + round-up=1024 + +-fail=0 +-exec 4>&1 # Save original stdout +-{ +- exec 5>&1 >&4 # Save connection A, set stdout back to original +- echo 'Reading from connection A, try 1' +- echo 'r -P 1 0 1024' >&5 +- sleep 1 +- echo 'Resizing down' +- truncate -s 512 truncate4.data +- echo 'Reading from connection B' +- echo 'r -P 1 0 512' | qemu-io -f raw nbd:unix:$sock >> truncate4.out +- echo 'Restoring size' +- truncate -s 1024 truncate4.data +- qemu-io -c 'w -P 2 0 1024' -f raw truncate4.data +- echo 'Reading from connection A, try 2' +- echo 'r -P 2 512 512' >&5 +- echo 'quit' >&5 +-} | qemu-io -f raw nbd:unix:$sock >> truncate4.out || fail=1 +-exec 4>&- +- +-cat truncate4.out +-grep 'Pattern verification failed' truncate4.out && fail=1 +-exit $fail ++export data sock ++nbdsh -c ' ++import os ++ ++data = os.environ["data"] ++sock = os.environ["sock"] ++ ++def restore_file(): ++ # Original test data, 1024 bytes of "TEST" repeated. ++ with open (data, "w") as file: ++ file.write ("TEST"*256) ++ ++restore_file () ++ ++print ("Connection A.", flush=True) ++connA = nbd.NBD () ++connA.set_handle_name ("A") ++connA.connect_unix (sock) ++print ("Check the size.", flush=True) ++assert connA.get_size () == 1024 ++ ++print ("Truncate %s to 512 bytes." % data, flush=True) ++os.truncate (data, 512) ++ ++print ("Connection B.", flush=True) ++connB = nbd.NBD () ++connB.set_handle_name ("B") ++connB.connect_unix (sock) ++print ("Check the size.", flush=True) ++assert connB.get_size () == 1024 # because of the round-up parameter ++print ("Read data from connection B.", flush=True) ++buf = connB.pread (1024, 0) ++assert buf == b"TEST"*128 + b"\0"*512 ++ ++print ("Restore the file size and original data.", flush=True) ++restore_file () ++ ++print ("Read data from connection A.", flush=True) ++buf = connA.pread (1024, 0) ++assert 1024 == len (buf) ++assert buf == b"TEST"*256 ++' +-- +2.25.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 12beddc..8b6397b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -58,6 +58,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch to make tests/test-truncate4.sh more stable on s390x. +Patch1: 0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -981,6 +984,9 @@ make %{?_smp_mflags} check || { %changelog +* Wed May 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.4-2 +- Add upstream patch to make tests/test-truncate4.sh more stable on s390x. + * Tue May 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.4-1 - New upstream development version 1.21.4. From be87a1d07c9d3034592de653435decf2d232fcb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz> Date: Tue, 26 May 2020 02:53:48 +0200 Subject: [PATCH 307/683] Rebuilt for Python 3.9 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8b6397b..4804054 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -984,6 +984,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.21.4-3 +- Rebuilt for Python 3.9 + * Wed May 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.4-2 - Add upstream patch to make tests/test-truncate4.sh more stable on s390x. From 40ac24d0d5ad80902c8f740fda688ce01cd28e6d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 30 May 2020 11:14:26 +0100 Subject: [PATCH 308/683] New upstream development version 1.21.5. --- ...st-truncate4.sh-Rewrite-to-use-nbdsh.patch | 167 ------------------ nbdkit.spec | 6 +- sources | 4 +- 3 files changed, 5 insertions(+), 172 deletions(-) delete mode 100644 0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch diff --git a/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch b/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch deleted file mode 100644 index cd6bf8f..0000000 --- a/0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 0632acc76bfeb7d70d3eefa42fc842ce6b7be4f8 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 20 May 2020 13:27:27 +0100 -Subject: [PATCH] tests/test-truncate4.sh: Rewrite to use nbdsh. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The old test relied on issuing an asynchronous command to a qemu-io -subprocess, requiring a sleep to ensure that the command had been -carried out. ‘sleep 1’ was not long enough on s390x as you can see -from this partial trace: - - + exec - + qemu-io -f raw nbd:unix:/tmp/tmp.jqOZGj6dnX - + exec - + echo 'Reading from connection A, try 1' - Reading from connection A, try 1 - + echo 'r -P 1 0 1024' - + sleep 1 - -Above we issue the command and sleep while it executes. However: - - nbdkit: debug: accepted connection - nbdkit: file[1]: debug: truncate: preconnect - nbdkit: file[1]: debug: file: preconnect - nbdkit: file[1]: debug: newstyle negotiation: flags: global 0x3 - + echo 'Resizing down' - Resizing down - + truncate -s 512 truncate4.data - nbdkit: file[1]: debug: newstyle negotiation: client flags: 0x3 - nbdkit: file[1]: debug: newstyle negotiation: NBD_OPT_STRUCTURED_REPLY: client requested structured replies - -Here are still connecting to nbdkit from "connection A", long after -the sleep has finished and the truncate has been done. - -Instead of increasing the sleep and hoping for the best, I chose to -rewrite the test to use nbdsh. This allows us to control both -connections from a single process, making the test predicatable and -easier to understand. ---- - tests/test-truncate4.sh | 85 +++++++++++++++++++++++++---------------- - 1 file changed, 53 insertions(+), 32 deletions(-) - -diff --git a/tests/test-truncate4.sh b/tests/test-truncate4.sh -index e4be626b..36b2743c 100755 ---- a/tests/test-truncate4.sh -+++ b/tests/test-truncate4.sh -@@ -1,6 +1,6 @@ - #!/usr/bin/env bash - # nbdkit --# Copyright (C) 2019 Red Hat Inc. -+# Copyright (C) 2019-2020 Red Hat Inc. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are -@@ -31,55 +31,76 @@ - # SUCH DAMAGE. - - # Regression test when next_ops->get_size changes between connections. -+# - # For now, NBD does not support dynamic resize; but the file plugin - # reads size from the file system for each new connection, at which - # point the client remembers that size for the life of the connection. -+# - # We are testing that connection A can still see the tail of a file, - # even when connection B is opened while the file was temporarily --# shorter (if the actions of connection B affect the size visible --# through connection A, we didn't isolate per-connection state). -+# shorter. If the actions of connection B affect the size visible -+# through connection A, we didn't isolate per-connection state. - - source ./functions.sh - set -e - set -x - --requires qemu-io --version -+requires nbdsh --version - - sock=`mktemp -u` --files="truncate4.out truncate4.pid $sock truncate4.data" -+data=truncate4.data -+files="truncate4.pid $sock $data" - rm -f $files - cleanup_fn rm -f $files - --# Initial file contents: 1k of pattern 1 --truncate -s 1024 truncate4.data --qemu-io -c 'w -P 1 0 1024' -f raw truncate4.data -+# Create and truncate the file. -+: > $data - - # Run nbdkit with file plugin and truncate filter in front. - start_nbdkit -P truncate4.pid -U $sock \ - --filter=truncate \ -- file truncate4.data \ -+ file $data \ - round-up=1024 - --fail=0 --exec 4>&1 # Save original stdout --{ -- exec 5>&1 >&4 # Save connection A, set stdout back to original -- echo 'Reading from connection A, try 1' -- echo 'r -P 1 0 1024' >&5 -- sleep 1 -- echo 'Resizing down' -- truncate -s 512 truncate4.data -- echo 'Reading from connection B' -- echo 'r -P 1 0 512' | qemu-io -f raw nbd:unix:$sock >> truncate4.out -- echo 'Restoring size' -- truncate -s 1024 truncate4.data -- qemu-io -c 'w -P 2 0 1024' -f raw truncate4.data -- echo 'Reading from connection A, try 2' -- echo 'r -P 2 512 512' >&5 -- echo 'quit' >&5 --} | qemu-io -f raw nbd:unix:$sock >> truncate4.out || fail=1 --exec 4>&- -- --cat truncate4.out --grep 'Pattern verification failed' truncate4.out && fail=1 --exit $fail -+export data sock -+nbdsh -c ' -+import os -+ -+data = os.environ["data"] -+sock = os.environ["sock"] -+ -+def restore_file(): -+ # Original test data, 1024 bytes of "TEST" repeated. -+ with open (data, "w") as file: -+ file.write ("TEST"*256) -+ -+restore_file () -+ -+print ("Connection A.", flush=True) -+connA = nbd.NBD () -+connA.set_handle_name ("A") -+connA.connect_unix (sock) -+print ("Check the size.", flush=True) -+assert connA.get_size () == 1024 -+ -+print ("Truncate %s to 512 bytes." % data, flush=True) -+os.truncate (data, 512) -+ -+print ("Connection B.", flush=True) -+connB = nbd.NBD () -+connB.set_handle_name ("B") -+connB.connect_unix (sock) -+print ("Check the size.", flush=True) -+assert connB.get_size () == 1024 # because of the round-up parameter -+print ("Read data from connection B.", flush=True) -+buf = connB.pread (1024, 0) -+assert buf == b"TEST"*128 + b"\0"*512 -+ -+print ("Restore the file size and original data.", flush=True) -+restore_file () -+ -+print ("Read data from connection A.", flush=True) -+buf = connA.pread (1024, 0) -+assert 1024 == len (buf) -+assert buf == b"TEST"*256 -+' --- -2.25.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 4804054..be9ad93 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -58,9 +58,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch to make tests/test-truncate4.sh more stable on s390x. -Patch1: 0001-tests-test-truncate4.sh-Rewrite-to-use-nbdsh.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -984,6 +981,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat May 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.5-1 +- New upstream development version 1.21.5. + * Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.21.4-3 - Rebuilt for Python 3.9 diff --git a/sources b/sources index 8e5ec3f..ecd1e13 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.4.tar.gz) = fd0865b33975df3d3851b9da3ac78d098e4491fc679f4a4c5c82c4952a6e3b7d581a10a81f5bf2d523c9c2663688385ebdf1eb533ca5e05b2f25674ac28987ff -SHA512 (nbdkit-1.21.4.tar.gz.sig) = 166b0f842a548c1a22eff2f3f0c03c456114e2eba44e5c5be2fa2e12546fc19d2716fa05c8e78f57ccee7711ef6ea29ed7854f55566f459537d0f44203293473 +SHA512 (nbdkit-1.21.5.tar.gz) = ccd3d4fe4acbc2756ebaebd8c2fd186ed3620ecff813abd7e50c4262aa453cee0f9e1e0120434d0daa0d70d3f512bb568fceb36dfebb2b247633ee12f7411993 +SHA512 (nbdkit-1.21.5.tar.gz.sig) = 7e10439b82b34e78689bff8c3f6cb09bdbb546457342a287bfb41e2e80de0a1be24e333ca14a8c497115e0136edb665285bf2265d6733462d6a28a778620f139 From 6c884be23172653a8e1d32c5ce3a2fdf0926c415 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 30 May 2020 11:15:57 +0100 Subject: [PATCH 309/683] Update version and release. Forgotten in previous commit. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index be9ad93..ae7400b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.4 -Release: 3%{?dist} +Version: 1.21.5 +Release: 1%{?dist} Summary: NBD server License: BSD From 77b3ff4625748932ebf975e70c73a400cdd3c1bc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 30 May 2020 11:25:18 +0100 Subject: [PATCH 310/683] Add ddrescue filter. --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index ae7400b..ea4f994 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -462,6 +462,7 @@ Provides: %{name}-blocksize-filter = %{version}-%{release} Provides: %{name}-cache-filter = %{version}-%{release} Provides: %{name}-cacheextents-filter = %{version}-%{release} Provides: %{name}-cow-filter = %{version}-%{release} +Provides: %{name}-ddrescue-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} Provides: %{name}-exitlast-filter = %{version}-%{release} @@ -496,6 +497,8 @@ nbdkit-cacheextents-filter Cache extents. nbdkit-cow-filter Copy-on-write overlay for read-only plugins. +nbdkit-ddrescue-filter Filter for serving from ddrescue dump. + nbdkit-delay-filter Inject read and write delays. nbdkit-error-filter Inject errors. @@ -888,6 +891,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so +%{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so @@ -912,6 +916,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cacheextents-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* +%{_mandir}/man1/nbdkit-ddrescue-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-exitlast-filter.1* @@ -983,6 +988,7 @@ make %{?_smp_mflags} check || { %changelog * Sat May 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.5-1 - New upstream development version 1.21.5. +- New ddrescue filter. * Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.21.4-3 - Rebuilt for Python 3.9 From 93bb8790676b5e85c0c6acadc7bea1ce37a8c17f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 30 May 2020 11:47:34 +0100 Subject: [PATCH 311/683] Remove "trivial" from descriptions of basic plugins/filters. --- nbdkit.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ea4f994..bf1a9dc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -134,7 +134,7 @@ The key features are: * Filters can be stacked in front of plugins to transform the output. In Fedora, '%{name}' is a meta-package which pulls in the core server -and a useful subset of plugins and filters. +and a useful subset of plugins and filters with minimal dependencies. If you want just the server, install '%{name}-server'. @@ -174,8 +174,9 @@ Provides: %{name}-zero-plugin = %{version}-%{release} %description basic-plugins -This package contains some basic plugins for %{name} which have only -trivial dependencies. +This package contains plugins for %{name} which only depend on +glibc and gnutls. Other plugins for nbdkit with more complex +dependencies are packaged separately. nbdkit-data-plugin Serve small amounts of data from the command line. @@ -486,8 +487,9 @@ Provides: %{name}-truncate-filter = %{version}-%{release} %description basic-filters -This package contains some basic filters for %{name} which have only -trivial dependencies. +This package contains filters for %{name} which only depend on +glibc and gnutls. Other filters for nbdkit with more complex +dependencies are packaged separately. nbdkit-blocksize-filter Adjust block size of requests sent to plugins. From 77f25d83f70bcb357e548862429ee538a949f5e3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Jun 2020 17:54:44 +0100 Subject: [PATCH 312/683] New upstream development version 1.21.6. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bf1a9dc..47f3078 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.5 +Version: 1.21.6 Release: 1%{?dist} Summary: NBD server @@ -988,6 +988,9 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jun 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.6-1 +- New upstream development version 1.21.6. + * Sat May 30 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.5-1 - New upstream development version 1.21.5. - New ddrescue filter. diff --git a/sources b/sources index ecd1e13..c26dfa1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.5.tar.gz) = ccd3d4fe4acbc2756ebaebd8c2fd186ed3620ecff813abd7e50c4262aa453cee0f9e1e0120434d0daa0d70d3f512bb568fceb36dfebb2b247633ee12f7411993 -SHA512 (nbdkit-1.21.5.tar.gz.sig) = 7e10439b82b34e78689bff8c3f6cb09bdbb546457342a287bfb41e2e80de0a1be24e333ca14a8c497115e0136edb665285bf2265d6733462d6a28a778620f139 +SHA512 (nbdkit-1.21.6.tar.gz) = fabd875113880f3bc38937bf3a7b0f88548168ac0d628d9a6f07f224471d02e893ae5cf0178e2822319331e18024641d954e2110ab22d82a4d0fcb5e43f25597 +SHA512 (nbdkit-1.21.6.tar.gz.sig) = 1abb8316d90046466eb91e5581b4996992ffa8c78617690c7099569ccc7e1a856d8e2d8622291546f6a2c7090f77a81dfb9dda6be2a1adbcfe6d2a734ba765bd From 6dc40625ea2aa399207b55fc4655f8bc6950e39d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Jun 2020 14:09:52 +0100 Subject: [PATCH 313/683] New upstream development version 1.21.7. New nbdkit-cc-plugin subpackage. --- nbdkit.spec | 29 ++++++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 47f3078..3d1713e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.6 +Version: 1.21.7 Release: 1%{?dist} Summary: NBD server @@ -65,6 +65,7 @@ BuildRequires: autoconf, automake, libtool %ifnarch %{complete_test_arches} BuildRequires: autoconf, automake, libtool %endif +BuildRequires: gcc, gcc-c++ BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel BuildRequires: libselinux-devel @@ -225,6 +226,21 @@ This package contains example plugins for %{name}. # The plugins below have non-trivial dependencies are so are # packaged separately. +%package cc-plugin +Summary: Write small inline C plugins and scripts for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: gcc +Requires: %{_bindir}/cat + + +%description cc-plugin +This package contains support for writing inline C plugins and scripts +for %{name}. NOTE this is NOT the right package for writing plugins +in C, install %{name}-devel for that. + + %package curl-plugin Summary: HTTP/FTP (cURL) plugin for %{name} License: BSD @@ -764,6 +780,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-curl-plugin.1* +%files cc-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-cc-plugin.so +%{_mandir}/man1/nbdkit-cc-plugin.1* + + %if 0%{?have_libguestfs} %files guestfs-plugin %doc README @@ -988,6 +1011,10 @@ make %{?_smp_mflags} check || { %changelog +* Thu Jun 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.7-1 +- New upstream development version 1.21.7. +- New nbdkit-cc-plugin subpackage. + * Tue Jun 2 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.6-1 - New upstream development version 1.21.6. diff --git a/sources b/sources index c26dfa1..c04cc7f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.6.tar.gz) = fabd875113880f3bc38937bf3a7b0f88548168ac0d628d9a6f07f224471d02e893ae5cf0178e2822319331e18024641d954e2110ab22d82a4d0fcb5e43f25597 -SHA512 (nbdkit-1.21.6.tar.gz.sig) = 1abb8316d90046466eb91e5581b4996992ffa8c78617690c7099569ccc7e1a856d8e2d8622291546f6a2c7090f77a81dfb9dda6be2a1adbcfe6d2a734ba765bd +SHA512 (nbdkit-1.21.7.tar.gz) = dc3c324895c11ebba7cd3e7b10351e3d3567ae773b81c2abc4f3593a128a5a41cb6ae0d53929410bb9306c4281f11224dfe841fc6f29f92b3af964e36a93252d +SHA512 (nbdkit-1.21.7.tar.gz.sig) = 05e99ec5bd24dd2416f0a20ca4013c5bbe526a7b804e78a25e44dfe9eb6aa2e191446aefce23b98e93b10b9ddea5e210629c7fd6cbe630a5fc2bb16cf6ceb9df From 5e53df9dbc28c24c825fb2dc79ee1c10f39bc520 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Jun 2020 14:18:37 +0100 Subject: [PATCH 314/683] Fix section of nbdkit-cc-plugin man page. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3d1713e..1d0a5ea 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -784,7 +784,7 @@ make %{?_smp_mflags} check || { %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-cc-plugin.so -%{_mandir}/man1/nbdkit-cc-plugin.1* +%{_mandir}/man3/nbdkit-cc-plugin.3* %if 0%{?have_libguestfs} From 18f635cb34df46b10ea93105a1fa4bea011865ba Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Jun 2020 14:31:33 +0100 Subject: [PATCH 315/683] Add upstream patches to fix cc plugin. --- ...ed-to-DCFLAGS-rather-than-in-the-plu.patch | 48 ++++++++++++++++++ ...nst-local-nbdkit-plugin.h-not-instal.patch | 49 +++++++++++++++++++ nbdkit.spec | 6 ++- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch create mode 100644 0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch diff --git a/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch b/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch new file mode 100644 index 0000000..5a37201 --- /dev/null +++ b/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch @@ -0,0 +1,48 @@ +From 1271945aa9144090f9c74c1915c4c1d431344df3 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 4 Jun 2020 14:13:46 +0100 +Subject: [PATCH 1/2] cc: Add -fPIC -shared to -DCFLAGS rather than in the + plugin. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the output of ‘nbdkit cc --dump-plugin’ so it matches the +documentation, and it's slightly cleaner than doing this munging in +the cc plugin source code. + +Fixes: commit a4339e3c3c17d8b95ddf0b20cf015de5078620ec +--- + plugins/cc/Makefile.am | 2 +- + plugins/cc/cc.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/cc/Makefile.am b/plugins/cc/Makefile.am +index 6b02e891..d7e709f8 100644 +--- a/plugins/cc/Makefile.am ++++ b/plugins/cc/Makefile.am +@@ -42,7 +42,7 @@ nbdkit_cc_plugin_la_SOURCES = \ + + nbdkit_cc_plugin_la_CPPFLAGS = \ + -DCC="\"$(CC)\"" \ +- -DCFLAGS="\"$(CFLAGS)\"" \ ++ -DCFLAGS="\"$(CFLAGS) -fPIC -shared\"" \ + -I$(top_srcdir)/common/utils \ + -I$(top_srcdir)/include \ + -I. \ +diff --git a/plugins/cc/cc.c b/plugins/cc/cc.c +index 2139cf62..e55c5e76 100644 +--- a/plugins/cc/cc.c ++++ b/plugins/cc/cc.c +@@ -53,7 +53,7 @@ static bool unlink_on_exit = false; + + /* C compiler and flags. */ + static const char *cc = CC; +-static const char *cflags = CFLAGS " -fPIC -shared"; ++static const char *cflags = CFLAGS; + static const char *extra_cflags; + + /* List of parameters for the subplugin. */ +-- +2.25.0 + diff --git a/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch b/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch new file mode 100644 index 0000000..2662f6e --- /dev/null +++ b/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch @@ -0,0 +1,49 @@ +From 28e66a6f4999ed7edf51ca268d6831f3d11dcb2e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 4 Jun 2020 14:28:51 +0100 +Subject: [PATCH 2/2] cc: Run test against local <nbdkit-plugin.h>, not + installed. + +The problem was revealed when trying to compile nbdkit 1.21.7 in +Fedora Koji. + +Fixes: commit a4339e3c3c17d8b95ddf0b20cf015de5078620ec +--- + plugins/cc/nbdkit-cc-plugin.pod | 5 +++-- + tests/test-shebang-cc.sh | 1 + + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod +index c8ef3950..ecd7a81e 100644 +--- a/plugins/cc/nbdkit-cc-plugin.pod ++++ b/plugins/cc/nbdkit-cc-plugin.pod +@@ -27,11 +27,12 @@ L<nbdkit-plugin(3)>. + Simple plugins from the nbdkit source tree can be compiled and run + directly using commands such as: + +- $ nbdkit cc plugins/example1/example1.c EXTRA_CFLAGS="-I." ++ $ nbdkit cc plugins/example1/example1.c EXTRA_CFLAGS="-I. -Iinclude" + + You can also read the source from stdin using C<->: + +- $ nbdkit cc - EXTRA_CFLAGS="-I." < plugins/example1/example1.c ++ $ nbdkit cc - EXTRA_CFLAGS="-I. -Iinclude" \ ++ < plugins/example1/example1.c + + To replace the compiler flags: + +diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh +index 7f15ebff..83d9815e 100755 +--- a/tests/test-shebang-cc.sh ++++ b/tests/test-shebang-cc.sh +@@ -45,6 +45,7 @@ fi + requires guestfish --version + + $script -fv -U - \ ++ EXTRA_CFLAGS="-I$SRCDIR/../include" \ + --run ' + guestfish \ + add "" protocol:nbd server:unix:$unixsocket : \ +-- +2.25.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 1d0a5ea..7eedd2e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,7 +38,7 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.21-development @@ -58,6 +58,10 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patches that fix the cc plugin. +Patch1: 0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch +Patch2: 0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From 6709b91c1bbaf848e12ad20288c9f1ba036ba130 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Jun 2020 14:18:51 +0100 Subject: [PATCH 316/683] New upstream development version 1.21.8. Remove upstream patches. --- ...ed-to-DCFLAGS-rather-than-in-the-plu.patch | 48 ------------------ ...nst-local-nbdkit-plugin.h-not-instal.patch | 49 ------------------- nbdkit.spec | 12 ++--- sources | 4 +- 4 files changed, 8 insertions(+), 105 deletions(-) delete mode 100644 0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch delete mode 100644 0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch diff --git a/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch b/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch deleted file mode 100644 index 5a37201..0000000 --- a/0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 1271945aa9144090f9c74c1915c4c1d431344df3 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 4 Jun 2020 14:13:46 +0100 -Subject: [PATCH 1/2] cc: Add -fPIC -shared to -DCFLAGS rather than in the - plugin. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes the output of ‘nbdkit cc --dump-plugin’ so it matches the -documentation, and it's slightly cleaner than doing this munging in -the cc plugin source code. - -Fixes: commit a4339e3c3c17d8b95ddf0b20cf015de5078620ec ---- - plugins/cc/Makefile.am | 2 +- - plugins/cc/cc.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/plugins/cc/Makefile.am b/plugins/cc/Makefile.am -index 6b02e891..d7e709f8 100644 ---- a/plugins/cc/Makefile.am -+++ b/plugins/cc/Makefile.am -@@ -42,7 +42,7 @@ nbdkit_cc_plugin_la_SOURCES = \ - - nbdkit_cc_plugin_la_CPPFLAGS = \ - -DCC="\"$(CC)\"" \ -- -DCFLAGS="\"$(CFLAGS)\"" \ -+ -DCFLAGS="\"$(CFLAGS) -fPIC -shared\"" \ - -I$(top_srcdir)/common/utils \ - -I$(top_srcdir)/include \ - -I. \ -diff --git a/plugins/cc/cc.c b/plugins/cc/cc.c -index 2139cf62..e55c5e76 100644 ---- a/plugins/cc/cc.c -+++ b/plugins/cc/cc.c -@@ -53,7 +53,7 @@ static bool unlink_on_exit = false; - - /* C compiler and flags. */ - static const char *cc = CC; --static const char *cflags = CFLAGS " -fPIC -shared"; -+static const char *cflags = CFLAGS; - static const char *extra_cflags; - - /* List of parameters for the subplugin. */ --- -2.25.0 - diff --git a/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch b/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch deleted file mode 100644 index 2662f6e..0000000 --- a/0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 28e66a6f4999ed7edf51ca268d6831f3d11dcb2e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 4 Jun 2020 14:28:51 +0100 -Subject: [PATCH 2/2] cc: Run test against local <nbdkit-plugin.h>, not - installed. - -The problem was revealed when trying to compile nbdkit 1.21.7 in -Fedora Koji. - -Fixes: commit a4339e3c3c17d8b95ddf0b20cf015de5078620ec ---- - plugins/cc/nbdkit-cc-plugin.pod | 5 +++-- - tests/test-shebang-cc.sh | 1 + - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod -index c8ef3950..ecd7a81e 100644 ---- a/plugins/cc/nbdkit-cc-plugin.pod -+++ b/plugins/cc/nbdkit-cc-plugin.pod -@@ -27,11 +27,12 @@ L<nbdkit-plugin(3)>. - Simple plugins from the nbdkit source tree can be compiled and run - directly using commands such as: - -- $ nbdkit cc plugins/example1/example1.c EXTRA_CFLAGS="-I." -+ $ nbdkit cc plugins/example1/example1.c EXTRA_CFLAGS="-I. -Iinclude" - - You can also read the source from stdin using C<->: - -- $ nbdkit cc - EXTRA_CFLAGS="-I." < plugins/example1/example1.c -+ $ nbdkit cc - EXTRA_CFLAGS="-I. -Iinclude" \ -+ < plugins/example1/example1.c - - To replace the compiler flags: - -diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh -index 7f15ebff..83d9815e 100755 ---- a/tests/test-shebang-cc.sh -+++ b/tests/test-shebang-cc.sh -@@ -45,6 +45,7 @@ fi - requires guestfish --version - - $script -fv -U - \ -+ EXTRA_CFLAGS="-I$SRCDIR/../include" \ - --run ' - guestfish \ - add "" protocol:nbd server:unix:$unixsocket : \ --- -2.25.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 7eedd2e..6b97970 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,13 +38,13 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.21-development Name: nbdkit -Version: 1.21.7 +Version: 1.21.8 Release: 1%{?dist} Summary: NBD server @@ -58,10 +58,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patches that fix the cc plugin. -Patch1: 0001-cc-Add-fPIC-shared-to-DCFLAGS-rather-than-in-the-plu.patch -Patch2: 0002-cc-Run-test-against-local-nbdkit-plugin.h-not-instal.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -1015,6 +1011,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jun 9 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.8-1 +- New upstream development version 1.21.8. +- Remove upstream patches. + * Thu Jun 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.7-1 - New upstream development version 1.21.7. - New nbdkit-cc-plugin subpackage. diff --git a/sources b/sources index c04cc7f..84adbd4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.7.tar.gz) = dc3c324895c11ebba7cd3e7b10351e3d3567ae773b81c2abc4f3593a128a5a41cb6ae0d53929410bb9306c4281f11224dfe841fc6f29f92b3af964e36a93252d -SHA512 (nbdkit-1.21.7.tar.gz.sig) = 05e99ec5bd24dd2416f0a20ca4013c5bbe526a7b804e78a25e44dfe9eb6aa2e191446aefce23b98e93b10b9ddea5e210629c7fd6cbe630a5fc2bb16cf6ceb9df +SHA512 (nbdkit-1.21.8.tar.gz) = 94d118c544e3375814d31375b6bafa27949d9b40ba9a3b75b88afb62fee56554dba6ead54100e6034ffebad785ce8d4f5fe4eed6a7cb042f23dc294a32188836 +SHA512 (nbdkit-1.21.8.tar.gz.sig) = 3f43ba509e78c5824e412b1024aacc6ac47ead95d2abc55057112d37d1325268509405db23961087f475ff41e41c229e89f0e0a4bc6a05c4a599ae49860f5096 From 7756b3ec30ca16a72996afa7d9561dbb688d3982 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 14 Jun 2020 12:36:00 +0100 Subject: [PATCH 317/683] New upstream development version 1.21.9. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6b97970..3f9de51 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.8 +Version: 1.21.9 Release: 1%{?dist} Summary: NBD server @@ -1011,6 +1011,9 @@ make %{?_smp_mflags} check || { %changelog +* Sun Jun 14 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.9-1 +- New upstream development version 1.21.9. + * Tue Jun 9 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.8-1 - New upstream development version 1.21.8. - Remove upstream patches. diff --git a/sources b/sources index 84adbd4..5454a8d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.8.tar.gz) = 94d118c544e3375814d31375b6bafa27949d9b40ba9a3b75b88afb62fee56554dba6ead54100e6034ffebad785ce8d4f5fe4eed6a7cb042f23dc294a32188836 -SHA512 (nbdkit-1.21.8.tar.gz.sig) = 3f43ba509e78c5824e412b1024aacc6ac47ead95d2abc55057112d37d1325268509405db23961087f475ff41e41c229e89f0e0a4bc6a05c4a599ae49860f5096 +SHA512 (nbdkit-1.21.9.tar.gz) = dd2934a55670c8e07cc92edd3d08d7d69ca1e88cf02f677ae613e336f1e978407c4d3237e29cadf47e14cd250dcd5a590c1e75da3336412247d03f0d42828c29 +SHA512 (nbdkit-1.21.9.tar.gz.sig) = 2531e4becb57fbfd37444148acdeae9e343afdbb2a523a36bc16fa28e59321aed470aba86f60f6c22ff713d1c131276a81f9f1e0e6e22ee1b451abce399f4a72 From ae1ff31a512d6318070cbf089d2c0e2a605159eb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 14 Jun 2020 12:59:06 +0100 Subject: [PATCH 318/683] Fix disabling LIBGUESTFS_TESTS on 32 bit. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3f9de51..61c31f6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -626,7 +626,7 @@ autoreconf -i %ifnarch %{complete_test_arches} # Simplify the test suite so it doesn't require qemu. -sed -i -e '/^LIBGUESTFS_TESTS/d' tests/Makefile.am +sed -i -e 's/^LIBGUESTFS_TESTS/xLIBGUESTFS_TESTS/' tests/Makefile.am sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am autoreconf -i %endif From 5730d09400afab8441c3fa62e816ca99d14958bf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 15 Jun 2020 10:56:27 +0100 Subject: [PATCH 319/683] New upstream development version 1.21.10. This makes nbdkit-basic-plugins depend on zstd. --- nbdkit.spec | 19 ++++++++++++------- sources | 4 ++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 61c31f6..306728a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.9 +Version: 1.21.10 Release: 1%{?dist} Summary: NBD server @@ -75,6 +75,7 @@ BuildRequires: libguestfs-devel BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel +BuildRequires: libzstd-devel BuildRequires: libcurl-devel BuildRequires: libnbd-devel >= 0.9.8 BuildRequires: libssh-devel @@ -175,9 +176,9 @@ Provides: %{name}-zero-plugin = %{version}-%{release} %description basic-plugins -This package contains plugins for %{name} which only depend on -glibc and gnutls. Other plugins for nbdkit with more complex -dependencies are packaged separately. +This package contains plugins for %{name} which only depend on simple +C libraries: glibc, gnutls, libzstd. Other plugins for nbdkit with +more complex dependencies are packaged separately. nbdkit-data-plugin Serve small amounts of data from the command line. @@ -503,9 +504,9 @@ Provides: %{name}-truncate-filter = %{version}-%{release} %description basic-filters -This package contains filters for %{name} which only depend on -glibc and gnutls. Other filters for nbdkit with more complex -dependencies are packaged separately. +This package contains filters for %{name} which only depend on simple +C libraries: glibc, gnutls. Other filters for nbdkit with more +complex dependencies are packaged separately. nbdkit-blocksize-filter Adjust block size of requests sent to plugins. @@ -1011,6 +1012,10 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jun 15 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.10-1 +- New upstream development version 1.21.10. +- This makes nbdkit-basic-plugins depend on zstd. + * Sun Jun 14 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.9-1 - New upstream development version 1.21.9. diff --git a/sources b/sources index 5454a8d..282e8ca 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.9.tar.gz) = dd2934a55670c8e07cc92edd3d08d7d69ca1e88cf02f677ae613e336f1e978407c4d3237e29cadf47e14cd250dcd5a590c1e75da3336412247d03f0d42828c29 -SHA512 (nbdkit-1.21.9.tar.gz.sig) = 2531e4becb57fbfd37444148acdeae9e343afdbb2a523a36bc16fa28e59321aed470aba86f60f6c22ff713d1c131276a81f9f1e0e6e22ee1b451abce399f4a72 +SHA512 (nbdkit-1.21.10.tar.gz) = 9baf542d4b2a8417ca5b930c6b2fdd865c8c06e3a8f726b58a42eb7ed9071175e850d761de73bec49d3490bad8703e3a9ad35f51d9722b0360f3ab1058230ccc +SHA512 (nbdkit-1.21.10.tar.gz.sig) = cf1ae9a0112d48a3ace86fc616d341008919a49bcb593d813e576e7322e972b2eea1461681f217baad9ec47a97c0a5fad273bb07a4346547578ebfe06e3c607b From f8f173bdcf9838dd4fbce59fec2e5db646f6a7a2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 19 Jun 2020 16:13:41 +0100 Subject: [PATCH 320/683] New upstream development version 1.21.11. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 306728a..37c14af 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.10 +Version: 1.21.11 Release: 1%{?dist} Summary: NBD server @@ -1012,6 +1012,9 @@ make %{?_smp_mflags} check || { %changelog +* Fri Jun 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.11-1 +- New upstream development version 1.21.11. + * Mon Jun 15 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.10-1 - New upstream development version 1.21.10. - This makes nbdkit-basic-plugins depend on zstd. diff --git a/sources b/sources index 282e8ca..0c52e35 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.10.tar.gz) = 9baf542d4b2a8417ca5b930c6b2fdd865c8c06e3a8f726b58a42eb7ed9071175e850d761de73bec49d3490bad8703e3a9ad35f51d9722b0360f3ab1058230ccc -SHA512 (nbdkit-1.21.10.tar.gz.sig) = cf1ae9a0112d48a3ace86fc616d341008919a49bcb593d813e576e7322e972b2eea1461681f217baad9ec47a97c0a5fad273bb07a4346547578ebfe06e3c607b +SHA512 (nbdkit-1.21.11.tar.gz) = 15717e7ca7951f6bf9bedf9d1bc563864c20d5177ae112f549dd80195574a53a6a0d0cfbfbc296cc7d04889c6925d01f12b71ba9f5d659becfb312c0f9f8528c +SHA512 (nbdkit-1.21.11.tar.gz.sig) = e37ccc9edb521dd808071e7467c1aee84f54c5972290fe2c4923cf231204002e07883cd8fec4d77db1cd2f0568fc1943db3b3fa61cc18ae8bd7515d46389c0e7 From dc58e25bf923c90d885494a6104cbc9f36ef53ca Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Mon, 22 Jun 2020 18:06:51 +0200 Subject: [PATCH 321/683] Perl 5.32 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 37c14af..388e2d8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1012,6 +1012,9 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.21.11-2 +- Perl 5.32 rebuild + * Fri Jun 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.11-1 - New upstream development version 1.21.11. From c3cf765abc3f579261bb09a295671ae5cb8acf1c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jun 2020 14:08:43 +0100 Subject: [PATCH 322/683] New upstream development version 1.21.12. Use new --disable-rust configure option. --- nbdkit.spec | 13 +++++++------ sources | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 388e2d8..5ae7ef0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.11 -Release: 2%{?dist} +Version: 1.21.12 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -641,6 +641,7 @@ autoreconf -i PYTHON=%{_bindir}/python3 \ --disable-static \ --disable-golang \ + --disable-rust \ %if 0%{?have_ocaml} --enable-ocaml \ %else @@ -666,10 +667,6 @@ make %{?_smp_mflags} # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete -# If cargo happens to be installed on the machine then the -# rust plugin is built. Delete it if this happens. -rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* - # Remove the deprecated ext2 plugin (use ext2 filter instead). rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-ext2-plugin.1* @@ -1012,6 +1009,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jun 23 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.12-1 +- New upstream development version 1.21.12. +- Use new --disable-rust configure option. + * Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.21.11-2 - Perl 5.32 rebuild diff --git a/sources b/sources index 0c52e35..dded95c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.11.tar.gz) = 15717e7ca7951f6bf9bedf9d1bc563864c20d5177ae112f549dd80195574a53a6a0d0cfbfbc296cc7d04889c6925d01f12b71ba9f5d659becfb312c0f9f8528c -SHA512 (nbdkit-1.21.11.tar.gz.sig) = e37ccc9edb521dd808071e7467c1aee84f54c5972290fe2c4923cf231204002e07883cd8fec4d77db1cd2f0568fc1943db3b3fa61cc18ae8bd7515d46389c0e7 +SHA512 (nbdkit-1.21.12.tar.gz) = a35fe5738f7b5c5568a3220ed2564be1815b1e229730a37f016bc5012b115d4e531c6aada1b3b7cfd01f269b523c01ed6c25208d1b48303d7b39897b797deae2 +SHA512 (nbdkit-1.21.12.tar.gz.sig) = 097261f2b48d6a269029f291fb9527d22662a84d5d051efff61255fde5550e34f144dd1acc397ecd679ea3aa8a630d8c228fa37ee7a4bab0d0bd899ca689df9b From 60e65f5b9145e0dd5f50942f39598a46f07a2de2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 25 Jun 2020 09:35:43 +0100 Subject: [PATCH 323/683] Fix dependencies of nbdkit-tar-plugin since rewritten in Python. --- nbdkit.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5ae7ef0..abc64e2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.12 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -422,9 +422,8 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} # XXX These should be autogenerated. -Requires: %{name}-perl-plugin -Requires: perl(Cwd) -Requires: perl(IO::File) +Requires: %{name}-python-plugin +Requires: python3-libs %description tar-plugin @@ -1009,6 +1008,9 @@ make %{?_smp_mflags} check || { %changelog +* Thu Jun 25 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.12-2 +- Fix dependencies of nbdkit-tar-plugin since rewritten in Python. + * Tue Jun 23 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.12-1 - New upstream development version 1.21.12. - Use new --disable-rust configure option. From de9d2dea89e975b6717416db3c38cd75cd313539 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Sat, 27 Jun 2020 06:57:27 +0200 Subject: [PATCH 324/683] Perl 5.32 re-rebuild updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index abc64e2..a91d49b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.12 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1008,6 +1008,9 @@ make %{?_smp_mflags} check || { %changelog +* Sat Jun 27 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.21.12-3 +- Perl 5.32 re-rebuild updated packages + * Thu Jun 25 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.12-2 - Fix dependencies of nbdkit-tar-plugin since rewritten in Python. From 2e34434f23aa6def6c6e8967a3ad5ae993445cd1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 25 Jun 2020 10:24:42 +0100 Subject: [PATCH 325/683] New upstream development version 1.21.13. - Tar plugin rewritten again in C. - New nbdkit-torrent-plugin. - Remove various upgrade paths which are no longer needed in F33. --- nbdkit.spec | 45 +++++++++++++++++++++++++++++---------------- sources | 4 ++-- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a91d49b..bfdbd76 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.12 -Release: 3%{?dist} +Version: 1.21.13 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -81,6 +81,7 @@ BuildRequires: libnbd-devel >= 0.9.8 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage +BuildRequires: rb_libtorrent-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) @@ -381,12 +382,6 @@ This package lets you write Perl plugins for %{name}. Summary: Python 3 plugin for %{name} License: BSD -# Remove in Fedora 33: -Provides: %{name}-python3-plugin = %{version}-%{release} -Obsoletes: %{name}-python3-plugin <= %{version}-%{release} -Provides: %{name}-python-plugin-common = %{version}-%{release} -Obsoletes: %{name}-python-plugin-common <= %{version}-%{release} - Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -421,9 +416,7 @@ Summary: Tar archive plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# XXX These should be autogenerated. -Requires: %{name}-python-plugin -Requires: python3-libs +Requires: tar %description tar-plugin @@ -456,6 +449,17 @@ Suggests: xfsprogs, ntfsprogs, dosfstools This package is a remote temporary filesystem disk plugin for %{name}. +%package torrent-plugin +Summary: BitTorrent plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description torrent-plugin +This package is a BitTorrent plugin for %{name}. + + %ifarch x86_64 %package vddk-plugin Summary: VMware VDDK plugin for %{name} @@ -580,10 +584,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# Remove in Fedora 33: -Provides: %{name}-xz-plugin = %{version}-%{release} -Obsoletes: %{name}-xz-plugin <= %{version}-%{release} - %description xz-filter This package is the xz filter for %{name}. @@ -879,7 +879,7 @@ make %{?_smp_mflags} check || { %files tar-plugin %doc README %license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-tar-plugin +%{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so %{_mandir}/man1/nbdkit-tar-plugin.1* @@ -897,6 +897,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-tmpdisk-plugin.1* +%files torrent-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-torrent-plugin.so +%{_mandir}/man1/nbdkit-torrent-plugin.1* + + %ifarch x86_64 %files vddk-plugin %doc README @@ -1008,6 +1015,12 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jun 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.13-1 +- New upstream development version 1.21.13. +- Tar plugin rewritten again in C. +- New nbdkit-torrent-plugin. +- Remove various upgrade paths which are no longer needed in F33. + * Sat Jun 27 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.21.12-3 - Perl 5.32 re-rebuild updated packages diff --git a/sources b/sources index dded95c..33d6a24 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.12.tar.gz) = a35fe5738f7b5c5568a3220ed2564be1815b1e229730a37f016bc5012b115d4e531c6aada1b3b7cfd01f269b523c01ed6c25208d1b48303d7b39897b797deae2 -SHA512 (nbdkit-1.21.12.tar.gz.sig) = 097261f2b48d6a269029f291fb9527d22662a84d5d051efff61255fde5550e34f144dd1acc397ecd679ea3aa8a630d8c228fa37ee7a4bab0d0bd899ca689df9b +SHA512 (nbdkit-1.21.13.tar.gz) = 1a11ae9e8c015d2cd1b9fe33e162afb48ca184755d8589f059b0380b978007f97132c5f0242497c059846694314f5c4fbf1dbe6981b2d9466a4c0933f50bc233 +SHA512 (nbdkit-1.21.13.tar.gz.sig) = 38ac0b090f0ea46c49ac564c1639d1b3f06789e9b7e49a267210e68870daca132fb6a19f748d2c50bd647bcc837b62690e15e22b3de49e2b442fab8a1678598c From e654228ce54bca641e1b0fd10742ee3c7a39ac86 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 3 Jul 2020 14:34:04 +0100 Subject: [PATCH 326/683] New upstream development version 1.21.14. New nbdkit-pause-filter. --- nbdkit.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bfdbd76..add5335 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.13 +Version: 1.21.14 Release: 1%{?dist} Summary: NBD server @@ -328,7 +328,7 @@ This package lets you write Lua plugins for %{name}. %package nbd-plugin -Summary: NBD passthrough plugin for %{name} +Summary: NBD proxy / forward plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -499,6 +499,7 @@ Provides: %{name}-noparallel-filter = %{version}-%{release} Provides: %{name}-nozero-filter = %{version}-%{release} Provides: %{name}-offset-filter = %{version}-%{release} Provides: %{name}-partition-filter = %{version}-%{release} +Provides: %{name}-pause-filter = %{version}-%{release} Provides: %{name}-rate-filter = %{version}-%{release} Provides: %{name}-readahead-filter = %{version}-%{release} Provides: %{name}-retry-filter = %{version}-%{release} @@ -551,6 +552,8 @@ nbdkit-offset-filter Serve an offset and range. nbdkit-partition-filter Serve a single partition. +nbdkit-pause-filter Pause NBD requests. + nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. @@ -936,6 +939,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so +%{_libdir}/%{name}/filters/nbdkit-pause-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so @@ -961,6 +965,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* +%{_mandir}/man1/nbdkit-pause-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* @@ -1015,6 +1020,10 @@ make %{?_smp_mflags} check || { %changelog +* Fri Jul 3 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.14-1 +- New upstream development version 1.21.14. +- New nbdkit-pause-filter. + * Mon Jun 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.13-1 - New upstream development version 1.21.13. - Tar plugin rewritten again in C. diff --git a/sources b/sources index 33d6a24..535ffd4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.13.tar.gz) = 1a11ae9e8c015d2cd1b9fe33e162afb48ca184755d8589f059b0380b978007f97132c5f0242497c059846694314f5c4fbf1dbe6981b2d9466a4c0933f50bc233 -SHA512 (nbdkit-1.21.13.tar.gz.sig) = 38ac0b090f0ea46c49ac564c1639d1b3f06789e9b7e49a267210e68870daca132fb6a19f748d2c50bd647bcc837b62690e15e22b3de49e2b442fab8a1678598c +SHA512 (nbdkit-1.21.14.tar.gz) = 83fe506ac98727e156ba7e780f2f6378f03805c9a4a13cf2ae2d68eacc5f9ec848f8102d402562b60ff7b5dde9792fcf118fa49350c9e05b04583df7c7af66b0 +SHA512 (nbdkit-1.21.14.tar.gz.sig) = c09f14bba66109d97779c5f5ab77966fa67118f7e3f64c58602ca866615c19798a3c1b747ad679b1793708f4767f46312a3e19dc014e970db761fb78551effe0 From 0022d6eaf6565238406895ae36ee0089873a36d3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 6 Jul 2020 14:11:54 +0100 Subject: [PATCH 327/683] New upstream development version 1.21.15. New nbdkit-swab-filter. --- nbdkit.spec | 11 ++++++++++- sources | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index add5335..98153f6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.14 +Version: 1.21.15 Release: 1%{?dist} Summary: NBD server @@ -504,6 +504,7 @@ Provides: %{name}-rate-filter = %{version}-%{release} Provides: %{name}-readahead-filter = %{version}-%{release} Provides: %{name}-retry-filter = %{version}-%{release} Provides: %{name}-stats-filter = %{version}-%{release} +Provides: %{name}-swab-filter = %{version}-%{release} Provides: %{name}-truncate-filter = %{version}-%{release} @@ -562,6 +563,8 @@ nbdkit-retry-filter Reopen connection on error. nbdkit-stats-filter Display statistics about operations. +nbdkit-swab-filter Filter for swapping byte order. + nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -944,6 +947,7 @@ make %{?_smp_mflags} check || { %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-stats-filter.so +%{_libdir}/%{name}/filters/nbdkit-swab-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* @@ -970,6 +974,7 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-stats-filter.1* +%{_mandir}/man1/nbdkit-swab-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1020,6 +1025,10 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jul 6 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.15-1 +- New upstream development version 1.21.15. +- New nbdkit-swab-filter. + * Fri Jul 3 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.14-1 - New upstream development version 1.21.14. - New nbdkit-pause-filter. diff --git a/sources b/sources index 535ffd4..f48b2ac 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.14.tar.gz) = 83fe506ac98727e156ba7e780f2f6378f03805c9a4a13cf2ae2d68eacc5f9ec848f8102d402562b60ff7b5dde9792fcf118fa49350c9e05b04583df7c7af66b0 -SHA512 (nbdkit-1.21.14.tar.gz.sig) = c09f14bba66109d97779c5f5ab77966fa67118f7e3f64c58602ca866615c19798a3c1b747ad679b1793708f4767f46312a3e19dc014e970db761fb78551effe0 +SHA512 (nbdkit-1.21.15.tar.gz) = 09e5fc75e2fdce9d7709183a5a273c2ec51e3d29381d25a7494ff075d80398ad571fe587b2b287b32aa855e31201f6bf424cf35974bac8f980fb0ae3faff6836 +SHA512 (nbdkit-1.21.15.tar.gz.sig) = 11a9bb305213508395d4d043edd2ea0cf3d1276cda7f4f66c679b751158cf18605c69fd8040197a3cea65145e23930c3ae169370b022742e711e8188f88d30f6 From bf5431038322b2be3f961e85f9ba8b2da59cfd4e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 9 Jul 2020 12:40:08 +0100 Subject: [PATCH 328/683] New upstream development version 1.21.16. New nbdkit-tar-filter. nbdkit-ext2-plugin has been removed, no need to delete it. --- nbdkit.spec | 30 +++++++++++++++++++++++++----- sources | 4 ++-- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 98153f6..8407d27 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.15 +Version: 1.21.16 Release: 1%{?dist} Summary: NBD server @@ -411,6 +411,18 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains SSH support for %{name}. +%package tar-filter +Summary: Tar archive filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: tar + + +%description tar-filter +This package is a tar archive filter for %{name}. + + %package tar-plugin Summary: Tar archive plugin for %{name} License: BSD @@ -672,10 +684,6 @@ make %{?_smp_mflags} # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete -# Remove the deprecated ext2 plugin (use ext2 filter instead). -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so -rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-ext2-plugin.1* - %check %ifnarch %{broken_test_arches} @@ -882,6 +890,13 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-ssh-plugin.1* +%files tar-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-tar-filter.so +%{_mandir}/man1/nbdkit-tar-filter.1* + + %files tar-plugin %doc README %license LICENSE @@ -1025,6 +1040,11 @@ make %{?_smp_mflags} check || { %changelog +* Thu Jul 9 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.16-1 +- New upstream development version 1.21.16. +- New nbdkit-tar-filter. +- nbdkit-ext2-plugin has been removed, no need to delete it. + * Mon Jul 6 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.15-1 - New upstream development version 1.21.15. - New nbdkit-swab-filter. diff --git a/sources b/sources index f48b2ac..5b012bc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.15.tar.gz) = 09e5fc75e2fdce9d7709183a5a273c2ec51e3d29381d25a7494ff075d80398ad571fe587b2b287b32aa855e31201f6bf424cf35974bac8f980fb0ae3faff6836 -SHA512 (nbdkit-1.21.15.tar.gz.sig) = 11a9bb305213508395d4d043edd2ea0cf3d1276cda7f4f66c679b751158cf18605c69fd8040197a3cea65145e23930c3ae169370b022742e711e8188f88d30f6 +SHA512 (nbdkit-1.21.16.tar.gz) = 09e0154ba7754db9a2c6242f06a35b8e0e096acdf1ec68da2cdc3cb3ad3a44f3d7538802b22db80dbacb72f5fe79ee5bc241d0547e6c6d60b57f464fe128f93f +SHA512 (nbdkit-1.21.16.tar.gz.sig) = c2e4dc967b062ac4b8e0221fabe4dad3bb3a1915b0e4d4f4f0011d0edfbf23f079f294cac0432501b9888b0640d5efb6ca8ac868c68663462e3ec3c82970d8d2 From 8c5dfe0e046b2a79e7b37d15e9c33e4c86adc423 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 11 Jul 2020 22:21:14 +0100 Subject: [PATCH 329/683] New upstream development version 1.21.17. New nbdkit-gzip-filter. Remove deprecated nbdkit-gzip-plugin. --- nbdkit.spec | 25 +++++++++++++++++-------- sources | 4 ++-- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8407d27..c44aadc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.16 +Version: 1.21.17 Release: 1%{?dist} Summary: NBD server @@ -267,15 +267,15 @@ This package is a libguestfs plugin for %{name}. %endif -%package gzip-plugin -Summary: GZip file serving plugin for %{name} +%package gzip-filter +Summary: GZip filter for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -%description gzip-plugin -This package is a gzip file serving plugin for %{name}. +%description gzip-filter +This package is a gzip filter for %{name}. %package iso-plugin @@ -684,6 +684,10 @@ make %{?_smp_mflags} # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete +# Remove the deprecated gzip plugin (use gzip filter instead). +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* + %check %ifnarch %{broken_test_arches} @@ -807,11 +811,11 @@ make %{?_smp_mflags} check || { %endif -%files gzip-plugin +%files gzip-filter %doc README %license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so -%{_mandir}/man1/nbdkit-gzip-plugin.1* +%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so +%{_mandir}/man1/nbdkit-gzip-filter.1* %files iso-plugin @@ -1040,6 +1044,11 @@ make %{?_smp_mflags} check || { %changelog +* Sat Jul 11 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.17-1 +- New upstream development version 1.21.17. +- New nbdkit-gzip-filter. +- Remove deprecated nbdkit-gzip-plugin. + * Thu Jul 9 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.16-1 - New upstream development version 1.21.16. - New nbdkit-tar-filter. diff --git a/sources b/sources index 5b012bc..d5878c3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.16.tar.gz) = 09e0154ba7754db9a2c6242f06a35b8e0e096acdf1ec68da2cdc3cb3ad3a44f3d7538802b22db80dbacb72f5fe79ee5bc241d0547e6c6d60b57f464fe128f93f -SHA512 (nbdkit-1.21.16.tar.gz.sig) = c2e4dc967b062ac4b8e0221fabe4dad3bb3a1915b0e4d4f4f0011d0edfbf23f079f294cac0432501b9888b0640d5efb6ca8ac868c68663462e3ec3c82970d8d2 +SHA512 (nbdkit-1.21.17.tar.gz) = 7b9af0a6fbcb0021ee8461d3d741653709cb6d56b2e1305d8e96a7017ad7578cd61a26f4dd4f41f31e5672fad349f2beff3ad7e7c0d749f25043600974022a95 +SHA512 (nbdkit-1.21.17.tar.gz.sig) = 51ad4f8d5994f2f309ed0ed82912ccb2b248985572cb2a9bff543bc8030b4b8b4dfb0310551d83e4f385a45695e913e0bd9be9b6b889f59beb1eacc4672e2948 From b8735c2055047bc8da0aa47a672f2b559dc064e0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 13 Jul 2020 09:14:56 +0100 Subject: [PATCH 330/683] New upstream development version 1.21.18. Fixes nbdkit-gzip-filter. --- nbdkit.spec | 6 +++++- sources | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c44aadc..83e75b4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.17 +Version: 1.21.18 Release: 1%{?dist} Summary: NBD server @@ -1044,6 +1044,10 @@ make %{?_smp_mflags} check || { %changelog +* Mon Jul 13 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.18-1 +- New upstream development version 1.21.18. +- Fixes nbdkit-gzip-filter. + * Sat Jul 11 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.17-1 - New upstream development version 1.21.17. - New nbdkit-gzip-filter. diff --git a/sources b/sources index d5878c3..599df62 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.17.tar.gz) = 7b9af0a6fbcb0021ee8461d3d741653709cb6d56b2e1305d8e96a7017ad7578cd61a26f4dd4f41f31e5672fad349f2beff3ad7e7c0d749f25043600974022a95 -SHA512 (nbdkit-1.21.17.tar.gz.sig) = 51ad4f8d5994f2f309ed0ed82912ccb2b248985572cb2a9bff543bc8030b4b8b4dfb0310551d83e4f385a45695e913e0bd9be9b6b889f59beb1eacc4672e2948 +SHA512 (nbdkit-1.21.18.tar.gz) = 5ea583774d16aa3038e361082f82912a48e179dc36363da8244b14f7d89e638a665162e730ad00b2e8ee2bf2f7991cd72bda88497da78e1c262a02ed4feda6c4 +SHA512 (nbdkit-1.21.18.tar.gz.sig) = f3621d81137a69b567775fd07d0fc17a571f02ee5b972380400536b9d8ba900cf139ea649e190b4ccd6256016cfa87ea119121842e010b16a1511035aa4598d6 From 07c3f3b029c93dadecad6982cae4a309265ea456 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 18 Jul 2020 17:34:28 +0100 Subject: [PATCH 331/683] New upstream development version 1.21.19. New nbdkit-cdi-plugin. --- nbdkit.spec | 40 ++++++++++++++++++++++++++++++++-------- sources | 4 ++-- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 83e75b4..ba90275 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.18 +Version: 1.21.19 Release: 1%{?dist} Summary: NBD server @@ -243,6 +243,19 @@ for %{name}. NOTE this is NOT the right package for writing plugins in C, install %{name}-devel for that. +%package cdi-plugin +Summary: Containerized Data Import plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: jq +Requires: podman + + +%description cdi-plugin +This package contains Containerized Data Import support for %{name}. + + %package curl-plugin Summary: HTTP/FTP (cURL) plugin for %{name} License: BSD @@ -788,13 +801,6 @@ make %{?_smp_mflags} check || { %{_mandir}/man1/nbdkit-example*-plugin.1* -%files curl-plugin -%doc README -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so -%{_mandir}/man1/nbdkit-curl-plugin.1* - - %files cc-plugin %doc README %license LICENSE @@ -802,6 +808,20 @@ make %{?_smp_mflags} check || { %{_mandir}/man3/nbdkit-cc-plugin.3* +%files cdi-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-cdi-plugin.so +%{_mandir}/man1/nbdkit-cdi-plugin.1* + + +%files curl-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so +%{_mandir}/man1/nbdkit-curl-plugin.1* + + %if 0%{?have_libguestfs} %files guestfs-plugin %doc README @@ -1044,6 +1064,10 @@ make %{?_smp_mflags} check || { %changelog +* Sat Jul 18 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.19-1 +- New upstream development version 1.21.19. +- New nbdkit-cdi-plugin. + * Mon Jul 13 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.18-1 - New upstream development version 1.21.18. - Fixes nbdkit-gzip-filter. diff --git a/sources b/sources index 599df62..42a55d8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.18.tar.gz) = 5ea583774d16aa3038e361082f82912a48e179dc36363da8244b14f7d89e638a665162e730ad00b2e8ee2bf2f7991cd72bda88497da78e1c262a02ed4feda6c4 -SHA512 (nbdkit-1.21.18.tar.gz.sig) = f3621d81137a69b567775fd07d0fc17a571f02ee5b972380400536b9d8ba900cf139ea649e190b4ccd6256016cfa87ea119121842e010b16a1511035aa4598d6 +SHA512 (nbdkit-1.21.19.tar.gz) = 2e0782b66e36d9c136715c42ab111f0325dc6dc3da7bf7b413a1d06f2b7364e8f2ba544d6d8dab5a41db7eb11b2af1ef964eb567c9b052eede75a86e8e6b8362 +SHA512 (nbdkit-1.21.19.tar.gz.sig) = bb9e0686da3c1922d8745060a2f7b1e1fe23e9e435432e297f91da23fe675f482e265752c8a0de4c08c016e351a1ac23ec3317153e31538a0c60d9036d3a7e30 From f2e57729af9f159b03aff6499b33deb91ea9bbc4 Mon Sep 17 00:00:00 2001 From: Tom Stellard <tstellar@redhat.com> Date: Tue, 14 Jul 2020 02:03:47 +0000 Subject: [PATCH 332/683] Use make macros https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro --- nbdkit.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ba90275..bf21628 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.19 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -688,7 +688,7 @@ autoreconf -i # to avoid RHBZ#1404631 happening again silently. grep '^PYTHON_VERSION = 3' Makefile -make %{?_smp_mflags} +%make_build %install @@ -725,7 +725,7 @@ truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 -make %{?_smp_mflags} check || { +%make_build check || { cat tests/test-suite.log exit 1 } @@ -1064,6 +1064,10 @@ make %{?_smp_mflags} check || { %changelog +* Tue Jul 21 2020 Tom Stellard <tstellar@redhat.com> - 1.21.19-2 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + * Sat Jul 18 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.19-1 - New upstream development version 1.21.19. - New nbdkit-cdi-plugin. From f66e201023560d4f4ae5464e76d0835910bf0e27 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 24 Jul 2020 16:40:33 +0100 Subject: [PATCH 333/683] New upstream development version 1.21.20. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bf21628..4316fc5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.19 -Release: 2%{?dist} +Version: 1.21.20 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1064,6 +1064,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-1 +- New upstream development version 1.21.20. + * Tue Jul 21 2020 Tom Stellard <tstellar@redhat.com> - 1.21.19-2 - Use make macros - https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro diff --git a/sources b/sources index 42a55d8..2dbf9f5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.19.tar.gz) = 2e0782b66e36d9c136715c42ab111f0325dc6dc3da7bf7b413a1d06f2b7364e8f2ba544d6d8dab5a41db7eb11b2af1ef964eb567c9b052eede75a86e8e6b8362 -SHA512 (nbdkit-1.21.19.tar.gz.sig) = bb9e0686da3c1922d8745060a2f7b1e1fe23e9e435432e297f91da23fe675f482e265752c8a0de4c08c016e351a1ac23ec3317153e31538a0c60d9036d3a7e30 +SHA512 (nbdkit-1.21.20.tar.gz) = ce09dcdaf2017f044d2aabfd76c40896e94a1e5faddbc73d1ab4e8133bf279f5c1ef481bc9d6e8961bf4836fc6cb50c297b0f44d22fb474c19bf6cdfca42597f +SHA512 (nbdkit-1.21.20.tar.gz.sig) = 295ce3b95da660146cf4e254c14409f41d87f6ab25fe38c6c0e944f8d000256befb0bffaeee98d1731f589946644d005602ee7e6083f3d5b6a49393ef3358d4f From 3e985396a9162577c0b5b2bf516c7347d5a0ed5c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 24 Jul 2020 17:52:04 +0100 Subject: [PATCH 334/683] Disable test-partition1.sh because of sfdisk bug. --- nbdkit.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 4316fc5..c8fcd5c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -721,6 +721,10 @@ truncate -s 0 tests/test-cache-max-size.sh # https://www.redhat.com/archives/libguestfs/2020-March/msg00191.html truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh +# Temporarily kill test-partition1.sh because of sfdisk bug: +# https://bugzilla.redhat.com/show_bug.cgi?id=1860461 +truncate -s 0 tests/test-partition1.sh + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 @@ -1066,6 +1070,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Fri Jul 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-1 - New upstream development version 1.21.20. +- Disable test-partition1.sh because of sfdisk bug. * Tue Jul 21 2020 Tom Stellard <tstellar@redhat.com> - 1.21.19-2 - Use make macros From 326080d3bfe8a59a568345bb18c67c3da1d85da9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Tue, 28 Jul 2020 08:54:50 +0000 Subject: [PATCH 335/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c8fcd5c..9d502f9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.20 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1068,6 +1068,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Fri Jul 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-1 - New upstream development version 1.21.20. - Disable test-partition1.sh because of sfdisk bug. From ca77ba1e5a4f79e88f204b8766b8519d607fea6f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 31 Jul 2020 08:53:14 +0100 Subject: [PATCH 336/683] Add upstream patch to try to track down test failure in Koji. --- 0001-tests-test-nozero.sh-Add-set-x.patch | 25 +++++++++++++++++++++++ nbdkit.spec | 8 +++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 0001-tests-test-nozero.sh-Add-set-x.patch diff --git a/0001-tests-test-nozero.sh-Add-set-x.patch b/0001-tests-test-nozero.sh-Add-set-x.patch new file mode 100644 index 0000000..b4d4649 --- /dev/null +++ b/0001-tests-test-nozero.sh-Add-set-x.patch @@ -0,0 +1,25 @@ +From 5dc844e5b481b32915d38a9e5dd32bef3e698957 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Fri, 31 Jul 2020 08:51:37 +0100 +Subject: [PATCH] tests/test-nozero.sh: Add set -x. + +Used to track down a failure in this test which only happens in Koji. +--- + tests/test-nozero.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh +index 444c1b70..9a815814 100755 +--- a/tests/test-nozero.sh ++++ b/tests/test-nozero.sh +@@ -32,6 +32,7 @@ + + source ./functions.sh + set -e ++set -x + + sock2=`mktemp -u` + sock3=`mktemp -u` +-- +2.28.0.rc2 + diff --git a/nbdkit.spec b/nbdkit.spec index 9d502f9..f5ce366 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.20 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -58,6 +58,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upsream patch to try to track down test failure. +Patch1: 0001-tests-test-nozero.sh-Add-set-x.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -1068,6 +1071,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-3 +- Add upstream patch to try to track down test failure in Koji. + * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.20-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 5598d785aab9c815fc0a21d4324e9c83e0ee5f6d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 31 Jul 2020 11:55:09 +0100 Subject: [PATCH 337/683] Disable LTO. --- nbdkit.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f5ce366..b26855d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.20 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -667,6 +667,10 @@ autoreconf -i %build +# Disable LTO, it's unreliable. See for example: +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/ULGH5JYL7MHKDKTINJLOEN2QG6LOHWH7/ +%define _lto_cflags %{nil} + # Golang bindings are not enabled in the Fedora build since they don't # need to be. Most people would use them by copying the upstream # package into their vendor/ directory. @@ -1071,8 +1075,9 @@ export LIBGUESTFS_TRACE=1 %changelog -* Fri Jul 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-3 +* Fri Jul 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-4 - Add upstream patch to try to track down test failure in Koji. +- Disable LTO. * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.20-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 0727ae206e7d223adc33f53691ecfc97c47b3050 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 1 Aug 2020 08:56:30 +0100 Subject: [PATCH 338/683] More upstream patches to track test failure. Also enable LTO since it should be behaving better now. --- 0001-tests-test-nozero.sh-Add-set-x.patch | 2 +- ...o.sh-Create-test-file-as-single-exte.patch | 53 +++++++++++++++++++ nbdkit.spec | 12 ++--- 3 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch diff --git a/0001-tests-test-nozero.sh-Add-set-x.patch b/0001-tests-test-nozero.sh-Add-set-x.patch index b4d4649..fb328e9 100644 --- a/0001-tests-test-nozero.sh-Add-set-x.patch +++ b/0001-tests-test-nozero.sh-Add-set-x.patch @@ -1,7 +1,7 @@ From 5dc844e5b481b32915d38a9e5dd32bef3e698957 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 31 Jul 2020 08:51:37 +0100 -Subject: [PATCH] tests/test-nozero.sh: Add set -x. +Subject: [PATCH 1/2] tests/test-nozero.sh: Add set -x. Used to track down a failure in this test which only happens in Koji. --- diff --git a/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch b/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch new file mode 100644 index 0000000..138c3ad --- /dev/null +++ b/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch @@ -0,0 +1,53 @@ +From 89a36b1fab8302ddc370695d386a28a03a74eae7 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 1 Aug 2020 08:46:53 +0100 +Subject: [PATCH 2/2] tests/test-nozero.sh: Create test file as single extent, + add debugging. + +Previously the test file was created by repeatedly appending, ie: + +$ rm file; for f in {0..1023}; do printf '%1024s' . >> file; done ; stat -c "%b %B" file +3968 512 + +This seems to create files which have more than one extent. I have +changed it to the simpler form: + +$ rm file; for f in {0..1023}; do printf '%1024s' .; done > file; stat -c "%b %B" file +2048 512 + +Also this commit adds debugging. +--- + tests/test-nozero.sh | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh +index 9a815814..f1bb8a38 100755 +--- a/tests/test-nozero.sh ++++ b/tests/test-nozero.sh +@@ -71,13 +71,21 @@ cleanup () + } + cleanup_fn cleanup + +-# Prep images, and check that zero with trim results in a sparse image. +-for f in {0..1023}; do printf '%1024s' . >> nozero1.img; done ++# Prep images. ++for f in {0..1023}; do printf '%1024s' . ; done > nozero1.img + cp nozero1.img nozero2.img + cp nozero1.img nozero3.img + cp nozero1.img nozero4.img + cp nozero1.img nozero5.img + cp nozero1.img nozero6.img ++ ++# Debug number of blocks and block size in the images. ++for f in {1..6}; do ++ stat -c "%n: %b allocated blocks of size %B bytes, total size %s" \ ++ nozero$f.img ++done ++ ++# Check that zero with trim results in a sparse image. + requires nbdkit -U - --filter=log file logfile=nozero1.log nozero1.img \ + --run 'nbdsh -u "$uri" -c "h.zero (1024*1024, 0)"' + if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then +-- +2.28.0.rc2 + diff --git a/nbdkit.spec b/nbdkit.spec index b26855d..d802d70 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.20 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD @@ -60,6 +60,7 @@ Source2: libguestfs.keyring # Upsream patch to try to track down test failure. Patch1: 0001-tests-test-nozero.sh-Add-set-x.patch +Patch2: 0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -667,10 +668,6 @@ autoreconf -i %build -# Disable LTO, it's unreliable. See for example: -# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/ULGH5JYL7MHKDKTINJLOEN2QG6LOHWH7/ -%define _lto_cflags %{nil} - # Golang bindings are not enabled in the Fedora build since they don't # need to be. Most people would use them by copying the upstream # package into their vendor/ directory. @@ -1075,9 +1072,8 @@ export LIBGUESTFS_TRACE=1 %changelog -* Fri Jul 31 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-4 -- Add upstream patch to try to track down test failure in Koji. -- Disable LTO. +* Sat Aug 1 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-5 +- Add upstream patches to try to track down test failure in Koji. * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.20-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 71222f71e6ebd05aba2a2b5e9e322e2a1e3d0c54 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 2 Aug 2020 10:15:14 +0100 Subject: [PATCH 339/683] Temporarily kill test-nozero.sh. --- nbdkit.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index d802d70..b2718b8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -729,6 +729,13 @@ truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh # https://bugzilla.redhat.com/show_bug.cgi?id=1860461 truncate -s 0 tests/test-partition1.sh +# Temporarily kill test-nozero.sh. It fails reliably on i686 and +# x86_64 for reasons which are not understood. See discussion +# upstream here: +# https://www.redhat.com/archives/libguestfs/2020-July/msg00148.html +# https://www.redhat.com/archives/libguestfs/2020-August/msg00000.html +truncate -s 0 tests/test-nozero.sh + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From 4ee2e4525fe0423d7381f30e784bf76053c0a39b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 4 Aug 2020 14:58:36 +0100 Subject: [PATCH 340/683] More upstream patches to try to track down test failure in Koji. --- 0001-tests-test-nozero.sh-Add-set-x.patch | 4 +- ...o.sh-Create-test-file-as-single-exte.patch | 4 +- ...ther-robustness-tweak-to-test-nozero.patch | 102 ++++++++++++++++++ ...-tests-Yet-another-test-nozero-tweak.patch | 51 +++++++++ nbdkit.spec | 15 +-- 5 files changed, 162 insertions(+), 14 deletions(-) create mode 100644 0003-tests-Another-robustness-tweak-to-test-nozero.patch create mode 100644 0004-tests-Yet-another-test-nozero-tweak.patch diff --git a/0001-tests-test-nozero.sh-Add-set-x.patch b/0001-tests-test-nozero.sh-Add-set-x.patch index fb328e9..882e652 100644 --- a/0001-tests-test-nozero.sh-Add-set-x.patch +++ b/0001-tests-test-nozero.sh-Add-set-x.patch @@ -1,7 +1,7 @@ From 5dc844e5b481b32915d38a9e5dd32bef3e698957 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 31 Jul 2020 08:51:37 +0100 -Subject: [PATCH 1/2] tests/test-nozero.sh: Add set -x. +Subject: [PATCH 1/4] tests/test-nozero.sh: Add set -x. Used to track down a failure in this test which only happens in Koji. --- @@ -21,5 +21,5 @@ index 444c1b70..9a815814 100755 sock2=`mktemp -u` sock3=`mktemp -u` -- -2.28.0.rc2 +2.27.0 diff --git a/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch b/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch index 138c3ad..66248c9 100644 --- a/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch +++ b/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch @@ -1,7 +1,7 @@ From 89a36b1fab8302ddc370695d386a28a03a74eae7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 1 Aug 2020 08:46:53 +0100 -Subject: [PATCH 2/2] tests/test-nozero.sh: Create test file as single extent, +Subject: [PATCH 2/4] tests/test-nozero.sh: Create test file as single extent, add debugging. Previously the test file was created by repeatedly appending, ie: @@ -49,5 +49,5 @@ index 9a815814..f1bb8a38 100755 --run 'nbdsh -u "$uri" -c "h.zero (1024*1024, 0)"' if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then -- -2.28.0.rc2 +2.27.0 diff --git a/0003-tests-Another-robustness-tweak-to-test-nozero.patch b/0003-tests-Another-robustness-tweak-to-test-nozero.patch new file mode 100644 index 0000000..dda1dd4 --- /dev/null +++ b/0003-tests-Another-robustness-tweak-to-test-nozero.patch @@ -0,0 +1,102 @@ +From efb27061f0b4ed15b6dab595a8601bdf1926181e Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Mon, 3 Aug 2020 16:44:15 -0500 +Subject: [PATCH 3/4] tests: Another robustness tweak to test-nozero + +Instead of looping to create the file, we can change our printf +argument to do it in one shot. Since we can't control when the +filesystem might overallocate, it's easier to just compare a file to +its former size, rather than to try to compare between two files that +might have started with different allocated sizes even though they +have the same content; this in turn is made easy with a bash array. +In a few places, try to run more of the test rather than giving up at +the first error. + +Signed-off-by: Eric Blake <eblake@redhat.com> +--- + tests/test-nozero.sh | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh +index f1bb8a38..9406e63c 100755 +--- a/tests/test-nozero.sh ++++ b/tests/test-nozero.sh +@@ -48,6 +48,7 @@ files="nozero1.img nozero1.log + nozero5a.pid nozero5b.pid + nozero6.img nozero6.log $sock6 nozero6.pid" + rm -f $files ++fail=0 + + # For easier debugging, dump the final log files before removing them + # on exit. +@@ -72,7 +73,8 @@ cleanup () + cleanup_fn cleanup + + # Prep images. +-for f in {0..1023}; do printf '%1024s' . ; done > nozero1.img ++declare -a sizes ++printf %$((1024*1024))s . > nozero1.img + cp nozero1.img nozero2.img + cp nozero1.img nozero3.img + cp nozero1.img nozero4.img +@@ -83,12 +85,13 @@ cp nozero1.img nozero6.img + for f in {1..6}; do + stat -c "%n: %b allocated blocks of size %B bytes, total size %s" \ + nozero$f.img ++ sizes[$f]=$(stat -c %b nozero$f.img) + done + + # Check that zero with trim results in a sparse image. + requires nbdkit -U - --filter=log file logfile=nozero1.log nozero1.img \ + --run 'nbdsh -u "$uri" -c "h.zero (1024*1024, 0)"' +-if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then ++if test "$(stat -c %b nozero1.img)" = "${sizes[1]}"; then + echo "$0: can't trim file by writing zeroes" + exit 77 + fi +@@ -129,17 +132,17 @@ nbdsh -u "nbd+unix://?socket=$sock6" -c 'h.zero (1024*1024, 0)' + grep 'connection=1 Zero' nozero1.log + if grep 'connection=1 Zero' nozero2.log; then + echo "filter should have prevented zero" +- exit 1 ++ fail=1 + fi + grep 'connection=1 Zero' nozero3.log + if grep 'connection=1 Zero' nozero4.log; then + echo "filter should have converted zero into write" +- exit 1 ++ fail=1 + fi + grep 'connection=1 Zero' nozero5b.log + if grep 'connection=1 Zero' nozero5a.log; then + echo "nbdkit should have converted zero into write before nbd plugin" +- exit 1 ++ fail=1 + fi + grep 'connection=1 Zero' nozero6.log + +@@ -150,14 +153,12 @@ cmp nozero3.img nozero4.img + cmp nozero4.img nozero5.img + cmp nozero5.img nozero6.img + +-# Sanity check on sparseness; only image 1 should be sparse +-if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then +- echo "nozero2.img was trimmed by mistake" +- exit 1 +-fi +-for i in 3 4 5 6; do +- if test "$(stat -c %b nozero2.img)" != "$(stat -c %b nozero$i.img)"; then +- echo "nozero$i.img was trimmed by mistake" +- exit 1 ++# Sanity check on sparseness: images 2-6 should not be sparse ++for i in {2..6}; do ++ if test "$(stat -c %b nozero$i.img)" != "${sizes[$i]}"; then ++ echo "nozero$i.img was trimmed by mistake" ++ fail=1 + fi + done ++ ++exit $fail +-- +2.27.0 + diff --git a/0004-tests-Yet-another-test-nozero-tweak.patch b/0004-tests-Yet-another-test-nozero-tweak.patch new file mode 100644 index 0000000..157e86f --- /dev/null +++ b/0004-tests-Yet-another-test-nozero-tweak.patch @@ -0,0 +1,51 @@ +From 12a7de7810f8e81551e58b8717e0845e6e86445d Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Mon, 3 Aug 2020 16:44:15 -0500 +Subject: [PATCH 4/4] tests: Yet another test-nozero tweak + +We discovered [1] that on xfs, even though the size of nozero2.img did +not change, the allocation increased when we wrote literal zeroes all +the way to end-of-file (that is, the filesystem presumed that we were +likely to write more data soon). Try a couple more tricks to help +this test pass on koji: double the file size to 2M but keep the +write-zero operation at 1M (so that we are no longer writing all the +way to EOF), and relax the comparison to use -lt rather than != +(although a growing file is odd, it is not fatal becuase we really +only care that the write zero did not become sparse). + +[1] https://www.redhat.com/archives/libguestfs/2020-August/msg00017.html + +Signed-off-by: Eric Blake <eblake@redhat.com> +--- + tests/test-nozero.sh | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh +index 9406e63c..1d725bc8 100755 +--- a/tests/test-nozero.sh ++++ b/tests/test-nozero.sh +@@ -74,7 +74,7 @@ cleanup_fn cleanup + + # Prep images. + declare -a sizes +-printf %$((1024*1024))s . > nozero1.img ++printf %$((2*1024*1024))s . > nozero1.img + cp nozero1.img nozero2.img + cp nozero1.img nozero3.img + cp nozero1.img nozero4.img +@@ -153,9 +153,10 @@ cmp nozero3.img nozero4.img + cmp nozero4.img nozero5.img + cmp nozero5.img nozero6.img + +-# Sanity check on sparseness: images 2-6 should not be sparse ++# Sanity check on sparseness: images 2-6 should not be sparse (although the ++# filesystem may have reserved additional space due to our writes) + for i in {2..6}; do +- if test "$(stat -c %b nozero$i.img)" != "${sizes[$i]}"; then ++ if test "$(stat -c %b nozero$i.img)" -lt "${sizes[$i]}"; then + echo "nozero$i.img was trimmed by mistake" + fail=1 + fi +-- +2.27.0 + diff --git a/nbdkit.spec b/nbdkit.spec index b2718b8..9dd42f5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.20 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD @@ -58,9 +58,11 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upsream patch to try to track down test failure. +# Upstream patches to try to fix test failure. Patch1: 0001-tests-test-nozero.sh-Add-set-x.patch Patch2: 0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch +Patch3: 0003-tests-Another-robustness-tweak-to-test-nozero.patch +Patch4: 0004-tests-Yet-another-test-nozero-tweak.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -729,13 +731,6 @@ truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh # https://bugzilla.redhat.com/show_bug.cgi?id=1860461 truncate -s 0 tests/test-partition1.sh -# Temporarily kill test-nozero.sh. It fails reliably on i686 and -# x86_64 for reasons which are not understood. See discussion -# upstream here: -# https://www.redhat.com/archives/libguestfs/2020-July/msg00148.html -# https://www.redhat.com/archives/libguestfs/2020-August/msg00000.html -truncate -s 0 tests/test-nozero.sh - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 @@ -1079,7 +1074,7 @@ export LIBGUESTFS_TRACE=1 %changelog -* Sat Aug 1 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-5 +* Sat Aug 1 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-6 - Add upstream patches to try to track down test failure in Koji. * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.21.20-2 From 39edd340ca28a326fabf71e58203d1425a588f10 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 4 Aug 2020 17:40:03 +0100 Subject: [PATCH 341/683] New upstream version 1.21.21. Remove patches, all upstream. --- 0001-tests-test-nozero.sh-Add-set-x.patch | 25 ----- ...o.sh-Create-test-file-as-single-exte.patch | 53 --------- ...ther-robustness-tweak-to-test-nozero.patch | 102 ------------------ ...-tests-Yet-another-test-nozero-tweak.patch | 51 --------- nbdkit.spec | 14 ++- sources | 4 +- 6 files changed, 8 insertions(+), 241 deletions(-) delete mode 100644 0001-tests-test-nozero.sh-Add-set-x.patch delete mode 100644 0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch delete mode 100644 0003-tests-Another-robustness-tweak-to-test-nozero.patch delete mode 100644 0004-tests-Yet-another-test-nozero-tweak.patch diff --git a/0001-tests-test-nozero.sh-Add-set-x.patch b/0001-tests-test-nozero.sh-Add-set-x.patch deleted file mode 100644 index 882e652..0000000 --- a/0001-tests-test-nozero.sh-Add-set-x.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5dc844e5b481b32915d38a9e5dd32bef3e698957 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Fri, 31 Jul 2020 08:51:37 +0100 -Subject: [PATCH 1/4] tests/test-nozero.sh: Add set -x. - -Used to track down a failure in this test which only happens in Koji. ---- - tests/test-nozero.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh -index 444c1b70..9a815814 100755 ---- a/tests/test-nozero.sh -+++ b/tests/test-nozero.sh -@@ -32,6 +32,7 @@ - - source ./functions.sh - set -e -+set -x - - sock2=`mktemp -u` - sock3=`mktemp -u` --- -2.27.0 - diff --git a/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch b/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch deleted file mode 100644 index 66248c9..0000000 --- a/0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 89a36b1fab8302ddc370695d386a28a03a74eae7 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 1 Aug 2020 08:46:53 +0100 -Subject: [PATCH 2/4] tests/test-nozero.sh: Create test file as single extent, - add debugging. - -Previously the test file was created by repeatedly appending, ie: - -$ rm file; for f in {0..1023}; do printf '%1024s' . >> file; done ; stat -c "%b %B" file -3968 512 - -This seems to create files which have more than one extent. I have -changed it to the simpler form: - -$ rm file; for f in {0..1023}; do printf '%1024s' .; done > file; stat -c "%b %B" file -2048 512 - -Also this commit adds debugging. ---- - tests/test-nozero.sh | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh -index 9a815814..f1bb8a38 100755 ---- a/tests/test-nozero.sh -+++ b/tests/test-nozero.sh -@@ -71,13 +71,21 @@ cleanup () - } - cleanup_fn cleanup - --# Prep images, and check that zero with trim results in a sparse image. --for f in {0..1023}; do printf '%1024s' . >> nozero1.img; done -+# Prep images. -+for f in {0..1023}; do printf '%1024s' . ; done > nozero1.img - cp nozero1.img nozero2.img - cp nozero1.img nozero3.img - cp nozero1.img nozero4.img - cp nozero1.img nozero5.img - cp nozero1.img nozero6.img -+ -+# Debug number of blocks and block size in the images. -+for f in {1..6}; do -+ stat -c "%n: %b allocated blocks of size %B bytes, total size %s" \ -+ nozero$f.img -+done -+ -+# Check that zero with trim results in a sparse image. - requires nbdkit -U - --filter=log file logfile=nozero1.log nozero1.img \ - --run 'nbdsh -u "$uri" -c "h.zero (1024*1024, 0)"' - if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then --- -2.27.0 - diff --git a/0003-tests-Another-robustness-tweak-to-test-nozero.patch b/0003-tests-Another-robustness-tweak-to-test-nozero.patch deleted file mode 100644 index dda1dd4..0000000 --- a/0003-tests-Another-robustness-tweak-to-test-nozero.patch +++ /dev/null @@ -1,102 +0,0 @@ -From efb27061f0b4ed15b6dab595a8601bdf1926181e Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Mon, 3 Aug 2020 16:44:15 -0500 -Subject: [PATCH 3/4] tests: Another robustness tweak to test-nozero - -Instead of looping to create the file, we can change our printf -argument to do it in one shot. Since we can't control when the -filesystem might overallocate, it's easier to just compare a file to -its former size, rather than to try to compare between two files that -might have started with different allocated sizes even though they -have the same content; this in turn is made easy with a bash array. -In a few places, try to run more of the test rather than giving up at -the first error. - -Signed-off-by: Eric Blake <eblake@redhat.com> ---- - tests/test-nozero.sh | 29 +++++++++++++++-------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - -diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh -index f1bb8a38..9406e63c 100755 ---- a/tests/test-nozero.sh -+++ b/tests/test-nozero.sh -@@ -48,6 +48,7 @@ files="nozero1.img nozero1.log - nozero5a.pid nozero5b.pid - nozero6.img nozero6.log $sock6 nozero6.pid" - rm -f $files -+fail=0 - - # For easier debugging, dump the final log files before removing them - # on exit. -@@ -72,7 +73,8 @@ cleanup () - cleanup_fn cleanup - - # Prep images. --for f in {0..1023}; do printf '%1024s' . ; done > nozero1.img -+declare -a sizes -+printf %$((1024*1024))s . > nozero1.img - cp nozero1.img nozero2.img - cp nozero1.img nozero3.img - cp nozero1.img nozero4.img -@@ -83,12 +85,13 @@ cp nozero1.img nozero6.img - for f in {1..6}; do - stat -c "%n: %b allocated blocks of size %B bytes, total size %s" \ - nozero$f.img -+ sizes[$f]=$(stat -c %b nozero$f.img) - done - - # Check that zero with trim results in a sparse image. - requires nbdkit -U - --filter=log file logfile=nozero1.log nozero1.img \ - --run 'nbdsh -u "$uri" -c "h.zero (1024*1024, 0)"' --if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then -+if test "$(stat -c %b nozero1.img)" = "${sizes[1]}"; then - echo "$0: can't trim file by writing zeroes" - exit 77 - fi -@@ -129,17 +132,17 @@ nbdsh -u "nbd+unix://?socket=$sock6" -c 'h.zero (1024*1024, 0)' - grep 'connection=1 Zero' nozero1.log - if grep 'connection=1 Zero' nozero2.log; then - echo "filter should have prevented zero" -- exit 1 -+ fail=1 - fi - grep 'connection=1 Zero' nozero3.log - if grep 'connection=1 Zero' nozero4.log; then - echo "filter should have converted zero into write" -- exit 1 -+ fail=1 - fi - grep 'connection=1 Zero' nozero5b.log - if grep 'connection=1 Zero' nozero5a.log; then - echo "nbdkit should have converted zero into write before nbd plugin" -- exit 1 -+ fail=1 - fi - grep 'connection=1 Zero' nozero6.log - -@@ -150,14 +153,12 @@ cmp nozero3.img nozero4.img - cmp nozero4.img nozero5.img - cmp nozero5.img nozero6.img - --# Sanity check on sparseness; only image 1 should be sparse --if test "$(stat -c %b nozero1.img)" = "$(stat -c %b nozero2.img)"; then -- echo "nozero2.img was trimmed by mistake" -- exit 1 --fi --for i in 3 4 5 6; do -- if test "$(stat -c %b nozero2.img)" != "$(stat -c %b nozero$i.img)"; then -- echo "nozero$i.img was trimmed by mistake" -- exit 1 -+# Sanity check on sparseness: images 2-6 should not be sparse -+for i in {2..6}; do -+ if test "$(stat -c %b nozero$i.img)" != "${sizes[$i]}"; then -+ echo "nozero$i.img was trimmed by mistake" -+ fail=1 - fi - done -+ -+exit $fail --- -2.27.0 - diff --git a/0004-tests-Yet-another-test-nozero-tweak.patch b/0004-tests-Yet-another-test-nozero-tweak.patch deleted file mode 100644 index 157e86f..0000000 --- a/0004-tests-Yet-another-test-nozero-tweak.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 12a7de7810f8e81551e58b8717e0845e6e86445d Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Mon, 3 Aug 2020 16:44:15 -0500 -Subject: [PATCH 4/4] tests: Yet another test-nozero tweak - -We discovered [1] that on xfs, even though the size of nozero2.img did -not change, the allocation increased when we wrote literal zeroes all -the way to end-of-file (that is, the filesystem presumed that we were -likely to write more data soon). Try a couple more tricks to help -this test pass on koji: double the file size to 2M but keep the -write-zero operation at 1M (so that we are no longer writing all the -way to EOF), and relax the comparison to use -lt rather than != -(although a growing file is odd, it is not fatal becuase we really -only care that the write zero did not become sparse). - -[1] https://www.redhat.com/archives/libguestfs/2020-August/msg00017.html - -Signed-off-by: Eric Blake <eblake@redhat.com> ---- - tests/test-nozero.sh | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/tests/test-nozero.sh b/tests/test-nozero.sh -index 9406e63c..1d725bc8 100755 ---- a/tests/test-nozero.sh -+++ b/tests/test-nozero.sh -@@ -74,7 +74,7 @@ cleanup_fn cleanup - - # Prep images. - declare -a sizes --printf %$((1024*1024))s . > nozero1.img -+printf %$((2*1024*1024))s . > nozero1.img - cp nozero1.img nozero2.img - cp nozero1.img nozero3.img - cp nozero1.img nozero4.img -@@ -153,9 +153,10 @@ cmp nozero3.img nozero4.img - cmp nozero4.img nozero5.img - cmp nozero5.img nozero6.img - --# Sanity check on sparseness: images 2-6 should not be sparse -+# Sanity check on sparseness: images 2-6 should not be sparse (although the -+# filesystem may have reserved additional space due to our writes) - for i in {2..6}; do -- if test "$(stat -c %b nozero$i.img)" != "${sizes[$i]}"; then -+ if test "$(stat -c %b nozero$i.img)" -lt "${sizes[$i]}"; then - echo "nozero$i.img was trimmed by mistake" - fail=1 - fi --- -2.27.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 9dd42f5..fdce6eb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.20 -Release: 6%{?dist} +Version: 1.21.21 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -58,12 +58,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patches to try to fix test failure. -Patch1: 0001-tests-test-nozero.sh-Add-set-x.patch -Patch2: 0002-tests-test-nozero.sh-Create-test-file-as-single-exte.patch -Patch3: 0003-tests-Another-robustness-tweak-to-test-nozero.patch -Patch4: 0004-tests-Yet-another-test-nozero-tweak.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -1074,6 +1068,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Aug 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.21-1 +- New upstream version 1.21.21. +- Remove patches, all upstream. + * Sat Aug 1 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.20-6 - Add upstream patches to try to track down test failure in Koji. diff --git a/sources b/sources index 2dbf9f5..e4b4e8b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.20.tar.gz) = ce09dcdaf2017f044d2aabfd76c40896e94a1e5faddbc73d1ab4e8133bf279f5c1ef481bc9d6e8961bf4836fc6cb50c297b0f44d22fb474c19bf6cdfca42597f -SHA512 (nbdkit-1.21.20.tar.gz.sig) = 295ce3b95da660146cf4e254c14409f41d87f6ab25fe38c6c0e944f8d000256befb0bffaeee98d1731f589946644d005602ee7e6083f3d5b6a49393ef3358d4f +SHA512 (nbdkit-1.21.21.tar.gz) = 7ee32f2b2b7a75b442207a0d7564b6ff8c0d130766bee594dcb8ff7294e5752c5af1f6716aa967d1f43e6d93cd2038313172a8c304cd7ed216451a6e14e9b7ed +SHA512 (nbdkit-1.21.21.tar.gz.sig) = 7c3afa709cfcd4a2c52e0f71b09f6b6571c2d50c92ef548b56a01c29150a433dad17dd0af63f8a12466354ed51d8cadb81718bb8e4e40f20b158dbf0e6afad1b From 567b602f2f2105d377f19f58525d409c859e3c97 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 6 Aug 2020 16:30:39 +0100 Subject: [PATCH 342/683] New upstream version 1.21.22. Note this requires updated libnbd 1.3.11 because of bugs in 1.3.10. --- nbdkit.spec | 8 ++++++-- sources | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fdce6eb..6afa70e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.21 +Version: 1.21.22 Release: 1%{?dist} Summary: NBD server @@ -77,7 +77,7 @@ BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: libzstd-devel BuildRequires: libcurl-devel -BuildRequires: libnbd-devel >= 0.9.8 +BuildRequires: libnbd-devel >= 1.3.11 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel BuildRequires: genisoimage @@ -1068,6 +1068,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 6 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.22-1 +- New upstream version 1.21.22. +- Note this requires updated libnbd 1.3.11 because of bugs in 1.3.10. + * Tue Aug 4 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.21-1 - New upstream version 1.21.21. - Remove patches, all upstream. diff --git a/sources b/sources index e4b4e8b..2456d4d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.21.tar.gz) = 7ee32f2b2b7a75b442207a0d7564b6ff8c0d130766bee594dcb8ff7294e5752c5af1f6716aa967d1f43e6d93cd2038313172a8c304cd7ed216451a6e14e9b7ed -SHA512 (nbdkit-1.21.21.tar.gz.sig) = 7c3afa709cfcd4a2c52e0f71b09f6b6571c2d50c92ef548b56a01c29150a433dad17dd0af63f8a12466354ed51d8cadb81718bb8e4e40f20b158dbf0e6afad1b +SHA512 (nbdkit-1.21.22.tar.gz) = 6f283e43ff830302dcb4621d2c579f86cf9763c1cef2ba5e2734757b6cfb424a4d800e5f47e0b8bbbe39bfd052fc1fa7f850df94a07f1e6bc2dd855fb7ade044 +SHA512 (nbdkit-1.21.22.tar.gz.sig) = 7e9c694b9a78af6e9f3e0a7a5f379f740cad8367c8251e3bcbecf24e57f62083816e5e6a0aceca557fac3cfd002adab56d443f0c5ec6fec8283b5bdef44ddaf1 From d41f4cc5c12a3825daaf49e097cf297e6f6f0bc5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 6 Aug 2020 16:59:24 +0100 Subject: [PATCH 343/683] Python example moved. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6afa70e..5cf15df 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1046,7 +1046,7 @@ export LIBGUESTFS_TRACE=1 %doc plugins/ocaml/example.ml %endif %doc plugins/perl/example.pl -%doc plugins/python/example.py +%doc plugins/python/examples/*.py %doc plugins/ruby/example.rb %doc plugins/sh/example.sh %doc plugins/tcl/example.tcl From 37eaf61006afc6e1c55b74c00f7c58685e4fd249 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 8 Aug 2020 22:04:54 +0100 Subject: [PATCH 344/683] New upstream version 1.21.23. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5cf15df..cf4dc2e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.22 +Version: 1.21.23 Release: 1%{?dist} Summary: NBD server @@ -1068,6 +1068,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Aug 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.23-1 +- New upstream version 1.21.23. + * Thu Aug 6 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.22-1 - New upstream version 1.21.22. - Note this requires updated libnbd 1.3.11 because of bugs in 1.3.10. diff --git a/sources b/sources index 2456d4d..0252bf3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.22.tar.gz) = 6f283e43ff830302dcb4621d2c579f86cf9763c1cef2ba5e2734757b6cfb424a4d800e5f47e0b8bbbe39bfd052fc1fa7f850df94a07f1e6bc2dd855fb7ade044 -SHA512 (nbdkit-1.21.22.tar.gz.sig) = 7e9c694b9a78af6e9f3e0a7a5f379f740cad8367c8251e3bcbecf24e57f62083816e5e6a0aceca557fac3cfd002adab56d443f0c5ec6fec8283b5bdef44ddaf1 +SHA512 (nbdkit-1.21.23.tar.gz) = 387ebcbee7e3ab51a5b8af0ec21ffea9c2ef515f20c6225060ade99144c7114e72cf3dffae31c1195c4e672559136a01e25aa0814a061267cbc79226576e55ab +SHA512 (nbdkit-1.21.23.tar.gz.sig) = 0bf6f308511bd8a117483fceb2f1a92bd164f21989adc76d8c0b01f2ec2956325c26ba61f6f26b37ed7a8b5aecbc1903034feaacbae67b49e84e8f74a220ec71 From 2e521de09997ad04bb64c03c07b2106e89b3a53f Mon Sep 17 00:00:00 2001 From: Merlin Mathesius <mmathesi@redhat.com> Date: Mon, 10 Aug 2020 15:20:31 -0500 Subject: [PATCH 345/683] Use ExclusiveArch: %{kernel_arches} Signed-off-by: Merlin Mathesius <mmathesi@redhat.com> --- nbdkit.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index cf4dc2e..b0c468a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,8 +1,6 @@ %global _hardened_build 1 -# Broken on {power64} because of -# https://bugzilla.redhat.com/show_bug.cgi?id=1778520 -%ifarch aarch64 %{arm} x86_64 ppc +%ifarch %{kernel_arches} %global have_libguestfs 1 %endif @@ -1068,6 +1066,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Aug 10 2020 Merlin Mathesius <mmathesi@redhat.com> - 1.21.23-1 +- Use ExclusiveArch: %%{kernel_arches} + * Sat Aug 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.23-1 - New upstream version 1.21.23. From 519e3edb9f025acf31edfc75ae2f477d475ad9b6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 11 Aug 2020 22:20:18 +0100 Subject: [PATCH 346/683] New upstream version 1.21.24. Add nbdkit-tls-fallback-filter. --- nbdkit.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b0c468a..bd3cf3d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,7 +42,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.23 +Version: 1.21.24 Release: 1%{?dist} Summary: NBD server @@ -528,6 +528,7 @@ Provides: %{name}-readahead-filter = %{version}-%{release} Provides: %{name}-retry-filter = %{version}-%{release} Provides: %{name}-stats-filter = %{version}-%{release} Provides: %{name}-swab-filter = %{version}-%{release} +Provides: %{name}-tls-fallback-filter = %{version}-%{release} Provides: %{name}-truncate-filter = %{version}-%{release} @@ -588,6 +589,8 @@ nbdkit-stats-filter Display statistics about operations. nbdkit-swab-filter Filter for swapping byte order. +nbdkit-tls-fallback-filter TLS protection filter. + nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -989,6 +992,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so +%{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* @@ -1016,6 +1020,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-stats-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* +%{_mandir}/man1/nbdkit-tls-fallback-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1066,8 +1071,12 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Aug 11 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.24-1 +- New upstream version 1.21.24. +- Add nbdkit-tls-fallback-filter. + * Mon Aug 10 2020 Merlin Mathesius <mmathesi@redhat.com> - 1.21.23-1 -- Use ExclusiveArch: %%{kernel_arches} +- Enable libguestfs tests only on %%{kernel_arches} * Sat Aug 8 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.23-1 - New upstream version 1.21.23. diff --git a/sources b/sources index 0252bf3..2747082 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.23.tar.gz) = 387ebcbee7e3ab51a5b8af0ec21ffea9c2ef515f20c6225060ade99144c7114e72cf3dffae31c1195c4e672559136a01e25aa0814a061267cbc79226576e55ab -SHA512 (nbdkit-1.21.23.tar.gz.sig) = 0bf6f308511bd8a117483fceb2f1a92bd164f21989adc76d8c0b01f2ec2956325c26ba61f6f26b37ed7a8b5aecbc1903034feaacbae67b49e84e8f74a220ec71 +SHA512 (nbdkit-1.21.24.tar.gz) = 3b3def9f2efd61f487b70a4cf88b98f1f2eaddf74c97716f5853341c6421230db21ada6bdcf013cf5240d9a5beefbee241ef97e0eb8060d0ae6b703ea70068a3 +SHA512 (nbdkit-1.21.24.tar.gz.sig) = 892679f93627866990d69b1d1eec1ad5e23664f85a4c992b32c663bab477de185fa01e57078ea24eec81caf7bdaa525b786fc699b568cb591642d86bac680237 From 782c6ac40403ff0b80e8042d098ba41a7e65a6df Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Aug 2020 16:19:53 +0100 Subject: [PATCH 347/683] Disable libguestfs tests on s390. qemu-system-s390x: failed to initialize kvm: No such file or directory qemu-system-s390x: falling back to tcg qemu-system-s390x: CPU definition requires KVM --- nbdkit.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index bd3cf3d..04b98e9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,8 +1,11 @@ %global _hardened_build 1 %ifarch %{kernel_arches} +# ... except that it doesn't work on s390, so: +%ifnarch s390 s390x %global have_libguestfs 1 %endif +%endif # We can only compiler the OCaml plugin on platforms which have native # OCaml support (not bytecode). From 2ff097192974cbf64c0cc5649d8e56a42ff9377c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 15 Aug 2020 23:53:50 +0100 Subject: [PATCH 348/683] New upstream version 1.21.25. New nbdkit-ondemand-plugin. New nbdkit-client(1) man page. --- nbdkit.spec | 13 ++++++++++++- sources | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 04b98e9..5f22d99 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.24 +Version: 1.21.25 Release: 1%{?dist} Summary: NBD server @@ -168,6 +168,7 @@ Provides: %{name}-full-plugin = %{version}-%{release} Provides: %{name}-info-plugin = %{version}-%{release} Provides: %{name}-memory-plugin = %{version}-%{release} Provides: %{name}-null-plugin = %{version}-%{release} +Provides: %{name}-ondemand-plugin = %{version}-%{release} Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} Provides: %{name}-random-plugin = %{version}-%{release} @@ -198,6 +199,8 @@ nbdkit-memory-plugin A virtual memory plugin. nbdkit-null-plugin A null (bitbucket) plugin. +nbdkit-ondemand-plugin Create filesystems on demand. + nbdkit-pattern-plugin Fixed test pattern. nbdkit-partitioning-plugin Create virtual disks from partitions. @@ -758,6 +761,7 @@ export LIBGUESTFS_TRACE=1 %dir %{_libdir}/%{name}/filters %{_mandir}/man1/nbdkit.1* %{_mandir}/man1/nbdkit-captive.1* +%{_mandir}/man1/nbdkit-client.1* %{_mandir}/man1/nbdkit-loop.1* %{_mandir}/man1/nbdkit-probing.1* %{_mandir}/man1/nbdkit-protocol.1* @@ -777,6 +781,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-null-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so @@ -792,6 +797,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-null-plugin.1* +%{_mandir}/man1/nbdkit-ondemand-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* @@ -1074,6 +1080,11 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sun Aug 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.25-1 +- New upstream version 1.21.25. +- New nbdkit-ondemand-plugin. +- New nbdkit-client(1) man page. + * Tue Aug 11 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.24-1 - New upstream version 1.21.24. - Add nbdkit-tls-fallback-filter. diff --git a/sources b/sources index 2747082..38be3ff 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.24.tar.gz) = 3b3def9f2efd61f487b70a4cf88b98f1f2eaddf74c97716f5853341c6421230db21ada6bdcf013cf5240d9a5beefbee241ef97e0eb8060d0ae6b703ea70068a3 -SHA512 (nbdkit-1.21.24.tar.gz.sig) = 892679f93627866990d69b1d1eec1ad5e23664f85a4c992b32c663bab477de185fa01e57078ea24eec81caf7bdaa525b786fc699b568cb591642d86bac680237 +SHA512 (nbdkit-1.21.25.tar.gz) = de1119af5c032aa66eebe8311ee7e9448d371a879f0eb54dfbff8dc6b60578a6d5bf98bda25aa284229ac1985c151dff623ebf7f21b22cdd3882fe0c26b0e3bd +SHA512 (nbdkit-1.21.25.tar.gz.sig) = 0bf0b9ff52897ead5d4a44a2825ba99e2167231fd304d04b7a93119b94495d1f02a721d41fb9124f5842cb4e6d470ce97024b2f5c19e16964ec33b393589d053 From 81dd1c463fe08f475ea7158d2a289feef4078518 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 20 Aug 2020 16:35:49 +0100 Subject: [PATCH 349/683] New upstream version 1.21.26. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5f22d99..b0112be 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.21-development Name: nbdkit -Version: 1.21.25 +Version: 1.21.26 Release: 1%{?dist} Summary: NBD server @@ -1080,6 +1080,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.26-1 +- New upstream version 1.21.26. + * Sun Aug 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.25-1 - New upstream version 1.21.25. - New nbdkit-ondemand-plugin. diff --git a/sources b/sources index 38be3ff..90d6023 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.25.tar.gz) = de1119af5c032aa66eebe8311ee7e9448d371a879f0eb54dfbff8dc6b60578a6d5bf98bda25aa284229ac1985c151dff623ebf7f21b22cdd3882fe0c26b0e3bd -SHA512 (nbdkit-1.21.25.tar.gz.sig) = 0bf0b9ff52897ead5d4a44a2825ba99e2167231fd304d04b7a93119b94495d1f02a721d41fb9124f5842cb4e6d470ce97024b2f5c19e16964ec33b393589d053 +SHA512 (nbdkit-1.21.26.tar.gz) = 47a52f11a3fff16dc7ea95b6f77a3b0372910765b4d988b99e713fe42eaeb8e68f059fd61c1acc7cb5bafbe911064683ab3d3616036d64fd9ef6c158ea94594f +SHA512 (nbdkit-1.21.26.tar.gz.sig) = 6375985454ddbd2e2e0d639d9e5aa6eca72e8eb3fc2193f862386ee3a59cfadf1300499139b0251a5191fbe6097722447efd4f60a0907ab9eceb1d7cba6de417 From 97a541fc4f5646e533b3bcac77336e89dbfaaa4d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Aug 2020 08:46:13 +0100 Subject: [PATCH 350/683] OCaml 4.11.0 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b0112be..2116b41 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.21.26 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1080,6 +1080,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Aug 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.26-2 +- OCaml 4.11.0 rebuild + * Thu Aug 20 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.26-1 - New upstream version 1.21.26. From 71e656304373b3884989d361a2914c498842dc9f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 27 Aug 2020 14:18:26 +0100 Subject: [PATCH 351/683] New stable version 1.22.0. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2116b41..53b0053 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,11 +42,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.21-development +%global source_directory 1.22-stable Name: nbdkit -Version: 1.21.26 -Release: 2%{?dist} +Version: 1.22.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1080,6 +1080,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 27 2020 Richard W.M. Jones <rjones@redhat.com> - 1.22.0-1 +- New stable version 1.22.0. + * Mon Aug 24 2020 Richard W.M. Jones <rjones@redhat.com> - 1.21.26-2 - OCaml 4.11.0 rebuild diff --git a/sources b/sources index 90d6023..6dcbeeb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.21.26.tar.gz) = 47a52f11a3fff16dc7ea95b6f77a3b0372910765b4d988b99e713fe42eaeb8e68f059fd61c1acc7cb5bafbe911064683ab3d3616036d64fd9ef6c158ea94594f -SHA512 (nbdkit-1.21.26.tar.gz.sig) = 6375985454ddbd2e2e0d639d9e5aa6eca72e8eb3fc2193f862386ee3a59cfadf1300499139b0251a5191fbe6097722447efd4f60a0907ab9eceb1d7cba6de417 +SHA512 (nbdkit-1.22.0.tar.gz) = 49610b9fa4ea62f3314e706df4dc993d5cab9d2e0a8b79ccde3e95e2094f52c49bdf3a6ff1f6957f21b161594a7176eb151e8332befdfbfc0712b411e7c41b5b +SHA512 (nbdkit-1.22.0.tar.gz.sig) = aab257e81485d81b4052785437eb8dd6639e57b291e65f710b906215d4d222a88babb6305172cb43b2657d66a68c9e3f75508fdff85793d6dc0d7e2550a0050f From 82eb2bf926d9abf8fe107a242d0401562b26a747 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 27 Aug 2020 16:20:18 +0100 Subject: [PATCH 352/683] Bring the nbdkit spec file closer to what is in RHEL. This conditionalises the spec file similarly to RHEL, removing several subpackages then %{rhel} is defined. If I've done this correctly then for Fedora there should be no change in the output. --- nbdkit.spec | 160 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 138 insertions(+), 22 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 53b0053..648ef19 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -7,7 +7,7 @@ %endif %endif -# We can only compiler the OCaml plugin on platforms which have native +# We can only compile the OCaml plugin on platforms which have native # OCaml support (not bytecode). %ifarch %{ocaml_native_compiler} %global have_ocaml 1 @@ -52,15 +52,20 @@ Summary: NBD server License: BSD URL: https://github.com/libguestfs/nbdkit +%if 0%{?rhel} >= 8 +# On RHEL 8+, we cannot build the package on i686 (no virt stack). +ExcludeArch: i686 +%endif + Source0: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz %if 0%{verify_tarball_signature} Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz.sig # Keyring used to verify tarball signature. -Source2: libguestfs.keyring +Source2: libguestfs.keyring %endif %if 0%{patches_touch_autotools} -BuildRequires: autoconf, automake, libtool +BuildRequires: autoconf, automake, libtool %endif %ifnarch %{complete_test_arches} @@ -70,7 +75,7 @@ BuildRequires: gcc, gcc-c++ BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel BuildRequires: libselinux-devel -%if 0%{?have_libguestfs} +%if !0%{?rhel} && 0%{?have_libguestfs} BuildRequires: libguestfs-devel %endif BuildRequires: libvirt-devel @@ -81,12 +86,15 @@ BuildRequires: libcurl-devel BuildRequires: libnbd-devel >= 1.3.11 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel +%if !0%{?rhel} BuildRequires: genisoimage BuildRequires: rb_libtorrent-devel +%endif BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) BuildRequires: python3-devel +%if !0%{?rhel} %if 0%{?have_ocaml} # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 @@ -95,18 +103,28 @@ BuildRequires: ocaml >= 4.02.2 BuildRequires: ruby-devel BuildRequires: tcl-devel BuildRequires: lua-devel +%endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif # Only for running the test suite: -BuildRequires: /usr/bin/certtool +BuildRequires: %{_bindir}/certtool +BuildRequires: expect +BuildRequires: %{_bindir}/hexdump +BuildRequires: %{_sbindir}/ip BuildRequires: jq -BuildRequires: /usr/bin/nbdsh -BuildRequires: /usr/bin/qemu-img -BuildRequires: /usr/bin/socat -BuildRequires: /usr/sbin/ss -BuildRequires: /usr/bin/ssh-keygen +BuildRequires: %{_bindir}/nbdcopy +BuildRequires: %{_bindir}/nbdinfo +BuildRequires: %{_bindir}/nbdsh +BuildRequires: %{_bindir}/qemu-img +BuildRequires: %{_bindir}/qemu-io +BuildRequires: %{_bindir}/qemu-nbd +BuildRequires: %{_sbindir}/sfdisk +BuildRequires: %{_bindir}/socat +BuildRequires: %{_sbindir}/ss +BuildRequires: %{_bindir}/stat +BuildRequires: %{_bindir}/ssh-keygen # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. @@ -137,8 +155,8 @@ The key features are: * Filters can be stacked in front of plugins to transform the output. -In Fedora, '%{name}' is a meta-package which pulls in the core server -and a useful subset of plugins and filters with minimal dependencies. +'%{name}' is a meta-package which pulls in the core server and a +useful subset of plugins and filters with minimal dependencies. If you want just the server, install '%{name}-server'. @@ -232,6 +250,7 @@ This package contains example plugins for %{name}. # The plugins below have non-trivial dependencies are so are # packaged separately. +%if !0%{?rhel} %package cc-plugin Summary: Write small inline C plugins and scripts for %{name} License: BSD @@ -245,8 +264,10 @@ Requires: %{_bindir}/cat This package contains support for writing inline C plugins and scripts for %{name}. NOTE this is NOT the right package for writing plugins in C, install %{name}-devel for that. +%endif +%if !0%{?rhel} %package cdi-plugin Summary: Containerized Data Import plugin for %{name} License: BSD @@ -258,6 +279,7 @@ Requires: podman %description cdi-plugin This package contains Containerized Data Import support for %{name}. +%endif %package curl-plugin @@ -271,7 +293,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains cURL (HTTP/FTP) support for %{name}. -%if 0%{?have_libguestfs} +%if !0%{?rhel} && 0%{?have_libguestfs} %package guestfs-plugin Summary: libguestfs plugin for %{name} License: BSD @@ -295,6 +317,20 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package is a gzip filter for %{name}. +%if 0%{?rhel} == 8 +%package gzip-plugin +Summary: GZip plugin for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description gzip-plugin +This package is a gzip plugin for %{name}. +%endif + + +%if !0%{?rhel} %package iso-plugin Summary: Virtual ISO 9660 plugin for %{name} License: BSD @@ -305,8 +341,10 @@ Requires: genisoimage %description iso-plugin This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. +%endif +%if !0%{?rhel} %package libvirt-plugin Summary: Libvirt plugin for %{name} License: BSD @@ -318,6 +356,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package is a libvirt plugin for %{name}. It lets you access libvirt guest disks readonly. It is implemented using the libvirt virDomainBlockPeek API. +%endif %package linuxdisk-plugin @@ -333,6 +372,7 @@ Requires: e2fsprogs This package is a virtual Linux disk plugin for %{name}. +%if !0%{?rhel} %package lua-plugin Summary: Lua plugin for %{name} License: BSD @@ -342,6 +382,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description lua-plugin This package lets you write Lua plugins for %{name}. +%endif %package nbd-plugin @@ -356,7 +397,7 @@ This package lets you forward NBD connections from %{name} to another NBD server. -%if 0%{?have_ocaml} +%if !0%{?rhel} && 0%{?have_ocaml} %package ocaml-plugin Summary: OCaml plugin for %{name} License: BSD @@ -384,6 +425,7 @@ This package lets you write OCaml plugins for %{name}. %endif +%if !0%{?rhel} %package perl-plugin Summary: Perl plugin for %{name} License: BSD @@ -393,6 +435,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description perl-plugin This package lets you write Perl plugins for %{name}. +%endif %package python-plugin @@ -406,6 +449,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package lets you write Python 3 plugins for %{name}. +%if !0%{?rhel} %package ruby-plugin Summary: Ruby plugin for %{name} License: BSD @@ -415,6 +459,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description ruby-plugin This package lets you write Ruby plugins for %{name}. +%endif %package ssh-plugin @@ -452,6 +497,7 @@ Requires: tar This package is a tar archive plugin for %{name}. +%if !0%{?rhel} %package tcl-plugin Summary: Tcl plugin for %{name} License: BSD @@ -461,6 +507,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description tcl-plugin This package lets you write Tcl plugins for %{name}. +%endif %package tmpdisk-plugin @@ -471,13 +518,17 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} # For mkfs and mke2fs (defaults). Requires: util-linux, e2fsprogs # For other filesystems. -Suggests: xfsprogs, ntfsprogs, dosfstools +Suggests: xfsprogs +%if !0%{?rhel} +Suggests: ntfsprogs, dosfstools +%endif %description tmpdisk-plugin This package is a remote temporary filesystem disk plugin for %{name}. +%if !0%{?rhel} %package torrent-plugin Summary: BitTorrent plugin for %{name} License: BSD @@ -487,6 +538,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description torrent-plugin This package is a BitTorrent plugin for %{name}. +%endif %ifarch x86_64 @@ -600,6 +652,7 @@ nbdkit-tls-fallback-filter TLS protection filter. nbdkit-truncate-filter Truncate, expand, round up or round down size. +%if !0%{?rhel} %package ext2-filter Summary: ext2, ext3 and ext4 filesystem support for %{name} License: BSD @@ -614,6 +667,7 @@ Obsoletes: %{name}-ext2-plugin <= %{version}-%{release} %description ext2-filter This package contains ext2, ext3 and ext4 filesystem support for %{name}. +%endif %package xz-filter @@ -671,20 +725,29 @@ autoreconf -i %build -# Golang bindings are not enabled in the Fedora build since they don't +# Golang bindings are not enabled in the build since they don't # need to be. Most people would use them by copying the upstream # package into their vendor/ directory. +export PYTHON=%{__python3} %configure \ - PYTHON=%{_bindir}/python3 \ --disable-static \ --disable-golang \ --disable-rust \ -%if 0%{?have_ocaml} +%if !0%{?rhel} && 0%{?have_ocaml} --enable-ocaml \ %else --disable-ocaml \ %endif -%if 0%{?have_libguestfs} +%if 0%{?rhel} + --disable-lua \ + --disable-perl \ + --disable-ruby \ + --disable-tcl \ + --without-ext2 \ + --without-iso \ + --without-libvirt \ +%endif +%if !0%{?rhel} && 0%{?have_libguestfs} --with-libguestfs \ %else --without-libguestfs \ @@ -704,9 +767,23 @@ grep '^PYTHON_VERSION = 3' Makefile # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete +# If cargo happens to be installed on the machine then the +# rust plugin is built. Delete it if this happens. +rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* + +%if 0%{?rhel} != 8 # Remove the deprecated gzip plugin (use gzip filter instead). rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* +%endif + +%if 0%{?rhel} +# In RHEL, remove some plugins we cannot --disable. +for f in cc cdi torrent; do + rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so + rm $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* +done +%endif %check @@ -811,22 +888,28 @@ export LIBGUESTFS_TRACE=1 %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so +%if !0%{?rhel} %{_libdir}/%{name}/plugins/nbdkit-example4-plugin +%endif %{_mandir}/man1/nbdkit-example*-plugin.1* +%if !0%{?rhel} %files cc-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-cc-plugin.so %{_mandir}/man3/nbdkit-cc-plugin.3* +%endif +%if !0%{?rhel} %files cdi-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-cdi-plugin.so %{_mandir}/man1/nbdkit-cdi-plugin.1* +%endif %files curl-plugin @@ -836,7 +919,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-curl-plugin.1* -%if 0%{?have_libguestfs} +%if !0%{?rhel} && 0%{?have_libguestfs} %files guestfs-plugin %doc README %license LICENSE @@ -852,18 +935,31 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-gzip-filter.1* +%if 0%{?rhel} == 8 +%files gzip-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so +%{_mandir}/man1/nbdkit-gzip-plugin.1* +%endif + + +%if !0%{?rhel} %files iso-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-iso-plugin.so %{_mandir}/man1/nbdkit-iso-plugin.1* +%endif +%if !0%{?rhel} %files libvirt-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* +%endif %files linuxdisk-plugin @@ -873,11 +969,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-linuxdisk-plugin.1* +%if !0%{?rhel} %files lua-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so %{_mandir}/man3/nbdkit-lua-plugin.3* +%endif %files nbd-plugin @@ -887,7 +985,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-nbd-plugin.1* -%if 0%{?have_ocaml} +%if !0%{?rhel} && 0%{?have_ocaml} %files ocaml-plugin %doc README %license LICENSE @@ -900,11 +998,13 @@ export LIBGUESTFS_TRACE=1 %endif +%if !0%{?rhel} %files perl-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so %{_mandir}/man3/nbdkit-perl-plugin.3* +%endif %files python-plugin @@ -914,11 +1014,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man3/nbdkit-python-plugin.3* +%if !0%{?rhel} %files ruby-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so %{_mandir}/man3/nbdkit-ruby-plugin.3* +%endif %files ssh-plugin @@ -942,11 +1044,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-tar-plugin.1* +%if !0%{?rhel} %files tcl-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so %{_mandir}/man3/nbdkit-tcl-plugin.3* +%endif %files tmpdisk-plugin @@ -956,11 +1060,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-tmpdisk-plugin.1* +%if !0%{?rhel} %files torrent-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-torrent-plugin.so %{_mandir}/man1/nbdkit-torrent-plugin.1* +%endif %ifarch x86_64 @@ -1033,11 +1139,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-truncate-filter.1* +%if !0%{?rhel} %files ext2-filter %doc README %license LICENSE %{_libdir}/%{name}/filters/nbdkit-ext2-filter.so %{_mandir}/man1/nbdkit-ext2-filter.1* +%endif %files xz-filter @@ -1052,16 +1160,24 @@ export LIBGUESTFS_TRACE=1 %license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c +%if !0%{?rhel} %doc plugins/example4/nbdkit-example4-plugin %doc plugins/lua/example.lua -%if 0%{?have_ocaml} +%endif +%if !0%{?rhel} && 0%{?have_ocaml} %doc plugins/ocaml/example.ml %endif +%if !0%{?rhel} %doc plugins/perl/example.pl +%endif %doc plugins/python/examples/*.py +%if !0%{?rhel} %doc plugins/ruby/example.rb +%endif %doc plugins/sh/example.sh +%if !0%{?rhel} %doc plugins/tcl/example.tcl +%endif %{_includedir}/nbdkit-common.h %{_includedir}/nbdkit-filter.h %{_includedir}/nbdkit-plugin.h From f93c264e8616be130f9dbf49849585a954cc5e21 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Sep 2020 11:30:22 +0100 Subject: [PATCH 353/683] Further unification of Fedora and RHEL spec files. --- nbdkit.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 648ef19..a41f9ac 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -93,7 +93,11 @@ BuildRequires: rb_libtorrent-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) +%if !0%{?rhel} +BuildRequires: platform-python-devel +%else BuildRequires: python3-devel +%endif %if !0%{?rhel} %if 0%{?have_ocaml} # Requires OCaml 4.02.2 which contains fix for @@ -239,8 +243,10 @@ Summary: Example plugins for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +%if !0%{?rhel} # example4 is written in Perl. Requires: %{name}-perl-plugin +%endif %description example-plugins @@ -780,8 +786,8 @@ rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* %if 0%{?rhel} # In RHEL, remove some plugins we cannot --disable. for f in cc cdi torrent; do - rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so - rm $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* + rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so + rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done %endif From 6bcb46c4367e8fefc38a1a38f80e0b13f9938efa Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Sep 2020 11:38:12 +0100 Subject: [PATCH 354/683] Reenable sfdisk test because util-linux contains fix. --- nbdkit.spec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a41f9ac..dbf33c0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.22.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -811,10 +811,6 @@ truncate -s 0 tests/test-cache-max-size.sh # https://www.redhat.com/archives/libguestfs/2020-March/msg00191.html truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh -# Temporarily kill test-partition1.sh because of sfdisk bug: -# https://bugzilla.redhat.com/show_bug.cgi?id=1860461 -truncate -s 0 tests/test-partition1.sh - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 @@ -1202,6 +1198,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.22.0-2 +- Reenable sfdisk test because util-linux contains fix. + * Thu Aug 27 2020 Richard W.M. Jones <rjones@redhat.com> - 1.22.0-1 - New stable version 1.22.0. From f46c7f4f3d7b21cb11a23b7952a28e2d1340f576 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Sep 2020 11:42:52 +0100 Subject: [PATCH 355/683] Fix accidentally reversed %{?rhel} test. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dbf33c0..a31ced0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -94,9 +94,9 @@ BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) %if !0%{?rhel} -BuildRequires: platform-python-devel -%else BuildRequires: python3-devel +%else +BuildRequires: platform-python-devel %endif %if !0%{?rhel} %if 0%{?have_ocaml} From 554ca52aa6224b56af1bdd88e249c648dcd8e73e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Sep 2020 14:03:44 +0100 Subject: [PATCH 356/683] New upstream development version 1.23.2. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a31ced0..9f56e50 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,11 +42,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.22-stable +%global source_directory 1.23-development Name: nbdkit -Version: 1.22.0 -Release: 2%{?dist} +Version: 1.23.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1198,6 +1198,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.2-1 +- New upstream development version 1.23.2. + * Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.22.0-2 - Reenable sfdisk test because util-linux contains fix. diff --git a/sources b/sources index 6dcbeeb..4df881e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.22.0.tar.gz) = 49610b9fa4ea62f3314e706df4dc993d5cab9d2e0a8b79ccde3e95e2094f52c49bdf3a6ff1f6957f21b161594a7176eb151e8332befdfbfc0712b411e7c41b5b -SHA512 (nbdkit-1.22.0.tar.gz.sig) = aab257e81485d81b4052785437eb8dd6639e57b291e65f710b906215d4d222a88babb6305172cb43b2657d66a68c9e3f75508fdff85793d6dc0d7e2550a0050f +SHA512 (nbdkit-1.23.2.tar.gz) = 0e8fa7a9538ba8e3456a492a868d82a9a38342ba63e5f65851c4d2cf309752b83bd2a82a97d5389844fd4aebbd934ba4fa55695b7b0792e2d231325fe86404a5 +SHA512 (nbdkit-1.23.2.tar.gz.sig) = 9c3dfdff3a3989414d0ca50ad5db502da246bbdf735888eda3be9b6ed133ed2e738ce5af26fab22ac94ead1af7be74c7da3756689ba4549bc81ed54de66afabb From acb6fff1f8b738a7c7c9b34d66cdc966ffe8800d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Sep 2020 21:10:20 +0100 Subject: [PATCH 357/683] OCaml 4.11.1 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9f56e50..e9ef82f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.23.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1198,6 +1198,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.2-2 +- OCaml 4.11.1 rebuild + * Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.2-1 - New upstream development version 1.23.2. From 608e04968f3cc6ea0d75d208487cade72e6e3344 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Sep 2020 10:54:36 +0100 Subject: [PATCH 358/683] New upstream development version 1.23.3. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e9ef82f..763e45a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.2 -Release: 2%{?dist} +Version: 1.23.3 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1198,6 +1198,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Sep 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.3-1 +- New upstream development version 1.23.3. + * Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.2-2 - OCaml 4.11.1 rebuild diff --git a/sources b/sources index 4df881e..54b3dab 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.2.tar.gz) = 0e8fa7a9538ba8e3456a492a868d82a9a38342ba63e5f65851c4d2cf309752b83bd2a82a97d5389844fd4aebbd934ba4fa55695b7b0792e2d231325fe86404a5 -SHA512 (nbdkit-1.23.2.tar.gz.sig) = 9c3dfdff3a3989414d0ca50ad5db502da246bbdf735888eda3be9b6ed133ed2e738ce5af26fab22ac94ead1af7be74c7da3756689ba4549bc81ed54de66afabb +SHA512 (nbdkit-1.23.3.tar.gz) = 7051170210128f4091e0704b15bf4b7df0f146bdf239393c214c0c60b4314ba79f746f96e0661f03ee1676b843cec555be350c4dc8635aa9d5de2923bab268e1 +SHA512 (nbdkit-1.23.3.tar.gz.sig) = 1d05950cb4f1d8e3420ba9390f98c35e0585e9976c506c26d5a1192a1a2b3e4e2e886db2d229b7ef93c7db00f22490a8fd022a9bd6d419c7922176de7496ff48 From b199229650c0c0f96f431c9565520ec23d45e872 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Sep 2020 11:17:43 +0100 Subject: [PATCH 359/683] Add extra BRs so more tests can run. --- nbdkit.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 763e45a..92ec631 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -72,7 +72,7 @@ BuildRequires: autoconf, automake, libtool BuildRequires: autoconf, automake, libtool %endif BuildRequires: gcc, gcc-c++ -BuildRequires: /usr/bin/pod2man +BuildRequires: %{_bindir}/pod2man BuildRequires: gnutls-devel BuildRequires: libselinux-devel %if !0%{?rhel} && 0%{?have_libguestfs} @@ -113,7 +113,9 @@ BuildRequires: gnupg2 %endif # Only for running the test suite: +BuildRequires: %{_bindir}/bc BuildRequires: %{_bindir}/certtool +BuildRequires: %{_bindir}/cut BuildRequires: expect BuildRequires: %{_bindir}/hexdump BuildRequires: %{_sbindir}/ip From 39a1bf96ec5fc3ecbb1b54f5066c4b664548f41e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 8 Sep 2020 20:47:34 +0100 Subject: [PATCH 360/683] New upstream development version 1.23.4. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 92ec631..b182c1d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.3 +Version: 1.23.4 Release: 1%{?dist} Summary: NBD server @@ -1200,6 +1200,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 08 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.4-1 +- New upstream development version 1.23.4. + * Sat Sep 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.3-1 - New upstream development version 1.23.3. diff --git a/sources b/sources index 54b3dab..0c40180 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.3.tar.gz) = 7051170210128f4091e0704b15bf4b7df0f146bdf239393c214c0c60b4314ba79f746f96e0661f03ee1676b843cec555be350c4dc8635aa9d5de2923bab268e1 -SHA512 (nbdkit-1.23.3.tar.gz.sig) = 1d05950cb4f1d8e3420ba9390f98c35e0585e9976c506c26d5a1192a1a2b3e4e2e886db2d229b7ef93c7db00f22490a8fd022a9bd6d419c7922176de7496ff48 +SHA512 (nbdkit-1.23.4.tar.gz) = 00136d583ccc798ea69934ba344e30255615f4af55ead5e46f48a47ad3880481cbd681b96de5db8145234625db02f5de28c9bbbcb3a5046e2fd2982a226926fa +SHA512 (nbdkit-1.23.4.tar.gz.sig) = 00e7c024c47e3e84dc78c2a41f8866649ac3b857ce177471b618482ba43e8849c311335dac8211c152dfbbe75d6e38d49e1bd6ff537758bd1c927b11c7d59490 From df6e015a58a874a31d174a805dea868820bad3a1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 16 Sep 2020 15:40:01 +0100 Subject: [PATCH 361/683] New upstream development version 1.23.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b182c1d..950367b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.4 +Version: 1.23.5 Release: 1%{?dist} Summary: NBD server @@ -1200,6 +1200,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Sep 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.5-1 +- New upstream development version 1.23.5. + * Tue Sep 08 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.4-1 - New upstream development version 1.23.4. diff --git a/sources b/sources index 0c40180..9c216cb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.4.tar.gz) = 00136d583ccc798ea69934ba344e30255615f4af55ead5e46f48a47ad3880481cbd681b96de5db8145234625db02f5de28c9bbbcb3a5046e2fd2982a226926fa -SHA512 (nbdkit-1.23.4.tar.gz.sig) = 00e7c024c47e3e84dc78c2a41f8866649ac3b857ce177471b618482ba43e8849c311335dac8211c152dfbbe75d6e38d49e1bd6ff537758bd1c927b11c7d59490 +SHA512 (nbdkit-1.23.5.tar.gz) = a3bdb04b8f8b79a7bf27b08a59eb4e64f05dbc8019601057d8fbe9f8c61587191e65c85f3b1f78591b4ea2d353f36998b6040571f71142cb06657ea8edd9ee39 +SHA512 (nbdkit-1.23.5.tar.gz.sig) = 006100153675bd2148c94a421d9cbd2ed4fcfe828531ba0a7da8912a6fdcaecf2b00a6a2712470b834b9aa05b8743db3aac905dd4d30dbfa68536b8b3bfce04a From bd7742f1d9c864f57f7af4c3c9182e9e72894b5f Mon Sep 17 00:00:00 2001 From: Troy Dawson <tdawson@fedoraproject.org> Date: Mon, 21 Sep 2020 16:18:55 +0000 Subject: [PATCH 362/683] Minor conditional tweak for ELN platform-python-devel is only for RHEL 8, not RHEL 9 or above. Signed-off-by: Troy Dawson <tdawson@redhat.com> --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 950367b..db53aa3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -93,7 +93,7 @@ BuildRequires: rb_libtorrent-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -%if !0%{?rhel} +%if !0%{?rhel} == 8 BuildRequires: python3-devel %else BuildRequires: platform-python-devel From 39e9e43f6ca353909b141854540441b881bdf9cc Mon Sep 17 00:00:00 2001 From: Troy Dawson <tdawson@fedoraproject.org> Date: Mon, 21 Sep 2020 16:37:08 +0000 Subject: [PATCH 363/683] Minor conditional tweak for ELN Signed-off-by: Troy Dawson <tdawson@redhat.com> --- nbdkit.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index db53aa3..a7060ba 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -93,10 +93,10 @@ BuildRequires: rb_libtorrent-devel BuildRequires: bash-completion BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) -%if !0%{?rhel} == 8 -BuildRequires: python3-devel -%else +%if 0%{?rhel} == 8 BuildRequires: platform-python-devel +%else +BuildRequires: python3-devel %endif %if !0%{?rhel} %if 0%{?have_ocaml} From f5d4e643bc1b663697281f44e021aad17f6ff8a4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Sep 2020 18:08:00 +0100 Subject: [PATCH 364/683] New upstream development version 1.23.6. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a7060ba..6f43154 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.5 +Version: 1.23.6 Release: 1%{?dist} Summary: NBD server @@ -1200,6 +1200,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.6-1 +- New upstream development version 1.23.6. + * Wed Sep 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.5-1 - New upstream development version 1.23.5. diff --git a/sources b/sources index 9c216cb..13854a0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.5.tar.gz) = a3bdb04b8f8b79a7bf27b08a59eb4e64f05dbc8019601057d8fbe9f8c61587191e65c85f3b1f78591b4ea2d353f36998b6040571f71142cb06657ea8edd9ee39 -SHA512 (nbdkit-1.23.5.tar.gz.sig) = 006100153675bd2148c94a421d9cbd2ed4fcfe828531ba0a7da8912a6fdcaecf2b00a6a2712470b834b9aa05b8743db3aac905dd4d30dbfa68536b8b3bfce04a +SHA512 (nbdkit-1.23.6.tar.gz) = bb1af217dfb155ae46f5ea4aaa44caccc58bf75559d53b5d202a4121867573e5811a63177cd98be0009fa7cd68958112f948de7b5fb4c11db31d5cad82d2b87b +SHA512 (nbdkit-1.23.6.tar.gz.sig) = f1230ff7532cb10b600fafefdeededc0de34fb5d5dafd53fbcefb47e380a48d5b5b56fe73ea619e726c404962b2b7689a322911fd19de9b5049ed4c923b8aafc From 8100defe5336b87cde692cac66a6c796740d8d31 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Sep 2020 18:18:49 +0100 Subject: [PATCH 365/683] New exportname filter. --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 6f43154..cd53d8c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -576,6 +576,7 @@ Provides: %{name}-ddrescue-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} Provides: %{name}-exitlast-filter = %{version}-%{release} +Provides: %{name}-exportname-filter = %{version}-%{release} Provides: %{name}-extentlist-filter = %{version}-%{release} Provides: %{name}-fua-filter = %{version}-%{release} Provides: %{name}-ip-filter = %{version}-%{release} @@ -619,6 +620,8 @@ nbdkit-error-filter Inject errors. nbdkit-exitlast-filter Exit on last client connection. +nbdkit-exportname-filter Adjust export names between client and plugin. + nbdkit-extentlist-filter Place extent list over a plugin. nbdkit-fua-filter Modify flush behaviour in plugins. @@ -1093,6 +1096,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so +%{_libdir}/%{name}/filters/nbdkit-exportname-filter.so %{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-ip-filter.so @@ -1121,6 +1125,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-exitlast-filter.1* +%{_mandir}/man1/nbdkit-exportname-filter.1* %{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-ip-filter.1* @@ -1202,6 +1207,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Tue Sep 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.6-1 - New upstream development version 1.23.6. +- New exportname filter. * Wed Sep 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.5-1 - New upstream development version 1.23.5. From 504c4c027d5b6fd71bd8ae99d806430a5ec3b645 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Sep 2020 18:33:13 +0100 Subject: [PATCH 366/683] Add patch to fix tests. --- ...h-need-ext2.img-are-conditional-on-H.patch | 52 +++++++++++++++++++ nbdkit.spec | 6 ++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch diff --git a/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch b/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch new file mode 100644 index 0000000..4ebc7fb --- /dev/null +++ b/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch @@ -0,0 +1,52 @@ +From 093e37a13d8b9241ad1e9b093b5e56abbbf2872e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 22 Sep 2020 18:29:08 +0100 +Subject: [PATCH] tests: Tests which need ext2.img are conditional on + HAVE_GUESTFISH. + +When compiling on Fedora, on platforms which don't have a kernel like +i686 we don't have guestfish, so the tests fail with: + + make[2]: guestfish: No such file or directory + +Fixes: commit cecf51f50ba7d22ca8cbbb56543b95f716524fcb +--- + tests/Makefile.am | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 390df711..b5b06810 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1389,6 +1389,13 @@ EXTRA_DIST += test-exportname.sh + # ext2 filter test. + if HAVE_MKE2FS_WITH_D + if HAVE_EXT2 ++if HAVE_GUESTFISH ++ ++LIBGUESTFS_TESTS += test-ext2 ++ ++test_ext2_SOURCES = test-ext2.c test.h ++test_ext2_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) ++test_ext2_LDADD = libtest.la $(LIBGUESTFS_LIBS) + + TESTS += test-ext2-exportname.sh + EXTRA_DIST += test-ext2-exportname.sh +@@ -1410,14 +1417,6 @@ ext2.img: disk test-ext2-exportname.sh + rm manifest + mv $@-t $@ + +-if HAVE_GUESTFISH +- +-LIBGUESTFS_TESTS += test-ext2 +- +-test_ext2_SOURCES = test-ext2.c test.h +-test_ext2_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) +-test_ext2_LDADD = libtest.la $(LIBGUESTFS_LIBS) +- + endif HAVE_GUESTFISH + endif HAVE_EXT2 + endif HAVE_MKE2FS_WITH_D +-- +2.27.0 + diff --git a/nbdkit.spec b/nbdkit.spec index cd53d8c..d253ff0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -39,7 +39,7 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.23-development @@ -64,6 +64,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Upstream patch which fixes the tests on armv7. +Patch1: 0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -1208,6 +1211,7 @@ export LIBGUESTFS_TRACE=1 * Tue Sep 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.6-1 - New upstream development version 1.23.6. - New exportname filter. +- Add patch to fix tests. * Wed Sep 16 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.5-1 - New upstream development version 1.23.5. From 2af579a406abb69015cb6eb81e4196a409ecd336 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 5 Oct 2020 21:39:44 +0100 Subject: [PATCH 367/683] New upstream development version 1.23.7. Add new NBDKit(3) man page for the OCaml plugin. --- ...h-need-ext2.img-are-conditional-on-H.patch | 52 ------------------- nbdkit.spec | 10 ++-- sources | 4 +- 3 files changed, 8 insertions(+), 58 deletions(-) delete mode 100644 0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch diff --git a/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch b/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch deleted file mode 100644 index 4ebc7fb..0000000 --- a/0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 093e37a13d8b9241ad1e9b093b5e56abbbf2872e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 22 Sep 2020 18:29:08 +0100 -Subject: [PATCH] tests: Tests which need ext2.img are conditional on - HAVE_GUESTFISH. - -When compiling on Fedora, on platforms which don't have a kernel like -i686 we don't have guestfish, so the tests fail with: - - make[2]: guestfish: No such file or directory - -Fixes: commit cecf51f50ba7d22ca8cbbb56543b95f716524fcb ---- - tests/Makefile.am | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 390df711..b5b06810 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1389,6 +1389,13 @@ EXTRA_DIST += test-exportname.sh - # ext2 filter test. - if HAVE_MKE2FS_WITH_D - if HAVE_EXT2 -+if HAVE_GUESTFISH -+ -+LIBGUESTFS_TESTS += test-ext2 -+ -+test_ext2_SOURCES = test-ext2.c test.h -+test_ext2_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) -+test_ext2_LDADD = libtest.la $(LIBGUESTFS_LIBS) - - TESTS += test-ext2-exportname.sh - EXTRA_DIST += test-ext2-exportname.sh -@@ -1410,14 +1417,6 @@ ext2.img: disk test-ext2-exportname.sh - rm manifest - mv $@-t $@ - --if HAVE_GUESTFISH -- --LIBGUESTFS_TESTS += test-ext2 -- --test_ext2_SOURCES = test-ext2.c test.h --test_ext2_CFLAGS = $(WARNINGS_CFLAGS) $(LIBGUESTFS_CFLAGS) --test_ext2_LDADD = libtest.la $(LIBGUESTFS_LIBS) -- - endif HAVE_GUESTFISH - endif HAVE_EXT2 - endif HAVE_MKE2FS_WITH_D --- -2.27.0 - diff --git a/nbdkit.spec b/nbdkit.spec index d253ff0..ba8e95e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.6 +Version: 1.23.7 Release: 1%{?dist} Summary: NBD server @@ -64,9 +64,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif -# Upstream patch which fixes the tests on armv7. -Patch1: 0001-tests-Tests-which-need-ext2.img-are-conditional-on-H.patch - %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -1005,6 +1002,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/libnbdkitocaml.so %{_libdir}/ocaml/NBDKit.* %{_mandir}/man3/nbdkit-ocaml-plugin.3* +%{_mandir}/man3/NBDKit.3* %endif @@ -1208,6 +1206,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Oct 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.7-1 +- New upstream development version 1.23.7. +- Add new NBDKit(3) man page for the OCaml plugin. + * Tue Sep 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.6-1 - New upstream development version 1.23.6. - New exportname filter. diff --git a/sources b/sources index 13854a0..90f169d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.6.tar.gz) = bb1af217dfb155ae46f5ea4aaa44caccc58bf75559d53b5d202a4121867573e5811a63177cd98be0009fa7cd68958112f948de7b5fb4c11db31d5cad82d2b87b -SHA512 (nbdkit-1.23.6.tar.gz.sig) = f1230ff7532cb10b600fafefdeededc0de34fb5d5dafd53fbcefb47e380a48d5b5b56fe73ea619e726c404962b2b7689a322911fd19de9b5049ed4c923b8aafc +SHA512 (nbdkit-1.23.7.tar.gz) = 36db9c528e76fc801883bbdfbe1574c830c432c1d44596c5915f758e7dca0d6080ff6a60acf6c7a31a62caf85bbccb3fe3a9d4037ebe10767a40ffb9f82c9e34 +SHA512 (nbdkit-1.23.7.tar.gz.sig) = 726b320e5539fbeb4468d936c188dc2096c579ffc09b2c0392b08eee6c5d89d6b92d4e22c8c7932cec8e30d01ddfa4a73b169a85e47d0d3cbacc10d493a9206f From 7f736bddf3ed9821da8286df62a6cc03d24b3239 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 5 Oct 2020 22:08:11 +0100 Subject: [PATCH 368/683] +BR ocamldoc --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index ba8e95e..cd060f1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -103,6 +103,7 @@ BuildRequires: python3-devel # Requires OCaml 4.02.2 which contains fix for # http://caml.inria.fr/mantis/view.php?id=6693 BuildRequires: ocaml >= 4.02.2 +BuildRequires: ocaml-ocamldoc %endif BuildRequires: ruby-devel BuildRequires: tcl-devel From c67db939d5d6809ce260d24ad323939c79387d13 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 2 Nov 2020 21:45:51 +0000 Subject: [PATCH 369/683] New upstream development version 1.23.8. Add nbdkit-exitwhen-filter. --- nbdkit.spec | 11 ++++++++++- sources | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index cd060f1..69ecdb9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.7 +Version: 1.23.8 Release: 1%{?dist} Summary: NBD server @@ -577,6 +577,7 @@ Provides: %{name}-ddrescue-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} Provides: %{name}-error-filter = %{version}-%{release} Provides: %{name}-exitlast-filter = %{version}-%{release} +Provides: %{name}-exitwhen-filter = %{version}-%{release} Provides: %{name}-exportname-filter = %{version}-%{release} Provides: %{name}-extentlist-filter = %{version}-%{release} Provides: %{name}-fua-filter = %{version}-%{release} @@ -621,6 +622,8 @@ nbdkit-error-filter Inject errors. nbdkit-exitlast-filter Exit on last client connection. +nbdkit-exitwhen-filter Exit gracefully when an event occurs. + nbdkit-exportname-filter Adjust export names between client and plugin. nbdkit-extentlist-filter Place extent list over a plugin. @@ -1098,6 +1101,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so +%{_libdir}/%{name}/filters/nbdkit-exitwhen-filter.so %{_libdir}/%{name}/filters/nbdkit-exportname-filter.so %{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so @@ -1127,6 +1131,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-exitlast-filter.1* +%{_mandir}/man1/nbdkit-exitwhen-filter.1* %{_mandir}/man1/nbdkit-exportname-filter.1* %{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* @@ -1207,6 +1212,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Nov 02 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.8-1 +- New upstream development version 1.23.8. +- Add nbdkit-exitwhen-filter. + * Mon Oct 05 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.7-1 - New upstream development version 1.23.7. - Add new NBDKit(3) man page for the OCaml plugin. diff --git a/sources b/sources index 90f169d..2758d82 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.7.tar.gz) = 36db9c528e76fc801883bbdfbe1574c830c432c1d44596c5915f758e7dca0d6080ff6a60acf6c7a31a62caf85bbccb3fe3a9d4037ebe10767a40ffb9f82c9e34 -SHA512 (nbdkit-1.23.7.tar.gz.sig) = 726b320e5539fbeb4468d936c188dc2096c579ffc09b2c0392b08eee6c5d89d6b92d4e22c8c7932cec8e30d01ddfa4a73b169a85e47d0d3cbacc10d493a9206f +SHA512 (nbdkit-1.23.8.tar.gz) = e4d8a664b52da1155f4ba5c101fa530902fac26a5f8a748d8638243ba8ee1e4e3f709eec50735d22b1640b1a9f9976fc4e9c6b728748d3f27b5a39fe7a52b73d +SHA512 (nbdkit-1.23.8.tar.gz.sig) = f2358a0ab4646311deab1079a7f3d8f29f927da1205ece30153f9103e9709e875c97cbeb03a53bb0ce67ee80a69a4be962b0759a3690e3f889b326586913ed4e From 76a2efc17ecb47605171d42dda9f907cbf24fc72 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 2 Nov 2020 22:07:42 +0000 Subject: [PATCH 370/683] Enable tests on aarch64, disable on armv7. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 69ecdb9..8155eb8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -23,9 +23,9 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. # -# aarch64: https://bugzilla.redhat.com/show_bug.cgi?id=1833346 +# armv7: https://bugzilla.redhat.com/show_bug.cgi?id=1893892 #global broken_test_arches NONE -%global broken_test_arches aarch64 +%global broken_test_arches %{arm} %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and From 4a5d3d7d5add0670c48fc24cee502216a282b122 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 2 Nov 2020 22:21:03 +0000 Subject: [PATCH 371/683] Disable tests again on aarch64. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8155eb8..0d36afc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -23,9 +23,9 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. # -# armv7: https://bugzilla.redhat.com/show_bug.cgi?id=1893892 +# armv7, aarch64: https://bugzilla.redhat.com/show_bug.cgi?id=1893892 #global broken_test_arches NONE -%global broken_test_arches %{arm} +%global broken_test_arches %{arm} aarch64 %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and From e9930a74e3c5e3171f2073a552ddec543c471dcf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 19 Nov 2020 16:26:40 +0000 Subject: [PATCH 372/683] New upstream development version 1.23.9. Add nbdkit-S3-plugin. --- nbdkit.spec | 28 +++++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0d36afc..cdff33d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.8 +Version: 1.23.9 Release: 1%{?dist} Summary: NBD server @@ -98,6 +98,7 @@ BuildRequires: platform-python-devel %else BuildRequires: python3-devel %endif +BuildRequires: python3-boto3 %if !0%{?rhel} %if 0%{?have_ocaml} # Requires OCaml 4.02.2 which contains fix for @@ -471,6 +472,20 @@ This package lets you write Ruby plugins for %{name}. %endif +%package S3-plugin +Summary: Amazon S3 and Ceph plugin for %{name} +License: BSD +BuildArch: noarch + +Requires: %{name}-python-plugin >= 1.22 +Requires: python3-boto3 + + +%description S3-plugin +This package lets you open disk images stored in Amazon S3 +or Ceph using %{name}. + + %package ssh-plugin Summary: SSH plugin for %{name} License: BSD @@ -1035,6 +1050,13 @@ export LIBGUESTFS_TRACE=1 %endif +%files S3-plugin +%doc README +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-S3-plugin +%{_mandir}/man1/nbdkit-S3-plugin.1* + + %files ssh-plugin %doc README %license LICENSE @@ -1212,6 +1234,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Nov 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.9-1 +- New upstream development version 1.23.9. +- Add nbdkit-S3-plugin. + * Mon Nov 02 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.8-1 - New upstream development version 1.23.8. - Add nbdkit-exitwhen-filter. diff --git a/sources b/sources index 2758d82..7df2c3c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.8.tar.gz) = e4d8a664b52da1155f4ba5c101fa530902fac26a5f8a748d8638243ba8ee1e4e3f709eec50735d22b1640b1a9f9976fc4e9c6b728748d3f27b5a39fe7a52b73d -SHA512 (nbdkit-1.23.8.tar.gz.sig) = f2358a0ab4646311deab1079a7f3d8f29f927da1205ece30153f9103e9709e875c97cbeb03a53bb0ce67ee80a69a4be962b0759a3690e3f889b326586913ed4e +SHA512 (nbdkit-1.23.9.tar.gz) = 7058f975fed858a3ae93a6b527aac14e6dba34420857d44a89a7f1f295021ca58bd1cb1ba89787be839a2de26130fa0e56b6e723b2a71e2bb26e2c6adbf11e21 +SHA512 (nbdkit-1.23.9.tar.gz.sig) = e4cc674966795f9453cc724e661aa3ce64d8adf0263b905bb5bce06b03459cd74ad12c3d33d4b2b9568a5e16e17024cd80e5736cc4c325ac3aa5d10930abc355 From e2a79c9eef714190fdd06d99eb849c471a146ac7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 19 Nov 2020 16:49:11 +0000 Subject: [PATCH 373/683] S3-plugin cannot be noarch. --- nbdkit.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index cdff33d..f57087e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -472,12 +472,14 @@ This package lets you write Ruby plugins for %{name}. %endif +# In theory this is noarch, but because plugins are placed in _libdir +# which varies across architectures, RPM does not allow this. %package S3-plugin Summary: Amazon S3 and Ceph plugin for %{name} License: BSD -BuildArch: noarch Requires: %{name}-python-plugin >= 1.22 +# XXX Should not need to add this. Requires: python3-boto3 From 11bae733dc034a58967de39a0c62277a7db6f30a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 3 Dec 2020 12:51:33 +0000 Subject: [PATCH 374/683] Move gzip and tar filters with other filters. Remove nbdkit-tar-plugin (replaced with nbdkit-tar-filter), except RHEL 8. Do not ship nbdkit-S3-plugin on RHEL. --- nbdkit.spec | 95 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 38 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f57087e..46cfc44 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.23.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -316,17 +316,6 @@ This package is a libguestfs plugin for %{name}. %endif -%package gzip-filter -Summary: GZip filter for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description gzip-filter -This package is a gzip filter for %{name}. - - %if 0%{?rhel} == 8 %package gzip-plugin Summary: GZip plugin for %{name} @@ -472,6 +461,7 @@ This package lets you write Ruby plugins for %{name}. %endif +%if !0%{?rhel} # In theory this is noarch, but because plugins are placed in _libdir # which varies across architectures, RPM does not allow this. %package S3-plugin @@ -486,6 +476,7 @@ Requires: python3-boto3 %description S3-plugin This package lets you open disk images stored in Amazon S3 or Ceph using %{name}. +%endif %package ssh-plugin @@ -499,18 +490,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains SSH support for %{name}. -%package tar-filter -Summary: Tar archive filter for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: tar - - -%description tar-filter -This package is a tar archive filter for %{name}. - - +%if 0%{?rhel} == 8 %package tar-plugin Summary: Tar archive plugin for %{name} License: BSD @@ -521,6 +501,7 @@ Requires: tar %description tar-plugin This package is a tar archive plugin for %{name}. +%endif %if !0%{?rhel} @@ -702,6 +683,29 @@ This package contains ext2, ext3 and ext4 filesystem support for %endif +%package gzip-filter +Summary: GZip filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description gzip-filter +This package is a gzip filter for %{name}. + + +%package tar-filter +Summary: Tar archive filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: tar + + +%description tar-filter +This package is a tar archive filter for %{name}. + + %package xz-filter Summary: XZ filter for %{name} License: BSD @@ -807,6 +811,10 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* # Remove the deprecated gzip plugin (use gzip filter instead). rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* + +# Remove the deprecated tar plugin (use tar filter instead). +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-tar-plugin.1* %endif %if 0%{?rhel} @@ -815,6 +823,8 @@ for f in cc cdi torrent; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* %endif @@ -956,13 +966,6 @@ export LIBGUESTFS_TRACE=1 %endif -%files gzip-filter -%doc README -%license LICENSE -%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so -%{_mandir}/man1/nbdkit-gzip-filter.1* - - %if 0%{?rhel} == 8 %files gzip-plugin %doc README @@ -1052,11 +1055,13 @@ export LIBGUESTFS_TRACE=1 %endif +%if !0%{?rhel} %files S3-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-S3-plugin %{_mandir}/man1/nbdkit-S3-plugin.1* +%endif %files ssh-plugin @@ -1066,18 +1071,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ssh-plugin.1* -%files tar-filter -%doc README -%license LICENSE -%{_libdir}/%{name}/filters/nbdkit-tar-filter.so -%{_mandir}/man1/nbdkit-tar-filter.1* - - +%if 0%{?rhel} == 8 %files tar-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so %{_mandir}/man1/nbdkit-tar-plugin.1* +%endif %if !0%{?rhel} @@ -1188,6 +1188,20 @@ export LIBGUESTFS_TRACE=1 %endif +%files gzip-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so +%{_mandir}/man1/nbdkit-gzip-filter.1* + + +%files tar-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-tar-filter.so +%{_mandir}/man1/nbdkit-tar-filter.1* + + %files xz-filter %doc README %license LICENSE @@ -1236,6 +1250,11 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Dec 03 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.9-2 +- Move gzip and tar filters with other filters. +- Remove nbdkit-tar-plugin (replaced with nbdkit-tar-filter), except RHEL 8. +- Do not ship nbdkit-S3-plugin on RHEL. + * Thu Nov 19 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.9-1 - New upstream development version 1.23.9. - Add nbdkit-S3-plugin. From 1854f3665b03a39e0bd81848c86e3a31014d6212 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 3 Dec 2020 13:35:45 +0000 Subject: [PATCH 375/683] Add copy-patches.sh maintainer script from RHEL. --- copy-patches.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ nbdkit.spec | 3 +++ 2 files changed, 58 insertions(+) create mode 100755 copy-patches.sh diff --git a/copy-patches.sh b/copy-patches.sh new file mode 100755 index 0000000..2682a17 --- /dev/null +++ b/copy-patches.sh @@ -0,0 +1,55 @@ +#!/bin/bash - + +set -e + +# Maintainer script to copy patches from the git repo to the current +# directory. Use it like this: +# ./copy-patches.sh + +rhel_version=8.3 + +# Check we're in the right directory. +if [ ! -f nbdkit.spec ]; then + echo "$0: run this from the directory containing 'nbdkit.spec'" + exit 1 +fi + +git_checkout=$HOME/d/nbdkit-rhel-$rhel_version +if [ ! -d $git_checkout ]; then + echo "$0: $git_checkout does not exist" + echo "This script is only for use by the maintainer when preparing a" + echo "nbdkit release on RHEL." + exit 1 +fi + +# Get the base version of nbdkit. +version=`grep '^Version:' nbdkit.spec | awk '{print $2}'` +tag="v$version" + +# Remove any existing patches. +git rm -f [0-9]*.patch ||: +rm -f [0-9]*.patch + +# Get the patches. +(cd $git_checkout; rm -f [0-9]*.patch; git format-patch -N $tag) +mv $git_checkout/[0-9]*.patch . + +# Remove any not to be applied. +rm -f *NOT-FOR-RPM*.patch + +# Add the patches. +git add [0-9]*.patch + +# Print out the patch lines. +echo +echo "--- Copy the following text into nbdkit.spec file" +echo + +echo "# Patches." +for f in [0-9]*.patch; do + n=`echo $f | awk -F- '{print $1}'` + echo "Patch$n: $f" +done + +echo +echo "--- End of text" diff --git a/nbdkit.spec b/nbdkit.spec index 46cfc44..28692ff 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -64,6 +64,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Maintainer script which helps with handling patches. +Source3: copy-patches.sh + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From a814e47ad681bb512ab7bcb13a945a104a01ff85 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 8 Dec 2020 22:21:32 +0000 Subject: [PATCH 376/683] New upstream development version 1.23.10. New nbdkit-sparse-random-plugin. --- nbdkit.spec | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 28692ff..958b6d0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.9 -Release: 2%{?dist} +Version: 1.23.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -202,6 +202,7 @@ Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} Provides: %{name}-random-plugin = %{version}-%{release} Provides: %{name}-sh-plugin = %{version}-%{release} +Provides: %{name}-sparse-random-plugin = %{version}-%{release} Provides: %{name}-split-plugin = %{version}-%{release} Provides: %{name}-streaming-plugin = %{version}-%{release} Provides: %{name}-zero-plugin = %{version}-%{release} @@ -212,37 +213,39 @@ This package contains plugins for %{name} which only depend on simple C libraries: glibc, gnutls, libzstd. Other plugins for nbdkit with more complex dependencies are packaged separately. -nbdkit-data-plugin Serve small amounts of data from the command line. +nbdkit-data-plugin Serve small amounts of data from the command line. -nbdkit-eval-plugin Write a shell script plugin on the command line. +nbdkit-eval-plugin Write a shell script plugin on the command line. -nbdkit-file-plugin The normal file plugin for serving files. +nbdkit-file-plugin The normal file plugin for serving files. -nbdkit-floppy-plugin Create a virtual floppy disk from a directory. +nbdkit-floppy-plugin Create a virtual floppy disk from a directory. -nbdkit-full-plugin A virtual disk that returns ENOSPC errors. +nbdkit-full-plugin A virtual disk that returns ENOSPC errors. -nbdkit-info-plugin Serve client and server information. +nbdkit-info-plugin Serve client and server information. -nbdkit-memory-plugin A virtual memory plugin. +nbdkit-memory-plugin A virtual memory plugin. -nbdkit-null-plugin A null (bitbucket) plugin. +nbdkit-null-plugin A null (bitbucket) plugin. -nbdkit-ondemand-plugin Create filesystems on demand. +nbdkit-ondemand-plugin Create filesystems on demand. -nbdkit-pattern-plugin Fixed test pattern. +nbdkit-pattern-plugin Fixed test pattern. -nbdkit-partitioning-plugin Create virtual disks from partitions. +nbdkit-partitioning-plugin Create virtual disks from partitions. -nbdkit-random-plugin Random content plugin for testing. +nbdkit-random-plugin Random content plugin for testing. -nbdkit-sh-plugin Write plugins as shell scripts or executables. +nbdkit-sh-plugin Write plugins as shell scripts or executables. -nbdkit-split-plugin Concatenate one or more files. +nbdkit-sparse-random-plugin Make sparse random disks. -nbdkit-streaming-plugin A streaming file serving plugin. +nbdkit-split-plugin Concatenate one or more files. -nbdkit-zero-plugin Zero-length plugin for testing. +nbdkit-streaming-plugin A streaming file serving plugin. + +nbdkit-zero-plugin Zero-length plugin for testing. %package example-plugins @@ -904,6 +907,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-sparse-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so @@ -920,6 +924,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man3/nbdkit-sh-plugin.3* +%{_mandir}/man1/nbdkit-sparse-random-plugin.1* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* %{_mandir}/man1/nbdkit-zero-plugin.1* @@ -1253,6 +1258,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Dec 08 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.10-1 +- New upstream development version 1.23.10. +- New nbdkit-sparse-random-plugin. + * Thu Dec 03 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.9-2 - Move gzip and tar filters with other filters. - Remove nbdkit-tar-plugin (replaced with nbdkit-tar-filter), except RHEL 8. From 5e124fe3d9c336b2216aa164e22a94882ae750c7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 8 Dec 2020 22:50:42 +0000 Subject: [PATCH 377/683] Forgot to updated sources in previous commit. --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 7df2c3c..7120420 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.9.tar.gz) = 7058f975fed858a3ae93a6b527aac14e6dba34420857d44a89a7f1f295021ca58bd1cb1ba89787be839a2de26130fa0e56b6e723b2a71e2bb26e2c6adbf11e21 -SHA512 (nbdkit-1.23.9.tar.gz.sig) = e4cc674966795f9453cc724e661aa3ce64d8adf0263b905bb5bce06b03459cd74ad12c3d33d4b2b9568a5e16e17024cd80e5736cc4c325ac3aa5d10930abc355 +SHA512 (nbdkit-1.23.10.tar.gz) = b1121dda040084e09a09af44415452f83eba1ed85f4f57c3c7386621872bc5c3914f1eb08b9f7592bff1533ae16a190f45a432a53215ea49e000f68abfd9b954 +SHA512 (nbdkit-1.23.10.tar.gz.sig) = cb252fc2058fa856672e890a233f36da71e1fe4eac4e38c83b2837ec79efb3379e8b161e7f89067c75462bcfae9a7fb1521b48eff8dfeacb9f69676171e6293a From ab88444bcb8b0929eaf791000624c4181e9e7e1b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 10 Dec 2020 21:06:03 +0000 Subject: [PATCH 378/683] Avoid boto3 dependency on RHEL. --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 958b6d0..8569d36 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.23.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -101,7 +101,9 @@ BuildRequires: platform-python-devel %else BuildRequires: python3-devel %endif +%if !0%{?rhel} BuildRequires: python3-boto3 +%endif %if !0%{?rhel} %if 0%{?have_ocaml} # Requires OCaml 4.02.2 which contains fix for @@ -1258,6 +1260,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Dec 10 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.10-2 +- Avoid boto3 dependency on RHEL. + * Tue Dec 08 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.10-1 - New upstream development version 1.23.10. - New nbdkit-sparse-random-plugin. From e81cccf15f821c20127a54ac1cdbecbd30a730f1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 22 Dec 2020 16:47:14 +0000 Subject: [PATCH 379/683] New upstream development version 1.23.11. New nbdkit-checkwrite-filter. --- nbdkit.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8569d36..c7e9a78 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.10 -Release: 2%{?dist} +Version: 1.23.11 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -578,6 +578,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} Provides: %{name}-blocksize-filter = %{version}-%{release} Provides: %{name}-cache-filter = %{version}-%{release} Provides: %{name}-cacheextents-filter = %{version}-%{release} +Provides: %{name}-checkwrite-filter = %{version}-%{release} Provides: %{name}-cow-filter = %{version}-%{release} Provides: %{name}-ddrescue-filter = %{version}-%{release} Provides: %{name}-delay-filter = %{version}-%{release} @@ -618,6 +619,8 @@ nbdkit-cache-filter Server-side cache. nbdkit-cacheextents-filter Cache extents. +nbdkit-checkwrite-filter Check writes match contents of plugin. + nbdkit-cow-filter Copy-on-write overlay for read-only plugins. nbdkit-ddrescue-filter Filter for serving from ddrescue dump. @@ -1130,6 +1133,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so +%{_libdir}/%{name}/filters/nbdkit-checkwrite-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so @@ -1160,6 +1164,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cacheextents-filter.1* +%{_mandir}/man1/nbdkit-checkwrite-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-ddrescue-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* @@ -1260,6 +1265,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Dec 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.11-1 +- New upstream development version 1.23.11. +- New nbdkit-checkwrite-filter. + * Thu Dec 10 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.10-2 - Avoid boto3 dependency on RHEL. diff --git a/sources b/sources index 7120420..abaefc2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.10.tar.gz) = b1121dda040084e09a09af44415452f83eba1ed85f4f57c3c7386621872bc5c3914f1eb08b9f7592bff1533ae16a190f45a432a53215ea49e000f68abfd9b954 -SHA512 (nbdkit-1.23.10.tar.gz.sig) = cb252fc2058fa856672e890a233f36da71e1fe4eac4e38c83b2837ec79efb3379e8b161e7f89067c75462bcfae9a7fb1521b48eff8dfeacb9f69676171e6293a +SHA512 (nbdkit-1.23.11.tar.gz) = 91e748bad2c557a981b305eb7a255354507d054a2167657eac9ba9294f2e7e9ecc705614f33d0b85095c9042d0be9cdb10ac1ea67954cea7382da4ec366f4b8c +SHA512 (nbdkit-1.23.11.tar.gz.sig) = 5489044aea6f23f24f2b85d15ef37c8914c580eee2a24691dbef9a09b0e99738c5fbc2bed0f38d6fe6bb80ce41f2e0931218e9f30a30a7000e80201b0293da44 From c70939c66edf5df4435388eff433fda9cf3a0bff Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 29 Dec 2020 08:33:08 +0000 Subject: [PATCH 380/683] New upstream development version 1.23.12. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c7e9a78..448b003 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.11 +Version: 1.23.12 Release: 1%{?dist} Summary: NBD server @@ -1265,6 +1265,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Dec 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.12-1 +- New upstream development version 1.23.12. + * Tue Dec 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.11-1 - New upstream development version 1.23.11. - New nbdkit-checkwrite-filter. diff --git a/sources b/sources index abaefc2..5c1815c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.11.tar.gz) = 91e748bad2c557a981b305eb7a255354507d054a2167657eac9ba9294f2e7e9ecc705614f33d0b85095c9042d0be9cdb10ac1ea67954cea7382da4ec366f4b8c -SHA512 (nbdkit-1.23.11.tar.gz.sig) = 5489044aea6f23f24f2b85d15ef37c8914c580eee2a24691dbef9a09b0e99738c5fbc2bed0f38d6fe6bb80ce41f2e0931218e9f30a30a7000e80201b0293da44 +SHA512 (nbdkit-1.23.12.tar.gz) = 7080ed8571c408a8a680f7cd095054f7d2eb770400489149be9659bf8bece59b6efc65e9a6062a14c48227c9c02ad490fc4122a0ead6adfac51bb2d9727e01f2 +SHA512 (nbdkit-1.23.12.tar.gz.sig) = 0a4841e14d7ba62b3d34f2d7d258d92b6bfd47992974d048af4a7e91366d7d167fa2ad554f1a396066291861d37a1850b976f845cb89ac0582f1d1c15565bacc From 2ac5b73d33baed7b4d848cb568b7b640605bcfc9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 29 Dec 2020 16:19:21 +0000 Subject: [PATCH 381/683] New upstream development version 1.23.13. Add configure --with-extra. --- nbdkit.spec | 8 +++++--- sources | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 448b003..e2953c6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.12 +Version: 1.23.13 Release: 1%{?dist} Summary: NBD server @@ -777,6 +777,7 @@ autoreconf -i # package into their vendor/ directory. export PYTHON=%{__python3} %configure \ + --with-extra='%{name}-%{version}-%{release}' \ --disable-static \ --disable-golang \ --disable-rust \ @@ -1265,8 +1266,9 @@ export LIBGUESTFS_TRACE=1 %changelog -* Tue Dec 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.12-1 -- New upstream development version 1.23.12. +* Tue Dec 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.13-1 +- New upstream development version 1.23.13. +- Add configure --with-extra. * Tue Dec 22 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.11-1 - New upstream development version 1.23.11. diff --git a/sources b/sources index 5c1815c..d4b982e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.12.tar.gz) = 7080ed8571c408a8a680f7cd095054f7d2eb770400489149be9659bf8bece59b6efc65e9a6062a14c48227c9c02ad490fc4122a0ead6adfac51bb2d9727e01f2 -SHA512 (nbdkit-1.23.12.tar.gz.sig) = 0a4841e14d7ba62b3d34f2d7d258d92b6bfd47992974d048af4a7e91366d7d167fa2ad554f1a396066291861d37a1850b976f845cb89ac0582f1d1c15565bacc +SHA512 (nbdkit-1.23.13.tar.gz) = be93585c465cea59fe0ff7ad8486db20381ca18017c8bfe668d0fe6ef6678fcd766b50e5f789f9e02991e0d9813169690e327b6e379b56972a9371f89c36c151 +SHA512 (nbdkit-1.23.13.tar.gz.sig) = 9576a26dbeebe4787228efce3362e08d64c2c92595ab00a047c8950f88bcfe0202429f59374831b2e6786ecd54361e0653e2a80b959cd187c6a4816515496282 From 794ce5469936b23bda14b7df23fbf22ec5beb96b Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Thu, 7 Jan 2021 10:35:06 +0900 Subject: [PATCH 382/683] F-34: rebuild against ruby 3.0 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index e2953c6..324e36b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.23.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1266,6 +1266,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 07 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.23.13-2 +- F-34: rebuild against ruby 3.0 + * Tue Dec 29 2020 Richard W.M. Jones <rjones@redhat.com> - 1.23.13-1 - New upstream development version 1.23.13. - Add configure --with-extra. From be8d5f3aaaeadfc0a3e7192407ffa7a2389a10a0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 7 Jan 2021 17:31:33 +0000 Subject: [PATCH 383/683] New upstream version 1.24.0. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 324e36b..fbde5bd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,11 +42,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools 1 # The source directory. -%global source_directory 1.23-development +%global source_directory 1.24-stable Name: nbdkit -Version: 1.23.13 -Release: 2%{?dist} +Version: 1.24.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1266,6 +1266,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.24.0-1 +- New upstream version 1.24.0. + * Thu Jan 07 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.23.13-2 - F-34: rebuild against ruby 3.0 diff --git a/sources b/sources index d4b982e..bffaaa7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.13.tar.gz) = be93585c465cea59fe0ff7ad8486db20381ca18017c8bfe668d0fe6ef6678fcd766b50e5f789f9e02991e0d9813169690e327b6e379b56972a9371f89c36c151 -SHA512 (nbdkit-1.23.13.tar.gz.sig) = 9576a26dbeebe4787228efce3362e08d64c2c92595ab00a047c8950f88bcfe0202429f59374831b2e6786ecd54361e0653e2a80b959cd187c6a4816515496282 +SHA512 (nbdkit-1.24.0.tar.gz) = cef2976163856b0c46148f9953764ed9ddf59fd2644380375ab34b7a10e981c3bebf892b63771b20a4a34f6ffb59d80f46204a38aa9fd0cd9fef82ff098b35d8 +SHA512 (nbdkit-1.24.0.tar.gz.sig) = 71888a984f3dcb73b87903a9e56bf5a6c6f8114907cb092185e0e3d44ce0406ae62e9671de87fd000f72f73fe732f23c69cdbb2eafa496884846a39fc70f90fa From 471e5a610fcf0c8d5430333f99ec72ad440059a1 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Fri, 8 Jan 2021 09:39:22 +0900 Subject: [PATCH 384/683] F-34: rebuild against ruby 3.0 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index fbde5bd..94948b7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.24.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1266,6 +1266,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jan 08 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.24.0-2 +- F-34: rebuild against ruby 3.0 + * Thu Jan 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.24.0-1 - New upstream version 1.24.0. From d7053f2f26ca43d51438bac7641384c863a317a5 Mon Sep 17 00:00:00 2001 From: Tom Stellard <tstellar@redhat.com> Date: Fri, 8 Jan 2021 04:10:51 +0000 Subject: [PATCH 385/683] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 94948b7..977a251 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -67,6 +67,7 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh +BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif From f0f5e8b3ec84ff88900395d908d654770d2efe55 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 19 Jan 2021 15:48:47 +0000 Subject: [PATCH 386/683] Obsolete nbdkit-tar-plugin to provide smooth upgrades to F33+. --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 977a251..9652e94 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.24.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -713,6 +713,8 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: tar +Obsoletes: %{name}-tar-plugin < 1.23.9-3 + %description tar-filter This package is a tar archive filter for %{name}. @@ -1267,6 +1269,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jan 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.24.0-3 +- Obsolete nbdkit-tar-plugin to provide smooth upgrades to F33+. + * Fri Jan 08 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.24.0-2 - F-34: rebuild against ruby 3.0 From a720df9554a818c3bef0042b523e0ca4cf0a8eb8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 20 Jan 2021 13:31:41 +0000 Subject: [PATCH 387/683] New upstream development version 1.25.1. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9652e94..f9f7539 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,11 +42,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools 1 # The source directory. -%global source_directory 1.24-stable +%global source_directory 1.25-development Name: nbdkit -Version: 1.24.0 -Release: 3%{?dist} +Version: 1.25.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1269,6 +1269,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Jan 20 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.1-1 +- New upstream development version 1.25.1. + * Tue Jan 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.24.0-3 - Obsolete nbdkit-tar-plugin to provide smooth upgrades to F33+. diff --git a/sources b/sources index bffaaa7..0a830f0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.24.0.tar.gz) = cef2976163856b0c46148f9953764ed9ddf59fd2644380375ab34b7a10e981c3bebf892b63771b20a4a34f6ffb59d80f46204a38aa9fd0cd9fef82ff098b35d8 -SHA512 (nbdkit-1.24.0.tar.gz.sig) = 71888a984f3dcb73b87903a9e56bf5a6c6f8114907cb092185e0e3d44ce0406ae62e9671de87fd000f72f73fe732f23c69cdbb2eafa496884846a39fc70f90fa +SHA512 (nbdkit-1.25.1.tar.gz) = 72b18c3be56240aeda4087ce3ebf7addf7a37ca4a063f39775b93dd89b9aefd196423a5912f581cf9f5ea774fca6e2159b2490d638260c4781627f5128e98031 +SHA512 (nbdkit-1.25.1.tar.gz.sig) = ef24fe7a4cd353f2646829615a99532060429ffd93e41aba3b59a3d4d7a6335c6c47254fb4b43192cd974e72c4c2248b644c6c254ed1323787db3f781620e734 From 54e2732c5848f8055db5773b549ade86b1efa6c3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Tue, 26 Jan 2021 21:16:57 +0000 Subject: [PATCH 388/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index f9f7539..475e729 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1269,6 +1269,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.25.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Wed Jan 20 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.1-1 - New upstream development version 1.25.1. From aef3b97d9399c4e08663a089815d2c393e928f2d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 3 Feb 2021 22:37:24 +0000 Subject: [PATCH 389/683] New upstream development version 1.25.2. Remove all remaining traces of nbdkit-gzip-plugin and nbdkit-tar-plugin. Remove nbdkit-streaming-plugin (deprecated upstream). Remove obsoletes of old nbdkit-ext2-plugin. --- nbdkit.spec | 76 +++++++---------------------------------------------- sources | 4 +-- 2 files changed, 11 insertions(+), 69 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 475e729..c794d73 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.1 -Release: 2%{?dist} +Version: 1.25.2 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -207,7 +207,6 @@ Provides: %{name}-random-plugin = %{version}-%{release} Provides: %{name}-sh-plugin = %{version}-%{release} Provides: %{name}-sparse-random-plugin = %{version}-%{release} Provides: %{name}-split-plugin = %{version}-%{release} -Provides: %{name}-streaming-plugin = %{version}-%{release} Provides: %{name}-zero-plugin = %{version}-%{release} @@ -246,8 +245,6 @@ nbdkit-sparse-random-plugin Make sparse random disks. nbdkit-split-plugin Concatenate one or more files. -nbdkit-streaming-plugin A streaming file serving plugin. - nbdkit-zero-plugin Zero-length plugin for testing. @@ -325,19 +322,6 @@ This package is a libguestfs plugin for %{name}. %endif -%if 0%{?rhel} == 8 -%package gzip-plugin -Summary: GZip plugin for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description gzip-plugin -This package is a gzip plugin for %{name}. -%endif - - %if !0%{?rhel} %package iso-plugin Summary: Virtual ISO 9660 plugin for %{name} @@ -499,20 +483,6 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains SSH support for %{name}. -%if 0%{?rhel} == 8 -%package tar-plugin -Summary: Tar archive plugin for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: tar - - -%description tar-plugin -This package is a tar archive plugin for %{name}. -%endif - - %if !0%{?rhel} %package tcl-plugin Summary: Tcl plugin for %{name} @@ -684,10 +654,6 @@ License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -# Remove in Fedora 34: -Provides: %{name}-ext2-plugin = %{version}-%{release} -Obsoletes: %{name}-ext2-plugin <= %{version}-%{release} - %description ext2-filter This package contains ext2, ext3 and ext4 filesystem support for @@ -822,19 +788,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # rust plugin is built. Delete it if this happens. rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* -%if 0%{?rhel} != 8 -# Remove the deprecated gzip plugin (use gzip filter instead). -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so -rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* - -# Remove the deprecated tar plugin (use tar filter instead). -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so -rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-tar-plugin.1* -%endif - %if 0%{?rhel} # In RHEL, remove some plugins we cannot --disable. -for f in cc cdi torrent; do +for f in cc cdi streaming torrent; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done @@ -918,7 +874,6 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sparse-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so %{_mandir}/man1/nbdkit-data-plugin.1* %{_mandir}/man1/nbdkit-eval-plugin.1* @@ -935,7 +890,6 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man3/nbdkit-sh-plugin.3* %{_mandir}/man1/nbdkit-sparse-random-plugin.1* %{_mandir}/man1/nbdkit-split-plugin.1* -%{_mandir}/man1/nbdkit-streaming-plugin.1* %{_mandir}/man1/nbdkit-zero-plugin.1* @@ -983,15 +937,6 @@ export LIBGUESTFS_TRACE=1 %endif -%if 0%{?rhel} == 8 -%files gzip-plugin -%doc README -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so -%{_mandir}/man1/nbdkit-gzip-plugin.1* -%endif - - %if !0%{?rhel} %files iso-plugin %doc README @@ -1088,15 +1033,6 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ssh-plugin.1* -%if 0%{?rhel} == 8 -%files tar-plugin -%doc README -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so -%{_mandir}/man1/nbdkit-tar-plugin.1* -%endif - - %if !0%{?rhel} %files tcl-plugin %doc README @@ -1269,6 +1205,12 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Feb 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.2-1 +- New upstream development version 1.25.2. +- Remove all remaining traces of nbdkit-gzip-plugin and nbdkit-tar-plugin. +- Remove nbdkit-streaming-plugin (deprecated upstream). +- Remove obsoletes of old nbdkit-ext2-plugin. + * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.25.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index 0a830f0..7a2926b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.1.tar.gz) = 72b18c3be56240aeda4087ce3ebf7addf7a37ca4a063f39775b93dd89b9aefd196423a5912f581cf9f5ea774fca6e2159b2490d638260c4781627f5128e98031 -SHA512 (nbdkit-1.25.1.tar.gz.sig) = ef24fe7a4cd353f2646829615a99532060429ffd93e41aba3b59a3d4d7a6335c6c47254fb4b43192cd974e72c4c2248b644c6c254ed1323787db3f781620e734 +SHA512 (nbdkit-1.25.2.tar.gz) = 1b0e55cbe3d043a6dc16e3d5291d1eca01b2c93ea3b8ff4a2e8bcdf65d39f4997c816386981d7cc2f8a052c641b92129aa6963361e1c21358618fcd274553b29 +SHA512 (nbdkit-1.25.2.tar.gz.sig) = 55866ea439409e64e1ff1bab82a69c78ad088690632cf27b5f9d4f8759256deb26ef932c68dcd8fa551cd7e2a0eaaf4223ce56b663d34e4015dfa0328b6270e1 From 13b6512f5ee3e4868f31b0047aca523de9c7423e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Feb 2021 08:52:06 +0000 Subject: [PATCH 390/683] Fix removal of streaming plugin. --- nbdkit.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c794d73..d3a63f9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -788,9 +788,13 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # rust plugin is built. Delete it if this happens. rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* +# Remove the streaming plugin (deprecated upstream). +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-streaming-plugin.1* + %if 0%{?rhel} # In RHEL, remove some plugins we cannot --disable. -for f in cc cdi streaming torrent; do +for f in cc cdi torrent; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done From b3800b1c4df16b7a812e053c9bdef87d27792047 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Mar 2021 15:42:37 +0000 Subject: [PATCH 391/683] OCaml 4.12.0 build (RHBZ#1934138). --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index d3a63f9..8745e36 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1209,6 +1209,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Mar 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.2-2 +- OCaml 4.12.0 build (RHBZ#1934138). + * Wed Feb 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.2-1 - New upstream development version 1.25.2. - Remove all remaining traces of nbdkit-gzip-plugin and nbdkit-tar-plugin. From 69ac3379ace23a5d6a13d40fd840dab193db2b6a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Mar 2021 22:06:28 +0000 Subject: [PATCH 392/683] New upstream development version 1.25.3. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8745e36..42d21fe 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.2 -Release: 2%{?dist} +Version: 1.25.3 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1209,6 +1209,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Mar 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-1 +- New upstream development version 1.25.3. + * Tue Mar 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.2-2 - OCaml 4.12.0 build (RHBZ#1934138). diff --git a/sources b/sources index 7a2926b..ffd76d8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.2.tar.gz) = 1b0e55cbe3d043a6dc16e3d5291d1eca01b2c93ea3b8ff4a2e8bcdf65d39f4997c816386981d7cc2f8a052c641b92129aa6963361e1c21358618fcd274553b29 -SHA512 (nbdkit-1.25.2.tar.gz.sig) = 55866ea439409e64e1ff1bab82a69c78ad088690632cf27b5f9d4f8759256deb26ef932c68dcd8fa551cd7e2a0eaaf4223ce56b663d34e4015dfa0328b6270e1 +SHA512 (nbdkit-1.25.3.tar.gz) = b727d6cea2c32e8c0e95bb697dfe7a1daae31f1e5411ff21d8304886f313ca82120e067fdd034f868410abeed3bd4515a39ede4d80c808bc194c67e817d4b00c +SHA512 (nbdkit-1.25.3.tar.gz.sig) = 8e850f49a1daaefbf7835ffc03c90b2b5cb4917ae2ccb7e1db43e2b9262260e2c03172bf7f81554b9d72805f25059dc32eea11c88472d48ca5748abec982eb68 From a5d0de331a9b4431e3838d547c4b6e55ec607af3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Mar 2021 14:15:59 +0000 Subject: [PATCH 393/683] Remove socat dependency in RHEL 9. --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 42d21fe..8c4e0cc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -135,7 +135,9 @@ BuildRequires: %{_bindir}/qemu-img BuildRequires: %{_bindir}/qemu-io BuildRequires: %{_bindir}/qemu-nbd BuildRequires: %{_sbindir}/sfdisk +%if !0%{?rhel} BuildRequires: %{_bindir}/socat +%endif BuildRequires: %{_sbindir}/ss BuildRequires: %{_bindir}/stat BuildRequires: %{_bindir}/ssh-keygen @@ -1209,6 +1211,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Mar 4 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-2 +- Remove socat dependency in RHEL 9. + * Tue Mar 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-1 - New upstream development version 1.25.3. From 157d6381114a8753dc0277809d21af0840f302ed Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Mar 2021 13:06:41 +0000 Subject: [PATCH 394/683] Make nbdkit-vddk-plugin depend on libxcrypt-devel (RHBZ#1931818). --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8c4e0cc..faee8f9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -535,6 +535,8 @@ Summary: VMware VDDK plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} +# https://bugzilla.redhat.com/show_bug.cgi?id=1931818 +Requires: libxcrypt-compat %description vddk-plugin @@ -1211,6 +1213,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Mar 9 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-3 +- Make nbdkit-vddk-plugin depend on libxcrypt-devel (RHBZ#1931818). + * Thu Mar 4 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-2 - Remove socat dependency in RHEL 9. From ae88b94409a3e7ca5315389272ff558ddba6652d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Mar 2021 13:11:30 +0000 Subject: [PATCH 395/683] Fix %changelog message in previous commit. The actual change is OK, but I got the name of the package wrong in the %changelog message. --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index faee8f9..54770dd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1214,7 +1214,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Tue Mar 9 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-3 -- Make nbdkit-vddk-plugin depend on libxcrypt-devel (RHBZ#1931818). +- Make nbdkit-vddk-plugin depend on libxcrypt-compat (RHBZ#1931818). * Thu Mar 4 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-2 - Remove socat dependency in RHEL 9. From 8644a889cbd01cd09b983cafbe6b0afa8b78ac4d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 10 Mar 2021 22:26:23 +0000 Subject: [PATCH 396/683] New upstream development version 1.25.4. New filter: multi-conn --- nbdkit.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 54770dd..4268a53 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,8 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.3 -Release: 3%{?dist} +Version: 1.25.4 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -566,6 +566,7 @@ Provides: %{name}-fua-filter = %{version}-%{release} Provides: %{name}-ip-filter = %{version}-%{release} Provides: %{name}-limit-filter = %{version}-%{release} Provides: %{name}-log-filter = %{version}-%{release} +Provides: %{name}-multi-conn-filter = %{version}-%{release} Provides: %{name}-nocache-filter = %{version}-%{release} Provides: %{name}-noextents-filter = %{version}-%{release} Provides: %{name}-nofilter-filter = %{version}-%{release} @@ -620,6 +621,8 @@ nbdkit-limit-filter Limit nr clients that can connect concurrently. nbdkit-log-filter Log all transactions to a file. +nbdkit-multi-conn-filter Enable, emulate or disable multi-conn. + nbdkit-nocache-filter Disable cache requests in the underlying plugin. nbdkit-noextents-filter Disable extents in the underlying plugin. @@ -1094,6 +1097,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so +%{_libdir}/%{name}/filters/nbdkit-multi-conn-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so %{_libdir}/%{name}/filters/nbdkit-nofilter-filter.so @@ -1125,6 +1129,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* +%{_mandir}/man1/nbdkit-multi-conn-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* %{_mandir}/man1/nbdkit-nofilter-filter.1* @@ -1213,6 +1218,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Mar 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.4-1 +- New upstream development version 1.25.4. +- New filter: multi-conn + * Tue Mar 9 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.3-3 - Make nbdkit-vddk-plugin depend on libxcrypt-compat (RHBZ#1931818). diff --git a/sources b/sources index ffd76d8..2fa8882 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.3.tar.gz) = b727d6cea2c32e8c0e95bb697dfe7a1daae31f1e5411ff21d8304886f313ca82120e067fdd034f868410abeed3bd4515a39ede4d80c808bc194c67e817d4b00c -SHA512 (nbdkit-1.25.3.tar.gz.sig) = 8e850f49a1daaefbf7835ffc03c90b2b5cb4917ae2ccb7e1db43e2b9262260e2c03172bf7f81554b9d72805f25059dc32eea11c88472d48ca5748abec982eb68 +SHA512 (nbdkit-1.25.4.tar.gz) = 59d20e16cac56013c15f81fb41bc95f45fdbb22d6977bfed9b078ef15a9a551214dba2cc6ce8bf6a6859c43f424bb98455a3ebb351eb79b486491df6a8a8e85a +SHA512 (nbdkit-1.25.4.tar.gz.sig) = 0e1a39111999efaf3e19f2ed73b546b2e96e45bab2f351057ff3e0a1f0119f8416d9e645149dd2446b6ea66c360d1984986df609b293227d4841aac94f631143 From 2d8cf73f160ff8442fa8d2626637e9c1f8f261fd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 15 Mar 2021 20:35:14 +0000 Subject: [PATCH 397/683] Fix upstream URL. Enable non-guestfs tests on all arches. --- nbdkit.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4268a53..c52cd0d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -24,8 +24,7 @@ # it as a bug and add it to this list. # # armv7, aarch64: https://bugzilla.redhat.com/show_bug.cgi?id=1893892 -#global broken_test_arches NONE -%global broken_test_arches %{arm} aarch64 +%global broken_test_arches NONE %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and @@ -46,11 +45,11 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD -URL: https://github.com/libguestfs/nbdkit +URL: https://gitlab.com/nbdkit/nbdkit %if 0%{?rhel} >= 8 # On RHEL 8+, we cannot build the package on i686 (no virt stack). @@ -1218,6 +1217,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Mar 15 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.4-2 +- Fix upstream URL. +- Enable non-guestfs tests on all arches. + * Wed Mar 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.4-1 - New upstream development version 1.25.4. - New filter: multi-conn From 0dad06ac95c57be6ab009be7427c80d7ada92b79 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 3 Apr 2021 14:00:40 +0100 Subject: [PATCH 398/683] New upstream version 1.25.5. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c52cd0d..51e1142 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -38,14 +38,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.25-development Name: nbdkit -Version: 1.25.4 -Release: 2%{?dist} +Version: 1.25.5 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1217,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Apr 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.5-1 +- New upstream version 1.25.5. + * Mon Mar 15 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.4-2 - Fix upstream URL. - Enable non-guestfs tests on all arches. diff --git a/sources b/sources index 2fa8882..a0ea8e9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.4.tar.gz) = 59d20e16cac56013c15f81fb41bc95f45fdbb22d6977bfed9b078ef15a9a551214dba2cc6ce8bf6a6859c43f424bb98455a3ebb351eb79b486491df6a8a8e85a -SHA512 (nbdkit-1.25.4.tar.gz.sig) = 0e1a39111999efaf3e19f2ed73b546b2e96e45bab2f351057ff3e0a1f0119f8416d9e645149dd2446b6ea66c360d1984986df609b293227d4841aac94f631143 +SHA512 (nbdkit-1.25.5.tar.gz) = 1bbfdcef4c8545d7dd0c07e4f08a212c44bb295bf29951870302f83019f5a7269d0efff0839241829592c59437126cf5c4c53402671d2ff8359905e5809aed61 +SHA512 (nbdkit-1.25.5.tar.gz.sig) = 8ef7b27cfd0c36fee3f8b0242bba2eae90486a88e2faea251d6ceba5547461cf3e42f6117a4a9c27e63c9ca791bdfa04e80672e49991007de6fc36d9c46da446 From 1401871dcf6c380fae9951d12f5237e335b31165 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 10 Apr 2021 10:51:35 +0100 Subject: [PATCH 399/683] New upstream version 1.25.6. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 51e1142..35e0627 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -44,7 +44,7 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.5 +Version: 1.25.6 Release: 1%{?dist} Summary: NBD server @@ -1217,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Apr 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.6-1 +- New upstream version 1.25.6. + * Sat Apr 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.5-1 - New upstream version 1.25.5. diff --git a/sources b/sources index a0ea8e9..22a1133 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.5.tar.gz) = 1bbfdcef4c8545d7dd0c07e4f08a212c44bb295bf29951870302f83019f5a7269d0efff0839241829592c59437126cf5c4c53402671d2ff8359905e5809aed61 -SHA512 (nbdkit-1.25.5.tar.gz.sig) = 8ef7b27cfd0c36fee3f8b0242bba2eae90486a88e2faea251d6ceba5547461cf3e42f6117a4a9c27e63c9ca791bdfa04e80672e49991007de6fc36d9c46da446 +SHA512 (nbdkit-1.25.6.tar.gz) = 127234467e6a13718c9f6f5581f7e26f98f8478d40717f53a00309fa29c16879da3e91c93e5e5dacbe769ca399f80a021ed37dd8be9da8b5a8f8617459c77b66 +SHA512 (nbdkit-1.25.6.tar.gz.sig) = 2ab74a238f419aad808193cd2f76742a943cbfcd0f2748f519261cd496b2a45b905ffb64559ff59b99136174dc7ea56e320688787a08a51cd166dbb3dfa087fc From 54b225aed234be0d92e1c3c490eda7997efb657e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 5 May 2021 13:05:40 +0100 Subject: [PATCH 400/683] New upstream version 1.25.7. Disable libguestfs tests on riscv64. --- nbdkit.spec | 16 +++++++++++++--- sources | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 35e0627..00c9f9f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,8 +1,14 @@ %global _hardened_build 1 %ifarch %{kernel_arches} -# ... except that it doesn't work on s390, so: -%ifnarch s390 s390x +# riscv64 tests fail with +# qemu-system-riscv64: invalid accelerator kvm +# qemu-system-riscv64: falling back to tcg +# qemu-system-riscv64: unable to find CPU model 'host' +# This seems to require changes in libguestfs and/or qemu to support +# -cpu max or -cpu virt. +# s390x builders can't run libguestfs +%ifnarch riscv64 s390 s390x %global have_libguestfs 1 %endif %endif @@ -44,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.6 +Version: 1.25.7 Release: 1%{?dist} Summary: NBD server @@ -1217,6 +1223,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed May 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.7-1 +- New upstream version 1.25.7. +- Disable libguestfs tests on riscv64. + * Sat Apr 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.6-1 - New upstream version 1.25.6. diff --git a/sources b/sources index 22a1133..db5b068 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.6.tar.gz) = 127234467e6a13718c9f6f5581f7e26f98f8478d40717f53a00309fa29c16879da3e91c93e5e5dacbe769ca399f80a021ed37dd8be9da8b5a8f8617459c77b66 -SHA512 (nbdkit-1.25.6.tar.gz.sig) = 2ab74a238f419aad808193cd2f76742a943cbfcd0f2748f519261cd496b2a45b905ffb64559ff59b99136174dc7ea56e320688787a08a51cd166dbb3dfa087fc +SHA512 (nbdkit-1.25.7.tar.gz) = a4ff0045971bddb89ace27968f4248c1302fbc9aa7e19a417f3bb79e78c531cf9a561c5dccb66580378a0f6b2bbe7b344ba7a6eb88e3bc3bf2dedb275bfeafff +SHA512 (nbdkit-1.25.7.tar.gz.sig) = f28c2aeaaa142767408d537d3e01437c24385c22e6a20cccb76edd6c9edc3fb82dc835cf65dcc4718bed90e31c458bbfe3b205bb3557013ed2ae2164321b080d From 2f2ada7150c14de2fc1675b9b3919ac925760bd9 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Fri, 21 May 2021 12:09:19 +0200 Subject: [PATCH 401/683] Perl 5.34 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 00c9f9f..d4183a6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1223,6 +1223,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.7-2 +- Perl 5.34 rebuild + * Wed May 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.7-1 - New upstream version 1.25.7. - Disable libguestfs tests on riscv64. From 6525018aaa498815972e5db7537b29606a906a90 Mon Sep 17 00:00:00 2001 From: Leigh Scott <leigh123linux@gmail.com> Date: Tue, 25 May 2021 11:23:21 +0100 Subject: [PATCH 402/683] Rebuild for new libtorrent --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index d4183a6..b4c6701 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.7 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1223,6 +1223,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue May 25 2021 Leigh Scott <leigh123linux@gmail.com> - 1.25.7-3 +- Rebuild for new libtorrent + * Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.7-2 - Perl 5.34 rebuild From b607a227bd1c5336ba67755842b5e41846112021 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Tue, 25 May 2021 16:13:37 +0200 Subject: [PATCH 403/683] Perl 5.34 re-rebuild updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b4c6701..1cce80b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.7 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD @@ -1223,6 +1223,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue May 25 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.7-4 +- Perl 5.34 re-rebuild updated packages + * Tue May 25 2021 Leigh Scott <leigh123linux@gmail.com> - 1.25.7-3 - Rebuild for new libtorrent From ade90e480c88f131b9afb3711b7dcf9e9ac54783 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 25 May 2021 15:33:43 +0100 Subject: [PATCH 404/683] New upstream version 1.25.8. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1cce80b..aac8f24 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.7 -Release: 4%{?dist} +Version: 1.25.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1223,6 +1223,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue May 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.8-1 +- New upstream version 1.25.8. + * Tue May 25 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.7-4 - Perl 5.34 re-rebuild updated packages diff --git a/sources b/sources index db5b068..bf1f333 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.7.tar.gz) = a4ff0045971bddb89ace27968f4248c1302fbc9aa7e19a417f3bb79e78c531cf9a561c5dccb66580378a0f6b2bbe7b344ba7a6eb88e3bc3bf2dedb275bfeafff -SHA512 (nbdkit-1.25.7.tar.gz.sig) = f28c2aeaaa142767408d537d3e01437c24385c22e6a20cccb76edd6c9edc3fb82dc835cf65dcc4718bed90e31c458bbfe3b205bb3557013ed2ae2164321b080d +SHA512 (nbdkit-1.25.8.tar.gz) = 4084fbc3fb24eb20114e8c31eb4ea1f763a2c4c09048a29447f9df7a0101049e97d82ed00b581ff22fc4ec5e0221beeb67107f57be101544b49bc6192e8ada13 +SHA512 (nbdkit-1.25.8.tar.gz.sig) = 71f9ddc29974474b074e06ba19ccaffbca59ed425e73a3962ed698dfbcc94aeddbcd0b138fe3e1c99074cfcb79c404c790a5418b5083ccf3daac65643791a189 From ef181318d5264657f0022ada4f4240ad47534f91 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Tue, 25 May 2021 21:10:34 +0200 Subject: [PATCH 405/683] Perl 5.34 re-rebuild of updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index aac8f24..a8592dd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1223,6 +1223,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue May 25 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.8-2 +- Perl 5.34 re-rebuild of updated packages + * Tue May 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.8-1 - New upstream version 1.25.8. From f628c070193621ca9cbdef0f34c2f9f065552c02 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 2 Jun 2021 12:30:44 +0100 Subject: [PATCH 406/683] Add gating tests for RHEL 9 --- gating.yaml | 6 ++++++ tests/basic-test.sh | 6 ++++++ tests/tests.yml | 12 ++++++++++++ 3 files changed, 24 insertions(+) create mode 100755 gating.yaml create mode 100755 tests/basic-test.sh create mode 100755 tests/tests.yml diff --git a/gating.yaml b/gating.yaml new file mode 100755 index 0000000..648918d --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/tests/basic-test.sh b/tests/basic-test.sh new file mode 100755 index 0000000..07eb459 --- /dev/null +++ b/tests/basic-test.sh @@ -0,0 +1,6 @@ +#!/bin/bash - +set -e +set -x + +# Run nbdkit and check that nbdinfo can connect back to it. +nbdkit -U - memory 1G --run 'nbdinfo "$uri"' diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100755 index 0000000..28c6a43 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,12 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + required_packages: + - libnbd + - nbdkit + tests: + - simple: + dir: . + run: ./basic-test.sh From c05c44cc7bc78cca7a92bbc85b8f940a6f5477c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 2 Jun 2021 13:09:47 +0100 Subject: [PATCH 407/683] Skip tests/test-memory-allocator-malloc-mlock.sh on RHEL 9 / aarch64 Test failure: FAIL: test-memory-allocator-malloc-mlock.sh =========================================== /builddir/build/BUILD/nbdkit-1.25.8/server/nbdkit -v -P memory-allocator-malloc-mlock.pid -U /tmp/nbdkit-test-sock.QSUxq3 -- /builddir/build/BUILD/nbdkit-1.25.8/plugins/memory/.libs/nbdkit-memory-plugin.so 2048 allocator=malloc,mlock=true nbdkit: debug: nbdkit 1.25.8 (nbdkit-1.25.8-2.el9) nbdkit: debug: TLS disabled: could not load TLS certificates nbdkit: debug: registering plugin /builddir/build/BUILD/nbdkit-1.25.8/plugins/memory/.libs/nbdkit-memory-plugin.so nbdkit: debug: registered plugin /builddir/build/BUILD/nbdkit-1.25.8/plugins/memory/.libs/nbdkit-memory-plugin.so (name memory) nbdkit: debug: memory: load nbdkit: debug: memory: config key=size, value=2048 nbdkit: debug: memory: config key=allocator, value=malloc,mlock=true nbdkit: debug: memory: config_complete nbdkit: debug: using thread model: parallel nbdkit: debug: memory: get_ready nbdkit: debug: allocator: malloc,mlock=true nbdkit: debug: allocator parameter: mlock=true nbdkit: error: allocator=malloc: mlock: Cannot allocate memory ./test-memory-allocator-malloc-mlock.sh: run cleanup hooks: exit code 1 FAIL test-memory-allocator-malloc-mlock.sh (exit status: 1) --- nbdkit.spec | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a8592dd..8c51afb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -817,22 +817,40 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* %check %ifnarch %{broken_test_arches} +function skip_test () +{ + for f in "$@"; do + rm -f "$f" + echo 'exit 77' > "$f" + chmod +x "$f" + done +} + # Workaround for broken libvirt (RHBZ#1138604). mkdir -p $HOME/.cache/libvirt # tests/test-captive.sh is racy especially on s390x. We need to # rethink this test upstream. -truncate -s 0 tests/test-captive.sh +skip_test tests/test-captive.sh %ifarch s390x # Temporarily kill tests/test-cache-max-size.sh since it fails # sometimes on s390x for unclear reasons. -truncate -s 0 tests/test-cache-max-size.sh +skip_test tests/test-cache-max-size.sh %endif # Temporarily kill test-nbd-tls.sh and test-nbd-tls-psk.sh # https://www.redhat.com/archives/libguestfs/2020-March/msg00191.html -truncate -s 0 tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh +skip_test tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh + +# This test fails on RHEL 9 & aarch64 with the error: +# nbdkit: error: allocator=malloc: mlock: Cannot allocate memory +# It could be the mlock limit on the builder is too low. +%if 0%{?rhel} +%ifarch aarch64 +skip_test tests/test-memory-allocator-malloc-mlock.sh +%endif +%endif # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 From 9647b363022eeb6ade4e4338ca2006596fe67b13 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 3 Jun 2021 21:02:24 +0100 Subject: [PATCH 408/683] New upstream version 1.25.9. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8c51afb..34e6fa4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.25-development Name: nbdkit -Version: 1.25.8 -Release: 2%{?dist} +Version: 1.25.9 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jun 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.9-1 +- New upstream version 1.25.9. + * Tue May 25 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.25.8-2 - Perl 5.34 re-rebuild of updated packages diff --git a/sources b/sources index bf1f333..6d71595 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.8.tar.gz) = 4084fbc3fb24eb20114e8c31eb4ea1f763a2c4c09048a29447f9df7a0101049e97d82ed00b581ff22fc4ec5e0221beeb67107f57be101544b49bc6192e8ada13 -SHA512 (nbdkit-1.25.8.tar.gz.sig) = 71f9ddc29974474b074e06ba19ccaffbca59ed425e73a3962ed698dfbcc94aeddbcd0b138fe3e1c99074cfcb79c404c790a5418b5083ccf3daac65643791a189 +SHA512 (nbdkit-1.25.9.tar.gz) = b650762dbbf39adf15165af1bf1af00670f61e0f668e61c40d6a8784aa6f53e2896597981c48f808335a1ad6123f75b274beb39b6adc135d725eb4c23f4d4c3e +SHA512 (nbdkit-1.25.9.tar.gz.sig) = 76ba71f371f61b5300181b013f2588b11ce86d8996f081347d07914eadb426c0fd3490e7e29f6f5a3bb61f8fa1c13269fc9fcb558968a479d3f219b1384dac10 From ae298c5846c6de0d2004ecc415eff7c1fd932df3 Mon Sep 17 00:00:00 2001 From: Python Maint <python-maint@redhat.com> Date: Fri, 4 Jun 2021 20:12:28 +0200 Subject: [PATCH 409/683] Rebuilt for Python 3.10 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 34e6fa4..de27697 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.25.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.25.9-2 +- Rebuilt for Python 3.10 + * Thu Jun 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1.25.9-1 - New upstream version 1.25.9. From 901bd9af1680c6c35363f543979bf02c9c110c6a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 7 Jun 2021 17:18:44 +0100 Subject: [PATCH 410/683] New upstream version 1.26.0. --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index de27697..fc019bf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -47,11 +47,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.25-development +%global source_directory 1.26-stable Name: nbdkit -Version: 1.25.9 -Release: 2%{?dist} +Version: 1.26.0 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.26.0-1 +- New upstream version 1.26.0. + * Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.25.9-2 - Rebuilt for Python 3.10 diff --git a/sources b/sources index 6d71595..63f11a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.25.9.tar.gz) = b650762dbbf39adf15165af1bf1af00670f61e0f668e61c40d6a8784aa6f53e2896597981c48f808335a1ad6123f75b274beb39b6adc135d725eb4c23f4d4c3e -SHA512 (nbdkit-1.25.9.tar.gz.sig) = 76ba71f371f61b5300181b013f2588b11ce86d8996f081347d07914eadb426c0fd3490e7e29f6f5a3bb61f8fa1c13269fc9fcb558968a479d3f219b1384dac10 +SHA512 (nbdkit-1.26.0.tar.gz) = f5330a1ad47e45dfdfeed800af1fa5e5e02aa471da5cce45bf0d8f46f82655be8974bfc8fd2fd16a6cfc60349ada38675bc7e0b73b81f941d9022ac3cdda23ca +SHA512 (nbdkit-1.26.0.tar.gz.sig) = 838c10ecda260e801e5c760c9c61fa78a7713e6dd89fa7f3737259dcfeb64ebeba08ad2443190efe3190ef3c22617b1ca9cb4676a28512fd13708845e23a1d57 From 18609d8a7205a9f6b7da0fc8003370f6863f180f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 11 Jun 2021 14:39:05 +0100 Subject: [PATCH 411/683] New upstream development version 1.27.1. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fc019bf..bfea203 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -47,10 +47,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.26-stable +%global source_directory 1.27-development Name: nbdkit -Version: 1.26.0 +Version: 1.27.1 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jun 11 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.1-1 +- New upstream development version 1.27.1. + * Mon Jun 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.26.0-1 - New upstream version 1.26.0. diff --git a/sources b/sources index 63f11a1..f3a67b7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.26.0.tar.gz) = f5330a1ad47e45dfdfeed800af1fa5e5e02aa471da5cce45bf0d8f46f82655be8974bfc8fd2fd16a6cfc60349ada38675bc7e0b73b81f941d9022ac3cdda23ca -SHA512 (nbdkit-1.26.0.tar.gz.sig) = 838c10ecda260e801e5c760c9c61fa78a7713e6dd89fa7f3737259dcfeb64ebeba08ad2443190efe3190ef3c22617b1ca9cb4676a28512fd13708845e23a1d57 +SHA512 (nbdkit-1.27.1.tar.gz) = 83e846ad4f9c5041b4fbf0ea96aa850f1e99054e4abc2120f3c016415847c6b90bf47a77c4deffe88f9a083ab9b2bedc397f3616039ac55ab09d404da00e3bc5 +SHA512 (nbdkit-1.27.1.tar.gz.sig) = cc777793402b751556e8091c4fb06cbc3983108de6677743dc69779d00d153aed97710ba56cd23a2a70a8b1ff5f67ed7c98e07ce5b095bf5c2414852a6c414d3 From 040f87208f94825d2a3b08fd8d1c119574fca906 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 5 Jul 2021 18:14:09 +0100 Subject: [PATCH 412/683] New upstream development version 1.27.2. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bfea203..a3d6006 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.1 +Version: 1.27.2 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jul 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.2-1 +- New upstream development version 1.27.2. + * Fri Jun 11 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.1-1 - New upstream development version 1.27.1. diff --git a/sources b/sources index f3a67b7..3e9fd49 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.1.tar.gz) = 83e846ad4f9c5041b4fbf0ea96aa850f1e99054e4abc2120f3c016415847c6b90bf47a77c4deffe88f9a083ab9b2bedc397f3616039ac55ab09d404da00e3bc5 -SHA512 (nbdkit-1.27.1.tar.gz.sig) = cc777793402b751556e8091c4fb06cbc3983108de6677743dc69779d00d153aed97710ba56cd23a2a70a8b1ff5f67ed7c98e07ce5b095bf5c2414852a6c414d3 +SHA512 (nbdkit-1.27.2.tar.gz) = a1ed1afc541914a5ab92e2509a0f2dfa61c55c04175ecc18ce1082e2d760c52f667bbc1f0950d5e14e47dca7cf4706216abb469e5629f9b3d0f3513f94735e15 +SHA512 (nbdkit-1.27.2.tar.gz.sig) = 88fb1bdad7f0dab80e104166ffdab8ac2ea610f75161946fbcb81dd9c6e1c9fda37acda99b56c4b052a634493833d01f8ac95ebceae78a6753f17868337109b5 From cdda2ce6d6b781a4df56f86cc58973e503e50239 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 22 Jul 2021 15:52:47 +0000 Subject: [PATCH 413/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a3d6006..046111c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.27.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.27.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Mon Jul 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.2-1 - New upstream development version 1.27.2. From 3190c1b685ba4327d747a816f42441343394f74a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 23 Jul 2021 23:03:45 +0100 Subject: [PATCH 414/683] New upstream development version 1.27.3. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 046111c..5cb9a44 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.2 -Release: 2%{?dist} +Version: 1.27.3 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.3-1 +- New upstream development version 1.27.3. + * Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.27.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 3e9fd49..0ac40c4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.2.tar.gz) = a1ed1afc541914a5ab92e2509a0f2dfa61c55c04175ecc18ce1082e2d760c52f667bbc1f0950d5e14e47dca7cf4706216abb469e5629f9b3d0f3513f94735e15 -SHA512 (nbdkit-1.27.2.tar.gz.sig) = 88fb1bdad7f0dab80e104166ffdab8ac2ea610f75161946fbcb81dd9c6e1c9fda37acda99b56c4b052a634493833d01f8ac95ebceae78a6753f17868337109b5 +SHA512 (nbdkit-1.27.3.tar.gz) = 0c1197baf1f5d7012f48fe0d868d1fbc5a2373b0f7ff9256bef120fcee65a7b7cb1dcafb080c644fc5b407f5e57ff38cfaea1f1a3500eed987dc3320bd693cfb +SHA512 (nbdkit-1.27.3.tar.gz.sig) = 1885a641dc52e9c85e1b1cf44281e0f2fb36da6b23323d07d60d88a2eb7a7edbf61717265dd76406fdb79ffae98deaa058b8f817dc13b1efcd0cff8d2bb684e0 From 3bc00d5182df76ccff1c5d05f5a0bc497cce0fd8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 5 Aug 2021 09:07:06 +0100 Subject: [PATCH 415/683] New upstream development version 1.27.4. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5cb9a44..f26cc27 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.3 +Version: 1.27.4 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.4-1 +- New upstream development version 1.27.4. + * Fri Jul 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.3-1 - New upstream development version 1.27.3. diff --git a/sources b/sources index 0ac40c4..f7f024c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.3.tar.gz) = 0c1197baf1f5d7012f48fe0d868d1fbc5a2373b0f7ff9256bef120fcee65a7b7cb1dcafb080c644fc5b407f5e57ff38cfaea1f1a3500eed987dc3320bd693cfb -SHA512 (nbdkit-1.27.3.tar.gz.sig) = 1885a641dc52e9c85e1b1cf44281e0f2fb36da6b23323d07d60d88a2eb7a7edbf61717265dd76406fdb79ffae98deaa058b8f817dc13b1efcd0cff8d2bb684e0 +SHA512 (nbdkit-1.27.4.tar.gz) = 09fa39ebd226031f43dd3fe215df31e881de6fad085b46fb24ded6a1b7c8d56671cc1422554f94272f42fa45806859af7eda57a221ad4764a0d12eee0338302c +SHA512 (nbdkit-1.27.4.tar.gz.sig) = 2971f404081b5bf08d029061945b69fc66a0264fb5a3e489b7c49a32e7b6c3cfc716a15797e70b802634611420165c45a9a5cc89986e51d3a18228e6a4172c2f From 89825a793ec666e29b600e5dcc48d08b67b081d4 Mon Sep 17 00:00:00 2001 From: Eric Blake <eblake@redhat.com> Date: Fri, 13 Aug 2021 11:22:12 -0500 Subject: [PATCH 416/683] Update keyring. Add myself via: gpg --export 'Eric Blake' | \ gpg --no-default-keyring --keyring ./libguestfs.keyring --import --- .gitignore | 1 + libguestfs.keyring | Bin 2823 -> 82814 bytes 2 files changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4bd7ec0..1229603 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /clog /nbdkit-*.tar.gz /nbdkit-*.tar.gz.sig +/*~ diff --git a/libguestfs.keyring b/libguestfs.keyring index bb3eb5537b7c398a10b7e2b26ca00af011d1a73e..f0508c8d7008b4290b09df40ececc5dd721b5bf9 100644 GIT binary patch literal 82814 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�D_@9Btdl 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%0A+%1linAFtH`RB!<d};|)8fS<(VE#<olJb}E|Vao zfMCV!nJ@uJ?<m>ZUG}ZjDE`^1u#PFwscvwl#=`JU489$etf@8oL(NDf>|@AaXGaRy zFSy^^NHw&;-Td9d%Z;=Jq{R6}s3w!Z+$DL>5_^b6y;hb_tI|S{vU`NM2C$arwwH#b zfn(}P_+<si<yxQ9MSukPj!%cgD2MYK3qnTC2JJH~#F!<SkZWIm_*L<h+Fsg^LrMpd zB46I#YJ9?2vDV4<{0vjAQ${>-YyO?Ab(!DFPaF6RzEJ#3PXd45N=*Yrf>6zl%Lj!4 zdDsnqxji6Y+kNm`T75hSV$jv-FFwe!Mclf-#o68PS!OMt8O5ZZ3fE`zpC!%3qr=;b zBne>>#{9KQ9`d|60u}|G%_&*teX2NHg+qYH(lYhNhqqPyz4nZIQ5+{NIJWFzCq2uB z49EIgrf33r;(`=3Kc?rJZ&a!QQK)6XvB-vXpDSv_%%sH^@QEneVQ1rX0xCsI0Su7E zSwTE-A-Zfe_q3d@J=@W`nOuc8bQGNSytdzKMsGW3n9`yjp%pdOi(**fhOIUgx<A6o zq4@JG0W%HY;bD3Nb;JJr<Bx|vBL{Af8&1>m=7$<6)Yf?e_33KAU3Un>%g<by9Y6q` zU_U?qzXi$v_mU3>ZGixQf`Q~gf@#*5V5ffpQ!}@40$2e(0B(j(05hO1(9zHtXaX>F z0@xcmIs@!X0nX+?fViuLH7g6i-qFqyXza`YC+!Tda01xcIRot6Y=I^KBai>Q=Hdi& z1egGwj2$hEfF=M7+yAtxON%kUsRDrjb7yCJCmu#d;D35!Ft)Q{bOgHESpiJ|rgn}1 z8#_lJzy#=QXkqQd@Q1)h^BA`O5cp^}3`psn@OFh{l-1`<Tgav_m#C)DSBEpLsx8*9 zrwLS|hP~8MJl5#*gh$G4Y!fzWw>Fn4D?BMQeG<j!Xv0@Mr=~Yw-t?XqG5O`iZ`FnO zGNU3RQ9HY1KsSbYp(7bxSL2T+c=rN#`HSPd*2?JyeT&$ZSG;}TnH}D0TFU45NUFfD zTtprBNppc{f?ni@#ld0I=KPbT!l$PwRuJ+5#Ox#zl<B_lMNq}WTfQV@b!(LX!P5`H zOemzRV|z{~mJuxVo`A5DMd*5;<;1~;V#aT6(6J*c8MF79YtJ^*G9m`aaQL~Dx!8b8 zQW=zvTRr8A8A$|CQYtm6lM?df2<bls-bg6!XkiQxu{N{<0{DPNe>{a8fhOjL&VK|{ z;GdQ=T>m*mO9Ba|y2G&!hR+BE4+{eg4hDq@0|pBR4}k>+4hlvH3Wn|f-vMVjgaK(_ ze(+;r5ao~gfDByIq11#%&_gU@XIv~VqD&lT3p{ESEo^F-T(NFh+9YnnIyF{J1m96u zm@6ey$);(<$_#LDg3&m?{We|d?FhhGx4TQ?|FMu%pS086V2tZf3>Ls$-oziMA!=S# zfCI_<r~q=9zZ66n-d!*9;fRoQ*h=+nXeHWqoQ7)GO;JY;CGlgcUm<^p0{KoX6%S!N zzeC(Aio*Z}_D2}6!hG9Prwn3E@nmsZkkkGCu)scToLS>C$M)$jbZr2Z{mU8EKy#NH zwhvYVTt0tnOh?jB%;JU@<^V|#hTlgOs<WbCK2WowW`?PYVZl(sL4MapS>RTG2K@g4 DXm|6* delta 38 ucmey@#@a5nL4awp9FzLyU?yuOrY&ld6_`XPuVoS3e1^rEX)`~&5eoq2=nBFB From 4c52eba3506fd53459417396da7aabcf24f6e8bc Mon Sep 17 00:00:00 2001 From: Eric Blake <eblake@redhat.com> Date: Fri, 13 Aug 2021 11:27:26 -0500 Subject: [PATCH 417/683] New upstream development version 1.27.5. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f26cc27..463f2a1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.4 +Version: 1.27.5 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Aug 13 2021 Eric Blake <eblake@redhat.com> - 1.27.5-1 +- New upstream development version 1.27.5. + * Thu Aug 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.4-1 - New upstream development version 1.27.4. diff --git a/sources b/sources index f7f024c..002b6b5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.4.tar.gz) = 09fa39ebd226031f43dd3fe215df31e881de6fad085b46fb24ded6a1b7c8d56671cc1422554f94272f42fa45806859af7eda57a221ad4764a0d12eee0338302c -SHA512 (nbdkit-1.27.4.tar.gz.sig) = 2971f404081b5bf08d029061945b69fc66a0264fb5a3e489b7c49a32e7b6c3cfc716a15797e70b802634611420165c45a9a5cc89986e51d3a18228e6a4172c2f +SHA512 (nbdkit-1.27.5.tar.gz) = 8f3b013e108d3119f4288e538d507fd6e8bc9b33cf549df6a1638eae35f50cf7e9f8476370e0fc4111ad8a3e77cd3c98771e4e6371645f1e730b08ec0d288ff9 +SHA512 (nbdkit-1.27.5.tar.gz.sig) = 223a6caf2f180c0e0cf4bb3192d6c6fc4472cbd699364e77e64dcb3bdc670d22c3069a88d8d510832b2868463a97bf1cc995ecc5fa4b76e4cc1005a06e547fdb From 03411c4a444f30465d097f709a09b380655bebde Mon Sep 17 00:00:00 2001 From: Eric Blake <eblake@redhat.com> Date: Thu, 19 Aug 2021 15:29:15 -0500 Subject: [PATCH 418/683] New upstream development version 1.27.7; addresses CVE-2021-3716. --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 463f2a1..78bcd55 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.5 +Version: 1.27.7 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 19 2021 Eric Blake <eblake@redhat.com> - 1.27.7-1 +- New upstream development version 1.27.7; addresses CVE-2021-3716. + * Fri Aug 13 2021 Eric Blake <eblake@redhat.com> - 1.27.5-1 - New upstream development version 1.27.5. diff --git a/sources b/sources index 002b6b5..b9e609e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.5.tar.gz) = 8f3b013e108d3119f4288e538d507fd6e8bc9b33cf549df6a1638eae35f50cf7e9f8476370e0fc4111ad8a3e77cd3c98771e4e6371645f1e730b08ec0d288ff9 -SHA512 (nbdkit-1.27.5.tar.gz.sig) = 223a6caf2f180c0e0cf4bb3192d6c6fc4472cbd699364e77e64dcb3bdc670d22c3069a88d8d510832b2868463a97bf1cc995ecc5fa4b76e4cc1005a06e547fdb +SHA512 (nbdkit-1.27.7.tar.gz) = c772515dd0d1188136856fc103df75cf195c29935eec2f16b61035e9d28d4672a32b19a21cf679de874d61f1fb00e4e8ebe2925a8290d4ef05ef3868e538d035 +SHA512 (nbdkit-1.27.7.tar.gz.sig) = 03819e6b2c4131c48e396cebce3d61cd5e6b4162a059c5661703f2a2a68a8451567228583108a8bfac60a64bb2c5fef2fc181299b09cf8330bb376b3d506b238 From 034cff38665affea16bf18d6d7ce1790ac2cdb33 Mon Sep 17 00:00:00 2001 From: Eric Blake <eblake@redhat.com> Date: Thu, 19 Aug 2021 16:25:37 -0500 Subject: [PATCH 419/683] Include followup patch related to CVE-2021-3716. --- ...set-meta-context-replies-on-starttls.patch | 38 +++++++++++++++++++ nbdkit.spec | 8 +++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 0001-server-reset-meta-context-replies-on-starttls.patch diff --git a/0001-server-reset-meta-context-replies-on-starttls.patch b/0001-server-reset-meta-context-replies-on-starttls.patch new file mode 100644 index 0000000..47ab2a6 --- /dev/null +++ b/0001-server-reset-meta-context-replies-on-starttls.patch @@ -0,0 +1,38 @@ +From 6c5faac6a37077cf2366388a80862bb00616d0d8 Mon Sep 17 00:00:00 2001 +From: Eric Blake <eblake@redhat.com> +Date: Mon, 16 Aug 2021 13:43:29 -0500 +Subject: [nbdkit PATCH] server: reset meta context replies on starttls + +Related to CVE-2021-3716, but not as severe. No compliant client will +send NBD_CMD_BLOCK_STATUS unless it first negotiates +NBD_OPT_SET_META_CONTEXT. If an attacker injects a premature +SET_META_CONTEXT, either the client will never notice (because it +never uses BLOCK_STATUS), or the client will overwrite the attacker's +attempt with the client's own SET_META_CONTEXT request after +encryption is enabled. So I don't class this as having the potential +to trigger denial-of-service due to any protocol mismatch between +compliant client and server (I don't care what happens with +non-compliant clients). + +Fixes: 26455d45 (server: protocol: Implement Block Status "base:allocation".) +--- + server/protocol-handshake-newstyle.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/server/protocol-handshake-newstyle.c b/server/protocol-handshake-newstyle.c +index 7e6b7b1b..79b2c8ce 100644 +--- a/server/protocol-handshake-newstyle.c ++++ b/server/protocol-handshake-newstyle.c +@@ -497,6 +497,9 @@ negotiate_handshake_newstyle_options (void) + debug ("using TLS on this connection"); + /* Wipe out any cached state. */ + conn->structured_replies = false; ++ free (conn->exportname_from_set_meta_context); ++ conn->exportname_from_set_meta_context = NULL; ++ conn->meta_context_base_allocation = false; + for_each_backend (b) { + free (conn->default_exportname[b->i]); + conn->default_exportname[b->i] = NULL; +-- +2.31.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 78bcd55..73e3cbb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.27.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -72,6 +72,9 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh +# Fix SET_META_CONTEXT leaking state across STARTTLS +Patch1: 0001-server-reset-meta-context-replies-on-starttls.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1241,6 +1244,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 19 2021 Eric Blake <eblake@redhat.com> - 1.27.7-2 +- Include followup patch related to CVE-2021-3716. + * Thu Aug 19 2021 Eric Blake <eblake@redhat.com> - 1.27.7-1 - New upstream development version 1.27.7; addresses CVE-2021-3716. From 5f0a7b31b4e5ec29f92fd2d39b3fe1e64f202d47 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 23 Aug 2021 09:52:15 +0100 Subject: [PATCH 420/683] New upstream development version 1.27.8. Remove patch which is included upstream. --- ...set-meta-context-replies-on-starttls.patch | 38 ------------------- nbdkit.spec | 11 +++--- sources | 4 +- 3 files changed, 8 insertions(+), 45 deletions(-) delete mode 100644 0001-server-reset-meta-context-replies-on-starttls.patch diff --git a/0001-server-reset-meta-context-replies-on-starttls.patch b/0001-server-reset-meta-context-replies-on-starttls.patch deleted file mode 100644 index 47ab2a6..0000000 --- a/0001-server-reset-meta-context-replies-on-starttls.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 6c5faac6a37077cf2366388a80862bb00616d0d8 Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Mon, 16 Aug 2021 13:43:29 -0500 -Subject: [nbdkit PATCH] server: reset meta context replies on starttls - -Related to CVE-2021-3716, but not as severe. No compliant client will -send NBD_CMD_BLOCK_STATUS unless it first negotiates -NBD_OPT_SET_META_CONTEXT. If an attacker injects a premature -SET_META_CONTEXT, either the client will never notice (because it -never uses BLOCK_STATUS), or the client will overwrite the attacker's -attempt with the client's own SET_META_CONTEXT request after -encryption is enabled. So I don't class this as having the potential -to trigger denial-of-service due to any protocol mismatch between -compliant client and server (I don't care what happens with -non-compliant clients). - -Fixes: 26455d45 (server: protocol: Implement Block Status "base:allocation".) ---- - server/protocol-handshake-newstyle.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/server/protocol-handshake-newstyle.c b/server/protocol-handshake-newstyle.c -index 7e6b7b1b..79b2c8ce 100644 ---- a/server/protocol-handshake-newstyle.c -+++ b/server/protocol-handshake-newstyle.c -@@ -497,6 +497,9 @@ negotiate_handshake_newstyle_options (void) - debug ("using TLS on this connection"); - /* Wipe out any cached state. */ - conn->structured_replies = false; -+ free (conn->exportname_from_set_meta_context); -+ conn->exportname_from_set_meta_context = NULL; -+ conn->meta_context_base_allocation = false; - for_each_backend (b) { - free (conn->default_exportname[b->i]); - conn->default_exportname[b->i] = NULL; --- -2.31.1 - diff --git a/nbdkit.spec b/nbdkit.spec index 73e3cbb..f7286f8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.7 -Release: 2%{?dist} +Version: 1.27.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -72,9 +72,6 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh -# Fix SET_META_CONTEXT leaking state across STARTTLS -Patch1: 0001-server-reset-meta-context-replies-on-starttls.patch - BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1244,6 +1241,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Aug 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-1 +- New upstream development version 1.27.8. +- Remove patch which is included upstream. + * Thu Aug 19 2021 Eric Blake <eblake@redhat.com> - 1.27.7-2 - Include followup patch related to CVE-2021-3716. diff --git a/sources b/sources index b9e609e..0a8762c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.7.tar.gz) = c772515dd0d1188136856fc103df75cf195c29935eec2f16b61035e9d28d4672a32b19a21cf679de874d61f1fb00e4e8ebe2925a8290d4ef05ef3868e538d035 -SHA512 (nbdkit-1.27.7.tar.gz.sig) = 03819e6b2c4131c48e396cebce3d61cd5e6b4162a059c5661703f2a2a68a8451567228583108a8bfac60a64bb2c5fef2fc181299b09cf8330bb376b3d506b238 +SHA512 (nbdkit-1.27.8.tar.gz) = 0cc03ca57c3732d5f1b34805070b7d9b805253e5fc1cd55dc89638537e1b52465128e27a59c9d46d8de0177cb24f25b4cdd9954a036cf72fc75d5c80c8a603cd +SHA512 (nbdkit-1.27.8.tar.gz.sig) = 72f2aba33dd95531cac60c7ce34513e9a12725c7546926c8ec663505e80c3a18fef7555da2b6b55bbd2d5e799c850c30b473fc270a6d8c5f211ff875b13bf1a4 From 42e0d28d9a6fce000f55c907619f34bd65584da1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 23 Aug 2021 10:52:00 +0100 Subject: [PATCH 421/683] Fix issues in nbdkit-data-plugin on 32 bit platforms. --- 0001-data-Fix-issues-on-32-bit.patch | 62 ++++++++++++++++++++++++++++ nbdkit.spec | 3 ++ 2 files changed, 65 insertions(+) create mode 100644 0001-data-Fix-issues-on-32-bit.patch diff --git a/0001-data-Fix-issues-on-32-bit.patch b/0001-data-Fix-issues-on-32-bit.patch new file mode 100644 index 0000000..d8339d0 --- /dev/null +++ b/0001-data-Fix-issues-on-32-bit.patch @@ -0,0 +1,62 @@ +From fe6538aafe5f8d6fc6b90ae8f6d3686c711288fd Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 23 Aug 2021 10:34:53 +0100 +Subject: [PATCH] data: Fix issues on 32 bit +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Commit 9352ad00e3 ("data: New functions new_node/get_node with simpler +usage") added a new expr() function to let you construct expressions. +However it uses varargs so callers have to be strict about the types +of the parameters, and the compiler cannot verify this. + +When creating EXPR_FILL the parameters are uint8_t, uint64_t, where +varargs always promotes uint8_t to int. We called it in a few places +with incorrect types. The error showed up when compiling on i686, but +actually we were very lucky this did not manifest on 64 bit platforms +too. It only worked because of how x86-64 ABI passes some arguments +in registers so that int is passed in a 64 bit register. On a 64 bit +platform that uses the stack it could have failed. + +Use casts as appropriate. Strongly typed qualified unions à la OCaml +would help here! + +Fixes: commit 9352ad00e3e1fff679f4eabb2208bfa1e1443a29 +--- + plugins/data/format.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/data/format.c b/plugins/data/format.c +index f1b4219e..60b73ef9 100644 +--- a/plugins/data/format.c ++++ b/plugins/data/format.c +@@ -1358,14 +1358,14 @@ optimize_ast (node_id root, node_id *root_rtn) + */ + if (get_node (root).string.size > 1) { + const string s = get_node (root).string; +- uint64_t b = s.ptr[0]; ++ uint8_t b = s.ptr[0]; + + for (i = 1; i < s.size; ++i) + if (s.ptr[i] != b) + break; + + if (i == s.size) { +- *root_rtn = new_node (expr (EXPR_FILL, b, s.size)); ++ *root_rtn = new_node (expr (EXPR_FILL, b, (uint64_t) s.size)); + return 0; + } + } +@@ -1485,7 +1485,7 @@ exprs_can_combine (expr_t e0, expr_t e1, node_id *id_rtn) + switch (e1.t) { + case EXPR_BYTE: /* byte byte => fill | string */ + if (e0.b == e1.b) { +- *id_rtn = new_node (expr (EXPR_FILL, e0.b, 2)); ++ *id_rtn = new_node (expr (EXPR_FILL, e0.b, UINT64_C(2))); + } + else { + if (string_append (&s, e0.b) == -1 || +-- +2.32.0 + diff --git a/nbdkit.spec b/nbdkit.spec index f7286f8..460661d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -72,6 +72,9 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh +# Fix issues in nbdkit-data-plugin on 32 bit platforms. +Patch1: 0001-data-Fix-issues-on-32-bit.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From bfdc3bda8bdd0bdb11d68238622165d78496aa31 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 31 Aug 2021 11:44:20 +0100 Subject: [PATCH 422/683] Fix for qemu 6.1. --- ...mu-6.1-which-requires-backing-format.patch | 57 +++++++++++++++++++ nbdkit.spec | 7 ++- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch diff --git a/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch b/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch new file mode 100644 index 0000000..fb673a3 --- /dev/null +++ b/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch @@ -0,0 +1,57 @@ +From 618290ef33ce13b75c1a79fea1f1ffb327b5ba07 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 31 Aug 2021 11:23:27 +0100 +Subject: [PATCH] cow: Fix for qemu 6.1 which requires backing format + +The diffing example in the manual created a qcow2 file with a backing +file but did not specify the backing format. However qemu 6.1 now +requires this and fails with: + + qemu-img: cow-diff.qcow2: Backing file specified without backing format + +or: + + qemu-img: Could not change the backing file to 'cow-base.img': backing format must be specified + +Fix the example by adding the -F option to the command line. + +Also there was a test of this rebasing sequence which failed, so this +commit updates the test too. +--- + filters/cow/nbdkit-cow-filter.pod | 4 ++-- + tests/test-cow.sh | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/filters/cow/nbdkit-cow-filter.pod b/filters/cow/nbdkit-cow-filter.pod +index 791d1d36..b69544f6 100644 +--- a/filters/cow/nbdkit-cow-filter.pod ++++ b/filters/cow/nbdkit-cow-filter.pod +@@ -116,8 +116,8 @@ At the end, disconnect the client. + Run these C<qemu-img> commands to construct a qcow2 file containing + the differences: + +- qemu-img create -f qcow2 -b nbd:localhost diff.qcow2 +- qemu-img rebase -b disk.img diff.qcow2 ++ qemu-img create -F raw -b nbd:localhost -f qcow2 diff.qcow2 ++ qemu-img rebase -F raw -b disk.img -f qcow2 diff.qcow2 + + F<diff.qcow2> now contains the differences between the base + (F<disk.img>) and the changes stored in nbdkit-cow-filter. C<nbdkit> +diff --git a/tests/test-cow.sh b/tests/test-cow.sh +index 8772afd7..edc4c223 100755 +--- a/tests/test-cow.sh ++++ b/tests/test-cow.sh +@@ -72,8 +72,8 @@ fi + # If we have qemu-img, try the hairy rebase operation documented + # in the nbdkit-cow-filter manual. + if qemu-img --version >/dev/null 2>&1; then +- qemu-img create -f qcow2 -b nbd:unix:$sock cow-diff.qcow2 +- time qemu-img rebase -b cow-base.img cow-diff.qcow2 ++ qemu-img create -F raw -b nbd:unix:$sock -f qcow2 cow-diff.qcow2 ++ time qemu-img rebase -F raw -b cow-base.img -f qcow2 cow-diff.qcow2 + qemu-img info cow-diff.qcow2 + + # This checks the file we created exists. +-- +2.32.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 460661d..d1596d8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.27.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -74,6 +74,8 @@ Source3: copy-patches.sh # Fix issues in nbdkit-data-plugin on 32 bit platforms. Patch1: 0001-data-Fix-issues-on-32-bit.patch +# Fix for qemu 6.1. +Patch2: 0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch BuildRequires: make %if 0%{patches_touch_autotools} @@ -1244,6 +1246,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Aug 31 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-2 +- Fix for qemu 6.1. + * Mon Aug 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-1 - New upstream development version 1.27.8. - Remove patch which is included upstream. From 4791eadbe05447379dd7758934a53cc490b04902 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 31 Aug 2021 22:59:11 +0100 Subject: [PATCH 423/683] Disable tests on armv7hl because of https://bugzilla.redhat.com/show_bug.cgi?id=1999878 --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d1596d8..65d0e3a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -29,8 +29,8 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. # -# armv7, aarch64: https://bugzilla.redhat.com/show_bug.cgi?id=1893892 -%global broken_test_arches NONE +# armv7: https://bugzilla.redhat.com/show_bug.cgi?id=1999878 +%global broken_test_arches armv7 %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and From bb338a4aa7908eb169029f61c447233babb90360 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Sep 2021 09:24:38 +0100 Subject: [PATCH 424/683] Really disable tests on armv7hl --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 65d0e3a..270af96 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -30,7 +30,7 @@ # it as a bug and add it to this list. # # armv7: https://bugzilla.redhat.com/show_bug.cgi?id=1999878 -%global broken_test_arches armv7 +%global broken_test_arches armv7hl %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and From 8652782c79d48e7b11cc9d4aba682c410ef03dd0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Sep 2021 18:40:25 +0100 Subject: [PATCH 425/683] Re-enable tests on armv7. Reverts this commit: commit 4791eadbe05447379dd7758934a53cc490b04902 Author: Richard W.M. Jones <rjones@redhat.com> Date: Tue Aug 31 22:59:11 2021 +0100 Disable tests on armv7hl because of https://bugzilla.redhat.com/show_bug.cgi?id=1999878 --- nbdkit.spec | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 270af96..8ede2e7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -28,9 +28,7 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. -# -# armv7: https://bugzilla.redhat.com/show_bug.cgi?id=1999878 -%global broken_test_arches armv7hl +%global broken_test_arches NONE %if 0%{?rhel} == 7 # On RHEL 7, nothing in the virt stack is shipped on aarch64 and @@ -51,7 +49,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.27.8 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1246,6 +1244,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Sep 1 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-3 +- Re-enable tests on armv7. + * Tue Aug 31 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-2 - Fix for qemu 6.1. From 3c10afbea214a37d00edf2e5ec789c143edfe1d2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 4 Sep 2021 17:05:14 +0100 Subject: [PATCH 426/683] New upstream development version 1.27.9. Remove patches which are upstream. --- ...mu-6.1-which-requires-backing-format.patch | 57 ----------------- 0001-data-Fix-issues-on-32-bit.patch | 62 ------------------- nbdkit.spec | 13 ++-- sources | 4 +- 4 files changed, 8 insertions(+), 128 deletions(-) delete mode 100644 0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch delete mode 100644 0001-data-Fix-issues-on-32-bit.patch diff --git a/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch b/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch deleted file mode 100644 index fb673a3..0000000 --- a/0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 618290ef33ce13b75c1a79fea1f1ffb327b5ba07 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 31 Aug 2021 11:23:27 +0100 -Subject: [PATCH] cow: Fix for qemu 6.1 which requires backing format - -The diffing example in the manual created a qcow2 file with a backing -file but did not specify the backing format. However qemu 6.1 now -requires this and fails with: - - qemu-img: cow-diff.qcow2: Backing file specified without backing format - -or: - - qemu-img: Could not change the backing file to 'cow-base.img': backing format must be specified - -Fix the example by adding the -F option to the command line. - -Also there was a test of this rebasing sequence which failed, so this -commit updates the test too. ---- - filters/cow/nbdkit-cow-filter.pod | 4 ++-- - tests/test-cow.sh | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/filters/cow/nbdkit-cow-filter.pod b/filters/cow/nbdkit-cow-filter.pod -index 791d1d36..b69544f6 100644 ---- a/filters/cow/nbdkit-cow-filter.pod -+++ b/filters/cow/nbdkit-cow-filter.pod -@@ -116,8 +116,8 @@ At the end, disconnect the client. - Run these C<qemu-img> commands to construct a qcow2 file containing - the differences: - -- qemu-img create -f qcow2 -b nbd:localhost diff.qcow2 -- qemu-img rebase -b disk.img diff.qcow2 -+ qemu-img create -F raw -b nbd:localhost -f qcow2 diff.qcow2 -+ qemu-img rebase -F raw -b disk.img -f qcow2 diff.qcow2 - - F<diff.qcow2> now contains the differences between the base - (F<disk.img>) and the changes stored in nbdkit-cow-filter. C<nbdkit> -diff --git a/tests/test-cow.sh b/tests/test-cow.sh -index 8772afd7..edc4c223 100755 ---- a/tests/test-cow.sh -+++ b/tests/test-cow.sh -@@ -72,8 +72,8 @@ fi - # If we have qemu-img, try the hairy rebase operation documented - # in the nbdkit-cow-filter manual. - if qemu-img --version >/dev/null 2>&1; then -- qemu-img create -f qcow2 -b nbd:unix:$sock cow-diff.qcow2 -- time qemu-img rebase -b cow-base.img cow-diff.qcow2 -+ qemu-img create -F raw -b nbd:unix:$sock -f qcow2 cow-diff.qcow2 -+ time qemu-img rebase -F raw -b cow-base.img -f qcow2 cow-diff.qcow2 - qemu-img info cow-diff.qcow2 - - # This checks the file we created exists. --- -2.32.0 - diff --git a/0001-data-Fix-issues-on-32-bit.patch b/0001-data-Fix-issues-on-32-bit.patch deleted file mode 100644 index d8339d0..0000000 --- a/0001-data-Fix-issues-on-32-bit.patch +++ /dev/null @@ -1,62 +0,0 @@ -From fe6538aafe5f8d6fc6b90ae8f6d3686c711288fd Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 23 Aug 2021 10:34:53 +0100 -Subject: [PATCH] data: Fix issues on 32 bit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Commit 9352ad00e3 ("data: New functions new_node/get_node with simpler -usage") added a new expr() function to let you construct expressions. -However it uses varargs so callers have to be strict about the types -of the parameters, and the compiler cannot verify this. - -When creating EXPR_FILL the parameters are uint8_t, uint64_t, where -varargs always promotes uint8_t to int. We called it in a few places -with incorrect types. The error showed up when compiling on i686, but -actually we were very lucky this did not manifest on 64 bit platforms -too. It only worked because of how x86-64 ABI passes some arguments -in registers so that int is passed in a 64 bit register. On a 64 bit -platform that uses the stack it could have failed. - -Use casts as appropriate. Strongly typed qualified unions à la OCaml -would help here! - -Fixes: commit 9352ad00e3e1fff679f4eabb2208bfa1e1443a29 ---- - plugins/data/format.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/plugins/data/format.c b/plugins/data/format.c -index f1b4219e..60b73ef9 100644 ---- a/plugins/data/format.c -+++ b/plugins/data/format.c -@@ -1358,14 +1358,14 @@ optimize_ast (node_id root, node_id *root_rtn) - */ - if (get_node (root).string.size > 1) { - const string s = get_node (root).string; -- uint64_t b = s.ptr[0]; -+ uint8_t b = s.ptr[0]; - - for (i = 1; i < s.size; ++i) - if (s.ptr[i] != b) - break; - - if (i == s.size) { -- *root_rtn = new_node (expr (EXPR_FILL, b, s.size)); -+ *root_rtn = new_node (expr (EXPR_FILL, b, (uint64_t) s.size)); - return 0; - } - } -@@ -1485,7 +1485,7 @@ exprs_can_combine (expr_t e0, expr_t e1, node_id *id_rtn) - switch (e1.t) { - case EXPR_BYTE: /* byte byte => fill | string */ - if (e0.b == e1.b) { -- *id_rtn = new_node (expr (EXPR_FILL, e0.b, 2)); -+ *id_rtn = new_node (expr (EXPR_FILL, e0.b, UINT64_C(2))); - } - else { - if (string_append (&s, e0.b) == -1 || --- -2.32.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 8ede2e7..98e9f9d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -48,8 +48,8 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.8 -Release: 3%{?dist} +Version: 1.27.9 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -70,11 +70,6 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh -# Fix issues in nbdkit-data-plugin on 32 bit platforms. -Patch1: 0001-data-Fix-issues-on-32-bit.patch -# Fix for qemu 6.1. -Patch2: 0001-cow-Fix-for-qemu-6.1-which-requires-backing-format.patch - BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1244,6 +1239,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Sep 4 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.9-1 +- New upstream development version 1.27.9. +- Remove patches which are upstream. + * Wed Sep 1 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.8-3 - Re-enable tests on armv7. diff --git a/sources b/sources index 0a8762c..33dfef5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.8.tar.gz) = 0cc03ca57c3732d5f1b34805070b7d9b805253e5fc1cd55dc89638537e1b52465128e27a59c9d46d8de0177cb24f25b4cdd9954a036cf72fc75d5c80c8a603cd -SHA512 (nbdkit-1.27.8.tar.gz.sig) = 72f2aba33dd95531cac60c7ce34513e9a12725c7546926c8ec663505e80c3a18fef7555da2b6b55bbd2d5e799c850c30b473fc270a6d8c5f211ff875b13bf1a4 +SHA512 (nbdkit-1.27.9.tar.gz) = bddfe61ef41c0bada014da0b06fa47900aa1cf29c69654c7c70dae4528163582cc86e9db9a8257fe124d7a0dbadbc41c88d9b86cd8e62692f40b17be05ba4417 +SHA512 (nbdkit-1.27.9.tar.gz.sig) = 338f4151173231d51a436f43880718ef8ede12adbe7c1908a0b1df6de24d6f38d10bc5f2c4b39770696d1e075fddd80838a47537eba4c798d9c303b93a74288a From e91ee82439859f0147f4678d550209bb319cebf8 Mon Sep 17 00:00:00 2001 From: Sahana Prasad <sahana@redhat.com> Date: Tue, 14 Sep 2021 19:08:44 +0200 Subject: [PATCH 427/683] Rebuilt with OpenSSL 3.0.0 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 98e9f9d..d1556f7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,7 +49,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.27.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1239,6 +1239,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 1.27.9-2 +- Rebuilt with OpenSSL 3.0.0 + * Sat Sep 4 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.9-1 - New upstream development version 1.27.9. - Remove patches which are upstream. From 2be736e65b5d1384650ee16b33248034f2a57b40 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 21 Sep 2021 22:58:03 +0100 Subject: [PATCH 428/683] New upstream development version 1.27.10. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d1556f7..8c21bfb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -48,8 +48,8 @@ ExclusiveArch: x86_64 %global source_directory 1.27-development Name: nbdkit -Version: 1.27.9 -Release: 2%{?dist} +Version: 1.27.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1239,6 +1239,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Sep 21 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.10-1 +- New upstream development version 1.27.10. + * Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 1.27.9-2 - Rebuilt with OpenSSL 3.0.0 diff --git a/sources b/sources index 33dfef5..80d4145 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.9.tar.gz) = bddfe61ef41c0bada014da0b06fa47900aa1cf29c69654c7c70dae4528163582cc86e9db9a8257fe124d7a0dbadbc41c88d9b86cd8e62692f40b17be05ba4417 -SHA512 (nbdkit-1.27.9.tar.gz.sig) = 338f4151173231d51a436f43880718ef8ede12adbe7c1908a0b1df6de24d6f38d10bc5f2c4b39770696d1e075fddd80838a47537eba4c798d9c303b93a74288a +SHA512 (nbdkit-1.27.10.tar.gz) = af71fb68b06e6bc4d4d6fba95f6fda630c16b83ce92f4d2d463584b64cfb6ba5960706bea7257f6bce6d03abd4179ea346841f6f7d701b2fda44135859a35718 +SHA512 (nbdkit-1.27.10.tar.gz.sig) = 6261f99f19841b5ef6a9bc886da468d6ffbe0e17ed90a5534d44bda834d99649d34b3e2eea9427a48ccc5c81ae04d88caea4f25a7b37c66ad44d7f74dac91f3a From 1d3b29e985900ea106bb53d29351a5b86e4d7839 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 22 Sep 2021 10:35:11 +0100 Subject: [PATCH 429/683] Disable libguestfs test on ppc64le because qemu is broken: https://bugzilla.redhat.com/show_bug.cgi?id=2006709 --- nbdkit.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8c21bfb..412d6f8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,6 +1,8 @@ %global _hardened_build 1 %ifarch %{kernel_arches} +# ppc64le broken in rawhide: +# https://bugzilla.redhat.com/show_bug.cgi?id=2006709 # riscv64 tests fail with # qemu-system-riscv64: invalid accelerator kvm # qemu-system-riscv64: falling back to tcg @@ -8,7 +10,7 @@ # This seems to require changes in libguestfs and/or qemu to support # -cpu max or -cpu virt. # s390x builders can't run libguestfs -%ifnarch riscv64 s390 s390x +%ifnarch %{power64} riscv64 s390 s390x %global have_libguestfs 1 %endif %endif From 0ae4bf9283e2cdf10239d9f3720f40b17f98c412 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 23 Sep 2021 15:55:16 +0100 Subject: [PATCH 430/683] New upstream stable branch version 1.28.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 412d6f8..2218457 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -47,10 +47,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.27-development +%global source_directory 1.28-stable Name: nbdkit -Version: 1.27.10 +Version: 1.28.0 Release: 1%{?dist} Summary: NBD server @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Sep 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.28.0-1 +- New upstream stable branch version 1.28.0 + * Tue Sep 21 2021 Richard W.M. Jones <rjones@redhat.com> - 1.27.10-1 - New upstream development version 1.27.10. diff --git a/sources b/sources index 80d4145..e4ed4c7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.27.10.tar.gz) = af71fb68b06e6bc4d4d6fba95f6fda630c16b83ce92f4d2d463584b64cfb6ba5960706bea7257f6bce6d03abd4179ea346841f6f7d701b2fda44135859a35718 -SHA512 (nbdkit-1.27.10.tar.gz.sig) = 6261f99f19841b5ef6a9bc886da468d6ffbe0e17ed90a5534d44bda834d99649d34b3e2eea9427a48ccc5c81ae04d88caea4f25a7b37c66ad44d7f74dac91f3a +SHA512 (nbdkit-1.28.0.tar.gz) = 904b69847fc7fc3c3a394391657f52794e9a0d6d2a96df748ae74c6657ca07de33dd99b83888410d240031451927ead3a4776d0bdd433c2bf1e2acd36c3c8403 +SHA512 (nbdkit-1.28.0.tar.gz.sig) = 2b6d5c3c54766e1401d5c0b9192c46cf413aa586f0f33fed909c2056ca205a2bd8bb1a73077054d594ad9a963b6a07364f1e60e067437c0d333c4a0b202ebfb1 From 966e5bf1cc8d7645a1d2438541dfb474d32a096a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 4 Oct 2021 21:08:00 +0100 Subject: [PATCH 431/683] OCaml 4.13.1 build --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2218457..ff05a2c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.28.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1241,6 +1241,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.28.0-2 +- OCaml 4.13.1 build + * Thu Sep 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.28.0-1 - New upstream stable branch version 1.28.0 From 829f3b07c17f5be31b2bd78d87c0e7b2f5115d3c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 19 Oct 2021 21:43:31 +0100 Subject: [PATCH 432/683] New upstream development version 1.29.1 New filter: nbdkit-retry-request-filter --- nbdkit.spec | 15 ++++++++++++--- sources | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ff05a2c..b1310a1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -47,11 +47,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.28-stable +%global source_directory 1.29-development Name: nbdkit -Version: 1.28.0 -Release: 2%{?dist} +Version: 1.29.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -583,6 +583,7 @@ Provides: %{name}-pause-filter = %{version}-%{release} Provides: %{name}-rate-filter = %{version}-%{release} Provides: %{name}-readahead-filter = %{version}-%{release} Provides: %{name}-retry-filter = %{version}-%{release} +Provides: %{name}-retry-request-filter = %{version}-%{release} Provides: %{name}-stats-filter = %{version}-%{release} Provides: %{name}-swab-filter = %{version}-%{release} Provides: %{name}-tls-fallback-filter = %{version}-%{release} @@ -650,6 +651,8 @@ nbdkit-readahead-filter Prefetch data when reading sequentially. nbdkit-retry-filter Reopen connection on error. +nbdkit-retry--request-filter Retry single requests on error. + nbdkit-stats-filter Display statistics about operations. nbdkit-swab-filter Filter for swapping byte order. @@ -1132,6 +1135,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so +%{_libdir}/%{name}/filters/nbdkit-retry-request-filter.so %{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so @@ -1164,6 +1168,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* +%{_mandir}/man1/nbdkit-retry-request-filter.1* %{_mandir}/man1/nbdkit-stats-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* %{_mandir}/man1/nbdkit-tls-fallback-filter.1* @@ -1241,6 +1246,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Oct 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.1-1 +- New upstream development version 1.29.1 +- New filter: nbdkit-retry-request-filter + * Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.28.0-2 - OCaml 4.13.1 build diff --git a/sources b/sources index e4ed4c7..ce0be34 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.28.0.tar.gz) = 904b69847fc7fc3c3a394391657f52794e9a0d6d2a96df748ae74c6657ca07de33dd99b83888410d240031451927ead3a4776d0bdd433c2bf1e2acd36c3c8403 -SHA512 (nbdkit-1.28.0.tar.gz.sig) = 2b6d5c3c54766e1401d5c0b9192c46cf413aa586f0f33fed909c2056ca205a2bd8bb1a73077054d594ad9a963b6a07364f1e60e067437c0d333c4a0b202ebfb1 +SHA512 (nbdkit-1.29.1.tar.gz) = f54f98801002bc9108ecd1c368fa98592afd8c1ac7d2d3305f4750bf58538d39b0a258b8387c4913ae220833203c1f9eead472f2e77406234e7199f8b5117b7a +SHA512 (nbdkit-1.29.1.tar.gz.sig) = 6ecc6114475de00783171f50c95b31fa4eb4b99dcf4b12351ac12a3a76af66ce3578dd1dea63bbdc765dac9a6a796e2a6c64c7613768bf71c187e91bcc8fd257 From 1ecb1dd0bec6222639c1ffecac4c3a0c6446a3e3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 25 Oct 2021 21:43:42 +0100 Subject: [PATCH 433/683] New upstream development version 1.29.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b1310a1..87b9c9a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.1 +Version: 1.29.2 Release: 1%{?dist} Summary: NBD server @@ -1246,6 +1246,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Oct 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.2-1 +- New upstream development version 1.29.2 + * Tue Oct 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.1-1 - New upstream development version 1.29.1 - New filter: nbdkit-retry-request-filter diff --git a/sources b/sources index ce0be34..f7c6f62 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.1.tar.gz) = f54f98801002bc9108ecd1c368fa98592afd8c1ac7d2d3305f4750bf58538d39b0a258b8387c4913ae220833203c1f9eead472f2e77406234e7199f8b5117b7a -SHA512 (nbdkit-1.29.1.tar.gz.sig) = 6ecc6114475de00783171f50c95b31fa4eb4b99dcf4b12351ac12a3a76af66ce3578dd1dea63bbdc765dac9a6a796e2a6c64c7613768bf71c187e91bcc8fd257 +SHA512 (nbdkit-1.29.2.tar.gz) = 4fdc1a50bdd224ea40205ff0c853d8ce04fe463c81850dacebd93826494eff955586b14798035a00425923865d513e924eb4c82efe3f44b7cb8b84c12ba24e6e +SHA512 (nbdkit-1.29.2.tar.gz.sig) = 19f9ba9fd998894726d2dfc11a2249ad5daa9240d4c38575614e692d03199b4879e2ae77ff2a6e7841f97dc93a83ef884040596d82ce5f20b98d546e47636030 From d41f24fd9d517f2904ff843442b8736993510ec8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 28 Oct 2021 22:10:42 +0100 Subject: [PATCH 434/683] New upstream development version 1.29.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 87b9c9a..a5d1194 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.2 +Version: 1.29.3 Release: 1%{?dist} Summary: NBD server @@ -1246,6 +1246,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Oct 28 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-1 +- New upstream development version 1.29.3 + * Mon Oct 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.2-1 - New upstream development version 1.29.2 diff --git a/sources b/sources index f7c6f62..361f692 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.2.tar.gz) = 4fdc1a50bdd224ea40205ff0c853d8ce04fe463c81850dacebd93826494eff955586b14798035a00425923865d513e924eb4c82efe3f44b7cb8b84c12ba24e6e -SHA512 (nbdkit-1.29.2.tar.gz.sig) = 19f9ba9fd998894726d2dfc11a2249ad5daa9240d4c38575614e692d03199b4879e2ae77ff2a6e7841f97dc93a83ef884040596d82ce5f20b98d546e47636030 +SHA512 (nbdkit-1.29.3.tar.gz) = 3c81eda3c735167f4befe29274c7c43216121ff2b8925adf6c6cba9c2b6b735c05c4779afd4e22d4b2e5d7681ffbe49e7dcde0b977fb9a0da40a54b5a65977eb +SHA512 (nbdkit-1.29.3.tar.gz.sig) = 7aa8e90ce3662f98c88c337d203d7fc223ab2a8792ff2db01e282e7186d91255908f3588cc205ba9e047a8eae990fb3a9cecddc2658265d87119c313a78232be From 66ccfa6dd3cc42d6a33a148cd6981d3d9a226db1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 30 Oct 2021 14:31:29 +0100 Subject: [PATCH 435/683] Distribute README.VDDK in nbdkit-vddk-plugin subpackage --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a5d1194..31bb3ce 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1097,7 +1097,7 @@ export LIBGUESTFS_TRACE=1 %ifarch x86_64 %files vddk-plugin -%doc README +%doc README plugins/vddk/README.VDDK %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so %{_mandir}/man1/nbdkit-vddk-plugin.1* From df8ac05e24cebe463c822281b5cdc903352ed8ed Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Nov 2021 21:52:40 +0000 Subject: [PATCH 436/683] Switch to xorriso (instead of genisoimage) Upstream prefers it since: commit 174a0caf7eaf1943360f9d8f714f466ea7449d90 Author: Richard W.M. Jones <rjones@redhat.com> Date: Sat Apr 3 17:15:34 2021 +0100 iso: Pick xorriso in preference to genisoimage or mkisofs. See this Debian page explaining the situation with genisoimage: https://wiki.debian.org/genisoimage --- nbdkit.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 31bb3ce..046407d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.29.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -96,7 +96,7 @@ BuildRequires: libnbd-devel >= 1.3.11 BuildRequires: libssh-devel BuildRequires: e2fsprogs, e2fsprogs-devel %if !0%{?rhel} -BuildRequires: genisoimage +BuildRequires: xorriso BuildRequires: rb_libtorrent-devel %endif BuildRequires: bash-completion @@ -335,7 +335,7 @@ Summary: Virtual ISO 9660 plugin for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: genisoimage +Requires: xorriso %description iso-plugin @@ -1246,6 +1246,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Nov 02 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-2 +- Switch to xorriso (instead of genisoimage) + * Thu Oct 28 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-1 - New upstream development version 1.29.3 From 048b8de83c0e54418e01b3f75fc541fcf1b539e3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Nov 2021 08:54:51 +0000 Subject: [PATCH 437/683] Move nbdkit-null-plugin to the nbdkit-server package This plugin is required for probing the presence of filters (see nbdkit-probing(1) man page), so it makes sense to always have it around. The null plugin is only 16K in size so it does not add significantly to the nbdkit-server package. --- nbdkit.spec | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 046407d..fa46011 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -189,9 +189,13 @@ reading the nbdkit(1) and nbdkit-plugin(3) manual pages. Summary: The %{name} server License: BSD +Provides: %{name}-null-plugin = %{version}-%{release} %description server -This package contains the %{name} server with no plugins or filters. +This package contains the %{name} server with only the null plugin +and no filters. To install a basic set of plugins and filters you +need to install "nbdkit-basic-plugins", "nbdkit-basic-filters" or +the metapackage "nbdkit". %package basic-plugins @@ -206,7 +210,6 @@ Provides: %{name}-floppy-plugin = %{version}-%{release} Provides: %{name}-full-plugin = %{version}-%{release} Provides: %{name}-info-plugin = %{version}-%{release} Provides: %{name}-memory-plugin = %{version}-%{release} -Provides: %{name}-null-plugin = %{version}-%{release} Provides: %{name}-ondemand-plugin = %{version}-%{release} Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} @@ -236,8 +239,6 @@ nbdkit-info-plugin Serve client and server information. nbdkit-memory-plugin A virtual memory plugin. -nbdkit-null-plugin A null (bitbucket) plugin. - nbdkit-ondemand-plugin Create filesystems on demand. nbdkit-pattern-plugin Fixed test pattern. @@ -881,11 +882,13 @@ export LIBGUESTFS_TRACE=1 %{_sbindir}/nbdkit %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/plugins +%{_libdir}/%{name}/plugins/nbdkit-null-plugin.so %dir %{_libdir}/%{name}/filters %{_mandir}/man1/nbdkit.1* %{_mandir}/man1/nbdkit-captive.1* %{_mandir}/man1/nbdkit-client.1* %{_mandir}/man1/nbdkit-loop.1* +%{_mandir}/man1/nbdkit-null-plugin.1* %{_mandir}/man1/nbdkit-probing.1* %{_mandir}/man1/nbdkit-protocol.1* %{_mandir}/man1/nbdkit-service.1* @@ -903,7 +906,6 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-full-plugin.so %{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-null-plugin.so %{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so @@ -919,7 +921,6 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-full-plugin.1* %{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* -%{_mandir}/man1/nbdkit-null-plugin.1* %{_mandir}/man1/nbdkit-ondemand-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* From 9fbfa6cc49fb6c7d602534f4886d789ce3ef8d5c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Nov 2021 09:12:05 +0000 Subject: [PATCH 438/683] Consistent use of whitespace Remove double line whitespace between %package and %description. Also remove whitespace lines within %package sections. Double line whitespace is kept between subpackages for visual clarity. --- nbdkit.spec | 58 ----------------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fa46011..898beb5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -188,7 +188,6 @@ reading the nbdkit(1) and nbdkit-plugin(3) manual pages. %package server Summary: The %{name} server License: BSD - Provides: %{name}-null-plugin = %{version}-%{release} %description server @@ -201,7 +200,6 @@ the metapackage "nbdkit". %package basic-plugins Summary: Basic plugins for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Provides: %{name}-data-plugin = %{version}-%{release} Provides: %{name}-eval-plugin = %{version}-%{release} @@ -259,14 +257,12 @@ nbdkit-zero-plugin Zero-length plugin for testing. %package example-plugins Summary: Example plugins for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} %if !0%{?rhel} # example4 is written in Perl. Requires: %{name}-perl-plugin %endif - %description example-plugins This package contains example plugins for %{name}. @@ -278,12 +274,10 @@ This package contains example plugins for %{name}. %package cc-plugin Summary: Write small inline C plugins and scripts for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: gcc Requires: %{_bindir}/cat - %description cc-plugin This package contains support for writing inline C plugins and scripts for %{name}. NOTE this is NOT the right package for writing plugins @@ -295,12 +289,10 @@ in C, install %{name}-devel for that. %package cdi-plugin Summary: Containerized Data Import plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: jq Requires: podman - %description cdi-plugin This package contains Containerized Data Import support for %{name}. %endif @@ -309,10 +301,8 @@ This package contains Containerized Data Import support for %{name}. %package curl-plugin Summary: HTTP/FTP (cURL) plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description curl-plugin This package contains cURL (HTTP/FTP) support for %{name}. @@ -321,10 +311,8 @@ This package contains cURL (HTTP/FTP) support for %{name}. %package guestfs-plugin Summary: libguestfs plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description guestfs-plugin This package is a libguestfs plugin for %{name}. %endif @@ -334,11 +322,9 @@ This package is a libguestfs plugin for %{name}. %package iso-plugin Summary: Virtual ISO 9660 plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: xorriso - %description iso-plugin This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. %endif @@ -348,10 +334,8 @@ This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. %package libvirt-plugin Summary: Libvirt plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description libvirt-plugin This package is a libvirt plugin for %{name}. It lets you access libvirt guest disks readonly. It is implemented using the libvirt @@ -362,12 +346,10 @@ virDomainBlockPeek API. %package linuxdisk-plugin Summary: Virtual Linux disk plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} # for mke2fs Requires: e2fsprogs - %description linuxdisk-plugin This package is a virtual Linux disk plugin for %{name}. @@ -376,10 +358,8 @@ This package is a virtual Linux disk plugin for %{name}. %package lua-plugin Summary: Lua plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description lua-plugin This package lets you write Lua plugins for %{name}. %endif @@ -388,10 +368,8 @@ This package lets you write Lua plugins for %{name}. %package nbd-plugin Summary: NBD proxy / forward plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description nbd-plugin This package lets you forward NBD connections from %{name} to another NBD server. @@ -401,10 +379,8 @@ to another NBD server. %package ocaml-plugin Summary: OCaml plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description ocaml-plugin This package lets you run OCaml plugins for %{name}. @@ -415,11 +391,9 @@ To compile OCaml plugins you will also need to install %package ocaml-plugin-devel Summary: OCaml development environment for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release} - %description ocaml-plugin-devel This package lets you write OCaml plugins for %{name}. %endif @@ -429,10 +403,8 @@ This package lets you write OCaml plugins for %{name}. %package perl-plugin Summary: Perl plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description perl-plugin This package lets you write Perl plugins for %{name}. %endif @@ -441,10 +413,8 @@ This package lets you write Perl plugins for %{name}. %package python-plugin Summary: Python 3 plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description python-plugin This package lets you write Python 3 plugins for %{name}. @@ -453,10 +423,8 @@ This package lets you write Python 3 plugins for %{name}. %package ruby-plugin Summary: Ruby plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description ruby-plugin This package lets you write Ruby plugins for %{name}. %endif @@ -468,12 +436,10 @@ This package lets you write Ruby plugins for %{name}. %package S3-plugin Summary: Amazon S3 and Ceph plugin for %{name} License: BSD - Requires: %{name}-python-plugin >= 1.22 # XXX Should not need to add this. Requires: python3-boto3 - %description S3-plugin This package lets you open disk images stored in Amazon S3 or Ceph using %{name}. @@ -483,10 +449,8 @@ or Ceph using %{name}. %package ssh-plugin Summary: SSH plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description ssh-plugin This package contains SSH support for %{name}. @@ -495,10 +459,8 @@ This package contains SSH support for %{name}. %package tcl-plugin Summary: Tcl plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description tcl-plugin This package lets you write Tcl plugins for %{name}. %endif @@ -507,7 +469,6 @@ This package lets you write Tcl plugins for %{name}. %package tmpdisk-plugin Summary: Remote temporary filesystem disk plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} # For mkfs and mke2fs (defaults). Requires: util-linux, e2fsprogs @@ -517,7 +478,6 @@ Suggests: xfsprogs Suggests: ntfsprogs, dosfstools %endif - %description tmpdisk-plugin This package is a remote temporary filesystem disk plugin for %{name}. @@ -526,10 +486,8 @@ This package is a remote temporary filesystem disk plugin for %{name}. %package torrent-plugin Summary: BitTorrent plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description torrent-plugin This package is a BitTorrent plugin for %{name}. %endif @@ -539,12 +497,10 @@ This package is a BitTorrent plugin for %{name}. %package vddk-plugin Summary: VMware VDDK plugin for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} # https://bugzilla.redhat.com/show_bug.cgi?id=1931818 Requires: libxcrypt-compat - %description vddk-plugin This package is a plugin for %{name} which connects to VMware VDDK for accessing VMware disks and servers. @@ -554,7 +510,6 @@ VMware VDDK for accessing VMware disks and servers. %package basic-filters Summary: Basic filters for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Provides: %{name}-blocksize-filter = %{version}-%{release} Provides: %{name}-cache-filter = %{version}-%{release} @@ -590,7 +545,6 @@ Provides: %{name}-swab-filter = %{version}-%{release} Provides: %{name}-tls-fallback-filter = %{version}-%{release} Provides: %{name}-truncate-filter = %{version}-%{release} - %description basic-filters This package contains filters for %{name} which only depend on simple C libraries: glibc, gnutls. Other filters for nbdkit with more @@ -667,10 +621,8 @@ nbdkit-truncate-filter Truncate, expand, round up or round down size. %package ext2-filter Summary: ext2, ext3 and ext4 filesystem support for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description ext2-filter This package contains ext2, ext3 and ext4 filesystem support for %{name}. @@ -680,10 +632,8 @@ This package contains ext2, ext3 and ext4 filesystem support for %package gzip-filter Summary: GZip filter for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description gzip-filter This package is a gzip filter for %{name}. @@ -691,13 +641,10 @@ This package is a gzip filter for %{name}. %package tar-filter Summary: Tar archive filter for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: tar - Obsoletes: %{name}-tar-plugin < 1.23.9-3 - %description tar-filter This package is a tar archive filter for %{name}. @@ -705,10 +652,8 @@ This package is a tar archive filter for %{name}. %package xz-filter Summary: XZ filter for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} - %description xz-filter This package is the xz filter for %{name}. @@ -716,11 +661,9 @@ This package is the xz filter for %{name}. %package devel Summary: Development files and documentation for %{name} License: BSD - Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: pkgconfig - %description devel This package contains development files and documentation for %{name}. Install this package if you want to develop @@ -733,7 +676,6 @@ BuildArch: noarch Requires: bash-completion >= 2.0 Requires: %{name}-server = %{version}-%{release} - %description bash-completion Install this package if you want intelligent bash tab-completion for %{name}. From 2e1040c18912273414d9534cd1689a11b22056ab Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Nov 2021 09:13:46 +0000 Subject: [PATCH 439/683] New Fedora build with previous two commits --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 898beb5..dd65e37 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.29.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1189,6 +1189,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Nov 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-3 +- Move nbdkit-null-plugin to the nbdkit-server package + * Tue Nov 02 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-2 - Switch to xorriso (instead of genisoimage) From 5a0fb7a704362b9920c82bc4939590eff793a962 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Nov 2021 14:44:44 +0000 Subject: [PATCH 440/683] New upstream development version 1.29.4 Remove references to nbdkit-streaming-plugin (now removed upstream) --- nbdkit.spec | 12 +++++------- sources | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dd65e37..0dc298b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.3 -Release: 3%{?dist} +Version: 1.29.4 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -746,10 +746,6 @@ find $RPM_BUILD_ROOT -name '*.la' -delete # rust plugin is built. Delete it if this happens. rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* -# Remove the streaming plugin (deprecated upstream). -rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so -rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-streaming-plugin.1* - %if 0%{?rhel} # In RHEL, remove some plugins we cannot --disable. for f in cc cdi torrent; do @@ -1189,7 +1185,9 @@ export LIBGUESTFS_TRACE=1 %changelog -* Thu Nov 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-3 +* Thu Nov 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.4-1 +- New upstream development version 1.29.4 +- Remove references to nbdkit-streaming-plugin (now removed upstream) - Move nbdkit-null-plugin to the nbdkit-server package * Tue Nov 02 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.3-2 diff --git a/sources b/sources index 361f692..86ef477 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.3.tar.gz) = 3c81eda3c735167f4befe29274c7c43216121ff2b8925adf6c6cba9c2b6b735c05c4779afd4e22d4b2e5d7681ffbe49e7dcde0b977fb9a0da40a54b5a65977eb -SHA512 (nbdkit-1.29.3.tar.gz.sig) = 7aa8e90ce3662f98c88c337d203d7fc223ab2a8792ff2db01e282e7186d91255908f3588cc205ba9e047a8eae990fb3a9cecddc2658265d87119c313a78232be +SHA512 (nbdkit-1.29.4.tar.gz) = 0b523c9a2ac5714fddbc9880a71bc209075c9c089fa013d98a04b4df2548854791b600838052dd486a2535d2044678ff1d1663231ff14a50f116809bcc585f23 +SHA512 (nbdkit-1.29.4.tar.gz.sig) = 6447d6869abf5cbae8af9ce9c4b62ea06e607e1469a217f13020724911876adb6d4359382957acee3e9d68c3ff45df2f211d5866bb865f1c4cbe10c49434dce6 From c25bdd9e3ebd285072d3b98465ed13e1503ed919 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Nov 2021 12:05:06 +0000 Subject: [PATCH 441/683] New upstream development version 1.29.5 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0dc298b..07365da 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.4 +Version: 1.29.5 Release: 1%{?dist} Summary: NBD server @@ -1185,6 +1185,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Nov 09 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.5-1 +- New upstream development version 1.29.5 + * Thu Nov 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.4-1 - New upstream development version 1.29.4 - Remove references to nbdkit-streaming-plugin (now removed upstream) diff --git a/sources b/sources index 86ef477..f1d888b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.4.tar.gz) = 0b523c9a2ac5714fddbc9880a71bc209075c9c089fa013d98a04b4df2548854791b600838052dd486a2535d2044678ff1d1663231ff14a50f116809bcc585f23 -SHA512 (nbdkit-1.29.4.tar.gz.sig) = 6447d6869abf5cbae8af9ce9c4b62ea06e607e1469a217f13020724911876adb6d4359382957acee3e9d68c3ff45df2f211d5866bb865f1c4cbe10c49434dce6 +SHA512 (nbdkit-1.29.5.tar.gz) = 4c1228516b1c02a611ee1a589eb66f7511c2b98a9fc1c126d40e221021681ec32d71c7134666619d7b65415549d2c6ca80dc54d551532b1f3943b89e0565933d +SHA512 (nbdkit-1.29.5.tar.gz.sig) = 0b61797aeea81d640b681186f32c1ecd2721bcc5178eec046c6472b404f90c96bd63bf1ae97572773f0f88de40c0ab140074e121e5b9a0e071a40ec28cf110c0 From 6386105a86809b4a6225cea4d7a3c7f08b5311e0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Nov 2021 12:11:06 +0000 Subject: [PATCH 442/683] New minimum OCaml is 4.03 Starting in nbdkit 1.30 --- nbdkit.spec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 07365da..0c7eb10 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -112,9 +112,7 @@ BuildRequires: python3-boto3 %endif %if !0%{?rhel} %if 0%{?have_ocaml} -# Requires OCaml 4.02.2 which contains fix for -# http://caml.inria.fr/mantis/view.php?id=6693 -BuildRequires: ocaml >= 4.02.2 +BuildRequires: ocaml >= 4.03 BuildRequires: ocaml-ocamldoc %endif BuildRequires: ruby-devel @@ -1187,6 +1185,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Tue Nov 09 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.5-1 - New upstream development version 1.29.5 +- New minimum OCaml is 4.03 * Thu Nov 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.4-1 - New upstream development version 1.29.4 From c5bc76efe999f5c122219bd03df96a36f9229f00 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 19 Nov 2021 21:01:57 +0000 Subject: [PATCH 443/683] New upstream development version 1.29.6 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0c7eb10..87be57a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.5 +Version: 1.29.6 Release: 1%{?dist} Summary: NBD server @@ -1183,6 +1183,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Nov 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.6-1 +- New upstream development version 1.29.6 + * Tue Nov 09 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.5-1 - New upstream development version 1.29.5 - New minimum OCaml is 4.03 diff --git a/sources b/sources index f1d888b..a4e02b2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.5.tar.gz) = 4c1228516b1c02a611ee1a589eb66f7511c2b98a9fc1c126d40e221021681ec32d71c7134666619d7b65415549d2c6ca80dc54d551532b1f3943b89e0565933d -SHA512 (nbdkit-1.29.5.tar.gz.sig) = 0b61797aeea81d640b681186f32c1ecd2721bcc5178eec046c6472b404f90c96bd63bf1ae97572773f0f88de40c0ab140074e121e5b9a0e071a40ec28cf110c0 +SHA512 (nbdkit-1.29.6.tar.gz) = cd543f19711e324bd3b7ab9368cb5641ce9f1c2e3a5321933d9b50a35ed698a78cbe23e1994dc15116a65db9df12e19871e3523cfbb3c06928f7b3e83ef8d401 +SHA512 (nbdkit-1.29.6.tar.gz.sig) = 52bb779079795476f1cad0ffa67ac204b34a958d11bb2fa6436343dc4845bb7c1d783b77d1a0c5c9172882e2bf9d35c81c77a944f03f298ac2316fa0fca1ca7c From 8803d4c3388a25d6357095134b941afa0f940e2e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Nov 2021 17:45:51 +0000 Subject: [PATCH 444/683] New upstream development version 1.29.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 87be57a..10b7fe5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.6 +Version: 1.29.7 Release: 1%{?dist} Summary: NBD server @@ -1183,6 +1183,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Nov 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.7-1 +- New upstream development version 1.29.7 + * Fri Nov 19 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.6-1 - New upstream development version 1.29.6 diff --git a/sources b/sources index a4e02b2..0804689 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.6.tar.gz) = cd543f19711e324bd3b7ab9368cb5641ce9f1c2e3a5321933d9b50a35ed698a78cbe23e1994dc15116a65db9df12e19871e3523cfbb3c06928f7b3e83ef8d401 -SHA512 (nbdkit-1.29.6.tar.gz.sig) = 52bb779079795476f1cad0ffa67ac204b34a958d11bb2fa6436343dc4845bb7c1d783b77d1a0c5c9172882e2bf9d35c81c77a944f03f298ac2316fa0fca1ca7c +SHA512 (nbdkit-1.29.7.tar.gz) = 3423520743f88fd0ed3ce9a7d2c2fb185da7254d380554f35af93b8660af09885edf1ed48fcbf9c81b67148eb36cb95a768a5a668361bc2e137b6123a7790212 +SHA512 (nbdkit-1.29.7.tar.gz.sig) = ad9cd9630878632ce06da43060ff2b67f36d5abb4d380fecd9ea31bb9c2e7cea435d9b54be9d0344127a31f1f916382c4ffc3f5d5786d039e73a93cdfaf99258 From 56d39b24786fa8a8b2c960583a6f276561d6f779 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Nov 2021 18:00:14 +0000 Subject: [PATCH 445/683] Temporarily disable on armv7 https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GD3ABSWD6HHTNEKV2EJY4PXABQ245UCZ/ --- nbdkit.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 10b7fe5..ffd074b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,3 +1,7 @@ +# No qemu on armv7 because of broken GCC, see: +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GD3ABSWD6HHTNEKV2EJY4PXABQ245UCZ/ +ExcludeArch: %{arm} + %global _hardened_build 1 %ifarch %{kernel_arches} From 43959fc74253269af78e15d5fec57454a9d327e3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 25 Nov 2021 08:32:42 +0000 Subject: [PATCH 446/683] Revert "Temporarily disable on armv7" This reverts commit 56d39b24786fa8a8b2c960583a6f276561d6f779. --- nbdkit.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ffd074b..10b7fe5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,7 +1,3 @@ -# No qemu on armv7 because of broken GCC, see: -# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GD3ABSWD6HHTNEKV2EJY4PXABQ245UCZ/ -ExcludeArch: %{arm} - %global _hardened_build 1 %ifarch %{kernel_arches} From 081e50952e568b19b416d4f9e1f6467f6becd864 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 25 Nov 2021 08:33:17 +0000 Subject: [PATCH 447/683] Bump release and rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 10b7fe5..daf6683 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.29.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1183,6 +1183,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Nov 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.7-2 +- Bump release and rebuild + * Tue Nov 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.7-1 - New upstream development version 1.29.7 From 2712f85f7658ec4cdf87ae889b9f5b455c017845 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 25 Nov 2021 13:42:16 +0000 Subject: [PATCH 448/683] Skip some long-running tests on armv7 --- nbdkit.spec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index daf6683..14ff0e8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -792,6 +792,14 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif +# armv7 is very slow and some tests take an especially long time to +# run. This skips some of the slowest tests. Note that +# test-data-format.sh is a slow test, but in the past we have found +# bugs by running it on armv7. +%ifarch %{arm} +skip_test tests/test-partition1.sh tests/test-cow.sh tests/test-cow-block-size.sh tests/test-cow-extents2.sh +%endif + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From bc579786a184871d9a500eada903247b874c5c6f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 4 Dec 2021 11:03:54 +0000 Subject: [PATCH 449/683] New upstream development version 1.29.8 --- nbdkit.spec | 13 +++++++++++-- sources | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 14ff0e8..3005732 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,8 +50,8 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.7 -Release: 2%{?dist} +Version: 1.29.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -534,6 +534,7 @@ Provides: %{name}-nozero-filter = %{version}-%{release} Provides: %{name}-offset-filter = %{version}-%{release} Provides: %{name}-partition-filter = %{version}-%{release} Provides: %{name}-pause-filter = %{version}-%{release} +Provides: %{name}-protect-filter = %{version}-%{release} Provides: %{name}-rate-filter = %{version}-%{release} Provides: %{name}-readahead-filter = %{version}-%{release} Provides: %{name}-retry-filter = %{version}-%{release} @@ -598,6 +599,8 @@ nbdkit-partition-filter Serve a single partition. nbdkit-pause-filter Pause NBD requests. +nbdkit-protect-filter Write-protect parts of a plugin. + nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. @@ -1077,6 +1080,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-offset-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-pause-filter.so +%{_libdir}/%{name}/filters/nbdkit-protect-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so @@ -1110,6 +1114,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-offset-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-pause-filter.1* +%{_mandir}/man1/nbdkit-protect-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* @@ -1191,6 +1196,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Dec 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.8-1 +- New upstream development version 1.29.8 +- Add nbdkit-protect-filter. + * Thu Nov 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.7-2 - Bump release and rebuild diff --git a/sources b/sources index 0804689..d1712e3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.7.tar.gz) = 3423520743f88fd0ed3ce9a7d2c2fb185da7254d380554f35af93b8660af09885edf1ed48fcbf9c81b67148eb36cb95a768a5a668361bc2e137b6123a7790212 -SHA512 (nbdkit-1.29.7.tar.gz.sig) = ad9cd9630878632ce06da43060ff2b67f36d5abb4d380fecd9ea31bb9c2e7cea435d9b54be9d0344127a31f1f916382c4ffc3f5d5786d039e73a93cdfaf99258 +SHA512 (nbdkit-1.29.8.tar.gz) = a31544a47136a63650fa8ac187bd7f4db090846474794cf7b380b77228ed0b2d6b445989da681b8229999469e74e2513f1e37c98c11fc158711bcd75d87cef65 +SHA512 (nbdkit-1.29.8.tar.gz.sig) = 53f01816e7fe96d21347cb8aa8bffbf6fcdcae2cf5235ed3a4968b12d8fb7335f8154782f7feb17216695fce7cf5702fa0d23b64bc640bb9bbcaf70aab26dbe2 From e297dcb96e7cbbab2191268557e0c5e5713a020d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 7 Dec 2021 09:54:38 +0000 Subject: [PATCH 450/683] New upstream development version 1.29.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3005732..89e3c6b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.8 +Version: 1.29.9 Release: 1%{?dist} Summary: NBD server @@ -1196,6 +1196,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Dec 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.9-1 +- New upstream development version 1.29.9 + * Sat Dec 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.8-1 - New upstream development version 1.29.8 - Add nbdkit-protect-filter. diff --git a/sources b/sources index d1712e3..f2668df 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.8.tar.gz) = a31544a47136a63650fa8ac187bd7f4db090846474794cf7b380b77228ed0b2d6b445989da681b8229999469e74e2513f1e37c98c11fc158711bcd75d87cef65 -SHA512 (nbdkit-1.29.8.tar.gz.sig) = 53f01816e7fe96d21347cb8aa8bffbf6fcdcae2cf5235ed3a4968b12d8fb7335f8154782f7feb17216695fce7cf5702fa0d23b64bc640bb9bbcaf70aab26dbe2 +SHA512 (nbdkit-1.29.9.tar.gz) = 11fa0e6bdb84bbde5ac194d5a0deb599751ced0e59a843f140ef82458875753bfa2215eeb5c3e54336567a2ec032c63b4bd8b10f61d2b4edef63b4c67b1f798b +SHA512 (nbdkit-1.29.9.tar.gz.sig) = 6d8d345c10436768e2fc57583ede531c978ffd3c2ebcd8367490f311d408009b74d1cbd36bf6f00c85968efbc8908dc6a0c5b558f740ae28df06a8508eeb4e79 From eca1adb78130ae2dbe361c0701451450d6a74aa8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 18 Dec 2021 11:42:50 +0000 Subject: [PATCH 451/683] New upstream development version 1.29.10 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 89e3c6b..e632dfc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,7 +50,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.9 +Version: 1.29.10 Release: 1%{?dist} Summary: NBD server @@ -1196,6 +1196,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.10-1 +- New upstream development version 1.29.10 + * Tue Dec 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.9-1 - New upstream development version 1.29.9 diff --git a/sources b/sources index f2668df..797a3b1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.9.tar.gz) = 11fa0e6bdb84bbde5ac194d5a0deb599751ced0e59a843f140ef82458875753bfa2215eeb5c3e54336567a2ec032c63b4bd8b10f61d2b4edef63b4c67b1f798b -SHA512 (nbdkit-1.29.9.tar.gz.sig) = 6d8d345c10436768e2fc57583ede531c978ffd3c2ebcd8367490f311d408009b74d1cbd36bf6f00c85968efbc8908dc6a0c5b558f740ae28df06a8508eeb4e79 +SHA512 (nbdkit-1.29.10.tar.gz) = c2e5891eff471ab80e364c5258a305bd20e11c0059f415ff2aa23ec03ceb52630eb5448684ffffcf50cc97515e4c63889349ae577c13bd61bf9e06cd4a08f2c9 +SHA512 (nbdkit-1.29.10.tar.gz.sig) = d3e5e7a1bf92652c96e3ac91f039fa9cfad0381039af3a1475eea06ad6eddb0b2a9a0314a2199e1b0cc4b0da090c491741fa2b289a37cb3aede5e58d77ddd861 From 560850cee6851220dc0175acfa34e8ab241cf8d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 18 Dec 2021 22:10:03 +0000 Subject: [PATCH 452/683] New upstream development version 1.29.11 Use new --disable-libguestfs-tests on non-guestfs arches. --- nbdkit.spec | 25 +++++++++++-------------- sources | 4 ++-- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e632dfc..a24d128 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,7 +21,8 @@ %global have_ocaml 1 %endif -# Architectures where the complete test suite must pass. +# Architectures where we run the complete test suite including +# the libguestfs tests. # # On all other architectures, a simpler test suite must pass. This # omits any tests that run full qemu, since running qemu under TCG is @@ -50,7 +51,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.10 +Version: 1.29.11 Release: 1%{?dist} Summary: NBD server @@ -77,9 +78,6 @@ BuildRequires: make BuildRequires: autoconf, automake, libtool %endif -%ifnarch %{complete_test_arches} -BuildRequires: autoconf, automake, libtool -%endif BuildRequires: gcc, gcc-c++ BuildRequires: %{_bindir}/pod2man BuildRequires: gnutls-devel @@ -691,13 +689,6 @@ for %{name}. autoreconf -i %endif -%ifnarch %{complete_test_arches} -# Simplify the test suite so it doesn't require qemu. -sed -i -e 's/^LIBGUESTFS_TESTS/xLIBGUESTFS_TESTS/' tests/Makefile.am -sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am -autoreconf -i -%endif - %build # Golang bindings are not enabled in the build since they don't @@ -727,6 +718,11 @@ export PYTHON=%{__python3} --with-libguestfs \ %else --without-libguestfs \ +%endif +%ifarch %{complete_test_arches} + --enable-libguestfs-tests \ +%else + --disable-libguestfs-tests \ %endif --with-tls-priority=@NBDKIT,SYSTEM @@ -1196,8 +1192,9 @@ export LIBGUESTFS_TRACE=1 %changelog -* Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.10-1 -- New upstream development version 1.29.10 +* Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.11-1 +- New upstream development version 1.29.11 +- Use new --disable-libguestfs-tests on non-guestfs arches. * Tue Dec 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.9-1 - New upstream development version 1.29.9 diff --git a/sources b/sources index 797a3b1..9aa7ad7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.10.tar.gz) = c2e5891eff471ab80e364c5258a305bd20e11c0059f415ff2aa23ec03ceb52630eb5448684ffffcf50cc97515e4c63889349ae577c13bd61bf9e06cd4a08f2c9 -SHA512 (nbdkit-1.29.10.tar.gz.sig) = d3e5e7a1bf92652c96e3ac91f039fa9cfad0381039af3a1475eea06ad6eddb0b2a9a0314a2199e1b0cc4b0da090c491741fa2b289a37cb3aede5e58d77ddd861 +SHA512 (nbdkit-1.29.11.tar.gz) = 923e07db9f4bde4b8a110020a7301c11a1c7e6ad39a02d199c63b4330924f9da1235528b1b70d5c01686740d1e0ff041e2a93c66381db90364f811c39772a8cc +SHA512 (nbdkit-1.29.11.tar.gz.sig) = 1a62d33abe12bb1494722be6c631f30ffdf33d7a9d20e3674451639fa0a25f3c8304fb1dbd8cc345c8167a89cb7d77235afd859b368369821fa39d5f9c93f8d0 From 0fe18b829597ff78a726f9182dadaa760db57146 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 4 Jan 2022 13:49:03 +0000 Subject: [PATCH 453/683] New upstream development version 1.29.12 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a24d128..beeab03 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.11 +Version: 1.29.12 Release: 1%{?dist} Summary: NBD server @@ -1192,6 +1192,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jan 04 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.12-1 +- New upstream development version 1.29.12 + * Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1.29.11-1 - New upstream development version 1.29.11 - Use new --disable-libguestfs-tests on non-guestfs arches. diff --git a/sources b/sources index 9aa7ad7..5b6bb23 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.11.tar.gz) = 923e07db9f4bde4b8a110020a7301c11a1c7e6ad39a02d199c63b4330924f9da1235528b1b70d5c01686740d1e0ff041e2a93c66381db90364f811c39772a8cc -SHA512 (nbdkit-1.29.11.tar.gz.sig) = 1a62d33abe12bb1494722be6c631f30ffdf33d7a9d20e3674451639fa0a25f3c8304fb1dbd8cc345c8167a89cb7d77235afd859b368369821fa39d5f9c93f8d0 +SHA512 (nbdkit-1.29.12.tar.gz) = 928147bb07ca4cd321b634d54f9efa59f3fe4c5c82c0abf318893c15ea9c2412d134d6a374b21b4baffb024c398ba2db3f4b74f7bf2625eba336a6f849c71589 +SHA512 (nbdkit-1.29.12.tar.gz.sig) = 33f44db39ee1953489ee8ce3e94c4bf0b3e63fd32a92f17856603d48cfcbd22c0c98da901fe09375d04dce26928b448105b98685ed2b5e59d3640d16adb6b898 From 2168d136f982a1464675bc7af1989eae8ae60d81 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 15 Jan 2022 21:02:22 +0000 Subject: [PATCH 454/683] New upstream development version 1.29.13 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index beeab03..23829f7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.12 +Version: 1.29.13 Release: 1%{?dist} Summary: NBD server @@ -1192,6 +1192,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Jan 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.13-1 +- New upstream development version 1.29.13 + * Tue Jan 04 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.12-1 - New upstream development version 1.29.12 diff --git a/sources b/sources index 5b6bb23..4cf5423 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.12.tar.gz) = 928147bb07ca4cd321b634d54f9efa59f3fe4c5c82c0abf318893c15ea9c2412d134d6a374b21b4baffb024c398ba2db3f4b74f7bf2625eba336a6f849c71589 -SHA512 (nbdkit-1.29.12.tar.gz.sig) = 33f44db39ee1953489ee8ce3e94c4bf0b3e63fd32a92f17856603d48cfcbd22c0c98da901fe09375d04dce26928b448105b98685ed2b5e59d3640d16adb6b898 +SHA512 (nbdkit-1.29.13.tar.gz) = 8598437195a150aed5cfaf0e85d47aefa6a85019d0eadd619306acb6e1bc6bd7739306dfb4756108528ee270c0de0d9cba2226cc39be067d6ff41b66d184cfe5 +SHA512 (nbdkit-1.29.13.tar.gz.sig) = 8b88f1bfb3f5af563317b871f14eac6882557f0af33434164c8a412b34a0f4bec5982b5e1b29c40b39aa3faa6ada32a885fd318eaee2f7c8734d10ed64926e1b From 48e6b17885cc1266b66c3e8c37b15d2685cc2916 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 20 Jan 2022 20:56:00 +0000 Subject: [PATCH 455/683] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 23829f7..e149dda 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.29.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1192,6 +1192,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.29.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Sat Jan 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.13-1 - New upstream development version 1.29.13 From a3f1e0a0652bd5d715e6b276b4ba4f21a84ae444 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 20 Jan 2022 21:25:30 +0000 Subject: [PATCH 456/683] New upstream development version 1.29.14 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e149dda..ac638ee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,8 +51,8 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.13 -Release: 2%{?dist} +Version: 1.29.14 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1192,6 +1192,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.14-1 +- New upstream development version 1.29.14 + * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.29.13-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 4cf5423..11d4f1f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.13.tar.gz) = 8598437195a150aed5cfaf0e85d47aefa6a85019d0eadd619306acb6e1bc6bd7739306dfb4756108528ee270c0de0d9cba2226cc39be067d6ff41b66d184cfe5 -SHA512 (nbdkit-1.29.13.tar.gz.sig) = 8b88f1bfb3f5af563317b871f14eac6882557f0af33434164c8a412b34a0f4bec5982b5e1b29c40b39aa3faa6ada32a885fd318eaee2f7c8734d10ed64926e1b +SHA512 (nbdkit-1.29.14.tar.gz) = 563f7b10235acfc46002e893fadf5725e4517079538a55687e17e52d4d8782b7fe297f2d49ac70fdce8c1bd5dcbeb9817bf6b7e011861a6ceb3cb9c46ea928e7 +SHA512 (nbdkit-1.29.14.tar.gz.sig) = c1ec9e96fbc169b65ba20d8987f3c6983068de8a1d3bf922402cd683261ca3bfc17837a598483f6493b5f9204e9938b5176d2a29d98a77370444266ad4db401e From 40c86254ab1a7eeb46b63bbf31058706ef387b9e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Jan 2022 15:36:35 +0000 Subject: [PATCH 457/683] Skip test-memory-allocator-malloc-mlock.sh on ppc64le --- nbdkit.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ac638ee..fc5422d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -782,11 +782,12 @@ skip_test tests/test-cache-max-size.sh # https://www.redhat.com/archives/libguestfs/2020-March/msg00191.html skip_test tests/test-nbd-tls.sh tests/test-nbd-tls-psk.sh -# This test fails on RHEL 9 & aarch64 with the error: +# This test fails on RHEL 9 aarch64 & ppc64le with the error: # nbdkit: error: allocator=malloc: mlock: Cannot allocate memory # It could be the mlock limit on the builder is too low. +# https://bugzilla.redhat.com/show_bug.cgi?id=2044432 %if 0%{?rhel} -%ifarch aarch64 +%ifarch aarch64 %{power64} skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif From 6ace817dd9ae72ef018bbcbb476558ebed237f2b Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Thu, 27 Jan 2022 19:46:15 +0900 Subject: [PATCH 458/683] F-36: rebuild against ruby31 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index fc5422d..8c4c927 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.29.14 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1193,6 +1193,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 27 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.29.14-2 +- F-36: rebuild against ruby31 + * Thu Jan 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.14-1 - New upstream development version 1.29.14 From 3611f1241a83a2a2faf68978045dae0eb53e41d5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 4 Feb 2022 17:02:22 +0000 Subject: [PATCH 459/683] Disable package notes misfeature until it is fixed in Fedora --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 8c4c927..2907015 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,3 +1,4 @@ +%undefine _package_note_flags %global _hardened_build 1 %ifarch %{kernel_arches} From 3692699848116df5f6579dde1c8ff90e01d47060 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 15 Feb 2022 19:33:28 +0000 Subject: [PATCH 460/683] New upstream development version 1.29.15 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2907015..3fe6eaa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.14 -Release: 2%{?dist} +Version: 1.29.15 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1194,6 +1194,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Feb 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.15-1 +- New upstream development version 1.29.15 + * Thu Jan 27 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.29.14-2 - F-36: rebuild against ruby31 diff --git a/sources b/sources index 11d4f1f..c4d2058 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.14.tar.gz) = 563f7b10235acfc46002e893fadf5725e4517079538a55687e17e52d4d8782b7fe297f2d49ac70fdce8c1bd5dcbeb9817bf6b7e011861a6ceb3cb9c46ea928e7 -SHA512 (nbdkit-1.29.14.tar.gz.sig) = c1ec9e96fbc169b65ba20d8987f3c6983068de8a1d3bf922402cd683261ca3bfc17837a598483f6493b5f9204e9938b5176d2a29d98a77370444266ad4db401e +SHA512 (nbdkit-1.29.15.tar.gz) = 71fed30dece2c59f0c79b0a2d2ef79d8bf25ab993c16b16601989dfa9f18f15f3ffd87205ac7adfd3349e97915a513ca68e5edb606849b9c3a142dd4d4cdf2ba +SHA512 (nbdkit-1.29.15.tar.gz.sig) = fc99f784afa380eaf4ca4649838ff387783ebfa8138fa55359b4dfa25f74d1055b12466def43dc0da980952c7e3e0e906ccd0bad08b0a7aa08111f08c7da0ba1 From 21c500ae3f9217009c4b8ef737020811469aa469 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Feb 2022 10:46:58 +0000 Subject: [PATCH 461/683] New upstream development version 1.29.16 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3fe6eaa..4e12d2d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.29-development Name: nbdkit -Version: 1.29.15 +Version: 1.29.16 Release: 1%{?dist} Summary: NBD server @@ -1194,6 +1194,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Feb 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.16-1 +- New upstream development version 1.29.16 + * Tue Feb 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.15-1 - New upstream development version 1.29.15 diff --git a/sources b/sources index c4d2058..a57a1e5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.15.tar.gz) = 71fed30dece2c59f0c79b0a2d2ef79d8bf25ab993c16b16601989dfa9f18f15f3ffd87205ac7adfd3349e97915a513ca68e5edb606849b9c3a142dd4d4cdf2ba -SHA512 (nbdkit-1.29.15.tar.gz.sig) = fc99f784afa380eaf4ca4649838ff387783ebfa8138fa55359b4dfa25f74d1055b12466def43dc0da980952c7e3e0e906ccd0bad08b0a7aa08111f08c7da0ba1 +SHA512 (nbdkit-1.29.16.tar.gz) = 6b59a64a6aee0da208e4784078b4849e04530dbb6d04b3e8494669b77c04c7bc2fc2c46d4aaa8244c002523d5d576d289e9a9fc9dddb4c3ece42a154944f6278 +SHA512 (nbdkit-1.29.16.tar.gz.sig) = a0ced25213af058c39b9ff9ef7cbbc079b66191ea44bbf4f81e8c1927467a00bdc7b9849e5960da7079b2ac43ee55c5f024c08d97bb07d9dec4c4b41b2569f7d From ad997526078959ced38c77b74dbc97b3c7a6a8b0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 19 Feb 2022 10:57:05 +0000 Subject: [PATCH 462/683] - New nbdkit-blocksize-policy-filter. --- nbdkit.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 4e12d2d..882f8de 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -509,6 +509,7 @@ Summary: Basic filters for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Provides: %{name}-blocksize-filter = %{version}-%{release} +Provides: %{name}-blocksize-policy-filter = %{version}-%{release} Provides: %{name}-cache-filter = %{version}-%{release} Provides: %{name}-cacheextents-filter = %{version}-%{release} Provides: %{name}-checkwrite-filter = %{version}-%{release} @@ -550,6 +551,8 @@ complex dependencies are packaged separately. nbdkit-blocksize-filter Adjust block size of requests sent to plugins. +nbdkit-blocksize-policy-filter Set block size constraints and policy. + nbdkit-cache-filter Server-side cache. nbdkit-cacheextents-filter Cache extents. @@ -1054,6 +1057,7 @@ export LIBGUESTFS_TRACE=1 %doc README %license LICENSE %{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so +%{_libdir}/%{name}/filters/nbdkit-blocksize-policy-filter.so %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so %{_libdir}/%{name}/filters/nbdkit-checkwrite-filter.so @@ -1088,6 +1092,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* +%{_mandir}/man1/nbdkit-blocksize-policy-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cacheextents-filter.1* %{_mandir}/man1/nbdkit-checkwrite-filter.1* @@ -1196,6 +1201,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Sat Feb 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.16-1 - New upstream development version 1.29.16 +- New nbdkit-blocksize-policy-filter. * Tue Feb 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.15-1 - New upstream development version 1.29.15 From 9f65d71f464880640be945da261cd6be6526fa50 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 24 Feb 2022 19:13:13 +0000 Subject: [PATCH 463/683] New stable version 1.30.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 882f8de..6b1f947 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.29-development +%global source_directory 1.30-stable Name: nbdkit -Version: 1.29.16 +Version: 1.30.0 Release: 1%{?dist} Summary: NBD server @@ -1199,6 +1199,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Feb 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-1 +- New stable version 1.30.0 + * Sat Feb 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.29.16-1 - New upstream development version 1.29.16 - New nbdkit-blocksize-policy-filter. diff --git a/sources b/sources index a57a1e5..61f30e8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.29.16.tar.gz) = 6b59a64a6aee0da208e4784078b4849e04530dbb6d04b3e8494669b77c04c7bc2fc2c46d4aaa8244c002523d5d576d289e9a9fc9dddb4c3ece42a154944f6278 -SHA512 (nbdkit-1.29.16.tar.gz.sig) = a0ced25213af058c39b9ff9ef7cbbc079b66191ea44bbf4f81e8c1927467a00bdc7b9849e5960da7079b2ac43ee55c5f024c08d97bb07d9dec4c4b41b2569f7d +SHA512 (nbdkit-1.30.0.tar.gz) = bdd9065c4faca312e103946a84901316443d8186e5b23658b721cd58e8d5e284ab6ef74996165edbf22c19bc1561068ac8c2eb368e21eaa227c43950d692e423 +SHA512 (nbdkit-1.30.0.tar.gz.sig) = bf4caf8eca8997f5033665f208454383967bc3f4f1c51925574698f3828efdf0b9004ac243bccd74a751b4edf48a53e956b1befe4e8bf29aa5a78647d5874e52 From 90d0f9b2f0de0f94fdaba9015370476c27c24a2e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 28 Feb 2022 13:27:35 +0000 Subject: [PATCH 464/683] Add nbdkit-srpm-macros --- nbdkit-find-provides | 23 ++++++++++++ nbdkit.attr | 3 ++ nbdkit.spec | 88 ++++++++++++++++++-------------------------- 3 files changed, 62 insertions(+), 52 deletions(-) create mode 100755 nbdkit-find-provides create mode 100644 nbdkit.attr diff --git a/nbdkit-find-provides b/nbdkit-find-provides new file mode 100755 index 0000000..7013ccd --- /dev/null +++ b/nbdkit-find-provides @@ -0,0 +1,23 @@ +#!/bin/bash - + +# Generate RPM provides automatically for nbdkit packages and filters. +# Copyright (C) 2009-2022 Red Hat Inc. + +# To test: +# find /usr/lib64/nbdkit/plugins | ./nbdkit-find-provides VER REL +# find /usr/lib64/nbdkit/filters | ./nbdkit-find-provides VER REL + +ver="$1" +rel="$2" + +function process_file +{ + if [[ $1 =~ /plugins/nbdkit-.*-plugin ]] || + [[ $1 =~ /filters/nbdkit-.*-filter ]]; then + echo "Provides:" "$(basename $1 .so)" "=" "$ver-$rel" + fi +} + +while read line; do + process_file "$line" +done diff --git a/nbdkit.attr b/nbdkit.attr new file mode 100644 index 0000000..2757679 --- /dev/null +++ b/nbdkit.attr @@ -0,0 +1,3 @@ +%__nbdkit_provides %{_rpmconfigdir}/nbdkit-find-provides %{version} %{release} +%__nbdkit_path %{_libdir}/nbdkit/(plugins|filters)/nbdkit-.*-(plugin|filter)(\.so)?$ +%__nbdkit_flags exeonly diff --git a/nbdkit.spec b/nbdkit.spec index 6b1f947..fabfef6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.30.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -74,6 +74,11 @@ Source2: libguestfs.keyring # Maintainer script which helps with handling patches. Source3: copy-patches.sh +# For automatic RPM Provides generation. +# See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html +Source4: nbdkit.attr +Source5: nbdkit-find-provides + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -144,6 +149,11 @@ BuildRequires: %{_sbindir}/ss BuildRequires: %{_bindir}/stat BuildRequires: %{_bindir}/ssh-keygen +# This package has RPM rules that create the automatic Provides: for +# nbdkit plugins and filters. This means nbdkit build depends on +# itself, but it's a simple noarch package so easy to install. +## XXX TEMP DISABLE XXX BuildRequires: nbdkit-srpm-macros >= 1.30.0 + # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. Requires: nbdkit-server%{?_isa} = %{version}-%{release} @@ -185,7 +195,6 @@ reading the nbdkit(1) and nbdkit-plugin(3) manual pages. %package server Summary: The %{name} server License: BSD -Provides: %{name}-null-plugin = %{version}-%{release} %description server This package contains the %{name} server with only the null plugin @@ -198,21 +207,6 @@ the metapackage "nbdkit". Summary: Basic plugins for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -Provides: %{name}-data-plugin = %{version}-%{release} -Provides: %{name}-eval-plugin = %{version}-%{release} -Provides: %{name}-file-plugin = %{version}-%{release} -Provides: %{name}-floppy-plugin = %{version}-%{release} -Provides: %{name}-full-plugin = %{version}-%{release} -Provides: %{name}-info-plugin = %{version}-%{release} -Provides: %{name}-memory-plugin = %{version}-%{release} -Provides: %{name}-ondemand-plugin = %{version}-%{release} -Provides: %{name}-pattern-plugin = %{version}-%{release} -Provides: %{name}-partitioning-plugin = %{version}-%{release} -Provides: %{name}-random-plugin = %{version}-%{release} -Provides: %{name}-sh-plugin = %{version}-%{release} -Provides: %{name}-sparse-random-plugin = %{version}-%{release} -Provides: %{name}-split-plugin = %{version}-%{release} -Provides: %{name}-zero-plugin = %{version}-%{release} %description basic-plugins @@ -508,41 +502,6 @@ VMware VDDK for accessing VMware disks and servers. Summary: Basic filters for %{name} License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} -Provides: %{name}-blocksize-filter = %{version}-%{release} -Provides: %{name}-blocksize-policy-filter = %{version}-%{release} -Provides: %{name}-cache-filter = %{version}-%{release} -Provides: %{name}-cacheextents-filter = %{version}-%{release} -Provides: %{name}-checkwrite-filter = %{version}-%{release} -Provides: %{name}-cow-filter = %{version}-%{release} -Provides: %{name}-ddrescue-filter = %{version}-%{release} -Provides: %{name}-delay-filter = %{version}-%{release} -Provides: %{name}-error-filter = %{version}-%{release} -Provides: %{name}-exitlast-filter = %{version}-%{release} -Provides: %{name}-exitwhen-filter = %{version}-%{release} -Provides: %{name}-exportname-filter = %{version}-%{release} -Provides: %{name}-extentlist-filter = %{version}-%{release} -Provides: %{name}-fua-filter = %{version}-%{release} -Provides: %{name}-ip-filter = %{version}-%{release} -Provides: %{name}-limit-filter = %{version}-%{release} -Provides: %{name}-log-filter = %{version}-%{release} -Provides: %{name}-multi-conn-filter = %{version}-%{release} -Provides: %{name}-nocache-filter = %{version}-%{release} -Provides: %{name}-noextents-filter = %{version}-%{release} -Provides: %{name}-nofilter-filter = %{version}-%{release} -Provides: %{name}-noparallel-filter = %{version}-%{release} -Provides: %{name}-nozero-filter = %{version}-%{release} -Provides: %{name}-offset-filter = %{version}-%{release} -Provides: %{name}-partition-filter = %{version}-%{release} -Provides: %{name}-pause-filter = %{version}-%{release} -Provides: %{name}-protect-filter = %{version}-%{release} -Provides: %{name}-rate-filter = %{version}-%{release} -Provides: %{name}-readahead-filter = %{version}-%{release} -Provides: %{name}-retry-filter = %{version}-%{release} -Provides: %{name}-retry-request-filter = %{version}-%{release} -Provides: %{name}-stats-filter = %{version}-%{release} -Provides: %{name}-swab-filter = %{version}-%{release} -Provides: %{name}-tls-fallback-filter = %{version}-%{release} -Provides: %{name}-truncate-filter = %{version}-%{release} %description basic-filters This package contains filters for %{name} which only depend on simple @@ -673,8 +632,19 @@ for %{name}. Install this package if you want to develop plugins for %{name}. +%package srpm-macros +Summary: RPM Provides rules for %{name} plugins and filters +License: BSD +BuildArch: noarch + +%description srpm-macros +This package contains RPM rules that create the automatic Provides: +for %{name} plugins and filters found in the plugins directory. + + %package bash-completion Summary: Bash tab-completion for %{name} +License: BSD BuildArch: noarch Requires: bash-completion >= 2.0 Requires: %{name}-server = %{version}-%{release} @@ -757,6 +727,11 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* %endif +# Install RPM dependency generator. +mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/ +install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/ +install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/ + %check %ifnarch %{broken_test_arches} @@ -1192,6 +1167,12 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/pkgconfig/nbdkit.pc +%files srpm-macros +%license LICENSE +%{_rpmconfigdir}/fileattrs/nbdkit.attr +%{_rpmconfigdir}/nbdkit-find-provides + + %files bash-completion %license LICENSE %dir %{_datadir}/bash-completion/completions @@ -1199,6 +1180,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Feb 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-2 +- Add nbdkit-srpm-macros + * Thu Feb 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-1 - New stable version 1.30.0 From 14ef88f762551cb79c398d3d0e31e156735ffc0b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 28 Feb 2022 15:08:04 +0000 Subject: [PATCH 465/683] Complete bootstrap of nbdkit-srpm-macros --- nbdkit.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fabfef6..b8c98ee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.30.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -152,7 +152,7 @@ BuildRequires: %{_bindir}/ssh-keygen # This package has RPM rules that create the automatic Provides: for # nbdkit plugins and filters. This means nbdkit build depends on # itself, but it's a simple noarch package so easy to install. -## XXX TEMP DISABLE XXX BuildRequires: nbdkit-srpm-macros >= 1.30.0 +BuildRequires: nbdkit-srpm-macros >= 1.30.0 # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. @@ -1180,7 +1180,7 @@ export LIBGUESTFS_TRACE=1 %changelog -* Mon Feb 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-2 +* Mon Feb 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-3 - Add nbdkit-srpm-macros * Thu Feb 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-1 From d0df9f08fcd3dfc9a823e38094cec3d484ef323c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 4 Mar 2022 14:44:44 +0000 Subject: [PATCH 466/683] Fix typo in nbdkit-basic-filters description Remove armv7 references --- nbdkit.spec | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b8c98ee..ff4e210 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -568,7 +568,7 @@ nbdkit-readahead-filter Prefetch data when reading sequentially. nbdkit-retry-filter Reopen connection on error. -nbdkit-retry--request-filter Retry single requests on error. +nbdkit-retry-request-filter Retry single requests on error. nbdkit-stats-filter Display statistics about operations. @@ -771,14 +771,6 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif -# armv7 is very slow and some tests take an especially long time to -# run. This skips some of the slowest tests. Note that -# test-data-format.sh is a slow test, but in the past we have found -# bugs by running it on armv7. -%ifarch %{arm} -skip_test tests/test-partition1.sh tests/test-cow.sh tests/test-cow-block-size.sh tests/test-cow-extents2.sh -%endif - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From 749ee3a67e719fb404aca0de1da805f554c46006 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 15 Mar 2022 17:02:48 +0000 Subject: [PATCH 467/683] New stable version 1.30.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ff4e210..8d9dbdc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.30-stable Name: nbdkit -Version: 1.30.0 -Release: 3%{?dist} +Version: 1.30.1 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1172,6 +1172,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Mar 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.1-1 +- New stable version 1.30.1 + * Mon Feb 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.0-3 - Add nbdkit-srpm-macros diff --git a/sources b/sources index 61f30e8..9fccb5b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.30.0.tar.gz) = bdd9065c4faca312e103946a84901316443d8186e5b23658b721cd58e8d5e284ab6ef74996165edbf22c19bc1561068ac8c2eb368e21eaa227c43950d692e423 -SHA512 (nbdkit-1.30.0.tar.gz.sig) = bf4caf8eca8997f5033665f208454383967bc3f4f1c51925574698f3828efdf0b9004ac243bccd74a751b4edf48a53e956b1befe4e8bf29aa5a78647d5874e52 +SHA512 (nbdkit-1.30.1.tar.gz) = 433016b43e192fb07697af0b357aa817b46af811494762a8d38a5d7d8edfeb155451b7e1a35062dda10cc2bf9b19865a3faa5b781bd8cf1a121e7088582b586d +SHA512 (nbdkit-1.30.1.tar.gz.sig) = 7148c52779f345bfa515f1dfb38ed8e6efdc8b89e8d7a51b966c3b6fb5ffe48f74d114038ef3215d5ca7c3a206c11cc3946ebc90971647a52e71fdfaed902ee8 From 29300b870b25d0876fb4932ec4fd692451c11b6b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 2 Apr 2022 16:16:34 +0100 Subject: [PATCH 468/683] New stable version 1.30.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8d9dbdc..35f169a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.30-stable Name: nbdkit -Version: 1.30.1 +Version: 1.30.2 Release: 1%{?dist} Summary: NBD server @@ -1172,6 +1172,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Apr 02 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.2-1 +- New stable version 1.30.2 + * Tue Mar 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.1-1 - New stable version 1.30.1 diff --git a/sources b/sources index 9fccb5b..4009f4c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.30.1.tar.gz) = 433016b43e192fb07697af0b357aa817b46af811494762a8d38a5d7d8edfeb155451b7e1a35062dda10cc2bf9b19865a3faa5b781bd8cf1a121e7088582b586d -SHA512 (nbdkit-1.30.1.tar.gz.sig) = 7148c52779f345bfa515f1dfb38ed8e6efdc8b89e8d7a51b966c3b6fb5ffe48f74d114038ef3215d5ca7c3a206c11cc3946ebc90971647a52e71fdfaed902ee8 +SHA512 (nbdkit-1.30.2.tar.gz) = 84da92005bbb59a860c9ba5a88082d859c9dd4f9db5c81d8760e9d6925e10d80d27de78be9391113bf715d16de7726594b5b803512cd8b59ce14ec135fc4b09d +SHA512 (nbdkit-1.30.2.tar.gz.sig) = c64ccdbc25f56626360aa812af330e33f26e6954415b93976f5a3d58808affdc94efa6e309066b23dbfd354192c4693a408b79aa583a6f5e84ab1c2ef406179e From 55a4710f4f68f7c767f70313ca475f014cf7fa10 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 16 Apr 2022 13:05:44 +0100 Subject: [PATCH 469/683] New stable version 1.30.3 - Remove dependency on ssh-keygen which was never really used. --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 35f169a..f6c3cb9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.30-stable Name: nbdkit -Version: 1.30.2 +Version: 1.30.3 Release: 1%{?dist} Summary: NBD server @@ -147,7 +147,6 @@ BuildRequires: %{_bindir}/socat %endif BuildRequires: %{_sbindir}/ss BuildRequires: %{_bindir}/stat -BuildRequires: %{_bindir}/ssh-keygen # This package has RPM rules that create the automatic Provides: for # nbdkit plugins and filters. This means nbdkit build depends on @@ -1172,6 +1171,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Apr 16 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.3-1 +- New stable version 1.30.3 +- Remove dependency on ssh-keygen which was never really used. + * Sat Apr 02 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.2-1 - New stable version 1.30.2 diff --git a/sources b/sources index 4009f4c..8fb7c98 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.30.2.tar.gz) = 84da92005bbb59a860c9ba5a88082d859c9dd4f9db5c81d8760e9d6925e10d80d27de78be9391113bf715d16de7726594b5b803512cd8b59ce14ec135fc4b09d -SHA512 (nbdkit-1.30.2.tar.gz.sig) = c64ccdbc25f56626360aa812af330e33f26e6954415b93976f5a3d58808affdc94efa6e309066b23dbfd354192c4693a408b79aa583a6f5e84ab1c2ef406179e +SHA512 (nbdkit-1.30.3.tar.gz) = 536dcae12370896c90ba662ef00296c30e749bbc20470b75c9632274b2d338637f2be175075040e0250bb755e09dfcc4d30cbc03b154e7f625bb8f1d566858ef +SHA512 (nbdkit-1.30.3.tar.gz.sig) = 42472296cd5ddabaa0a6ba963e591160ee91c7988e060a0136f25b5230c16e1f205220fc5128a8ed77bc883a48250905886c2bb13b485ed2791eb3d91252b46e From 006954f935f06ba3de3535d3d28154bfc163662c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 20 Apr 2022 13:47:25 +0100 Subject: [PATCH 470/683] New upstream development version 1.31.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f6c3cb9..2b93050 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.30-stable +%global source_directory 1.31-development Name: nbdkit -Version: 1.30.3 +Version: 1.31.1 Release: 1%{?dist} Summary: NBD server @@ -1171,6 +1171,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Apr 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.1-1 +- New upstream development version 1.31.1 + * Sat Apr 16 2022 Richard W.M. Jones <rjones@redhat.com> - 1.30.3-1 - New stable version 1.30.3 - Remove dependency on ssh-keygen which was never really used. diff --git a/sources b/sources index 8fb7c98..a19abc1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.30.3.tar.gz) = 536dcae12370896c90ba662ef00296c30e749bbc20470b75c9632274b2d338637f2be175075040e0250bb755e09dfcc4d30cbc03b154e7f625bb8f1d566858ef -SHA512 (nbdkit-1.30.3.tar.gz.sig) = 42472296cd5ddabaa0a6ba963e591160ee91c7988e060a0136f25b5230c16e1f205220fc5128a8ed77bc883a48250905886c2bb13b485ed2791eb3d91252b46e +SHA512 (nbdkit-1.31.1.tar.gz) = 3ff696d99cd64a7fa5416408d02a609c6e16fa8d1529a39089ef6d2fd84cfcf8d91bf38b7ff52e1da01d654df603065153ba0e7716abd1573ecab3d26f878501 +SHA512 (nbdkit-1.31.1.tar.gz.sig) = 474b3c6460b3fe6d3959f0a9c9d41c50b0dbd715c2453ae5ddaaa2dfd4d9823c39a50931f2dbf29d4925496eb38e30c218870e014fded39ede647a61540f2458 From 40fa0c71e274a02d09ee833c6347c5b65f594550 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 26 Apr 2022 09:10:55 +0100 Subject: [PATCH 471/683] New upstream development version 1.31.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2b93050..1e45a6b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.1 +Version: 1.31.2 Release: 1%{?dist} Summary: NBD server @@ -1171,6 +1171,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Apr 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.2-1 +- New upstream development version 1.31.2 + * Wed Apr 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.1-1 - New upstream development version 1.31.1 diff --git a/sources b/sources index a19abc1..7647015 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.1.tar.gz) = 3ff696d99cd64a7fa5416408d02a609c6e16fa8d1529a39089ef6d2fd84cfcf8d91bf38b7ff52e1da01d654df603065153ba0e7716abd1573ecab3d26f878501 -SHA512 (nbdkit-1.31.1.tar.gz.sig) = 474b3c6460b3fe6d3959f0a9c9d41c50b0dbd715c2453ae5ddaaa2dfd4d9823c39a50931f2dbf29d4925496eb38e30c218870e014fded39ede647a61540f2458 +SHA512 (nbdkit-1.31.2.tar.gz) = 5a413afd72e4287d296214ceca2bb9001398230074b7a6630b68d867b2e374a309555e9062ee25bad91a443c31c12ad31e17f9a0a2d121566eb2e89b19de10ed +SHA512 (nbdkit-1.31.2.tar.gz.sig) = 07f728714258ae6a595a4269be4837778389f81ed81946f0104f51fb4ca682dff8df0f4b5379c49c2cb246a8c06645fba1854f1e3b41195d697315b76401b5d1 From bbbf0b64da1d12895d11b5de002cbdcc4cdc7916 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 7 May 2022 13:17:12 +0100 Subject: [PATCH 472/683] New upstream development version 1.31.3 Stats filter is now written in C++, move to a new subpackage. --- nbdkit.spec | 26 +++++++++++++++++++++----- sources | 4 ++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1e45a6b..b4c301a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.2 +Version: 1.31.3 Release: 1%{?dist} Summary: NBD server @@ -569,8 +569,6 @@ nbdkit-retry-filter Reopen connection on error. nbdkit-retry-request-filter Retry single requests on error. -nbdkit-stats-filter Display statistics about operations. - nbdkit-swab-filter Filter for swapping byte order. nbdkit-tls-fallback-filter TLS protection filter. @@ -599,6 +597,15 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package is a gzip filter for %{name}. +%package stats-filter +Summary: Statistics filter for %{name} +License: BSD +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description stats-filter +Display statistics about operations. + + %package tar-filter Summary: Tar archive filter for %{name} License: BSD @@ -1053,7 +1060,6 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-request-filter.so -%{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so @@ -1088,7 +1094,6 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-retry-request-filter.1* -%{_mandir}/man1/nbdkit-stats-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* %{_mandir}/man1/nbdkit-tls-fallback-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1110,6 +1115,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-gzip-filter.1* +%files stats-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-stats-filter.so +%{_mandir}/man1/nbdkit-stats-filter.1* + + %files tar-filter %doc README %license LICENSE @@ -1171,6 +1183,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat May 07 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.3-1 +- New upstream development version 1.31.3 +- Stats filter is now written in C++, move to a new subpackage. + * Tue Apr 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.2-1 - New upstream development version 1.31.2 diff --git a/sources b/sources index 7647015..cadef7b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.2.tar.gz) = 5a413afd72e4287d296214ceca2bb9001398230074b7a6630b68d867b2e374a309555e9062ee25bad91a443c31c12ad31e17f9a0a2d121566eb2e89b19de10ed -SHA512 (nbdkit-1.31.2.tar.gz.sig) = 07f728714258ae6a595a4269be4837778389f81ed81946f0104f51fb4ca682dff8df0f4b5379c49c2cb246a8c06645fba1854f1e3b41195d697315b76401b5d1 +SHA512 (nbdkit-1.31.3.tar.gz) = b657c596dca90a4a55d36debe8dfc1d694043d85baf9af83e88732badd46d62f9c3679f966b8ff21f648522bdc7164608f1c90b03ce009318bcd6f259a5f5b7e +SHA512 (nbdkit-1.31.3.tar.gz.sig) = 7169fd0c632678587eeb5c6c26e7c690c74692b16694c08e489418c1afabc79d87c9b504c816733e42ce19f5082b4818298f75927efca79e20ddeb4f352d4a22 From 9588e5cbc7997eed12d57c8282bd2e463ee38820 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 9 May 2022 15:36:00 +0100 Subject: [PATCH 473/683] New upstream development version 1.31.4 Add new luks filter. --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b4c301a..a0133c5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.3 +Version: 1.31.4 Release: 1%{?dist} Summary: NBD server @@ -541,6 +541,8 @@ nbdkit-limit-filter Limit nr clients that can connect concurrently. nbdkit-log-filter Log all transactions to a file. +nbdkit-luks-filter Read and write LUKS-encrypted disks. + nbdkit-multi-conn-filter Enable, emulate or disable multi-conn. nbdkit-nocache-filter Disable cache requests in the underlying plugin. @@ -1046,6 +1048,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so +%{_libdir}/%{name}/filters/nbdkit-luks-filter.so %{_libdir}/%{name}/filters/nbdkit-multi-conn-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so @@ -1080,6 +1083,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* +%{_mandir}/man1/nbdkit-luks-filter.1* %{_mandir}/man1/nbdkit-multi-conn-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* @@ -1183,6 +1187,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon May 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.4-1 +- New upstream development version 1.31.4 +- Add new luks filter. + * Sat May 07 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.3-1 - New upstream development version 1.31.3 - Stats filter is now written in C++, move to a new subpackage. diff --git a/sources b/sources index cadef7b..0a7e46a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.3.tar.gz) = b657c596dca90a4a55d36debe8dfc1d694043d85baf9af83e88732badd46d62f9c3679f966b8ff21f648522bdc7164608f1c90b03ce009318bcd6f259a5f5b7e -SHA512 (nbdkit-1.31.3.tar.gz.sig) = 7169fd0c632678587eeb5c6c26e7c690c74692b16694c08e489418c1afabc79d87c9b504c816733e42ce19f5082b4818298f75927efca79e20ddeb4f352d4a22 +SHA512 (nbdkit-1.31.4.tar.gz) = 64ccc1e2aa72474f4c60c071aac14586a46b4077dda1f504da0ab10187c41b228fcb02124d1c35d7eb8d87cef882542e779a9efd43e4826d18f9addb0ce71642 +SHA512 (nbdkit-1.31.4.tar.gz.sig) = 68948dcd1cdb623098401d9a00eaf1f6434b2d474880717fa33306adb18bce76698bb21846d7f058def163832527aaf76ad9af6bdb76926e9b8ea1706a0a2e6c From a05d25e870312f232cb98aaa38eba80fedb52053 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 12 May 2022 15:37:37 +0100 Subject: [PATCH 474/683] New upstream development version 1.31.5 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a0133c5..c4911bd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.4 +Version: 1.31.5 Release: 1%{?dist} Summary: NBD server @@ -1187,6 +1187,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon May 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.5-1 +- New upstream development version 1.31.5 + * Mon May 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.4-1 - New upstream development version 1.31.4 - Add new luks filter. diff --git a/sources b/sources index 0a7e46a..09d14d0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.4.tar.gz) = 64ccc1e2aa72474f4c60c071aac14586a46b4077dda1f504da0ab10187c41b228fcb02124d1c35d7eb8d87cef882542e779a9efd43e4826d18f9addb0ce71642 -SHA512 (nbdkit-1.31.4.tar.gz.sig) = 68948dcd1cdb623098401d9a00eaf1f6434b2d474880717fa33306adb18bce76698bb21846d7f058def163832527aaf76ad9af6bdb76926e9b8ea1706a0a2e6c +SHA512 (nbdkit-1.31.5.tar.gz) = 61a10ea2db4e1236b6fddb88bace5ea27cb43e61dd8c61bf1b7bdc1d4870273839f916364291beef6cfcd9b8e6f1420c576ec88eda8fc86ccab9e46cba9e5082 +SHA512 (nbdkit-1.31.5.tar.gz.sig) = d157c19e7bd70eeb94bad97031c9c0c408e69d7042cd4dde88bbffca7243c3bdf82c910aaec93c3d46db733c931d5a198aa387f7e4e80596c8a79d33690eeede From dce8a53a1e149a6b5be6d15a487a936d68315c29 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 May 2022 19:15:08 +0100 Subject: [PATCH 475/683] New upstream development version 1.31.6 New filter: scan --- nbdkit.spec | 8 ++++++++ sources | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c4911bd..697fa33 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -571,6 +571,8 @@ nbdkit-retry-filter Reopen connection on error. nbdkit-retry-request-filter Retry single requests on error. +nbdkit-scan-filter Prefetch data ahead of sequential reads. + nbdkit-swab-filter Filter for swapping byte order. nbdkit-tls-fallback-filter TLS protection filter. @@ -1063,6 +1065,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-request-filter.so +%{_libdir}/%{name}/filters/nbdkit-scan-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so @@ -1098,6 +1101,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-retry-request-filter.1* +%{_mandir}/man1/nbdkit-scan-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* %{_mandir}/man1/nbdkit-tls-fallback-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1187,6 +1191,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat May 14 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.6-1 +- New upstream development version 1.31.6 +- New filter: scan + * Mon May 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.5-1 - New upstream development version 1.31.5 diff --git a/sources b/sources index 09d14d0..958c820 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.5.tar.gz) = 61a10ea2db4e1236b6fddb88bace5ea27cb43e61dd8c61bf1b7bdc1d4870273839f916364291beef6cfcd9b8e6f1420c576ec88eda8fc86ccab9e46cba9e5082 -SHA512 (nbdkit-1.31.5.tar.gz.sig) = d157c19e7bd70eeb94bad97031c9c0c408e69d7042cd4dde88bbffca7243c3bdf82c910aaec93c3d46db733c931d5a198aa387f7e4e80596c8a79d33690eeede +SHA512 (nbdkit-1.31.6.tar.gz) = 77967ca9a72655c0b0d31095becd48a0840e1e32cc19a62fb86cb6525e9f4a4c0f4b56021b2a278a235501d463b1f0f49d1be2a9bb5668ad942732b687d7d328 +SHA512 (nbdkit-1.31.6.tar.gz.sig) = 38598e17316b153f9317293b2475c4295142f3b765149f3f5918a7b23519c913d80aec7158c631a2c98a8e660318e2a9ea79be41bcb32ea9fbaf229f5ae67407 From 3b857593d6c2f0a21ab47570ee15f686813cf8e2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 May 2022 19:17:16 +0100 Subject: [PATCH 476/683] Forgot to update Version in previous commit --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 697fa33..c49d7d4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.5 +Version: 1.31.6 Release: 1%{?dist} Summary: NBD server From 0eb9381a2ad92daffc76ed1654172da4d5d176dd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 19 May 2022 15:56:33 +0100 Subject: [PATCH 477/683] New upstream development version 1.31.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c49d7d4..1236a49 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.6 +Version: 1.31.7 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu May 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.7-1 +- New upstream development version 1.31.7 + * Sat May 14 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.6-1 - New upstream development version 1.31.6 - New filter: scan diff --git a/sources b/sources index 958c820..69e6498 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.6.tar.gz) = 77967ca9a72655c0b0d31095becd48a0840e1e32cc19a62fb86cb6525e9f4a4c0f4b56021b2a278a235501d463b1f0f49d1be2a9bb5668ad942732b687d7d328 -SHA512 (nbdkit-1.31.6.tar.gz.sig) = 38598e17316b153f9317293b2475c4295142f3b765149f3f5918a7b23519c913d80aec7158c631a2c98a8e660318e2a9ea79be41bcb32ea9fbaf229f5ae67407 +SHA512 (nbdkit-1.31.7.tar.gz) = 53337b2ca393819e3ff1c7b63b2cc2dac75e5ba7678a08ff9c73c0060c60a967984f6f9e80c14ea16a3ae4f3815c12dd9f0b81ea0ef57c196a72642b3d13cb16 +SHA512 (nbdkit-1.31.7.tar.gz.sig) = 4c3ee476126e80dfec9583bb22d82fc8121111600d97699b7071d6d5b349d69b087a8c1d0125381648f49e4ba35d7f1a92af17063ef0fb4160f698e10e036bd0 From 12883bf410c457ec79f79818bdd6434ac7bfbfa8 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Wed, 1 Jun 2022 11:55:30 +0200 Subject: [PATCH 478/683] Perl 5.36 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1236a49..da0fa4c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.31.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Jun 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.31.7-2 +- Perl 5.36 rebuild + * Thu May 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.7-1 - New upstream development version 1.31.7 From eccd2d265267be22de10d93597ecf61b43a0d7ff Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 9 Jun 2022 21:14:39 +0100 Subject: [PATCH 479/683] New upstream development version 1.31.8 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index da0fa4c..7a99fee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.7 -Release: 2%{?dist} +Version: 1.31.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jun 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.8-1 +- New upstream development version 1.31.8 + * Wed Jun 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.31.7-2 - Perl 5.36 rebuild diff --git a/sources b/sources index 69e6498..791f41b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.7.tar.gz) = 53337b2ca393819e3ff1c7b63b2cc2dac75e5ba7678a08ff9c73c0060c60a967984f6f9e80c14ea16a3ae4f3815c12dd9f0b81ea0ef57c196a72642b3d13cb16 -SHA512 (nbdkit-1.31.7.tar.gz.sig) = 4c3ee476126e80dfec9583bb22d82fc8121111600d97699b7071d6d5b349d69b087a8c1d0125381648f49e4ba35d7f1a92af17063ef0fb4160f698e10e036bd0 +SHA512 (nbdkit-1.31.8.tar.gz) = 346bd534bf7482440755be191480d4eef8b6ebf05c09236b5bebbf147a9f1e6efd1e4d5306c26a8f2a41857608016346fc4df8eb71fe13ed70c104fd06b0785e +SHA512 (nbdkit-1.31.8.tar.gz.sig) = ad3a2260c61944a38b21318dac5dc3b576d2404aad212314e4ba7f36f9caf82a5ca18f687bd6eb5f3cfd19b61f3add9616eae68438271839d25fe496d3c1d2ad From 70e5aab9acf4549e81b582995b1d35ecce79a005 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 9 Jun 2022 21:23:06 +0100 Subject: [PATCH 480/683] Rename README file. --- nbdkit.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7a99fee..c883d8a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -802,7 +802,7 @@ export LIBGUESTFS_TRACE=1 %files server -%doc README +%doc README.md %license LICENSE %{_sbindir}/nbdkit %dir %{_libdir}/%{name} @@ -1193,6 +1193,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Thu Jun 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.8-1 - New upstream development version 1.31.8 +- Rename README file. * Wed Jun 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.31.7-2 - Perl 5.36 rebuild From 70fc70e259eb45b73d56e86e3034dfd094c2cf6b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 9 Jun 2022 21:23:06 +0100 Subject: [PATCH 481/683] Rename README file (fixed). --- nbdkit.spec | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c883d8a..64e309f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -822,7 +822,7 @@ export LIBGUESTFS_TRACE=1 %files basic-plugins -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-data-plugin.so %{_libdir}/%{name}/plugins/nbdkit-eval-plugin.so @@ -857,7 +857,7 @@ export LIBGUESTFS_TRACE=1 %files example-plugins -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so %if !0%{?rhel} @@ -868,7 +868,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files cc-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-cc-plugin.so %{_mandir}/man3/nbdkit-cc-plugin.3* @@ -877,7 +877,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files cdi-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-cdi-plugin.so %{_mandir}/man1/nbdkit-cdi-plugin.1* @@ -885,7 +885,7 @@ export LIBGUESTFS_TRACE=1 %files curl-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so %{_mandir}/man1/nbdkit-curl-plugin.1* @@ -893,7 +893,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} && 0%{?have_libguestfs} %files guestfs-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so %{_mandir}/man1/nbdkit-guestfs-plugin.1* @@ -902,7 +902,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files iso-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-iso-plugin.so %{_mandir}/man1/nbdkit-iso-plugin.1* @@ -911,7 +911,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files libvirt-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_mandir}/man1/nbdkit-libvirt-plugin.1* @@ -919,7 +919,7 @@ export LIBGUESTFS_TRACE=1 %files linuxdisk-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-linuxdisk-plugin.so %{_mandir}/man1/nbdkit-linuxdisk-plugin.1* @@ -927,7 +927,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files lua-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so %{_mandir}/man3/nbdkit-lua-plugin.3* @@ -935,7 +935,7 @@ export LIBGUESTFS_TRACE=1 %files nbd-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so %{_mandir}/man1/nbdkit-nbd-plugin.1* @@ -943,7 +943,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} && 0%{?have_ocaml} %files ocaml-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/libnbdkitocaml.so.* @@ -957,7 +957,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files perl-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so %{_mandir}/man3/nbdkit-perl-plugin.3* @@ -965,7 +965,7 @@ export LIBGUESTFS_TRACE=1 %files python-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-python-plugin.so %{_mandir}/man3/nbdkit-python-plugin.3* @@ -973,7 +973,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files ruby-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so %{_mandir}/man3/nbdkit-ruby-plugin.3* @@ -982,7 +982,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files S3-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-S3-plugin %{_mandir}/man1/nbdkit-S3-plugin.1* @@ -990,7 +990,7 @@ export LIBGUESTFS_TRACE=1 %files ssh-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-ssh-plugin.so %{_mandir}/man1/nbdkit-ssh-plugin.1* @@ -998,7 +998,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files tcl-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so %{_mandir}/man3/nbdkit-tcl-plugin.3* @@ -1006,7 +1006,7 @@ export LIBGUESTFS_TRACE=1 %files tmpdisk-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tmpdisk-plugin.so %{_mandir}/man1/nbdkit-tmpdisk-plugin.1* @@ -1014,7 +1014,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files torrent-plugin -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-torrent-plugin.so %{_mandir}/man1/nbdkit-torrent-plugin.1* @@ -1023,7 +1023,7 @@ export LIBGUESTFS_TRACE=1 %ifarch x86_64 %files vddk-plugin -%doc README plugins/vddk/README.VDDK +%doc README.md plugins/vddk/README.VDDK %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so %{_mandir}/man1/nbdkit-vddk-plugin.1* @@ -1031,7 +1031,7 @@ export LIBGUESTFS_TRACE=1 %files basic-filters -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so %{_libdir}/%{name}/filters/nbdkit-blocksize-policy-filter.so @@ -1109,7 +1109,7 @@ export LIBGUESTFS_TRACE=1 %if !0%{?rhel} %files ext2-filter -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-ext2-filter.so %{_mandir}/man1/nbdkit-ext2-filter.1* @@ -1117,35 +1117,35 @@ export LIBGUESTFS_TRACE=1 %files gzip-filter -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-gzip-filter.so %{_mandir}/man1/nbdkit-gzip-filter.1* %files stats-filter -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-stats-filter.so %{_mandir}/man1/nbdkit-stats-filter.1* %files tar-filter -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-tar-filter.so %{_mandir}/man1/nbdkit-tar-filter.1* %files xz-filter -%doc README +%doc README.md %license LICENSE %{_libdir}/%{name}/filters/nbdkit-xz-filter.so %{_mandir}/man1/nbdkit-xz-filter.1* %files devel -%doc BENCHMARKING OTHER_PLUGINS README SECURITY TODO +%doc BENCHMARKING OTHER_PLUGINS README.md SECURITY TODO %license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c From c3073ea624092421279f972888bcce215ebcc23b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 13 Jun 2022 13:08:05 +0100 Subject: [PATCH 482/683] New upstream development version 1.31.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 64e309f..73d91ca 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.8 +Version: 1.31.9 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 13 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.9-1 +- New upstream development version 1.31.9 + * Thu Jun 09 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.8-1 - New upstream development version 1.31.8 - Rename README file. diff --git a/sources b/sources index 791f41b..c47c983 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.8.tar.gz) = 346bd534bf7482440755be191480d4eef8b6ebf05c09236b5bebbf147a9f1e6efd1e4d5306c26a8f2a41857608016346fc4df8eb71fe13ed70c104fd06b0785e -SHA512 (nbdkit-1.31.8.tar.gz.sig) = ad3a2260c61944a38b21318dac5dc3b576d2404aad212314e4ba7f36f9caf82a5ca18f687bd6eb5f3cfd19b61f3add9616eae68438271839d25fe496d3c1d2ad +SHA512 (nbdkit-1.31.9.tar.gz) = b71231d6ed3816a8305f68550726de3442aa39d569e857600e8a1e4631adef3af67b72b122e21d848432d1b218f63854415a246dde262f9572aa4da6be216dc2 +SHA512 (nbdkit-1.31.9.tar.gz.sig) = 1b8fb270a21769b44162f6d7184ff342143c3cbbfe0dc36b41480d97723c386fe2e66df814ee0aa0496f8f3d613ac15ceedf114698a6f0ff39c022cf7875f1d5 From 2bdc26f44a8ff5325d4c5365d843dcf6b27701b3 Mon Sep 17 00:00:00 2001 From: Python Maint <python-maint@redhat.com> Date: Mon, 13 Jun 2022 19:53:04 +0200 Subject: [PATCH 483/683] Rebuilt for Python 3.11 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 73d91ca..40f6fd9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.31.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.31.9-2 +- Rebuilt for Python 3.11 + * Mon Jun 13 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.9-1 - New upstream development version 1.31.9 From 315d65fb3c8e639b55a7af179a692c3d896f6ad4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 20 Jun 2022 12:18:40 +0100 Subject: [PATCH 484/683] OCaml 4.14.0 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 40f6fd9..43b4bfe 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.31.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.9-3 +- OCaml 4.14.0 rebuild + * Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.31.9-2 - Rebuilt for Python 3.11 From 29df437fe558c30e7077aaddd187e820b8eabeb8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 27 Jun 2022 15:23:29 +0100 Subject: [PATCH 485/683] New upstream development version 1.31.10 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 43b4bfe..3601066 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.9 -Release: 3%{?dist} +Version: 1.31.10 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 27 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.10-1 +- New upstream development version 1.31.10 + * Mon Jun 20 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.9-3 - OCaml 4.14.0 rebuild diff --git a/sources b/sources index c47c983..c3e39ae 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.9.tar.gz) = b71231d6ed3816a8305f68550726de3442aa39d569e857600e8a1e4631adef3af67b72b122e21d848432d1b218f63854415a246dde262f9572aa4da6be216dc2 -SHA512 (nbdkit-1.31.9.tar.gz.sig) = 1b8fb270a21769b44162f6d7184ff342143c3cbbfe0dc36b41480d97723c386fe2e66df814ee0aa0496f8f3d613ac15ceedf114698a6f0ff39c022cf7875f1d5 +SHA512 (nbdkit-1.31.10.tar.gz) = b8c70bc737c95f80b2487eab4e5b8ee164ba6161c8276f5213fa360f111583fdba0710b5965810d427dea5c0fb23471ef6f2b9ae88f0150a1dc2e5ee9a1acfe2 +SHA512 (nbdkit-1.31.10.tar.gz.sig) = 36289367bcea4ae199c1ef5559a98df1e90fb0588eec27d96660db697c4947747ffaef0e73f20b23e07b3381bcf9d208a8a900a3162523ee22388acf861cb1fd From 542fa9b0ca5263160b47d7a7ca498ba0ea5583f0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 10 Jul 2022 13:04:43 +0100 Subject: [PATCH 486/683] New upstream development version 1.31.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3601066..6cb9491 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.10 +Version: 1.31.11 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sun Jul 10 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.11-1 +- New upstream development version 1.31.11 + * Mon Jun 27 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.10-1 - New upstream development version 1.31.10 diff --git a/sources b/sources index c3e39ae..bb87b3b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.10.tar.gz) = b8c70bc737c95f80b2487eab4e5b8ee164ba6161c8276f5213fa360f111583fdba0710b5965810d427dea5c0fb23471ef6f2b9ae88f0150a1dc2e5ee9a1acfe2 -SHA512 (nbdkit-1.31.10.tar.gz.sig) = 36289367bcea4ae199c1ef5559a98df1e90fb0588eec27d96660db697c4947747ffaef0e73f20b23e07b3381bcf9d208a8a900a3162523ee22388acf861cb1fd +SHA512 (nbdkit-1.31.11.tar.gz) = bbec9e3b8c9b19ef6264ea51360d228e4afb059616ad3cc32aceda46005e8995583036cc0e40640c71c1af9349ec69583d741ce0c116e7d9e3f05a72d7b497a0 +SHA512 (nbdkit-1.31.11.tar.gz.sig) = 32eaf660ed18f0045cade4e71742a3d6c6c625d2c2e60a649c27f9124200f328f7bb6fc8ccf1758d45b26ff7c43a9cab716b336a61806900e5970b70d5326775 From 4488b6f852eca01c79d8e5d903b5e6e3bfc235de Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 17 Jul 2022 20:17:39 +0100 Subject: [PATCH 487/683] New upstream development version 1.31.12 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6cb9491..37fa04c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.11 +Version: 1.31.12 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sun Jul 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.12-1 +- New upstream development version 1.31.12 + * Sun Jul 10 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.11-1 - New upstream development version 1.31.11 diff --git a/sources b/sources index bb87b3b..292d415 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.11.tar.gz) = bbec9e3b8c9b19ef6264ea51360d228e4afb059616ad3cc32aceda46005e8995583036cc0e40640c71c1af9349ec69583d741ce0c116e7d9e3f05a72d7b497a0 -SHA512 (nbdkit-1.31.11.tar.gz.sig) = 32eaf660ed18f0045cade4e71742a3d6c6c625d2c2e60a649c27f9124200f328f7bb6fc8ccf1758d45b26ff7c43a9cab716b336a61806900e5970b70d5326775 +SHA512 (nbdkit-1.31.12.tar.gz) = fd2245361e44aaab525489bd949ee737492b546b2ca9101911ba151eb6928e0a99e0f602bd2fed0ea6bc1f4a563353cde87e5396c2f59a237f02ff79bc5fa048 +SHA512 (nbdkit-1.31.12.tar.gz.sig) = 4fe3616c1d7ff529265146bcd4e136cff51ae5505556d9976fcd4b47209ecd0068f82fe02195e0c90625059b04826eae05a8c477896a6899e8138fd4519af1c8 From 4591c18cb0fcc0e990891a27f76030304dbb8f0b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 19 Jul 2022 11:23:36 +0100 Subject: [PATCH 488/683] New upstream development version 1.31.13 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 37fa04c..5c060d2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.12 +Version: 1.31.13 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jul 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.13-1 +- New upstream development version 1.31.13 + * Sun Jul 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.12-1 - New upstream development version 1.31.12 diff --git a/sources b/sources index 292d415..4ee4f47 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.12.tar.gz) = fd2245361e44aaab525489bd949ee737492b546b2ca9101911ba151eb6928e0a99e0f602bd2fed0ea6bc1f4a563353cde87e5396c2f59a237f02ff79bc5fa048 -SHA512 (nbdkit-1.31.12.tar.gz.sig) = 4fe3616c1d7ff529265146bcd4e136cff51ae5505556d9976fcd4b47209ecd0068f82fe02195e0c90625059b04826eae05a8c477896a6899e8138fd4519af1c8 +SHA512 (nbdkit-1.31.13.tar.gz) = f08bb7e5c111561edbe5798d16f4b223310dd21271116961bb3abe6315d3298c041ab8f0a12d487639899b6dc9d95806c068d1cd675d4f661c5c427b073858bc +SHA512 (nbdkit-1.31.13.tar.gz.sig) = 5388a764d6c643f80850d1ad822932641099252aa4d84a84670c32282e3abb98c7e3135e37a4071e0bf9a79a30784e16992299961020697d4180407248681695 From e84abd37b156dfeebb3c759e472da084cced71ee Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Fri, 22 Jul 2022 00:16:53 +0000 Subject: [PATCH 489/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5c060d2..5084220 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.31.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.31.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.13-1 - New upstream development version 1.31.13 From ed637e12ee784c3f0aa6ac1d5488c3aab8b065ce Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 24 Jul 2022 21:59:59 +0100 Subject: [PATCH 490/683] New upstream development version 1.31.14 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5084220..3382ef6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.13 -Release: 2%{?dist} +Version: 1.31.14 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sun Jul 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.14-1 +- New upstream development version 1.31.14 + * Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.31.13-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 4ee4f47..291832b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.13.tar.gz) = f08bb7e5c111561edbe5798d16f4b223310dd21271116961bb3abe6315d3298c041ab8f0a12d487639899b6dc9d95806c068d1cd675d4f661c5c427b073858bc -SHA512 (nbdkit-1.31.13.tar.gz.sig) = 5388a764d6c643f80850d1ad822932641099252aa4d84a84670c32282e3abb98c7e3135e37a4071e0bf9a79a30784e16992299961020697d4180407248681695 +SHA512 (nbdkit-1.31.14.tar.gz) = dd89db0033b9f1f2f0e45ae833075d768706778cf99ba58f0c262d808472a2aa79cc49fd59c5486aae3ee50c81ac1bb247e0710e29e0757b22ba5879742c0a7b +SHA512 (nbdkit-1.31.14.tar.gz.sig) = 25e95c2705363cdeefb632633c3b9fd0943f33b7f78ce7e0546f2db9728bbaad2addbcdea1c0b92f37eba2c72eedfd6f137576d35a3707c0a0200e93fe00194d From c1bb9d54ecbdaf4f42481232fe0db23ce92901bb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 29 Jul 2022 13:40:53 +0100 Subject: [PATCH 491/683] New upstream development version 1.31.15 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3382ef6..f9b7e74 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.31-development Name: nbdkit -Version: 1.31.14 +Version: 1.31.15 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 29 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.15-1 +- New upstream development version 1.31.15 + * Sun Jul 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.14-1 - New upstream development version 1.31.14 diff --git a/sources b/sources index 291832b..794d55e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.14.tar.gz) = dd89db0033b9f1f2f0e45ae833075d768706778cf99ba58f0c262d808472a2aa79cc49fd59c5486aae3ee50c81ac1bb247e0710e29e0757b22ba5879742c0a7b -SHA512 (nbdkit-1.31.14.tar.gz.sig) = 25e95c2705363cdeefb632633c3b9fd0943f33b7f78ce7e0546f2db9728bbaad2addbcdea1c0b92f37eba2c72eedfd6f137576d35a3707c0a0200e93fe00194d +SHA512 (nbdkit-1.31.15.tar.gz) = 61c9308e172553211f482efdb3bfc094a88be9108dacafc29dbb78265d348d9ab2ffc784ee8d0d3849135ed6ec65e29fd4dafb5eebf2bd3224e7e7c6eebb6827 +SHA512 (nbdkit-1.31.15.tar.gz.sig) = 8c96300e5e26e4691788a4a227a24790d2ad737abd053fc5fcbd0bbc43f9d9f7390653113566478bba83cf551a291508b2ae52cf2cc24be5fb40cc958e939146 From 5aceea57e4b341d89720986959419cc5733ed2ea Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 1 Aug 2022 17:19:06 +0100 Subject: [PATCH 492/683] New upstream stable version 1.32.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f9b7e74..7b30296 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.31-development +%global source_directory 1.32-stable Name: nbdkit -Version: 1.31.15 +Version: 1.32.0 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Aug 01 2022 Richard W.M. Jones <rjones@redhat.com> - 1.32.0-1 +- New upstream stable version 1.32.0 + * Fri Jul 29 2022 Richard W.M. Jones <rjones@redhat.com> - 1.31.15-1 - New upstream development version 1.31.15 diff --git a/sources b/sources index 794d55e..7d8d772 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.31.15.tar.gz) = 61c9308e172553211f482efdb3bfc094a88be9108dacafc29dbb78265d348d9ab2ffc784ee8d0d3849135ed6ec65e29fd4dafb5eebf2bd3224e7e7c6eebb6827 -SHA512 (nbdkit-1.31.15.tar.gz.sig) = 8c96300e5e26e4691788a4a227a24790d2ad737abd053fc5fcbd0bbc43f9d9f7390653113566478bba83cf551a291508b2ae52cf2cc24be5fb40cc958e939146 +SHA512 (nbdkit-1.32.0.tar.gz) = f991c09b05b0d567d8110b39268bd9d0d73ac39204e18fbc38977e8a396c8abcc311c6adf4d9f22bbb4464b5f9f76234849d60e366e5b95835bc62e9eef2dcf3 +SHA512 (nbdkit-1.32.0.tar.gz.sig) = b71a59ae5f116c28ed39e042d3a0d95b9a4694f271cd2c57f964641d98df37b0166b2c31c99e63a13ac380b1c9bf47e221b599b6d6159f318d6069ed8e37d5d2 From 46f18f9fc82cb42395008a78f4c9459db55b0a68 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 11 Aug 2022 13:25:21 +0100 Subject: [PATCH 493/683] New upstream stable version 1.32.1 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7b30296..4aa227e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.32-stable Name: nbdkit -Version: 1.32.0 +Version: 1.32.1 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1.32.1-1 +- New upstream stable version 1.32.1 + * Mon Aug 01 2022 Richard W.M. Jones <rjones@redhat.com> - 1.32.0-1 - New upstream stable version 1.32.0 diff --git a/sources b/sources index 7d8d772..9b62daa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.32.0.tar.gz) = f991c09b05b0d567d8110b39268bd9d0d73ac39204e18fbc38977e8a396c8abcc311c6adf4d9f22bbb4464b5f9f76234849d60e366e5b95835bc62e9eef2dcf3 -SHA512 (nbdkit-1.32.0.tar.gz.sig) = b71a59ae5f116c28ed39e042d3a0d95b9a4694f271cd2c57f964641d98df37b0166b2c31c99e63a13ac380b1c9bf47e221b599b6d6159f318d6069ed8e37d5d2 +SHA512 (nbdkit-1.32.1.tar.gz) = 01d4d653803491efa687c148ed01347c18856a4b1914c327960901a150fe6e33966c799365722b389e0501fdcfab3f29d4d988d55261f39913ab0f394ae61fee +SHA512 (nbdkit-1.32.1.tar.gz.sig) = 9357efd34e8e39238063d4ed26a15d95388fa1e1ff781b6dc1bc863f5e4fc00319be68040f18de9aca000800ee3f14de288c1889a6aea431536837ff551d0a12 From fc8fe6448bd379c0489bdf96c72bec11c21da658 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 18 Aug 2022 13:35:39 +0100 Subject: [PATCH 494/683] New upstream development version 1.33.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4aa227e..f0747ac 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.32-stable +%global source_directory 1.33-development Name: nbdkit -Version: 1.32.1 +Version: 1.33.1 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Aug 18 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.1-1 +- New upstream development version 1.33.1 + * Thu Aug 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1.32.1-1 - New upstream stable version 1.32.1 diff --git a/sources b/sources index 9b62daa..e8bbfce 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.32.1.tar.gz) = 01d4d653803491efa687c148ed01347c18856a4b1914c327960901a150fe6e33966c799365722b389e0501fdcfab3f29d4d988d55261f39913ab0f394ae61fee -SHA512 (nbdkit-1.32.1.tar.gz.sig) = 9357efd34e8e39238063d4ed26a15d95388fa1e1ff781b6dc1bc863f5e4fc00319be68040f18de9aca000800ee3f14de288c1889a6aea431536837ff551d0a12 +SHA512 (nbdkit-1.33.1.tar.gz) = 9a92ebfa5afcbae392259e3e998673ca88d95e9dbed08f1ac9797d5b4e9db1c31d68f372512e7bfb4d398fb3d117b7f8a022209a4114e5aaaf7df0b78b36d6b3 +SHA512 (nbdkit-1.33.1.tar.gz.sig) = 04eddb5f9fa7ca97f72f4f75be59bb7421eb03da200867958262437027ad785038e0d9470ffacf49f381475c72782851e9fc4ed1754c08ef3a160959566015b4 From 3a38cf78bb213f86d072f153740e6d16bbd1175d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 11 Oct 2022 16:47:39 +0100 Subject: [PATCH 495/683] New upstream development version 1.33.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f0747ac..54b2b03 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.1 +Version: 1.33.2 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Oct 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.2-1 +- New upstream development version 1.33.2 + * Thu Aug 18 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.1-1 - New upstream development version 1.33.1 diff --git a/sources b/sources index e8bbfce..12bde56 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.1.tar.gz) = 9a92ebfa5afcbae392259e3e998673ca88d95e9dbed08f1ac9797d5b4e9db1c31d68f372512e7bfb4d398fb3d117b7f8a022209a4114e5aaaf7df0b78b36d6b3 -SHA512 (nbdkit-1.33.1.tar.gz.sig) = 04eddb5f9fa7ca97f72f4f75be59bb7421eb03da200867958262437027ad785038e0d9470ffacf49f381475c72782851e9fc4ed1754c08ef3a160959566015b4 +SHA512 (nbdkit-1.33.2.tar.gz) = 9f30c9f6582a20cf54cc6116b4e69c9fefe227f0ac12260a26cb1eb9201444a4285a282b1f327b40d6f8cc458f585d13893d367a1e301adbe1176cf0eee42077 +SHA512 (nbdkit-1.33.2.tar.gz.sig) = fbd2b02408676112dad35c9125e53589508c5764e51421df7b4fb2bc04a60de22256b23db49d7214d80edff7c6bd6ee748b896225440f3f41e3989a69298346e From 28c1fbe6eac0d6a61351b2f97a37cec5aeb9b661 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 18 Nov 2022 15:14:03 +0000 Subject: [PATCH 496/683] New upstream development version 1.33.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 54b2b03..c57e85c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.2 +Version: 1.33.3 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Nov 18 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.3-1 +- New upstream development version 1.33.3 + * Tue Oct 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.2-1 - New upstream development version 1.33.2 diff --git a/sources b/sources index 12bde56..21d649b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.2.tar.gz) = 9f30c9f6582a20cf54cc6116b4e69c9fefe227f0ac12260a26cb1eb9201444a4285a282b1f327b40d6f8cc458f585d13893d367a1e301adbe1176cf0eee42077 -SHA512 (nbdkit-1.33.2.tar.gz.sig) = fbd2b02408676112dad35c9125e53589508c5764e51421df7b4fb2bc04a60de22256b23db49d7214d80edff7c6bd6ee748b896225440f3f41e3989a69298346e +SHA512 (nbdkit-1.33.3.tar.gz) = 6117cb9775fa2503df9701a3f70ee1ca8a5d3a6f99d0152233eb833d4d701a5962fed5bf1ba6746b190f5830ef76c8bd3117c3af67fb6e39385ee2bc213d1103 +SHA512 (nbdkit-1.33.3.tar.gz.sig) = 49d456414b58611872df22b7024cc0a8eae6dd9751fe03007306fef3786192e15b961ee17dae45bd46c6b785a61667cf8a93da0e33a6505ca0285def7b99b6bf From bd8134bd8d3c4174b28f8fdc342efe77ee836b0d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 3 Dec 2022 21:01:09 +0000 Subject: [PATCH 497/683] New upstream development version 1.33.4 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c57e85c..e95438a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.3 +Version: 1.33.4 Release: 1%{?dist} Summary: NBD server @@ -1191,6 +1191,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Dec 03 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.4-1 +- New upstream development version 1.33.4 + * Fri Nov 18 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.3-1 - New upstream development version 1.33.3 diff --git a/sources b/sources index 21d649b..2ea437d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.3.tar.gz) = 6117cb9775fa2503df9701a3f70ee1ca8a5d3a6f99d0152233eb833d4d701a5962fed5bf1ba6746b190f5830ef76c8bd3117c3af67fb6e39385ee2bc213d1103 -SHA512 (nbdkit-1.33.3.tar.gz.sig) = 49d456414b58611872df22b7024cc0a8eae6dd9751fe03007306fef3786192e15b961ee17dae45bd46c6b785a61667cf8a93da0e33a6505ca0285def7b99b6bf +SHA512 (nbdkit-1.33.4.tar.gz) = 7366ba0f723746eadd2b1ca9e26ed475147d1e1fe21cd16c3a5478db140785ad2397c8db369f27a4b698b5b8a487a7f931754a82cb47c333c4fe3ba8f7508241 +SHA512 (nbdkit-1.33.4.tar.gz.sig) = dc779d8edcbfe7caa91666072e557b58e5313db38f4605625ca175d4ff116d9f2eec460d785e953fbb3bd5a5d661e2a7d91bd6889a7fe4a3f86e266d32ee114f From eb4065d4eed7d799823bbf705fbae1ca45a1e2cf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 4 Dec 2022 10:41:24 +0000 Subject: [PATCH 498/683] More thorough use of configure parameters Make sure we explicitly either --enable/--with or --disable/--without every possible feature. This ensures that plugins/features are not accidentally built or omitted. Explicitly enable or disable VDDK depending on architecture (although the configure script does this already so it's not really necessary). If we ever build VDDK for Arm then we will have to revisit this. We can now disable the torrent plugin through configure so we don't have to delete the plugin afterwards. --- nbdkit.spec | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e95438a..f12ebe4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -680,24 +680,52 @@ autoreconf -i # package into their vendor/ directory. export PYTHON=%{__python3} %configure \ - --with-extra='%{name}-%{version}-%{release}' \ --disable-static \ + --with-extra='%{name}-%{version}-%{release}' \ + --with-tls-priority=@NBDKIT,SYSTEM \ + --with-bash-completions \ + --with-curl \ + --with-gnutls \ + --with-liblzma \ + --with-libnbd \ + --with-manpages \ + --with-selinux \ + --with-ssh \ + --with-zlib \ + --enable-linuxdisk \ + --enable-python \ --disable-golang \ --disable-rust \ + --disable-valgrind \ %if !0%{?rhel} && 0%{?have_ocaml} --enable-ocaml \ %else --disable-ocaml \ %endif -%if 0%{?rhel} +%if !0%{?rhel} + --enable-lua \ + --enable-perl \ + --enable-ruby \ + --enable-tcl \ + --enable-torrent \ + --with-ext2 \ + --with-iso \ + --with-libvirt \ +%else --disable-lua \ --disable-perl \ --disable-ruby \ --disable-tcl \ + --disable-torrent \ --without-ext2 \ --without-iso \ --without-libvirt \ %endif +%ifarch x86_64 + --enable-vddk \ +%else + --disable-vddk \ +%endif %if !0%{?rhel} && 0%{?have_libguestfs} --with-libguestfs \ %else @@ -708,7 +736,7 @@ export PYTHON=%{__python3} %else --disable-libguestfs-tests \ %endif - --with-tls-priority=@NBDKIT,SYSTEM + %{nil} # Verify that it picked the correct version of Python # to avoid RHBZ#1404631 happening again silently. @@ -729,7 +757,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* %if 0%{?rhel} # In RHEL, remove some plugins we cannot --disable. -for f in cc cdi torrent; do +for f in cc cdi ; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done From c5fbd4d47064e75a07edc701a631f50f3bbe1379 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 4 Dec 2022 10:57:47 +0000 Subject: [PATCH 499/683] Don't enable libguestfs tests if we don't have libguestfs --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index f12ebe4..227ff44 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -731,7 +731,7 @@ export PYTHON=%{__python3} %else --without-libguestfs \ %endif -%ifarch %{complete_test_arches} +%ifarch !0%{?rhel} && 0%{?have_libguestfs} && %{complete_test_arches} --enable-libguestfs-tests \ %else --disable-libguestfs-tests \ From 2dfd51a69868b49ff280610e2a5b4989f5a4e066 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 3 Jan 2023 13:32:35 +0000 Subject: [PATCH 500/683] New upstream development version 1.33.5 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 227ff44..b000412 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.4 +Version: 1.33.5 Release: 1%{?dist} Summary: NBD server @@ -1219,6 +1219,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jan 03 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.5-1 +- New upstream development version 1.33.5 + * Sat Dec 03 2022 Richard W.M. Jones <rjones@redhat.com> - 1.33.4-1 - New upstream development version 1.33.4 diff --git a/sources b/sources index 2ea437d..651b89e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.4.tar.gz) = 7366ba0f723746eadd2b1ca9e26ed475147d1e1fe21cd16c3a5478db140785ad2397c8db369f27a4b698b5b8a487a7f931754a82cb47c333c4fe3ba8f7508241 -SHA512 (nbdkit-1.33.4.tar.gz.sig) = dc779d8edcbfe7caa91666072e557b58e5313db38f4605625ca175d4ff116d9f2eec460d785e953fbb3bd5a5d661e2a7d91bd6889a7fe4a3f86e266d32ee114f +SHA512 (nbdkit-1.33.5.tar.gz) = 0b2562b35b059a0c218d27160af3eb0ff9465ce07caaba099e2f1c59c2672b7821f1d3fbebafbe2a419128779a64e2205807b8dd2f78c4196df649694422bbb6 +SHA512 (nbdkit-1.33.5.tar.gz.sig) = e3fe4e8cbee9d66b291d6f6a20442ec5a050fe88bc5084c07fd513a15f38db413ec1bddaffacc9fd2d30654d3b2c1f492f9ca329c8ec9e0c5a8628c1cacc8051 From 08b6cd1411c8abc28d30a98e45335b05bb057685 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Wed, 4 Jan 2023 14:49:04 +0900 Subject: [PATCH 501/683] Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b000412..765cb34 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.33.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1219,6 +1219,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.33.5-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 + * Tue Jan 03 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.5-1 - New upstream development version 1.33.5 From 05aae2b2159bd9e14cc66d2a020ee9c7412d637e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 11 Jan 2023 13:52:36 +0000 Subject: [PATCH 502/683] New upstream development version 1.33.6 New plugin: nbdkit-blkio-plugin --- nbdkit.spec | 32 ++++++++++++++++++++++++++++++-- sources | 4 ++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 765cb34..6444ec8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.5 -Release: 2%{?dist} +Version: 1.33.6 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -102,6 +102,7 @@ BuildRequires: e2fsprogs, e2fsprogs-devel %if !0%{?rhel} BuildRequires: xorriso BuildRequires: rb_libtorrent-devel +BuildRequires: libblkio-devel %endif BuildRequires: bash-completion BuildRequires: perl-devel @@ -260,6 +261,18 @@ This package contains example plugins for %{name}. # The plugins below have non-trivial dependencies are so are # packaged separately. +%if !0%{?rhel} +%package blkio-plugin +Summary: libblkio NVMe, vhost-user, vDPA, VFIO plugin for %{name} +License: BSD +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description blkio-plugin +This package contains libblkio (NVMe, vhost-user, vDPA, VFIO) support +for %{name}. +%endif + + %if !0%{?rhel} %package cc-plugin Summary: Write small inline C plugins and scripts for %{name} @@ -708,6 +721,7 @@ export PYTHON=%{__python3} --enable-ruby \ --enable-tcl \ --enable-torrent \ + --with-libblkio \ --with-ext2 \ --with-iso \ --with-libvirt \ @@ -717,6 +731,7 @@ export PYTHON=%{__python3} --disable-ruby \ --disable-tcl \ --disable-torrent \ + --without-libblkio \ --without-ext2 \ --without-iso \ --without-libvirt \ @@ -894,6 +909,15 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-example*-plugin.1* +%if !0%{?rhel} +%files blkio-plugin +%doc README.md +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-blkio-plugin.so +%{_mandir}/man1/nbdkit-blkio-plugin.1* +%endif + + %if !0%{?rhel} %files cc-plugin %doc README.md @@ -1219,6 +1243,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Jan 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.6-1 +- New upstream development version 1.33.6 +- New plugin: nbdkit-blkio-plugin + * Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.33.5-2 - Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 diff --git a/sources b/sources index 651b89e..6b08f89 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.5.tar.gz) = 0b2562b35b059a0c218d27160af3eb0ff9465ce07caaba099e2f1c59c2672b7821f1d3fbebafbe2a419128779a64e2205807b8dd2f78c4196df649694422bbb6 -SHA512 (nbdkit-1.33.5.tar.gz.sig) = e3fe4e8cbee9d66b291d6f6a20442ec5a050fe88bc5084c07fd513a15f38db413ec1bddaffacc9fd2d30654d3b2c1f492f9ca329c8ec9e0c5a8628c1cacc8051 +SHA512 (nbdkit-1.33.6.tar.gz) = c5e8df85ba99526ece1cce73fa5eeb2f47c721c74743f38ed8c8f8b627f5590a5dc314d24a99d16347624a602902b43cda45389f9060d51c30ce46a91e3378ab +SHA512 (nbdkit-1.33.6.tar.gz.sig) = 81d00fd801374f4bc3110b6a46b65a57cfd4da6ef7c5694a3226a1aea69f27ca523cc7e38dceaf259d35c2626bfa06a362268c0d7b80b8fa62a31dd9b4597c80 From 45cd552218ae5e70c89c5122c9808487d27d968b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 Jan 2023 15:43:56 +0000 Subject: [PATCH 503/683] New upstream development version 1.33.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6444ec8..64cfde8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.6 +Version: 1.33.7 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Jan 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.7-1 +- New upstream development version 1.33.7 + * Wed Jan 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.6-1 - New upstream development version 1.33.6 - New plugin: nbdkit-blkio-plugin diff --git a/sources b/sources index 6b08f89..7172cec 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.6.tar.gz) = c5e8df85ba99526ece1cce73fa5eeb2f47c721c74743f38ed8c8f8b627f5590a5dc314d24a99d16347624a602902b43cda45389f9060d51c30ce46a91e3378ab -SHA512 (nbdkit-1.33.6.tar.gz.sig) = 81d00fd801374f4bc3110b6a46b65a57cfd4da6ef7c5694a3226a1aea69f27ca523cc7e38dceaf259d35c2626bfa06a362268c0d7b80b8fa62a31dd9b4597c80 +SHA512 (nbdkit-1.33.7.tar.gz) = 60dd4ca240a7e35864bc1d0f65c48e9b82e3dd147fabd92fa95f3e3f68bb3f67074146b3cc76989c9a2a653d674dfe37b2c62346e0797ef91efb16bc15f1ee92 +SHA512 (nbdkit-1.33.7.tar.gz.sig) = ce54fba3071cb707e19d961b4cc826fc4bc3e5c26d1de5d5ce77d6dc529ba73286591fa148e85b2b0d79a3577c9ce6bdc71cb47e7f7b52226672a4bde83333a8 From 5b29d280dd0b34bed1c65e257ef3817995d1b60d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 19 Jan 2023 21:17:27 +0000 Subject: [PATCH 504/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 64cfde8..6a20607 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.33.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.33.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Sat Jan 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.7-1 - New upstream development version 1.33.7 From c98f3bea2b91daecbc5f2c3de5ae4ea6d1a679b3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 24 Jan 2023 20:40:37 +0000 Subject: [PATCH 505/683] Rebuild OCaml packages for F38 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6a20607..c6198e6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.33.7 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.7-3 +- Rebuild OCaml packages for F38 + * Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.33.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 951b6c1030f3b04780304e47cf050320c68854fd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 7 Feb 2023 22:07:16 +0000 Subject: [PATCH 506/683] New upstream development version 1.33.8 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c6198e6..4afba67 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.7 -Release: 3%{?dist} +Version: 1.33.8 +Release: 1%{?dist} Summary: NBD server License: BSD @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Feb 07 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.8-1 +- New upstream development version 1.33.8 + * Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.7-3 - Rebuild OCaml packages for F38 diff --git a/sources b/sources index 7172cec..7a55998 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.7.tar.gz) = 60dd4ca240a7e35864bc1d0f65c48e9b82e3dd147fabd92fa95f3e3f68bb3f67074146b3cc76989c9a2a653d674dfe37b2c62346e0797ef91efb16bc15f1ee92 -SHA512 (nbdkit-1.33.7.tar.gz.sig) = ce54fba3071cb707e19d961b4cc826fc4bc3e5c26d1de5d5ce77d6dc529ba73286591fa148e85b2b0d79a3577c9ce6bdc71cb47e7f7b52226672a4bde83333a8 +SHA512 (nbdkit-1.33.8.tar.gz) = 17e3e94e15e23e2ce8226f942acf03128dac867d3cc619d58febb1e5c9627b3b05b2d954493fd50c0233b636a4f1b057e6c8af0b0528cc9bee667b7f1de84b8a +SHA512 (nbdkit-1.33.8.tar.gz.sig) = ad2825ccf82b14680c2a1e860b675c3bf0374e8941c5608ffbcd5ab66f8ef8f160b74921ac10e691221011b155f83f80a2587f2f84cbcfc908240421524658c1 From 7f63a272d0cb887f9cd2c8024153fcc77df9b7a8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 25 Feb 2023 14:04:24 +0000 Subject: [PATCH 507/683] New upstream development version 1.33.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4afba67..af553ad 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.8 +Version: 1.33.9 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Feb 25 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.9-1 +- New upstream development version 1.33.9 + * Tue Feb 07 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.8-1 - New upstream development version 1.33.8 diff --git a/sources b/sources index 7a55998..4f6d7af 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.8.tar.gz) = 17e3e94e15e23e2ce8226f942acf03128dac867d3cc619d58febb1e5c9627b3b05b2d954493fd50c0233b636a4f1b057e6c8af0b0528cc9bee667b7f1de84b8a -SHA512 (nbdkit-1.33.8.tar.gz.sig) = ad2825ccf82b14680c2a1e860b675c3bf0374e8941c5608ffbcd5ab66f8ef8f160b74921ac10e691221011b155f83f80a2587f2f84cbcfc908240421524658c1 +SHA512 (nbdkit-1.33.9.tar.gz) = ec36b3b502ba625df9899080cd5425b0e47a4c520042d39fceaad39ea26dad2c2f399604f51efd5b5860c26e197687006629d1778b527d49362c3ddbdb2525f1 +SHA512 (nbdkit-1.33.9.tar.gz.sig) = 3025530f2fdf2d6c117c3856c0e5abd3bdbfe725aab923f31a9602db4f8af324b8ac7443aac6035e8592a6e75bb1656053865fe336c8a93b46061b9d6cbfdbac From b919ca15cf6231a8db18ca4e99b1fe1c95012b6a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 Feb 2023 15:37:47 +0000 Subject: [PATCH 508/683] New upstream development version 1.33.10 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index af553ad..d2d1051 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.9 +Version: 1.33.10 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Feb 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.10-1 +- New upstream development version 1.33.10 + * Sat Feb 25 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.9-1 - New upstream development version 1.33.9 diff --git a/sources b/sources index 4f6d7af..39e15fe 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.9.tar.gz) = ec36b3b502ba625df9899080cd5425b0e47a4c520042d39fceaad39ea26dad2c2f399604f51efd5b5860c26e197687006629d1778b527d49362c3ddbdb2525f1 -SHA512 (nbdkit-1.33.9.tar.gz.sig) = 3025530f2fdf2d6c117c3856c0e5abd3bdbfe725aab923f31a9602db4f8af324b8ac7443aac6035e8592a6e75bb1656053865fe336c8a93b46061b9d6cbfdbac +SHA512 (nbdkit-1.33.10.tar.gz) = c2b28cff041f3f8739b159fa7201beb06f1c4afbb4b1a302b6bbf9dde0c3fab17b195f880f8bf5702e8ba0952fa687e91c9921625f090fb66ed85692d4f01d2d +SHA512 (nbdkit-1.33.10.tar.gz.sig) = 1b62c9e63cf9e4ff472a2802c8fb5b9c263c6aca3c7acf66bae44632a3272730dac706c8a3cd9abb2982bf0fa9dbc5cc6a135a5352232b5954d1d2d670339071 From 09307d24977de0279de0779caf6c59bbe2c75427 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 9 Mar 2023 11:18:57 +0000 Subject: [PATCH 509/683] New upstream development version 1.33.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d2d1051..02d4a5d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.10 +Version: 1.33.11 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Mar 09 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.11-1 +- New upstream development version 1.33.11 + * Tue Feb 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.10-1 - New upstream development version 1.33.10 diff --git a/sources b/sources index 39e15fe..50fd7b6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.10.tar.gz) = c2b28cff041f3f8739b159fa7201beb06f1c4afbb4b1a302b6bbf9dde0c3fab17b195f880f8bf5702e8ba0952fa687e91c9921625f090fb66ed85692d4f01d2d -SHA512 (nbdkit-1.33.10.tar.gz.sig) = 1b62c9e63cf9e4ff472a2802c8fb5b9c263c6aca3c7acf66bae44632a3272730dac706c8a3cd9abb2982bf0fa9dbc5cc6a135a5352232b5954d1d2d670339071 +SHA512 (nbdkit-1.33.11.tar.gz) = 6101563f7f7e9d60658b19f07a661eec5efe4d60d5c840c651988dc15a6199e0064ffa9f679f2f59cc687a87c203ebc6b2c9fbb0f72274dfd03c5ec34005e544 +SHA512 (nbdkit-1.33.11.tar.gz.sig) = 0f947660d684b024539f8cfb8c42ea0158d005ce972eaf3dc1c94c7c4260fb353d6fbd9ecfaf64f7b2630f726f75e5632bab4c3c6bf0e8eba8059a54ee95cd13 From 604cc65d68e24683129993b3a05268770c5bae35 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Apr 2023 10:20:34 +0100 Subject: [PATCH 510/683] New upstream development version 1.33.12 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 02d4a5d..40bda8f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.33-development Name: nbdkit -Version: 1.33.11 +Version: 1.33.12 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Apr 13 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.12-1 +- New upstream development version 1.33.12 + * Thu Mar 09 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.11-1 - New upstream development version 1.33.11 diff --git a/sources b/sources index 50fd7b6..fbaa80a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.11.tar.gz) = 6101563f7f7e9d60658b19f07a661eec5efe4d60d5c840c651988dc15a6199e0064ffa9f679f2f59cc687a87c203ebc6b2c9fbb0f72274dfd03c5ec34005e544 -SHA512 (nbdkit-1.33.11.tar.gz.sig) = 0f947660d684b024539f8cfb8c42ea0158d005ce972eaf3dc1c94c7c4260fb353d6fbd9ecfaf64f7b2630f726f75e5632bab4c3c6bf0e8eba8059a54ee95cd13 +SHA512 (nbdkit-1.33.12.tar.gz) = 8d74b2e015a1811feb07010a552034b088a2c65b4cba45822ed14e1f9c8e622ae2279e1b0ea14492a3d6782a1172df6faa077ac6e60e0b87d2158d9a250bb73f +SHA512 (nbdkit-1.33.12.tar.gz.sig) = 70b931e3d39cb87b7f7cb76a282b38377318527af812af0c5eaf5abab97da18e0fe430a335bca365328ab06bd61324f5df35e1613379a4089f64ac66e3f9eabb From 437316b6903226392bdde4f5306cb95e1dc2e6b5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 14 Apr 2023 10:50:46 +0100 Subject: [PATCH 511/683] New upstream stable version 1.34.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 40bda8f..7917b85 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.33-development +%global source_directory 1.34-stable Name: nbdkit -Version: 1.33.12 +Version: 1.34.0 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Apr 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.0-1 +- New upstream stable version 1.34.0 + * Thu Apr 13 2023 Richard W.M. Jones <rjones@redhat.com> - 1.33.12-1 - New upstream development version 1.33.12 diff --git a/sources b/sources index fbaa80a..1137953 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.33.12.tar.gz) = 8d74b2e015a1811feb07010a552034b088a2c65b4cba45822ed14e1f9c8e622ae2279e1b0ea14492a3d6782a1172df6faa077ac6e60e0b87d2158d9a250bb73f -SHA512 (nbdkit-1.33.12.tar.gz.sig) = 70b931e3d39cb87b7f7cb76a282b38377318527af812af0c5eaf5abab97da18e0fe430a335bca365328ab06bd61324f5df35e1613379a4089f64ac66e3f9eabb +SHA512 (nbdkit-1.34.0.tar.gz) = 5d78708652da2ea9c9330bdbed3aabcd159a1517eb02c32adfbecf6e65ecc2769d37c8c114b32a2502552188fabedcb24ab0c7c44897482efffd9f5653af98f0 +SHA512 (nbdkit-1.34.0.tar.gz.sig) = 7fe99502d59760a6ae6dc5cdcae35b6eb14720f654d667160892eec9d746817305afd82dbf7c1ecf164acbc6f1140039af1c10885fefeb380244d6e1bf2ead7c From 7665825cab2995ecd951b6e912ac9c83faa2e816 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 18 Apr 2023 13:00:30 +0100 Subject: [PATCH 512/683] New upstream stable version 1.34.1 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7917b85..62561a2 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.34-stable Name: nbdkit -Version: 1.34.0 +Version: 1.34.1 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Apr 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.1-1 +- New upstream stable version 1.34.1 + * Fri Apr 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.0-1 - New upstream stable version 1.34.0 diff --git a/sources b/sources index 1137953..fc6a099 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.34.0.tar.gz) = 5d78708652da2ea9c9330bdbed3aabcd159a1517eb02c32adfbecf6e65ecc2769d37c8c114b32a2502552188fabedcb24ab0c7c44897482efffd9f5653af98f0 -SHA512 (nbdkit-1.34.0.tar.gz.sig) = 7fe99502d59760a6ae6dc5cdcae35b6eb14720f654d667160892eec9d746817305afd82dbf7c1ecf164acbc6f1140039af1c10885fefeb380244d6e1bf2ead7c +SHA512 (nbdkit-1.34.1.tar.gz) = 23d87f72046ea2ba5a315bfa85846a94f3557970e9db500d168ba45057d9835c0c51557b9ff6cdc3135bbdc6bb6e6dfed01f0640a08b576b5620c0476578d4ce +SHA512 (nbdkit-1.34.1.tar.gz.sig) = c25077362fb6459a83e1acbf1a683017c11edffb9760c9707c929ef4ab54583bdfa5bcfd845ce1f3e98fa46add7a4fba9536a7d4fb0cc072b6a41116489a957d From 389861ca942f057a782f9094c01b8e700f8c96aa Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 29 Apr 2023 12:45:05 +0100 Subject: [PATCH 513/683] New upstream development version 1.35.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 62561a2..8d11cf1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -49,10 +49,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.34-stable +%global source_directory 1.35-development Name: nbdkit -Version: 1.34.1 +Version: 1.35.1 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Apr 29 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.1-1 +- New upstream development version 1.35.1 + * Tue Apr 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.1-1 - New upstream stable version 1.34.1 diff --git a/sources b/sources index fc6a099..18a8727 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.34.1.tar.gz) = 23d87f72046ea2ba5a315bfa85846a94f3557970e9db500d168ba45057d9835c0c51557b9ff6cdc3135bbdc6bb6e6dfed01f0640a08b576b5620c0476578d4ce -SHA512 (nbdkit-1.34.1.tar.gz.sig) = c25077362fb6459a83e1acbf1a683017c11edffb9760c9707c929ef4ab54583bdfa5bcfd845ce1f3e98fa46add7a4fba9536a7d4fb0cc072b6a41116489a957d +SHA512 (nbdkit-1.35.1.tar.gz) = e7d9dcee41858db25bdc47890196e6af7296a8052a1133cf4bf412881a3fc5a4acd751b61cf412c082567319a363b0c1a3a05f9bed6218ed25b659147db27df0 +SHA512 (nbdkit-1.35.1.tar.gz.sig) = 0f217678377a49035304ab952110a5f1d5e6c84db8bf750831aa3f2e22043bb6ee4ecf173b83f1f0e599a0a4066ab22d30acd357937c3ec76c9f6815f5aca661 From 07728d64a3344d9a35170615df0618b61a3ff89b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 10 May 2023 10:45:50 +0100 Subject: [PATCH 514/683] New upstream development version 1.35.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8d11cf1..724e707 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.1 +Version: 1.35.2 Release: 1%{?dist} Summary: NBD server @@ -1243,6 +1243,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed May 10 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.2-1 +- New upstream development version 1.35.2 + * Sat Apr 29 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.1-1 - New upstream development version 1.35.1 diff --git a/sources b/sources index 18a8727..a59ff2d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.1.tar.gz) = e7d9dcee41858db25bdc47890196e6af7296a8052a1133cf4bf412881a3fc5a4acd751b61cf412c082567319a363b0c1a3a05f9bed6218ed25b659147db27df0 -SHA512 (nbdkit-1.35.1.tar.gz.sig) = 0f217678377a49035304ab952110a5f1d5e6c84db8bf750831aa3f2e22043bb6ee4ecf173b83f1f0e599a0a4066ab22d30acd357937c3ec76c9f6815f5aca661 +SHA512 (nbdkit-1.35.2.tar.gz) = 09fde258a14c1cd44440affd55623159721e84ec3fa01b13d73ea753200924650248583afb88ccd0d009533ce22554f3c3793035592f04614dabd0c56fc670ed +SHA512 (nbdkit-1.35.2.tar.gz.sig) = 47d295f8a7f003ccd23984f1a4fb462d1622c8fa2c69fcdf5e37bfb569404e5978858970213611865f70fd42c34900fec775d3c0bf9a13b2643e001b333d3fe2 From fd4ae2855524d5d54b40902024e0acbeb2c33a8b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 18 May 2023 21:26:13 +0100 Subject: [PATCH 515/683] New upstream development version 1.35.3 New plugin: ones New filter: evil --- nbdkit.spec | 15 ++++++++++++++- sources | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 724e707..4a14b67 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.2 +Version: 1.35.3 Release: 1%{?dist} Summary: NBD server @@ -230,6 +230,8 @@ nbdkit-memory-plugin A virtual memory plugin. nbdkit-ondemand-plugin Create filesystems on demand. +nbdkit-ones-plugin Fill disk with repeated 0xff or other bytes. + nbdkit-pattern-plugin Fixed test pattern. nbdkit-partitioning-plugin Create virtual disks from partitions. @@ -538,6 +540,8 @@ nbdkit-delay-filter Inject read and write delays. nbdkit-error-filter Inject errors. +nbdkit-evil-filter Add random data corruption to reads. + nbdkit-exitlast-filter Exit on last client connection. nbdkit-exitwhen-filter Exit gracefully when an event occurs. @@ -875,6 +879,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-ones-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so @@ -890,6 +895,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-ondemand-plugin.1* +%{_mandir}/man1/nbdkit-ones-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* @@ -1094,6 +1100,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so +%{_libdir}/%{name}/filters/nbdkit-evil-filter.so %{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so %{_libdir}/%{name}/filters/nbdkit-exitwhen-filter.so %{_libdir}/%{name}/filters/nbdkit-exportname-filter.so @@ -1130,6 +1137,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ddrescue-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-error-filter.1* +%{_mandir}/man1/nbdkit-evil-filter.1* %{_mandir}/man1/nbdkit-exitlast-filter.1* %{_mandir}/man1/nbdkit-exitwhen-filter.1* %{_mandir}/man1/nbdkit-exportname-filter.1* @@ -1243,6 +1251,11 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu May 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.3-1 +- New upstream development version 1.35.3 +- New plugin: ones +- New filter: evil + * Wed May 10 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.2-1 - New upstream development version 1.35.2 diff --git a/sources b/sources index a59ff2d..b8c1193 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.2.tar.gz) = 09fde258a14c1cd44440affd55623159721e84ec3fa01b13d73ea753200924650248583afb88ccd0d009533ce22554f3c3793035592f04614dabd0c56fc670ed -SHA512 (nbdkit-1.35.2.tar.gz.sig) = 47d295f8a7f003ccd23984f1a4fb462d1622c8fa2c69fcdf5e37bfb569404e5978858970213611865f70fd42c34900fec775d3c0bf9a13b2643e001b333d3fe2 +SHA512 (nbdkit-1.35.3.tar.gz) = 67ef835b3f6ee0acf252b9d801ff28553f59a6bb129bb24a4f5de63f8d02d067f811fdd28fed31d8e0e9efc0f108ede9ff20be94f8b350db5f13ee620fea3aa9 +SHA512 (nbdkit-1.35.3.tar.gz.sig) = e51ecf330622da3ec7521c603a713bacb8f6ac67ace5b30d62a6fc2ed6ae0010548c989e3180ce043a4a06b034525ad241049a5d3587138841b6741121ea0559 From 08486052a03908970a6c76dcf802edb8ed4c6a98 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 28 May 2023 17:44:15 +0100 Subject: [PATCH 516/683] New upstream development version 1.35.4 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4a14b67..90013f4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.3 +Version: 1.35.4 Release: 1%{?dist} Summary: NBD server @@ -1251,6 +1251,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat May 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.4-1 +- New upstream development version 1.35.4 + * Thu May 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.3-1 - New upstream development version 1.35.3 - New plugin: ones diff --git a/sources b/sources index b8c1193..0dfd32d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.3.tar.gz) = 67ef835b3f6ee0acf252b9d801ff28553f59a6bb129bb24a4f5de63f8d02d067f811fdd28fed31d8e0e9efc0f108ede9ff20be94f8b350db5f13ee620fea3aa9 -SHA512 (nbdkit-1.35.3.tar.gz.sig) = e51ecf330622da3ec7521c603a713bacb8f6ac67ace5b30d62a6fc2ed6ae0010548c989e3180ce043a4a06b034525ad241049a5d3587138841b6741121ea0559 +SHA512 (nbdkit-1.35.4.tar.gz) = 0a7f60eff375c6c435ea652da087eb2dda8470ab5996756b9f7e91b455cad25ffbbd153086dc339a6ffe68fe44e617248848b73d063d3c194bfa49e67679324e +SHA512 (nbdkit-1.35.4.tar.gz.sig) = ca228696cb57acc16c404fa71004ac6de1165fc92ee3c0a8467a6317aa615586e9add3d3b356285d90851173a113e7ebe274a71f4637dad919e25baff8dedbc0 From 109833d2f3f77b737c4b3c7ba087a4bb9e259fe9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 5 Jun 2023 15:53:11 +0100 Subject: [PATCH 517/683] Migrated to SPDX license --- nbdkit.spec | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 90013f4..509af3b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,10 +53,10 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server -License: BSD +License: BSD-3-Clause URL: https://gitlab.com/nbdkit/nbdkit %if 0%{?rhel} >= 8 @@ -194,7 +194,6 @@ reading the nbdkit(1) and nbdkit-plugin(3) manual pages. %package server Summary: The %{name} server -License: BSD %description server This package contains the %{name} server with only the null plugin @@ -205,7 +204,6 @@ the metapackage "nbdkit". %package basic-plugins Summary: Basic plugins for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -249,7 +247,6 @@ nbdkit-zero-plugin Zero-length plugin for testing. %package example-plugins Summary: Example plugins for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %if !0%{?rhel} # example4 is written in Perl. @@ -266,7 +263,6 @@ This package contains example plugins for %{name}. %if !0%{?rhel} %package blkio-plugin Summary: libblkio NVMe, vhost-user, vDPA, VFIO plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description blkio-plugin @@ -278,7 +274,6 @@ for %{name}. %if !0%{?rhel} %package cc-plugin Summary: Write small inline C plugins and scripts for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: gcc Requires: %{_bindir}/cat @@ -293,7 +288,6 @@ in C, install %{name}-devel for that. %if !0%{?rhel} %package cdi-plugin Summary: Containerized Data Import plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: jq Requires: podman @@ -305,7 +299,6 @@ This package contains Containerized Data Import support for %{name}. %package curl-plugin Summary: HTTP/FTP (cURL) plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description curl-plugin @@ -315,7 +308,6 @@ This package contains cURL (HTTP/FTP) support for %{name}. %if !0%{?rhel} && 0%{?have_libguestfs} %package guestfs-plugin Summary: libguestfs plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description guestfs-plugin @@ -326,7 +318,6 @@ This package is a libguestfs plugin for %{name}. %if !0%{?rhel} %package iso-plugin Summary: Virtual ISO 9660 plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: xorriso @@ -338,7 +329,6 @@ This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}. %if !0%{?rhel} %package libvirt-plugin Summary: Libvirt plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description libvirt-plugin @@ -350,7 +340,6 @@ virDomainBlockPeek API. %package linuxdisk-plugin Summary: Virtual Linux disk plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} # for mke2fs Requires: e2fsprogs @@ -362,7 +351,6 @@ This package is a virtual Linux disk plugin for %{name}. %if !0%{?rhel} %package lua-plugin Summary: Lua plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description lua-plugin @@ -372,7 +360,6 @@ This package lets you write Lua plugins for %{name}. %package nbd-plugin Summary: NBD proxy / forward plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description nbd-plugin @@ -383,7 +370,6 @@ to another NBD server. %if !0%{?rhel} && 0%{?have_ocaml} %package ocaml-plugin Summary: OCaml plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description ocaml-plugin @@ -395,7 +381,6 @@ To compile OCaml plugins you will also need to install %package ocaml-plugin-devel Summary: OCaml development environment for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release} @@ -407,7 +392,6 @@ This package lets you write OCaml plugins for %{name}. %if !0%{?rhel} %package perl-plugin Summary: Perl plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description perl-plugin @@ -417,7 +401,6 @@ This package lets you write Perl plugins for %{name}. %package python-plugin Summary: Python 3 plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description python-plugin @@ -427,7 +410,6 @@ This package lets you write Python 3 plugins for %{name}. %if !0%{?rhel} %package ruby-plugin Summary: Ruby plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description ruby-plugin @@ -440,7 +422,6 @@ This package lets you write Ruby plugins for %{name}. # which varies across architectures, RPM does not allow this. %package S3-plugin Summary: Amazon S3 and Ceph plugin for %{name} -License: BSD Requires: %{name}-python-plugin >= 1.22 # XXX Should not need to add this. Requires: python3-boto3 @@ -453,7 +434,6 @@ or Ceph using %{name}. %package ssh-plugin Summary: SSH plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description ssh-plugin @@ -463,7 +443,6 @@ This package contains SSH support for %{name}. %if !0%{?rhel} %package tcl-plugin Summary: Tcl plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description tcl-plugin @@ -473,7 +452,6 @@ This package lets you write Tcl plugins for %{name}. %package tmpdisk-plugin Summary: Remote temporary filesystem disk plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} # For mkfs and mke2fs (defaults). Requires: util-linux, e2fsprogs @@ -490,7 +468,6 @@ This package is a remote temporary filesystem disk plugin for %{name}. %if !0%{?rhel} %package torrent-plugin Summary: BitTorrent plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description torrent-plugin @@ -501,7 +478,6 @@ This package is a BitTorrent plugin for %{name}. %ifarch x86_64 %package vddk-plugin Summary: VMware VDDK plugin for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} # https://bugzilla.redhat.com/show_bug.cgi?id=1931818 Requires: libxcrypt-compat @@ -514,7 +490,6 @@ VMware VDDK for accessing VMware disks and servers. %package basic-filters Summary: Basic filters for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description basic-filters @@ -600,7 +575,6 @@ nbdkit-truncate-filter Truncate, expand, round up or round down size. %if !0%{?rhel} %package ext2-filter Summary: ext2, ext3 and ext4 filesystem support for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description ext2-filter @@ -611,7 +585,6 @@ This package contains ext2, ext3 and ext4 filesystem support for %package gzip-filter Summary: GZip filter for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description gzip-filter @@ -620,7 +593,6 @@ This package is a gzip filter for %{name}. %package stats-filter Summary: Statistics filter for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description stats-filter @@ -629,7 +601,6 @@ Display statistics about operations. %package tar-filter Summary: Tar archive filter for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: tar Obsoletes: %{name}-tar-plugin < 1.23.9-3 @@ -640,7 +611,6 @@ This package is a tar archive filter for %{name}. %package xz-filter Summary: XZ filter for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} %description xz-filter @@ -649,7 +619,6 @@ This package is the xz filter for %{name}. %package devel Summary: Development files and documentation for %{name} -License: BSD Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: pkgconfig @@ -661,7 +630,6 @@ plugins for %{name}. %package srpm-macros Summary: RPM Provides rules for %{name} plugins and filters -License: BSD BuildArch: noarch %description srpm-macros @@ -671,7 +639,6 @@ for %{name} plugins and filters found in the plugins directory. %package bash-completion Summary: Bash tab-completion for %{name} -License: BSD BuildArch: noarch Requires: bash-completion >= 2.0 Requires: %{name}-server = %{version}-%{release} @@ -1251,7 +1218,10 @@ export LIBGUESTFS_TRACE=1 %changelog -* Sat May 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.4-1 +* Mon Jun 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.4-2 +- Migrated to SPDX license + +* Sun May 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.4-1 - New upstream development version 1.35.4 * Thu May 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.3-1 From 9f6c48148951dd913b160b54bd0dc7e41636ebae Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 12 Jun 2023 12:10:26 +0100 Subject: [PATCH 518/683] New upstream development version 1.35.5 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 509af3b..9fb091a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,8 +52,8 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.4 -Release: 2%{?dist} +Version: 1.35.5 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1218,6 +1218,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jun 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.5-1 +- New upstream development version 1.35.5 + * Mon Jun 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.4-2 - Migrated to SPDX license diff --git a/sources b/sources index 0dfd32d..a96756c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.4.tar.gz) = 0a7f60eff375c6c435ea652da087eb2dda8470ab5996756b9f7e91b455cad25ffbbd153086dc339a6ffe68fe44e617248848b73d063d3c194bfa49e67679324e -SHA512 (nbdkit-1.35.4.tar.gz.sig) = ca228696cb57acc16c404fa71004ac6de1165fc92ee3c0a8467a6317aa615586e9add3d3b356285d90851173a113e7ebe274a71f4637dad919e25baff8dedbc0 +SHA512 (nbdkit-1.35.5.tar.gz) = aa0ddefa6073a20bda78bcc2a4295429a7f2ad98fe3bc3f0b7d6275878b3ec1ffb99e2a4cb0abc470d7c104179de627181ac1afacc991e37114f574f4da2b7d7 +SHA512 (nbdkit-1.35.5.tar.gz.sig) = 170e0d3d7d79811026ad313f1bb315685ba674319c76e42648c14bd0f300f28ec9304eae77e0e4489308229e73ac98469bfb0f2095ee091aa5b26e53f29a0ec0 From 58685c7530ced78b7aa1d9e261f6c3ae0cf9b34a Mon Sep 17 00:00:00 2001 From: Python Maint <python-maint@redhat.com> Date: Tue, 4 Jul 2023 11:42:56 +0200 Subject: [PATCH 519/683] Rebuilt for Python 3.12 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9fb091a..f26926e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1218,6 +1218,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jul 04 2023 Python Maint <python-maint@redhat.com> - 1.35.5-2 +- Rebuilt for Python 3.12 + * Mon Jun 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.5-1 - New upstream development version 1.35.5 From b95296db1f4a073d02166e19bed606c69d38d37c Mon Sep 17 00:00:00 2001 From: Jerry James <loganjerry@gmail.com> Date: Mon, 10 Jul 2023 16:36:47 -0600 Subject: [PATCH 520/683] OCaml 5.0.0 rebuild --- nbdkit.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f26926e..a3454a9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1,4 +1,3 @@ -%undefine _package_note_flags %global _hardened_build 1 %ifarch %{kernel_arches} @@ -53,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.5 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1218,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 1.35.5-3 +- OCaml 5.0.0 rebuild + * Tue Jul 04 2023 Python Maint <python-maint@redhat.com> - 1.35.5-2 - Rebuilt for Python 3.12 From 7d3324c5fb2ff35d7f9cddc1c3152b2675b282ad Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Tue, 11 Jul 2023 15:55:16 +0200 Subject: [PATCH 521/683] Perl 5.38 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a3454a9..4793d7c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.5 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1217,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.35.5-4 +- Perl 5.38 rebuild + * Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 1.35.5-3 - OCaml 5.0.0 rebuild From 6f30fc0cb68268a9f06905df60a57b12837fbbdd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 12 Jul 2023 15:01:29 +0100 Subject: [PATCH 522/683] OCaml 5.0 rebuild for Fedora 39 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4793d7c..e7dcb76 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.5 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1217,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.5-5 +- OCaml 5.0 rebuild for Fedora 39 + * Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.35.5-4 - Perl 5.38 rebuild From 3fc58c8fb651c858cfb7555ec9353dddfb670f1e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 12 Jul 2023 15:22:55 +0100 Subject: [PATCH 523/683] Add all upstream patches These are needed to get OCaml 5 to work. --- ...nfo-Remove-bogus-test-requires-of-gu.patch | 41 ++ ...-optional-tar-option-in-help-output-.patch | 43 ++ 0003-tar-Implement-tar-limit.patch | 193 ++++++++ ...sage-to-refer-to-xz-max-block-parame.patch | 40 ++ ...Recommend-using-g-with-OCAMLOPTFLAGS.patch | 27 + ..._plugin.ml-Print-a-message-when-test.patch | 32 ++ ...ml-Add-I-unix-before-using-unix.cmxa.patch | 124 +++++ ...ml_leave_blocking_section-with-caml_.patch | 468 ++++++++++++++++++ ...egister-the-global-root-and-free-the.patch | 65 +++ ...-Fix-thread-registration-for-OCaml-5.patch | 375 ++++++++++++++ ...aml.sh-Use-nbdkit-v-option-to-help-w.patch | 26 + ...s-Replace-SRCDIR-with-abs_top_srcdir.patch | 324 ++++++++++++ ...t-read-password-Remove-use-of-SRCDIR.patch | 55 ++ ...-tests-Stop-setting-SRCDIR-for-tests.patch | 28 ++ ...-add-L.-plugins-ocaml-.libs-to-find-.patch | 44 ++ nbdkit.spec | 20 +- 16 files changed, 1904 insertions(+), 1 deletion(-) create mode 100644 0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch create mode 100644 0002-tar-Document-the-optional-tar-option-in-help-output-.patch create mode 100644 0003-tar-Implement-tar-limit.patch create mode 100644 0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch create mode 100644 0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch create mode 100644 0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch create mode 100644 0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch create mode 100644 0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch create mode 100644 0009-ocaml-Always-unregister-the-global-root-and-free-the.patch create mode 100644 0010-ocaml-Fix-thread-registration-for-OCaml-5.patch create mode 100644 0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch create mode 100644 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch create mode 100644 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch create mode 100644 0014-tests-Stop-setting-SRCDIR-for-tests.patch create mode 100644 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch diff --git a/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch b/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch new file mode 100644 index 0000000..3047bcf --- /dev/null +++ b/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch @@ -0,0 +1,41 @@ +From d2e335b2d05e68c1fc7ed9b507fd5cafc172a112 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 13 Jun 2023 20:11:34 +0100 +Subject: [PATCH 01/15] tests/test-tar-info*: Remove bogus test requires of + guestfish + +These tests don't need guestfish so don't test for it. + +Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 +--- + tests/test-tar-info-xz.sh | 1 - + tests/test-tar-info.sh | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/tests/test-tar-info-xz.sh b/tests/test-tar-info-xz.sh +index 1f968e9b8..abd854974 100755 +--- a/tests/test-tar-info-xz.sh ++++ b/tests/test-tar-info-xz.sh +@@ -37,7 +37,6 @@ set -e + set -x + + requires test -f disk +-requires guestfish --version + requires tar --version + requires qemu-img --version + requires qemu-img info --output=json /dev/null +diff --git a/tests/test-tar-info.sh b/tests/test-tar-info.sh +index 572768b85..5c015d88e 100755 +--- a/tests/test-tar-info.sh ++++ b/tests/test-tar-info.sh +@@ -37,7 +37,6 @@ set -e + set -x + + requires test -f disk +-requires guestfish --version + requires tar --version + requires qemu-img --version + requires qemu-img info --output=json /dev/null +-- +2.41.0 + diff --git a/0002-tar-Document-the-optional-tar-option-in-help-output-.patch b/0002-tar-Document-the-optional-tar-option-in-help-output-.patch new file mode 100644 index 0000000..84be7bc --- /dev/null +++ b/0002-tar-Document-the-optional-tar-option-in-help-output-.patch @@ -0,0 +1,43 @@ +From eb44ca26a84c369a7908f19517c0a2f8f621d57f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 13 Jun 2023 20:25:40 +0100 +Subject: [PATCH 02/15] tar: Document the optional tar option in --help output + and synopsis + +Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 +--- + filters/tar/nbdkit-tar-filter.pod | 1 + + filters/tar/tar.c | 5 +++-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/filters/tar/nbdkit-tar-filter.pod b/filters/tar/nbdkit-tar-filter.pod +index 96aba16d9..eb0cfd4ab 100644 +--- a/filters/tar/nbdkit-tar-filter.pod ++++ b/filters/tar/nbdkit-tar-filter.pod +@@ -5,6 +5,7 @@ nbdkit-tar-filter - read and write files inside tar files without unpacking + =head1 SYNOPSIS + + nbdkit file FILENAME.tar --filter=tar tar-entry=PATH_INSIDE_TAR ++ [tar=TAR_COMMAND] + + =head1 EXAMPLES + +diff --git a/filters/tar/tar.c b/filters/tar/tar.c +index c650a3499..f3adb2c46 100644 +--- a/filters/tar/tar.c ++++ b/filters/tar/tar.c +@@ -96,8 +96,9 @@ tar_config_complete (nbdkit_next_config_complete *next, + return next (nxdata); + } + +-#define tar_config_help \ +- "tar-entry=<FILENAME> (required) The path inside the tar file to serve." ++#define tar_config_help \ ++ "tar-entry=<FILENAME> (required) The path inside the tar file to serve.\n" \ ++ "tar=<PATH> Path of the tar binary." + + static int + tar_thread_model (void) +-- +2.41.0 + diff --git a/0003-tar-Implement-tar-limit.patch b/0003-tar-Implement-tar-limit.patch new file mode 100644 index 0000000..cd54c95 --- /dev/null +++ b/0003-tar-Implement-tar-limit.patch @@ -0,0 +1,193 @@ +From ae3fb4def811f5bc42563128e8fae0a4288584d1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 13 Jun 2023 20:01:05 +0100 +Subject: [PATCH 03/15] tar: Implement tar-limit + +This can be used to ensure that the tar filter does not read +indefinite amounts of input when opening the tar file. + +See: https://github.com/kubevirt/containerized-data-importer/pull/2748#issuecomment-1589852102 +--- + filters/tar/nbdkit-tar-filter.pod | 24 +++++++++++- + tests/Makefile.am | 2 + + filters/tar/tar.c | 10 +++++ + tests/test-tar-limit.sh | 65 +++++++++++++++++++++++++++++++ + 4 files changed, 99 insertions(+), 2 deletions(-) + create mode 100755 tests/test-tar-limit.sh + +diff --git a/filters/tar/nbdkit-tar-filter.pod b/filters/tar/nbdkit-tar-filter.pod +index eb0cfd4ab..a3c2d1328 100644 +--- a/filters/tar/nbdkit-tar-filter.pod ++++ b/filters/tar/nbdkit-tar-filter.pod +@@ -4,8 +4,9 @@ nbdkit-tar-filter - read and write files inside tar files without unpacking + + =head1 SYNOPSIS + +- nbdkit file FILENAME.tar --filter=tar tar-entry=PATH_INSIDE_TAR +- [tar=TAR_COMMAND] ++ nbdkit file FILENAME.tar ++ --filter=tar tar-entry=PATH_INSIDE_TAR ++ [tar=TAR_COMMAND] [tar-limit=SIZE] + + =head1 EXAMPLES + +@@ -83,6 +84,25 @@ The path of the file inside the tarball to serve. This parameter is + required. It must exactly match the name stored in the tarball, so + use S<C<tar tf filename.tar>> + ++=item [B<tar-limit=>]SIZE ++ ++When opening the tar file we have to locate the file (C<tar-entry>) ++inside the tarball. Because tar files do not have a central index we ++must iterate over the tar file to find the entry, and that may be ++costly (especially with untrusted tar files). In the worst case where ++C<tar-entry> starts near the end of the file we may have to iterate ++over the whole tar file. If this is a problem you may set ++C<tar-limit> to some smaller value, eg: ++ ++ nbdkit -r curl https://example.com/file.tar \ ++ --filter=tar tar-entry=disk.img \ ++ tar-limit=10M ++ ++which ensures no more than 10 megabytes are read before we give up and ++reject the tar file (sending an error back to the NBD client). ++ ++The default is 0 meaning no limit. ++ + =item B<tar=gtar> + + =item B<tar=>/PATH/TO/GTAR +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 6694e409e..f2912aa93 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1957,11 +1957,13 @@ TESTS += \ + test-tar.sh \ + test-tar-info.sh \ + test-tar-info-xz.sh \ ++ test-tar-limit.sh \ + $(NULL) + EXTRA_DIST += \ + test-tar.sh \ + test-tar-info.sh \ + test-tar-info-xz.sh \ ++ test-tar-limit.sh \ + $(NULL) + + # truncate filter tests. +diff --git a/filters/tar/tar.c b/filters/tar/tar.c +index f3adb2c46..efe47684d 100644 +--- a/filters/tar/tar.c ++++ b/filters/tar/tar.c +@@ -53,6 +53,7 @@ + #include "utils.h" + + static const char *entry; /* File within tar (tar-entry=...) */ ++static int64_t tar_limit = 0; + static const char *tar_program = "tar"; + + /* Offset and size within tarball. +@@ -76,6 +77,12 @@ tar_config (nbdkit_next_config *next, nbdkit_backend *nxdata, + entry = value; + return 0; + } ++ else if (strcmp (key, "tar-limit") == 0) { ++ tar_limit = nbdkit_parse_size (value); ++ if (tar_limit == -1) ++ return -1; ++ return 0; ++ } + else if (strcmp (key, "tar") == 0) { + tar_program = value; + return 0; +@@ -98,6 +105,7 @@ tar_config_complete (nbdkit_next_config_complete *next, + + #define tar_config_help \ + "tar-entry=<FILENAME> (required) The path inside the tar file to serve.\n" \ ++ "tar-limit=SIZE Limit on reading to find entry.\n" \ + "tar=<PATH> Path of the tar binary." + + static int +@@ -197,6 +205,8 @@ calculate_offset_of_entry (nbdkit_next *next) + copysize = next->get_size (next); + if (copysize == -1) + return -1; ++ if (tar_limit > 0 && copysize > tar_limit) ++ copysize = tar_limit; + + /* Run the tar command. */ + nbdkit_debug ("%s", cmd); +diff --git a/tests/test-tar-limit.sh b/tests/test-tar-limit.sh +new file mode 100755 +index 000000000..168f2c497 +--- /dev/null ++++ b/tests/test-tar-limit.sh +@@ -0,0 +1,65 @@ ++#!/usr/bin/env bash ++# nbdkit ++# Copyright Red Hat ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions are ++# met: ++# ++# * Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# * Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# * Neither the name of Red Hat nor the names of its contributors may be ++# used to endorse or promote products derived from this software without ++# specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++# SUCH DAMAGE. ++ ++# Test the tar filter and tar-limit filter. ++ ++source ./functions.sh ++set -e ++set -x ++ ++requires test -f disk ++requires tar --version ++requires test -f disk ++requires_nbdinfo ++ ++tar_bad=tar-limit-bad.tar ++tar_good=tar-limit-good.tar ++tar_filler=tar-limit-filler.img ++files="$tar_bad $tar_good $tar_filler" ++rm -f $files ++cleanup_fn rm -f $files ++ ++# Create two tar files, one where the disk is located before an ++# arbitrary boundary and one after. ++truncate -s 1M $tar_filler ++tar cf $tar_good disk ++tar cf $tar_bad $tar_filler disk ++ ++# Check we can read the good disk and reject the bad disk. ++cmd="nbdkit -U - file --filter=tar tar-entry=disk tar-limit=131072" ++ ++$cmd $tar_good --run 'nbdinfo "$uri"' ++ ++if $cmd $tar_bad --run 'nbdinfo "$uri"' ; then ++ echo "ERROR: $0: expected $tar_bad to fail" ++ exit 1 ++fi +-- +2.41.0 + diff --git a/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch b/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch new file mode 100644 index 0000000..ed32847 --- /dev/null +++ b/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch @@ -0,0 +1,40 @@ +From 35db543e38293808e910b291ff26b17284640ec9 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 19 Jun 2023 13:53:09 +0100 +Subject: [PATCH 04/15] xz: Fix error message to refer to xz-max-block + parameter + +In the original xz plugin the parameter was called "maxblock", but +when we converted the plugin to a filter (commit c879d31047 "Rewrite +xz plugin as a filter.") we changed the parameter name to +"xz-max-block" but retained the old name in the error message. + +Fixes: commit c879d31047ae149cedabd5abbdb0a95e610f01c5 +--- + filters/xz/xz.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/filters/xz/xz.c b/filters/xz/xz.c +index 0c92cfff4..21e8993b5 100644 +--- a/filters/xz/xz.c ++++ b/filters/xz/xz.c +@@ -143,12 +143,12 @@ xz_prepare (nbdkit_next *next, void *handle, + return -1; + + if (maxblock < xzfile_max_uncompressed_block_size (h->xz)) { +- nbdkit_error ("xz file largest block is bigger than maxblock\n" ++ nbdkit_error ("xz file largest block is bigger than xz-max-block\n" + "Either recompress the xz file with smaller blocks " + "(see nbdkit-xz-filter(1))\n" +- "or make maxblock parameter bigger.\n" +- "maxblock = %" PRIu64 " (bytes)\n" +- "largest block in xz file = %" PRIu64 " (bytes)", ++ "or make xz-max-block parameter bigger.\n" ++ "Current xz-max-block = %" PRIu64 " (bytes)\n" ++ "Largest block in xz file = %" PRIu64 " (bytes)", + maxblock, + xzfile_max_uncompressed_block_size (h->xz)); + return -1; +-- +2.41.0 + diff --git a/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch b/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch new file mode 100644 index 0000000..6d419b0 --- /dev/null +++ b/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch @@ -0,0 +1,27 @@ +From 4398b1871f8832109fcdbe25c70a1dd341ed5bd4 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 13:05:22 +0100 +Subject: [PATCH 05/15] configure: Recommend using -g with OCAMLOPTFLAGS + +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c1d83a568..39b58b44e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -935,8 +935,8 @@ AC_SUBST([PYTHON_LDFLAGS]) + + dnl For the OCaml plugin, you can set OCAMLOPTFLAGS before running + dnl ./configure to specify any extra flags you want to pass to +-dnl ocamlopt. For example to enable OCaml warnings: +-dnl OCAMLOPTFLAGS="-warn-error +A-3" ++dnl ocamlopt. For example to enable debug symbols & warnings: ++dnl OCAMLOPTFLAGS="-g -warn-error +A-3" + AC_SUBST([OCAMLOPTFLAGS]) + + dnl Check for OCaml, for embedding in the ocaml plugin. +-- +2.41.0 + diff --git a/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch b/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch new file mode 100644 index 0000000..25fbbdb --- /dev/null +++ b/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch @@ -0,0 +1,32 @@ +From b53b78e542fe8e49ce5c670e8ddc9d2be66f73cc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 18:47:40 +0100 +Subject: [PATCH 06/15] tests/test_ocaml_plugin.ml: Print a message when test + plugin initializes + +It's useful to have a message which is printed as the top level +statements in the plugin module are being initialized, for debugging +purposes. +--- + tests/test_ocaml_plugin.ml | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/tests/test_ocaml_plugin.ml b/tests/test_ocaml_plugin.ml +index 561a8690f..f8eed4f7f 100644 +--- a/tests/test_ocaml_plugin.ml ++++ b/tests/test_ocaml_plugin.ml +@@ -30,6 +30,11 @@ + * SUCH DAMAGE. + *) + ++(* Print something during module initialization, useful for debugging ++ * obscure OCaml startup issues. ++ *) ++let () = Printf.eprintf "test_ocaml_plugin.ml: module initializing\n%!" ++ + let sector_size = 512 + let nr_sectors = 2048 + +-- +2.41.0 + diff --git a/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch b/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch new file mode 100644 index 0000000..cb40bc2 --- /dev/null +++ b/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch @@ -0,0 +1,124 @@ +From b778c56443e11817d4974dcab5356e2d4065980b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 18:56:58 +0100 +Subject: [PATCH 07/15] ocaml: Add -I +unix before using unix.cmxa + +In OCaml 5.0 you will see this warning: + + Alert ocaml_deprecated_auto_include: + OCaml's lib directory layout changed in 5.0. The unix subdirectory has been + automatically added to the search path, but you should add -I +unix to the + command-line to silence this alert (e.g. by adding unix to the list of + libraries in your dune file, or adding use_unix to your _tags file for + ocamlbuild, or using -package unix for ocamlfind). + +Using -I +unix doesn't hurt earlier versions, as the directory is just +ignored if it doesn't exist, and anyway findlib adds the directory if +you're using that. +--- + plugins/cc/nbdkit-cc-plugin.pod | 4 ++-- + plugins/ocaml/nbdkit-ocaml-plugin.pod | 2 +- + plugins/ocaml/Makefile.am | 2 +- + tests/Makefile.am | 4 ++-- + tests/test-cc-ocaml.sh | 2 +- + tests/cc_shebang.ml | 2 +- + 6 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod +index 412233797..f55f74ab0 100644 +--- a/plugins/cc/nbdkit-cc-plugin.pod ++++ b/plugins/cc/nbdkit-cc-plugin.pod +@@ -89,7 +89,7 @@ C<CC=g++> as a parameter to exec nbdkit. + =head2 Using this plugin with OCaml + + nbdkit cc CC=ocamlopt \ +- CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + source.ml + + OCaml plugin scripts can be created using this trick: +@@ -97,7 +97,7 @@ OCaml plugin scripts can be created using this trick: + (*/.)>/dev/null 2>&1 + exec nbdkit cc "$0" \ + CC=ocamlopt \ +- CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + "$@" + *) + (* followed by OCaml code for the plugin here *) +diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod +index dc8260174..e4a8cf0b0 100644 +--- a/plugins/ocaml/nbdkit-ocaml-plugin.pod ++++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod +@@ -53,7 +53,7 @@ using this command: + + ocamlopt.opt -output-obj -runtime-variant _pic \ + -o nbdkit-myplugin-plugin.so \ +- unix.cmxa NBDKit.cmx myplugin.ml \ ++ -I +unix unix.cmxa NBDKit.cmx myplugin.ml \ + -cclib -lnbdkitocaml + + You can then use C<nbdkit-myplugin-plugin.so> as an nbdkit plugin (see +diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am +index da1b1ec96..e7faae506 100644 +--- a/plugins/ocaml/Makefile.am ++++ b/plugins/ocaml/Makefile.am +@@ -84,7 +84,7 @@ noinst_SCRIPTS = nbdkit-ocamlexample-plugin.so + nbdkit-ocamlexample-plugin.so: example.cmx libnbdkitocaml.la NBDKit.cmi NBDKit.cmx + $(OCAMLOPT) $(OCAMLOPTFLAGS) \ + -output-obj -runtime-variant _pic -o $@ \ +- unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa NBDKit.cmx $< \ + -cclib -L.libs -cclib -lnbdkitocaml + example.cmx: example.ml NBDKit.cmi NBDKit.cmx + $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< -o $@ +diff --git a/tests/Makefile.am b/tests/Makefile.am +index f2912aa93..d8a640e1e 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1185,7 +1185,7 @@ OCAML_PLUGIN_DEPS = \ + test-ocaml-plugin.so: test_ocaml_plugin.cmx $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ + -output-obj -runtime-variant _pic -o $@ \ +- unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa NBDKit.cmx $< \ + -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml + test_ocaml_plugin.cmx: test_ocaml_plugin.ml $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml -c $< -o $@ +@@ -1194,7 +1194,7 @@ test-ocaml-errorcodes-plugin.so: \ + test_ocaml_errorcodes_plugin.cmx $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ + -output-obj -runtime-variant _pic -o $@ \ +- unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa NBDKit.cmx $< \ + -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml + test_ocaml_errorcodes_plugin.cmx: \ + test_ocaml_errorcodes_plugin.ml $(OCAML_PLUGIN_DEPS) +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index 659fa195e..3b4f6a553 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -61,6 +61,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ +- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml +index d78d76618..619b08bb5 100755 +--- a/tests/cc_shebang.ml ++++ b/tests/cc_shebang.ml +@@ -4,7 +4,7 @@ + # shell as an impossible command which is ignored. The line below is + # run by the shell and ignored by OCaml. + +-exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" ++exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" + *) + + open Printf +-- +2.41.0 + diff --git a/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch b/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch new file mode 100644 index 0000000..f7ba249 --- /dev/null +++ b/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch @@ -0,0 +1,468 @@ +From f8b761c62f177176dfe154a95824576eef740827 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 19:07:00 +0100 +Subject: [PATCH 08/15] ocaml: Replace caml_leave_blocking_section with + caml_acquire_runtime_system + +Replace: + + caml_leave_blocking_section + ... + caml_enter_blocking_section + +with the more sensibly named (and equivalent): + + caml_acquire_runtime_system + ... + caml_release_runtime_system + +In addition we must release the runtime system just after caml_startup +and only acquire it around callbacks into OCaml code. (The reason for +this is only apparent in a later commit.) + +OCaml 5 is more strict than earlier versions of OCaml and actually +implements the locks using pthread_mutex_t. So in OCaml 5 you will +see a deadlock error: + + Fatal error: Fatal error during lock: Resource deadlock avoided + +which was caused by attempting to double lock (ie. trying to acquire +the lock, when we already held it from caml_startup). + +Also because of additional strictness we must acquire the lock even +before creating the stack frame with CAMLparam* functions. +--- + plugins/ocaml/plugin.h | 16 ++++----- + plugins/ocaml/plugin.c | 75 +++++++++++++++++++++++------------------- + 2 files changed, 49 insertions(+), 42 deletions(-) + +diff --git a/plugins/ocaml/plugin.h b/plugins/ocaml/plugin.h +index 572c43c04..3d6d27db1 100644 +--- a/plugins/ocaml/plugin.h ++++ b/plugins/ocaml/plugin.h +@@ -47,18 +47,18 @@ caml_alloc_initialized_string (mlsize_t len, const char *p) + #endif + + /* For functions which call into OCaml code, call +- * caml_leave_blocking_section() to prevent other threads running, +- * then caml_enter_blocking_section() on return to C code. This macro +- * ensures that the calls are paired properly. ++ * caml_acquire_runtime_system ... caml_release_runtime_system around ++ * the code. This prevents other threads in the same domain running. ++ * The macro ensures that the calls are paired properly. + */ +-#define LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE() \ +- __attribute__ ((unused, cleanup (cleanup_enter_blocking_section))) \ ++#define ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE() \ ++ __attribute__ ((unused, cleanup (cleanup_release_runtime_system))) \ + int _unused; \ +- caml_leave_blocking_section () ++ caml_acquire_runtime_system () + static inline void +-cleanup_enter_blocking_section (int *unused) ++cleanup_release_runtime_system (int *unused) + { +- caml_enter_blocking_section (); ++ caml_release_runtime_system (); + } + + #endif /* NBDKIT_OCAML_PLUGIN_H */ +diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c +index 722b95e49..fe781f9af 100644 +--- a/plugins/ocaml/plugin.c ++++ b/plugins/ocaml/plugin.c +@@ -64,6 +64,12 @@ constructor (void) + + /* Initialize OCaml runtime. */ + caml_startup (argv); ++ ++ /* We need to release the runtime system here so other threads may ++ * use it. Before we call any OCaml callbacks we must acquire the ++ * runtime system again. ++ */ ++ caml_release_runtime_system (); + } + + /* Instead of using the NBDKIT_REGISTER_PLUGIN macro, we construct the +@@ -113,7 +119,7 @@ plugin_init (void) + static void + load_wrapper (void) + { +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + caml_callback (load_fn, Val_unit); + } + +@@ -123,8 +129,9 @@ load_wrapper (void) + static void + unload_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); ++ + if (unload_fn) { +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + caml_callback (unload_fn, Val_unit); + } + +@@ -139,9 +146,9 @@ unload_wrapper (void) + static void + dump_plugin_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (dump_plugin_fn, Val_unit); + if (Is_exception_result (rv)) +@@ -152,9 +159,9 @@ dump_plugin_wrapper (void) + static int + config_wrapper (const char *key, const char *val) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal3 (keyv, valv, rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + keyv = caml_copy_string (key); + valv = caml_copy_string (val); +@@ -171,9 +178,9 @@ config_wrapper (const char *key, const char *val) + static int + config_complete_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (config_complete_fn, Val_unit); + if (Is_exception_result (rv)) { +@@ -187,9 +194,9 @@ config_complete_wrapper (void) + static int + thread_model_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (thread_model_fn, Val_unit); + if (Is_exception_result (rv)) { +@@ -203,9 +210,9 @@ thread_model_wrapper (void) + static int + get_ready_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (get_ready_fn, Val_unit); + if (Is_exception_result (rv)) { +@@ -219,9 +226,9 @@ get_ready_wrapper (void) + static int + after_fork_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (after_fork_fn, Val_unit); + if (Is_exception_result (rv)) { +@@ -235,9 +242,9 @@ after_fork_wrapper (void) + static void + cleanup_wrapper (void) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (cleanup_fn, Val_unit); + if (Is_exception_result (rv)) { +@@ -251,9 +258,9 @@ cleanup_wrapper (void) + static int + preconnect_wrapper (int readonly) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (preconnect_fn, Val_bool (readonly)); + if (Is_exception_result (rv)) { +@@ -267,9 +274,9 @@ preconnect_wrapper (int readonly) + static int + list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal2 (rv, v); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback2_exn (list_exports_fn, Val_bool (readonly), + Val_bool (is_tls)); +@@ -299,10 +306,10 @@ list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) + static const char * + default_export_wrapper (int readonly, int is_tls) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); + const char *name; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback2_exn (default_export_fn, Val_bool (readonly), + Val_bool (is_tls)); +@@ -318,10 +325,10 @@ default_export_wrapper (int readonly, int is_tls) + static void * + open_wrapper (int readonly) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); + value *ret; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (open_fn, Val_bool (readonly)); + if (Is_exception_result (rv)) { +@@ -341,9 +348,9 @@ open_wrapper (int readonly) + static void + close_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (close_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -360,10 +367,10 @@ close_wrapper (void *h) + static const char * + export_description_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); + const char *desc; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (export_description_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -378,10 +385,10 @@ export_description_wrapper (void *h) + static int64_t + get_size_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); + int64_t r; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (get_size_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -397,11 +404,11 @@ static int + block_size_wrapper (void *h, + uint32_t *minimum, uint32_t *preferred, uint32_t *maximum) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); + int i; + int64_t i64; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (block_size_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -439,9 +446,9 @@ block_size_wrapper (void *h, + static int + can_write_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_write_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -455,9 +462,9 @@ can_write_wrapper (void *h) + static int + can_flush_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_flush_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -471,9 +478,9 @@ can_flush_wrapper (void *h) + static int + is_rotational_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (is_rotational_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -487,9 +494,9 @@ is_rotational_wrapper (void *h) + static int + can_trim_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_trim_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -503,9 +510,9 @@ can_trim_wrapper (void *h) + static int + can_zero_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_zero_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -519,9 +526,9 @@ can_zero_wrapper (void *h) + static int + can_fua_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_fua_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -535,9 +542,9 @@ can_fua_wrapper (void *h) + static int + can_fast_zero_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_fast_zero_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -551,9 +558,9 @@ can_fast_zero_wrapper (void *h) + static int + can_cache_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_cache_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -567,9 +574,9 @@ can_cache_wrapper (void *h) + static int + can_extents_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_extents_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -583,9 +590,9 @@ can_extents_wrapper (void *h) + static int + can_multi_conn_wrapper (void *h) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + rv = caml_callback_exn (can_multi_conn_fn, *(value *) h); + if (Is_exception_result (rv)) { +@@ -629,10 +636,10 @@ static int + pread_wrapper (void *h, void *buf, uint32_t count, uint64_t offset, + uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); + mlsize_t len; +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + countv = Val_int (count); + offsetv = caml_copy_int64 (offset); +@@ -659,9 +666,9 @@ static int + pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, + uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, strv, offsetv, flagsv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + strv = caml_alloc_initialized_string (count, buf); + offsetv = caml_copy_int64 (offset); +@@ -680,9 +687,9 @@ pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, + static int + flush_wrapper (void *h, uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal2 (rv, flagsv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + flagsv = Val_flags (flags); + +@@ -698,9 +705,9 @@ flush_wrapper (void *h, uint32_t flags) + static int + trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + countv = caml_copy_int64 (count); + offsetv = caml_copy_int64 (offset); +@@ -719,9 +726,9 @@ trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + static int + zero_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + countv = caml_copy_int64 (count); + offsetv = caml_copy_int64 (offset); +@@ -741,9 +748,9 @@ static int + extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, + struct nbdkit_extents *extents) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal5 (rv, countv, offsetv, flagsv, v); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + countv = caml_copy_int64 (count); + offsetv = caml_copy_int64 (offset); +@@ -781,9 +788,9 @@ extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, + static int + cache_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); + + countv = caml_copy_int64 (count); + offsetv = caml_copy_int64 (offset); +-- +2.41.0 + diff --git a/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch b/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch new file mode 100644 index 0000000..2380388 --- /dev/null +++ b/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch @@ -0,0 +1,65 @@ +From f4d5f179c9be6db3c39bc0752e36f262c3f87716 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 20:15:46 +0100 +Subject: [PATCH 09/15] ocaml: Always unregister the global root and free the + handle + +If the OCaml code did not provide a close method, we would never call +close_wrapper, and then we ended up leaking the global root and handle. +--- + plugins/ocaml/plugin.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c +index fe781f9af..a4671d6ed 100644 +--- a/plugins/ocaml/plugin.c ++++ b/plugins/ocaml/plugin.c +@@ -76,6 +76,7 @@ constructor (void) + * nbdkit_plugin struct and return it from our own plugin_init + * function. + */ ++static void close_wrapper (void *h); + static void unload_wrapper (void); + static void free_strings (void); + static void remove_roots (void); +@@ -92,6 +93,10 @@ static struct nbdkit_plugin plugin = { + */ + .name = NULL, + ++ /* We always call these, even if the OCaml code does not provide a ++ * callback. ++ */ ++ .close = close_wrapper, + .unload = unload_wrapper, + }; + +@@ -345,6 +350,9 @@ open_wrapper (int readonly) + CAMLreturnT (void *, ret); + } + ++/* We always have a close function, since we need to unregister the ++ * global root and free the handle. ++ */ + static void + close_wrapper (void *h) + { +@@ -352,10 +360,12 @@ close_wrapper (void *h) + CAMLparam0 (); + CAMLlocal1 (rv); + +- rv = caml_callback_exn (close_fn, *(value *) h); +- if (Is_exception_result (rv)) { +- nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); +- /*FALLTHROUGH*/ ++ if (close_fn) { ++ rv = caml_callback_exn (close_fn, *(value *) h); ++ if (Is_exception_result (rv)) { ++ nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); ++ /*FALLTHROUGH*/ ++ } + } + + caml_remove_generational_global_root (h); +-- +2.41.0 + diff --git a/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch b/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch new file mode 100644 index 0000000..05982d0 --- /dev/null +++ b/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch @@ -0,0 +1,375 @@ +From 9d4b87e0338d45456c0506fd2c25b80f7ef6b1e1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 21 Jun 2023 20:18:58 +0100 +Subject: [PATCH 10/15] ocaml: Fix thread registration for OCaml 5 + +OCaml 5 is strict about registering threads before calling OCaml heap +functions, and will abort the program with this error if you don't do +this correctly: + + Fatal error: no domain lock held + +Fix this as explained in the comment. + +Note (as it's not explained well in the documentation): Threads +created from C are placed in OCaml thread domain 0. In order to add +them to this domain, the main program must not hold on to the runtime +system lock (for domain 0, because that's what caml_startup gives +you). For this to work we must only hold this lock in the main +program briefly around calls to OCaml code, which means we must +release the runtime system after calling caml_startup as we did in an +earlier commit. +--- + plugins/cc/nbdkit-cc-plugin.pod | 4 +-- + plugins/ocaml/nbdkit-ocaml-plugin.pod | 3 +- + plugins/ocaml/Makefile.am | 2 +- + tests/Makefile.am | 4 +-- + plugins/ocaml/plugin.c | 52 +++++++++++++++++++++++++-- + tests/test-cc-ocaml.sh | 2 +- + tests/cc_shebang.ml | 2 +- + 7 files changed, 59 insertions(+), 10 deletions(-) + +diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod +index f55f74ab0..e393457c4 100644 +--- a/plugins/cc/nbdkit-cc-plugin.pod ++++ b/plugins/cc/nbdkit-cc-plugin.pod +@@ -89,7 +89,7 @@ C<CC=g++> as a parameter to exec nbdkit. + =head2 Using this plugin with OCaml + + nbdkit cc CC=ocamlopt \ +- CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + source.ml + + OCaml plugin scripts can be created using this trick: +@@ -97,7 +97,7 @@ OCaml plugin scripts can be created using this trick: + (*/.)>/dev/null 2>&1 + exec nbdkit cc "$0" \ + CC=ocamlopt \ +- CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + "$@" + *) + (* followed by OCaml code for the plugin here *) +diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod +index e4a8cf0b0..f1e06d3e2 100644 +--- a/plugins/ocaml/nbdkit-ocaml-plugin.pod ++++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod +@@ -53,7 +53,8 @@ using this command: + + ocamlopt.opt -output-obj -runtime-variant _pic \ + -o nbdkit-myplugin-plugin.so \ +- -I +unix unix.cmxa NBDKit.cmx myplugin.ml \ ++ -I +unix unix.cmxa -I +threads threads.cmxa \ ++ NBDKit.cmx myplugin.ml \ + -cclib -lnbdkitocaml + + You can then use C<nbdkit-myplugin-plugin.so> as an nbdkit plugin (see +diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am +index e7faae506..a61550cb9 100644 +--- a/plugins/ocaml/Makefile.am ++++ b/plugins/ocaml/Makefile.am +@@ -84,7 +84,7 @@ noinst_SCRIPTS = nbdkit-ocamlexample-plugin.so + nbdkit-ocamlexample-plugin.so: example.cmx libnbdkitocaml.la NBDKit.cmi NBDKit.cmx + $(OCAMLOPT) $(OCAMLOPTFLAGS) \ + -output-obj -runtime-variant _pic -o $@ \ +- -I +unix unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ + -cclib -L.libs -cclib -lnbdkitocaml + example.cmx: example.ml NBDKit.cmi NBDKit.cmx + $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< -o $@ +diff --git a/tests/Makefile.am b/tests/Makefile.am +index d8a640e1e..32ebb7002 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1185,7 +1185,7 @@ OCAML_PLUGIN_DEPS = \ + test-ocaml-plugin.so: test_ocaml_plugin.cmx $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ + -output-obj -runtime-variant _pic -o $@ \ +- -I +unix unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ + -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml + test_ocaml_plugin.cmx: test_ocaml_plugin.ml $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml -c $< -o $@ +@@ -1194,7 +1194,7 @@ test-ocaml-errorcodes-plugin.so: \ + test_ocaml_errorcodes_plugin.cmx $(OCAML_PLUGIN_DEPS) + $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ + -output-obj -runtime-variant _pic -o $@ \ +- -I +unix unix.cmxa NBDKit.cmx $< \ ++ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ + -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml + test_ocaml_errorcodes_plugin.cmx: \ + test_ocaml_errorcodes_plugin.ml $(OCAML_PLUGIN_DEPS) +diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c +index a4671d6ed..eaa88a925 100644 +--- a/plugins/ocaml/plugin.c ++++ b/plugins/ocaml/plugin.c +@@ -260,9 +260,31 @@ cleanup_wrapper (void) + CAMLreturn0; + } + ++/* A note about nbdkit threads and OCaml: ++ * ++ * OCaml requires that all C threads are registered and unregistered. ++ * ++ * For the main thread callbacks like load, config, get_ready [above ++ * this comment] we don't need to do anything. ++ * ++ * For the connected callbacks [below this comment] nbdkit creates its ++ * own threads but does not provide a way to intercept thread creation ++ * or destruction. However we can register the current thread in ++ * every callback, and unregister the thread only call_wrapper. ++ * ++ * This is safe and cheap: Registering a thread is basically free if ++ * the thread is already registered (the OCaml code checks a ++ * thread-local variable to see if it needs to register). nbdkit will ++ * always call the .close method, which does not necessarily indicate ++ * that the thread is being destroyed, but if the thread is reused we ++ * will register the same thread again when .open or similar is called ++ * next time. ++ */ ++ + static int + preconnect_wrapper (int readonly) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -279,6 +301,7 @@ preconnect_wrapper (int readonly) + static int + list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal2 (rv, v); +@@ -311,6 +334,7 @@ list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) + static const char * + default_export_wrapper (int readonly, int is_tls) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -330,6 +354,7 @@ default_export_wrapper (int readonly, int is_tls) + static void * + open_wrapper (int readonly) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -351,12 +376,13 @@ open_wrapper (int readonly) + } + + /* We always have a close function, since we need to unregister the +- * global root and free the handle. ++ * global root, free the handle and unregister the thread. + */ + static void + close_wrapper (void *h) + { +- ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); ++ caml_c_thread_register (); ++ caml_acquire_runtime_system (); + CAMLparam0 (); + CAMLlocal1 (rv); + +@@ -370,6 +396,8 @@ close_wrapper (void *h) + + caml_remove_generational_global_root (h); + free (h); ++ caml_release_runtime_system (); ++ caml_c_thread_unregister (); + + CAMLreturn0; + } +@@ -377,6 +405,7 @@ close_wrapper (void *h) + static const char * + export_description_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -395,6 +424,7 @@ export_description_wrapper (void *h) + static int64_t + get_size_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -414,6 +444,7 @@ static int + block_size_wrapper (void *h, + uint32_t *minimum, uint32_t *preferred, uint32_t *maximum) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -456,6 +487,7 @@ block_size_wrapper (void *h, + static int + can_write_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -472,6 +504,7 @@ can_write_wrapper (void *h) + static int + can_flush_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -488,6 +521,7 @@ can_flush_wrapper (void *h) + static int + is_rotational_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -504,6 +538,7 @@ is_rotational_wrapper (void *h) + static int + can_trim_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -520,6 +555,7 @@ can_trim_wrapper (void *h) + static int + can_zero_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -536,6 +572,7 @@ can_zero_wrapper (void *h) + static int + can_fua_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -552,6 +589,7 @@ can_fua_wrapper (void *h) + static int + can_fast_zero_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -568,6 +606,7 @@ can_fast_zero_wrapper (void *h) + static int + can_cache_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -584,6 +623,7 @@ can_cache_wrapper (void *h) + static int + can_extents_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -600,6 +640,7 @@ can_extents_wrapper (void *h) + static int + can_multi_conn_wrapper (void *h) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal1 (rv); +@@ -646,6 +687,7 @@ static int + pread_wrapper (void *h, void *buf, uint32_t count, uint64_t offset, + uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +@@ -676,6 +718,7 @@ static int + pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, + uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, strv, offsetv, flagsv); +@@ -697,6 +740,7 @@ pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, + static int + flush_wrapper (void *h, uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal2 (rv, flagsv); +@@ -715,6 +759,7 @@ flush_wrapper (void *h, uint32_t flags) + static int + trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +@@ -736,6 +781,7 @@ trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + static int + zero_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +@@ -758,6 +804,7 @@ static int + extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, + struct nbdkit_extents *extents) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal5 (rv, countv, offsetv, flagsv, v); +@@ -798,6 +845,7 @@ extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, + static int + cache_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + { ++ caml_c_thread_register (); + ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); + CAMLparam0 (); + CAMLlocal4 (rv, countv, offsetv, flagsv); +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index 3b4f6a553..9458201a4 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -61,6 +61,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ +- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml +index 619b08bb5..05ca77b64 100755 +--- a/tests/cc_shebang.ml ++++ b/tests/cc_shebang.ml +@@ -4,7 +4,7 @@ + # shell as an impossible command which is ignored. The line below is + # run by the shell and ignored by OCaml. + +-exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" ++exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" + *) + + open Printf +-- +2.41.0 + diff --git a/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch b/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch new file mode 100644 index 0000000..fc8045c --- /dev/null +++ b/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch @@ -0,0 +1,26 @@ +From c78266258709e2cbe6f0e869c866d09ad72c072c Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 22 Jun 2023 10:33:31 +0100 +Subject: [PATCH 11/15] tests/test-cc-ocaml.sh: Use nbdkit -v option to help + with debugging + +--- + tests/test-cc-ocaml.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index 9458201a4..fc1335591 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -60,7 +60,7 @@ out=test-cc-ocaml.out + cleanup_fn rm -f $out + rm -f $out + +-nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ ++nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ + CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +-- +2.41.0 + diff --git a/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch b/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch new file mode 100644 index 0000000..991b3a7 --- /dev/null +++ b/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch @@ -0,0 +1,324 @@ +From d968c4858847388e515bc1ef84ff4479c18a414d Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 22 Jun 2023 10:44:10 +0100 +Subject: [PATCH 12/15] tests: Replace $SRCDIR with $abs_top_srcdir + +functions.sh defines $abs_top_srcdir so there's no need to use $SRCDIR +in any test scripts. +--- + tests/test-cc-cpp.sh | 9 ++------- + tests/test-cc-ocaml.sh | 9 ++------- + tests/test-cc.sh | 9 ++------- + tests/test-python-exception.sh | 12 +++++------- + tests/test-python-export-list.sh | 8 +++----- + tests/test-python-export-name.sh | 8 +++----- + tests/test-python-thread-model.sh | 13 +++++-------- + tests/test-read-password-interactive.sh | 2 +- + tests/test-read-password.sh | 2 +- + tests/test-shebang-cc-ocaml.sh | 3 +-- + tests/test-shebang-cc.sh | 5 ++--- + tests/test-shebang-perl.sh | 4 ++-- + tests/test-shebang-python.sh | 4 ++-- + 13 files changed, 31 insertions(+), 57 deletions(-) + +diff --git a/tests/test-cc-cpp.sh b/tests/test-cc-cpp.sh +index 9a4c16242..7c7bf6353 100755 +--- a/tests/test-cc-cpp.sh ++++ b/tests/test-cc-cpp.sh +@@ -37,12 +37,7 @@ source ./functions.sh + set -e + set -x + +-if test "$SRCDIR" = ""; then +- echo "$0: \$SRCDIR is not set" +- exit 1 +-fi +- +-script=$SRCDIR/test-cc-cpp.cpp ++script=$abs_top_srcdir/tests/test-cc-cpp.cpp + if test ! -f "$script"; then + echo "$0: could not locate test-cc-cpp.cpp" + exit 1 +@@ -59,6 +54,6 @@ rm -f $out + + nbdkit -U - cc $script \ + CC="$CXX" \ +- EXTRA_CFLAGS="-I$SRCDIR/../include" \ ++ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((100 * 1024 * 1024)) +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index fc1335591..db7d252cf 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -37,12 +37,7 @@ source ./functions.sh + set -e + set -x + +-if test "$SRCDIR" = ""; then +- echo "$0: \$SRCDIR is not set" +- exit 1 +-fi +- +-script=$SRCDIR/test_ocaml_plugin.ml ++script=$abs_top_srcdir/tests/test_ocaml_plugin.ml + if test ! -f "$script"; then + echo "$0: could not locate test_ocaml_plugin.ml" + exit 1 +@@ -61,6 +56,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ +- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +diff --git a/tests/test-cc.sh b/tests/test-cc.sh +index 2a719d314..5214327bd 100755 +--- a/tests/test-cc.sh ++++ b/tests/test-cc.sh +@@ -37,12 +37,7 @@ source ./functions.sh + set -e + set -x + +-if test "$SRCDIR" = ""; then +- echo "$0: \$SRCDIR is not set" +- exit 1 +-fi +- +-script=$SRCDIR/cc-shebang.c ++script=$abs_top_srcdir/tests/cc-shebang.c + if test ! -f "$script"; then + echo "$0: could not locate cc-shebang.c" + exit 1 +@@ -57,6 +52,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -U - cc $script \ +- EXTRA_CFLAGS="-I$SRCDIR/../include" \ ++ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((100 * 1024 * 1024)) +diff --git a/tests/test-python-exception.sh b/tests/test-python-exception.sh +index a9fb146a6..54c29e66e 100755 +--- a/tests/test-python-exception.sh ++++ b/tests/test-python-exception.sh +@@ -34,23 +34,21 @@ source ./functions.sh + set -e + set -x + +-if test ! -d "$SRCDIR"; then +- echo "$0: could not locate python-exception.py" +- exit 1 +-fi +- + skip_if_valgrind "because Python code leaks memory" + ++script=$abs_top_srcdir/tests/python-exception.py ++test -f "$script" ++ + output=test-python-exception.out + rm -f $output + cleanup_fn rm -f $output + +-nbdkit -f -v python $SRCDIR/python-exception.py test=simple > $output 2>&1 ||: ++nbdkit -f -v python $script test=simple > $output 2>&1 ||: + cat $output + + grep 'this is the test string' $output + +-nbdkit -f -v python $SRCDIR/python-exception.py test=traceback > $output 2>&1 ||: ++nbdkit -f -v python $script test=traceback > $output 2>&1 ||: + cat $output + + grep 'raise_error1' $output +diff --git a/tests/test-python-export-list.sh b/tests/test-python-export-list.sh +index 49ca62e49..08774b9f3 100755 +--- a/tests/test-python-export-list.sh ++++ b/tests/test-python-export-list.sh +@@ -34,10 +34,8 @@ source ./functions.sh + set -e + set -x + +-if test ! -d "$SRCDIR"; then +- echo "$0: could not locate python-export-list.py" +- exit 1 +-fi ++script=$abs_top_srcdir/tests/python-export-list.py ++test -f "$script" + + skip_if_valgrind "because Python code leaks memory" + requires_nbdinfo +@@ -52,7 +50,7 @@ files="$pid $sock $out" + rm -f $files + cleanup_fn rm -f $files + +-start_nbdkit -P $pid -U $sock python $SRCDIR/python-export-list.py ++start_nbdkit -P $pid -U $sock python $script + + nbdinfo --list --json nbd+unix://\?socket=$sock > $out + cat $out +diff --git a/tests/test-python-export-name.sh b/tests/test-python-export-name.sh +index 99f292d2a..7680ae1e0 100755 +--- a/tests/test-python-export-name.sh ++++ b/tests/test-python-export-name.sh +@@ -34,10 +34,8 @@ source ./functions.sh + set -e + set -x + +-if test ! -d "$SRCDIR"; then +- echo "$0: could not locate python-export-name.py" +- exit 1 +-fi ++script=$abs_top_srcdir/tests/python-export-name.py ++test -f "$script" + + skip_if_valgrind "because Python code leaks memory" + requires nbdsh --version +@@ -48,7 +46,7 @@ files="$pid $sock" + rm -f $files + cleanup_fn rm -f $files + +-start_nbdkit -P $pid -U $sock python $SRCDIR/python-export-name.py ++start_nbdkit -P $pid -U $sock python $script + + # Try to read back various export names from the plugin. + for e in "" "test" "/" "//" " " "/ " "?" "テスト" "-n" '\\' $'\n' "%%" \ +diff --git a/tests/test-python-thread-model.sh b/tests/test-python-thread-model.sh +index 69b3d5c76..a0dea2386 100755 +--- a/tests/test-python-thread-model.sh ++++ b/tests/test-python-thread-model.sh +@@ -34,22 +34,19 @@ source ./functions.sh + set -e + set -x + +-SCRIPT="$SRCDIR/python-thread-model.py" +-if ! test -d "$SRCDIR" || ! test -f "$SCRIPT"; then +- echo "$0: could not locate python-thread-model.py" +- exit 1 +-fi ++script="$abs_top_srcdir/tests/python-thread-model.py" ++test -f "$script" + + skip_if_valgrind "because Python code leaks memory" + requires nbdsh --version + + # Check the plugin is loadable. +-nbdkit python $SCRIPT --dump-plugin ++nbdkit python $script --dump-plugin + + # This test only works on modern Linux (with pipe2, accept4 etc) where + # we are able to issue parallel requests. Other platforms have more + # restrictive thread models. +-requires sh -c "nbdkit python $SCRIPT --dump-plugin | ++requires sh -c "nbdkit python $script --dump-plugin | + grep '^thread_model=parallel'" + + pid=test-python-thread-model.pid +@@ -58,7 +55,7 @@ files="$out $pid $sock" + rm -f $files + cleanup_fn rm -f $files + +-start_nbdkit -P $pid -U $sock python $SCRIPT ++start_nbdkit -P $pid -U $sock python $script + + export sock + nbdsh -c ' +diff --git a/tests/test-read-password-interactive.sh b/tests/test-read-password-interactive.sh +index 7af48492b..ee345872e 100755 +--- a/tests/test-read-password-interactive.sh ++++ b/tests/test-read-password-interactive.sh +@@ -36,7 +36,7 @@ set -x + + # This is an executable C script using nbdkit-cc-plugin. + requires_plugin cc +-plugin=$SRCDIR/test-read-password-plugin.c ++plugin=$abs_top_srcdir/tests/test-read-password-plugin.c + requires test -x $plugin + + # expect on macOS does not work for unclear reasons, skip it. +diff --git a/tests/test-read-password.sh b/tests/test-read-password.sh +index 234162bc3..d0033dceb 100755 +--- a/tests/test-read-password.sh ++++ b/tests/test-read-password.sh +@@ -36,7 +36,7 @@ set -x + + # This is an executable C script using nbdkit-cc-plugin. + requires_plugin cc +-plugin=$SRCDIR/test-read-password-plugin.c ++plugin=$abs_top_srcdir/tests/test-read-password-plugin.c + requires test -x $plugin + + # Since we are matching on error messages. +diff --git a/tests/test-shebang-cc-ocaml.sh b/tests/test-shebang-cc-ocaml.sh +index 41e2f3db5..9eebcf07c 100755 +--- a/tests/test-shebang-cc-ocaml.sh ++++ b/tests/test-shebang-cc-ocaml.sh +@@ -32,8 +32,7 @@ + + source ./functions.sh + +-script=$SRCDIR/cc_shebang.ml +- ++script=$abs_top_srcdir/tests/cc_shebang.ml + if test ! -f "$script"; then + echo "$0: could not locate cc_shebang.ml" + exit 1 +diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh +index 6ae75abed..a5e557648 100755 +--- a/tests/test-shebang-cc.sh ++++ b/tests/test-shebang-cc.sh +@@ -35,8 +35,7 @@ + + source ./functions.sh + +-script=$SRCDIR/cc-shebang.c +- ++script=$abs_top_srcdir/tests/cc-shebang.c + if test ! -f "$script"; then + echo "$0: could not locate cc-shebang.c" + exit 1 +@@ -46,7 +45,7 @@ requires_plugin cc + requires guestfish --version + + $script -fv -U - \ +- EXTRA_CFLAGS="-I$SRCDIR/../include" \ ++ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + --run ' + guestfish \ + add "" protocol:nbd server:unix:$unixsocket : \ +diff --git a/tests/test-shebang-perl.sh b/tests/test-shebang-perl.sh +index 5f35d75b4..65bb7a403 100755 +--- a/tests/test-shebang-perl.sh ++++ b/tests/test-shebang-perl.sh +@@ -34,9 +34,9 @@ source ./functions.sh + + pidfile=shebang-perl.pid + sock=$(mktemp -u /tmp/nbdkit-test-sock.XXXXXX) +-script=$SRCDIR/shebang.pl ++script=$abs_top_srcdir/tests/shebang.pl + +-if test ! -d "$SRCDIR"; then ++if test ! -f "$script"; then + echo "$0: could not locate shebang.pl" + exit 1 + fi +diff --git a/tests/test-shebang-python.sh b/tests/test-shebang-python.sh +index fb851de94..8674f2fa1 100755 +--- a/tests/test-shebang-python.sh ++++ b/tests/test-shebang-python.sh +@@ -34,9 +34,9 @@ source ./functions.sh + + pidfile=shebang-python.pid + sock=$(mktemp -u /tmp/nbdkit-test-sock.XXXXXX) +-script=$SRCDIR/shebang.py ++script=$abs_top_srcdir/tests/shebang.py + +-if test ! -d "$SRCDIR"; then ++if test ! -f "$script"; then + echo "$0: could not locate shebang.py" + exit 1 + fi +-- +2.41.0 + diff --git a/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch b/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch new file mode 100644 index 0000000..6ef088e --- /dev/null +++ b/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch @@ -0,0 +1,55 @@ +From 92ae65f93d8ebeb09500552d7ebfc1e8149ded6f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 22 Jun 2023 10:48:51 +0100 +Subject: [PATCH 13/15] tests/test-read-password*: Remove use of $SRCDIR + +These tests required exporting $abs_top_srcdir so that the plugin +(which is a C script) can use it. +--- + tests/test-read-password-interactive.sh | 3 +++ + tests/test-read-password.sh | 3 +++ + tests/test-read-password-plugin.c | 2 +- + 3 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/tests/test-read-password-interactive.sh b/tests/test-read-password-interactive.sh +index ee345872e..2738922f4 100755 +--- a/tests/test-read-password-interactive.sh ++++ b/tests/test-read-password-interactive.sh +@@ -39,6 +39,9 @@ requires_plugin cc + plugin=$abs_top_srcdir/tests/test-read-password-plugin.c + requires test -x $plugin + ++# This variable is used by $plugin. ++export abs_top_srcdir ++ + # expect on macOS does not work for unclear reasons, skip it. + requires_not test "$(uname)" = "Darwin" + +diff --git a/tests/test-read-password.sh b/tests/test-read-password.sh +index d0033dceb..8243d5491 100755 +--- a/tests/test-read-password.sh ++++ b/tests/test-read-password.sh +@@ -39,6 +39,9 @@ requires_plugin cc + plugin=$abs_top_srcdir/tests/test-read-password-plugin.c + requires test -x $plugin + ++# This variable is used by $plugin. ++export abs_top_srcdir ++ + # Since we are matching on error messages. + export LANG=C + +diff --git a/tests/test-read-password-plugin.c b/tests/test-read-password-plugin.c +index d8faea4e3..397f69d72 100755 +--- a/tests/test-read-password-plugin.c ++++ b/tests/test-read-password-plugin.c +@@ -1,5 +1,5 @@ + #if 0 +-exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I${SRCDIR:-.}/../include" ++exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I$abs_top_srcdir/include" + #endif + /* nbdkit + * Copyright Red Hat +-- +2.41.0 + diff --git a/0014-tests-Stop-setting-SRCDIR-for-tests.patch b/0014-tests-Stop-setting-SRCDIR-for-tests.patch new file mode 100644 index 0000000..d61725d --- /dev/null +++ b/0014-tests-Stop-setting-SRCDIR-for-tests.patch @@ -0,0 +1,28 @@ +From 2e3dcb2a720e4258b54d04ffd081c5159783df8e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 22 Jun 2023 10:50:17 +0100 +Subject: [PATCH 14/15] tests: Stop setting $SRCDIR for tests + +Since no tests use this variable any longer we can stop setting it. + +However note that make-psk.sh still uses the same-named (but not +connected) variable. +--- + tests/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 32ebb7002..2921076de 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -63,7 +63,6 @@ EXTRA_PROGRAMS = + # Use the 'direct' backend, and ensure maximum libguestfs debugging. + # Enable libnbd debugging. + TESTS_ENVIRONMENT = \ +- SRCDIR=$(srcdir) \ + LIBGUESTFS_ATTACH_METHOD=appliance \ + LIBGUESTFS_DEBUG=1 \ + LIBGUESTFS_TRACE=1 \ +-- +2.41.0 + diff --git a/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch b/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch new file mode 100644 index 0000000..ca09a13 --- /dev/null +++ b/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch @@ -0,0 +1,44 @@ +From 3e4c1b79a72970c17cb42b21070e61ec634a38bb Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 22 Jun 2023 11:15:27 +0100 +Subject: [PATCH 15/15] tests: Explicitly add -L../plugins/ocaml/.libs to find + -lnbdkitocaml + +The actual libnbdkitocaml.so library is located in +plugins/ocaml/.libs, but we were only specifying plugins/ocaml as the +search path. How did it ever work? Turns out using LD_LIBRARY_PATH +set in wrapper.c. It seems unreliable to rely on this, so set the +path properly, as we are already doing elsewhere. +--- + tests/test-cc-ocaml.sh | 2 +- + tests/cc_shebang.ml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index db7d252cf..97a1c89e3 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -56,6 +56,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ +- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ ++ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml +index 05ca77b64..57ad85791 100755 +--- a/tests/cc_shebang.ml ++++ b/tests/cc_shebang.ml +@@ -4,7 +4,7 @@ + # shell as an impossible command which is ignored. The line below is + # run by the shell and ignored by OCaml. + +-exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" ++exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" "$@" + *) + + open Printf +-- +2.41.0 + diff --git a/nbdkit.spec b/nbdkit.spec index e7dcb76..9e6c161 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.35-development @@ -78,6 +78,24 @@ Source3: copy-patches.sh Source4: nbdkit.attr Source5: nbdkit-find-provides +# All upstream patches since 1.35.5 was released. These are needed +# to fix OCaml 5 builds. +Patch: 0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch +Patch: 0002-tar-Document-the-optional-tar-option-in-help-output-.patch +Patch: 0003-tar-Implement-tar-limit.patch +Patch: 0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch +Patch: 0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch +Patch: 0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch +Patch: 0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch +Patch: 0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch +Patch: 0009-ocaml-Always-unregister-the-global-root-and-free-the.patch +Patch: 0010-ocaml-Fix-thread-registration-for-OCaml-5.patch +Patch: 0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch +Patch: 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch +Patch: 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch +Patch: 0014-tests-Stop-setting-SRCDIR-for-tests.patch +Patch: 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool From 9c9ed7bb59a1bf72c713af872f3509d413d1ceea Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Thu, 13 Jul 2023 08:07:15 +0200 Subject: [PATCH 524/683] Perl 5.38 re-rebuild updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9e6c161..5a11bfa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.5 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1235,6 +1235,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jul 13 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.35.5-6 +- Perl 5.38 re-rebuild updated packages + * Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.5-5 - OCaml 5.0 rebuild for Fedora 39 From 97ad256c11729c902048f24899352122e8cbec3e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Jul 2023 12:05:26 +0100 Subject: [PATCH 525/683] Add patch to fix Perl 5.38 --- ...nfo-Remove-bogus-test-requires-of-gu.patch | 2 +- ...-optional-tar-option-in-help-output-.patch | 2 +- 0003-tar-Implement-tar-limit.patch | 2 +- ...sage-to-refer-to-xz-max-block-parame.patch | 2 +- ...Recommend-using-g-with-OCAMLOPTFLAGS.patch | 2 +- ..._plugin.ml-Print-a-message-when-test.patch | 2 +- ...ml-Add-I-unix-before-using-unix.cmxa.patch | 2 +- ...ml_leave_blocking_section-with-caml_.patch | 2 +- ...egister-the-global-root-and-free-the.patch | 2 +- ...-Fix-thread-registration-for-OCaml-5.patch | 2 +- ...aml.sh-Use-nbdkit-v-option-to-help-w.patch | 2 +- ...s-Replace-SRCDIR-with-abs_top_srcdir.patch | 2 +- ...t-read-password-Remove-use-of-SRCDIR.patch | 2 +- ...-tests-Stop-setting-SRCDIR-for-tests.patch | 2 +- ...-add-L.-plugins-ocaml-.libs-to-find-.patch | 2 +- ...l-PERL_SET_CONTEXT-from-.open-method.patch | 39 +++++++++++++++++++ nbdkit.spec | 1 + 17 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch diff --git a/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch b/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch index 3047bcf..680bfc8 100644 --- a/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch +++ b/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch @@ -1,7 +1,7 @@ From d2e335b2d05e68c1fc7ed9b507fd5cafc172a112 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 13 Jun 2023 20:11:34 +0100 -Subject: [PATCH 01/15] tests/test-tar-info*: Remove bogus test requires of +Subject: [PATCH 01/16] tests/test-tar-info*: Remove bogus test requires of guestfish These tests don't need guestfish so don't test for it. diff --git a/0002-tar-Document-the-optional-tar-option-in-help-output-.patch b/0002-tar-Document-the-optional-tar-option-in-help-output-.patch index 84be7bc..f1b4059 100644 --- a/0002-tar-Document-the-optional-tar-option-in-help-output-.patch +++ b/0002-tar-Document-the-optional-tar-option-in-help-output-.patch @@ -1,7 +1,7 @@ From eb44ca26a84c369a7908f19517c0a2f8f621d57f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 13 Jun 2023 20:25:40 +0100 -Subject: [PATCH 02/15] tar: Document the optional tar option in --help output +Subject: [PATCH 02/16] tar: Document the optional tar option in --help output and synopsis Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 diff --git a/0003-tar-Implement-tar-limit.patch b/0003-tar-Implement-tar-limit.patch index cd54c95..be8003c 100644 --- a/0003-tar-Implement-tar-limit.patch +++ b/0003-tar-Implement-tar-limit.patch @@ -1,7 +1,7 @@ From ae3fb4def811f5bc42563128e8fae0a4288584d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 13 Jun 2023 20:01:05 +0100 -Subject: [PATCH 03/15] tar: Implement tar-limit +Subject: [PATCH 03/16] tar: Implement tar-limit This can be used to ensure that the tar filter does not read indefinite amounts of input when opening the tar file. diff --git a/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch b/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch index ed32847..cf99a97 100644 --- a/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch +++ b/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch @@ -1,7 +1,7 @@ From 35db543e38293808e910b291ff26b17284640ec9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 19 Jun 2023 13:53:09 +0100 -Subject: [PATCH 04/15] xz: Fix error message to refer to xz-max-block +Subject: [PATCH 04/16] xz: Fix error message to refer to xz-max-block parameter In the original xz plugin the parameter was called "maxblock", but diff --git a/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch b/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch index 6d419b0..ec9999d 100644 --- a/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch +++ b/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch @@ -1,7 +1,7 @@ From 4398b1871f8832109fcdbe25c70a1dd341ed5bd4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 13:05:22 +0100 -Subject: [PATCH 05/15] configure: Recommend using -g with OCAMLOPTFLAGS +Subject: [PATCH 05/16] configure: Recommend using -g with OCAMLOPTFLAGS --- configure.ac | 4 ++-- diff --git a/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch b/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch index 25fbbdb..5c75615 100644 --- a/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch +++ b/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch @@ -1,7 +1,7 @@ From b53b78e542fe8e49ce5c670e8ddc9d2be66f73cc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 18:47:40 +0100 -Subject: [PATCH 06/15] tests/test_ocaml_plugin.ml: Print a message when test +Subject: [PATCH 06/16] tests/test_ocaml_plugin.ml: Print a message when test plugin initializes It's useful to have a message which is printed as the top level diff --git a/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch b/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch index cb40bc2..049cfb4 100644 --- a/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch +++ b/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch @@ -1,7 +1,7 @@ From b778c56443e11817d4974dcab5356e2d4065980b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 18:56:58 +0100 -Subject: [PATCH 07/15] ocaml: Add -I +unix before using unix.cmxa +Subject: [PATCH 07/16] ocaml: Add -I +unix before using unix.cmxa In OCaml 5.0 you will see this warning: diff --git a/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch b/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch index f7ba249..cb00591 100644 --- a/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch +++ b/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch @@ -1,7 +1,7 @@ From f8b761c62f177176dfe154a95824576eef740827 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 19:07:00 +0100 -Subject: [PATCH 08/15] ocaml: Replace caml_leave_blocking_section with +Subject: [PATCH 08/16] ocaml: Replace caml_leave_blocking_section with caml_acquire_runtime_system Replace: diff --git a/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch b/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch index 2380388..acb9bc5 100644 --- a/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch +++ b/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch @@ -1,7 +1,7 @@ From f4d5f179c9be6db3c39bc0752e36f262c3f87716 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 20:15:46 +0100 -Subject: [PATCH 09/15] ocaml: Always unregister the global root and free the +Subject: [PATCH 09/16] ocaml: Always unregister the global root and free the handle If the OCaml code did not provide a close method, we would never call diff --git a/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch b/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch index 05982d0..ebf111c 100644 --- a/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch +++ b/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch @@ -1,7 +1,7 @@ From 9d4b87e0338d45456c0506fd2c25b80f7ef6b1e1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 21 Jun 2023 20:18:58 +0100 -Subject: [PATCH 10/15] ocaml: Fix thread registration for OCaml 5 +Subject: [PATCH 10/16] ocaml: Fix thread registration for OCaml 5 OCaml 5 is strict about registering threads before calling OCaml heap functions, and will abort the program with this error if you don't do diff --git a/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch b/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch index fc8045c..47186fb 100644 --- a/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch +++ b/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch @@ -1,7 +1,7 @@ From c78266258709e2cbe6f0e869c866d09ad72c072c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Jun 2023 10:33:31 +0100 -Subject: [PATCH 11/15] tests/test-cc-ocaml.sh: Use nbdkit -v option to help +Subject: [PATCH 11/16] tests/test-cc-ocaml.sh: Use nbdkit -v option to help with debugging --- diff --git a/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch b/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch index 991b3a7..2d783f0 100644 --- a/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch +++ b/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch @@ -1,7 +1,7 @@ From d968c4858847388e515bc1ef84ff4479c18a414d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Jun 2023 10:44:10 +0100 -Subject: [PATCH 12/15] tests: Replace $SRCDIR with $abs_top_srcdir +Subject: [PATCH 12/16] tests: Replace $SRCDIR with $abs_top_srcdir functions.sh defines $abs_top_srcdir so there's no need to use $SRCDIR in any test scripts. diff --git a/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch b/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch index 6ef088e..0d14568 100644 --- a/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch +++ b/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch @@ -1,7 +1,7 @@ From 92ae65f93d8ebeb09500552d7ebfc1e8149ded6f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Jun 2023 10:48:51 +0100 -Subject: [PATCH 13/15] tests/test-read-password*: Remove use of $SRCDIR +Subject: [PATCH 13/16] tests/test-read-password*: Remove use of $SRCDIR These tests required exporting $abs_top_srcdir so that the plugin (which is a C script) can use it. diff --git a/0014-tests-Stop-setting-SRCDIR-for-tests.patch b/0014-tests-Stop-setting-SRCDIR-for-tests.patch index d61725d..2ff84a2 100644 --- a/0014-tests-Stop-setting-SRCDIR-for-tests.patch +++ b/0014-tests-Stop-setting-SRCDIR-for-tests.patch @@ -1,7 +1,7 @@ From 2e3dcb2a720e4258b54d04ffd081c5159783df8e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Jun 2023 10:50:17 +0100 -Subject: [PATCH 14/15] tests: Stop setting $SRCDIR for tests +Subject: [PATCH 14/16] tests: Stop setting $SRCDIR for tests Since no tests use this variable any longer we can stop setting it. diff --git a/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch b/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch index ca09a13..e1b9e45 100644 --- a/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch +++ b/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch @@ -1,7 +1,7 @@ From 3e4c1b79a72970c17cb42b21070e61ec634a38bb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Jun 2023 11:15:27 +0100 -Subject: [PATCH 15/15] tests: Explicitly add -L../plugins/ocaml/.libs to find +Subject: [PATCH 15/16] tests: Explicitly add -L../plugins/ocaml/.libs to find -lnbdkitocaml The actual libnbdkitocaml.so library is located in diff --git a/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch b/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch new file mode 100644 index 0000000..0a12e96 --- /dev/null +++ b/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch @@ -0,0 +1,39 @@ +From 495708e9d1b396ff450df15d5789b4f6c51f6ebc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Thu, 13 Jul 2023 11:50:02 +0100 +Subject: [PATCH 16/16] perl: Call PERL_SET_CONTEXT from .open method + +This appears to be necessary with Perl 5.38. +--- + plugins/perl/perl.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/plugins/perl/perl.c b/plugins/perl/perl.c +index d3b7cede2..1d8d0c2b4 100644 +--- a/plugins/perl/perl.c ++++ b/plugins/perl/perl.c +@@ -339,6 +339,21 @@ perl_open (int readonly) + SV *sv; + dSP; + ++ /* ++ * From perlembed(1): ++ * ++ * "PERL_SET_CONTEXT(interp) should also be called whenever "interp" ++ * is used by a thread that did not create it (using either ++ * perl_alloc(), or the more esoteric perl_clone())." ++ * ++ * Since we may be called here from a new thread created within ++ * nbdkit, do this. This is necessary since Perl 5.38. It didn't ++ * seem to make a difference with earlier Perl, but doesn't break ++ * them either. ++ */ ++ ++ PERL_SET_CONTEXT (my_perl); ++ + /* We check in perl_config that this callback is defined. */ + ENTER; + SAVETMPS; +-- +2.41.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 5a11bfa..f916994 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -95,6 +95,7 @@ Patch: 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch Patch: 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch Patch: 0014-tests-Stop-setting-SRCDIR-for-tests.patch Patch: 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch +Patch: 0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch BuildRequires: make %if 0%{patches_touch_autotools} From 8e2ee88371ad6d47b570115a201d510b5d9e1ad5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 14 Jul 2023 15:12:38 +0100 Subject: [PATCH 526/683] New upstream development version 1.35.6 --- ...nfo-Remove-bogus-test-requires-of-gu.patch | 41 -- ...-optional-tar-option-in-help-output-.patch | 43 -- 0003-tar-Implement-tar-limit.patch | 193 -------- ...sage-to-refer-to-xz-max-block-parame.patch | 40 -- ...Recommend-using-g-with-OCAMLOPTFLAGS.patch | 27 - ..._plugin.ml-Print-a-message-when-test.patch | 32 -- ...ml-Add-I-unix-before-using-unix.cmxa.patch | 124 ----- ...ml_leave_blocking_section-with-caml_.patch | 468 ------------------ ...egister-the-global-root-and-free-the.patch | 65 --- ...-Fix-thread-registration-for-OCaml-5.patch | 375 -------------- ...aml.sh-Use-nbdkit-v-option-to-help-w.patch | 26 - ...s-Replace-SRCDIR-with-abs_top_srcdir.patch | 324 ------------ ...t-read-password-Remove-use-of-SRCDIR.patch | 55 -- ...-tests-Stop-setting-SRCDIR-for-tests.patch | 28 -- ...-add-L.-plugins-ocaml-.libs-to-find-.patch | 44 -- ...l-PERL_SET_CONTEXT-from-.open-method.patch | 39 -- nbdkit.spec | 28 +- sources | 4 +- 18 files changed, 8 insertions(+), 1948 deletions(-) delete mode 100644 0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch delete mode 100644 0002-tar-Document-the-optional-tar-option-in-help-output-.patch delete mode 100644 0003-tar-Implement-tar-limit.patch delete mode 100644 0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch delete mode 100644 0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch delete mode 100644 0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch delete mode 100644 0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch delete mode 100644 0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch delete mode 100644 0009-ocaml-Always-unregister-the-global-root-and-free-the.patch delete mode 100644 0010-ocaml-Fix-thread-registration-for-OCaml-5.patch delete mode 100644 0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch delete mode 100644 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch delete mode 100644 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch delete mode 100644 0014-tests-Stop-setting-SRCDIR-for-tests.patch delete mode 100644 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch delete mode 100644 0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch diff --git a/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch b/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch deleted file mode 100644 index 680bfc8..0000000 --- a/0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch +++ /dev/null @@ -1,41 +0,0 @@ -From d2e335b2d05e68c1fc7ed9b507fd5cafc172a112 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 13 Jun 2023 20:11:34 +0100 -Subject: [PATCH 01/16] tests/test-tar-info*: Remove bogus test requires of - guestfish - -These tests don't need guestfish so don't test for it. - -Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 ---- - tests/test-tar-info-xz.sh | 1 - - tests/test-tar-info.sh | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/tests/test-tar-info-xz.sh b/tests/test-tar-info-xz.sh -index 1f968e9b8..abd854974 100755 ---- a/tests/test-tar-info-xz.sh -+++ b/tests/test-tar-info-xz.sh -@@ -37,7 +37,6 @@ set -e - set -x - - requires test -f disk --requires guestfish --version - requires tar --version - requires qemu-img --version - requires qemu-img info --output=json /dev/null -diff --git a/tests/test-tar-info.sh b/tests/test-tar-info.sh -index 572768b85..5c015d88e 100755 ---- a/tests/test-tar-info.sh -+++ b/tests/test-tar-info.sh -@@ -37,7 +37,6 @@ set -e - set -x - - requires test -f disk --requires guestfish --version - requires tar --version - requires qemu-img --version - requires qemu-img info --output=json /dev/null --- -2.41.0 - diff --git a/0002-tar-Document-the-optional-tar-option-in-help-output-.patch b/0002-tar-Document-the-optional-tar-option-in-help-output-.patch deleted file mode 100644 index f1b4059..0000000 --- a/0002-tar-Document-the-optional-tar-option-in-help-output-.patch +++ /dev/null @@ -1,43 +0,0 @@ -From eb44ca26a84c369a7908f19517c0a2f8f621d57f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 13 Jun 2023 20:25:40 +0100 -Subject: [PATCH 02/16] tar: Document the optional tar option in --help output - and synopsis - -Fixes: commit 05b49f89dccb0ca3fd0919e9502c54dbcadf0b73 ---- - filters/tar/nbdkit-tar-filter.pod | 1 + - filters/tar/tar.c | 5 +++-- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/filters/tar/nbdkit-tar-filter.pod b/filters/tar/nbdkit-tar-filter.pod -index 96aba16d9..eb0cfd4ab 100644 ---- a/filters/tar/nbdkit-tar-filter.pod -+++ b/filters/tar/nbdkit-tar-filter.pod -@@ -5,6 +5,7 @@ nbdkit-tar-filter - read and write files inside tar files without unpacking - =head1 SYNOPSIS - - nbdkit file FILENAME.tar --filter=tar tar-entry=PATH_INSIDE_TAR -+ [tar=TAR_COMMAND] - - =head1 EXAMPLES - -diff --git a/filters/tar/tar.c b/filters/tar/tar.c -index c650a3499..f3adb2c46 100644 ---- a/filters/tar/tar.c -+++ b/filters/tar/tar.c -@@ -96,8 +96,9 @@ tar_config_complete (nbdkit_next_config_complete *next, - return next (nxdata); - } - --#define tar_config_help \ -- "tar-entry=<FILENAME> (required) The path inside the tar file to serve." -+#define tar_config_help \ -+ "tar-entry=<FILENAME> (required) The path inside the tar file to serve.\n" \ -+ "tar=<PATH> Path of the tar binary." - - static int - tar_thread_model (void) --- -2.41.0 - diff --git a/0003-tar-Implement-tar-limit.patch b/0003-tar-Implement-tar-limit.patch deleted file mode 100644 index be8003c..0000000 --- a/0003-tar-Implement-tar-limit.patch +++ /dev/null @@ -1,193 +0,0 @@ -From ae3fb4def811f5bc42563128e8fae0a4288584d1 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 13 Jun 2023 20:01:05 +0100 -Subject: [PATCH 03/16] tar: Implement tar-limit - -This can be used to ensure that the tar filter does not read -indefinite amounts of input when opening the tar file. - -See: https://github.com/kubevirt/containerized-data-importer/pull/2748#issuecomment-1589852102 ---- - filters/tar/nbdkit-tar-filter.pod | 24 +++++++++++- - tests/Makefile.am | 2 + - filters/tar/tar.c | 10 +++++ - tests/test-tar-limit.sh | 65 +++++++++++++++++++++++++++++++ - 4 files changed, 99 insertions(+), 2 deletions(-) - create mode 100755 tests/test-tar-limit.sh - -diff --git a/filters/tar/nbdkit-tar-filter.pod b/filters/tar/nbdkit-tar-filter.pod -index eb0cfd4ab..a3c2d1328 100644 ---- a/filters/tar/nbdkit-tar-filter.pod -+++ b/filters/tar/nbdkit-tar-filter.pod -@@ -4,8 +4,9 @@ nbdkit-tar-filter - read and write files inside tar files without unpacking - - =head1 SYNOPSIS - -- nbdkit file FILENAME.tar --filter=tar tar-entry=PATH_INSIDE_TAR -- [tar=TAR_COMMAND] -+ nbdkit file FILENAME.tar -+ --filter=tar tar-entry=PATH_INSIDE_TAR -+ [tar=TAR_COMMAND] [tar-limit=SIZE] - - =head1 EXAMPLES - -@@ -83,6 +84,25 @@ The path of the file inside the tarball to serve. This parameter is - required. It must exactly match the name stored in the tarball, so - use S<C<tar tf filename.tar>> - -+=item [B<tar-limit=>]SIZE -+ -+When opening the tar file we have to locate the file (C<tar-entry>) -+inside the tarball. Because tar files do not have a central index we -+must iterate over the tar file to find the entry, and that may be -+costly (especially with untrusted tar files). In the worst case where -+C<tar-entry> starts near the end of the file we may have to iterate -+over the whole tar file. If this is a problem you may set -+C<tar-limit> to some smaller value, eg: -+ -+ nbdkit -r curl https://example.com/file.tar \ -+ --filter=tar tar-entry=disk.img \ -+ tar-limit=10M -+ -+which ensures no more than 10 megabytes are read before we give up and -+reject the tar file (sending an error back to the NBD client). -+ -+The default is 0 meaning no limit. -+ - =item B<tar=gtar> - - =item B<tar=>/PATH/TO/GTAR -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 6694e409e..f2912aa93 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1957,11 +1957,13 @@ TESTS += \ - test-tar.sh \ - test-tar-info.sh \ - test-tar-info-xz.sh \ -+ test-tar-limit.sh \ - $(NULL) - EXTRA_DIST += \ - test-tar.sh \ - test-tar-info.sh \ - test-tar-info-xz.sh \ -+ test-tar-limit.sh \ - $(NULL) - - # truncate filter tests. -diff --git a/filters/tar/tar.c b/filters/tar/tar.c -index f3adb2c46..efe47684d 100644 ---- a/filters/tar/tar.c -+++ b/filters/tar/tar.c -@@ -53,6 +53,7 @@ - #include "utils.h" - - static const char *entry; /* File within tar (tar-entry=...) */ -+static int64_t tar_limit = 0; - static const char *tar_program = "tar"; - - /* Offset and size within tarball. -@@ -76,6 +77,12 @@ tar_config (nbdkit_next_config *next, nbdkit_backend *nxdata, - entry = value; - return 0; - } -+ else if (strcmp (key, "tar-limit") == 0) { -+ tar_limit = nbdkit_parse_size (value); -+ if (tar_limit == -1) -+ return -1; -+ return 0; -+ } - else if (strcmp (key, "tar") == 0) { - tar_program = value; - return 0; -@@ -98,6 +105,7 @@ tar_config_complete (nbdkit_next_config_complete *next, - - #define tar_config_help \ - "tar-entry=<FILENAME> (required) The path inside the tar file to serve.\n" \ -+ "tar-limit=SIZE Limit on reading to find entry.\n" \ - "tar=<PATH> Path of the tar binary." - - static int -@@ -197,6 +205,8 @@ calculate_offset_of_entry (nbdkit_next *next) - copysize = next->get_size (next); - if (copysize == -1) - return -1; -+ if (tar_limit > 0 && copysize > tar_limit) -+ copysize = tar_limit; - - /* Run the tar command. */ - nbdkit_debug ("%s", cmd); -diff --git a/tests/test-tar-limit.sh b/tests/test-tar-limit.sh -new file mode 100755 -index 000000000..168f2c497 ---- /dev/null -+++ b/tests/test-tar-limit.sh -@@ -0,0 +1,65 @@ -+#!/usr/bin/env bash -+# nbdkit -+# Copyright Red Hat -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are -+# met: -+# -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# -+# * Neither the name of Red Hat nor the names of its contributors may be -+# used to endorse or promote products derived from this software without -+# specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+# SUCH DAMAGE. -+ -+# Test the tar filter and tar-limit filter. -+ -+source ./functions.sh -+set -e -+set -x -+ -+requires test -f disk -+requires tar --version -+requires test -f disk -+requires_nbdinfo -+ -+tar_bad=tar-limit-bad.tar -+tar_good=tar-limit-good.tar -+tar_filler=tar-limit-filler.img -+files="$tar_bad $tar_good $tar_filler" -+rm -f $files -+cleanup_fn rm -f $files -+ -+# Create two tar files, one where the disk is located before an -+# arbitrary boundary and one after. -+truncate -s 1M $tar_filler -+tar cf $tar_good disk -+tar cf $tar_bad $tar_filler disk -+ -+# Check we can read the good disk and reject the bad disk. -+cmd="nbdkit -U - file --filter=tar tar-entry=disk tar-limit=131072" -+ -+$cmd $tar_good --run 'nbdinfo "$uri"' -+ -+if $cmd $tar_bad --run 'nbdinfo "$uri"' ; then -+ echo "ERROR: $0: expected $tar_bad to fail" -+ exit 1 -+fi --- -2.41.0 - diff --git a/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch b/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch deleted file mode 100644 index cf99a97..0000000 --- a/0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 35db543e38293808e910b291ff26b17284640ec9 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 19 Jun 2023 13:53:09 +0100 -Subject: [PATCH 04/16] xz: Fix error message to refer to xz-max-block - parameter - -In the original xz plugin the parameter was called "maxblock", but -when we converted the plugin to a filter (commit c879d31047 "Rewrite -xz plugin as a filter.") we changed the parameter name to -"xz-max-block" but retained the old name in the error message. - -Fixes: commit c879d31047ae149cedabd5abbdb0a95e610f01c5 ---- - filters/xz/xz.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/filters/xz/xz.c b/filters/xz/xz.c -index 0c92cfff4..21e8993b5 100644 ---- a/filters/xz/xz.c -+++ b/filters/xz/xz.c -@@ -143,12 +143,12 @@ xz_prepare (nbdkit_next *next, void *handle, - return -1; - - if (maxblock < xzfile_max_uncompressed_block_size (h->xz)) { -- nbdkit_error ("xz file largest block is bigger than maxblock\n" -+ nbdkit_error ("xz file largest block is bigger than xz-max-block\n" - "Either recompress the xz file with smaller blocks " - "(see nbdkit-xz-filter(1))\n" -- "or make maxblock parameter bigger.\n" -- "maxblock = %" PRIu64 " (bytes)\n" -- "largest block in xz file = %" PRIu64 " (bytes)", -+ "or make xz-max-block parameter bigger.\n" -+ "Current xz-max-block = %" PRIu64 " (bytes)\n" -+ "Largest block in xz file = %" PRIu64 " (bytes)", - maxblock, - xzfile_max_uncompressed_block_size (h->xz)); - return -1; --- -2.41.0 - diff --git a/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch b/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch deleted file mode 100644 index ec9999d..0000000 --- a/0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4398b1871f8832109fcdbe25c70a1dd341ed5bd4 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 13:05:22 +0100 -Subject: [PATCH 05/16] configure: Recommend using -g with OCAMLOPTFLAGS - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index c1d83a568..39b58b44e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -935,8 +935,8 @@ AC_SUBST([PYTHON_LDFLAGS]) - - dnl For the OCaml plugin, you can set OCAMLOPTFLAGS before running - dnl ./configure to specify any extra flags you want to pass to --dnl ocamlopt. For example to enable OCaml warnings: --dnl OCAMLOPTFLAGS="-warn-error +A-3" -+dnl ocamlopt. For example to enable debug symbols & warnings: -+dnl OCAMLOPTFLAGS="-g -warn-error +A-3" - AC_SUBST([OCAMLOPTFLAGS]) - - dnl Check for OCaml, for embedding in the ocaml plugin. --- -2.41.0 - diff --git a/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch b/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch deleted file mode 100644 index 5c75615..0000000 --- a/0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b53b78e542fe8e49ce5c670e8ddc9d2be66f73cc Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 18:47:40 +0100 -Subject: [PATCH 06/16] tests/test_ocaml_plugin.ml: Print a message when test - plugin initializes - -It's useful to have a message which is printed as the top level -statements in the plugin module are being initialized, for debugging -purposes. ---- - tests/test_ocaml_plugin.ml | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/tests/test_ocaml_plugin.ml b/tests/test_ocaml_plugin.ml -index 561a8690f..f8eed4f7f 100644 ---- a/tests/test_ocaml_plugin.ml -+++ b/tests/test_ocaml_plugin.ml -@@ -30,6 +30,11 @@ - * SUCH DAMAGE. - *) - -+(* Print something during module initialization, useful for debugging -+ * obscure OCaml startup issues. -+ *) -+let () = Printf.eprintf "test_ocaml_plugin.ml: module initializing\n%!" -+ - let sector_size = 512 - let nr_sectors = 2048 - --- -2.41.0 - diff --git a/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch b/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch deleted file mode 100644 index 049cfb4..0000000 --- a/0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch +++ /dev/null @@ -1,124 +0,0 @@ -From b778c56443e11817d4974dcab5356e2d4065980b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 18:56:58 +0100 -Subject: [PATCH 07/16] ocaml: Add -I +unix before using unix.cmxa - -In OCaml 5.0 you will see this warning: - - Alert ocaml_deprecated_auto_include: - OCaml's lib directory layout changed in 5.0. The unix subdirectory has been - automatically added to the search path, but you should add -I +unix to the - command-line to silence this alert (e.g. by adding unix to the list of - libraries in your dune file, or adding use_unix to your _tags file for - ocamlbuild, or using -package unix for ocamlfind). - -Using -I +unix doesn't hurt earlier versions, as the directory is just -ignored if it doesn't exist, and anyway findlib adds the directory if -you're using that. ---- - plugins/cc/nbdkit-cc-plugin.pod | 4 ++-- - plugins/ocaml/nbdkit-ocaml-plugin.pod | 2 +- - plugins/ocaml/Makefile.am | 2 +- - tests/Makefile.am | 4 ++-- - tests/test-cc-ocaml.sh | 2 +- - tests/cc_shebang.ml | 2 +- - 6 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod -index 412233797..f55f74ab0 100644 ---- a/plugins/cc/nbdkit-cc-plugin.pod -+++ b/plugins/cc/nbdkit-cc-plugin.pod -@@ -89,7 +89,7 @@ C<CC=g++> as a parameter to exec nbdkit. - =head2 Using this plugin with OCaml - - nbdkit cc CC=ocamlopt \ -- CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - source.ml - - OCaml plugin scripts can be created using this trick: -@@ -97,7 +97,7 @@ OCaml plugin scripts can be created using this trick: - (*/.)>/dev/null 2>&1 - exec nbdkit cc "$0" \ - CC=ocamlopt \ -- CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - "$@" - *) - (* followed by OCaml code for the plugin here *) -diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod -index dc8260174..e4a8cf0b0 100644 ---- a/plugins/ocaml/nbdkit-ocaml-plugin.pod -+++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod -@@ -53,7 +53,7 @@ using this command: - - ocamlopt.opt -output-obj -runtime-variant _pic \ - -o nbdkit-myplugin-plugin.so \ -- unix.cmxa NBDKit.cmx myplugin.ml \ -+ -I +unix unix.cmxa NBDKit.cmx myplugin.ml \ - -cclib -lnbdkitocaml - - You can then use C<nbdkit-myplugin-plugin.so> as an nbdkit plugin (see -diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am -index da1b1ec96..e7faae506 100644 ---- a/plugins/ocaml/Makefile.am -+++ b/plugins/ocaml/Makefile.am -@@ -84,7 +84,7 @@ noinst_SCRIPTS = nbdkit-ocamlexample-plugin.so - nbdkit-ocamlexample-plugin.so: example.cmx libnbdkitocaml.la NBDKit.cmi NBDKit.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) \ - -output-obj -runtime-variant _pic -o $@ \ -- unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa NBDKit.cmx $< \ - -cclib -L.libs -cclib -lnbdkitocaml - example.cmx: example.ml NBDKit.cmi NBDKit.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< -o $@ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index f2912aa93..d8a640e1e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1185,7 +1185,7 @@ OCAML_PLUGIN_DEPS = \ - test-ocaml-plugin.so: test_ocaml_plugin.cmx $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ - -output-obj -runtime-variant _pic -o $@ \ -- unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa NBDKit.cmx $< \ - -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml - test_ocaml_plugin.cmx: test_ocaml_plugin.ml $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml -c $< -o $@ -@@ -1194,7 +1194,7 @@ test-ocaml-errorcodes-plugin.so: \ - test_ocaml_errorcodes_plugin.cmx $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ - -output-obj -runtime-variant _pic -o $@ \ -- unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa NBDKit.cmx $< \ - -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml - test_ocaml_errorcodes_plugin.cmx: \ - test_ocaml_errorcodes_plugin.ml $(OCAML_PLUGIN_DEPS) -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index 659fa195e..3b4f6a553 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -61,6 +61,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ -- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) -diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml -index d78d76618..619b08bb5 100755 ---- a/tests/cc_shebang.ml -+++ b/tests/cc_shebang.ml -@@ -4,7 +4,7 @@ - # shell as an impossible command which is ignored. The line below is - # run by the shell and ignored by OCaml. - --exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" -+exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" - *) - - open Printf --- -2.41.0 - diff --git a/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch b/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch deleted file mode 100644 index cb00591..0000000 --- a/0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch +++ /dev/null @@ -1,468 +0,0 @@ -From f8b761c62f177176dfe154a95824576eef740827 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 19:07:00 +0100 -Subject: [PATCH 08/16] ocaml: Replace caml_leave_blocking_section with - caml_acquire_runtime_system - -Replace: - - caml_leave_blocking_section - ... - caml_enter_blocking_section - -with the more sensibly named (and equivalent): - - caml_acquire_runtime_system - ... - caml_release_runtime_system - -In addition we must release the runtime system just after caml_startup -and only acquire it around callbacks into OCaml code. (The reason for -this is only apparent in a later commit.) - -OCaml 5 is more strict than earlier versions of OCaml and actually -implements the locks using pthread_mutex_t. So in OCaml 5 you will -see a deadlock error: - - Fatal error: Fatal error during lock: Resource deadlock avoided - -which was caused by attempting to double lock (ie. trying to acquire -the lock, when we already held it from caml_startup). - -Also because of additional strictness we must acquire the lock even -before creating the stack frame with CAMLparam* functions. ---- - plugins/ocaml/plugin.h | 16 ++++----- - plugins/ocaml/plugin.c | 75 +++++++++++++++++++++++------------------- - 2 files changed, 49 insertions(+), 42 deletions(-) - -diff --git a/plugins/ocaml/plugin.h b/plugins/ocaml/plugin.h -index 572c43c04..3d6d27db1 100644 ---- a/plugins/ocaml/plugin.h -+++ b/plugins/ocaml/plugin.h -@@ -47,18 +47,18 @@ caml_alloc_initialized_string (mlsize_t len, const char *p) - #endif - - /* For functions which call into OCaml code, call -- * caml_leave_blocking_section() to prevent other threads running, -- * then caml_enter_blocking_section() on return to C code. This macro -- * ensures that the calls are paired properly. -+ * caml_acquire_runtime_system ... caml_release_runtime_system around -+ * the code. This prevents other threads in the same domain running. -+ * The macro ensures that the calls are paired properly. - */ --#define LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE() \ -- __attribute__ ((unused, cleanup (cleanup_enter_blocking_section))) \ -+#define ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE() \ -+ __attribute__ ((unused, cleanup (cleanup_release_runtime_system))) \ - int _unused; \ -- caml_leave_blocking_section () -+ caml_acquire_runtime_system () - static inline void --cleanup_enter_blocking_section (int *unused) -+cleanup_release_runtime_system (int *unused) - { -- caml_enter_blocking_section (); -+ caml_release_runtime_system (); - } - - #endif /* NBDKIT_OCAML_PLUGIN_H */ -diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c -index 722b95e49..fe781f9af 100644 ---- a/plugins/ocaml/plugin.c -+++ b/plugins/ocaml/plugin.c -@@ -64,6 +64,12 @@ constructor (void) - - /* Initialize OCaml runtime. */ - caml_startup (argv); -+ -+ /* We need to release the runtime system here so other threads may -+ * use it. Before we call any OCaml callbacks we must acquire the -+ * runtime system again. -+ */ -+ caml_release_runtime_system (); - } - - /* Instead of using the NBDKIT_REGISTER_PLUGIN macro, we construct the -@@ -113,7 +119,7 @@ plugin_init (void) - static void - load_wrapper (void) - { -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - caml_callback (load_fn, Val_unit); - } - -@@ -123,8 +129,9 @@ load_wrapper (void) - static void - unload_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); -+ - if (unload_fn) { -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - caml_callback (unload_fn, Val_unit); - } - -@@ -139,9 +146,9 @@ unload_wrapper (void) - static void - dump_plugin_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (dump_plugin_fn, Val_unit); - if (Is_exception_result (rv)) -@@ -152,9 +159,9 @@ dump_plugin_wrapper (void) - static int - config_wrapper (const char *key, const char *val) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal3 (keyv, valv, rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - keyv = caml_copy_string (key); - valv = caml_copy_string (val); -@@ -171,9 +178,9 @@ config_wrapper (const char *key, const char *val) - static int - config_complete_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (config_complete_fn, Val_unit); - if (Is_exception_result (rv)) { -@@ -187,9 +194,9 @@ config_complete_wrapper (void) - static int - thread_model_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (thread_model_fn, Val_unit); - if (Is_exception_result (rv)) { -@@ -203,9 +210,9 @@ thread_model_wrapper (void) - static int - get_ready_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (get_ready_fn, Val_unit); - if (Is_exception_result (rv)) { -@@ -219,9 +226,9 @@ get_ready_wrapper (void) - static int - after_fork_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (after_fork_fn, Val_unit); - if (Is_exception_result (rv)) { -@@ -235,9 +242,9 @@ after_fork_wrapper (void) - static void - cleanup_wrapper (void) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (cleanup_fn, Val_unit); - if (Is_exception_result (rv)) { -@@ -251,9 +258,9 @@ cleanup_wrapper (void) - static int - preconnect_wrapper (int readonly) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (preconnect_fn, Val_bool (readonly)); - if (Is_exception_result (rv)) { -@@ -267,9 +274,9 @@ preconnect_wrapper (int readonly) - static int - list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal2 (rv, v); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback2_exn (list_exports_fn, Val_bool (readonly), - Val_bool (is_tls)); -@@ -299,10 +306,10 @@ list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) - static const char * - default_export_wrapper (int readonly, int is_tls) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); - const char *name; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback2_exn (default_export_fn, Val_bool (readonly), - Val_bool (is_tls)); -@@ -318,10 +325,10 @@ default_export_wrapper (int readonly, int is_tls) - static void * - open_wrapper (int readonly) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); - value *ret; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (open_fn, Val_bool (readonly)); - if (Is_exception_result (rv)) { -@@ -341,9 +348,9 @@ open_wrapper (int readonly) - static void - close_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (close_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -360,10 +367,10 @@ close_wrapper (void *h) - static const char * - export_description_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); - const char *desc; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (export_description_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -378,10 +385,10 @@ export_description_wrapper (void *h) - static int64_t - get_size_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); - int64_t r; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (get_size_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -397,11 +404,11 @@ static int - block_size_wrapper (void *h, - uint32_t *minimum, uint32_t *preferred, uint32_t *maximum) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); - int i; - int64_t i64; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (block_size_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -439,9 +446,9 @@ block_size_wrapper (void *h, - static int - can_write_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_write_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -455,9 +462,9 @@ can_write_wrapper (void *h) - static int - can_flush_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_flush_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -471,9 +478,9 @@ can_flush_wrapper (void *h) - static int - is_rotational_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (is_rotational_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -487,9 +494,9 @@ is_rotational_wrapper (void *h) - static int - can_trim_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_trim_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -503,9 +510,9 @@ can_trim_wrapper (void *h) - static int - can_zero_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_zero_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -519,9 +526,9 @@ can_zero_wrapper (void *h) - static int - can_fua_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_fua_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -535,9 +542,9 @@ can_fua_wrapper (void *h) - static int - can_fast_zero_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_fast_zero_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -551,9 +558,9 @@ can_fast_zero_wrapper (void *h) - static int - can_cache_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_cache_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -567,9 +574,9 @@ can_cache_wrapper (void *h) - static int - can_extents_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_extents_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -583,9 +590,9 @@ can_extents_wrapper (void *h) - static int - can_multi_conn_wrapper (void *h) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - rv = caml_callback_exn (can_multi_conn_fn, *(value *) h); - if (Is_exception_result (rv)) { -@@ -629,10 +636,10 @@ static int - pread_wrapper (void *h, void *buf, uint32_t count, uint64_t offset, - uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); - mlsize_t len; -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - countv = Val_int (count); - offsetv = caml_copy_int64 (offset); -@@ -659,9 +666,9 @@ static int - pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, - uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, strv, offsetv, flagsv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - strv = caml_alloc_initialized_string (count, buf); - offsetv = caml_copy_int64 (offset); -@@ -680,9 +687,9 @@ pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, - static int - flush_wrapper (void *h, uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal2 (rv, flagsv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - flagsv = Val_flags (flags); - -@@ -698,9 +705,9 @@ flush_wrapper (void *h, uint32_t flags) - static int - trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - countv = caml_copy_int64 (count); - offsetv = caml_copy_int64 (offset); -@@ -719,9 +726,9 @@ trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - static int - zero_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - countv = caml_copy_int64 (count); - offsetv = caml_copy_int64 (offset); -@@ -741,9 +748,9 @@ static int - extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, - struct nbdkit_extents *extents) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal5 (rv, countv, offsetv, flagsv, v); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - countv = caml_copy_int64 (count); - offsetv = caml_copy_int64 (offset); -@@ -781,9 +788,9 @@ extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, - static int - cache_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -- LEAVE_BLOCKING_SECTION_FOR_CURRENT_SCOPE (); - - countv = caml_copy_int64 (count); - offsetv = caml_copy_int64 (offset); --- -2.41.0 - diff --git a/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch b/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch deleted file mode 100644 index acb9bc5..0000000 --- a/0009-ocaml-Always-unregister-the-global-root-and-free-the.patch +++ /dev/null @@ -1,65 +0,0 @@ -From f4d5f179c9be6db3c39bc0752e36f262c3f87716 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 20:15:46 +0100 -Subject: [PATCH 09/16] ocaml: Always unregister the global root and free the - handle - -If the OCaml code did not provide a close method, we would never call -close_wrapper, and then we ended up leaking the global root and handle. ---- - plugins/ocaml/plugin.c | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c -index fe781f9af..a4671d6ed 100644 ---- a/plugins/ocaml/plugin.c -+++ b/plugins/ocaml/plugin.c -@@ -76,6 +76,7 @@ constructor (void) - * nbdkit_plugin struct and return it from our own plugin_init - * function. - */ -+static void close_wrapper (void *h); - static void unload_wrapper (void); - static void free_strings (void); - static void remove_roots (void); -@@ -92,6 +93,10 @@ static struct nbdkit_plugin plugin = { - */ - .name = NULL, - -+ /* We always call these, even if the OCaml code does not provide a -+ * callback. -+ */ -+ .close = close_wrapper, - .unload = unload_wrapper, - }; - -@@ -345,6 +350,9 @@ open_wrapper (int readonly) - CAMLreturnT (void *, ret); - } - -+/* We always have a close function, since we need to unregister the -+ * global root and free the handle. -+ */ - static void - close_wrapper (void *h) - { -@@ -352,10 +360,12 @@ close_wrapper (void *h) - CAMLparam0 (); - CAMLlocal1 (rv); - -- rv = caml_callback_exn (close_fn, *(value *) h); -- if (Is_exception_result (rv)) { -- nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); -- /*FALLTHROUGH*/ -+ if (close_fn) { -+ rv = caml_callback_exn (close_fn, *(value *) h); -+ if (Is_exception_result (rv)) { -+ nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); -+ /*FALLTHROUGH*/ -+ } - } - - caml_remove_generational_global_root (h); --- -2.41.0 - diff --git a/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch b/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch deleted file mode 100644 index ebf111c..0000000 --- a/0010-ocaml-Fix-thread-registration-for-OCaml-5.patch +++ /dev/null @@ -1,375 +0,0 @@ -From 9d4b87e0338d45456c0506fd2c25b80f7ef6b1e1 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 21 Jun 2023 20:18:58 +0100 -Subject: [PATCH 10/16] ocaml: Fix thread registration for OCaml 5 - -OCaml 5 is strict about registering threads before calling OCaml heap -functions, and will abort the program with this error if you don't do -this correctly: - - Fatal error: no domain lock held - -Fix this as explained in the comment. - -Note (as it's not explained well in the documentation): Threads -created from C are placed in OCaml thread domain 0. In order to add -them to this domain, the main program must not hold on to the runtime -system lock (for domain 0, because that's what caml_startup gives -you). For this to work we must only hold this lock in the main -program briefly around calls to OCaml code, which means we must -release the runtime system after calling caml_startup as we did in an -earlier commit. ---- - plugins/cc/nbdkit-cc-plugin.pod | 4 +-- - plugins/ocaml/nbdkit-ocaml-plugin.pod | 3 +- - plugins/ocaml/Makefile.am | 2 +- - tests/Makefile.am | 4 +-- - plugins/ocaml/plugin.c | 52 +++++++++++++++++++++++++-- - tests/test-cc-ocaml.sh | 2 +- - tests/cc_shebang.ml | 2 +- - 7 files changed, 59 insertions(+), 10 deletions(-) - -diff --git a/plugins/cc/nbdkit-cc-plugin.pod b/plugins/cc/nbdkit-cc-plugin.pod -index f55f74ab0..e393457c4 100644 ---- a/plugins/cc/nbdkit-cc-plugin.pod -+++ b/plugins/cc/nbdkit-cc-plugin.pod -@@ -89,7 +89,7 @@ C<CC=g++> as a parameter to exec nbdkit. - =head2 Using this plugin with OCaml - - nbdkit cc CC=ocamlopt \ -- CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - source.ml - - OCaml plugin scripts can be created using this trick: -@@ -97,7 +97,7 @@ OCaml plugin scripts can be created using this trick: - (*/.)>/dev/null 2>&1 - exec nbdkit cc "$0" \ - CC=ocamlopt \ -- CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - "$@" - *) - (* followed by OCaml code for the plugin here *) -diff --git a/plugins/ocaml/nbdkit-ocaml-plugin.pod b/plugins/ocaml/nbdkit-ocaml-plugin.pod -index e4a8cf0b0..f1e06d3e2 100644 ---- a/plugins/ocaml/nbdkit-ocaml-plugin.pod -+++ b/plugins/ocaml/nbdkit-ocaml-plugin.pod -@@ -53,7 +53,8 @@ using this command: - - ocamlopt.opt -output-obj -runtime-variant _pic \ - -o nbdkit-myplugin-plugin.so \ -- -I +unix unix.cmxa NBDKit.cmx myplugin.ml \ -+ -I +unix unix.cmxa -I +threads threads.cmxa \ -+ NBDKit.cmx myplugin.ml \ - -cclib -lnbdkitocaml - - You can then use C<nbdkit-myplugin-plugin.so> as an nbdkit plugin (see -diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am -index e7faae506..a61550cb9 100644 ---- a/plugins/ocaml/Makefile.am -+++ b/plugins/ocaml/Makefile.am -@@ -84,7 +84,7 @@ noinst_SCRIPTS = nbdkit-ocamlexample-plugin.so - nbdkit-ocamlexample-plugin.so: example.cmx libnbdkitocaml.la NBDKit.cmi NBDKit.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) \ - -output-obj -runtime-variant _pic -o $@ \ -- -I +unix unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ - -cclib -L.libs -cclib -lnbdkitocaml - example.cmx: example.ml NBDKit.cmi NBDKit.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< -o $@ -diff --git a/tests/Makefile.am b/tests/Makefile.am -index d8a640e1e..32ebb7002 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1185,7 +1185,7 @@ OCAML_PLUGIN_DEPS = \ - test-ocaml-plugin.so: test_ocaml_plugin.cmx $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ - -output-obj -runtime-variant _pic -o $@ \ -- -I +unix unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ - -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml - test_ocaml_plugin.cmx: test_ocaml_plugin.ml $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml -c $< -o $@ -@@ -1194,7 +1194,7 @@ test-ocaml-errorcodes-plugin.so: \ - test_ocaml_errorcodes_plugin.cmx $(OCAML_PLUGIN_DEPS) - $(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../plugins/ocaml \ - -output-obj -runtime-variant _pic -o $@ \ -- -I +unix unix.cmxa NBDKit.cmx $< \ -+ -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx $< \ - -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml - test_ocaml_errorcodes_plugin.cmx: \ - test_ocaml_errorcodes_plugin.ml $(OCAML_PLUGIN_DEPS) -diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c -index a4671d6ed..eaa88a925 100644 ---- a/plugins/ocaml/plugin.c -+++ b/plugins/ocaml/plugin.c -@@ -260,9 +260,31 @@ cleanup_wrapper (void) - CAMLreturn0; - } - -+/* A note about nbdkit threads and OCaml: -+ * -+ * OCaml requires that all C threads are registered and unregistered. -+ * -+ * For the main thread callbacks like load, config, get_ready [above -+ * this comment] we don't need to do anything. -+ * -+ * For the connected callbacks [below this comment] nbdkit creates its -+ * own threads but does not provide a way to intercept thread creation -+ * or destruction. However we can register the current thread in -+ * every callback, and unregister the thread only call_wrapper. -+ * -+ * This is safe and cheap: Registering a thread is basically free if -+ * the thread is already registered (the OCaml code checks a -+ * thread-local variable to see if it needs to register). nbdkit will -+ * always call the .close method, which does not necessarily indicate -+ * that the thread is being destroyed, but if the thread is reused we -+ * will register the same thread again when .open or similar is called -+ * next time. -+ */ -+ - static int - preconnect_wrapper (int readonly) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -279,6 +301,7 @@ preconnect_wrapper (int readonly) - static int - list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal2 (rv, v); -@@ -311,6 +334,7 @@ list_exports_wrapper (int readonly, int is_tls, struct nbdkit_exports *exports) - static const char * - default_export_wrapper (int readonly, int is_tls) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -330,6 +354,7 @@ default_export_wrapper (int readonly, int is_tls) - static void * - open_wrapper (int readonly) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -351,12 +376,13 @@ open_wrapper (int readonly) - } - - /* We always have a close function, since we need to unregister the -- * global root and free the handle. -+ * global root, free the handle and unregister the thread. - */ - static void - close_wrapper (void *h) - { -- ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); -+ caml_c_thread_register (); -+ caml_acquire_runtime_system (); - CAMLparam0 (); - CAMLlocal1 (rv); - -@@ -370,6 +396,8 @@ close_wrapper (void *h) - - caml_remove_generational_global_root (h); - free (h); -+ caml_release_runtime_system (); -+ caml_c_thread_unregister (); - - CAMLreturn0; - } -@@ -377,6 +405,7 @@ close_wrapper (void *h) - static const char * - export_description_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -395,6 +424,7 @@ export_description_wrapper (void *h) - static int64_t - get_size_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -414,6 +444,7 @@ static int - block_size_wrapper (void *h, - uint32_t *minimum, uint32_t *preferred, uint32_t *maximum) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -456,6 +487,7 @@ block_size_wrapper (void *h, - static int - can_write_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -472,6 +504,7 @@ can_write_wrapper (void *h) - static int - can_flush_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -488,6 +521,7 @@ can_flush_wrapper (void *h) - static int - is_rotational_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -504,6 +538,7 @@ is_rotational_wrapper (void *h) - static int - can_trim_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -520,6 +555,7 @@ can_trim_wrapper (void *h) - static int - can_zero_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -536,6 +572,7 @@ can_zero_wrapper (void *h) - static int - can_fua_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -552,6 +589,7 @@ can_fua_wrapper (void *h) - static int - can_fast_zero_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -568,6 +606,7 @@ can_fast_zero_wrapper (void *h) - static int - can_cache_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -584,6 +623,7 @@ can_cache_wrapper (void *h) - static int - can_extents_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -600,6 +640,7 @@ can_extents_wrapper (void *h) - static int - can_multi_conn_wrapper (void *h) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal1 (rv); -@@ -646,6 +687,7 @@ static int - pread_wrapper (void *h, void *buf, uint32_t count, uint64_t offset, - uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -@@ -676,6 +718,7 @@ static int - pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, - uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, strv, offsetv, flagsv); -@@ -697,6 +740,7 @@ pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, - static int - flush_wrapper (void *h, uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal2 (rv, flagsv); -@@ -715,6 +759,7 @@ flush_wrapper (void *h, uint32_t flags) - static int - trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -@@ -736,6 +781,7 @@ trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - static int - zero_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -@@ -758,6 +804,7 @@ static int - extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, - struct nbdkit_extents *extents) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal5 (rv, countv, offsetv, flagsv, v); -@@ -798,6 +845,7 @@ extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, - static int - cache_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) - { -+ caml_c_thread_register (); - ACQUIRE_RUNTIME_FOR_CURRENT_SCOPE (); - CAMLparam0 (); - CAMLlocal4 (rv, countv, offsetv, flagsv); -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index 3b4f6a553..9458201a4 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -61,6 +61,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ -- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) -diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml -index 619b08bb5..05ca77b64 100755 ---- a/tests/cc_shebang.ml -+++ b/tests/cc_shebang.ml -@@ -4,7 +4,7 @@ - # shell as an impossible command which is ignored. The line below is - # run by the shell and ignored by OCaml. - --exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" -+exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" - *) - - open Printf --- -2.41.0 - diff --git a/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch b/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch deleted file mode 100644 index 47186fb..0000000 --- a/0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c78266258709e2cbe6f0e869c866d09ad72c072c Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 22 Jun 2023 10:33:31 +0100 -Subject: [PATCH 11/16] tests/test-cc-ocaml.sh: Use nbdkit -v option to help - with debugging - ---- - tests/test-cc-ocaml.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index 9458201a4..fc1335591 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -60,7 +60,7 @@ out=test-cc-ocaml.out - cleanup_fn rm -f $out - rm -f $out - --nbdkit -U - cc $script a=1 b=2 c=3 d=4 \ -+nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ - CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) --- -2.41.0 - diff --git a/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch b/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch deleted file mode 100644 index 2d783f0..0000000 --- a/0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch +++ /dev/null @@ -1,324 +0,0 @@ -From d968c4858847388e515bc1ef84ff4479c18a414d Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 22 Jun 2023 10:44:10 +0100 -Subject: [PATCH 12/16] tests: Replace $SRCDIR with $abs_top_srcdir - -functions.sh defines $abs_top_srcdir so there's no need to use $SRCDIR -in any test scripts. ---- - tests/test-cc-cpp.sh | 9 ++------- - tests/test-cc-ocaml.sh | 9 ++------- - tests/test-cc.sh | 9 ++------- - tests/test-python-exception.sh | 12 +++++------- - tests/test-python-export-list.sh | 8 +++----- - tests/test-python-export-name.sh | 8 +++----- - tests/test-python-thread-model.sh | 13 +++++-------- - tests/test-read-password-interactive.sh | 2 +- - tests/test-read-password.sh | 2 +- - tests/test-shebang-cc-ocaml.sh | 3 +-- - tests/test-shebang-cc.sh | 5 ++--- - tests/test-shebang-perl.sh | 4 ++-- - tests/test-shebang-python.sh | 4 ++-- - 13 files changed, 31 insertions(+), 57 deletions(-) - -diff --git a/tests/test-cc-cpp.sh b/tests/test-cc-cpp.sh -index 9a4c16242..7c7bf6353 100755 ---- a/tests/test-cc-cpp.sh -+++ b/tests/test-cc-cpp.sh -@@ -37,12 +37,7 @@ source ./functions.sh - set -e - set -x - --if test "$SRCDIR" = ""; then -- echo "$0: \$SRCDIR is not set" -- exit 1 --fi -- --script=$SRCDIR/test-cc-cpp.cpp -+script=$abs_top_srcdir/tests/test-cc-cpp.cpp - if test ! -f "$script"; then - echo "$0: could not locate test-cc-cpp.cpp" - exit 1 -@@ -59,6 +54,6 @@ rm -f $out - - nbdkit -U - cc $script \ - CC="$CXX" \ -- EXTRA_CFLAGS="-I$SRCDIR/../include" \ -+ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((100 * 1024 * 1024)) -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index fc1335591..db7d252cf 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -37,12 +37,7 @@ source ./functions.sh - set -e - set -x - --if test "$SRCDIR" = ""; then -- echo "$0: \$SRCDIR is not set" -- exit 1 --fi -- --script=$SRCDIR/test_ocaml_plugin.ml -+script=$abs_top_srcdir/tests/test_ocaml_plugin.ml - if test ! -f "$script"; then - echo "$0: could not locate test_ocaml_plugin.ml" - exit 1 -@@ -61,6 +56,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ -- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $SRCDIR/../plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) -diff --git a/tests/test-cc.sh b/tests/test-cc.sh -index 2a719d314..5214327bd 100755 ---- a/tests/test-cc.sh -+++ b/tests/test-cc.sh -@@ -37,12 +37,7 @@ source ./functions.sh - set -e - set -x - --if test "$SRCDIR" = ""; then -- echo "$0: \$SRCDIR is not set" -- exit 1 --fi -- --script=$SRCDIR/cc-shebang.c -+script=$abs_top_srcdir/tests/cc-shebang.c - if test ! -f "$script"; then - echo "$0: could not locate cc-shebang.c" - exit 1 -@@ -57,6 +52,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -U - cc $script \ -- EXTRA_CFLAGS="-I$SRCDIR/../include" \ -+ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((100 * 1024 * 1024)) -diff --git a/tests/test-python-exception.sh b/tests/test-python-exception.sh -index a9fb146a6..54c29e66e 100755 ---- a/tests/test-python-exception.sh -+++ b/tests/test-python-exception.sh -@@ -34,23 +34,21 @@ source ./functions.sh - set -e - set -x - --if test ! -d "$SRCDIR"; then -- echo "$0: could not locate python-exception.py" -- exit 1 --fi -- - skip_if_valgrind "because Python code leaks memory" - -+script=$abs_top_srcdir/tests/python-exception.py -+test -f "$script" -+ - output=test-python-exception.out - rm -f $output - cleanup_fn rm -f $output - --nbdkit -f -v python $SRCDIR/python-exception.py test=simple > $output 2>&1 ||: -+nbdkit -f -v python $script test=simple > $output 2>&1 ||: - cat $output - - grep 'this is the test string' $output - --nbdkit -f -v python $SRCDIR/python-exception.py test=traceback > $output 2>&1 ||: -+nbdkit -f -v python $script test=traceback > $output 2>&1 ||: - cat $output - - grep 'raise_error1' $output -diff --git a/tests/test-python-export-list.sh b/tests/test-python-export-list.sh -index 49ca62e49..08774b9f3 100755 ---- a/tests/test-python-export-list.sh -+++ b/tests/test-python-export-list.sh -@@ -34,10 +34,8 @@ source ./functions.sh - set -e - set -x - --if test ! -d "$SRCDIR"; then -- echo "$0: could not locate python-export-list.py" -- exit 1 --fi -+script=$abs_top_srcdir/tests/python-export-list.py -+test -f "$script" - - skip_if_valgrind "because Python code leaks memory" - requires_nbdinfo -@@ -52,7 +50,7 @@ files="$pid $sock $out" - rm -f $files - cleanup_fn rm -f $files - --start_nbdkit -P $pid -U $sock python $SRCDIR/python-export-list.py -+start_nbdkit -P $pid -U $sock python $script - - nbdinfo --list --json nbd+unix://\?socket=$sock > $out - cat $out -diff --git a/tests/test-python-export-name.sh b/tests/test-python-export-name.sh -index 99f292d2a..7680ae1e0 100755 ---- a/tests/test-python-export-name.sh -+++ b/tests/test-python-export-name.sh -@@ -34,10 +34,8 @@ source ./functions.sh - set -e - set -x - --if test ! -d "$SRCDIR"; then -- echo "$0: could not locate python-export-name.py" -- exit 1 --fi -+script=$abs_top_srcdir/tests/python-export-name.py -+test -f "$script" - - skip_if_valgrind "because Python code leaks memory" - requires nbdsh --version -@@ -48,7 +46,7 @@ files="$pid $sock" - rm -f $files - cleanup_fn rm -f $files - --start_nbdkit -P $pid -U $sock python $SRCDIR/python-export-name.py -+start_nbdkit -P $pid -U $sock python $script - - # Try to read back various export names from the plugin. - for e in "" "test" "/" "//" " " "/ " "?" "テスト" "-n" '\\' $'\n' "%%" \ -diff --git a/tests/test-python-thread-model.sh b/tests/test-python-thread-model.sh -index 69b3d5c76..a0dea2386 100755 ---- a/tests/test-python-thread-model.sh -+++ b/tests/test-python-thread-model.sh -@@ -34,22 +34,19 @@ source ./functions.sh - set -e - set -x - --SCRIPT="$SRCDIR/python-thread-model.py" --if ! test -d "$SRCDIR" || ! test -f "$SCRIPT"; then -- echo "$0: could not locate python-thread-model.py" -- exit 1 --fi -+script="$abs_top_srcdir/tests/python-thread-model.py" -+test -f "$script" - - skip_if_valgrind "because Python code leaks memory" - requires nbdsh --version - - # Check the plugin is loadable. --nbdkit python $SCRIPT --dump-plugin -+nbdkit python $script --dump-plugin - - # This test only works on modern Linux (with pipe2, accept4 etc) where - # we are able to issue parallel requests. Other platforms have more - # restrictive thread models. --requires sh -c "nbdkit python $SCRIPT --dump-plugin | -+requires sh -c "nbdkit python $script --dump-plugin | - grep '^thread_model=parallel'" - - pid=test-python-thread-model.pid -@@ -58,7 +55,7 @@ files="$out $pid $sock" - rm -f $files - cleanup_fn rm -f $files - --start_nbdkit -P $pid -U $sock python $SCRIPT -+start_nbdkit -P $pid -U $sock python $script - - export sock - nbdsh -c ' -diff --git a/tests/test-read-password-interactive.sh b/tests/test-read-password-interactive.sh -index 7af48492b..ee345872e 100755 ---- a/tests/test-read-password-interactive.sh -+++ b/tests/test-read-password-interactive.sh -@@ -36,7 +36,7 @@ set -x - - # This is an executable C script using nbdkit-cc-plugin. - requires_plugin cc --plugin=$SRCDIR/test-read-password-plugin.c -+plugin=$abs_top_srcdir/tests/test-read-password-plugin.c - requires test -x $plugin - - # expect on macOS does not work for unclear reasons, skip it. -diff --git a/tests/test-read-password.sh b/tests/test-read-password.sh -index 234162bc3..d0033dceb 100755 ---- a/tests/test-read-password.sh -+++ b/tests/test-read-password.sh -@@ -36,7 +36,7 @@ set -x - - # This is an executable C script using nbdkit-cc-plugin. - requires_plugin cc --plugin=$SRCDIR/test-read-password-plugin.c -+plugin=$abs_top_srcdir/tests/test-read-password-plugin.c - requires test -x $plugin - - # Since we are matching on error messages. -diff --git a/tests/test-shebang-cc-ocaml.sh b/tests/test-shebang-cc-ocaml.sh -index 41e2f3db5..9eebcf07c 100755 ---- a/tests/test-shebang-cc-ocaml.sh -+++ b/tests/test-shebang-cc-ocaml.sh -@@ -32,8 +32,7 @@ - - source ./functions.sh - --script=$SRCDIR/cc_shebang.ml -- -+script=$abs_top_srcdir/tests/cc_shebang.ml - if test ! -f "$script"; then - echo "$0: could not locate cc_shebang.ml" - exit 1 -diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh -index 6ae75abed..a5e557648 100755 ---- a/tests/test-shebang-cc.sh -+++ b/tests/test-shebang-cc.sh -@@ -35,8 +35,7 @@ - - source ./functions.sh - --script=$SRCDIR/cc-shebang.c -- -+script=$abs_top_srcdir/tests/cc-shebang.c - if test ! -f "$script"; then - echo "$0: could not locate cc-shebang.c" - exit 1 -@@ -46,7 +45,7 @@ requires_plugin cc - requires guestfish --version - - $script -fv -U - \ -- EXTRA_CFLAGS="-I$SRCDIR/../include" \ -+ EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ - --run ' - guestfish \ - add "" protocol:nbd server:unix:$unixsocket : \ -diff --git a/tests/test-shebang-perl.sh b/tests/test-shebang-perl.sh -index 5f35d75b4..65bb7a403 100755 ---- a/tests/test-shebang-perl.sh -+++ b/tests/test-shebang-perl.sh -@@ -34,9 +34,9 @@ source ./functions.sh - - pidfile=shebang-perl.pid - sock=$(mktemp -u /tmp/nbdkit-test-sock.XXXXXX) --script=$SRCDIR/shebang.pl -+script=$abs_top_srcdir/tests/shebang.pl - --if test ! -d "$SRCDIR"; then -+if test ! -f "$script"; then - echo "$0: could not locate shebang.pl" - exit 1 - fi -diff --git a/tests/test-shebang-python.sh b/tests/test-shebang-python.sh -index fb851de94..8674f2fa1 100755 ---- a/tests/test-shebang-python.sh -+++ b/tests/test-shebang-python.sh -@@ -34,9 +34,9 @@ source ./functions.sh - - pidfile=shebang-python.pid - sock=$(mktemp -u /tmp/nbdkit-test-sock.XXXXXX) --script=$SRCDIR/shebang.py -+script=$abs_top_srcdir/tests/shebang.py - --if test ! -d "$SRCDIR"; then -+if test ! -f "$script"; then - echo "$0: could not locate shebang.py" - exit 1 - fi --- -2.41.0 - diff --git a/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch b/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch deleted file mode 100644 index 0d14568..0000000 --- a/0013-tests-test-read-password-Remove-use-of-SRCDIR.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 92ae65f93d8ebeb09500552d7ebfc1e8149ded6f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 22 Jun 2023 10:48:51 +0100 -Subject: [PATCH 13/16] tests/test-read-password*: Remove use of $SRCDIR - -These tests required exporting $abs_top_srcdir so that the plugin -(which is a C script) can use it. ---- - tests/test-read-password-interactive.sh | 3 +++ - tests/test-read-password.sh | 3 +++ - tests/test-read-password-plugin.c | 2 +- - 3 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/tests/test-read-password-interactive.sh b/tests/test-read-password-interactive.sh -index ee345872e..2738922f4 100755 ---- a/tests/test-read-password-interactive.sh -+++ b/tests/test-read-password-interactive.sh -@@ -39,6 +39,9 @@ requires_plugin cc - plugin=$abs_top_srcdir/tests/test-read-password-plugin.c - requires test -x $plugin - -+# This variable is used by $plugin. -+export abs_top_srcdir -+ - # expect on macOS does not work for unclear reasons, skip it. - requires_not test "$(uname)" = "Darwin" - -diff --git a/tests/test-read-password.sh b/tests/test-read-password.sh -index d0033dceb..8243d5491 100755 ---- a/tests/test-read-password.sh -+++ b/tests/test-read-password.sh -@@ -39,6 +39,9 @@ requires_plugin cc - plugin=$abs_top_srcdir/tests/test-read-password-plugin.c - requires test -x $plugin - -+# This variable is used by $plugin. -+export abs_top_srcdir -+ - # Since we are matching on error messages. - export LANG=C - -diff --git a/tests/test-read-password-plugin.c b/tests/test-read-password-plugin.c -index d8faea4e3..397f69d72 100755 ---- a/tests/test-read-password-plugin.c -+++ b/tests/test-read-password-plugin.c -@@ -1,5 +1,5 @@ - #if 0 --exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I${SRCDIR:-.}/../include" -+exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I$abs_top_srcdir/include" - #endif - /* nbdkit - * Copyright Red Hat --- -2.41.0 - diff --git a/0014-tests-Stop-setting-SRCDIR-for-tests.patch b/0014-tests-Stop-setting-SRCDIR-for-tests.patch deleted file mode 100644 index 2ff84a2..0000000 --- a/0014-tests-Stop-setting-SRCDIR-for-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 2e3dcb2a720e4258b54d04ffd081c5159783df8e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 22 Jun 2023 10:50:17 +0100 -Subject: [PATCH 14/16] tests: Stop setting $SRCDIR for tests - -Since no tests use this variable any longer we can stop setting it. - -However note that make-psk.sh still uses the same-named (but not -connected) variable. ---- - tests/Makefile.am | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 32ebb7002..2921076de 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -63,7 +63,6 @@ EXTRA_PROGRAMS = - # Use the 'direct' backend, and ensure maximum libguestfs debugging. - # Enable libnbd debugging. - TESTS_ENVIRONMENT = \ -- SRCDIR=$(srcdir) \ - LIBGUESTFS_ATTACH_METHOD=appliance \ - LIBGUESTFS_DEBUG=1 \ - LIBGUESTFS_TRACE=1 \ --- -2.41.0 - diff --git a/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch b/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch deleted file mode 100644 index e1b9e45..0000000 --- a/0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3e4c1b79a72970c17cb42b21070e61ec634a38bb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 22 Jun 2023 11:15:27 +0100 -Subject: [PATCH 15/16] tests: Explicitly add -L../plugins/ocaml/.libs to find - -lnbdkitocaml - -The actual libnbdkitocaml.so library is located in -plugins/ocaml/.libs, but we were only specifying plugins/ocaml as the -search path. How did it ever work? Turns out using LD_LIBRARY_PATH -set in wrapper.c. It seems unreliable to rely on this, so set the -path properly, as we are already doing elsewhere. ---- - tests/test-cc-ocaml.sh | 2 +- - tests/cc_shebang.ml | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index db7d252cf..97a1c89e3 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -56,6 +56,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -v -U - cc $script a=1 b=2 c=3 d=4 \ -- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" \ -+ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) -diff --git a/tests/cc_shebang.ml b/tests/cc_shebang.ml -index 05ca77b64..57ad85791 100755 ---- a/tests/cc_shebang.ml -+++ b/tests/cc_shebang.ml -@@ -4,7 +4,7 @@ - # shell as an impossible command which is ignored. The line below is - # run by the shell and ignored by OCaml. - --exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -lnbdkitocaml" "$@" -+exec nbdkit cc "$0" CC=ocamlopt CFLAGS="-output-obj -runtime-variant _pic -I +unix unix.cmxa -I +threads threads.cmxa NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" "$@" - *) - - open Printf --- -2.41.0 - diff --git a/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch b/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch deleted file mode 100644 index 0a12e96..0000000 --- a/0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 495708e9d1b396ff450df15d5789b4f6c51f6ebc Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Thu, 13 Jul 2023 11:50:02 +0100 -Subject: [PATCH 16/16] perl: Call PERL_SET_CONTEXT from .open method - -This appears to be necessary with Perl 5.38. ---- - plugins/perl/perl.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/plugins/perl/perl.c b/plugins/perl/perl.c -index d3b7cede2..1d8d0c2b4 100644 ---- a/plugins/perl/perl.c -+++ b/plugins/perl/perl.c -@@ -339,6 +339,21 @@ perl_open (int readonly) - SV *sv; - dSP; - -+ /* -+ * From perlembed(1): -+ * -+ * "PERL_SET_CONTEXT(interp) should also be called whenever "interp" -+ * is used by a thread that did not create it (using either -+ * perl_alloc(), or the more esoteric perl_clone())." -+ * -+ * Since we may be called here from a new thread created within -+ * nbdkit, do this. This is necessary since Perl 5.38. It didn't -+ * seem to make a difference with earlier Perl, but doesn't break -+ * them either. -+ */ -+ -+ PERL_SET_CONTEXT (my_perl); -+ - /* We check in perl_config that this callback is defined. */ - ENTER; - SAVETMPS; --- -2.41.0 - diff --git a/nbdkit.spec b/nbdkit.spec index f916994..d47cae7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,14 +45,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.35-development Name: nbdkit -Version: 1.35.5 -Release: 6%{?dist} +Version: 1.35.6 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -78,25 +78,6 @@ Source3: copy-patches.sh Source4: nbdkit.attr Source5: nbdkit-find-provides -# All upstream patches since 1.35.5 was released. These are needed -# to fix OCaml 5 builds. -Patch: 0001-tests-test-tar-info-Remove-bogus-test-requires-of-gu.patch -Patch: 0002-tar-Document-the-optional-tar-option-in-help-output-.patch -Patch: 0003-tar-Implement-tar-limit.patch -Patch: 0004-xz-Fix-error-message-to-refer-to-xz-max-block-parame.patch -Patch: 0005-configure-Recommend-using-g-with-OCAMLOPTFLAGS.patch -Patch: 0006-tests-test_ocaml_plugin.ml-Print-a-message-when-test.patch -Patch: 0007-ocaml-Add-I-unix-before-using-unix.cmxa.patch -Patch: 0008-ocaml-Replace-caml_leave_blocking_section-with-caml_.patch -Patch: 0009-ocaml-Always-unregister-the-global-root-and-free-the.patch -Patch: 0010-ocaml-Fix-thread-registration-for-OCaml-5.patch -Patch: 0011-tests-test-cc-ocaml.sh-Use-nbdkit-v-option-to-help-w.patch -Patch: 0012-tests-Replace-SRCDIR-with-abs_top_srcdir.patch -Patch: 0013-tests-test-read-password-Remove-use-of-SRCDIR.patch -Patch: 0014-tests-Stop-setting-SRCDIR-for-tests.patch -Patch: 0015-tests-Explicitly-add-L.-plugins-ocaml-.libs-to-find-.patch -Patch: 0016-perl-Call-PERL_SET_CONTEXT-from-.open-method.patch - BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1236,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Jul 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.6-1 +- New upstream development version 1.35.6 + * Thu Jul 13 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.35.5-6 - Perl 5.38 re-rebuild updated packages diff --git a/sources b/sources index a96756c..c6f5d88 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.5.tar.gz) = aa0ddefa6073a20bda78bcc2a4295429a7f2ad98fe3bc3f0b7d6275878b3ec1ffb99e2a4cb0abc470d7c104179de627181ac1afacc991e37114f574f4da2b7d7 -SHA512 (nbdkit-1.35.5.tar.gz.sig) = 170e0d3d7d79811026ad313f1bb315685ba674319c76e42648c14bd0f300f28ec9304eae77e0e4489308229e73ac98469bfb0f2095ee091aa5b26e53f29a0ec0 +SHA512 (nbdkit-1.35.6.tar.gz) = f174429708bf5db232cdb60c6e2f0ec95274af8d28c0db9593c1ff56aa9c56f7fe11ecc298049b6a61b7e49dc2daa1287b5facd2fe364471c8f01640f07251e9 +SHA512 (nbdkit-1.35.6.tar.gz.sig) = baf455715cd446793fb385cc950632e7e33a3d1af6e0cfeb5a23050f2d99b93e2c97a8ad116186ff763c73ac236c10ebcd5befb731bde9c78e3915138cf34a47 From 862741709130efe88f549440ba00b037f507eb48 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 20 Jul 2023 16:21:30 +0000 Subject: [PATCH 527/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org> --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index d47cae7..b9fbaad 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1217,6 +1217,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.35.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Fri Jul 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.6-1 - New upstream development version 1.35.6 From 1d8d0cb3a29b647dee2bc95998baecaee6297da4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 23 Jul 2023 12:47:39 +0100 Subject: [PATCH 528/683] New upstream development version 1.35.7 New nbdkit-qcow2dec-filter. --- nbdkit.spec | 22 +++++++++++++++++++--- sources | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b9fbaad..9bf0272 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,8 +51,8 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.6 -Release: 2%{?dist} +Version: 1.35.7 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -554,6 +554,10 @@ nbdkit-pause-filter Pause NBD requests. nbdkit-protect-filter Write-protect parts of a plugin. +%if !0%{?rhel} +nbdkit-qcow2dec-filter Decode qcow2 files. + +%endif nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. @@ -741,13 +745,15 @@ find $RPM_BUILD_ROOT -name '*.la' -delete rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* %if 0%{?rhel} -# In RHEL, remove some plugins we cannot --disable. +# In RHEL, remove some plugins and filters we cannot --disable. for f in cc cdi ; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-qcow2dec-filter.so %endif # Install RPM dependency generator. @@ -1086,6 +1092,9 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-pause-filter.so %{_libdir}/%{name}/filters/nbdkit-protect-filter.so +%if !0%{?rhel} +%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so +%endif %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so @@ -1123,6 +1132,9 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-pause-filter.1* %{_mandir}/man1/nbdkit-protect-filter.1* +%if !0%{?rhel} +%{_mandir}/man1/nbdkit-qcow2dec-filter.1* +%endif %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* @@ -1217,6 +1229,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sun Jul 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.7-1 +- New upstream development version 1.35.7 +- New nbdkit-qcow2dec-filter. + * Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.35.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index c6f5d88..14fab60 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.6.tar.gz) = f174429708bf5db232cdb60c6e2f0ec95274af8d28c0db9593c1ff56aa9c56f7fe11ecc298049b6a61b7e49dc2daa1287b5facd2fe364471c8f01640f07251e9 -SHA512 (nbdkit-1.35.6.tar.gz.sig) = baf455715cd446793fb385cc950632e7e33a3d1af6e0cfeb5a23050f2d99b93e2c97a8ad116186ff763c73ac236c10ebcd5befb731bde9c78e3915138cf34a47 +SHA512 (nbdkit-1.35.7.tar.gz) = cea70ac04b0a2af051c23b48e04c4790d61b73546a006556e82cae72789d044fe4f40874fd0dc37fc693e3c42c57f13a184e2edb359cd3793547a90486017ed7 +SHA512 (nbdkit-1.35.7.tar.gz.sig) = c05ca3ed253f42d8c046cd21eab905a8ab86d070fd0a97eedf21dd05be72caeb7934df23a04e6084980917b7246a06f50550bcf1a9ed7f5049fa8e01f7056f0f From 6152bf0661eceab18092d1d5d1e323e316dba9c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 23 Jul 2023 14:48:11 +0100 Subject: [PATCH 529/683] Remove correct file for ELN builds --- nbdkit.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9bf0272..08b5728 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -52,7 +52,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -753,7 +753,7 @@ done rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-qcow2dec-filter.so +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-qcow2dec-filter.1* %endif # Install RPM dependency generator. @@ -1229,7 +1229,7 @@ export LIBGUESTFS_TRACE=1 %changelog -* Sun Jul 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.7-1 +* Sun Jul 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.7-2 - New upstream development version 1.35.7 - New nbdkit-qcow2dec-filter. From d284db54e9190d3444335d62d9ca404d7b75ff2d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Aug 2023 11:18:13 +0100 Subject: [PATCH 530/683] New upstream development version 1.35.8 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 08b5728..0a8a1d8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,8 +51,8 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.7 -Release: 2%{?dist} +Version: 1.35.8 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1229,6 +1229,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Aug 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.8-1 +- New upstream development version 1.35.8 + * Sun Jul 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.7-2 - New upstream development version 1.35.7 - New nbdkit-qcow2dec-filter. diff --git a/sources b/sources index 14fab60..e2799bc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.7.tar.gz) = cea70ac04b0a2af051c23b48e04c4790d61b73546a006556e82cae72789d044fe4f40874fd0dc37fc693e3c42c57f13a184e2edb359cd3793547a90486017ed7 -SHA512 (nbdkit-1.35.7.tar.gz.sig) = c05ca3ed253f42d8c046cd21eab905a8ab86d070fd0a97eedf21dd05be72caeb7934df23a04e6084980917b7246a06f50550bcf1a9ed7f5049fa8e01f7056f0f +SHA512 (nbdkit-1.35.8.tar.gz) = 94963547f7ea421cf909ff758deae3a3fb45652ed7e5d7b3d7b85cbcfe4831b5d8552b780d4390690cff364d3459e0d350a33274332f08ba2a242a7a4c2efcc9 +SHA512 (nbdkit-1.35.8.tar.gz.sig) = ac387049563347a7d4af80a22dbc46ea6fa48114006c110dd2eab84e5bca4c3c8198e1fd6b16f0c0edc80d3d3b5d69f5204c35bc081c271738f2302ca18094e6 From 192bd7dee05a4b497469a4c7f266681b83bf88d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Aug 2023 11:24:09 +0100 Subject: [PATCH 531/683] New upstream development version 1.35.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0a8a1d8..549bb1e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,7 +51,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.8 +Version: 1.35.9 Release: 1%{?dist} Summary: NBD server @@ -1229,6 +1229,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Aug 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.9-1 +- New upstream development version 1.35.9 + * Tue Aug 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.8-1 - New upstream development version 1.35.8 diff --git a/sources b/sources index e2799bc..f73fee0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.8.tar.gz) = 94963547f7ea421cf909ff758deae3a3fb45652ed7e5d7b3d7b85cbcfe4831b5d8552b780d4390690cff364d3459e0d350a33274332f08ba2a242a7a4c2efcc9 -SHA512 (nbdkit-1.35.8.tar.gz.sig) = ac387049563347a7d4af80a22dbc46ea6fa48114006c110dd2eab84e5bca4c3c8198e1fd6b16f0c0edc80d3d3b5d69f5204c35bc081c271738f2302ca18094e6 +SHA512 (nbdkit-1.35.9.tar.gz) = ba9ad07eed2b0e9fe61c31885cb7e282f943f0c6d661c9125cfb264a910aca9a4f0bf865bb17103187666c909f8bab682aeb1f7188760e63ccafacc40c4612b1 +SHA512 (nbdkit-1.35.9.tar.gz.sig) = c18ffdbe1f9a879fc3bc16bf4912d345b1ef3301b9a286b9da771809bc6c51d57407753ffd5935e8201100c6ec3be3de6bd013a4086a7f86164d1e8831f1d613 From cba3facac0ceda17003e9d28de080337d10ae95a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Aug 2023 12:25:38 +0100 Subject: [PATCH 532/683] Disable libblkio on i686 (RHBZ#2229372) --- nbdkit.spec | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 549bb1e..eafe14b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,6 +21,14 @@ %global have_ocaml 1 %endif +# We don't yet have libblkio on RHEL. +# libblkio is broken on i686: https://bugzilla.redhat.com/2229372 +%if !0%{?rhel} +%ifnarch %{ix86} +%global have_blkio 1 +%endif +%endif + # Architectures where we run the complete test suite including # the libguestfs tests. # @@ -101,6 +109,8 @@ BuildRequires: e2fsprogs, e2fsprogs-devel %if !0%{?rhel} BuildRequires: xorriso BuildRequires: rb_libtorrent-devel +%endif +%if 0%{?have_blkio} BuildRequires: libblkio-devel %endif BuildRequires: bash-completion @@ -259,7 +269,7 @@ This package contains example plugins for %{name}. # The plugins below have non-trivial dependencies are so are # packaged separately. -%if !0%{?rhel} +%if 0%{?have_blkio} %package blkio-plugin Summary: libblkio NVMe, vhost-user, vDPA, VFIO plugin for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -695,7 +705,6 @@ export PYTHON=%{__python3} --enable-ruby \ --enable-tcl \ --enable-torrent \ - --with-libblkio \ --with-ext2 \ --with-iso \ --with-libvirt \ @@ -705,11 +714,15 @@ export PYTHON=%{__python3} --disable-ruby \ --disable-tcl \ --disable-torrent \ - --without-libblkio \ --without-ext2 \ --without-iso \ --without-libvirt \ %endif +%if 0%{?have_blkio} + --with-libblkio \ +%else + --without-libblkio \ +%endif %ifarch x86_64 --enable-vddk \ %else @@ -887,7 +900,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-example*-plugin.1* -%if !0%{?rhel} +%if 0%{?have_blkio} %files blkio-plugin %doc README.md %license LICENSE @@ -1231,6 +1244,7 @@ export LIBGUESTFS_TRACE=1 %changelog * Sat Aug 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.9-1 - New upstream development version 1.35.9 +- Disable libblkio on i686 (RHBZ#2229372) * Tue Aug 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.8-1 - New upstream development version 1.35.8 From 6bc107126658f95ac78c6fcf9b48be63dbb8594c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 12 Aug 2023 12:16:58 +0100 Subject: [PATCH 533/683] New upstream development version 1.35.10 Use zlib-ng on Fedora but not RHEL. --- nbdkit.spec | 14 +++++++++++++- sources | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index eafe14b..13ea127 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -59,7 +59,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.9 +Version: 1.35.10 Release: 1%{?dist} Summary: NBD server @@ -101,6 +101,9 @@ BuildRequires: libguestfs-devel BuildRequires: libvirt-devel BuildRequires: xz-devel BuildRequires: zlib-devel +%if !0%{?rhel} +BuildRequires: zlib-ng-devel +%endif BuildRequires: libzstd-devel BuildRequires: libcurl-devel BuildRequires: libnbd-devel >= 1.3.11 @@ -689,6 +692,11 @@ export PYTHON=%{__python3} --with-selinux \ --with-ssh \ --with-zlib \ +%if !0%{?rhel} + --with-zlib-ng \ +%else + --without-zlib-ng \ +%endif --enable-linuxdisk \ --enable-python \ --disable-golang \ @@ -1242,6 +1250,10 @@ export LIBGUESTFS_TRACE=1 %changelog +* Sat Aug 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.10-1 +- New upstream development version 1.35.10 +- Use zlib-ng on Fedora but not RHEL. + * Sat Aug 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.9-1 - New upstream development version 1.35.9 - Disable libblkio on i686 (RHBZ#2229372) diff --git a/sources b/sources index f73fee0..8f81ae0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.9.tar.gz) = ba9ad07eed2b0e9fe61c31885cb7e282f943f0c6d661c9125cfb264a910aca9a4f0bf865bb17103187666c909f8bab682aeb1f7188760e63ccafacc40c4612b1 -SHA512 (nbdkit-1.35.9.tar.gz.sig) = c18ffdbe1f9a879fc3bc16bf4912d345b1ef3301b9a286b9da771809bc6c51d57407753ffd5935e8201100c6ec3be3de6bd013a4086a7f86164d1e8831f1d613 +SHA512 (nbdkit-1.35.10.tar.gz) = da70b970518efe27b06fe1da3b695fadac47d15113b5be944a8c795f8b2fd6e2f7f2d3df1634939fd7756fb3f082c963e341b1e3f764a67a5c15eb529436aa92 +SHA512 (nbdkit-1.35.10.tar.gz.sig) = 215f8bedd0de30db410e4f5254b9c82982050469e1211b659dab9a81f490218e0dd1cf7ebf05046b08286a51ce3121c8529c4f4a890d02a9297777f73c73439c From f72cb5c449d9cbe61f08a6e32c14e12ee6752c15 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 30 Aug 2023 15:03:57 +0100 Subject: [PATCH 534/683] New upstream development version 1.35.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 13ea127..dae9619 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -59,7 +59,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.10 +Version: 1.35.11 Release: 1%{?dist} Summary: NBD server @@ -1250,6 +1250,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Aug 30 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.11-1 +- New upstream development version 1.35.11 + * Sat Aug 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.10-1 - New upstream development version 1.35.10 - Use zlib-ng on Fedora but not RHEL. diff --git a/sources b/sources index 8f81ae0..99604f0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.10.tar.gz) = da70b970518efe27b06fe1da3b695fadac47d15113b5be944a8c795f8b2fd6e2f7f2d3df1634939fd7756fb3f082c963e341b1e3f764a67a5c15eb529436aa92 -SHA512 (nbdkit-1.35.10.tar.gz.sig) = 215f8bedd0de30db410e4f5254b9c82982050469e1211b659dab9a81f490218e0dd1cf7ebf05046b08286a51ce3121c8529c4f4a890d02a9297777f73c73439c +SHA512 (nbdkit-1.35.11.tar.gz) = ab1db494592aa62fe3f9362e3fcfde74a246aa4e120bbebefb9ade6a5d81ae31080d8e3db09971b06f2a34400f1419f42750d5beddbba3b1802f124ab9a083da +SHA512 (nbdkit-1.35.11.tar.gz.sig) = 7e6af76a90faa59e11101b4f567c2f943bf7c9e6241d29023142846fe65b76eb5ef555907bab591816bceaea0c0798c8d570b26b953f728c38f3eca7682a339e From bbec0865fbe61982aac1a8e93fd0be2810f2396a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 30 Aug 2023 16:59:00 +0100 Subject: [PATCH 535/683] Add upstream patch to fix partition filter on s390x --- ...e-swap-partition_entries_lba-in-test.patch | 37 +++++++++++++++++++ nbdkit.spec | 7 +++- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 0001-partition-Byte-swap-partition_entries_lba-in-test.patch diff --git a/0001-partition-Byte-swap-partition_entries_lba-in-test.patch b/0001-partition-Byte-swap-partition_entries_lba-in-test.patch new file mode 100644 index 0000000..e26718e --- /dev/null +++ b/0001-partition-Byte-swap-partition_entries_lba-in-test.patch @@ -0,0 +1,37 @@ +From 47aebc247e6553ffb593512b65296b4e2a8eac0a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 30 Aug 2023 15:53:16 +0000 +Subject: [PATCH] partition: Byte-swap partition_entries_lba in test + +Fixes: commit 7b9301a4c569456a4f96784229a2cd48e8957662 +Fixes: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/38#note_1535695896 +--- + filters/partition/partition-gpt.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/filters/partition/partition-gpt.c b/filters/partition/partition-gpt.c +index ea02e504c..80acddb44 100644 +--- a/filters/partition/partition-gpt.c ++++ b/filters/partition/partition-gpt.c +@@ -59,12 +59,12 @@ get_gpt_header (uint8_t *sector, + * the header, rather than looking in the header to see what LBA + * they actually start at. Let's at least check for that now. + */ +- if (header->partition_entries_lba != 2) { +- nbdkit_error ("non-standard GPT layout: " +- "partition entries are not adjacent to header"); +- return -1; +- } +- return 0; ++ if (le64toh (header->partition_entries_lba) != 2) { ++ nbdkit_error ("non-standard GPT layout: " ++ "partition entries are not adjacent to header"); ++ return -1; ++ } ++ return 0; + } + + static void +-- +2.41.0 + diff --git a/nbdkit.spec b/nbdkit.spec index dae9619..d3efc68 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -60,7 +60,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.35.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -86,6 +86,9 @@ Source3: copy-patches.sh Source4: nbdkit.attr Source5: nbdkit-find-provides +# Upstream patch to fix partition filter on s390x +Patch1: 0001-partition-Byte-swap-partition_entries_lba-in-test.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1250,7 +1253,7 @@ export LIBGUESTFS_TRACE=1 %changelog -* Wed Aug 30 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.11-1 +* Wed Aug 30 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.11-2 - New upstream development version 1.35.11 * Sat Aug 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.10-1 From 57aa128eb060215f5de2e31060f75c10737aceec Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 8 Sep 2023 11:09:19 +0100 Subject: [PATCH 536/683] New upstream development version 1.35.12 --- ...e-swap-partition_entries_lba-in-test.patch | 37 ------------------- nbdkit.spec | 10 ++--- sources | 4 +- 3 files changed, 7 insertions(+), 44 deletions(-) delete mode 100644 0001-partition-Byte-swap-partition_entries_lba-in-test.patch diff --git a/0001-partition-Byte-swap-partition_entries_lba-in-test.patch b/0001-partition-Byte-swap-partition_entries_lba-in-test.patch deleted file mode 100644 index e26718e..0000000 --- a/0001-partition-Byte-swap-partition_entries_lba-in-test.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 47aebc247e6553ffb593512b65296b4e2a8eac0a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 30 Aug 2023 15:53:16 +0000 -Subject: [PATCH] partition: Byte-swap partition_entries_lba in test - -Fixes: commit 7b9301a4c569456a4f96784229a2cd48e8957662 -Fixes: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/38#note_1535695896 ---- - filters/partition/partition-gpt.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/filters/partition/partition-gpt.c b/filters/partition/partition-gpt.c -index ea02e504c..80acddb44 100644 ---- a/filters/partition/partition-gpt.c -+++ b/filters/partition/partition-gpt.c -@@ -59,12 +59,12 @@ get_gpt_header (uint8_t *sector, - * the header, rather than looking in the header to see what LBA - * they actually start at. Let's at least check for that now. - */ -- if (header->partition_entries_lba != 2) { -- nbdkit_error ("non-standard GPT layout: " -- "partition entries are not adjacent to header"); -- return -1; -- } -- return 0; -+ if (le64toh (header->partition_entries_lba) != 2) { -+ nbdkit_error ("non-standard GPT layout: " -+ "partition entries are not adjacent to header"); -+ return -1; -+ } -+ return 0; - } - - static void --- -2.41.0 - diff --git a/nbdkit.spec b/nbdkit.spec index d3efc68..bfe33c8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -59,8 +59,8 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.11 -Release: 2%{?dist} +Version: 1.35.12 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -86,9 +86,6 @@ Source3: copy-patches.sh Source4: nbdkit.attr Source5: nbdkit-find-provides -# Upstream patch to fix partition filter on s390x -Patch1: 0001-partition-Byte-swap-partition_entries_lba-in-test.patch - BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1253,6 +1250,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Sep 08 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.12-1 +- New upstream development version 1.35.12 + * Wed Aug 30 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.11-2 - New upstream development version 1.35.11 diff --git a/sources b/sources index 99604f0..07bfabb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.11.tar.gz) = ab1db494592aa62fe3f9362e3fcfde74a246aa4e120bbebefb9ade6a5d81ae31080d8e3db09971b06f2a34400f1419f42750d5beddbba3b1802f124ab9a083da -SHA512 (nbdkit-1.35.11.tar.gz.sig) = 7e6af76a90faa59e11101b4f567c2f943bf7c9e6241d29023142846fe65b76eb5ef555907bab591816bceaea0c0798c8d570b26b953f728c38f3eca7682a339e +SHA512 (nbdkit-1.35.12.tar.gz) = 2c0beb53952d1c569c48be6fdb8457410821498fdf9fc33038b6b3ce90fd81015d7b1639bcc474aadaaec7520099dd2812b03f152112a3fd57ac77bf212311bf +SHA512 (nbdkit-1.35.12.tar.gz.sig) = 2aa61b49200ecbb531d2004574378bb4bd663ac002c166750d554d7c3ac0c3fea29b657e78470cd6be34e07470168a369c199d701be7ab64fbb3c23be3088f17 From e7d01e8072b2e892eaaf93bbb49661eb159bf7e3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 11 Sep 2023 17:53:16 +0100 Subject: [PATCH 537/683] New upstream development version 1.35.13 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bfe33c8..123e965 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -59,7 +59,7 @@ ExclusiveArch: x86_64 %global source_directory 1.35-development Name: nbdkit -Version: 1.35.12 +Version: 1.35.13 Release: 1%{?dist} Summary: NBD server @@ -1250,6 +1250,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Sep 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.13-1 +- New upstream development version 1.35.13 + * Fri Sep 08 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.12-1 - New upstream development version 1.35.12 diff --git a/sources b/sources index 07bfabb..b954442 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.12.tar.gz) = 2c0beb53952d1c569c48be6fdb8457410821498fdf9fc33038b6b3ce90fd81015d7b1639bcc474aadaaec7520099dd2812b03f152112a3fd57ac77bf212311bf -SHA512 (nbdkit-1.35.12.tar.gz.sig) = 2aa61b49200ecbb531d2004574378bb4bd663ac002c166750d554d7c3ac0c3fea29b657e78470cd6be34e07470168a369c199d701be7ab64fbb3c23be3088f17 +SHA512 (nbdkit-1.35.13.tar.gz) = 36706c37f857f9ec2caaa102023b152a683f60f7dff958a6d3f617f1299834db7a4176075b3159d1ba5ec853c1e9c8a5b2e47c87838ea80fa37d45bfe2530ba1 +SHA512 (nbdkit-1.35.13.tar.gz.sig) = 612b92af3134cbc4539bef5c80f3e43879148d43dba7af2f9e0eb62bc7f5c241a62ae59f6c9b3914838f79424b11b4d7322294a9a190e21338c6ca615ab0c8ce From 28d997d6453ab7fb7a230eb74b328219b31d93da Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 27 Sep 2023 11:50:20 +0100 Subject: [PATCH 538/683] New upstream development version 1.36.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 123e965..2e4f8a6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -56,10 +56,10 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.35-development +%global source_directory 1.36-stable Name: nbdkit -Version: 1.35.13 +Version: 1.36.0 Release: 1%{?dist} Summary: NBD server @@ -1250,6 +1250,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Wed Sep 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-1 +- New upstream development version 1.36.0 + * Mon Sep 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.13-1 - New upstream development version 1.35.13 diff --git a/sources b/sources index b954442..38585e9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.35.13.tar.gz) = 36706c37f857f9ec2caaa102023b152a683f60f7dff958a6d3f617f1299834db7a4176075b3159d1ba5ec853c1e9c8a5b2e47c87838ea80fa37d45bfe2530ba1 -SHA512 (nbdkit-1.35.13.tar.gz.sig) = 612b92af3134cbc4539bef5c80f3e43879148d43dba7af2f9e0eb62bc7f5c241a62ae59f6c9b3914838f79424b11b4d7322294a9a190e21338c6ca615ab0c8ce +SHA512 (nbdkit-1.36.0.tar.gz) = 4c753e09853c1fa41311f3f7c86e4b9af9be69a984854142612a0bc9ad915e2811d4be4e29f263a6887277ece4204dd931807fe65e4fda8b4b9eab6dc3645c7b +SHA512 (nbdkit-1.36.0.tar.gz.sig) = 0c1f2f7799e83c23ee2a52d362e5ae02cfb3ce5bd0cc0eacd06324990d9a4a95d14b8b4d182821b3e0185bd3464ff88684894bc79472b349404b54d901446088 From 288a60632345c645e984aada35dbcf4c0108ee55 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 27 Sep 2023 15:45:24 +0100 Subject: [PATCH 539/683] Enable blkio support again on Fedora i686. --- nbdkit.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2e4f8a6..582a25a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -22,12 +22,11 @@ %endif # We don't yet have libblkio on RHEL. -# libblkio is broken on i686: https://bugzilla.redhat.com/2229372 +# libblkio was broken on i686: https://bugzilla.redhat.com/2229372 +# but somehow "fixed itself", keep an eye on it. %if !0%{?rhel} -%ifnarch %{ix86} %global have_blkio 1 %endif -%endif # Architectures where we run the complete test suite including # the libguestfs tests. @@ -60,7 +59,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.36.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1250,8 +1249,9 @@ export LIBGUESTFS_TRACE=1 %changelog -* Wed Sep 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-1 +* Wed Sep 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-2 - New upstream development version 1.36.0 +- Enable blkio support again on Fedora i686. * Mon Sep 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.13-1 - New upstream development version 1.35.13 From c97cf0c593b3755b29d7770b67a85aa3a2d0a2c4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 6 Oct 2023 08:46:03 +0100 Subject: [PATCH 540/683] OCaml 5.1 rebuild for Fedora 40 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 582a25a..aa8eac0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -59,7 +59,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.36.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1249,6 +1249,9 @@ export LIBGUESTFS_TRACE=1 %changelog +* Fri Oct 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-3 +- OCaml 5.1 rebuild for Fedora 40 + * Wed Sep 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-2 - New upstream development version 1.36.0 - Enable blkio support again on Fedora i686. From 3b31d6392a36a81f00438f2c06877efeaf7c6972 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 23 Oct 2023 16:49:43 +0100 Subject: [PATCH 541/683] New upstream development version 1.37.1 --- nbdkit.spec | 11 +++++++---- sources | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index aa8eac0..3205782 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,11 +55,11 @@ ExclusiveArch: x86_64 %global patches_touch_autotools %{nil} # The source directory. -%global source_directory 1.36-stable +%global source_directory 1.37-development Name: nbdkit -Version: 1.36.0 -Release: 3%{?dist} +Version: 1.37.1 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1249,11 +1249,14 @@ export LIBGUESTFS_TRACE=1 %changelog +* Mon Oct 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.1-1 +- New upstream development version 1.37.1 + * Fri Oct 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-3 - OCaml 5.1 rebuild for Fedora 40 * Wed Sep 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.0-2 -- New upstream development version 1.36.0 +- New upstream stable version 1.36.0 - Enable blkio support again on Fedora i686. * Mon Sep 11 2023 Richard W.M. Jones <rjones@redhat.com> - 1.35.13-1 diff --git a/sources b/sources index 38585e9..ebf9e10 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.36.0.tar.gz) = 4c753e09853c1fa41311f3f7c86e4b9af9be69a984854142612a0bc9ad915e2811d4be4e29f263a6887277ece4204dd931807fe65e4fda8b4b9eab6dc3645c7b -SHA512 (nbdkit-1.36.0.tar.gz.sig) = 0c1f2f7799e83c23ee2a52d362e5ae02cfb3ce5bd0cc0eacd06324990d9a4a95d14b8b4d182821b3e0185bd3464ff88684894bc79472b349404b54d901446088 +SHA512 (nbdkit-1.37.1.tar.gz) = be5272a75014fbdfea5959d28f85ae9c769f1621678a194e8f53b2014cbac57228a77cf070b03ea0b14db29c19e279c62097c61173caee58ea80eec1db978007 +SHA512 (nbdkit-1.37.1.tar.gz.sig) = d8e39ca5879a3908f51a9868e4753368cc8e528307b0a28eddc7637be7a34fa6a52988a2036ba61e56a7db1ca91fcd156f260c0ab6b78ae10dfa4da4a550e2aa From 63aafd271314d63d5b8ba18ff4286441c5c959d9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 31 Oct 2023 09:13:46 +0000 Subject: [PATCH 542/683] We are going to try to enable libblkio support everywhere --- nbdkit.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3205782..1d74532 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -21,12 +21,9 @@ %global have_ocaml 1 %endif -# We don't yet have libblkio on RHEL. # libblkio was broken on i686: https://bugzilla.redhat.com/2229372 # but somehow "fixed itself", keep an eye on it. -%if !0%{?rhel} %global have_blkio 1 -%endif # Architectures where we run the complete test suite including # the libguestfs tests. From 0b975b05a5c0a69464222547e7a7377a98e1e0cf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 1 Nov 2023 10:14:04 +0000 Subject: [PATCH 543/683] Add experimental SELinux support (RHEL-5174) --- nbdkit.fc | 3 + nbdkit.if | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++ nbdkit.spec | 81 +++++++++++++++++++- nbdkit.te | 100 +++++++++++++++++++++++++ 4 files changed, 390 insertions(+), 1 deletion(-) create mode 100644 nbdkit.fc create mode 100644 nbdkit.if create mode 100644 nbdkit.te diff --git a/nbdkit.fc b/nbdkit.fc new file mode 100644 index 0000000..4877736 --- /dev/null +++ b/nbdkit.fc @@ -0,0 +1,3 @@ +/usr/sbin/nbdkit -- gen_context(system_u:object_r:nbdkit_exec_t,s0) + +/usr/lib/systemd/system/nbdkit.* gen_context(system_u:object_r:nbdkit_unit_file_t,s0) diff --git a/nbdkit.if b/nbdkit.if new file mode 100644 index 0000000..315fead --- /dev/null +++ b/nbdkit.if @@ -0,0 +1,207 @@ +## <summary>policy for nbdkit</summary> + +######################################## +## <summary> +## Execute nbdkit_exec_t in the nbdkit domain. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed to transition. +## </summary> +## </param> +# +interface(`nbdkit_domtrans',` + gen_require(` + type nbdkit_t, nbdkit_exec_t; + ') + + corecmd_search_bin($1) + domtrans_pattern($1, nbdkit_exec_t, nbdkit_t) +') + +###################################### +## <summary> +## Execute nbdkit in the caller domain. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +interface(`nbdkit_exec',` + gen_require(` + type nbdkit_exec_t; + ') + + corecmd_search_bin($1) + can_exec($1, nbdkit_exec_t) +') + +######################################## +## <summary> +## Execute nbdkit in the nbdkit domain, and +## allow the specified role the nbdkit domain. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed to transition +## </summary> +## </param> +## <param name="role"> +## <summary> +## The role to be allowed the nbdkit domain. +## </summary> +## </param> +# +interface(`nbdkit_run',` + gen_require(` + type nbdkit_t; + attribute_role nbdkit_roles; + ') + + nbdkit_domtrans($1) + roleattribute $2 nbdkit_roles; +') + +######################################## +## <summary> +## Role access for nbdkit +## </summary> +## <param name="role"> +## <summary> +## Role allowed access +## </summary> +## </param> +## <param name="domain"> +## <summary> +## User domain for the role +## </summary> +## </param> +# +interface(`nbdkit_role',` + gen_require(` + type nbdkit_t; + attribute_role nbdkit_roles; + ') + + roleattribute $1 nbdkit_roles; + + nbdkit_domtrans($2) + + ps_process_pattern($2, nbdkit_t) + allow $2 nbdkit_t:process { signull signal sigkill }; +') + +######################################## +## <summary> +## Allow attempts to connect to nbdkit +## with a unix stream socket. +## </summary> +## <param name="domain"> +## <summary> +## Domain to not audit. +## </summary> +## </param> +# +interface(`nbdkit_stream_connect',` + gen_require(` + type nbdkit_t; + ') + + allow $1 nbdkit_t:unix_stream_socket connectto; +') + +######################################## +## <summary> +## Allow nbdkit_exec_t to be an entrypoint +## of the specified domain +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +## <rolecap/> +# +interface(`nbdkit_entrypoint',` + gen_require(` + type nbdkit_exec_t; + ') + allow $1 nbdkit_exec_t:file entrypoint; +') + +# ---------------------------------------------------------------------- +# RWMJ: See: +# https://issues.redhat.com/browse/RHEL-5174?focusedId=23387259&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-23387259 +# Remove this when virt.if gets updated. + +######################################## +# +# Interface compatibility blocks +# +# The following definitions ensure compatibility with distribution policy +# versions that do not contain given interfaces (epel, or older Fedora +# releases). +# Each block tests for existence of given interface and defines it if needed. +# + +######################################## +## <summary> +## Read and write to svirt_image dirs. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +ifndef(`virt_rw_svirt_image_dirs',` + interface(`virt_rw_svirt_image_dirs',` + gen_require(` + type svirt_image_t; + ') + + allow $1 svirt_image_t:dir rw_dir_perms; + ') +') + +######################################## +## <summary> +## Create svirt_image sock_files. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +ifndef(`virt_create_svirt_image_sock_files',` + interface(`virt_create_svirt_image_sock_files',` + gen_require(` + type svirt_image_t; + ') + + allow $1 svirt_image_t:sock_file create_sock_file_perms; + ') +') + +######################################## +## <summary> +## Read and write virtlogd pipes. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +ifndef(`virtlogd_rw_pipes',` + interface(`virtlogd_rw_pipes',` + gen_require(` + type virtlogd_t; + ') + + allow $1 virtlogd_t:fifo_file rw_fifo_file_perms; + ') +') diff --git a/nbdkit.spec b/nbdkit.spec index 1d74532..2b6e004 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,6 +25,11 @@ # but somehow "fixed itself", keep an eye on it. %global have_blkio 1 +# Enable nbdkit-selinux package. +%global with_selinux 1 +%global modulename nbdkit +%global selinuxtype targeted + # Architectures where we run the complete test suite including # the libguestfs tests. # @@ -56,7 +61,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.37.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -82,6 +87,11 @@ Source3: copy-patches.sh Source4: nbdkit.attr Source5: nbdkit-find-provides +# For nbdkit-selinux package: +Source6: %{modulename}.te +Source7: %{modulename}.if +Source8: %{modulename}.fc + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -168,6 +178,13 @@ Requires: nbdkit-server%{?_isa} = %{version}-%{release} Requires: nbdkit-basic-plugins%{?_isa} = %{version}-%{release} Requires: nbdkit-basic-filters%{?_isa} = %{version}-%{release} +%if 0%{?with_selinux} +# This ensures that the nbdkit-selinux package and all its +# dependencies are not pulled into containers and other systems that +# do not use SELinux. +Requires: (%{name}-selinux if selinux-policy-%{selinuxtype}) +%endif + %description NBD is a protocol for accessing block devices (hard disks and @@ -660,6 +677,20 @@ Install this package if you want intelligent bash tab-completion for %{name}. +%if 0%{?with_selinux} +%package selinux +Summary: %{name} SELinux policy +BuildArch: noarch +Requires: selinux-policy-%{selinuxtype} +Requires(post):selinux-policy-%{selinuxtype} +BuildRequires: selinux-policy-devel +%{?selinux_requires} + +%description selinux +%{nbdkit} SELinux policy module. +%endif + + %prep %if 0%{verify_tarball_signature} %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' @@ -750,6 +781,18 @@ grep '^PYTHON_VERSION = 3' Makefile %make_build +%if 0%{?with_selinux} +# SELinux policy (originally from selinux-policy-contrib) +# this policy module will override the production module +mkdir selinux +cp -p %{SOURCE6} selinux/ +cp -p %{SOURCE7} selinux/ +cp -p %{SOURCE8} selinux/ + +make -f %{_datadir}/selinux/devel/Makefile %{modulename}.pp +bzip2 -9 %{modulename}.pp +%endif + %install %make_install @@ -778,6 +821,11 @@ mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/ install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/ install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/ +%if 0%{?with_selinux} +install -D -m 0644 %{modulename}.pp.bz2 $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.bz2 +install -D -p -m 0644 selinux/%{modulename}.if $RPM_BUILD_ROOT%{_datadir}/selinux/devel/include/distributed/%{modulename}.if +%endif + %check %ifnarch %{broken_test_arches} @@ -833,6 +881,26 @@ export LIBGUESTFS_TRACE=1 %endif +%if 0%{?with_selinux} +# SELinux contexts are saved so that only affected files can be +# relabeled after the policy module installation +%pre selinux +%selinux_relabel_pre -s %{selinuxtype} + +%post selinux +%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.bz2 + +%postun selinux +if [ $1 -eq 0 ]; then + %selinux_modules_uninstall -s %{selinuxtype} %{modulename} +fi + +%posttrans selinux +%selinux_relabel_post -s %{selinuxtype} +# if with_selinux +%endif + + %files # metapackage so empty @@ -1245,7 +1313,18 @@ export LIBGUESTFS_TRACE=1 %{_datadir}/bash-completion/completions/nbdkit +%if 0%{?with_selinux} +%files selinux +%{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.* +%{_datadir}/selinux/devel/include/distributed/%{modulename}.if +%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{modulename} +%endif + + %changelog +* Wed Nov 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.1-2 +- Add experimental SELinux support (RHEL-5174) + * Mon Oct 23 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.1-1 - New upstream development version 1.37.1 diff --git a/nbdkit.te b/nbdkit.te new file mode 100644 index 0000000..dbc518e --- /dev/null +++ b/nbdkit.te @@ -0,0 +1,100 @@ +policy_module(nbdkit, 1.0.0) + +######################################## +# +# Declarations +# + +gen_require(` + type unconfined_t; +') + +type nbdkit_t; +type nbdkit_exec_t; +application_domain(nbdkit_t, nbdkit_exec_t) +mcs_constrained(nbdkit_t) +role system_r types nbdkit_t; + +type nbdkit_home_t; +userdom_user_home_content(nbdkit_home_t) + +type nbdkit_tmp_t; +files_tmp_file(nbdkit_tmp_t) + +type nbdkit_unit_file_t; +systemd_unit_file(nbdkit_unit_file_t) + +permissive nbdkit_t; + +######################################## +# +# nbdkit local policy +# +allow nbdkit_t self:capability { setgid setuid }; +allow nbdkit_t self:fifo_file rw_fifo_file_perms; +allow nbdkit_t self:netlink_route_socket rw_netlink_socket_perms; +allow nbdkit_t self:process { fork setsockcreate signal_perms }; +allow nbdkit_t self:tcp_socket create_stream_socket_perms; +allow nbdkit_t self:udp_socket create_socket_perms; + +manage_dirs_pattern(nbdkit_t, nbdkit_tmp_t, nbdkit_tmp_t) +manage_files_pattern(nbdkit_t, nbdkit_tmp_t, nbdkit_tmp_t) +userdom_user_tmp_filetrans(nbdkit_t, nbdkit_tmp_t, { dir file }) + +manage_dirs_pattern(nbdkit_t, nbdkit_home_t, nbdkit_home_t) +manage_files_pattern(nbdkit_t, nbdkit_home_t, nbdkit_home_t) +userdom_user_home_dir_filetrans(nbdkit_t, nbdkit_home_t, { dir file }) + +corenet_tcp_connect_http_port(nbdkit_t) +corenet_tcp_connect_ssh_port(nbdkit_t) +corenet_tcp_connect_tftp_port(nbdkit_t) +corenet_tcp_bind_generic_port(nbdkit_t) +corenet_tcp_bind_generic_node(nbdkit_t) + +domain_use_interactive_fds(nbdkit_t) + +files_read_etc_files(nbdkit_t) + +init_abstract_socket_activation(nbdkit_t) +init_ioctl_stream_sockets(nbdkit_t) +init_rw_stream_sockets(nbdkit_t) + +optional_policy(` + auth_use_nsswitch(nbdkit_t) +') + +optional_policy(` + logging_send_syslog_msg(nbdkit_t) +') + +optional_policy(` + miscfiles_read_localization(nbdkit_t) + miscfiles_read_generic_certs(nbdkit_t) +') + +optional_policy(` + sysnet_dns_name_resolve(nbdkit_t) + sysnet_read_config(nbdkit_t) +') + +optional_policy(` + userdom_read_user_home_content_files(nbdkit_t) + userdom_use_inherited_user_ptys(nbdkit_t) +') + +optional_policy(` + virt_create_svirt_image_sock_files(nbdkit_t) + virt_read_qemu_pid_files(nbdkit_t) + virtlogd_rw_pipes(nbdkit_t) + virt_rw_svirt_image(nbdkit_t) + virt_rw_svirt_image_dirs(nbdkit_t) + virt_search_lib(nbdkit_t) + virt_stream_connect_svirt(nbdkit_t) +') + + +# FIXME: It would be nice to allow libvirt to transition nbdkit_exec_t to +# nbdkit_t when libvirtd was started manually from the commandline (i.e. in +# unconfined_t), but we don't want this transition to happen automatically +# when starting directly from the shell. I'm not sure how to achieve this... +#nbdkit_domtrans(unconfined_t, nbdkit_exec_t, nbdkit_t) From 153951488400f89c71595a936f9985a7eb274277 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 7 Nov 2023 19:41:30 +0000 Subject: [PATCH 544/683] New upstream development version 1.37.2 New nbdkit-readonly-filter. --- nbdkit.spec | 12 ++++++++++-- sources | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2b6e004..b916608 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -60,8 +60,8 @@ ExclusiveArch: x86_64 %global source_directory 1.37-development Name: nbdkit -Version: 1.37.1 -Release: 2%{?dist} +Version: 1.37.2 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -588,6 +588,8 @@ nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-readahead-filter Prefetch data when reading sequentially. +nbdkit-readonly-filter Switch a plugin between read-only and writable. + nbdkit-retry-filter Reopen connection on error. nbdkit-retry-request-filter Retry single requests on error. @@ -1182,6 +1184,7 @@ fi %endif %{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so +%{_libdir}/%{name}/filters/nbdkit-readonly-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-request-filter.so %{_libdir}/%{name}/filters/nbdkit-scan-filter.so @@ -1222,6 +1225,7 @@ fi %endif %{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1* +%{_mandir}/man1/nbdkit-readonly-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-retry-request-filter.1* %{_mandir}/man1/nbdkit-scan-filter.1* @@ -1322,6 +1326,10 @@ fi %changelog +* Tue Nov 07 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.2-1 +- New upstream development version 1.37.2 +- New nbdkit-readonly-filter. + * Wed Nov 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.1-2 - Add experimental SELinux support (RHEL-5174) diff --git a/sources b/sources index ebf9e10..d242fcf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.1.tar.gz) = be5272a75014fbdfea5959d28f85ae9c769f1621678a194e8f53b2014cbac57228a77cf070b03ea0b14db29c19e279c62097c61173caee58ea80eec1db978007 -SHA512 (nbdkit-1.37.1.tar.gz.sig) = d8e39ca5879a3908f51a9868e4753368cc8e528307b0a28eddc7637be7a34fa6a52988a2036ba61e56a7db1ca91fcd156f260c0ab6b78ae10dfa4da4a550e2aa +SHA512 (nbdkit-1.37.2.tar.gz) = 2e410ed7be75ddbca111be3a54a8f7246042233c8ac922634b5a2fdbe8781ba89c93cf4655bb0737e175fbb6a1846e3faad3523adb49925a886cca914a0a5f67 +SHA512 (nbdkit-1.37.2.tar.gz.sig) = 9eb2f18e7a2234090394ec7ab17cbe413b633c5eadd182a70a88f430b4948d4b02b7468f95b6347de961a99117c169930bb25f95a9e1735aa7627cc72e3298f6 From b9a4b125ca125df1ee41cf43478fb3f0b48f4285 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 26 Nov 2023 10:34:57 +0000 Subject: [PATCH 545/683] New upstream development version 1.37.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b916608..feb6fec 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -60,7 +60,7 @@ ExclusiveArch: x86_64 %global source_directory 1.37-development Name: nbdkit -Version: 1.37.2 +Version: 1.37.3 Release: 1%{?dist} Summary: NBD server @@ -1326,6 +1326,9 @@ fi %changelog +* Sun Nov 26 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-1 +- New upstream development version 1.37.3 + * Tue Nov 07 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.2-1 - New upstream development version 1.37.2 - New nbdkit-readonly-filter. diff --git a/sources b/sources index d242fcf..50adcc8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.2.tar.gz) = 2e410ed7be75ddbca111be3a54a8f7246042233c8ac922634b5a2fdbe8781ba89c93cf4655bb0737e175fbb6a1846e3faad3523adb49925a886cca914a0a5f67 -SHA512 (nbdkit-1.37.2.tar.gz.sig) = 9eb2f18e7a2234090394ec7ab17cbe413b633c5eadd182a70a88f430b4948d4b02b7468f95b6347de961a99117c169930bb25f95a9e1735aa7627cc72e3298f6 +SHA512 (nbdkit-1.36.2.tar.gz) = a776808c6e7ab488b109e993fed5a6174e6fc35f894dace74b18cef9f8e0f640fb90bd4fd74183fc025da1f607c8907ee438369146bfbb2a48f6753748b9cf04 +SHA512 (nbdkit-1.36.2.tar.gz.sig) = 04ef71b3fae7bf126333a8f02f6498db0b615057c942071502606b45ae5da1eafb15378a444a5388e3a3da67768687d4c151c259f9bd23ba583554cd54c054db From 01508263882941a0eed9fe24d451b6ea7279bf53 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 26 Nov 2023 12:16:33 +0000 Subject: [PATCH 546/683] Use the correct sources for this branch --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 50adcc8..8e6df75 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.36.2.tar.gz) = a776808c6e7ab488b109e993fed5a6174e6fc35f894dace74b18cef9f8e0f640fb90bd4fd74183fc025da1f607c8907ee438369146bfbb2a48f6753748b9cf04 -SHA512 (nbdkit-1.36.2.tar.gz.sig) = 04ef71b3fae7bf126333a8f02f6498db0b615057c942071502606b45ae5da1eafb15378a444a5388e3a3da67768687d4c151c259f9bd23ba583554cd54c054db +SHA512 (nbdkit-1.37.3.tar.gz) = 6f3a78e24a93776623a3209cf4c2e4824c8ab78c761186d13964be7af06ffaab34a550d89be5ea297b1d25c81b3646e8ff2d42389d1b1a0281577fa5bf319445 +SHA512 (nbdkit-1.37.3.tar.gz.sig) = b1c833b46c0eb488dfc831f1b554c094dd63f1f8aad97eaa054c61579ed5262a674370e46ca21b4d3843d8f24c6d713c956842d7217bb7949097f58168a205c2 From 6debad82d3b543e9b44d2d06fd84f98687faa521 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 4 Dec 2023 13:29:52 +0000 Subject: [PATCH 547/683] Add upstream fix for GCC 14 --- ...itialization-from-incompatible-point.patch | 43 +++++++++++++++++++ nbdkit.spec | 10 ++++- 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 0001-configure-Fix-initialization-from-incompatible-point.patch diff --git a/0001-configure-Fix-initialization-from-incompatible-point.patch b/0001-configure-Fix-initialization-from-incompatible-point.patch new file mode 100644 index 0000000..bc4aa1e --- /dev/null +++ b/0001-configure-Fix-initialization-from-incompatible-point.patch @@ -0,0 +1,43 @@ +From 32a9ee6650654469cd591a3ae26842c54f898392 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 4 Dec 2023 10:23:29 +0000 +Subject: [PATCH] configure: Fix initialization from incompatible pointer type + +With GCC 14: + + configure:20816: checking if environ is declared in header files + configure:20833: gcc -c -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grec +ord-gcc-switches -pipe -Wall -Werror=format-security +-Werror=implicit-function-declaration -Werror=implicit-int +-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS +-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong +-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic +-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection +-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer conftest.c >&5 + conftest.c: In function 'test': + conftest.c:62:22: error: initialization of 'const char **' from incompatible p +ointer type 'char **' + 62 | const char **env = environ; + | ^~~~~~~ + +Thanks: Florian Weimer +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 602cdc5cb..e7d58dcc8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -336,7 +336,7 @@ AC_LANG_SOURCE([[ + static int + test (void) + { +- const char **env = environ; ++ char **env = environ; + return env ? 1 : 0; // this just forces env to be used + } + ]]) +-- +2.43.0 + diff --git a/nbdkit.spec b/nbdkit.spec index feb6fec..4ffb66a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,14 +54,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.37-development Name: nbdkit Version: 1.37.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -92,6 +92,9 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Upstream fix for GCC 14 +Patch: 0001-configure-Fix-initialization-from-incompatible-point.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1326,6 +1329,9 @@ fi %changelog +* Mon Dec 04 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-2 +- Add upstream fix for GCC 14 + * Sun Nov 26 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-1 - New upstream development version 1.37.3 From 95f0a9b7ba6cfc5a424ce5100560361f851e719d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 14 Dec 2023 09:14:13 +0000 Subject: [PATCH 548/683] OCaml 5.1.1 rebuild for Fedora 40 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4ffb66a..41445fa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -61,7 +61,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.37.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1329,6 +1329,9 @@ fi %changelog +* Thu Dec 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-3 +- OCaml 5.1.1 rebuild for Fedora 40 + * Mon Dec 04 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-2 - Add upstream fix for GCC 14 From 4a474632286815effb8471fe0b4e30d4f514caa3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 18 Dec 2023 16:02:50 +0000 Subject: [PATCH 549/683] OCaml 5.1.1 + s390x code gen fix for Fedora 40 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 41445fa..accd8ce 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -61,7 +61,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.37.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1329,6 +1329,9 @@ fi %changelog +* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-4 +- OCaml 5.1.1 + s390x code gen fix for Fedora 40 + * Thu Dec 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-3 - OCaml 5.1.1 rebuild for Fedora 40 From 0d1a9e2d82d6a091f74ff4da27a79b04db3b0447 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 19 Dec 2023 15:55:39 +0000 Subject: [PATCH 550/683] New upstream development version 1.37.4 --- ...itialization-from-incompatible-point.patch | 43 ------------------- nbdkit.spec | 12 +++--- sources | 4 +- 3 files changed, 8 insertions(+), 51 deletions(-) delete mode 100644 0001-configure-Fix-initialization-from-incompatible-point.patch diff --git a/0001-configure-Fix-initialization-from-incompatible-point.patch b/0001-configure-Fix-initialization-from-incompatible-point.patch deleted file mode 100644 index bc4aa1e..0000000 --- a/0001-configure-Fix-initialization-from-incompatible-point.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 32a9ee6650654469cd591a3ae26842c54f898392 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 4 Dec 2023 10:23:29 +0000 -Subject: [PATCH] configure: Fix initialization from incompatible pointer type - -With GCC 14: - - configure:20816: checking if environ is declared in header files - configure:20833: gcc -c -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grec -ord-gcc-switches -pipe -Wall -Werror=format-security --Werror=implicit-function-declaration -Werror=implicit-int --Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong --specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic --fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection --fno-omit-frame-pointer -mno-omit-leaf-frame-pointer conftest.c >&5 - conftest.c: In function 'test': - conftest.c:62:22: error: initialization of 'const char **' from incompatible p -ointer type 'char **' - 62 | const char **env = environ; - | ^~~~~~~ - -Thanks: Florian Weimer ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 602cdc5cb..e7d58dcc8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -336,7 +336,7 @@ AC_LANG_SOURCE([[ - static int - test (void) - { -- const char **env = environ; -+ char **env = environ; - return env ? 1 : 0; // this just forces env to be used - } - ]]) --- -2.43.0 - diff --git a/nbdkit.spec b/nbdkit.spec index accd8ce..af8d5cf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,14 +54,14 @@ ExclusiveArch: x86_64 %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 +%global patches_touch_autotools %{nil} # The source directory. %global source_directory 1.37-development Name: nbdkit -Version: 1.37.3 -Release: 4%{?dist} +Version: 1.37.4 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -92,9 +92,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Upstream fix for GCC 14 -Patch: 0001-configure-Fix-initialization-from-incompatible-point.patch - BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -1329,6 +1326,9 @@ fi %changelog +* Tue Dec 19 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.4-1 +- New upstream development version 1.37.4 + * Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.3-4 - OCaml 5.1.1 + s390x code gen fix for Fedora 40 diff --git a/sources b/sources index 8e6df75..236f94a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.3.tar.gz) = 6f3a78e24a93776623a3209cf4c2e4824c8ab78c761186d13964be7af06ffaab34a550d89be5ea297b1d25c81b3646e8ff2d42389d1b1a0281577fa5bf319445 -SHA512 (nbdkit-1.37.3.tar.gz.sig) = b1c833b46c0eb488dfc831f1b554c094dd63f1f8aad97eaa054c61579ed5262a674370e46ca21b4d3843d8f24c6d713c956842d7217bb7949097f58168a205c2 +SHA512 (nbdkit-1.37.4.tar.gz) = 6acc7afd7733744d8cfdaff6e76fc3184fc06369d70ee2aee9f4e2b8b42f01509a230ec65b7d7df5bfa31fe9008d3b879593f02a3a88bcb8d7958f0829ca1429 +SHA512 (nbdkit-1.37.4.tar.gz.sig) = 1f0a0a2d38383d33b23ed32f3dd4301bb17a659113cc31f9f86c046b6b5e2c38cb439ed0abfad61ab0f33db11e50576593fc438cc464b3abd5c3eef5a6e60a89 From de42188bf3c5e326eae0eb62291e55751643733e Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA <mtasaka@fedoraproject.org> Date: Wed, 3 Jan 2024 23:34:13 +0900 Subject: [PATCH 551/683] Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index af8d5cf..37697da 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -61,7 +61,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.37.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1326,6 +1326,9 @@ fi %changelog +* Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.37.4-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 + * Tue Dec 19 2023 Richard W.M. Jones <rjones@redhat.com> - 1.37.4-1 - New upstream development version 1.37.4 From 63cf2b755e2639574a4f9a014ec0138fee60bb94 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 16 Jan 2024 12:55:14 +0000 Subject: [PATCH 552/683] New upstream development version 1.37.5 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 37697da..39110b0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -60,8 +60,8 @@ ExclusiveArch: x86_64 %global source_directory 1.37-development Name: nbdkit -Version: 1.37.4 -Release: 2%{?dist} +Version: 1.37.5 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1326,6 +1326,9 @@ fi %changelog +* Tue Jan 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-1 +- New upstream development version 1.37.5 + * Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.37.4-2 - Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 diff --git a/sources b/sources index 236f94a..6deff94 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.4.tar.gz) = 6acc7afd7733744d8cfdaff6e76fc3184fc06369d70ee2aee9f4e2b8b42f01509a230ec65b7d7df5bfa31fe9008d3b879593f02a3a88bcb8d7958f0829ca1429 -SHA512 (nbdkit-1.37.4.tar.gz.sig) = 1f0a0a2d38383d33b23ed32f3dd4301bb17a659113cc31f9f86c046b6b5e2c38cb439ed0abfad61ab0f33db11e50576593fc438cc464b3abd5c3eef5a6e60a89 +SHA512 (nbdkit-1.37.5.tar.gz) = 7f246fe0665a30d04641c8181d408d50859bf96c251dceb37c797057f2c32316174e7d293d2090d3b9979ff28edf337cedf4f5305e901054eebe7b97a0804e67 +SHA512 (nbdkit-1.37.5.tar.gz.sig) = 78be5c0f05ef20d4a651416799faeec180a3c48aeea547bb174bebf1b87dadac927e99faf8dcfdb27998f1747c6f7519d96e8d6f895f448ff9120b74a8a3e121 From d3338b004bc6512f32b6a942a89fcaf6981c0c71 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Sun, 21 Jan 2024 09:18:09 +0000 Subject: [PATCH 553/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 39110b0..b79dd6d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -61,7 +61,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.37.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1326,6 +1326,9 @@ fi %changelog +* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.37.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Tue Jan 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-1 - New upstream development version 1.37.5 From fb41373acca2aa51cb42289a1bca4b57cba1ddd9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 11:00:54 +0000 Subject: [PATCH 554/683] Remove support for RHEL 7 RHEL 7 is now in EUS phase, we don't need to keep support around for it here. --- nbdkit.spec | 8 -------- 1 file changed, 8 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b79dd6d..2bec7ab 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -42,14 +42,6 @@ # it as a bug and add it to this list. %global broken_test_arches NONE -%if 0%{?rhel} == 7 -# On RHEL 7, nothing in the virt stack is shipped on aarch64 and -# libguestfs was not shipped on POWER (fixed in 7.5). We could in -# theory make all of this work by having lots more conditionals, but -# for now limit this package to x86_64 on RHEL. -ExclusiveArch: x86_64 -%endif - # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 From 8233ecfd32c6d215940b85100dcc8c72ee557be1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 14:16:56 +0000 Subject: [PATCH 555/683] Build into a subdirectory rather than the package source directory This requires some upstream fixes for srcdir != builddir. --- ...tmaps-Fix-tests-when-srcdir-builddir.patch | 24 ++ ...x-tests-to-work-with-srcdir-builddir.patch | 284 ++++++++++++++++++ nbdkit.spec | 18 +- 3 files changed, 324 insertions(+), 2 deletions(-) create mode 100644 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch create mode 100644 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch diff --git a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch new file mode 100644 index 0000000..0263951 --- /dev/null +++ b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch @@ -0,0 +1,24 @@ +From 93a1538808ac7f9788336a7e35168d851e8b2c72 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 23 Jan 2024 13:24:48 +0000 +Subject: [PATCH 1/2] common/bitmaps: Fix tests when srcdir != builddir + +--- + common/bitmap/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/common/bitmap/Makefile.am b/common/bitmap/Makefile.am +index 3b7f4b44f..93ca1ee43 100644 +--- a/common/bitmap/Makefile.am ++++ b/common/bitmap/Makefile.am +@@ -52,6 +52,7 @@ check_PROGRAMS = test-bitmap + test_bitmap_SOURCES = test-bitmap.c bitmap.c bitmap.h + test_bitmap_CPPFLAGS = \ + -I$(top_srcdir)/include \ ++ -I$(top_builddir)/include \ + -I$(top_srcdir)/common/include \ + $(NULL) + test_bitmap_CFLAGS = $(WARNINGS_CFLAGS) +-- +2.43.0 + diff --git a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch new file mode 100644 index 0000000..feb49e8 --- /dev/null +++ b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch @@ -0,0 +1,284 @@ +From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 23 Jan 2024 13:35:02 +0000 +Subject: [PATCH 2/2] tests: Fix tests to work with srcdir != builddir + +--- + tests/test-cc-cpp.sh | 2 +- + tests/test-cc-ocaml.sh | 2 +- + tests/test-cc.sh | 2 +- + tests/test-curl-header-script-fail.sh | 2 +- + tests/test-linuxdisk-copy-out.sh | 4 ++-- + tests/test-multi-conn-name.sh | 6 ++++-- + tests/test-multi-conn.sh | 20 +++++++++++--------- + tests/test-plugin-docs.sh | 2 +- + tests/test-shebang-cc.sh | 3 +++ + tests/test-tar.sh | 2 +- + tests/cc-shebang.c | 4 +++- + tests/test-read-password-plugin.c | 4 +++- + 12 files changed, 32 insertions(+), 21 deletions(-) + +diff --git a/tests/test-cc-cpp.sh b/tests/test-cc-cpp.sh +index ebbdab31d..dd9bf58d8 100755 +--- a/tests/test-cc-cpp.sh ++++ b/tests/test-cc-cpp.sh +@@ -55,6 +55,6 @@ rm -f $out + + nbdkit cc $script \ + CC="$CXX" \ +- EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ ++ EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((100 * 1024 * 1024)) +diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh +index 68972fce0..79eb678df 100755 +--- a/tests/test-cc-ocaml.sh ++++ b/tests/test-cc-ocaml.sh +@@ -57,6 +57,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit -v cc $script a=1 b=2 c=3 d=4 \ +- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ ++ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I ../plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((512 * 2048)) +diff --git a/tests/test-cc.sh b/tests/test-cc.sh +index 2646704be..5c1db8b96 100755 +--- a/tests/test-cc.sh ++++ b/tests/test-cc.sh +@@ -53,6 +53,6 @@ cleanup_fn rm -f $out + rm -f $out + + nbdkit cc $script \ +- EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ ++ EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ + --run 'nbdinfo --size $uri' > $out + test "$(cat $out)" -eq $((100 * 1024 * 1024)) +diff --git a/tests/test-curl-header-script-fail.sh b/tests/test-curl-header-script-fail.sh +index cf9614f96..282e0ddf0 100755 +--- a/tests/test-curl-header-script-fail.sh ++++ b/tests/test-curl-header-script-fail.sh +@@ -50,7 +50,7 @@ cleanup_fn rm -f $errors + # This command is expected to fail. + nbdkit -rfv \ + curl file:$PWD/disk protocols=file \ +- header-script=$PWD/test-curl-header-script-fail.script \ ++ header-script=$abs_top_srcdir/tests/test-curl-header-script-fail.script \ + --run 'nbdinfo --no-content $uri' >$errors 2>&1 ||: + + cat $errors +diff --git a/tests/test-linuxdisk-copy-out.sh b/tests/test-linuxdisk-copy-out.sh +index 8c2f44bad..81b5b7439 100755 +--- a/tests/test-linuxdisk-copy-out.sh ++++ b/tests/test-linuxdisk-copy-out.sh +@@ -65,14 +65,14 @@ guestfish --ro -a linuxdisk-copy-out.img -m /dev/sda <<EOF + tar-out / - | cat >/dev/null + + # Download some files and compare to local copies. +- download /Makefile linuxdisk-copy-out.test1 ++ download /virtual-disk.c linuxdisk-copy-out.test1 + download /Makefile.am linuxdisk-copy-out.test2 + download /nbdkit-linuxdisk-plugin.pod linuxdisk-copy-out.test3 + download /filesystem.c linuxdisk-copy-out.test4 + EOF + + # Compare downloaded files to local versions. +-cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/Makefile ++cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/virtual-disk.c + cmp linuxdisk-copy-out.test2 $srcdir/../plugins/linuxdisk/Makefile.am + cmp linuxdisk-copy-out.test3 $srcdir/../plugins/linuxdisk/nbdkit-linuxdisk-plugin.pod + cmp linuxdisk-copy-out.test4 $srcdir/../plugins/linuxdisk/filesystem.c +diff --git a/tests/test-multi-conn-name.sh b/tests/test-multi-conn-name.sh +index 6a180db72..2d2072925 100755 +--- a/tests/test-multi-conn-name.sh ++++ b/tests/test-multi-conn-name.sh +@@ -42,6 +42,8 @@ requires_nbdsh_uri + requires nbdsh -c 'print(h.set_opt_mode)' + requires dd iflag=count_bytes </dev/null + ++plugin=$srcdir/../tests/test-multi-conn-plugin.sh ++ + files="test-multi-conn-name.out" + rm -f $files + cleanup_fn rm -f $files +@@ -69,7 +71,7 @@ print(bytes(h["b1"].pread(1, 0))) + ' + + # Without the knob we flush all exports +-nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ ++nbdkit -vf sh $plugin --filter=multi-conn \ + --run 'export uri; nbdsh -c "$script"' > test-multi-conn-name.out || fail=1 + diff -u <(cat <<\EOF + b'A' +@@ -77,7 +79,7 @@ b'B' + EOF + ) test-multi-conn-name.out || fail=1 + # But with the knob, our flush is specific to the correct export +-nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ ++nbdkit -vf sh $plugin --filter=multi-conn \ + multi-conn-exportname=true \ + --run 'export uri; nbdsh -c "$script"' > test-multi-conn-name.out || fail=1 + diff -u <(cat <<\EOF +diff --git a/tests/test-multi-conn.sh b/tests/test-multi-conn.sh +index 3383cd246..eec225c2a 100755 +--- a/tests/test-multi-conn.sh ++++ b/tests/test-multi-conn.sh +@@ -41,6 +41,8 @@ requires_plugin sh + requires_nbdsh_uri + requires dd iflag=count_bytes </dev/null + ++plugin=$srcdir/../tests/test-multi-conn-plugin.sh ++ + files="test-multi-conn.out test-multi-conn.stat" + rm -f $files + cleanup_fn rm -f $files +@@ -63,7 +65,7 @@ print(h[0].can_multi_conn()) + + # Demonstrate the caching present without use of filter + for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do +- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ ++ nbdkit -vf sh $plugin $filter \ + --run 'handles=4 nbdsh -c "$preamble" -c " + # Without flush, reads cache, and writes do not affect persistent data + print(bytes(h[0].pread(4, 0))) +@@ -109,7 +111,7 @@ done + + # Demonstrate specifics of FUA flag + for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do +- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ ++ nbdkit -vf sh $plugin $filter \ + --run 'nbdsh -c "$preamble" -c " + # Some servers let FUA flush all outstanding requests + h[0].pwrite(b'\''hello '\'', 0) +@@ -123,7 +125,7 @@ EOF + ) test-multi-conn.out || fail=1 + done + for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do +- nbdkit -vf sh test-multi-conn-plugin.sh strictfua=1 $filter \ ++ nbdkit -vf sh $plugin strictfua=1 $filter \ + --run 'nbdsh -c "$preamble" -c " + # But it is also compliant for a server that only flushes the exact request + h[0].pwrite(b'\''hello '\'', 0) +@@ -155,7 +157,7 @@ done + # mode is also able to supply multi-conn by a different technique. + for filter in '--filter=multi-conn' 'strictfua=1 --filter=multi-conn' \ + '--filter=multi-conn multi-conn-mode=plugin --filter=cache' ; do +- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ ++ nbdkit -vf sh $plugin $filter \ + --run 'nbdsh -c "$preamble" -c " + # FUA writes are immediately visible on all connections + h[0].cache(12, 0) +@@ -175,7 +177,7 @@ EOF + done + + # unsafe mode intentionally lacks consistency, use at your own risk +-nbdkit -vf sh test-multi-conn-plugin.sh \ ++nbdkit -vf sh $plugin \ + --filter=multi-conn multi-conn-mode=unsafe \ + --run 'nbdsh -c "$preamble" -c " + h[0].cache(12, 0) +@@ -193,7 +195,7 @@ EOF + ) test-multi-conn.out || fail=1 + + # auto mode devolves to multi-conn disable when connections are serialized +-nbdkit -vf sh test-multi-conn-plugin.sh --filter=noparallel \ ++nbdkit -vf sh $plugin --filter=noparallel \ + serialize=connections --filter=multi-conn --filter=cache \ + --run 'handles=1 nbdsh -c "$preamble" + ' > test-multi-conn.out || fail=1 +@@ -208,7 +210,7 @@ for level in off connection fast; do + plugin 'plugin --filter=cache'; do + echo "setup: $level $mode" >> test-multi-conn.stat + # Flush with no activity +- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ ++ nbdkit -vf sh $plugin --filter=multi-conn \ + --filter=stats statsfile=test-multi-conn.stat statsappend=true \ + multi-conn-track-dirty=$level multi-conn-mode=$mode \ + --run 'nbdsh -c "$preamble" -c " +@@ -217,7 +219,7 @@ h[0].pread(1, 0) + h[0].flush() + "' > test-multi-conn.out || fail=1 + # Client that flushes assuming multi-conn semantics +- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ ++ nbdkit -vf sh $plugin --filter=multi-conn \ + --filter=stats statsfile=test-multi-conn.stat statsappend=true \ + multi-conn-track-dirty=$level multi-conn-mode=$mode \ + --run 'handles=4 nbdsh -c "$preamble" -c " +@@ -230,7 +232,7 @@ h[3].flush() + h[3].flush() + "' > test-multi-conn.out || fail=1 + # Client that flushes assuming inconsistent semantics +- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ ++ nbdkit -vf sh $plugin --filter=multi-conn \ + --filter=stats statsfile=test-multi-conn.stat statsappend=true \ + multi-conn-track-dirty=$level multi-conn-mode=$mode \ + --run 'nbdsh -c "$preamble" -c " +diff --git a/tests/test-plugin-docs.sh b/tests/test-plugin-docs.sh +index 772cfff07..e329035da 100755 +--- a/tests/test-plugin-docs.sh ++++ b/tests/test-plugin-docs.sh +@@ -59,7 +59,7 @@ run_test () + { + plugin="$1" + +- pod=../plugins/$plugin/nbdkit-$plugin-plugin.pod ++ pod=$srcdir/../plugins/$plugin/nbdkit-$plugin-plugin.pod + test -f "$pod" + + # Get the key=value lines from the help output. +diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh +index b25b789f7..674d0fcef 100755 +--- a/tests/test-shebang-cc.sh ++++ b/tests/test-shebang-cc.sh +@@ -45,6 +45,9 @@ requires_run + requires_plugin cc + requires guestfish --version + ++# This variable is used by $script. ++export abs_top_srcdir ++ + $script -fv \ + EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ + --run ' +diff --git a/tests/test-tar.sh b/tests/test-tar.sh +index 9c9b3974f..d1a602b99 100755 +--- a/tests/test-tar.sh ++++ b/tests/test-tar.sh +@@ -45,7 +45,7 @@ cleanup_fn rm -f $files + + # Create a tar file containing the disk image plus some other random + # files that hopefully will be ignored. +-tar cf tar.tar test-tar.sh Makefile disk Makefile.am ++tar cf tar.tar Makefile disk functions.sh + tar tvvf tar.tar + + # Run nbdkit. +diff --git a/tests/cc-shebang.c b/tests/cc-shebang.c +index de2730f67..882fa2c1c 100755 +--- a/tests/cc-shebang.c ++++ b/tests/cc-shebang.c +@@ -1,5 +1,7 @@ + #if 0 +-exec nbdkit cc "$0" "$@" ++exec nbdkit cc "$0" "$@" \ ++ EXTRA_CFLAGS="-I.. -I../include \ ++ -I$abs_top_srcdir/include" + #endif + #include <stdint.h> + #include <string.h> +diff --git a/tests/test-read-password-plugin.c b/tests/test-read-password-plugin.c +index 3f0a95153..703fc724d 100755 +--- a/tests/test-read-password-plugin.c ++++ b/tests/test-read-password-plugin.c +@@ -1,5 +1,7 @@ + #if 0 +-exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I$abs_top_srcdir/include" ++exec nbdkit cc "$0" "$@" \ ++ EXTRA_CFLAGS="-I.. -I../include \ ++ -I$abs_top_srcdir/include" + #endif + /* nbdkit + * Copyright Red Hat +-- +2.43.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 2bec7ab..797ed0c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -46,7 +46,7 @@ %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools %{nil} +%global patches_touch_autotools 1 # The source directory. %global source_directory 1.37-development @@ -84,6 +84,10 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Upstream patches to fix srcdir != builddir +Patch: 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch +Patch: 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch + BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -696,6 +700,10 @@ autoreconf -i %build +mkdir build_native +pushd build_native +%global _configure ../configure + # Golang bindings are not enabled in the build since they don't # need to be. Most people would use them by copying the upstream # package into their vendor/ directory. @@ -787,8 +795,11 @@ make -f %{_datadir}/selinux/devel/Makefile %{modulename}.pp bzip2 -9 %{modulename}.pp %endif +popd + %install +pushd build_native %make_install # Delete libtool crap. @@ -819,10 +830,12 @@ install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/ install -D -m 0644 %{modulename}.pp.bz2 $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.bz2 install -D -p -m 0644 selinux/%{modulename}.if $RPM_BUILD_ROOT%{_datadir}/selinux/devel/include/distributed/%{modulename}.if %endif +popd %check %ifnarch %{broken_test_arches} +pushd build_native function skip_test () { for f in "$@"; do @@ -867,6 +880,7 @@ export LIBGUESTFS_TRACE=1 cat tests/test-suite.log exit 1 } +popd %endif @@ -1269,7 +1283,7 @@ fi # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c %if !0%{?rhel} -%doc plugins/example4/nbdkit-example4-plugin +%doc build_native/plugins/example4/nbdkit-example4-plugin %doc plugins/lua/example.lua %endif %if !0%{?rhel} && 0%{?have_ocaml} From 348c2fe9f4e69a801aafb477d6a38760215f0d14 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 14:17:52 +0000 Subject: [PATCH 556/683] Add mingw{32,64}-nbdkit subpackages --- nbdkit.spec | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 797ed0c..67ea91f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -25,6 +25,11 @@ # but somehow "fixed itself", keep an eye on it. %global have_blkio 1 +# Enable mingw subpackage on Fedora only. +%if 0%{?fedora} +%global have_mingw 1 +%endif + # Enable nbdkit-selinux package. %global with_selinux 1 %global modulename nbdkit @@ -168,6 +173,25 @@ BuildRequires: %{_bindir}/stat # itself, but it's a simple noarch package so easy to install. BuildRequires: nbdkit-srpm-macros >= 1.30.0 +%if 0%{?have_mingw} +BuildRequires: mingw32-filesystem +BuildRequires: mingw64-filesystem +BuildRequires: mingw32-gcc +BuildRequires: mingw64-gcc +BuildRequires: mingw32-gcc-c++ +BuildRequires: mingw64-gcc-c++ +BuildRequires: mingw32-dlfcn +BuildRequires: mingw64-dlfcn +BuildRequires: mingw32-gnutls +BuildRequires: mingw64-gnutls +BuildRequires: mingw32-winpthreads +BuildRequires: mingw64-winpthreads +BuildRequires: mingw32-xz +BuildRequires: mingw64-xz +BuildRequires: mingw32-zlib +BuildRequires: mingw64-zlib +%endif + # nbdkit is a metapackage pulling the server and a useful subset # of the plugins and filters. Requires: nbdkit-server%{?_isa} = %{version}-%{release} @@ -689,6 +713,43 @@ BuildRequires: selinux-policy-devel %endif +%if 0%{?have_mingw} +%package -n mingw32-%{name} +Summary: nbdkit binary, plugins, filters, development files for Windows +BuildArch: noarch +Requires: mingw32-filesystem +Requires: pkgconfig + +%description -n mingw32-%{name} +NBD is a protocol for accessing block devices (hard disks and +disk-like things) over the network. + +nbdkit is a toolkit for creating NBD servers. + +This package contains the nbdkit binary, plugins, filters and +development kit for 32 bit versions of Windows. + + +%package -n mingw64-%{name} +Summary: nbdkit binary, plugins, filters, development files for Windows +BuildArch: noarch +Requires: mingw64-filesystem +Requires: pkgconfig + +%description -n mingw64-%{name} +NBD is a protocol for accessing block devices (hard disks and +disk-like things) over the network. + +nbdkit is a toolkit for creating NBD servers. + +This package contains the nbdkit binary, plugins, filters and +development kit for 64 bit versions of Windows. + + +%{?mingw_debug_package} +%endif + + %prep %if 0%{verify_tarball_signature} %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' @@ -797,6 +858,44 @@ bzip2 -9 %{modulename}.pp popd +%if 0%{?have_mingw} +%mingw_configure \ + --disable-static \ + --enable-shared \ + --with-extra='%{name}-%{version}-%{release}' \ + --with-tls-priority=@NBDKIT,SYSTEM \ + --disable-golang \ + --disable-libguestfs-tests \ + --disable-linuxdisk \ + --disable-lua \ + --disable-ocaml \ + --disable-perl \ + --disable-python \ + --disable-ruby \ + --disable-rust \ + --disable-tcl \ + --disable-torrent \ + --disable-valgrind \ + --disable-vddk \ + --without-bash-completions \ + --without-curl \ + --without-ext2 \ + --with-gnutls \ + --without-iso \ + --without-libblkio \ + --without-libguestfs \ + --without-libnbd \ + --without-libvirt \ + --with-liblzma \ + --without-manpages \ + --without-selinux \ + --without-ssh \ + --with-zlib \ + %{nil} + +%mingw_make %{?_smp_mflags} +%endif + %install pushd build_native @@ -832,6 +931,24 @@ install -D -p -m 0644 selinux/%{modulename}.if $RPM_BUILD_ROOT%{_datadir}/selinu %endif popd +%if 0%{?have_mingw} +%mingw_make_install + +# Remove .la files +rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.la + +# The .def files aren't interesting for other binaries +rm -f $RPM_BUILD_ROOT%{mingw32_bindir}/*.def +rm -f $RPM_BUILD_ROOT%{mingw64_bindir}/*.def + +# Remove man pages which duplicate stuff in Fedora already. +rm -rf $RPM_BUILD_ROOT%{mingw32_mandir} +rm -rf $RPM_BUILD_ROOT%{mingw64_mandir} + +%mingw_debug_install_post +%endif + %check %ifnarch %{broken_test_arches} @@ -1331,7 +1448,30 @@ fi %endif +%if 0%{?have_mingw} +%files -n mingw32-%{name} +%license LICENSE +%{mingw32_sbindir}/nbdkit.exe +%{mingw32_libdir}/%{name}/ +%{mingw32_libdir}/libnbdkit.a +%{mingw32_libdir}/pkgconfig/%{name}.pc +%{mingw32_includedir}/*.h + + +%files -n mingw64-%{name} +%license LICENSE +%{mingw64_sbindir}/nbdkit.exe +%{mingw64_libdir}/%{name}/ +%{mingw64_libdir}/libnbdkit.a +%{mingw64_libdir}/pkgconfig/%{name}.pc +%{mingw64_includedir}/*.h +%endif + + %changelog +* Tue Jan 23 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-2 +- Add mingw{32,64}-nbdkit subpackages + * Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.37.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From cf7389fcdd7ecd1ae699fe29c6393b7ca6c3c7c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 17:55:20 +0000 Subject: [PATCH 557/683] Bump release for rebuild --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 67ea91f..72eb510 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -58,7 +58,7 @@ Name: nbdkit Version: 1.37.5 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1469,7 +1469,7 @@ fi %changelog -* Tue Jan 23 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-2 +* Tue Jan 23 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-3 - Add mingw{32,64}-nbdkit subpackages * Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.37.5-2 From 2fd0615d12091053ed596b604bc93f2b649adf96 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 18:12:47 +0000 Subject: [PATCH 558/683] Potential fix for parallel builds failure of mingw subpackage --- ...tmaps-Fix-tests-when-srcdir-builddir.patch | 2 +- ...x-tests-to-work-with-srcdir-builddir.patch | 2 +- ...nts-win32-Only-build-nbdkit-cat.mc-d.patch | 48 +++++++++++++++++++ nbdkit.spec | 1 + 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch diff --git a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch index 0263951..ea7acc2 100644 --- a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch +++ b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch @@ -1,7 +1,7 @@ From 93a1538808ac7f9788336a7e35168d851e8b2c72 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 13:24:48 +0000 -Subject: [PATCH 1/2] common/bitmaps: Fix tests when srcdir != builddir +Subject: [PATCH 1/3] common/bitmaps: Fix tests when srcdir != builddir --- common/bitmap/Makefile.am | 1 + diff --git a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch index feb49e8..93d28f8 100644 --- a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch +++ b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch @@ -1,7 +1,7 @@ From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 13:35:02 +0000 -Subject: [PATCH 2/2] tests: Fix tests to work with srcdir != builddir +Subject: [PATCH 2/3] tests: Fix tests to work with srcdir != builddir --- tests/test-cc-cpp.sh | 2 +- diff --git a/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch b/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch new file mode 100644 index 0000000..b9f8ae0 --- /dev/null +++ b/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch @@ -0,0 +1,48 @@ +From 774465bb9e3444f23709deabeb39cc91490001a5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 23 Jan 2024 18:08:12 +0000 +Subject: [PATCH 3/3] common/replacements/win32: Only build nbdkit-cat.mc + derived files once + +Previously parallel builds caused multiple instances of windmc to run. +Use a stamp file to avoid this. +--- + common/replacements/win32/Makefile.am | 9 +++++++-- + .gitignore | 1 + + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/common/replacements/win32/Makefile.am b/common/replacements/win32/Makefile.am +index 9b5a68db0..b8c7c639e 100644 +--- a/common/replacements/win32/Makefile.am ++++ b/common/replacements/win32/Makefile.am +@@ -38,8 +38,13 @@ if IS_WINDOWS + # Build the message catalog. + noinst_DATA = MSG00001.bin nbdkit-cat.h nbdkit-cat.rc + +-$(noinst_DATA): nbdkit-cat.mc +- rm -f $@ ++CLEANFILES += stamp-data ++ ++$(noinst_DATA): stamp-data ++ ++stamp-data: nbdkit-cat.mc ++ rm -f $@ $(noinst_DATA) + $(MC) $< ++ touch $@ + + endif +diff --git a/.gitignore b/.gitignore +index 04fdcd723..14f816c93 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -55,6 +55,7 @@ plugins/*/*.3 + /common/replacements/win32/MSG00001.bin + /common/replacements/win32/nbdkit-cat.h + /common/replacements/win32/nbdkit-cat.rc ++/common/replacements/win32/stamp-data + /common/utils/test-quotes + /common/utils/test-vector + /common/utils/windows-errors.c +-- +2.43.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 72eb510..019f681 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -92,6 +92,7 @@ Source8: %{modulename}.fc # Upstream patches to fix srcdir != builddir Patch: 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch Patch: 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch +Patch: 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch BuildRequires: make %if 0%{patches_touch_autotools} From d89cffce88b1c4da4944fa85951166e4f5cbbbad Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 24 Jan 2024 10:58:07 +0000 Subject: [PATCH 559/683] Temporary workaround for binutils bug https://sourceware.org/bugzilla/show_bug.cgi?id=31283 Use git to apply the patches since patch 0004 contains a binary patch. --- ...tmaps-Fix-tests-when-srcdir-builddir.patch | 2 +- ...x-tests-to-work-with-srcdir-builddir.patch | 2 +- ...nts-win32-Only-build-nbdkit-cat.mc-d.patch | 2 +- ...ents-win32-Make-windmc-tool-optional.patch | 192 ++++++++++++++++++ nbdkit.spec | 12 +- 5 files changed, 205 insertions(+), 5 deletions(-) create mode 100644 0004-common-replacements-win32-Make-windmc-tool-optional.patch diff --git a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch index ea7acc2..4f98f9b 100644 --- a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch +++ b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch @@ -1,7 +1,7 @@ From 93a1538808ac7f9788336a7e35168d851e8b2c72 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 13:24:48 +0000 -Subject: [PATCH 1/3] common/bitmaps: Fix tests when srcdir != builddir +Subject: [PATCH 1/4] common/bitmaps: Fix tests when srcdir != builddir --- common/bitmap/Makefile.am | 1 + diff --git a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch index 93d28f8..7461254 100644 --- a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch +++ b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch @@ -1,7 +1,7 @@ From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 13:35:02 +0000 -Subject: [PATCH 2/3] tests: Fix tests to work with srcdir != builddir +Subject: [PATCH 2/4] tests: Fix tests to work with srcdir != builddir --- tests/test-cc-cpp.sh | 2 +- diff --git a/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch b/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch index b9f8ae0..28c0ccb 100644 --- a/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch +++ b/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch @@ -1,7 +1,7 @@ From 774465bb9e3444f23709deabeb39cc91490001a5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 23 Jan 2024 18:08:12 +0000 -Subject: [PATCH 3/3] common/replacements/win32: Only build nbdkit-cat.mc +Subject: [PATCH 3/4] common/replacements/win32: Only build nbdkit-cat.mc derived files once Previously parallel builds caused multiple instances of windmc to run. diff --git a/0004-common-replacements-win32-Make-windmc-tool-optional.patch b/0004-common-replacements-win32-Make-windmc-tool-optional.patch new file mode 100644 index 0000000..de45bd0 --- /dev/null +++ b/0004-common-replacements-win32-Make-windmc-tool-optional.patch @@ -0,0 +1,192 @@ +From 617f950de1d18d5ddd146c32d700afd81470a284 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 24 Jan 2024 10:46:26 +0000 +Subject: [PATCH 4/4] common/replacements/win32: Make windmc tool optional + +Make the windmc (mc.exe) tool option even on Windows. + +Distribute the generated message catalogs, but regenerate them if +windmc is found at compile time. + +I also changed mc -> mc.exe since "mc" on Linux is a program called +Midnight Commander and mc.exe would only be the name when compiling on +Windows. (If there's any confusion here, you can always define the +right binary to use by doing: ./configure MC=/path/to/mc.exe) +--- + configure.ac | 10 ++-- + common/replacements/win32/Makefile.am | 13 +++-- + common/replacements/win32/nbdkit-cat.h | 68 ++++++++++++++++++++++++ + common/replacements/win32/MSG00001.bin | Bin 0 -> 28 bytes + common/replacements/win32/nbdkit-cat.rc | 9 ++++ + .gitignore | 3 -- + 6 files changed, 89 insertions(+), 14 deletions(-) + create mode 100644 common/replacements/win32/nbdkit-cat.h + create mode 100644 common/replacements/win32/MSG00001.bin + create mode 100644 common/replacements/win32/nbdkit-cat.rc + +diff --git a/configure.ac b/configure.ac +index 08ba6287c..03c655638 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -584,13 +584,11 @@ AC_DEFINE_UNQUOTED([DIR_SEPARATOR_STR],["$DIR_SEPARATOR_STR"], + [String that separates path elements.]) + AM_CONDITIONAL([IS_WINDOWS],[test "x$is_windows" = "xyes"]) + ++dnl Look for the mc/windmc utility (optional). ++AC_CHECK_TOOLS([MC],[windmc mc.exe],[no]) ++AM_CONDITIONAL([HAVE_MC],[test "x$MC" != "xno"]) ++ + AS_IF([test "x$is_windows" = "xyes"],[ +- dnl For Windows, look for the mc/windmc utility. +- dnl XXX Do we need to check for mc.exe as well? +- AC_CHECK_TOOLS([MC],[windmc mc],[no]) +- AS_IF([test "x$MC" = "xno"], +- [AC_MSG_ERROR([mc/windmc utility must be available when compiling for Windows])]) +- + dnl On Windows look for dlltool. + AC_CHECK_TOOLS([DLLTOOL],[dlltool],[no]) + AS_IF([test "x$DLLTOOL" = "xno"], +diff --git a/common/replacements/win32/Makefile.am b/common/replacements/win32/Makefile.am +index b8c7c639e..45dcd6ac2 100644 +--- a/common/replacements/win32/Makefile.am ++++ b/common/replacements/win32/Makefile.am +@@ -29,15 +29,18 @@ + # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + # SUCH DAMAGE. + ++# The Windows message catalog. ++ + include $(top_srcdir)/common-rules.mk + +-EXTRA_DIST = nbdkit-cat.mc +- +-if IS_WINDOWS +- +-# Build the message catalog. + noinst_DATA = MSG00001.bin nbdkit-cat.h nbdkit-cat.rc + ++# We distribute the generated message catalog files to save people ++# needing to install the windmc tool, but they are regenerated (below) ++# if windmc is found at configure time. ++EXTRA_DIST = nbdkit-cat.mc $(noinst_DATA) ++ ++if HAVE_MC + CLEANFILES += stamp-data + + $(noinst_DATA): stamp-data +diff --git a/common/replacements/win32/nbdkit-cat.h b/common/replacements/win32/nbdkit-cat.h +new file mode 100644 +index 000000000..8081e453d +--- /dev/null ++++ b/common/replacements/win32/nbdkit-cat.h +@@ -0,0 +1,68 @@ ++/* Do not edit this file manually. ++ This file is autogenerated by windmc. */ ++ ++// ++// The values are 32 bit layed out as follows: ++// ++// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 ++// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ++// +---+-+-+-----------------------+-------------------------------+ ++// |Sev|C|R| Facility | Code | ++// +---+-+-+-----------------------+-------------------------------+ ++// ++// where ++// ++// C - is the Customer code flag ++// ++// R - is a reserved bit ++// ++// Code - is the facility's status code ++// ++// Sev - is the severity code ++// ++// Success - 00 ++// Informational - 01 ++// Warning - 02 ++// Error - 03 ++// ++// Facility - is the facility code ++// ++// System - 00ff ++// Application - 0fff ++// ++ ++// nbdkit ++// Copyright Red Hat ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// ++// * Redistributions in binary form must reproduce the above copyright ++// notice, this list of conditions and the following disclaimer in the ++// documentation and/or other materials provided with the distribution. ++// ++// * Neither the name of Red Hat nor the names of its contributors may be ++// used to endorse or promote products derived from this software without ++// specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ++// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR ++// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++// SUCH DAMAGE. ++// ++// MessageId: NBDKIT_SYSLOG_ERROR ++// ++#define NBDKIT_SYSLOG_ERROR 0xc0000001 ++ +diff --git a/common/replacements/win32/MSG00001.bin b/common/replacements/win32/MSG00001.bin +new file mode 100644 +index 0000000000000000000000000000000000000000..f642ff3a4079b4b8b3b60b9ecefebe7c136a404b +GIT binary patch +literal 28 +dcmZQ%U|?WmU^oE60zftokf+LE$iM|;0{|fO0s#O3 + +literal 0 +HcmV?d00001 + +diff --git a/common/replacements/win32/nbdkit-cat.rc b/common/replacements/win32/nbdkit-cat.rc +new file mode 100644 +index 000000000..6f6ce3344 +--- /dev/null ++++ b/common/replacements/win32/nbdkit-cat.rc +@@ -0,0 +1,9 @@ ++/* Do not edit this file manually. ++ This file is autogenerated by windmc. */ ++ ++ ++// Country: United States ++// Language: English ++#pragma code_page(1252) ++LANGUAGE 0x9, 0x1 ++1 MESSAGETABLE "MSG00001.bin" +diff --git a/.gitignore b/.gitignore +index 14f816c93..cce2de79b 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -52,9 +52,6 @@ plugins/*/*.3 + /common/protocol/protostrings.c + /common/replacements/libcompat.a + /common/replacements/test-current-dir-name +-/common/replacements/win32/MSG00001.bin +-/common/replacements/win32/nbdkit-cat.h +-/common/replacements/win32/nbdkit-cat.rc + /common/replacements/win32/stamp-data + /common/utils/test-quotes + /common/utils/test-vector +-- +2.43.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 019f681..a8d25ae 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -92,13 +92,18 @@ Source8: %{modulename}.fc # Upstream patches to fix srcdir != builddir Patch: 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch Patch: 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch +# Upstream patches to fix mingw builds Patch: 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch +Patch: 0004-common-replacements-win32-Make-windmc-tool-optional.patch + +# For applying the patches: +BuildRequires: git -BuildRequires: make %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif +BuildRequires: make BuildRequires: gcc, gcc-c++ BuildRequires: %{_bindir}/pod2man BuildRequires: gnutls-devel @@ -755,7 +760,7 @@ development kit for 64 bit versions of Windows. %if 0%{verify_tarball_signature} %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif -%autosetup -p1 +%autosetup -p1 -S git %if 0%{patches_touch_autotools} autoreconf -i %endif @@ -860,7 +865,10 @@ bzip2 -9 %{modulename}.pp popd %if 0%{?have_mingw} +# MC=no is a temporary hack until this bug is fixed in binutils: +# https://sourceware.org/bugzilla/show_bug.cgi?id=31283 %mingw_configure \ + MC=no \ --disable-static \ --enable-shared \ --with-extra='%{name}-%{version}-%{release}' \ From 5f12965c1ff5ccbdcbeefd765e61cff3d80efb67 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 1 Feb 2024 21:50:19 +0000 Subject: [PATCH 560/683] New upstream development version 1.37.6 --- ...tmaps-Fix-tests-when-srcdir-builddir.patch | 24 -- ...x-tests-to-work-with-srcdir-builddir.patch | 284 ------------------ ...nts-win32-Only-build-nbdkit-cat.mc-d.patch | 48 --- ...ents-win32-Make-windmc-tool-optional.patch | 192 ------------ nbdkit.spec | 14 +- sources | 4 +- 6 files changed, 7 insertions(+), 559 deletions(-) delete mode 100644 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch delete mode 100644 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch delete mode 100644 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch delete mode 100644 0004-common-replacements-win32-Make-windmc-tool-optional.patch diff --git a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch b/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch deleted file mode 100644 index 4f98f9b..0000000 --- a/0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 93a1538808ac7f9788336a7e35168d851e8b2c72 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 23 Jan 2024 13:24:48 +0000 -Subject: [PATCH 1/4] common/bitmaps: Fix tests when srcdir != builddir - ---- - common/bitmap/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/common/bitmap/Makefile.am b/common/bitmap/Makefile.am -index 3b7f4b44f..93ca1ee43 100644 ---- a/common/bitmap/Makefile.am -+++ b/common/bitmap/Makefile.am -@@ -52,6 +52,7 @@ check_PROGRAMS = test-bitmap - test_bitmap_SOURCES = test-bitmap.c bitmap.c bitmap.h - test_bitmap_CPPFLAGS = \ - -I$(top_srcdir)/include \ -+ -I$(top_builddir)/include \ - -I$(top_srcdir)/common/include \ - $(NULL) - test_bitmap_CFLAGS = $(WARNINGS_CFLAGS) --- -2.43.0 - diff --git a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch b/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch deleted file mode 100644 index 7461254..0000000 --- a/0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch +++ /dev/null @@ -1,284 +0,0 @@ -From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 23 Jan 2024 13:35:02 +0000 -Subject: [PATCH 2/4] tests: Fix tests to work with srcdir != builddir - ---- - tests/test-cc-cpp.sh | 2 +- - tests/test-cc-ocaml.sh | 2 +- - tests/test-cc.sh | 2 +- - tests/test-curl-header-script-fail.sh | 2 +- - tests/test-linuxdisk-copy-out.sh | 4 ++-- - tests/test-multi-conn-name.sh | 6 ++++-- - tests/test-multi-conn.sh | 20 +++++++++++--------- - tests/test-plugin-docs.sh | 2 +- - tests/test-shebang-cc.sh | 3 +++ - tests/test-tar.sh | 2 +- - tests/cc-shebang.c | 4 +++- - tests/test-read-password-plugin.c | 4 +++- - 12 files changed, 32 insertions(+), 21 deletions(-) - -diff --git a/tests/test-cc-cpp.sh b/tests/test-cc-cpp.sh -index ebbdab31d..dd9bf58d8 100755 ---- a/tests/test-cc-cpp.sh -+++ b/tests/test-cc-cpp.sh -@@ -55,6 +55,6 @@ rm -f $out - - nbdkit cc $script \ - CC="$CXX" \ -- EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ -+ EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((100 * 1024 * 1024)) -diff --git a/tests/test-cc-ocaml.sh b/tests/test-cc-ocaml.sh -index 68972fce0..79eb678df 100755 ---- a/tests/test-cc-ocaml.sh -+++ b/tests/test-cc-ocaml.sh -@@ -57,6 +57,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit -v cc $script a=1 b=2 c=3 d=4 \ -- CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ -+ CC="$OCAMLOPT" CFLAGS="-output-obj -runtime-variant _pic -I $abs_top_srcdir/plugins/ocaml -I ../plugins/ocaml $OCAML_PLUGIN_LIBRARIES NBDKit.cmx -cclib -L../plugins/ocaml/.libs -cclib -lnbdkitocaml" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((512 * 2048)) -diff --git a/tests/test-cc.sh b/tests/test-cc.sh -index 2646704be..5c1db8b96 100755 ---- a/tests/test-cc.sh -+++ b/tests/test-cc.sh -@@ -53,6 +53,6 @@ cleanup_fn rm -f $out - rm -f $out - - nbdkit cc $script \ -- EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ -+ EXTRA_CFLAGS="-I$abs_top_srcdir/include -I../include" \ - --run 'nbdinfo --size $uri' > $out - test "$(cat $out)" -eq $((100 * 1024 * 1024)) -diff --git a/tests/test-curl-header-script-fail.sh b/tests/test-curl-header-script-fail.sh -index cf9614f96..282e0ddf0 100755 ---- a/tests/test-curl-header-script-fail.sh -+++ b/tests/test-curl-header-script-fail.sh -@@ -50,7 +50,7 @@ cleanup_fn rm -f $errors - # This command is expected to fail. - nbdkit -rfv \ - curl file:$PWD/disk protocols=file \ -- header-script=$PWD/test-curl-header-script-fail.script \ -+ header-script=$abs_top_srcdir/tests/test-curl-header-script-fail.script \ - --run 'nbdinfo --no-content $uri' >$errors 2>&1 ||: - - cat $errors -diff --git a/tests/test-linuxdisk-copy-out.sh b/tests/test-linuxdisk-copy-out.sh -index 8c2f44bad..81b5b7439 100755 ---- a/tests/test-linuxdisk-copy-out.sh -+++ b/tests/test-linuxdisk-copy-out.sh -@@ -65,14 +65,14 @@ guestfish --ro -a linuxdisk-copy-out.img -m /dev/sda <<EOF - tar-out / - | cat >/dev/null - - # Download some files and compare to local copies. -- download /Makefile linuxdisk-copy-out.test1 -+ download /virtual-disk.c linuxdisk-copy-out.test1 - download /Makefile.am linuxdisk-copy-out.test2 - download /nbdkit-linuxdisk-plugin.pod linuxdisk-copy-out.test3 - download /filesystem.c linuxdisk-copy-out.test4 - EOF - - # Compare downloaded files to local versions. --cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/Makefile -+cmp linuxdisk-copy-out.test1 $srcdir/../plugins/linuxdisk/virtual-disk.c - cmp linuxdisk-copy-out.test2 $srcdir/../plugins/linuxdisk/Makefile.am - cmp linuxdisk-copy-out.test3 $srcdir/../plugins/linuxdisk/nbdkit-linuxdisk-plugin.pod - cmp linuxdisk-copy-out.test4 $srcdir/../plugins/linuxdisk/filesystem.c -diff --git a/tests/test-multi-conn-name.sh b/tests/test-multi-conn-name.sh -index 6a180db72..2d2072925 100755 ---- a/tests/test-multi-conn-name.sh -+++ b/tests/test-multi-conn-name.sh -@@ -42,6 +42,8 @@ requires_nbdsh_uri - requires nbdsh -c 'print(h.set_opt_mode)' - requires dd iflag=count_bytes </dev/null - -+plugin=$srcdir/../tests/test-multi-conn-plugin.sh -+ - files="test-multi-conn-name.out" - rm -f $files - cleanup_fn rm -f $files -@@ -69,7 +71,7 @@ print(bytes(h["b1"].pread(1, 0))) - ' - - # Without the knob we flush all exports --nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ -+nbdkit -vf sh $plugin --filter=multi-conn \ - --run 'export uri; nbdsh -c "$script"' > test-multi-conn-name.out || fail=1 - diff -u <(cat <<\EOF - b'A' -@@ -77,7 +79,7 @@ b'B' - EOF - ) test-multi-conn-name.out || fail=1 - # But with the knob, our flush is specific to the correct export --nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ -+nbdkit -vf sh $plugin --filter=multi-conn \ - multi-conn-exportname=true \ - --run 'export uri; nbdsh -c "$script"' > test-multi-conn-name.out || fail=1 - diff -u <(cat <<\EOF -diff --git a/tests/test-multi-conn.sh b/tests/test-multi-conn.sh -index 3383cd246..eec225c2a 100755 ---- a/tests/test-multi-conn.sh -+++ b/tests/test-multi-conn.sh -@@ -41,6 +41,8 @@ requires_plugin sh - requires_nbdsh_uri - requires dd iflag=count_bytes </dev/null - -+plugin=$srcdir/../tests/test-multi-conn-plugin.sh -+ - files="test-multi-conn.out test-multi-conn.stat" - rm -f $files - cleanup_fn rm -f $files -@@ -63,7 +65,7 @@ print(h[0].can_multi_conn()) - - # Demonstrate the caching present without use of filter - for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do -- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ -+ nbdkit -vf sh $plugin $filter \ - --run 'handles=4 nbdsh -c "$preamble" -c " - # Without flush, reads cache, and writes do not affect persistent data - print(bytes(h[0].pread(4, 0))) -@@ -109,7 +111,7 @@ done - - # Demonstrate specifics of FUA flag - for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do -- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ -+ nbdkit -vf sh $plugin $filter \ - --run 'nbdsh -c "$preamble" -c " - # Some servers let FUA flush all outstanding requests - h[0].pwrite(b'\''hello '\'', 0) -@@ -123,7 +125,7 @@ EOF - ) test-multi-conn.out || fail=1 - done - for filter in '' '--filter=multi-conn multi-conn-mode=plugin'; do -- nbdkit -vf sh test-multi-conn-plugin.sh strictfua=1 $filter \ -+ nbdkit -vf sh $plugin strictfua=1 $filter \ - --run 'nbdsh -c "$preamble" -c " - # But it is also compliant for a server that only flushes the exact request - h[0].pwrite(b'\''hello '\'', 0) -@@ -155,7 +157,7 @@ done - # mode is also able to supply multi-conn by a different technique. - for filter in '--filter=multi-conn' 'strictfua=1 --filter=multi-conn' \ - '--filter=multi-conn multi-conn-mode=plugin --filter=cache' ; do -- nbdkit -vf sh test-multi-conn-plugin.sh $filter \ -+ nbdkit -vf sh $plugin $filter \ - --run 'nbdsh -c "$preamble" -c " - # FUA writes are immediately visible on all connections - h[0].cache(12, 0) -@@ -175,7 +177,7 @@ EOF - done - - # unsafe mode intentionally lacks consistency, use at your own risk --nbdkit -vf sh test-multi-conn-plugin.sh \ -+nbdkit -vf sh $plugin \ - --filter=multi-conn multi-conn-mode=unsafe \ - --run 'nbdsh -c "$preamble" -c " - h[0].cache(12, 0) -@@ -193,7 +195,7 @@ EOF - ) test-multi-conn.out || fail=1 - - # auto mode devolves to multi-conn disable when connections are serialized --nbdkit -vf sh test-multi-conn-plugin.sh --filter=noparallel \ -+nbdkit -vf sh $plugin --filter=noparallel \ - serialize=connections --filter=multi-conn --filter=cache \ - --run 'handles=1 nbdsh -c "$preamble" - ' > test-multi-conn.out || fail=1 -@@ -208,7 +210,7 @@ for level in off connection fast; do - plugin 'plugin --filter=cache'; do - echo "setup: $level $mode" >> test-multi-conn.stat - # Flush with no activity -- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ -+ nbdkit -vf sh $plugin --filter=multi-conn \ - --filter=stats statsfile=test-multi-conn.stat statsappend=true \ - multi-conn-track-dirty=$level multi-conn-mode=$mode \ - --run 'nbdsh -c "$preamble" -c " -@@ -217,7 +219,7 @@ h[0].pread(1, 0) - h[0].flush() - "' > test-multi-conn.out || fail=1 - # Client that flushes assuming multi-conn semantics -- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ -+ nbdkit -vf sh $plugin --filter=multi-conn \ - --filter=stats statsfile=test-multi-conn.stat statsappend=true \ - multi-conn-track-dirty=$level multi-conn-mode=$mode \ - --run 'handles=4 nbdsh -c "$preamble" -c " -@@ -230,7 +232,7 @@ h[3].flush() - h[3].flush() - "' > test-multi-conn.out || fail=1 - # Client that flushes assuming inconsistent semantics -- nbdkit -vf sh test-multi-conn-plugin.sh --filter=multi-conn \ -+ nbdkit -vf sh $plugin --filter=multi-conn \ - --filter=stats statsfile=test-multi-conn.stat statsappend=true \ - multi-conn-track-dirty=$level multi-conn-mode=$mode \ - --run 'nbdsh -c "$preamble" -c " -diff --git a/tests/test-plugin-docs.sh b/tests/test-plugin-docs.sh -index 772cfff07..e329035da 100755 ---- a/tests/test-plugin-docs.sh -+++ b/tests/test-plugin-docs.sh -@@ -59,7 +59,7 @@ run_test () - { - plugin="$1" - -- pod=../plugins/$plugin/nbdkit-$plugin-plugin.pod -+ pod=$srcdir/../plugins/$plugin/nbdkit-$plugin-plugin.pod - test -f "$pod" - - # Get the key=value lines from the help output. -diff --git a/tests/test-shebang-cc.sh b/tests/test-shebang-cc.sh -index b25b789f7..674d0fcef 100755 ---- a/tests/test-shebang-cc.sh -+++ b/tests/test-shebang-cc.sh -@@ -45,6 +45,9 @@ requires_run - requires_plugin cc - requires guestfish --version - -+# This variable is used by $script. -+export abs_top_srcdir -+ - $script -fv \ - EXTRA_CFLAGS="-I$abs_top_srcdir/include" \ - --run ' -diff --git a/tests/test-tar.sh b/tests/test-tar.sh -index 9c9b3974f..d1a602b99 100755 ---- a/tests/test-tar.sh -+++ b/tests/test-tar.sh -@@ -45,7 +45,7 @@ cleanup_fn rm -f $files - - # Create a tar file containing the disk image plus some other random - # files that hopefully will be ignored. --tar cf tar.tar test-tar.sh Makefile disk Makefile.am -+tar cf tar.tar Makefile disk functions.sh - tar tvvf tar.tar - - # Run nbdkit. -diff --git a/tests/cc-shebang.c b/tests/cc-shebang.c -index de2730f67..882fa2c1c 100755 ---- a/tests/cc-shebang.c -+++ b/tests/cc-shebang.c -@@ -1,5 +1,7 @@ - #if 0 --exec nbdkit cc "$0" "$@" -+exec nbdkit cc "$0" "$@" \ -+ EXTRA_CFLAGS="-I.. -I../include \ -+ -I$abs_top_srcdir/include" - #endif - #include <stdint.h> - #include <string.h> -diff --git a/tests/test-read-password-plugin.c b/tests/test-read-password-plugin.c -index 3f0a95153..703fc724d 100755 ---- a/tests/test-read-password-plugin.c -+++ b/tests/test-read-password-plugin.c -@@ -1,5 +1,7 @@ - #if 0 --exec nbdkit cc "$0" "$@" EXTRA_CFLAGS="-I.. -I$abs_top_srcdir/include" -+exec nbdkit cc "$0" "$@" \ -+ EXTRA_CFLAGS="-I.. -I../include \ -+ -I$abs_top_srcdir/include" - #endif - /* nbdkit - * Copyright Red Hat --- -2.43.0 - diff --git a/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch b/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch deleted file mode 100644 index 28c0ccb..0000000 --- a/0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 774465bb9e3444f23709deabeb39cc91490001a5 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 23 Jan 2024 18:08:12 +0000 -Subject: [PATCH 3/4] common/replacements/win32: Only build nbdkit-cat.mc - derived files once - -Previously parallel builds caused multiple instances of windmc to run. -Use a stamp file to avoid this. ---- - common/replacements/win32/Makefile.am | 9 +++++++-- - .gitignore | 1 + - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/common/replacements/win32/Makefile.am b/common/replacements/win32/Makefile.am -index 9b5a68db0..b8c7c639e 100644 ---- a/common/replacements/win32/Makefile.am -+++ b/common/replacements/win32/Makefile.am -@@ -38,8 +38,13 @@ if IS_WINDOWS - # Build the message catalog. - noinst_DATA = MSG00001.bin nbdkit-cat.h nbdkit-cat.rc - --$(noinst_DATA): nbdkit-cat.mc -- rm -f $@ -+CLEANFILES += stamp-data -+ -+$(noinst_DATA): stamp-data -+ -+stamp-data: nbdkit-cat.mc -+ rm -f $@ $(noinst_DATA) - $(MC) $< -+ touch $@ - - endif -diff --git a/.gitignore b/.gitignore -index 04fdcd723..14f816c93 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -55,6 +55,7 @@ plugins/*/*.3 - /common/replacements/win32/MSG00001.bin - /common/replacements/win32/nbdkit-cat.h - /common/replacements/win32/nbdkit-cat.rc -+/common/replacements/win32/stamp-data - /common/utils/test-quotes - /common/utils/test-vector - /common/utils/windows-errors.c --- -2.43.0 - diff --git a/0004-common-replacements-win32-Make-windmc-tool-optional.patch b/0004-common-replacements-win32-Make-windmc-tool-optional.patch deleted file mode 100644 index de45bd0..0000000 --- a/0004-common-replacements-win32-Make-windmc-tool-optional.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 617f950de1d18d5ddd146c32d700afd81470a284 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 24 Jan 2024 10:46:26 +0000 -Subject: [PATCH 4/4] common/replacements/win32: Make windmc tool optional - -Make the windmc (mc.exe) tool option even on Windows. - -Distribute the generated message catalogs, but regenerate them if -windmc is found at compile time. - -I also changed mc -> mc.exe since "mc" on Linux is a program called -Midnight Commander and mc.exe would only be the name when compiling on -Windows. (If there's any confusion here, you can always define the -right binary to use by doing: ./configure MC=/path/to/mc.exe) ---- - configure.ac | 10 ++-- - common/replacements/win32/Makefile.am | 13 +++-- - common/replacements/win32/nbdkit-cat.h | 68 ++++++++++++++++++++++++ - common/replacements/win32/MSG00001.bin | Bin 0 -> 28 bytes - common/replacements/win32/nbdkit-cat.rc | 9 ++++ - .gitignore | 3 -- - 6 files changed, 89 insertions(+), 14 deletions(-) - create mode 100644 common/replacements/win32/nbdkit-cat.h - create mode 100644 common/replacements/win32/MSG00001.bin - create mode 100644 common/replacements/win32/nbdkit-cat.rc - -diff --git a/configure.ac b/configure.ac -index 08ba6287c..03c655638 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -584,13 +584,11 @@ AC_DEFINE_UNQUOTED([DIR_SEPARATOR_STR],["$DIR_SEPARATOR_STR"], - [String that separates path elements.]) - AM_CONDITIONAL([IS_WINDOWS],[test "x$is_windows" = "xyes"]) - -+dnl Look for the mc/windmc utility (optional). -+AC_CHECK_TOOLS([MC],[windmc mc.exe],[no]) -+AM_CONDITIONAL([HAVE_MC],[test "x$MC" != "xno"]) -+ - AS_IF([test "x$is_windows" = "xyes"],[ -- dnl For Windows, look for the mc/windmc utility. -- dnl XXX Do we need to check for mc.exe as well? -- AC_CHECK_TOOLS([MC],[windmc mc],[no]) -- AS_IF([test "x$MC" = "xno"], -- [AC_MSG_ERROR([mc/windmc utility must be available when compiling for Windows])]) -- - dnl On Windows look for dlltool. - AC_CHECK_TOOLS([DLLTOOL],[dlltool],[no]) - AS_IF([test "x$DLLTOOL" = "xno"], -diff --git a/common/replacements/win32/Makefile.am b/common/replacements/win32/Makefile.am -index b8c7c639e..45dcd6ac2 100644 ---- a/common/replacements/win32/Makefile.am -+++ b/common/replacements/win32/Makefile.am -@@ -29,15 +29,18 @@ - # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - # SUCH DAMAGE. - -+# The Windows message catalog. -+ - include $(top_srcdir)/common-rules.mk - --EXTRA_DIST = nbdkit-cat.mc -- --if IS_WINDOWS -- --# Build the message catalog. - noinst_DATA = MSG00001.bin nbdkit-cat.h nbdkit-cat.rc - -+# We distribute the generated message catalog files to save people -+# needing to install the windmc tool, but they are regenerated (below) -+# if windmc is found at configure time. -+EXTRA_DIST = nbdkit-cat.mc $(noinst_DATA) -+ -+if HAVE_MC - CLEANFILES += stamp-data - - $(noinst_DATA): stamp-data -diff --git a/common/replacements/win32/nbdkit-cat.h b/common/replacements/win32/nbdkit-cat.h -new file mode 100644 -index 000000000..8081e453d ---- /dev/null -+++ b/common/replacements/win32/nbdkit-cat.h -@@ -0,0 +1,68 @@ -+/* Do not edit this file manually. -+ This file is autogenerated by windmc. */ -+ -+// -+// The values are 32 bit layed out as follows: -+// -+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -+// +---+-+-+-----------------------+-------------------------------+ -+// |Sev|C|R| Facility | Code | -+// +---+-+-+-----------------------+-------------------------------+ -+// -+// where -+// -+// C - is the Customer code flag -+// -+// R - is a reserved bit -+// -+// Code - is the facility's status code -+// -+// Sev - is the severity code -+// -+// Success - 00 -+// Informational - 01 -+// Warning - 02 -+// Error - 03 -+// -+// Facility - is the facility code -+// -+// System - 00ff -+// Application - 0fff -+// -+ -+// nbdkit -+// Copyright Red Hat -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// -+// * Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// -+// * Neither the name of Red Hat nor the names of its contributors may be -+// used to endorse or promote products derived from this software without -+// specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND -+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -+// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR -+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -+// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -+// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+// SUCH DAMAGE. -+// -+// MessageId: NBDKIT_SYSLOG_ERROR -+// -+#define NBDKIT_SYSLOG_ERROR 0xc0000001 -+ -diff --git a/common/replacements/win32/MSG00001.bin b/common/replacements/win32/MSG00001.bin -new file mode 100644 -index 0000000000000000000000000000000000000000..f642ff3a4079b4b8b3b60b9ecefebe7c136a404b -GIT binary patch -literal 28 -dcmZQ%U|?WmU^oE60zftokf+LE$iM|;0{|fO0s#O3 - -literal 0 -HcmV?d00001 - -diff --git a/common/replacements/win32/nbdkit-cat.rc b/common/replacements/win32/nbdkit-cat.rc -new file mode 100644 -index 000000000..6f6ce3344 ---- /dev/null -+++ b/common/replacements/win32/nbdkit-cat.rc -@@ -0,0 +1,9 @@ -+/* Do not edit this file manually. -+ This file is autogenerated by windmc. */ -+ -+ -+// Country: United States -+// Language: English -+#pragma code_page(1252) -+LANGUAGE 0x9, 0x1 -+1 MESSAGETABLE "MSG00001.bin" -diff --git a/.gitignore b/.gitignore -index 14f816c93..cce2de79b 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -52,9 +52,6 @@ plugins/*/*.3 - /common/protocol/protostrings.c - /common/replacements/libcompat.a - /common/replacements/test-current-dir-name --/common/replacements/win32/MSG00001.bin --/common/replacements/win32/nbdkit-cat.h --/common/replacements/win32/nbdkit-cat.rc - /common/replacements/win32/stamp-data - /common/utils/test-quotes - /common/utils/test-vector --- -2.43.0 - diff --git a/nbdkit.spec b/nbdkit.spec index a8d25ae..360a009 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,8 +57,8 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.5 -Release: 3%{?dist} +Version: 1.37.6 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -89,13 +89,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Upstream patches to fix srcdir != builddir -Patch: 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch -Patch: 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch -# Upstream patches to fix mingw builds -Patch: 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch -Patch: 0004-common-replacements-win32-Make-windmc-tool-optional.patch - # For applying the patches: BuildRequires: git @@ -1478,6 +1471,9 @@ fi %changelog +* Thu Feb 01 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.6-1 +- New upstream development version 1.37.6 + * Tue Jan 23 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.5-3 - Add mingw{32,64}-nbdkit subpackages diff --git a/sources b/sources index 6deff94..a6ef3f6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.5.tar.gz) = 7f246fe0665a30d04641c8181d408d50859bf96c251dceb37c797057f2c32316174e7d293d2090d3b9979ff28edf337cedf4f5305e901054eebe7b97a0804e67 -SHA512 (nbdkit-1.37.5.tar.gz.sig) = 78be5c0f05ef20d4a651416799faeec180a3c48aeea547bb174bebf1b87dadac927e99faf8dcfdb27998f1747c6f7519d96e8d6f895f448ff9120b74a8a3e121 +SHA512 (nbdkit-1.37.6.tar.gz) = 3f16d523a76b50db0cfdd48bb07271d0588d04807600ee6d5eebe8e91a96611f12fd8ab2ffce161f0334ed26c51a33053a7c2edbaed9610194445bbdc5e27280 +SHA512 (nbdkit-1.37.6.tar.gz.sig) = 894e73e55cefb7d71337f40300230dab3b32d938ca5d9f44b50a6f15d108e07e58537776c4faeab4ce9f1b3e2722cd319bb795695f9cf92d844ccd2fd8d75873 From 4a2343b4a3754ca7e9078189ac4642f2f9acf847 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 11 Feb 2024 18:29:20 +0000 Subject: [PATCH 561/683] New upstream development version 1.37.7 New nbdkit-gcs-plugin for Google Cloud Storage --- nbdkit.spec | 36 +++++++++++++++++++++++++++++++++--- sources | 4 ++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 360a009..fb606dc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.6 +Version: 1.37.7 Release: 1%{?dist} Summary: NBD server @@ -349,6 +349,21 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains cURL (HTTP/FTP) support for %{name}. +%if !0%{?rhel} +# In theory this is noarch, but because plugins are placed in _libdir +# which varies across architectures, RPM does not allow this. +%package gcs-plugin +Summary: Gooogle Cloud Storage plugin %{name} +Requires: %{name}-python-plugin >= 1.38 +# XXX Should not need to add this. +Requires: python3-google-cloud-storage + +%description gcs-plugin +This package lets you open disk images stored in Google +Cloud Storage using %{name}. +%endif + + %if !0%{?rhel} && 0%{?have_libguestfs} %package guestfs-plugin Summary: libguestfs plugin for %{name} @@ -916,8 +931,10 @@ for f in cc cdi ; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done -rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* +for f in gcs S3 ; do + rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin + rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-$f-plugin.1* +done rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-qcow2dec-filter.1* %endif @@ -1133,6 +1150,15 @@ fi %{_mandir}/man1/nbdkit-curl-plugin.1* +%if !0%{?rhel} +%files gcs-plugin +%doc README.md +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-gcs-plugin +%{_mandir}/man1/nbdkit-gcs-plugin.1* +%endif + + %if !0%{?rhel} && 0%{?have_libguestfs} %files guestfs-plugin %doc README.md @@ -1471,6 +1497,10 @@ fi %changelog +* Sun Feb 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.7-1 +- New upstream development version 1.37.7 +- New nbdkit-gcs-plugin for Google Cloud Storage + * Thu Feb 01 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.6-1 - New upstream development version 1.37.6 diff --git a/sources b/sources index a6ef3f6..e18e411 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.6.tar.gz) = 3f16d523a76b50db0cfdd48bb07271d0588d04807600ee6d5eebe8e91a96611f12fd8ab2ffce161f0334ed26c51a33053a7c2edbaed9610194445bbdc5e27280 -SHA512 (nbdkit-1.37.6.tar.gz.sig) = 894e73e55cefb7d71337f40300230dab3b32d938ca5d9f44b50a6f15d108e07e58537776c4faeab4ce9f1b3e2722cd319bb795695f9cf92d844ccd2fd8d75873 +SHA512 (nbdkit-1.37.7.tar.gz) = b219562c00da1acaa6f9e5cd69f8e18971093d12662747551ac141459a43b4e5732e58fea1f47fd9d299968d5bc1295889339ceb3b2f595d36d57ed394c34118 +SHA512 (nbdkit-1.37.7.tar.gz.sig) = 05fdd89f2639f0c1cbd6bf134219a0158a503ef207ccd35eb87f1cf63918bec95a83e0a0a5bc8b57aafea0435c416f4d628bfa53f57fbad4cce1f155a60ae687 From 13f3d0d720a06dcde5fc76574399c127f1ce8ba1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 14 Feb 2024 21:11:06 +0000 Subject: [PATCH 562/683] Fix gcs & S3 plugin requirements Make them require the exact version of nbdkit-server and nbdkit-python-plugin. This avoids any sort of unintentional mismatch in case we add a feature to the server or python plugin and then immediately use it in the gcs / S3 plugin. Also use %{?_isa} for the python plugin since it is arch-specific. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2264258 Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2264266 --- nbdkit.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fb606dc..0d6051f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -58,7 +58,7 @@ Name: nbdkit Version: 1.37.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -354,7 +354,8 @@ This package contains cURL (HTTP/FTP) support for %{name}. # which varies across architectures, RPM does not allow this. %package gcs-plugin Summary: Gooogle Cloud Storage plugin %{name} -Requires: %{name}-python-plugin >= 1.38 +Requires: %{name}-python-plugin%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} # XXX Should not need to add this. Requires: python3-google-cloud-storage @@ -481,7 +482,8 @@ This package lets you write Ruby plugins for %{name}. # which varies across architectures, RPM does not allow this. %package S3-plugin Summary: Amazon S3 and Ceph plugin for %{name} -Requires: %{name}-python-plugin >= 1.22 +Requires: %{name}-python-plugin%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} # XXX Should not need to add this. Requires: python3-boto3 @@ -1497,6 +1499,9 @@ fi %changelog +* Wed Feb 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.7-2 +- Fix gcs & S3 plugin requirements + * Sun Feb 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.7-1 - New upstream development version 1.37.7 - New nbdkit-gcs-plugin for Google Cloud Storage From c2426d55fd553fbee92e689825de6d9cf50e42e2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 17 Feb 2024 11:00:34 +0000 Subject: [PATCH 563/683] New upstream development version 1.37.8 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0d6051f..79ae30b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,8 +57,8 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.7 -Release: 2%{?dist} +Version: 1.37.8 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1499,6 +1499,9 @@ fi %changelog +* Sat Feb 17 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.8-1 +- New upstream development version 1.37.8 + * Wed Feb 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.7-2 - Fix gcs & S3 plugin requirements diff --git a/sources b/sources index e18e411..59b5780 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.7.tar.gz) = b219562c00da1acaa6f9e5cd69f8e18971093d12662747551ac141459a43b4e5732e58fea1f47fd9d299968d5bc1295889339ceb3b2f595d36d57ed394c34118 -SHA512 (nbdkit-1.37.7.tar.gz.sig) = 05fdd89f2639f0c1cbd6bf134219a0158a503ef207ccd35eb87f1cf63918bec95a83e0a0a5bc8b57aafea0435c416f4d628bfa53f57fbad4cce1f155a60ae687 +SHA512 (nbdkit-1.37.8.tar.gz) = c8bd2998ef99207a9d5098514774c833ad72e78b26f94319c078c5df8ce87bc694c60046c9ffef8878d65da3fb47b9714786dd0f6a9a9fe63ce87c27d17ed11b +SHA512 (nbdkit-1.37.8.tar.gz.sig) = d4a2355118f2bc332b82e7cff89c0473793f63362327fdaa10c25215ae20e068f64d0fd3531ef11d03af1f21fd63d5f2d28c27ca76a106728e928a3dc53e0296 From d38d28e5e0203df12f84736067f227373096e068 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 17 Feb 2024 11:15:02 +0000 Subject: [PATCH 564/683] +BR bash-completion-devel The bash-completion.pc file moved in Rawhide: $ rpm -qf /usr/share/pkgconfig/bash-completion.pc bash-completion-devel-2.11-15.fc41.noarch (https://src.fedoraproject.org/rpms/bash-completion/c/d1f5dc48c0440cc68efdd519b78fccca416cad94?branch=rawhide) --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 79ae30b..dd97ea3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -122,7 +122,7 @@ BuildRequires: rb_libtorrent-devel %if 0%{?have_blkio} BuildRequires: libblkio-devel %endif -BuildRequires: bash-completion +BuildRequires: bash-completion, bash-completion-devel BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) %if 0%{?rhel} == 8 From 1bcb9f8bdba33178b2d5326dafc5506e477d2df2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 22 Feb 2024 10:51:25 +0000 Subject: [PATCH 565/683] New upstream development version 1.37.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dd97ea3..6b11f84 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.8 +Version: 1.37.9 Release: 1%{?dist} Summary: NBD server @@ -1499,6 +1499,9 @@ fi %changelog +* Thu Feb 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.9-1 +- New upstream development version 1.37.9 + * Sat Feb 17 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.8-1 - New upstream development version 1.37.8 diff --git a/sources b/sources index 59b5780..4f880ab 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.8.tar.gz) = c8bd2998ef99207a9d5098514774c833ad72e78b26f94319c078c5df8ce87bc694c60046c9ffef8878d65da3fb47b9714786dd0f6a9a9fe63ce87c27d17ed11b -SHA512 (nbdkit-1.37.8.tar.gz.sig) = d4a2355118f2bc332b82e7cff89c0473793f63362327fdaa10c25215ae20e068f64d0fd3531ef11d03af1f21fd63d5f2d28c27ca76a106728e928a3dc53e0296 +SHA512 (nbdkit-1.37.9.tar.gz) = f1d9f2b3ebf18a433e905e8874bc473773a04fd19f530ebcccdd0c3f842b02513979d33d22e14dd3d35a08b36381994c9b0730bb2a87b5030cf4e6f0164301a8 +SHA512 (nbdkit-1.37.9.tar.gz.sig) = 4bfee2977e3d8d2f72fb273f756c2510be33db5a58087a09edaa772f9e28bae734b33cba9dbb2a1e8bd69d470a48db62a017f470676d0c3a99a6b85dbf0c6807 From 5a952a21a25587fbaf133374238fc936f86e1af1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 4 Mar 2024 18:30:28 +0000 Subject: [PATCH 566/683] New upstream development version 1.37.10 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6b11f84..7f183b8 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.9 +Version: 1.37.10 Release: 1%{?dist} Summary: NBD server @@ -1499,6 +1499,9 @@ fi %changelog +* Mon Mar 04 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.10-1 +- New upstream development version 1.37.10 + * Thu Feb 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.9-1 - New upstream development version 1.37.9 diff --git a/sources b/sources index 4f880ab..caf462b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.9.tar.gz) = f1d9f2b3ebf18a433e905e8874bc473773a04fd19f530ebcccdd0c3f842b02513979d33d22e14dd3d35a08b36381994c9b0730bb2a87b5030cf4e6f0164301a8 -SHA512 (nbdkit-1.37.9.tar.gz.sig) = 4bfee2977e3d8d2f72fb273f756c2510be33db5a58087a09edaa772f9e28bae734b33cba9dbb2a1e8bd69d470a48db62a017f470676d0c3a99a6b85dbf0c6807 +SHA512 (nbdkit-1.37.10.tar.gz) = 81fd05dca2f21b1ac4d1b794f40583f097f4d0fb0d30303da7861ba76a387e6f24da3035ea5c235963f1abcfff198313293be22ee88bdab1dfffd5730ae1dd73 +SHA512 (nbdkit-1.37.10.tar.gz.sig) = 2bd17f45ed1780577f432485ef52efe44f817be4084963f7df57c9bb658d719dfe970c1d6da70a848b48b9649ea29ee0d9957c7d014c6616f814a88fe84c6887 From 24b68458fe706c5f2fb5dcb9f74c9fa4f3fcd61f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 11 Mar 2024 10:38:28 +0000 Subject: [PATCH 567/683] New upstream development version 1.37.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7f183b8..7bc90b0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.10 +Version: 1.37.11 Release: 1%{?dist} Summary: NBD server @@ -1499,6 +1499,9 @@ fi %changelog +* Mon Mar 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.11-1 +- New upstream development version 1.37.11 + * Mon Mar 04 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.10-1 - New upstream development version 1.37.10 diff --git a/sources b/sources index caf462b..01b517b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.10.tar.gz) = 81fd05dca2f21b1ac4d1b794f40583f097f4d0fb0d30303da7861ba76a387e6f24da3035ea5c235963f1abcfff198313293be22ee88bdab1dfffd5730ae1dd73 -SHA512 (nbdkit-1.37.10.tar.gz.sig) = 2bd17f45ed1780577f432485ef52efe44f817be4084963f7df57c9bb658d719dfe970c1d6da70a848b48b9649ea29ee0d9957c7d014c6616f814a88fe84c6887 +SHA512 (nbdkit-1.37.11.tar.gz) = bbbe40ee970c994b1fbd6ca495e8f178e4c67d710081b07fb89bb9acb86d82dc0f7dbd9e4beb57c6a5d6a851f6206362d82dcda34b199852f8d5dd5e4ad34e33 +SHA512 (nbdkit-1.37.11.tar.gz.sig) = 5ab1fe3eca97b5f95812ff8b49fd55505807aedd581ccd0005f3fb31de135a1b24549fa58f5eb6e67a4cf2cae1f1c20dcfaa916096945114fb7863e3269e22f8 From c1f286012b47977c439168570cee61c397f1e674 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 15 Mar 2024 09:44:47 +0000 Subject: [PATCH 568/683] New upstream development version 1.37.12 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7bc90b0..afa1fe6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.11 +Version: 1.37.12 Release: 1%{?dist} Summary: NBD server @@ -1499,6 +1499,9 @@ fi %changelog +* Fri Mar 15 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.12-1 +- New upstream development version 1.37.12 + * Mon Mar 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.11-1 - New upstream development version 1.37.11 diff --git a/sources b/sources index 01b517b..5f9b377 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.11.tar.gz) = bbbe40ee970c994b1fbd6ca495e8f178e4c67d710081b07fb89bb9acb86d82dc0f7dbd9e4beb57c6a5d6a851f6206362d82dcda34b199852f8d5dd5e4ad34e33 -SHA512 (nbdkit-1.37.11.tar.gz.sig) = 5ab1fe3eca97b5f95812ff8b49fd55505807aedd581ccd0005f3fb31de135a1b24549fa58f5eb6e67a4cf2cae1f1c20dcfaa916096945114fb7863e3269e22f8 +SHA512 (nbdkit-1.37.12.tar.gz) = 56aed08aef7af1162135b5ea51ef1e9f85a32e34488891e4895f10b0476c37e49971f66f1108d3b42f1caab1186a2c0d17fd23cc11f4813413f63a03d3dc0ab1 +SHA512 (nbdkit-1.37.12.tar.gz.sig) = 18fbd0cc4e3ec271db90cae71156088bce0f84a38899b099c3e2b716c9b350b269b6ae6433f76f1780c2acb9601b648466d2cb51d60d6fa0d2e8e638de1d8b21 From d16125b3411faee609bdc1e2e6bd26829a6e4113 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 18 Mar 2024 17:33:56 +0000 Subject: [PATCH 569/683] New upstream development version 1.37.13 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index afa1fe6..fb48b4a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -57,7 +57,7 @@ %global source_directory 1.37-development Name: nbdkit -Version: 1.37.12 +Version: 1.37.13 Release: 1%{?dist} Summary: NBD server @@ -1499,6 +1499,9 @@ fi %changelog +* Mon Mar 18 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.13-1 +- New upstream development version 1.37.13 + * Fri Mar 15 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.12-1 - New upstream development version 1.37.12 diff --git a/sources b/sources index 5f9b377..cf752b4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.12.tar.gz) = 56aed08aef7af1162135b5ea51ef1e9f85a32e34488891e4895f10b0476c37e49971f66f1108d3b42f1caab1186a2c0d17fd23cc11f4813413f63a03d3dc0ab1 -SHA512 (nbdkit-1.37.12.tar.gz.sig) = 18fbd0cc4e3ec271db90cae71156088bce0f84a38899b099c3e2b716c9b350b269b6ae6433f76f1780c2acb9601b648466d2cb51d60d6fa0d2e8e638de1d8b21 +SHA512 (nbdkit-1.37.13.tar.gz) = 0b0d4f1ae23f5c3531b39ec4efd8d4cd66caf90a66c1f54378bcd128545478273a363dda9db0b079c9abb0c93ef387f4025bc3ae02f0c23e166169d7d376b313 +SHA512 (nbdkit-1.37.13.tar.gz.sig) = ef76767f88075307eb5cb51cadb0c43c3772424d973a1778afbccc7dfe37d8894a58e7732755fc442bf37f068fd4de58479a02b14f0dc4ff28a5a120da0d5682 From 4591027291fadecdf9494e0787b1153185a4eeda Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 25 Mar 2024 11:22:36 +0000 Subject: [PATCH 570/683] Use %{bash_completions_dir} macro --- nbdkit.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fb48b4a..6e3d8fa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -58,7 +58,7 @@ Name: nbdkit Version: 1.37.13 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1466,8 +1466,8 @@ fi %files bash-completion %license LICENSE -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/nbdkit +%dir %{bash_completions_dir} +%{bash_completions_dir}/nbdkit %if 0%{?with_selinux} @@ -1499,6 +1499,9 @@ fi %changelog +* Mon Mar 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.13-2 +- Use %%{bash_completions_dir} macro + * Mon Mar 18 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.13-1 - New upstream development version 1.37.13 From 8de2617c9f8b2fad9d47840f5fc017c01a9c0666 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Apr 2024 21:23:56 +0100 Subject: [PATCH 571/683] Rebuild autoconf cruft unconditionally (cherry picked from libnbd commit 11a78d929de957995cf127e70c2762326132a263) --- nbdkit.spec | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6e3d8fa..7b4b844 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -50,9 +50,6 @@ # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 -# If there are patches which touch autotools files, set this to 1. -%global patches_touch_autotools 1 - # The source directory. %global source_directory 1.37-development @@ -92,9 +89,8 @@ Source8: %{modulename}.fc # For applying the patches: BuildRequires: git -%if 0%{patches_touch_autotools} +# For rebuilding autoconf cruft: BuildRequires: autoconf, automake, libtool -%endif BuildRequires: make BuildRequires: gcc, gcc-c++ @@ -771,9 +767,7 @@ development kit for 64 bit versions of Windows. %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif %autosetup -p1 -S git -%if 0%{patches_touch_autotools} autoreconf -i -%endif %build From a673158b38238b86d7ab4a0f9b26e6055d0b6770 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 4 Apr 2024 21:29:09 +0100 Subject: [PATCH 572/683] New stable branch version 1.38.0 --- nbdkit.spec | 10 +++++++--- sources | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7b4b844..c0778d4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,11 +51,11 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.37-development +%global source_directory 1.38-stable Name: nbdkit -Version: 1.37.13 -Release: 2%{?dist} +Version: 1.38.0 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1493,6 +1493,10 @@ fi %changelog +* Thu Apr 4 2024 Richard W.M. Jones <rjones@redhat.com> - 1.38.0-1 +- New stable branch version 1.38.0 +- Rebuild autoconf cruft unconditionally. + * Mon Mar 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1.37.13-2 - Use %%{bash_completions_dir} macro diff --git a/sources b/sources index cf752b4..3b095a3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.37.13.tar.gz) = 0b0d4f1ae23f5c3531b39ec4efd8d4cd66caf90a66c1f54378bcd128545478273a363dda9db0b079c9abb0c93ef387f4025bc3ae02f0c23e166169d7d376b313 -SHA512 (nbdkit-1.37.13.tar.gz.sig) = ef76767f88075307eb5cb51cadb0c43c3772424d973a1778afbccc7dfe37d8894a58e7732755fc442bf37f068fd4de58479a02b14f0dc4ff28a5a120da0d5682 +SHA512 (nbdkit-1.38.0.tar.gz) = 7817ab29f2c4821237ac9114e820186b6fcbe5658fb702ecd41941fc70ffd060294c3d71fbcb37176f4609d3e25996ea71e20ea58d0aee2c8bf6b4b30254d074 +SHA512 (nbdkit-1.38.0.tar.gz.sig) = e81960962737f57c586bbf4dea9b2f7f208bb7258919ddd808006d4d14582ebd8e6b7d0e9f64ed48176c74c8c6ec00f042060be6a91ac0d8db20a1d936a53b42 From ac48373716cd00ab7c65d19247e42192abb3a1c8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 7 Apr 2024 21:25:17 +0100 Subject: [PATCH 573/683] New upstream development version 1.39.1 New filters: rotational, spinning --- nbdkit.spec | 16 ++++++++++++++-- sources | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c0778d4..c2d7d3b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.38-stable +%global source_directory 1.39-development Name: nbdkit -Version: 1.38.0 +Version: 1.39.0 Release: 1%{?dist} Summary: NBD server @@ -626,8 +626,12 @@ nbdkit-retry-filter Reopen connection on error. nbdkit-retry-request-filter Retry single requests on error. +nbdkit-rotational-filter Set if a plugin is rotational or not. + nbdkit-scan-filter Prefetch data ahead of sequential reads. +nbdkit-spinning-filter Add seek delays to simulate a spinning hard disk. + nbdkit-swab-filter Filter for swapping byte order. nbdkit-tls-fallback-filter TLS protection filter. @@ -1334,7 +1338,9 @@ fi %{_libdir}/%{name}/filters/nbdkit-readonly-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-request-filter.so +%{_libdir}/%{name}/filters/nbdkit-rotational-filter.so %{_libdir}/%{name}/filters/nbdkit-scan-filter.so +%{_libdir}/%{name}/filters/nbdkit-spinning-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so @@ -1375,7 +1381,9 @@ fi %{_mandir}/man1/nbdkit-readonly-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-retry-request-filter.1* +%{_mandir}/man1/nbdkit-rotational-filter.1* %{_mandir}/man1/nbdkit-scan-filter.1* +%{_mandir}/man1/nbdkit-spinning-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* %{_mandir}/man1/nbdkit-tls-fallback-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1493,6 +1501,10 @@ fi %changelog +* Sun Apr 7 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.1-1 +- New upstream development version 1.39.1 +- New filters: rotational, spinning + * Thu Apr 4 2024 Richard W.M. Jones <rjones@redhat.com> - 1.38.0-1 - New stable branch version 1.38.0 - Rebuild autoconf cruft unconditionally. diff --git a/sources b/sources index 3b095a3..fb2f146 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.38.0.tar.gz) = 7817ab29f2c4821237ac9114e820186b6fcbe5658fb702ecd41941fc70ffd060294c3d71fbcb37176f4609d3e25996ea71e20ea58d0aee2c8bf6b4b30254d074 -SHA512 (nbdkit-1.38.0.tar.gz.sig) = e81960962737f57c586bbf4dea9b2f7f208bb7258919ddd808006d4d14582ebd8e6b7d0e9f64ed48176c74c8c6ec00f042060be6a91ac0d8db20a1d936a53b42 +SHA512 (nbdkit-1.39.1.tar.gz) = 3dbdce400d5aa88e9b35d19ed7e90d9a731a05d6fa21a90130dd86402dd2774ae5bbf7cc1267dcd55ec9e34b93f32e3743b1325de86f4290e29ce5d7711dfb06 +SHA512 (nbdkit-1.39.1.tar.gz.sig) = c63922e8955159bbba2758dbe34e149f4c4ab12213c05a447185aa8a26883f19439227e7fb1c706de33fae898fe0a70335f71df8c201d16830f998c293c93ad0 From e547291dc25ebbee6f7e12f15b48c16c9d99012b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 7 Apr 2024 21:26:10 +0100 Subject: [PATCH 574/683] Fix version (1.39.0 -> 1.39.1) --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c2d7d3b..edc8718 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.0 +Version: 1.39.1 Release: 1%{?dist} Summary: NBD server From 905a24f8a55ef9fb8ff3bac8ffc3961d63aa9753 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Apr 2024 16:58:13 +0100 Subject: [PATCH 575/683] New upstream development version 1.39.2 Add new nbdkit_*.3 man pages (plugin developer documentation) --- nbdkit.spec | 7 ++++++- sources | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index edc8718..aef6d17 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.1 +Version: 1.39.2 Release: 1%{?dist} Summary: NBD server @@ -1456,6 +1456,7 @@ fi %{_includedir}/nbd-protocol.h %{_mandir}/man3/nbdkit-filter.3* %{_mandir}/man3/nbdkit-plugin.3* +%{_mandir}/man3/nbdkit_*.3* %{_mandir}/man1/nbdkit-release-notes-1.*.1* %{_libdir}/pkgconfig/nbdkit.pc @@ -1501,6 +1502,10 @@ fi %changelog +* Tue Apr 9 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.2-1 +- New upstream development version 1.39.2 +- Add new nbdkit_*.3 man pages (plugin developer documentation) + * Sun Apr 7 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.1-1 - New upstream development version 1.39.1 - New filters: rotational, spinning diff --git a/sources b/sources index fb2f146..a889b86 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.1.tar.gz) = 3dbdce400d5aa88e9b35d19ed7e90d9a731a05d6fa21a90130dd86402dd2774ae5bbf7cc1267dcd55ec9e34b93f32e3743b1325de86f4290e29ce5d7711dfb06 -SHA512 (nbdkit-1.39.1.tar.gz.sig) = c63922e8955159bbba2758dbe34e149f4c4ab12213c05a447185aa8a26883f19439227e7fb1c706de33fae898fe0a70335f71df8c201d16830f998c293c93ad0 +SHA512 (nbdkit-1.39.2.tar.gz) = 695024119518ebc686067d0ab4d35a99b728a5c4f40f1174e47078d1b230278c8ea534357341c54428e92bda2410b4ffe3a195ea488f2bf7dc71a693417d3632 +SHA512 (nbdkit-1.39.2.tar.gz.sig) = 58f092bed3e6835f5c1b26ee9747caecd7de9d084c680ebc7e1e3007a831a275ffcda22d9badda5d976cd6a55b445fe3833f9c669b2627de5baab982b0e6bcf7 From 4ae765cff3dd9dcf469064a03dd88abfeead0284 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 11 Apr 2024 09:07:43 +0100 Subject: [PATCH 576/683] New upstream development version 1.39.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index aef6d17..9cbc9f1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.2 +Version: 1.39.3 Release: 1%{?dist} Summary: NBD server @@ -1502,6 +1502,9 @@ fi %changelog +* Thu Apr 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.3-1 +- New upstream development version 1.39.3 + * Tue Apr 9 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.2-1 - New upstream development version 1.39.2 - Add new nbdkit_*.3 man pages (plugin developer documentation) diff --git a/sources b/sources index a889b86..9ba7423 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.2.tar.gz) = 695024119518ebc686067d0ab4d35a99b728a5c4f40f1174e47078d1b230278c8ea534357341c54428e92bda2410b4ffe3a195ea488f2bf7dc71a693417d3632 -SHA512 (nbdkit-1.39.2.tar.gz.sig) = 58f092bed3e6835f5c1b26ee9747caecd7de9d084c680ebc7e1e3007a831a275ffcda22d9badda5d976cd6a55b445fe3833f9c669b2627de5baab982b0e6bcf7 +SHA512 (nbdkit-1.39.3.tar.gz) = 22083eb75bed70c47f381e8587eb059e8147acb4c8cf6e42c9ab4bff64e81fa589f6c92ef3ff2087be941c469cb141931e76cc4f815370ecda1568366c2269c3 +SHA512 (nbdkit-1.39.3.tar.gz.sig) = ed1e7932f8f87b255ff14516c56f8bce9c59f698a376af9afb9b0154d4c11db48334110c7d3514e486b0c820515f4b7751eeebbf321099e165375fabeeaf4383 From 61064b8fd1d8f3f4619188deaec01e6daafbd9cc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 12 Apr 2024 11:27:10 +0100 Subject: [PATCH 577/683] gating: Match any version of RHEL --- gating.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gating.yaml b/gating.yaml index 648918d..2c7ed80 100755 --- a/gating.yaml +++ b/gating.yaml @@ -1,6 +1,6 @@ --- !Policy product_versions: - - rhel-9 + - rhel-* decision_context: osci_compose_gate rules: - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} From 86fa43d05eb96c722fa2e79ce92edf5cdf0ee997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sat, 13 Apr 2024 13:47:02 +0200 Subject: [PATCH 578/683] Do not use macros is file path Requires This is in preparation for https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin. When the package is rebuilt with a different %_sbindir (in particular %_sbindir==%_bindir), those BuildRequires and Requires will stop working with the providers of those requires that were built with the old definition. We don't want to force a transition of all packages at the same time, so instead use a fixed path. (The providers, when they are updated to the new path, will retain a compat Provides for the old path.) The tests fail in test-tar-xz-curl, but this doesn't seem to be related to the path changes, but instead something about fs internals. --- nbdkit.spec | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9cbc9f1..d420edf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -143,25 +143,25 @@ BuildRequires: gnupg2 %endif # Only for running the test suite: -BuildRequires: %{_bindir}/bc -BuildRequires: %{_bindir}/certtool -BuildRequires: %{_bindir}/cut +BuildRequires: /usr/bin/bc +BuildRequires: /usr/bin/certtool +BuildRequires: /usr/bin/cut BuildRequires: expect -BuildRequires: %{_bindir}/hexdump -BuildRequires: %{_sbindir}/ip +BuildRequires: /usr/bin/hexdump +BuildRequires: /usr/sbin/ip BuildRequires: jq -BuildRequires: %{_bindir}/nbdcopy -BuildRequires: %{_bindir}/nbdinfo -BuildRequires: %{_bindir}/nbdsh -BuildRequires: %{_bindir}/qemu-img -BuildRequires: %{_bindir}/qemu-io -BuildRequires: %{_bindir}/qemu-nbd -BuildRequires: %{_sbindir}/sfdisk +BuildRequires: /usr/bin/nbdcopy +BuildRequires: /usr/bin/nbdinfo +BuildRequires: /usr/bin/nbdsh +BuildRequires: /usr/bin/qemu-img +BuildRequires: /usr/bin/qemu-io +BuildRequires: /usr/bin/qemu-nbd +BuildRequires: /usr/sbin/sfdisk %if !0%{?rhel} -BuildRequires: %{_bindir}/socat +BuildRequires: /usr/bin/socat %endif -BuildRequires: %{_sbindir}/ss -BuildRequires: %{_bindir}/stat +BuildRequires: /usr/sbin/ss +BuildRequires: /usr/bin/stat # This package has RPM rules that create the automatic Provides: for # nbdkit plugins and filters. This means nbdkit build depends on @@ -316,7 +316,7 @@ for %{name}. Summary: Write small inline C plugins and scripts for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: gcc -Requires: %{_bindir}/cat +Requires: /usr/bin/cat %description cc-plugin This package contains support for writing inline C plugins and scripts From 9e93f76eacda9b832b321a4b4ae1a13c1038ac3c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 20 Apr 2024 14:07:29 +0100 Subject: [PATCH 579/683] New upstream development version 1.39.4 Remove the Ruby plugin. --- nbdkit.spec | 34 ++++++---------------------------- sources | 4 ++-- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d420edf..fa682f6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.3 +Version: 1.39.4 Release: 1%{?dist} Summary: NBD server @@ -134,7 +134,6 @@ BuildRequires: python3-boto3 BuildRequires: ocaml >= 4.03 BuildRequires: ocaml-ocamldoc %endif -BuildRequires: ruby-devel BuildRequires: tcl-devel BuildRequires: lua-devel %endif @@ -463,16 +462,6 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package lets you write Python 3 plugins for %{name}. -%if !0%{?rhel} -%package ruby-plugin -Summary: Ruby plugin for %{name} -Requires: %{name}-server%{?_isa} = %{version}-%{release} - -%description ruby-plugin -This package lets you write Ruby plugins for %{name}. -%endif - - %if !0%{?rhel} # In theory this is noarch, but because plugins are placed in _libdir # which varies across architectures, RPM does not allow this. @@ -814,7 +803,6 @@ export PYTHON=%{__python3} %if !0%{?rhel} --enable-lua \ --enable-perl \ - --enable-ruby \ --enable-tcl \ --enable-torrent \ --with-ext2 \ @@ -823,7 +811,6 @@ export PYTHON=%{__python3} %else --disable-lua \ --disable-perl \ - --disable-ruby \ --disable-tcl \ --disable-torrent \ --without-ext2 \ @@ -888,7 +875,6 @@ popd --disable-ocaml \ --disable-perl \ --disable-python \ - --disable-ruby \ --disable-rust \ --disable-tcl \ --disable-torrent \ @@ -1239,15 +1225,6 @@ fi %{_mandir}/man3/nbdkit-python-plugin.3* -%if !0%{?rhel} -%files ruby-plugin -%doc README.md -%license LICENSE -%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so -%{_mandir}/man3/nbdkit-ruby-plugin.3* -%endif - - %if !0%{?rhel} %files S3-plugin %doc README.md @@ -1442,10 +1419,7 @@ fi %doc plugins/perl/example.pl %endif %doc plugins/python/examples/*.py -%if !0%{?rhel} -%doc plugins/ruby/example.rb -%endif -%doc plugins/sh/example.sh +%doc plugins/sh/examples/*.sh %if !0%{?rhel} %doc plugins/tcl/example.tcl %endif @@ -1502,6 +1476,10 @@ fi %changelog +* Sat Apr 20 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.4-1 +- New upstream development version 1.39.4 +- Remove the Ruby plugin. + * Thu Apr 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.3-1 - New upstream development version 1.39.3 diff --git a/sources b/sources index 9ba7423..02d68e0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.3.tar.gz) = 22083eb75bed70c47f381e8587eb059e8147acb4c8cf6e42c9ab4bff64e81fa589f6c92ef3ff2087be941c469cb141931e76cc4f815370ecda1568366c2269c3 -SHA512 (nbdkit-1.39.3.tar.gz.sig) = ed1e7932f8f87b255ff14516c56f8bce9c59f698a376af9afb9b0154d4c11db48334110c7d3514e486b0c820515f4b7751eeebbf321099e165375fabeeaf4383 +SHA512 (nbdkit-1.39.4.tar.gz) = 452d04e6062bbe28ce9cdcf2392ceceeac5b3c02d25c08092994b7aa73880622aa25f53df8a346f1719397608ec818fd7a960fadbee97e71e5e9e035baffe29a +SHA512 (nbdkit-1.39.4.tar.gz.sig) = faeffa8bdc2837d4ea48ca6d61d7a467af4c32da175c830a7d50b24a386d70c0738782d4ed082a65e0cbba10b510c36401d5a397385e89f264b72b1393347847 From 1bac5f3ba9737d44686e7da7e14b95de424304cf Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 20 Apr 2024 14:50:34 +0100 Subject: [PATCH 580/683] Fix tests/test-shebang-crlf.sh --- ...ng-crlf.sh-Fix-location-of-shebang-c.patch | 36 +++++++++++++++++++ nbdkit.spec | 3 ++ 2 files changed, 39 insertions(+) create mode 100644 0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch diff --git a/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch b/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch new file mode 100644 index 0000000..d553c88 --- /dev/null +++ b/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch @@ -0,0 +1,36 @@ +From aade881287fbf5c7ef3539d2f01e0d6eea94a8a9 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sat, 20 Apr 2024 14:45:16 +0100 +Subject: [PATCH] tests/test-shebang-crlf.sh: Fix location of shebang-crlf.py + +Commit 5d01b47d7a ("tests: Add a regression test for DOS line endings +in shebang plugins") requires a test file shebang-crlf.py which is +generated in the Makefile. Generating this file was a late addition +to the commit, but this late change broke srcdir != builddir builds, +since the file is now in the builddir not the srcdir. + +The error seen was: + +../../tests/test-shebang-crlf.sh: could not locate /builddir/build/BUILD/nbdkit-1.39.4/build_native/../tests/shebang-crlf.py or not executable + +Fixes: commit 5d01b47d7a2b1fc92fa516c074bd4deadf1a1e7a +--- + tests/test-shebang-crlf.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-shebang-crlf.sh b/tests/test-shebang-crlf.sh +index c11d5c0b89..13361eb050 100755 +--- a/tests/test-shebang-crlf.sh ++++ b/tests/test-shebang-crlf.sh +@@ -44,7 +44,7 @@ source ./functions.sh + set -e + set -x + +-script=$abs_top_srcdir/tests/shebang-crlf.py ++script=./shebang-crlf.py + if test ! -x "$script"; then + echo "$0: could not locate $script or not executable" + exit 1 +-- +2.44.0 + diff --git a/nbdkit.spec b/nbdkit.spec index fa682f6..4cc8ec1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,6 +86,9 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Fix tests, upstream in 1.39.5 / 1.38.2 +Patch: 0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch + # For applying the patches: BuildRequires: git From b709bbeebeb5811131500cf1067226853f41c190 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 7 May 2024 15:59:29 +0100 Subject: [PATCH 581/683] New upstream development version 1.39.5 --- ...ng-crlf.sh-Fix-location-of-shebang-c.patch | 36 ------------------- nbdkit.spec | 8 ++--- sources | 4 +-- 3 files changed, 6 insertions(+), 42 deletions(-) delete mode 100644 0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch diff --git a/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch b/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch deleted file mode 100644 index d553c88..0000000 --- a/0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch +++ /dev/null @@ -1,36 +0,0 @@ -From aade881287fbf5c7ef3539d2f01e0d6eea94a8a9 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sat, 20 Apr 2024 14:45:16 +0100 -Subject: [PATCH] tests/test-shebang-crlf.sh: Fix location of shebang-crlf.py - -Commit 5d01b47d7a ("tests: Add a regression test for DOS line endings -in shebang plugins") requires a test file shebang-crlf.py which is -generated in the Makefile. Generating this file was a late addition -to the commit, but this late change broke srcdir != builddir builds, -since the file is now in the builddir not the srcdir. - -The error seen was: - -../../tests/test-shebang-crlf.sh: could not locate /builddir/build/BUILD/nbdkit-1.39.4/build_native/../tests/shebang-crlf.py or not executable - -Fixes: commit 5d01b47d7a2b1fc92fa516c074bd4deadf1a1e7a ---- - tests/test-shebang-crlf.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/test-shebang-crlf.sh b/tests/test-shebang-crlf.sh -index c11d5c0b89..13361eb050 100755 ---- a/tests/test-shebang-crlf.sh -+++ b/tests/test-shebang-crlf.sh -@@ -44,7 +44,7 @@ source ./functions.sh - set -e - set -x - --script=$abs_top_srcdir/tests/shebang-crlf.py -+script=./shebang-crlf.py - if test ! -x "$script"; then - echo "$0: could not locate $script or not executable" - exit 1 --- -2.44.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 4cc8ec1..7373235 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.4 +Version: 1.39.5 Release: 1%{?dist} Summary: NBD server @@ -86,9 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Fix tests, upstream in 1.39.5 / 1.38.2 -Patch: 0001-tests-test-shebang-crlf.sh-Fix-location-of-shebang-c.patch - # For applying the patches: BuildRequires: git @@ -1479,6 +1476,9 @@ fi %changelog +* Tue May 7 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.5-1 +- New upstream development version 1.39.5 + * Sat Apr 20 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.4-1 - New upstream development version 1.39.4 - Remove the Ruby plugin. diff --git a/sources b/sources index 02d68e0..a4bdbf4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.4.tar.gz) = 452d04e6062bbe28ce9cdcf2392ceceeac5b3c02d25c08092994b7aa73880622aa25f53df8a346f1719397608ec818fd7a960fadbee97e71e5e9e035baffe29a -SHA512 (nbdkit-1.39.4.tar.gz.sig) = faeffa8bdc2837d4ea48ca6d61d7a467af4c32da175c830a7d50b24a386d70c0738782d4ed082a65e0cbba10b510c36401d5a397385e89f264b72b1393347847 +SHA512 (nbdkit-1.39.5.tar.gz) = db02e375fdddef332b1c6eb5f4f90fc8905ee62adae67774853dcdb0d438a06bdddded650e979709399bee316735f730921577142b68253d59492c12607cd0c9 +SHA512 (nbdkit-1.39.5.tar.gz.sig) = d39e5bddf3a099674838af18c747f364fb1195dd4a51d42e4340bda3c848fd5f9404d1b3ecaa8b963642b6ac2e2380cb8451b0f86218df44f3f5c8740219d2a7 From 7bfa177607e7aca939c8b262bb5020035c692a7b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 16 May 2024 15:31:25 +0100 Subject: [PATCH 582/683] New upstream development version 1.39.6 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 7373235..50cb129 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.5 +Version: 1.39.6 Release: 1%{?dist} Summary: NBD server @@ -1476,6 +1476,9 @@ fi %changelog +* Thu May 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.6-1 +- New upstream development version 1.39.6 + * Tue May 7 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.5-1 - New upstream development version 1.39.5 diff --git a/sources b/sources index a4bdbf4..27a222e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.5.tar.gz) = db02e375fdddef332b1c6eb5f4f90fc8905ee62adae67774853dcdb0d438a06bdddded650e979709399bee316735f730921577142b68253d59492c12607cd0c9 -SHA512 (nbdkit-1.39.5.tar.gz.sig) = d39e5bddf3a099674838af18c747f364fb1195dd4a51d42e4340bda3c848fd5f9404d1b3ecaa8b963642b6ac2e2380cb8451b0f86218df44f3f5c8740219d2a7 +SHA512 (nbdkit-1.39.6.tar.gz) = ac4f8e4617c4b96162b506b8757b088eb7b4e09532fba88b94e86899b348ff818689dda2b12c8a3d41364db8edb93be5fac923b898ec6b4fb280a490b6af306a +SHA512 (nbdkit-1.39.6.tar.gz.sig) = 7f5125eb3de77ba0bf9e7a05fc20d5e44b87f07e2f719f0f972432dc448ba5f0a8ba8ff485e5def75150bc17c96ea9395337347f22a819e6e9b45a8b8a472009 From 33f8238699b6aa2525d8cc2832605ec0c28f2d3b Mon Sep 17 00:00:00 2001 From: Adam Williamson <awilliam@redhat.com> Date: Thu, 16 May 2024 23:56:15 -0700 Subject: [PATCH 583/683] Rebuild with fixed SELinux macros --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 50cb129..b91144d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1476,6 +1476,9 @@ fi %changelog +* Fri May 17 2024 Adam Williamson <awilliam@redhat.com> - 1.39.6-2 +- Rebuild with fixed SELinux macros + * Thu May 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.6-1 - New upstream development version 1.39.6 From a8d8c230c98e6f25a675a167a51730c03b2dc8c5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 May 2024 14:07:55 +0100 Subject: [PATCH 584/683] New upstream development version 1.39.7 Add nbdkit-bzip2-filter subpackage. --- nbdkit.spec | 23 +++++++++++++++++++++-- sources | 4 ++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b91144d..d87beab 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.6 -Release: 2%{?dist} +Version: 1.39.7 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -628,6 +628,14 @@ nbdkit-tls-fallback-filter TLS protection filter. nbdkit-truncate-filter Truncate, expand, round up or round down size. +%package bzip2-filter +Summary: BZip2 filter for %{name} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description bzip2-filter +This package is a bzip2 filter for %{name}. + + %if !0%{?rhel} %package ext2-filter Summary: ext2, ext3 and ext4 filesystem support for %{name} @@ -1366,6 +1374,13 @@ fi %{_mandir}/man1/nbdkit-truncate-filter.1* +%files bzip2-filter +%doc README.md +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-bzip2-filter.so +%{_mandir}/man1/nbdkit-bzip2-filter.1* + + %if !0%{?rhel} %files ext2-filter %doc README.md @@ -1476,6 +1491,10 @@ fi %changelog +* Tue May 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-1 +- New upstream development version 1.39.7 +- Add nbdkit-bzip2-filter subpackage. + * Fri May 17 2024 Adam Williamson <awilliam@redhat.com> - 1.39.6-2 - Rebuild with fixed SELinux macros diff --git a/sources b/sources index 27a222e..f0d9842 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.6.tar.gz) = ac4f8e4617c4b96162b506b8757b088eb7b4e09532fba88b94e86899b348ff818689dda2b12c8a3d41364db8edb93be5fac923b898ec6b4fb280a490b6af306a -SHA512 (nbdkit-1.39.6.tar.gz.sig) = 7f5125eb3de77ba0bf9e7a05fc20d5e44b87f07e2f719f0f972432dc448ba5f0a8ba8ff485e5def75150bc17c96ea9395337347f22a819e6e9b45a8b8a472009 +SHA512 (nbdkit-1.39.7.tar.gz) = 4d964c5c945cecf915453071212bf17ef9b64c3cadc24076f58e636db2293d7e1a0a8499ad5420ac6242ea0f0e4ac548960c4c28ecf05c245ef9ca4096e68024 +SHA512 (nbdkit-1.39.7.tar.gz.sig) = 4a7d2b0319ad32a1f99769534eeca13cc73dd1b4e6e200fde58cfc1bcd02724ea7de8d2c66223bb0a16055e07c403f0aa38cbbedbe7c4bae09bca3d18d3eef6d From f6900c557d9b3ac7745061d798196c8936a40b45 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 May 2024 14:40:19 +0100 Subject: [PATCH 585/683] +BR gzip2-devel --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index d87beab..77c250a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -106,6 +106,7 @@ BuildRequires: zlib-devel %if !0%{?rhel} BuildRequires: zlib-ng-devel %endif +BuildRequires: bzip2-devel BuildRequires: libzstd-devel BuildRequires: libcurl-devel BuildRequires: libnbd-devel >= 1.3.11 From 0729aaf2568f8bbf7bf177b37b1187b1ed837a33 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 28 May 2024 15:23:50 +0100 Subject: [PATCH 586/683] Prefer BR pkgconfig(foo) instead of BR foo-devel. https://docs.fedoraproject.org/en-US/packaging-guidelines/PkgConfigBuildRequires/ --- nbdkit.spec | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 77c250a..c78170a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -95,29 +95,31 @@ BuildRequires: autoconf, automake, libtool BuildRequires: make BuildRequires: gcc, gcc-c++ BuildRequires: %{_bindir}/pod2man -BuildRequires: gnutls-devel -BuildRequires: libselinux-devel +BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(libselinux) %if !0%{?rhel} && 0%{?have_libguestfs} -BuildRequires: libguestfs-devel +BuildRequires: pkgconfig(libguestfs) %endif -BuildRequires: libvirt-devel -BuildRequires: xz-devel -BuildRequires: zlib-devel +BuildRequires: pkgconfig(libvirt) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(zlib) %if !0%{?rhel} -BuildRequires: zlib-ng-devel +BuildRequires: pkgconfig(zlib-ng) %endif -BuildRequires: bzip2-devel -BuildRequires: libzstd-devel -BuildRequires: libcurl-devel -BuildRequires: libnbd-devel >= 1.3.11 -BuildRequires: libssh-devel -BuildRequires: e2fsprogs, e2fsprogs-devel +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libnbd) +BuildRequires: pkgconfig(libssh) +BuildRequires: e2fsprogs +BuildRequires: pkgconfig(ext2fs) +BuildRequires: pkgconfig(com_err) %if !0%{?rhel} BuildRequires: xorriso -BuildRequires: rb_libtorrent-devel +BuildRequires: pkgconfig(libtorrent-rasterbar) %endif %if 0%{?have_blkio} -BuildRequires: libblkio-devel +BuildRequires: pkgconfig(blkio) %endif BuildRequires: bash-completion, bash-completion-devel BuildRequires: perl-devel @@ -135,8 +137,8 @@ BuildRequires: python3-boto3 BuildRequires: ocaml >= 4.03 BuildRequires: ocaml-ocamldoc %endif -BuildRequires: tcl-devel -BuildRequires: lua-devel +BuildRequires: pkgconfig(tcl) +BuildRequires: pkgconfig(lua) %endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 @@ -1492,9 +1494,10 @@ fi %changelog -* Tue May 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-1 +* Tue May 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-2 - New upstream development version 1.39.7 - Add nbdkit-bzip2-filter subpackage. +- Prefer BR pkgconfig(foo) instead of BR foo-devel. * Fri May 17 2024 Adam Williamson <awilliam@redhat.com> - 1.39.6-2 - Rebuild with fixed SELinux macros From 965f855452a5f598ae9da801d17de3d26c4db14a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 29 May 2024 21:31:57 +0100 Subject: [PATCH 587/683] OCaml 5.2.0 for Fedora 41 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c78170a..8f5ef25 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.7 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1494,6 +1494,9 @@ fi %changelog +* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-3 +- OCaml 5.2.0 for Fedora 41 + * Tue May 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-2 - New upstream development version 1.39.7 - Add nbdkit-bzip2-filter subpackage. From 32fc4734fe8258d8bd197352c730ac17e1422a9c Mon Sep 17 00:00:00 2001 From: Python Maint <python-maint@redhat.com> Date: Sat, 8 Jun 2024 22:30:25 +0200 Subject: [PATCH 588/683] Rebuilt for Python 3.13 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8f5ef25..cdde39d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.7 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1494,6 +1494,9 @@ fi %changelog +* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 1.39.7-4 +- Rebuilt for Python 3.13 + * Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-3 - OCaml 5.2.0 for Fedora 41 From 3ecbc163b2618c4af0f88d28748ca66807797dec Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Wed, 12 Jun 2024 12:47:45 +0200 Subject: [PATCH 589/683] Perl 5.40 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index cdde39d..78147b1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.7 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1494,6 +1494,9 @@ fi %changelog +* Wed Jun 12 2024 Jitka Plesnikova <jplesnik@redhat.com> - 1.39.7-5 +- Perl 5.40 rebuild + * Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 1.39.7-4 - Rebuilt for Python 3.13 From 44d5aed5b985ca178abbf2cc8e3b8ada78e3a1f6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 19 Jun 2024 12:08:33 +0100 Subject: [PATCH 590/683] Add BR glibc-utils for libc_malloc_debug.so.0 --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 78147b1..3aed95a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -149,6 +149,7 @@ BuildRequires: /usr/bin/bc BuildRequires: /usr/bin/certtool BuildRequires: /usr/bin/cut BuildRequires: expect +BuildRequires: glibc-utils BuildRequires: /usr/bin/hexdump BuildRequires: /usr/sbin/ip BuildRequires: jq From 2340ca89b77d49f4d67c414e8f7b209f80042ea5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 19 Jun 2024 12:28:21 +0100 Subject: [PATCH 591/683] OCaml 5.2.0 ppc64le fix --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3aed95a..1a81679 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.7 -Release: 5%{?dist} +Release: 6%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1495,6 +1495,9 @@ fi %changelog +* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-6 +- OCaml 5.2.0 ppc64le fix + * Wed Jun 12 2024 Jitka Plesnikova <jplesnik@redhat.com> - 1.39.7-5 - Perl 5.40 rebuild From c41033dd8816f84cd5ba6c69c5bd48495c0a258d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 27 Jun 2024 15:28:12 +0100 Subject: [PATCH 592/683] New upstream development version 1.39.8 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1a81679..b42d7bf 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.7 -Release: 6%{?dist} +Version: 1.39.8 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1495,6 +1495,9 @@ fi %changelog +* Thu Jun 27 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.8-1 +- New upstream development version 1.39.8 + * Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.7-6 - OCaml 5.2.0 ppc64le fix diff --git a/sources b/sources index f0d9842..2bfc3b3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.7.tar.gz) = 4d964c5c945cecf915453071212bf17ef9b64c3cadc24076f58e636db2293d7e1a0a8499ad5420ac6242ea0f0e4ac548960c4c28ecf05c245ef9ca4096e68024 -SHA512 (nbdkit-1.39.7.tar.gz.sig) = 4a7d2b0319ad32a1f99769534eeca13cc73dd1b4e6e200fde58cfc1bcd02724ea7de8d2c66223bb0a16055e07c403f0aa38cbbedbe7c4bae09bca3d18d3eef6d +SHA512 (nbdkit-1.39.8.tar.gz) = 33145bf1ec95ec07f384049cb80f41d80415cbb909301e007bd94e708590c099af381c292f7322b85fa1a721241edd1c635810595e4fba704a706edb815afa6b +SHA512 (nbdkit-1.39.8.tar.gz.sig) = c6abd26a8e978f170bcafc0b5a8150e23a7e1fdabec3379361e4742d1e10251d397880c60127db0731c448ef2dd0652e5dab8ad36ee3e172ea642e28721e3785 From 02104ecdeeee3166f8a2b184a9e69879eb7f3049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Tue, 9 Jul 2024 13:38:40 +0200 Subject: [PATCH 593/683] Rebuilt for the bin-sbin merge https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b42d7bf..640cb77 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1495,6 +1495,9 @@ fi %changelog +* Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.39.8-2 +- Rebuilt for the bin-sbin merge + * Thu Jun 27 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.8-1 - New upstream development version 1.39.8 From 6b18b74749efbe1f618ea4bc010b56277157b0ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Tue, 9 Jul 2024 14:35:09 +0200 Subject: [PATCH 594/683] Pull in openssl-devel-engine to fix build --- nbdkit.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 640cb77..08f1280 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -140,6 +140,9 @@ BuildRequires: ocaml-ocamldoc BuildRequires: pkgconfig(tcl) BuildRequires: pkgconfig(lua) %endif +%if 0%{?fedora} >= 41 +BuildRequires: openssl-devel-engine +%endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif From 9ece3dd175a962b330a9ea0e1afd0955f769bc23 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 9 Jul 2024 22:10:38 +0100 Subject: [PATCH 595/683] New upstream development version 1.39.9 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 08f1280..4644eae 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.8 -Release: 2%{?dist} +Version: 1.39.9 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1498,6 +1498,9 @@ fi %changelog +* Tue Jul 09 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.9-1 +- New upstream development version 1.39.9 + * Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.39.8-2 - Rebuilt for the bin-sbin merge diff --git a/sources b/sources index 2bfc3b3..94139bf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.8.tar.gz) = 33145bf1ec95ec07f384049cb80f41d80415cbb909301e007bd94e708590c099af381c292f7322b85fa1a721241edd1c635810595e4fba704a706edb815afa6b -SHA512 (nbdkit-1.39.8.tar.gz.sig) = c6abd26a8e978f170bcafc0b5a8150e23a7e1fdabec3379361e4742d1e10251d397880c60127db0731c448ef2dd0652e5dab8ad36ee3e172ea642e28721e3785 +SHA512 (nbdkit-1.39.9.tar.gz) = 357844f335f629e04939404e37186ca527d29e24b1ee36472e91804da1d0244a6420569be5c926d69cee47a8120d7e1cebfa159aa3a6ca5544e842cf8aa5cb6c +SHA512 (nbdkit-1.39.9.tar.gz.sig) = 65898fbd69d5e02a7a980138cf865839a8869ab8ea07c01f3b288360767064b1f88ff3176c2f5c749f74161a563a9a2bea26c53296a47b43d6ef7f1879c5e230 From 498c258187d334cfd06fb0f81c95118a9138c883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sat, 13 Jul 2024 09:29:08 +0200 Subject: [PATCH 596/683] Rebuilt for the bin-sbin merge (again) https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4644eae..9037202 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1498,6 +1498,9 @@ fi %changelog +* Sat Jul 13 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.39.9-2 +- Rebuilt for the bin-sbin merge (again) + * Tue Jul 09 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.9-1 - New upstream development version 1.39.9 From cebe2edc08886e130a60b2a31ec14a3c923b2339 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 14 Jul 2024 09:33:47 +0100 Subject: [PATCH 597/683] New upstream development version 1.39.10 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9037202..0c1cd60 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.39-development Name: nbdkit -Version: 1.39.9 -Release: 2%{?dist} +Version: 1.39.10 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1498,6 +1498,9 @@ fi %changelog +* Sun Jul 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.10-1 +- New upstream development version 1.39.10 + * Sat Jul 13 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.39.9-2 - Rebuilt for the bin-sbin merge (again) diff --git a/sources b/sources index 94139bf..dd26b0e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.9.tar.gz) = 357844f335f629e04939404e37186ca527d29e24b1ee36472e91804da1d0244a6420569be5c926d69cee47a8120d7e1cebfa159aa3a6ca5544e842cf8aa5cb6c -SHA512 (nbdkit-1.39.9.tar.gz.sig) = 65898fbd69d5e02a7a980138cf865839a8869ab8ea07c01f3b288360767064b1f88ff3176c2f5c749f74161a563a9a2bea26c53296a47b43d6ef7f1879c5e230 +SHA512 (nbdkit-1.39.10.tar.gz) = 1f8585d8cda6b0b3ddefc8d529d9655cd8c59cb97e4b60ee1ead04d8770b8418cefca30de611cf9520931c4950d8ab9f528a19f7c03f5f1c94afec2610453c19 +SHA512 (nbdkit-1.39.10.tar.gz.sig) = 2cf74aef27dfcb9dc0b11b6cd48221fb3e0d089e598b05cf2779376dd21f216a7a31c84b4929b32b1fcef856c26f71ebaac51d203caea0efe1be89c3142fdc1e From 517fe72cff2ac52057f0de4d134ccefd93c836d0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 15 Jul 2024 17:37:51 +0100 Subject: [PATCH 598/683] Remove old Obsoletes nbdkit-tar-plugin Originally this was added for Fedora 33+. We're now up to Fedora 41. --- nbdkit.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0c1cd60..6eacaaa 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -674,7 +674,6 @@ Display statistics about operations. Summary: Tar archive filter for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: tar -Obsoletes: %{name}-tar-plugin < 1.23.9-3 %description tar-filter This package is a tar archive filter for %{name}. From eb759613ce0b846dad15f089c49f3a4e686b9df1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 14 Jul 2024 21:28:00 +0100 Subject: [PATCH 599/683] Combine nbdkit-gzip-filter with basic filters nbdkit-basic-filters over time has actually gained dependencies on zlib and zstd. Accepting this, don't package nbdkit-gzip-filter separately. For consistency document that nbdkit-basic-plugins also depends on zlib and zstd (which it does already). --- nbdkit.spec | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6eacaaa..939de4f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -255,8 +255,8 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} %description basic-plugins This package contains plugins for %{name} which only depend on simple -C libraries: glibc, gnutls, libzstd. Other plugins for nbdkit with -more complex dependencies are packaged separately. +C libraries: glibc, gnutls, zlib and zstd. Other plugins for nbdkit +with more complex dependencies are packaged separately. nbdkit-data-plugin Serve small amounts of data from the command line. @@ -544,11 +544,13 @@ VMware VDDK for accessing VMware disks and servers. %package basic-filters Summary: Basic filters for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} +# Remove this in Fedora 43: +Obsoletes: nbdkit-gzip-filter < %{version}-%{release} %description basic-filters This package contains filters for %{name} which only depend on simple -C libraries: glibc, gnutls. Other filters for nbdkit with more -complex dependencies are packaged separately. +C libraries: glibc, gnutls, zlib and zstd. Other filters for nbdkit +with more complex dependencies are packaged separately. nbdkit-blocksize-filter Adjust block size of requests sent to plugins. @@ -580,6 +582,8 @@ nbdkit-extentlist-filter Place extent list over a plugin. nbdkit-fua-filter Modify flush behaviour in plugins. +nbdkit-gzip-filter Decompress a .gz file + nbdkit-ip-filter Filter clients by IP address. nbdkit-limit-filter Limit nr clients that can connect concurrently. @@ -654,14 +658,6 @@ This package contains ext2, ext3 and ext4 filesystem support for %endif -%package gzip-filter -Summary: GZip filter for %{name} -Requires: %{name}-server%{?_isa} = %{version}-%{release} - -%description gzip-filter -This package is a gzip filter for %{name}. - - %package stats-filter Summary: Statistics filter for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -1307,6 +1303,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-exportname-filter.so %{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so +%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so %{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so @@ -1350,6 +1347,7 @@ fi %{_mandir}/man1/nbdkit-exportname-filter.1* %{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* +%{_mandir}/man1/nbdkit-gzip-filter.1* %{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* @@ -1396,13 +1394,6 @@ fi %endif -%files gzip-filter -%doc README.md -%license LICENSE -%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so -%{_mandir}/man1/nbdkit-gzip-filter.1* - - %files stats-filter %doc README.md %license LICENSE @@ -1497,8 +1488,9 @@ fi %changelog -* Sun Jul 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.10-1 +* Sun Jul 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.10-2 - New upstream development version 1.39.10 +- Combine nbdkit-gzip-filter with basic filters * Sat Jul 13 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.39.9-2 - Rebuilt for the bin-sbin merge (again) From f072fdb87588cc33f5b99b29ecca4696d5b17f59 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Thu, 18 Jul 2024 19:12:39 +0000 Subject: [PATCH 600/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 939de4f..a616124 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.39.10 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1488,6 +1488,9 @@ fi %changelog +* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.39.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sun Jul 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.39.10-2 - New upstream development version 1.39.10 - Combine nbdkit-gzip-filter with basic filters From b5d6c5a9fc47788e4d50f299f923e117c09a8334 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 19 Jul 2024 12:21:45 +0100 Subject: [PATCH 601/683] Add a comment about why openssl-devel-engine is needed It's not needed by nbdkit, but to work around a problem in boost ASIO library. Updates: commit 6b18b74749efbe1f618ea4bc010b56277157b0ac --- nbdkit.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index a616124..791ede5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -140,6 +140,8 @@ BuildRequires: ocaml-ocamldoc BuildRequires: pkgconfig(tcl) BuildRequires: pkgconfig(lua) %endif +# Only needed until the following bug gets fixed in boost: +# https://bugzilla.redhat.com/show_bug.cgi?id=2297642 %if 0%{?fedora} >= 41 BuildRequires: openssl-devel-engine %endif From 3ade72b0f9314a4ffb6d7f5e40a9621a7225c6af Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 21 Jul 2024 19:40:32 +0100 Subject: [PATCH 602/683] New upstream stable branch version 1.40.0 --- nbdkit.spec | 11 ++++++++--- sources | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 791ede5..414e8b4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,11 +51,11 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.39-development +%global source_directory 1.40-stable Name: nbdkit -Version: 1.39.10 -Release: 3%{?dist} +Version: 1.40.0 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -231,6 +231,8 @@ The key features are: * Filters can be stacked in front of plugins to transform the output. +* Server can run standalone or can be invoked from other programs. + '%{name}' is a meta-package which pulls in the core server and a useful subset of plugins and filters with minimal dependencies. @@ -1490,6 +1492,9 @@ fi %changelog +* Sun Jul 21 2024 Richard W.M. Jones <rjones@redhat.com> - 1.40.0-1 +- New upstream stable branch version 1.40.0 + * Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.39.10-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index dd26b0e..3670565 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.39.10.tar.gz) = 1f8585d8cda6b0b3ddefc8d529d9655cd8c59cb97e4b60ee1ead04d8770b8418cefca30de611cf9520931c4950d8ab9f528a19f7c03f5f1c94afec2610453c19 -SHA512 (nbdkit-1.39.10.tar.gz.sig) = 2cf74aef27dfcb9dc0b11b6cd48221fb3e0d089e598b05cf2779376dd21f216a7a31c84b4929b32b1fcef856c26f71ebaac51d203caea0efe1be89c3142fdc1e +SHA512 (nbdkit-1.40.0.tar.gz) = 2ebf416359e61d4a7945ada095363fabfd300a3a9721a07ea39b0682c9d9e4dc0b8a9b1145e7992eca8605727d9c7a20c396295e3412e5e1bd246b903616a68d +SHA512 (nbdkit-1.40.0.tar.gz.sig) = 2ca1fe1d5eb09fdca132e9d927316687947f883596b03b07cd91f225f65db1604e13f9f3b5836e4e21124efb83cbb5b8e11c9278a11b8b3cb79e9fe3605f76b6 From ce8ba94d2cb5d931916777be6eae27d17c786871 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 21 Jul 2024 21:54:02 +0100 Subject: [PATCH 603/683] Fix tarball signature --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 3670565..623be89 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (nbdkit-1.40.0.tar.gz) = 2ebf416359e61d4a7945ada095363fabfd300a3a9721a07ea39b0682c9d9e4dc0b8a9b1145e7992eca8605727d9c7a20c396295e3412e5e1bd246b903616a68d -SHA512 (nbdkit-1.40.0.tar.gz.sig) = 2ca1fe1d5eb09fdca132e9d927316687947f883596b03b07cd91f225f65db1604e13f9f3b5836e4e21124efb83cbb5b8e11c9278a11b8b3cb79e9fe3605f76b6 +SHA512 (nbdkit-1.40.0.tar.gz.sig) = a3833dc96b241f77ea90bd2a13ec20aaa1e0d72c777fdf7d5dc73271b2df8e8649254b5cface74eddd5952feb9ef6c2191777153edb17674de68a7dabfad54eb From c25e90d6e461dd87bae916550ecb27fc54b47181 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 29 Jul 2024 13:40:37 +0100 Subject: [PATCH 604/683] New upstream stable branch version 1.40.1 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 414e8b4..feec1c7 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.40-stable Name: nbdkit -Version: 1.40.0 +Version: 1.40.1 Release: 1%{?dist} Summary: NBD server @@ -1492,6 +1492,9 @@ fi %changelog +* Mon Jul 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1.40.1-1 +- New upstream stable branch version 1.40.1 + * Sun Jul 21 2024 Richard W.M. Jones <rjones@redhat.com> - 1.40.0-1 - New upstream stable branch version 1.40.0 diff --git a/sources b/sources index 623be89..6d8aad4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.40.0.tar.gz) = 2ebf416359e61d4a7945ada095363fabfd300a3a9721a07ea39b0682c9d9e4dc0b8a9b1145e7992eca8605727d9c7a20c396295e3412e5e1bd246b903616a68d -SHA512 (nbdkit-1.40.0.tar.gz.sig) = a3833dc96b241f77ea90bd2a13ec20aaa1e0d72c777fdf7d5dc73271b2df8e8649254b5cface74eddd5952feb9ef6c2191777153edb17674de68a7dabfad54eb +SHA512 (nbdkit-1.40.1.tar.gz) = 365dd441c22ee7d515b566bac5e9f652c4e3c11108924a100c71d8c55fcde19ee802d00ed85c0ce5b04b4b0a643b9188d831abf1cb5a35c34b86a19fa0264171 +SHA512 (nbdkit-1.40.1.tar.gz.sig) = 9407350225fe4f5fae5a4a3757328fe0c1b468e851a241b1077e5469c931afa2f8a8e6b001f405ea6be12249eab576f9786b82f14cc03f170bb9fa420aeda381 From 1099d7a2f8c53c38a639e5e60bce6754204f6a34 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 24 Aug 2024 10:56:53 +0100 Subject: [PATCH 605/683] New upstream development branch version 1.41.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index feec1c7..fb44fcd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.40-stable +%global source_directory 1.41-development Name: nbdkit -Version: 1.40.1 +Version: 1.41.1 Release: 1%{?dist} Summary: NBD server @@ -1492,6 +1492,9 @@ fi %changelog +* Sat Aug 24 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.1-1 +- New upstream development branch version 1.41.1 + * Mon Jul 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1.40.1-1 - New upstream stable branch version 1.40.1 diff --git a/sources b/sources index 6d8aad4..0d14c86 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.40.1.tar.gz) = 365dd441c22ee7d515b566bac5e9f652c4e3c11108924a100c71d8c55fcde19ee802d00ed85c0ce5b04b4b0a643b9188d831abf1cb5a35c34b86a19fa0264171 -SHA512 (nbdkit-1.40.1.tar.gz.sig) = 9407350225fe4f5fae5a4a3757328fe0c1b468e851a241b1077e5469c931afa2f8a8e6b001f405ea6be12249eab576f9786b82f14cc03f170bb9fa420aeda381 +SHA512 (nbdkit-1.41.1.tar.gz) = 9440244cc3fe6df1dc4da2546075bd78dbc225d475449a52a13b877666fea1f808bc24f51ecad203bdc6fa0f5f046c0d33d7ccc154ac516082c29fd44a581885 +SHA512 (nbdkit-1.41.1.tar.gz.sig) = eb086ff67d6f401894f6c056b6469b65f26165a0168f239e3971331ec4ef418bcc7f7f245a6e5a23eea30dd7394693c0c1326e917114eea14c93005d019dbe02 From c480477abb7f6a123525a15cef15e005dac95b0f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 8 Sep 2024 12:43:50 +0100 Subject: [PATCH 606/683] New upstream development branch version 1.41.2 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fb44fcd..d49e28f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.1 +Version: 1.41.2 Release: 1%{?dist} Summary: NBD server @@ -1492,6 +1492,9 @@ fi %changelog +* Sun Sep 08 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.2-1 +- New upstream development branch version 1.41.2 + * Sat Aug 24 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.1-1 - New upstream development branch version 1.41.1 diff --git a/sources b/sources index 0d14c86..ddfe3f6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.1.tar.gz) = 9440244cc3fe6df1dc4da2546075bd78dbc225d475449a52a13b877666fea1f808bc24f51ecad203bdc6fa0f5f046c0d33d7ccc154ac516082c29fd44a581885 -SHA512 (nbdkit-1.41.1.tar.gz.sig) = eb086ff67d6f401894f6c056b6469b65f26165a0168f239e3971331ec4ef418bcc7f7f245a6e5a23eea30dd7394693c0c1326e917114eea14c93005d019dbe02 +SHA512 (nbdkit-1.41.2.tar.gz) = 5cdf55c64aab396dad25d2e60569052965ea939db3c602e7de1d5a799caa07098d03c316969365cfd3ad28fa4d7094ae9eaf7c34c91e79f5d558ec2ae11ad393 +SHA512 (nbdkit-1.41.2.tar.gz.sig) = ee63bc27f564990c4477e6ce0ea742f6b7052a9858d2b31ffd47fc06fdf8e59ad074a86bafc3e47a21a511c3fe93aa198f2dd4e377392cf2172ea5520c7dda54 From 2b29a9420fad136cdb1309ca7dcf6bef544ce99a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 12 Sep 2024 21:41:49 +0100 Subject: [PATCH 607/683] New upstream development branch version 1.41.3 New nbdkit-time-limit-filter --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d49e28f..08f5bf3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.2 +Version: 1.41.3 Release: 1%{?dist} Summary: NBD server @@ -638,6 +638,8 @@ nbdkit-spinning-filter Add seek delays to simulate a spinning hard disk. nbdkit-swab-filter Filter for swapping byte order. +nbdkit-time-limit-filter Set an overall time limit for each connection. + nbdkit-tls-fallback-filter TLS protection filter. nbdkit-truncate-filter Truncate, expand, round up or round down size. @@ -1334,6 +1336,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-scan-filter.so %{_libdir}/%{name}/filters/nbdkit-spinning-filter.so %{_libdir}/%{name}/filters/nbdkit-swab-filter.so +%{_libdir}/%{name}/filters/nbdkit-time-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so %{_libdir}/%{name}/filters/nbdkit-truncate-filter.so %{_mandir}/man1/nbdkit-blocksize-filter.1* @@ -1378,6 +1381,7 @@ fi %{_mandir}/man1/nbdkit-scan-filter.1* %{_mandir}/man1/nbdkit-spinning-filter.1* %{_mandir}/man1/nbdkit-swab-filter.1* +%{_mandir}/man1/nbdkit-time-limit-filter.1* %{_mandir}/man1/nbdkit-tls-fallback-filter.1* %{_mandir}/man1/nbdkit-truncate-filter.1* @@ -1492,6 +1496,10 @@ fi %changelog +* Thu Sep 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.3-1 +- New upstream development branch version 1.41.3 +- New nbdkit-time-limit-filter + * Sun Sep 08 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.2-1 - New upstream development branch version 1.41.2 diff --git a/sources b/sources index ddfe3f6..4c09729 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.2.tar.gz) = 5cdf55c64aab396dad25d2e60569052965ea939db3c602e7de1d5a799caa07098d03c316969365cfd3ad28fa4d7094ae9eaf7c34c91e79f5d558ec2ae11ad393 -SHA512 (nbdkit-1.41.2.tar.gz.sig) = ee63bc27f564990c4477e6ce0ea742f6b7052a9858d2b31ffd47fc06fdf8e59ad074a86bafc3e47a21a511c3fe93aa198f2dd4e377392cf2172ea5520c7dda54 +SHA512 (nbdkit-1.41.3.tar.gz) = 0c86a0dea8bec4143e910a595351f8737213e075186cf96c703ff8592163b7fac7dd70e1457db8b3740252ffa8326f34150cdc630d68272039aed83387fbaffc +SHA512 (nbdkit-1.41.3.tar.gz.sig) = 1e94eff15a8d02a60bf4028b30e5c9c9913fcc9e4a29504f85d73fb3c72ee89994e3ce6b6fbcc9341ab08f2ca31bb269c28b3270971f31344d4d3f19d7efbca0 From 8bc76e0971990f8ad690e0e313b28896f506a5d5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 13 Sep 2024 15:53:52 +0100 Subject: [PATCH 608/683] New upstream development branch version 1.41.4 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 08f5bf3..7ca46dc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.3 +Version: 1.41.4 Release: 1%{?dist} Summary: NBD server @@ -1496,6 +1496,9 @@ fi %changelog +* Fri Sep 13 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.4-1 +- New upstream development branch version 1.41.4 + * Thu Sep 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.3-1 - New upstream development branch version 1.41.3 - New nbdkit-time-limit-filter diff --git a/sources b/sources index 4c09729..44752c0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.3.tar.gz) = 0c86a0dea8bec4143e910a595351f8737213e075186cf96c703ff8592163b7fac7dd70e1457db8b3740252ffa8326f34150cdc630d68272039aed83387fbaffc -SHA512 (nbdkit-1.41.3.tar.gz.sig) = 1e94eff15a8d02a60bf4028b30e5c9c9913fcc9e4a29504f85d73fb3c72ee89994e3ce6b6fbcc9341ab08f2ca31bb269c28b3270971f31344d4d3f19d7efbca0 +SHA512 (nbdkit-1.41.4.tar.gz) = cecf361a3084c5d6b9f52727a681d2e28057a3ab6bf599c4b1224dc0beab79fc05e74df78b9e54e582a6628aa8d85bda7cb2a1865fadebc6e7073bc5d67b1bf0 +SHA512 (nbdkit-1.41.4.tar.gz.sig) = ef0b1158277bf44311245c6fcb463c69281fa0680fb59c391434195a493d51ea0f3c7173046b5dc757f55d8d079f9cb61071870fbe0c02c0394506ea8618dce5 From fd5bf0f0eaa4c8a2689117e3ebdcbc9247e29052 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 22 Sep 2024 20:02:23 +0100 Subject: [PATCH 609/683] New upstream development branch version 1.41.5 Add lzip filter to the existing nbdkit-xz-filter package Reenable MC in mingw build --- ...and.sh-Work-around-bug-in-qemu-9.1-e.patch | 50 +++++++++++++++++++ nbdkit.spec | 21 +++++--- sources | 4 +- 3 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch diff --git a/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch b/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch new file mode 100644 index 0000000..10877c4 --- /dev/null +++ b/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch @@ -0,0 +1,50 @@ +From 8e5b4e181043ec3b24a5cd1b51f55d1e596bf651 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 22 Sep 2024 20:58:35 +0100 +Subject: [PATCH] tests/test-ondemand.sh: Work around bug in qemu 9.1 + exportname handling + +qemu 9.1 NBD URI handling of export names is buggy: +https://gitlab.com/qemu-project/qemu/-/issues/2584 + +Work around this bug in the tests. +--- + tests/test-ondemand.sh | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/tests/test-ondemand.sh b/tests/test-ondemand.sh +index 83abd85026..1443d3e9a3 100755 +--- a/tests/test-ondemand.sh ++++ b/tests/test-ondemand.sh +@@ -68,15 +68,22 @@ test -f $dir/default + test -f $dir/test + + # These should fail because the exportname is invalid. ++errors=0 + for e in /bad .bad . .. ./etc ; do +- if nbdinfo "nbd+unix:///$e?socket=$sock" || +- qemu-img info "nbd+unix:///$e?socket=$sock" || +- qemu-img info nbd:unix:$sock:exportname=$e +- then +- echo "$0: expected failure trying to create bad exportname" +- exit 1 ++ if nbdinfo "nbd+unix:///$e?socket=$sock"; then ((errors++)) ||:; fi ++ # QEMU 9.1 fails to parse exportnames starting with "." correctly: ++ # https://gitlab.com/qemu-project/qemu/-/issues/2584 ++ if test "$e" != "." && test "$e" != ".." && test "$e" != "./etc"; then ++ if qemu-img info "nbd+unix:///$e?socket=$sock" ++ then ((errors++)) ||:; fi ++ if qemu-img info nbd:unix:$sock:exportname=$e ++ then ((errors++)) ||:; fi + fi + done ++if test "$errors" -gt 0; then ++ echo "$0: expected failure trying to create bad exportname" ++ exit 1 ++fi + + # Check the filesystem is persistent. + guestfish --format=raw -a "nbd://?socket=$sock" -m /dev/sda <<EOF +-- +2.46.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 7ca46dc..55274d4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.4 +Version: 1.41.5 Release: 1%{?dist} Summary: NBD server @@ -86,6 +86,10 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Workaround for qemu 9.1 +# Upstream in 8e5b4e181043ec3b24a5cd1b51f55d1e596bf651 +Patch: 0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch + # For applying the patches: BuildRequires: git @@ -158,6 +162,7 @@ BuildRequires: glibc-utils BuildRequires: /usr/bin/hexdump BuildRequires: /usr/sbin/ip BuildRequires: jq +BuildRequires: /usr/bin/lzip BuildRequires: /usr/bin/nbdcopy BuildRequires: /usr/bin/nbdinfo BuildRequires: /usr/bin/nbdsh @@ -682,11 +687,11 @@ This package is a tar archive filter for %{name}. %package xz-filter -Summary: XZ filter for %{name} +Summary: XZ and lzip filters for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} %description xz-filter -This package is the xz filter for %{name}. +This package contains the xz and lzip filters for %{name}. %package devel @@ -876,10 +881,7 @@ bzip2 -9 %{modulename}.pp popd %if 0%{?have_mingw} -# MC=no is a temporary hack until this bug is fixed in binutils: -# https://sourceware.org/bugzilla/show_bug.cgi?id=31283 %mingw_configure \ - MC=no \ --disable-static \ --enable-shared \ --with-extra='%{name}-%{version}-%{release}' \ @@ -1419,7 +1421,9 @@ fi %files xz-filter %doc README.md %license LICENSE +%{_libdir}/%{name}/filters/nbdkit-lzip-filter.so %{_libdir}/%{name}/filters/nbdkit-xz-filter.so +%{_mandir}/man1/nbdkit-lzip-filter.1* %{_mandir}/man1/nbdkit-xz-filter.1* @@ -1496,6 +1500,11 @@ fi %changelog +* Sun Sep 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.5-1 +- New upstream development branch version 1.41.5 +- Add lzip filter to the existing nbdkit-xz-filter package +- Reenable MC in mingw build + * Fri Sep 13 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.4-1 - New upstream development branch version 1.41.4 diff --git a/sources b/sources index 44752c0..9a79f00 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.4.tar.gz) = cecf361a3084c5d6b9f52727a681d2e28057a3ab6bf599c4b1224dc0beab79fc05e74df78b9e54e582a6628aa8d85bda7cb2a1865fadebc6e7073bc5d67b1bf0 -SHA512 (nbdkit-1.41.4.tar.gz.sig) = ef0b1158277bf44311245c6fcb463c69281fa0680fb59c391434195a493d51ea0f3c7173046b5dc757f55d8d079f9cb61071870fbe0c02c0394506ea8618dce5 +SHA512 (nbdkit-1.41.5.tar.gz) = ac24fd54dc6a18bca8c79d7d2c33054a8930fe47ad42663921b42a445b6d9a6573d09c73d97f1c323b302c247d2093567ff27fe3be4018e4bb0b60b53265cb96 +SHA512 (nbdkit-1.41.5.tar.gz.sig) = c1deed9e8d52b55cbc41917a66c3fd6becb2d8c2de1e81c04a6880aba9f15312cd0fab88051601a9db590d1e93e1c0f598ad6f76eab5731badeacb3b2c816e1d From 60a16732712dad815b9a34ce322be22bff62e74b Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz <yselkowi@redhat.com> Date: Tue, 24 Sep 2024 19:06:26 -0400 Subject: [PATCH 610/683] Avoid lzip dependency on RHEL lzip is unwanted in RHEL, and is only used here for a test of the newly added lzip filter. --- nbdkit.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 55274d4..8871b52 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.41.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -162,7 +162,9 @@ BuildRequires: glibc-utils BuildRequires: /usr/bin/hexdump BuildRequires: /usr/sbin/ip BuildRequires: jq +%if !0%{?rhel} BuildRequires: /usr/bin/lzip +%endif BuildRequires: /usr/bin/nbdcopy BuildRequires: /usr/bin/nbdinfo BuildRequires: /usr/bin/nbdsh @@ -1500,6 +1502,9 @@ fi %changelog +* Tue Sep 24 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 1.41.5-2 +- Avoid lzip dependency on RHEL + * Sun Sep 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.5-1 - New upstream development branch version 1.41.5 - Add lzip filter to the existing nbdkit-xz-filter package From 7b3a2eb66e8229593bc8faab96615bb184a03ead Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 25 Sep 2024 16:29:08 +0100 Subject: [PATCH 611/683] New upstream development branch version 1.41.6 --- ...and.sh-Work-around-bug-in-qemu-9.1-e.patch | 50 ------------------- nbdkit.spec | 11 ++-- sources | 4 +- 3 files changed, 7 insertions(+), 58 deletions(-) delete mode 100644 0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch diff --git a/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch b/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch deleted file mode 100644 index 10877c4..0000000 --- a/0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8e5b4e181043ec3b24a5cd1b51f55d1e596bf651 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 22 Sep 2024 20:58:35 +0100 -Subject: [PATCH] tests/test-ondemand.sh: Work around bug in qemu 9.1 - exportname handling - -qemu 9.1 NBD URI handling of export names is buggy: -https://gitlab.com/qemu-project/qemu/-/issues/2584 - -Work around this bug in the tests. ---- - tests/test-ondemand.sh | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) - -diff --git a/tests/test-ondemand.sh b/tests/test-ondemand.sh -index 83abd85026..1443d3e9a3 100755 ---- a/tests/test-ondemand.sh -+++ b/tests/test-ondemand.sh -@@ -68,15 +68,22 @@ test -f $dir/default - test -f $dir/test - - # These should fail because the exportname is invalid. -+errors=0 - for e in /bad .bad . .. ./etc ; do -- if nbdinfo "nbd+unix:///$e?socket=$sock" || -- qemu-img info "nbd+unix:///$e?socket=$sock" || -- qemu-img info nbd:unix:$sock:exportname=$e -- then -- echo "$0: expected failure trying to create bad exportname" -- exit 1 -+ if nbdinfo "nbd+unix:///$e?socket=$sock"; then ((errors++)) ||:; fi -+ # QEMU 9.1 fails to parse exportnames starting with "." correctly: -+ # https://gitlab.com/qemu-project/qemu/-/issues/2584 -+ if test "$e" != "." && test "$e" != ".." && test "$e" != "./etc"; then -+ if qemu-img info "nbd+unix:///$e?socket=$sock" -+ then ((errors++)) ||:; fi -+ if qemu-img info nbd:unix:$sock:exportname=$e -+ then ((errors++)) ||:; fi - fi - done -+if test "$errors" -gt 0; then -+ echo "$0: expected failure trying to create bad exportname" -+ exit 1 -+fi - - # Check the filesystem is persistent. - guestfish --format=raw -a "nbd://?socket=$sock" -m /dev/sda <<EOF --- -2.46.0 - diff --git a/nbdkit.spec b/nbdkit.spec index 8871b52..15b7dfd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.5 -Release: 2%{?dist} +Version: 1.41.6 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -86,10 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Workaround for qemu 9.1 -# Upstream in 8e5b4e181043ec3b24a5cd1b51f55d1e596bf651 -Patch: 0001-tests-test-ondemand.sh-Work-around-bug-in-qemu-9.1-e.patch - # For applying the patches: BuildRequires: git @@ -1502,6 +1498,9 @@ fi %changelog +* Wed Sep 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.6-1 +- New upstream development branch version 1.41.6 + * Tue Sep 24 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 1.41.5-2 - Avoid lzip dependency on RHEL diff --git a/sources b/sources index 9a79f00..3c8fbc3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.5.tar.gz) = ac24fd54dc6a18bca8c79d7d2c33054a8930fe47ad42663921b42a445b6d9a6573d09c73d97f1c323b302c247d2093567ff27fe3be4018e4bb0b60b53265cb96 -SHA512 (nbdkit-1.41.5.tar.gz.sig) = c1deed9e8d52b55cbc41917a66c3fd6becb2d8c2de1e81c04a6880aba9f15312cd0fab88051601a9db590d1e93e1c0f598ad6f76eab5731badeacb3b2c816e1d +SHA512 (nbdkit-1.41.6.tar.gz) = a54a48aa91ef25b8694b40b6b5599dc959a9b2efd76e3a962c60364591b770b89347a3106a7b9867f8aae0c50ff7783297dcfb52fb24a4b8fb89d280d525cac4 +SHA512 (nbdkit-1.41.6.tar.gz.sig) = d2e818175149f05b1620c9f5325a8d61ac5b64845a96764a64c73bb783cb77aa7edaa0becd32ab799fb9da50bda3f33fc0fe79ff28d7c5fa269f7ee4f82db4e7 From 6f3442584b9dfd64c2ecd3514ff7ef65c11ae38f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 4 Oct 2024 12:09:13 +0100 Subject: [PATCH 612/683] New upstream development branch version 1.41.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 15b7dfd..8dce351 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.6 +Version: 1.41.7 Release: 1%{?dist} Summary: NBD server @@ -1498,6 +1498,9 @@ fi %changelog +* Fri Oct 04 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.7-1 +- New upstream development branch version 1.41.7 + * Wed Sep 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.6-1 - New upstream development branch version 1.41.6 diff --git a/sources b/sources index 3c8fbc3..9aea080 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.6.tar.gz) = a54a48aa91ef25b8694b40b6b5599dc959a9b2efd76e3a962c60364591b770b89347a3106a7b9867f8aae0c50ff7783297dcfb52fb24a4b8fb89d280d525cac4 -SHA512 (nbdkit-1.41.6.tar.gz.sig) = d2e818175149f05b1620c9f5325a8d61ac5b64845a96764a64c73bb783cb77aa7edaa0becd32ab799fb9da50bda3f33fc0fe79ff28d7c5fa269f7ee4f82db4e7 +SHA512 (nbdkit-1.41.7.tar.gz) = f4e28c590524dd48e505ae8f330694c1efcbd65d0586196d3c8ff7ffeea9865f29ad5f901b383c152e8c5d2679c2bd63a8e27248b9a800bc49db35853e1f6309 +SHA512 (nbdkit-1.41.7.tar.gz.sig) = 9b0f7a7e754bd00846889941bde2b07d1b02ab5d41c9520c70d748f19c368b0ad09f1e29cb75ca5ab61105ffb05764095db818ddffe04f33a78e8c6d96415694 From e0e83ff709ad051639d11a0a21a5c78e306a23db Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Oct 2024 09:27:50 +0100 Subject: [PATCH 613/683] Move nbdkit-ondemand-plugin to separate subpackage Since this has extra dependencies. --- nbdkit.spec | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8dce351..c0a72fd 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -279,8 +279,6 @@ nbdkit-info-plugin Serve client and server information. nbdkit-memory-plugin A virtual memory plugin. -nbdkit-ondemand-plugin Create filesystems on demand. - nbdkit-ones-plugin Fill disk with repeated 0xff or other bytes. nbdkit-pattern-plugin Fixed test pattern. @@ -458,6 +456,21 @@ This package lets you write OCaml plugins for %{name}. %endif +%package ondemand-plugin +Summary: Create filesystems on demand for %{name} +Requires: %{name}-server%{?_isa} = %{version}-%{release} +# For mkfs and mke2fs (defaults). +Requires: util-linux, e2fsprogs +# For other filesystems. +Suggests: xfsprogs +%if !0%{?rhel} +Suggests: ntfsprogs, dosfstools +%endif + +%description ondemand-plugin +This package is a plugin to create filesystems on demand for %{name}. + + %if !0%{?rhel} %package perl-plugin Summary: Perl plugin for %{name} @@ -1081,7 +1094,6 @@ fi %{_libdir}/%{name}/plugins/nbdkit-full-plugin.so %{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so -%{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so %{_libdir}/%{name}/plugins/nbdkit-ones-plugin.so %{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so @@ -1097,7 +1109,6 @@ fi %{_mandir}/man1/nbdkit-full-plugin.1* %{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1* -%{_mandir}/man1/nbdkit-ondemand-plugin.1* %{_mandir}/man1/nbdkit-ones-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1* @@ -1225,6 +1236,13 @@ fi %endif +%files ondemand-plugin +%doc README.md +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so +%{_mandir}/man1/nbdkit-ondemand-plugin.1* + + %if !0%{?rhel} %files perl-plugin %doc README.md From 98740935533ec01f87f2b620755096befefc6afe Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 14 Oct 2024 20:36:58 +0100 Subject: [PATCH 614/683] New upstream development branch version 1.41.8 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c0a72fd..1ef4d49 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.7 +Version: 1.41.8 Release: 1%{?dist} Summary: NBD server @@ -1516,6 +1516,9 @@ fi %changelog +* Mon Oct 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.8-1 +- New upstream development branch version 1.41.8 + * Fri Oct 04 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.7-1 - New upstream development branch version 1.41.7 diff --git a/sources b/sources index 9aea080..6de52fa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.7.tar.gz) = f4e28c590524dd48e505ae8f330694c1efcbd65d0586196d3c8ff7ffeea9865f29ad5f901b383c152e8c5d2679c2bd63a8e27248b9a800bc49db35853e1f6309 -SHA512 (nbdkit-1.41.7.tar.gz.sig) = 9b0f7a7e754bd00846889941bde2b07d1b02ab5d41c9520c70d748f19c368b0ad09f1e29cb75ca5ab61105ffb05764095db818ddffe04f33a78e8c6d96415694 +SHA512 (nbdkit-1.41.8.tar.gz) = 66a056a334d09af162876e485b5909bc66d869ec73721a8316c2c134bda1e28c01adf78297c5efaad7917923bf143c144a87b5885c0e09ed78a0172d626bd941 +SHA512 (nbdkit-1.41.8.tar.gz.sig) = 12a0aad8df1c7b4368cd9f94a8fc8f09705dbebd1892d8d33578d4629b8a18c9a301bbf2b3a1c538a9f7f7a2111dd280fcd771e59ea790bceb0cf46abb72d299 From 145dc5e3b3a62098ea27789c93f748d52e7ab91a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 8 Jan 2025 17:26:40 +0000 Subject: [PATCH 615/683] New upstream development branch version 1.41.9 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1ef4d49..e643b26 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.41-development Name: nbdkit -Version: 1.41.8 +Version: 1.41.9 Release: 1%{?dist} Summary: NBD server @@ -1516,6 +1516,9 @@ fi %changelog +* Wed Jan 08 2025 Richard W.M. Jones <rjones@redhat.com> - 1.41.9-1 +- New upstream development branch version 1.41.9 + * Mon Oct 14 2024 Richard W.M. Jones <rjones@redhat.com> - 1.41.8-1 - New upstream development branch version 1.41.8 diff --git a/sources b/sources index 6de52fa..2380b9a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.8.tar.gz) = 66a056a334d09af162876e485b5909bc66d869ec73721a8316c2c134bda1e28c01adf78297c5efaad7917923bf143c144a87b5885c0e09ed78a0172d626bd941 -SHA512 (nbdkit-1.41.8.tar.gz.sig) = 12a0aad8df1c7b4368cd9f94a8fc8f09705dbebd1892d8d33578d4629b8a18c9a301bbf2b3a1c538a9f7f7a2111dd280fcd771e59ea790bceb0cf46abb72d299 +SHA512 (nbdkit-1.41.9.tar.gz) = fed78e71332ba5424109401fe4d5f4ca06140ae8238bc9441e509e997250a7c57e422008d34aa0914d60dd0e5877fb522e8d4562e3e4711c3d11717fb19eaf50 +SHA512 (nbdkit-1.41.9.tar.gz.sig) = 5143555beb97f91f4a176d3ba560816b28c85f1d57c8aa0ca8ae8f3e8406d76c0a60ce81026fc68854c3479073775ee1f91e5f6c3a5119ce54feb655355bba9d From 23310d113337beb753995f29131c0967906188fc Mon Sep 17 00:00:00 2001 From: Jerry James <loganjerry@gmail.com> Date: Thu, 9 Jan 2025 14:46:27 -0700 Subject: [PATCH 616/683] OCaml 5.3.0 rebuild for Fedora 42 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index e643b26..c97cbbb 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.41.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1516,6 +1516,9 @@ fi %changelog +* Thu Jan 9 2025 Jerry James <loganjerry@gmail.com> - 1.41.9-2 +- OCaml 5.3.0 rebuild for Fedora 42 + * Wed Jan 08 2025 Richard W.M. Jones <rjones@redhat.com> - 1.41.9-1 - New upstream development branch version 1.41.9 From 601f2b1914fb3062f1c93ccd635c638354397d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sun, 12 Jan 2025 14:36:15 +0100 Subject: [PATCH 617/683] Rebuilt for the bin-sbin merge (2nd attempt) https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index c97cbbb..e7c9cf6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.41.9 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1516,6 +1516,9 @@ fi %changelog +* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.41.9-3 +- Rebuilt for the bin-sbin merge (2nd attempt) + * Thu Jan 9 2025 Jerry James <loganjerry@gmail.com> - 1.41.9-2 - OCaml 5.3.0 rebuild for Fedora 42 From 6c21a9ca60f7be168773219ae29a5097f90b38dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sun, 12 Jan 2025 19:26:10 +0100 Subject: [PATCH 618/683] Skip failing tests --- nbdkit.spec | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index e7c9cf6..47bdf12 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1023,6 +1023,28 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif +%if "%{_sbindir}" == "%{_bindir}" +# Those tests fail after when bin-sbin merge: +# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup +skip_test tests/test-eval-file.sh +skip_test tests/test-floppy.sh +skip_test tests/test-floppy-size.sh +skip_test tests/test-iso.sh +skip_test tests/test-linuxdisk.sh +skip_test tests/test-linuxdisk-copy-out.sh +skip_test tests/test-nbd-qcow2.sh +skip_test tests/test-ondemand.sh +skip_test tests/test-partitioning2.sh +skip_test tests/test-partitioning3.sh +skip_test tests/test-partitioning5.sh +skip_test tests/test-shebang-cc.sh +skip_test tests/test-cow.sh +skip_test tests/test-cow-block-size.sh +skip_test tests/test-cow-extents2.sh +skip_test tests/test-spinning-mkfs.sh +skip_test tests/test-tar.sh +%endif + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From 8aaaa446c64b5cd9f0c283dd224a01f0d942422b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sun, 12 Jan 2025 20:52:21 +0100 Subject: [PATCH 619/683] Skip more failing tests Second batch. Those only seem to fail in koji/x86_64, and not in a local mock build and not on other architectures. Not sure why. --- nbdkit.spec | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/nbdkit.spec b/nbdkit.spec index 47bdf12..dab1c7c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1043,6 +1043,38 @@ skip_test tests/test-cow-block-size.sh skip_test tests/test-cow-extents2.sh skip_test tests/test-spinning-mkfs.sh skip_test tests/test-tar.sh + +skip_test tests/test-bzip2 +skip_test tests/test-curl +skip_test tests/test-data +skip_test tests/test-ext2 +skip_test tests/test-gzip +skip_test tests/test-gzip-curl +skip_test tests/test-lua +skip_test tests/test-lzip +skip_test tests/test-lzip-curl +skip_test tests/test-memory +skip_test tests/test-memory-allocator-malloc +skip_test tests/test-memory-allocator-zstd +skip_test tests/test-nbd +skip_test tests/test-ocaml +skip_test tests/test-offset +skip_test tests/test-old-plugins-x86_64-Linux-v1.0.0-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.12.8-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.18.2-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.2.8-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.38.4-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.8.4-fs.sh +skip_test tests/test-perl +skip_test tests/test-shell +skip_test tests/test-tar-gzip-curl +skip_test tests/test-tar-lzip-curl +skip_test tests/test-tar-xz-curl +skip_test tests/test-tcl +skip_test tests/test-tmpdisk +skip_test tests/test-vddk +skip_test tests/test-xz +skip_test tests/test-xz-curl %endif # Make sure we can see the debug messages (RHBZ#1230160). From 29130e004ba3a000ac8755b1ae690c52e709b11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> Date: Sun, 12 Jan 2025 21:31:08 +0100 Subject: [PATCH 620/683] Ignore test results when built with merged-sbin Every time I compile the package, some more tests fail. --- nbdkit.spec | 60 ++++++----------------------------------------------- 1 file changed, 6 insertions(+), 54 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index dab1c7c..2037884 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1023,67 +1023,19 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif -%if "%{_sbindir}" == "%{_bindir}" -# Those tests fail after when bin-sbin merge: -# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup -skip_test tests/test-eval-file.sh -skip_test tests/test-floppy.sh -skip_test tests/test-floppy-size.sh -skip_test tests/test-iso.sh -skip_test tests/test-linuxdisk.sh -skip_test tests/test-linuxdisk-copy-out.sh -skip_test tests/test-nbd-qcow2.sh -skip_test tests/test-ondemand.sh -skip_test tests/test-partitioning2.sh -skip_test tests/test-partitioning3.sh -skip_test tests/test-partitioning5.sh -skip_test tests/test-shebang-cc.sh -skip_test tests/test-cow.sh -skip_test tests/test-cow-block-size.sh -skip_test tests/test-cow-extents2.sh -skip_test tests/test-spinning-mkfs.sh -skip_test tests/test-tar.sh - -skip_test tests/test-bzip2 -skip_test tests/test-curl -skip_test tests/test-data -skip_test tests/test-ext2 -skip_test tests/test-gzip -skip_test tests/test-gzip-curl -skip_test tests/test-lua -skip_test tests/test-lzip -skip_test tests/test-lzip-curl -skip_test tests/test-memory -skip_test tests/test-memory-allocator-malloc -skip_test tests/test-memory-allocator-zstd -skip_test tests/test-nbd -skip_test tests/test-ocaml -skip_test tests/test-offset -skip_test tests/test-old-plugins-x86_64-Linux-v1.0.0-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.12.8-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.18.2-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.2.8-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.38.4-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.8.4-fs.sh -skip_test tests/test-perl -skip_test tests/test-shell -skip_test tests/test-tar-gzip-curl -skip_test tests/test-tar-lzip-curl -skip_test tests/test-tar-xz-curl -skip_test tests/test-tcl -skip_test tests/test-tmpdisk -skip_test tests/test-vddk -skip_test tests/test-xz -skip_test tests/test-xz-curl -%endif - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 %make_build check || { cat tests/test-suite.log + +# Too many tests fail after when bin-sbin merge: +# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup +# Ignore the result for now. +%if "%{_sbindir}" != "%{_bindir}" exit 1 +%endif } popd %endif From 14cbf5196febd283e656adc73676330dd184a457 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering <releng@fedoraproject.org> Date: Fri, 17 Jan 2025 19:45:35 +0000 Subject: [PATCH 621/683] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2037884..3213275 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.41.9 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1522,6 +1522,9 @@ fi %changelog +* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.41.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.41.9-3 - Rebuilt for the bin-sbin merge (2nd attempt) From a066211b6af036dcce87269bb5e19823803bcfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org> Date: Sat, 1 Feb 2025 19:55:54 +0100 Subject: [PATCH 622/683] Add explicit BR: libxcrypt-devel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Esser <besser82@fedoraproject.org> --- nbdkit.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3213275..6755d41 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.41.9 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD-3-Clause @@ -93,6 +93,7 @@ BuildRequires: git BuildRequires: autoconf, automake, libtool BuildRequires: make +BuildRequires: libxcrypt-devel BuildRequires: gcc, gcc-c++ BuildRequires: %{_bindir}/pod2man BuildRequires: pkgconfig(gnutls) @@ -1522,6 +1523,9 @@ fi %changelog +* Sat Feb 01 2025 Björn Esser <besser82@fedoraproject.org> - 1.41.9-5 +- Add explicit BR: libxcrypt-devel + * Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.41.9-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From ae34acf5e671e94f8118adab280123e1ca13599b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 11 Feb 2025 13:40:36 +0000 Subject: [PATCH 623/683] New upstream stable branch version 1.42.0 --- nbdkit.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6755d41..a8184ce 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,11 +51,11 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.41-development +%global source_directory 1.42-stable Name: nbdkit -Version: 1.41.9 -Release: 5%{?dist} +Version: 1.42.0 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1523,6 +1523,9 @@ fi %changelog +* Tue Feb 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.0-1 +- New upstream stable branch version 1.42.0 + * Sat Feb 01 2025 Björn Esser <besser82@fedoraproject.org> - 1.41.9-5 - Add explicit BR: libxcrypt-devel diff --git a/sources b/sources index 2380b9a..77b7677 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.41.9.tar.gz) = fed78e71332ba5424109401fe4d5f4ca06140ae8238bc9441e509e997250a7c57e422008d34aa0914d60dd0e5877fb522e8d4562e3e4711c3d11717fb19eaf50 -SHA512 (nbdkit-1.41.9.tar.gz.sig) = 5143555beb97f91f4a176d3ba560816b28c85f1d57c8aa0ca8ae8f3e8406d76c0a60ce81026fc68854c3479073775ee1f91e5f6c3a5119ce54feb655355bba9d +SHA512 (nbdkit-1.42.0.tar.gz) = c8360fc2d9e6806ab241dcd61da82f52a881dd394d2e6c8c5372d4920f0751fe20dfe9bf45ff35c34cd1e12fd35d2b7dcf17374387805ff6cdec599c543c6bdc +SHA512 (nbdkit-1.42.0.tar.gz.sig) = df2e05eb46c78c2ecdc16b6b1ba37cbcbf001cfd5f7c3b9206da7100e4499ddb7f35ed75786d109767f2e9bf4a2baf02994ce5684910fd9cfc8bfccc9dd6dce7 From ae16c18dec1b0d2912b7bed3148bd088109c14ac Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Feb 2025 12:58:11 +0000 Subject: [PATCH 624/683] Revert "Ignore test results when built with merged-sbin" This reverts commit 29130e004ba3a000ac8755b1ae690c52e709b11b. --- nbdkit.spec | 60 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index a8184ce..f4524a9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1024,19 +1024,67 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif +%if "%{_sbindir}" == "%{_bindir}" +# Those tests fail after when bin-sbin merge: +# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup +skip_test tests/test-eval-file.sh +skip_test tests/test-floppy.sh +skip_test tests/test-floppy-size.sh +skip_test tests/test-iso.sh +skip_test tests/test-linuxdisk.sh +skip_test tests/test-linuxdisk-copy-out.sh +skip_test tests/test-nbd-qcow2.sh +skip_test tests/test-ondemand.sh +skip_test tests/test-partitioning2.sh +skip_test tests/test-partitioning3.sh +skip_test tests/test-partitioning5.sh +skip_test tests/test-shebang-cc.sh +skip_test tests/test-cow.sh +skip_test tests/test-cow-block-size.sh +skip_test tests/test-cow-extents2.sh +skip_test tests/test-spinning-mkfs.sh +skip_test tests/test-tar.sh + +skip_test tests/test-bzip2 +skip_test tests/test-curl +skip_test tests/test-data +skip_test tests/test-ext2 +skip_test tests/test-gzip +skip_test tests/test-gzip-curl +skip_test tests/test-lua +skip_test tests/test-lzip +skip_test tests/test-lzip-curl +skip_test tests/test-memory +skip_test tests/test-memory-allocator-malloc +skip_test tests/test-memory-allocator-zstd +skip_test tests/test-nbd +skip_test tests/test-ocaml +skip_test tests/test-offset +skip_test tests/test-old-plugins-x86_64-Linux-v1.0.0-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.12.8-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.18.2-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.2.8-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.38.4-fs.sh +skip_test tests/test-old-plugins-x86_64-Linux-v1.8.4-fs.sh +skip_test tests/test-perl +skip_test tests/test-shell +skip_test tests/test-tar-gzip-curl +skip_test tests/test-tar-lzip-curl +skip_test tests/test-tar-xz-curl +skip_test tests/test-tcl +skip_test tests/test-tmpdisk +skip_test tests/test-vddk +skip_test tests/test-xz +skip_test tests/test-xz-curl +%endif + # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 %make_build check || { cat tests/test-suite.log - -# Too many tests fail after when bin-sbin merge: -# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup -# Ignore the result for now. -%if "%{_sbindir}" != "%{_bindir}" exit 1 -%endif } popd %endif From f87775ac79b370f66ba13f646160716d8601e0fd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Feb 2025 12:58:17 +0000 Subject: [PATCH 625/683] Revert "Skip more failing tests" This reverts commit 8aaaa446c64b5cd9f0c283dd224a01f0d942422b. --- nbdkit.spec | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f4524a9..ec2f546 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1044,38 +1044,6 @@ skip_test tests/test-cow-block-size.sh skip_test tests/test-cow-extents2.sh skip_test tests/test-spinning-mkfs.sh skip_test tests/test-tar.sh - -skip_test tests/test-bzip2 -skip_test tests/test-curl -skip_test tests/test-data -skip_test tests/test-ext2 -skip_test tests/test-gzip -skip_test tests/test-gzip-curl -skip_test tests/test-lua -skip_test tests/test-lzip -skip_test tests/test-lzip-curl -skip_test tests/test-memory -skip_test tests/test-memory-allocator-malloc -skip_test tests/test-memory-allocator-zstd -skip_test tests/test-nbd -skip_test tests/test-ocaml -skip_test tests/test-offset -skip_test tests/test-old-plugins-x86_64-Linux-v1.0.0-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.12.8-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.18.2-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.2.8-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.38.4-fs.sh -skip_test tests/test-old-plugins-x86_64-Linux-v1.8.4-fs.sh -skip_test tests/test-perl -skip_test tests/test-shell -skip_test tests/test-tar-gzip-curl -skip_test tests/test-tar-lzip-curl -skip_test tests/test-tar-xz-curl -skip_test tests/test-tcl -skip_test tests/test-tmpdisk -skip_test tests/test-vddk -skip_test tests/test-xz -skip_test tests/test-xz-curl %endif # Make sure we can see the debug messages (RHBZ#1230160). From 6798a199244462dbd22031b8d2e9134feec60879 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Feb 2025 12:58:22 +0000 Subject: [PATCH 626/683] Revert "Skip failing tests" This reverts commit 6c21a9ca60f7be168773219ae29a5097f90b38dc. --- nbdkit.spec | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ec2f546..50af107 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1024,28 +1024,6 @@ skip_test tests/test-memory-allocator-malloc-mlock.sh %endif %endif -%if "%{_sbindir}" == "%{_bindir}" -# Those tests fail after when bin-sbin merge: -# supermin: ext2fs_namei: parent directory not found: /usr/bin: File not found by ext2_lookup -skip_test tests/test-eval-file.sh -skip_test tests/test-floppy.sh -skip_test tests/test-floppy-size.sh -skip_test tests/test-iso.sh -skip_test tests/test-linuxdisk.sh -skip_test tests/test-linuxdisk-copy-out.sh -skip_test tests/test-nbd-qcow2.sh -skip_test tests/test-ondemand.sh -skip_test tests/test-partitioning2.sh -skip_test tests/test-partitioning3.sh -skip_test tests/test-partitioning5.sh -skip_test tests/test-shebang-cc.sh -skip_test tests/test-cow.sh -skip_test tests/test-cow-block-size.sh -skip_test tests/test-cow-extents2.sh -skip_test tests/test-spinning-mkfs.sh -skip_test tests/test-tar.sh -%endif - # Make sure we can see the debug messages (RHBZ#1230160). export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_TRACE=1 From e06ebe7f5fafdd938acfdd5628b8014a52808c21 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Feb 2025 13:32:58 +0000 Subject: [PATCH 627/683] Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests Reenable tests --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 50af107..91ce17d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.42.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1517,6 +1517,9 @@ fi %changelog +* Mon Feb 24 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.0-2 +- Reenable tests + * Tue Feb 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.0-1 - New upstream stable branch version 1.42.0 From ecbaa2cf56012b64c5c556b655e8878298a004d1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 24 Feb 2025 21:38:04 +0000 Subject: [PATCH 628/683] Remove BR openssl-devel-engine Bug (in Boost) that required this seems to have been fixed now. --- nbdkit.spec | 5 ----- 1 file changed, 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 91ce17d..f77a22a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -141,11 +141,6 @@ BuildRequires: ocaml-ocamldoc BuildRequires: pkgconfig(tcl) BuildRequires: pkgconfig(lua) %endif -# Only needed until the following bug gets fixed in boost: -# https://bugzilla.redhat.com/show_bug.cgi?id=2297642 -%if 0%{?fedora} >= 41 -BuildRequires: openssl-devel-engine -%endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif From 8c66737140321032cc5ccda3e5b494b52515e23f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org> Date: Fri, 28 Feb 2025 11:46:23 +0100 Subject: [PATCH 629/683] Change Requires: libxcrypt-compat to be archful MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Esser <besser82@fedoraproject.org> --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index f77a22a..6d83306 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.42.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -549,7 +549,7 @@ This package is a BitTorrent plugin for %{name}. Summary: VMware VDDK plugin for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} # https://bugzilla.redhat.com/show_bug.cgi?id=1931818 -Requires: libxcrypt-compat +Requires: libxcrypt-compat%{?_isa} %description vddk-plugin This package is a plugin for %{name} which connects to @@ -1512,6 +1512,9 @@ fi %changelog +* Fri Feb 28 2025 Björn Esser <besser82@fedoraproject.org> - 1.42.0-3 +- Change Requires: libxcrypt-compat to be archful + * Mon Feb 24 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.0-2 - Reenable tests From 52b7749446f5e38c122c64119bbfb9caec9bb716 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 3 Mar 2025 17:29:43 +0000 Subject: [PATCH 630/683] New upstream stable branch version 1.42.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 6d83306..d34e528 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.42-stable Name: nbdkit -Version: 1.42.0 -Release: 3%{?dist} +Version: 1.42.1 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1512,6 +1512,9 @@ fi %changelog +* Mon Mar 03 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.1-1 +- New upstream stable branch version 1.42.1 + * Fri Feb 28 2025 Björn Esser <besser82@fedoraproject.org> - 1.42.0-3 - Change Requires: libxcrypt-compat to be archful diff --git a/sources b/sources index 77b7677..84f3c10 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.42.0.tar.gz) = c8360fc2d9e6806ab241dcd61da82f52a881dd394d2e6c8c5372d4920f0751fe20dfe9bf45ff35c34cd1e12fd35d2b7dcf17374387805ff6cdec599c543c6bdc -SHA512 (nbdkit-1.42.0.tar.gz.sig) = df2e05eb46c78c2ecdc16b6b1ba37cbcbf001cfd5f7c3b9206da7100e4499ddb7f35ed75786d109767f2e9bf4a2baf02994ce5684910fd9cfc8bfccc9dd6dce7 +SHA512 (nbdkit-1.42.1.tar.gz) = ff6b171c6e73eb9bec70ef0f565dc16add72dfbef29db147fa639fd0b443a9fe0f72d5f832b1eb8f397d62d66660fb825e29b0314ec9d6670aa1a7aa9c1dbc3d +SHA512 (nbdkit-1.42.1.tar.gz.sig) = 20e1059cdb0d53aeac066e81ee92c49c58cec65dce928f3e11c0213c4e7a9700fa73f2b990efa974be5afc877d2082f85e40e511001ba5e971faa51c9247ec2b From d49e2868b63d82c24a8dfb22d708d7b0544bae57 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 13 Mar 2025 21:38:58 +0000 Subject: [PATCH 631/683] New upstream development branch version 1.43.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d34e528..28667fc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.42-stable +%global source_directory 1.43-development Name: nbdkit -Version: 1.42.1 +Version: 1.43.1 Release: 1%{?dist} Summary: NBD server @@ -1512,6 +1512,9 @@ fi %changelog +* Thu Mar 13 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.1-1 +- New upstream development branch version 1.43.1 + * Mon Mar 03 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.1-1 - New upstream stable branch version 1.42.1 diff --git a/sources b/sources index 84f3c10..e40fd9a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.42.1.tar.gz) = ff6b171c6e73eb9bec70ef0f565dc16add72dfbef29db147fa639fd0b443a9fe0f72d5f832b1eb8f397d62d66660fb825e29b0314ec9d6670aa1a7aa9c1dbc3d -SHA512 (nbdkit-1.42.1.tar.gz.sig) = 20e1059cdb0d53aeac066e81ee92c49c58cec65dce928f3e11c0213c4e7a9700fa73f2b990efa974be5afc877d2082f85e40e511001ba5e971faa51c9247ec2b +SHA512 (nbdkit-1.43.1.tar.gz) = cd0eb99dabac7891f2c83559e0844e4b4b46170afacb5a9b306c4756931ad796d24f1cca60ec22ecb3d523e7ec5ff6be891dff341c5b13bd2671d6c6817b5add +SHA512 (nbdkit-1.43.1.tar.gz.sig) = 40802d97bd7adc7b48dae503f24403b42de73180fb54c8e3dbdc3e4d3033139070c0b872f9db1e7c63ec2f0f16e24bcc0a53e93107b15cbb2322550599c36a02 From 436da5bf2be076009b535fa43a92e1428195e9ec Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 15 Mar 2025 12:58:00 +0000 Subject: [PATCH 632/683] Add nbdkit-tracing(3) to the devel subpackage --- nbdkit.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/nbdkit.spec b/nbdkit.spec index 28667fc..836e0e9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1468,6 +1468,7 @@ fi %{_mandir}/man3/nbdkit-plugin.3* %{_mandir}/man3/nbdkit_*.3* %{_mandir}/man1/nbdkit-release-notes-1.*.1* +%{_mandir}/man3/nbdkit-tracing.3* %{_libdir}/pkgconfig/nbdkit.pc From c310fd3292f3ec3860408b8a0fc0460f595d08c3 Mon Sep 17 00:00:00 2001 From: Tim Landscheidt <tim@tim-landscheidt.de> Date: Wed, 26 Mar 2025 23:08:34 +0000 Subject: [PATCH 633/683] Fix description for nbdkit-selinux --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 836e0e9..60cbb9a 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.43.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -742,7 +742,7 @@ BuildRequires: selinux-policy-devel %{?selinux_requires} %description selinux -%{nbdkit} SELinux policy module. +%{name} SELinux policy module. %endif @@ -1513,6 +1513,9 @@ fi %changelog +* Wed Mar 26 2025 Tim Landscheidt <tim@tim-landscheidt.de> - 1.43.1-2 +- Fix description for nbdkit-selinux + * Thu Mar 13 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.1-1 - New upstream development branch version 1.43.1 From 8015908b0b80eba8394b0a8f4d94231580b86f22 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 27 Mar 2025 12:53:42 +0000 Subject: [PATCH 634/683] New upstream development branch version 1.43.2 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 60cbb9a..3e7c377 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.1 -Release: 2%{?dist} +Version: 1.43.2 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1513,6 +1513,9 @@ fi %changelog +* Thu Mar 27 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.2-1 +- New upstream development branch version 1.43.2 + * Wed Mar 26 2025 Tim Landscheidt <tim@tim-landscheidt.de> - 1.43.1-2 - Fix description for nbdkit-selinux diff --git a/sources b/sources index e40fd9a..53d005b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.1.tar.gz) = cd0eb99dabac7891f2c83559e0844e4b4b46170afacb5a9b306c4756931ad796d24f1cca60ec22ecb3d523e7ec5ff6be891dff341c5b13bd2671d6c6817b5add -SHA512 (nbdkit-1.43.1.tar.gz.sig) = 40802d97bd7adc7b48dae503f24403b42de73180fb54c8e3dbdc3e4d3033139070c0b872f9db1e7c63ec2f0f16e24bcc0a53e93107b15cbb2322550599c36a02 +SHA512 (nbdkit-1.43.2.tar.gz) = a86f2107975f5ef9616ed1b25e40bb8271e7dfaf99612cf2e5855037dbb97f3dd4bd8405c1147321ece02ee41d845a445b8c719133aed1af2c70eb95fbcae0e2 +SHA512 (nbdkit-1.43.2.tar.gz.sig) = 71f1636866bc17bbe9dae4199e02cf3d5353de750924c23c3c22f6b49bd3f7fac5f09bf1d7ea0310d40f02a19ec2bd434e35f076f8d5fd512124df00d4393881 From 4524ffc41b5974c07c6f6bbb7bade78d5a74c47d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 31 Mar 2025 10:36:10 +0100 Subject: [PATCH 635/683] New upstream development branch version 1.43.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3e7c377..c46561f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.2 +Version: 1.43.3 Release: 1%{?dist} Summary: NBD server @@ -1513,6 +1513,9 @@ fi %changelog +* Mon Mar 31 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.3-1 +- New upstream development branch version 1.43.3 + * Thu Mar 27 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.2-1 - New upstream development branch version 1.43.2 diff --git a/sources b/sources index 53d005b..b06229b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.2.tar.gz) = a86f2107975f5ef9616ed1b25e40bb8271e7dfaf99612cf2e5855037dbb97f3dd4bd8405c1147321ece02ee41d845a445b8c719133aed1af2c70eb95fbcae0e2 -SHA512 (nbdkit-1.43.2.tar.gz.sig) = 71f1636866bc17bbe9dae4199e02cf3d5353de750924c23c3c22f6b49bd3f7fac5f09bf1d7ea0310d40f02a19ec2bd434e35f076f8d5fd512124df00d4393881 +SHA512 (nbdkit-1.43.3.tar.gz) = a6da026a6c4b5acc906be29a0375e5b163ecbe08edc2fb1a4ccca858dc2f77ddf18b950ce8bc6dd01aead824ba8e66b4e3bd59ad0adbd3a194f6c8ef1433b3a0 +SHA512 (nbdkit-1.43.3.tar.gz.sig) = 12548d52480f06c6bd0e560fefcdf3f5736ddad6cd09c62e6d560e116b3fdd4d30b850facbdd549c03e4248fe412dbe3115970f4c06298294e17afe54198d3e0 From 8c3449fd387102510bb89b794b48d3a1a2a0d374 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 2 Apr 2025 15:52:22 +0100 Subject: [PATCH 636/683] New upstream development branch version 1.43.4 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c46561f..297864e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.3 +Version: 1.43.4 Release: 1%{?dist} Summary: NBD server @@ -1513,6 +1513,9 @@ fi %changelog +* Wed Apr 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.4-1 +- New upstream development branch version 1.43.4 + * Mon Mar 31 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.3-1 - New upstream development branch version 1.43.3 diff --git a/sources b/sources index b06229b..21afe83 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.3.tar.gz) = a6da026a6c4b5acc906be29a0375e5b163ecbe08edc2fb1a4ccca858dc2f77ddf18b950ce8bc6dd01aead824ba8e66b4e3bd59ad0adbd3a194f6c8ef1433b3a0 -SHA512 (nbdkit-1.43.3.tar.gz.sig) = 12548d52480f06c6bd0e560fefcdf3f5736ddad6cd09c62e6d560e116b3fdd4d30b850facbdd549c03e4248fe412dbe3115970f4c06298294e17afe54198d3e0 +SHA512 (nbdkit-1.43.4.tar.gz) = b534c686e3aad5d214f93885feb03ccff2579b0106d861ccad25724a8694e94a9f70003b6a85233615c48382501c56c2416790f1500a194c47bf2df5849425ad +SHA512 (nbdkit-1.43.4.tar.gz.sig) = ac564bfe7dd8d810ac8767527a24214773800095258fe14e0a4d3f80586c248f135e9d91427e6c17dda876c1deb2542e29cd945984fab2459fd19ca3320b71ea From 5832c60f31e6bce60765bb2c8fc5b632fa53415a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 10 Apr 2025 21:36:54 +0100 Subject: [PATCH 637/683] New upstream development branch version 1.43.5 New subpackage nbdkit-nfs-plugin --- nbdkit.spec | 29 ++++++++++++++++++++++++++++- sources | 4 ++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 297864e..d2320c1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.4 +Version: 1.43.5 Release: 1%{?dist} Summary: NBD server @@ -111,6 +111,10 @@ BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libnbd) +%if !0%{?rhel} +# We require libnfs >= 6, but the internal version is >= 16 +BuildRequires: pkgconfig(libnfs) >= 16 +%endif BuildRequires: pkgconfig(libssh) BuildRequires: e2fsprogs BuildRequires: pkgconfig(ext2fs) @@ -430,6 +434,16 @@ This package lets you forward NBD connections from %{name} to another NBD server. +%if !0%{?rhel} +%package nfs-plugin +Summary: NFS (Network File Server) plugin for %{name} +Requires: %{name}-server%{?_isa} = %{version}-%{release} + +%description nfs-plugin +This package contains Network File Server (NFS) support for %{name}. +%endif + + %if !0%{?rhel} && 0%{?have_ocaml} %package ocaml-plugin Summary: OCaml plugin for %{name} @@ -1218,6 +1232,15 @@ fi %{_mandir}/man1/nbdkit-nbd-plugin.1* +%if !0%{?rhel} +%files nfs-plugin +%doc README.md +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-nfs-plugin.so +%{_mandir}/man1/nbdkit-nfs-plugin.1* +%endif + + %if !0%{?rhel} && 0%{?have_ocaml} %files ocaml-plugin %doc README.md @@ -1513,6 +1536,10 @@ fi %changelog +* Thu Apr 10 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.5-1 +- New upstream development branch version 1.43.5 +- New subpackage nbdkit-nfs-plugin + * Wed Apr 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.4-1 - New upstream development branch version 1.43.4 diff --git a/sources b/sources index 21afe83..c6624c8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.4.tar.gz) = b534c686e3aad5d214f93885feb03ccff2579b0106d861ccad25724a8694e94a9f70003b6a85233615c48382501c56c2416790f1500a194c47bf2df5849425ad -SHA512 (nbdkit-1.43.4.tar.gz.sig) = ac564bfe7dd8d810ac8767527a24214773800095258fe14e0a4d3f80586c248f135e9d91427e6c17dda876c1deb2542e29cd945984fab2459fd19ca3320b71ea +SHA512 (nbdkit-1.43.5.tar.gz) = 8c12cb27627403a251230c0a99ad15d9d41f9b6955e8843e378b5ff0e5be5e271ae1280eb998b3aea232549e3bb7fbf5e49c9ff88263ac18baeabc553880eb26 +SHA512 (nbdkit-1.43.5.tar.gz.sig) = 482f9c9055bd7d3c04cb98357114a027454beff3c7a8b118ab3ff6a537ebecba3c66370608768cfa274d79ee3c363219e3228b9506f810e5f0460f7ad549cb53 From f9af6157fd9c84e38ed881f6b6945b54203816c4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 1 May 2025 18:52:48 +0100 Subject: [PATCH 638/683] New upstream development branch version 1.43.6 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d2320c1..1757014 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.5 +Version: 1.43.6 Release: 1%{?dist} Summary: NBD server @@ -1536,6 +1536,9 @@ fi %changelog +* Thu May 01 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.6-1 +- New upstream development branch version 1.43.6 + * Thu Apr 10 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.5-1 - New upstream development branch version 1.43.5 - New subpackage nbdkit-nfs-plugin diff --git a/sources b/sources index c6624c8..45725a8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.5.tar.gz) = 8c12cb27627403a251230c0a99ad15d9d41f9b6955e8843e378b5ff0e5be5e271ae1280eb998b3aea232549e3bb7fbf5e49c9ff88263ac18baeabc553880eb26 -SHA512 (nbdkit-1.43.5.tar.gz.sig) = 482f9c9055bd7d3c04cb98357114a027454beff3c7a8b118ab3ff6a537ebecba3c66370608768cfa274d79ee3c363219e3228b9506f810e5f0460f7ad549cb53 +SHA512 (nbdkit-1.43.6.tar.gz) = f0e01ce8330974d5b21d2fe76ad998214afa08764115ab8226319306debfaed7c12a15a9dfaf9760870c299530e4ba9a479d3e95ffa663767847087bc996ea1a +SHA512 (nbdkit-1.43.6.tar.gz.sig) = 7a011b0ea5a18f553290d7ea60c7be34be14b642267a9f953edd7632fa55b228d327916945d7d42130efdb8537326bdcf208a5ff252ed44930cf9ce58ef29f69 From ef2910918ac8fdad61597bf7498b79a919c3c8c9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 9 May 2025 15:42:33 +0100 Subject: [PATCH 639/683] New upstream development branch version 1.43.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1757014..58c0261 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.6 +Version: 1.43.7 Release: 1%{?dist} Summary: NBD server @@ -1536,6 +1536,9 @@ fi %changelog +* Fri May 09 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.7-1 +- New upstream development branch version 1.43.7 + * Thu May 01 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.6-1 - New upstream development branch version 1.43.6 diff --git a/sources b/sources index 45725a8..9b4c4b5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.6.tar.gz) = f0e01ce8330974d5b21d2fe76ad998214afa08764115ab8226319306debfaed7c12a15a9dfaf9760870c299530e4ba9a479d3e95ffa663767847087bc996ea1a -SHA512 (nbdkit-1.43.6.tar.gz.sig) = 7a011b0ea5a18f553290d7ea60c7be34be14b642267a9f953edd7632fa55b228d327916945d7d42130efdb8537326bdcf208a5ff252ed44930cf9ce58ef29f69 +SHA512 (nbdkit-1.43.7.tar.gz) = 11a8967c71943cad80584eee2de1b00d18f6c042e6c77794c3eb30f9c1b41b9e4a25d6351ff61f4d797d3c85d4813d6e3aaac1186cc923f929c88407b4c31e23 +SHA512 (nbdkit-1.43.7.tar.gz.sig) = a64fe21d350e3181001b9492538179631e46e50da894c0061872955b26caf2b310ffc062e72ac1ec1de9af68c282eae93b80769812ae42f7c675cacccb33bf18 From 4c9a726723fc93c4a055e3e16ebf51a2e3925cf5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 12 May 2025 22:47:16 +0100 Subject: [PATCH 640/683] New upstream development branch version 1.43.8 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 58c0261..b5736a4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.7 +Version: 1.43.8 Release: 1%{?dist} Summary: NBD server @@ -1536,6 +1536,9 @@ fi %changelog +* Mon May 12 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.8-1 +- New upstream development branch version 1.43.8 + * Fri May 09 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.7-1 - New upstream development branch version 1.43.7 diff --git a/sources b/sources index 9b4c4b5..1376bb5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.7.tar.gz) = 11a8967c71943cad80584eee2de1b00d18f6c042e6c77794c3eb30f9c1b41b9e4a25d6351ff61f4d797d3c85d4813d6e3aaac1186cc923f929c88407b4c31e23 -SHA512 (nbdkit-1.43.7.tar.gz.sig) = a64fe21d350e3181001b9492538179631e46e50da894c0061872955b26caf2b310ffc062e72ac1ec1de9af68c282eae93b80769812ae42f7c675cacccb33bf18 +SHA512 (nbdkit-1.43.8.tar.gz) = 52b1ce1270a888e7654d744e0ddd955bfd188da8fc08cad91a0f3eefc1a10e90bb5bd3f78ab31d9b1e7be7cb4cc5a185f4926f200430d3c7920d3d752a1b28f1 +SHA512 (nbdkit-1.43.8.tar.gz.sig) = ab1eed9cc47a63a5eac180ca9ae2de69663919819c777a308fe4b990962f58554cc2d0d2521f817c7c370a988a150cfad485fe881b26271d597d6f5f24c3e401 From 633f6330267d0c9228724bc73b9dab7415e6c5b3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 17 May 2025 09:29:24 +0100 Subject: [PATCH 641/683] New upstream development branch version 1.43.9 New nbdkit-openonce-filter --- nbdkit.spec | 10 +++++++++- sources | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index b5736a4..52ba63f 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.8 +Version: 1.43.9 Release: 1%{?dist} Summary: NBD server @@ -636,6 +636,8 @@ nbdkit-nozero-filter Adjust handling of zero requests by plugins. nbdkit-offset-filter Serve an offset and range. +nbdkit-openonce-filter Open the underlying plugin once. + nbdkit-partition-filter Serve a single partition. nbdkit-pause-filter Pause NBD requests. @@ -1358,6 +1360,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-noparallel-filter.so %{_libdir}/%{name}/filters/nbdkit-nozero-filter.so %{_libdir}/%{name}/filters/nbdkit-offset-filter.so +%{_libdir}/%{name}/filters/nbdkit-openonce-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-pause-filter.so %{_libdir}/%{name}/filters/nbdkit-protect-filter.so @@ -1403,6 +1406,7 @@ fi %{_mandir}/man1/nbdkit-noparallel-filter.1* %{_mandir}/man1/nbdkit-nozero-filter.1* %{_mandir}/man1/nbdkit-offset-filter.1* +%{_mandir}/man1/nbdkit-openonce-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-pause-filter.1* %{_mandir}/man1/nbdkit-protect-filter.1* @@ -1536,6 +1540,10 @@ fi %changelog +* Sat May 17 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.9-1 +- New upstream development branch version 1.43.9 +- New nbdkit-openonce-filter + * Mon May 12 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.8-1 - New upstream development branch version 1.43.8 diff --git a/sources b/sources index 1376bb5..c471e23 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.8.tar.gz) = 52b1ce1270a888e7654d744e0ddd955bfd188da8fc08cad91a0f3eefc1a10e90bb5bd3f78ab31d9b1e7be7cb4cc5a185f4926f200430d3c7920d3d752a1b28f1 -SHA512 (nbdkit-1.43.8.tar.gz.sig) = ab1eed9cc47a63a5eac180ca9ae2de69663919819c777a308fe4b990962f58554cc2d0d2521f817c7c370a988a150cfad485fe881b26271d597d6f5f24c3e401 +SHA512 (nbdkit-1.43.9.tar.gz) = 203e5b45ab422c132ed571f2baec4413e72d77625cab30a1b9b1cdfe0cf647e44e3b698c4bbff63c7123b26b5666a65fd5e11bb7445b803c67b1d0eca3f77edd +SHA512 (nbdkit-1.43.9.tar.gz.sig) = 005692d225b9b0bb19a3171b56035a0ff56544b532dbc498fda0ba35474eb392f144000c1826dee7bb4a4b34cc70171a6669f15ecad2feb89edae553b77a051e From e83a2d7ea41d78e3ce2f5296b58f4c919419012b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 2 Jun 2025 15:51:14 +0100 Subject: [PATCH 642/683] New upstream development branch version 1.43.10 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 52ba63f..abfb460 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.9 +Version: 1.43.10 Release: 1%{?dist} Summary: NBD server @@ -1540,6 +1540,9 @@ fi %changelog +* Mon Jun 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.10-1 +- New upstream development branch version 1.43.10 + * Sat May 17 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.9-1 - New upstream development branch version 1.43.9 - New nbdkit-openonce-filter diff --git a/sources b/sources index c471e23..fdbdcd8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.9.tar.gz) = 203e5b45ab422c132ed571f2baec4413e72d77625cab30a1b9b1cdfe0cf647e44e3b698c4bbff63c7123b26b5666a65fd5e11bb7445b803c67b1d0eca3f77edd -SHA512 (nbdkit-1.43.9.tar.gz.sig) = 005692d225b9b0bb19a3171b56035a0ff56544b532dbc498fda0ba35474eb392f144000c1826dee7bb4a4b34cc70171a6669f15ecad2feb89edae553b77a051e +SHA512 (nbdkit-1.43.10.tar.gz) = 00c47909a5e139be1e2a521b41bcbd1e417baa2ac1ab15a4a921fc8bc616d26a4fb6fb1e2aa86e5b0297a680bd80dc47598677f14a1809bea578951b9ca4c4ba +SHA512 (nbdkit-1.43.10.tar.gz.sig) = 4a48cd2db6b10c929ea20a73812e1822dee3b7717278d557738ea971cc7a5f22235281bbb30237fa454c94ffd536b30f9db398259932b62c462ced2d83a46949 From 21c4158bda0e992efafd68fcec5e9d049fd6a826 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 5 Jun 2025 13:12:12 +0100 Subject: [PATCH 643/683] New upstream development branch version 1.43.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index abfb460..06aa440 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.10 +Version: 1.43.11 Release: 1%{?dist} Summary: NBD server @@ -1540,6 +1540,9 @@ fi %changelog +* Thu Jun 05 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.11-1 +- New upstream development branch version 1.43.11 + * Mon Jun 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.10-1 - New upstream development branch version 1.43.10 diff --git a/sources b/sources index fdbdcd8..966f155 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.10.tar.gz) = 00c47909a5e139be1e2a521b41bcbd1e417baa2ac1ab15a4a921fc8bc616d26a4fb6fb1e2aa86e5b0297a680bd80dc47598677f14a1809bea578951b9ca4c4ba -SHA512 (nbdkit-1.43.10.tar.gz.sig) = 4a48cd2db6b10c929ea20a73812e1822dee3b7717278d557738ea971cc7a5f22235281bbb30237fa454c94ffd536b30f9db398259932b62c462ced2d83a46949 +SHA512 (nbdkit-1.43.11.tar.gz) = 6cd41d9dde399f749577b111a0bbbb066c8e546e1d36427cff1347fb6f0153d5e1da1f06e41d4bb0f9b325a74142f45a2d6f21d1a32d08ecc74df150c2d0f5f9 +SHA512 (nbdkit-1.43.11.tar.gz.sig) = 51b1acbd160986cd9d783232087f5fb83486558ea744a02808358099a13383c68cb672dead91917eddf189bf5a86dd0bd6ab9f112cc3b40c23a474930f12631b From c26783887c576de543cc80da505a174b442bc788 Mon Sep 17 00:00:00 2001 From: Python Maint <python-maint@redhat.com> Date: Fri, 6 Jun 2025 16:44:34 +0200 Subject: [PATCH 644/683] Rebuilt for Python 3.14 --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 06aa440..d56e645 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.43.11 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1540,6 +1540,9 @@ fi %changelog +* Fri Jun 06 2025 Python Maint <python-maint@redhat.com> - 1.43.11-2 +- Rebuilt for Python 3.14 + * Thu Jun 05 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.11-1 - New upstream development branch version 1.43.11 From f1480cff155b1a4c8cebd1dbe665625163069ebd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 14 Jun 2025 18:09:40 +0100 Subject: [PATCH 645/683] New upstream development branch version 1.43.12 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index d56e645..fe243de 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.11 -Release: 2%{?dist} +Version: 1.43.12 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1540,6 +1540,9 @@ fi %changelog +* Sat Jun 14 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.12-1 +- New upstream development branch version 1.43.12 + * Fri Jun 06 2025 Python Maint <python-maint@redhat.com> - 1.43.11-2 - Rebuilt for Python 3.14 diff --git a/sources b/sources index 966f155..320c8ce 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.11.tar.gz) = 6cd41d9dde399f749577b111a0bbbb066c8e546e1d36427cff1347fb6f0153d5e1da1f06e41d4bb0f9b325a74142f45a2d6f21d1a32d08ecc74df150c2d0f5f9 -SHA512 (nbdkit-1.43.11.tar.gz.sig) = 51b1acbd160986cd9d783232087f5fb83486558ea744a02808358099a13383c68cb672dead91917eddf189bf5a86dd0bd6ab9f112cc3b40c23a474930f12631b +SHA512 (nbdkit-1.43.12.tar.gz) = ac44f05fc203c5755003543cc237a8f1e51fe3d28c1f12d750bba9e04e12f16a5c551dde2e01900bf800ec6fcbc3e0bb9614e92774d0a3f38581527b0e931a26 +SHA512 (nbdkit-1.43.12.tar.gz.sig) = c22748156ce95973455ca0611f219e5f802b237995cb680e56a08908ae7b977404cd9c334d4e69e90e3637968a9bf74b647701ad6e46a5b42eedd33de03db37c From 4aa3cbc51da8245a4c51490368a6fa634c8df56b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 23 Jun 2025 13:50:52 +0100 Subject: [PATCH 646/683] New upstream development branch version 1.43.13 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index fe243de..e95fd29 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.43-development Name: nbdkit -Version: 1.43.12 +Version: 1.43.13 Release: 1%{?dist} Summary: NBD server @@ -1540,6 +1540,9 @@ fi %changelog +* Mon Jun 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.13-1 +- New upstream development branch version 1.43.13 + * Sat Jun 14 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.12-1 - New upstream development branch version 1.43.12 diff --git a/sources b/sources index 320c8ce..b5c9224 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.12.tar.gz) = ac44f05fc203c5755003543cc237a8f1e51fe3d28c1f12d750bba9e04e12f16a5c551dde2e01900bf800ec6fcbc3e0bb9614e92774d0a3f38581527b0e931a26 -SHA512 (nbdkit-1.43.12.tar.gz.sig) = c22748156ce95973455ca0611f219e5f802b237995cb680e56a08908ae7b977404cd9c334d4e69e90e3637968a9bf74b647701ad6e46a5b42eedd33de03db37c +SHA512 (nbdkit-1.43.13.tar.gz) = 230cfbdbef256d52c5578d6c09caac2ec9fbce356dca0c3bf4314df22bc8c0c0e9e19447d487e27557f0acb38cec22d4099ffb56ba082956e5585d0e8862bd9e +SHA512 (nbdkit-1.43.13.tar.gz.sig) = 422841842c8d67bf5e2bd53b155bc51479bd6683f304576c2ce5f226bb278b7ea014f4605738ec6afe59ab6fb16cb653be39a717c371856b93e8b1d45b785e58 From ef67eb1f91ce47ba8a4d8ba66eea03c52ddce90e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 1 Jul 2025 08:32:27 +0100 Subject: [PATCH 647/683] New upstream stable branch version 1.44.0 --- nbdkit.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index e95fd29..bdb421b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.43-development +%global source_directory 1.44-stable Name: nbdkit -Version: 1.43.13 +Version: 1.44.0 Release: 1%{?dist} Summary: NBD server @@ -1540,6 +1540,9 @@ fi %changelog +* Tue Jul 01 2025 Richard W.M. Jones <rjones@redhat.com> - 1.44.0-1 +- New upstream stable branch version 1.44.0 + * Mon Jun 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.43.13-1 - New upstream development branch version 1.43.13 From d3ff9bddb93cc6f3c03fb8b37650bec520f23ade Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Jul 2025 08:11:55 +0100 Subject: [PATCH 648/683] Forgot to update sources for previous commit --- sources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index b5c9224..4b6e8b9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.43.13.tar.gz) = 230cfbdbef256d52c5578d6c09caac2ec9fbce356dca0c3bf4314df22bc8c0c0e9e19447d487e27557f0acb38cec22d4099ffb56ba082956e5585d0e8862bd9e -SHA512 (nbdkit-1.43.13.tar.gz.sig) = 422841842c8d67bf5e2bd53b155bc51479bd6683f304576c2ce5f226bb278b7ea014f4605738ec6afe59ab6fb16cb653be39a717c371856b93e8b1d45b785e58 +SHA512 (nbdkit-1.44.0.tar.gz) = 87d91a8203fadd96829888d0fe60e0d8c06de2eb2fcc715e710ebf6709befa176bb96d316e4ad8412ea6d8da46f61807d75f6e22eaa8ce986e2341056e4220f5 +SHA512 (nbdkit-1.44.0.tar.gz.sig) = c21fc3c8c51fe89eaec9f979d2a6e61c86568302bad744669e116c26450d7d0e8c82477d7e7bb7d82980c1b887fcf40b6609eae5896396bd70a14a2885ebe7bd From bc3a79b4ecc289fedb41fcd6e0e580f308fd1630 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 5 Jul 2025 08:33:23 +0100 Subject: [PATCH 649/683] New upstream stable branch version 1.44.1 Contains data integrity fix: "server: Fix .zero fallback path" --- nbdkit.spec | 6 +++++- sources | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bdb421b..d0a87b9 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.44-stable Name: nbdkit -Version: 1.44.0 +Version: 1.44.1 Release: 1%{?dist} Summary: NBD server @@ -1540,6 +1540,10 @@ fi %changelog +* Sat Jul 05 2025 Richard W.M. Jones <rjones@redhat.com> - 1.44.1-1 +- New upstream stable branch version 1.44.1 +- Contains data integrity fix: "server: Fix .zero fallback path" + * Tue Jul 01 2025 Richard W.M. Jones <rjones@redhat.com> - 1.44.0-1 - New upstream stable branch version 1.44.0 diff --git a/sources b/sources index 4b6e8b9..e6a3393 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.44.0.tar.gz) = 87d91a8203fadd96829888d0fe60e0d8c06de2eb2fcc715e710ebf6709befa176bb96d316e4ad8412ea6d8da46f61807d75f6e22eaa8ce986e2341056e4220f5 -SHA512 (nbdkit-1.44.0.tar.gz.sig) = c21fc3c8c51fe89eaec9f979d2a6e61c86568302bad744669e116c26450d7d0e8c82477d7e7bb7d82980c1b887fcf40b6609eae5896396bd70a14a2885ebe7bd +SHA512 (nbdkit-1.44.1.tar.gz) = 150a31ca7f64b76a4e4cc90d077e88531458f2766c0bb1f6f1ae23176d5c55a2e4dab61be58bd92b166e67fe70b67c9458a04d29978cbb1b89a6fa8ebca4617d +SHA512 (nbdkit-1.44.1.tar.gz.sig) = b987c7cfc0cf4585f3db7c33a19a63ac24b5ea5cf10635c497d2780e70f121fcc82dda983a63ef8464b0c8550dd12811499fd171cf7b368ce1a7f0ddd9b60ae7 From 562d971b43a8e956b7d20481e9590132f2d942dd Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Mon, 7 Jul 2025 16:12:45 +0200 Subject: [PATCH 650/683] Perl 5.42 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index d0a87b9..5e7b139 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.44.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1540,6 +1540,9 @@ fi %changelog +* Mon Jul 07 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.44.1-2 +- Perl 5.42 rebuild + * Sat Jul 05 2025 Richard W.M. Jones <rjones@redhat.com> - 1.44.1-1 - New upstream stable branch version 1.44.1 - Contains data integrity fix: "server: Fix .zero fallback path" From 774f274dd2e6e73865551df20a177a393869fde2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 8 Jul 2025 21:25:19 +0100 Subject: [PATCH 651/683] New upstream development branch 1.45.1 New nbdkit-count-filter. --- nbdkit.spec | 14 +++++++++++--- sources | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 5e7b139..2690a65 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,11 +51,11 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.44-stable +%global source_directory 1.45-development Name: nbdkit -Version: 1.44.1 -Release: 2%{?dist} +Version: 1.45.1 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -592,6 +592,8 @@ nbdkit-cacheextents-filter Cache extents. nbdkit-checkwrite-filter Check writes match contents of plugin. +nbdkit-count-filter Count bytes read, written, zeroed and trimmed. + nbdkit-cow-filter Copy-on-write overlay for read-only plugins. nbdkit-ddrescue-filter Filter for serving from ddrescue dump. @@ -1338,6 +1340,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-cache-filter.so %{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so %{_libdir}/%{name}/filters/nbdkit-checkwrite-filter.so +%{_libdir}/%{name}/filters/nbdkit-count-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so %{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so @@ -1384,6 +1387,7 @@ fi %{_mandir}/man1/nbdkit-cache-filter.1* %{_mandir}/man1/nbdkit-cacheextents-filter.1* %{_mandir}/man1/nbdkit-checkwrite-filter.1* +%{_mandir}/man1/nbdkit-count-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* %{_mandir}/man1/nbdkit-ddrescue-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1* @@ -1540,6 +1544,10 @@ fi %changelog +* Tue Jul 08 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.1-1 +- New upstream development branch 1.45.1 +- New nbdkit-count-filter. + * Mon Jul 07 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.44.1-2 - Perl 5.42 rebuild diff --git a/sources b/sources index e6a3393..b08e54c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.44.1.tar.gz) = 150a31ca7f64b76a4e4cc90d077e88531458f2766c0bb1f6f1ae23176d5c55a2e4dab61be58bd92b166e67fe70b67c9458a04d29978cbb1b89a6fa8ebca4617d -SHA512 (nbdkit-1.44.1.tar.gz.sig) = b987c7cfc0cf4585f3db7c33a19a63ac24b5ea5cf10635c497d2780e70f121fcc82dda983a63ef8464b0c8550dd12811499fd171cf7b368ce1a7f0ddd9b60ae7 +SHA512 (nbdkit-1.45.1.tar.gz) = c17a3c68445c68c3464966c03b19cc9f9bc29f401afa7840d87cfb9790debc34338a362f478ab8d6d75182e75b9f8a999ed6677dabe7a55f956459b4e63a405e +SHA512 (nbdkit-1.45.1.tar.gz.sig) = 8be05f711fe244fdde2645abc144cf2a5762b2f0c0a8aaf377fec6c73a9cb74ea232f35ad32c2a330e8d5d3acf86ff0d95baad729629916835cbfadb93e904f6 From 6eee603e94288f49954d69ed132aed118d7a50c8 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Wed, 9 Jul 2025 07:54:30 +0200 Subject: [PATCH 652/683] Perl 5.42 re-rebuild updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 2690a65..bce86cc 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.45.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1544,6 +1544,9 @@ fi %changelog +* Wed Jul 09 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.45.1-2 +- Perl 5.42 re-rebuild updated packages + * Tue Jul 08 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.1-1 - New upstream development branch 1.45.1 - New nbdkit-count-filter. From 24fab6428438dac6f7fc9aab47962a001d6d5dea Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 9 Jul 2025 09:34:40 +0100 Subject: [PATCH 653/683] Remove cacheextents filter (deprecated & removed upstream) --- nbdkit.spec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index bce86cc..a6f388b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.45.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD-3-Clause @@ -588,8 +588,6 @@ nbdkit-blocksize-policy-filter Set block size constraints and policy. nbdkit-cache-filter Server-side cache. -nbdkit-cacheextents-filter Cache extents. - nbdkit-checkwrite-filter Check writes match contents of plugin. nbdkit-count-filter Count bytes read, written, zeroed and trimmed. @@ -1338,7 +1336,6 @@ fi %{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so %{_libdir}/%{name}/filters/nbdkit-blocksize-policy-filter.so %{_libdir}/%{name}/filters/nbdkit-cache-filter.so -%{_libdir}/%{name}/filters/nbdkit-cacheextents-filter.so %{_libdir}/%{name}/filters/nbdkit-checkwrite-filter.so %{_libdir}/%{name}/filters/nbdkit-count-filter.so %{_libdir}/%{name}/filters/nbdkit-cow-filter.so @@ -1385,7 +1382,6 @@ fi %{_mandir}/man1/nbdkit-blocksize-filter.1* %{_mandir}/man1/nbdkit-blocksize-policy-filter.1* %{_mandir}/man1/nbdkit-cache-filter.1* -%{_mandir}/man1/nbdkit-cacheextents-filter.1* %{_mandir}/man1/nbdkit-checkwrite-filter.1* %{_mandir}/man1/nbdkit-count-filter.1* %{_mandir}/man1/nbdkit-cow-filter.1* @@ -1544,6 +1540,9 @@ fi %changelog +* Wed Jul 09 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.1-3 +- Remove cacheextents filter (deprecated & removed upstream) + * Wed Jul 09 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.45.1-2 - Perl 5.42 re-rebuild updated packages From 35d61ffde23a1fce3bc9459e995740e29ee8e73e Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova <jplesnik@redhat.com> Date: Wed, 9 Jul 2025 12:09:35 +0200 Subject: [PATCH 654/683] Perl 5.42 re-rebuild updated packages --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index a6f388b..b2bc91d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.45.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1540,6 +1540,9 @@ fi %changelog +* Wed Jul 09 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.45.1-4 +- Perl 5.42 re-rebuild updated packages + * Wed Jul 09 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.1-3 - Remove cacheextents filter (deprecated & removed upstream) From 3407909a049d0a7f18c176c3a149ed753ea0d63b Mon Sep 17 00:00:00 2001 From: Jerry James <loganjerry@gmail.com> Date: Fri, 11 Jul 2025 16:00:47 -0600 Subject: [PATCH 655/683] Rebuild to fix OCaml dependencies --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b2bc91d..0dede62 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.45.1 -Release: 4%{?dist} +Release: 5%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1540,6 +1540,9 @@ fi %changelog +* Fri Jul 11 2025 Jerry James <loganjerry@gmail.com> - 1.45.1-5 +- Rebuild to fix OCaml dependencies + * Wed Jul 09 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.45.1-4 - Perl 5.42 re-rebuild updated packages From 8f1341df5f0dc22d3c76b635b80ed6c3cc527d30 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 23 Jul 2025 16:50:28 +0100 Subject: [PATCH 656/683] New upstream version 1.45.2 New map filter. --- nbdkit.spec | 12 ++++++++++-- sources | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0dede62..1448c8c 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.1 -Release: 5%{?dist} +Version: 1.45.2 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -622,6 +622,8 @@ nbdkit-log-filter Log all transactions to a file. nbdkit-luks-filter Read and write LUKS-encrypted disks. +nbdkit-map-filter Remap disk blocks. + nbdkit-multi-conn-filter Enable, emulate or disable multi-conn. nbdkit-nocache-filter Disable cache requests in the underlying plugin. @@ -1353,6 +1355,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so %{_libdir}/%{name}/filters/nbdkit-luks-filter.so +%{_libdir}/%{name}/filters/nbdkit-map-filter.so %{_libdir}/%{name}/filters/nbdkit-multi-conn-filter.so %{_libdir}/%{name}/filters/nbdkit-nocache-filter.so %{_libdir}/%{name}/filters/nbdkit-noextents-filter.so @@ -1399,6 +1402,7 @@ fi %{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* %{_mandir}/man1/nbdkit-luks-filter.1* +%{_mandir}/man1/nbdkit-map-filter.1* %{_mandir}/man1/nbdkit-multi-conn-filter.1* %{_mandir}/man1/nbdkit-nocache-filter.1* %{_mandir}/man1/nbdkit-noextents-filter.1* @@ -1540,6 +1544,10 @@ fi %changelog +* Wed Jul 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-1 +- New upstream version 1.45.2 +- New map filter. + * Fri Jul 11 2025 Jerry James <loganjerry@gmail.com> - 1.45.1-5 - Rebuild to fix OCaml dependencies diff --git a/sources b/sources index b08e54c..7380dfc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.1.tar.gz) = c17a3c68445c68c3464966c03b19cc9f9bc29f401afa7840d87cfb9790debc34338a362f478ab8d6d75182e75b9f8a999ed6677dabe7a55f956459b4e63a405e -SHA512 (nbdkit-1.45.1.tar.gz.sig) = 8be05f711fe244fdde2645abc144cf2a5762b2f0c0a8aaf377fec6c73a9cb74ea232f35ad32c2a330e8d5d3acf86ff0d95baad729629916835cbfadb93e904f6 +SHA512 (nbdkit-1.45.2.tar.gz) = a727acc2c3b0df827bcb91349dd7e46bb4ce62429c1a7afb4619dc0ee3d5c8c76944177ea0cd040def20a2cb70801197a814d33dee55c5b6eea90ba2757b5cb6 +SHA512 (nbdkit-1.45.2.tar.gz.sig) = f15fe13bf15791a34a2c812e0344bc87f847f211961f1c0e8a3ea7a1d01a8a7e02a14db41af015a846eb2148cfa01ce3d93151ed1854c3fb4bcd66e7554dce4e From 74a2dea81c1d52b72b8d868dee8be1d4934c8d3d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 29 Jul 2025 12:10:29 +0100 Subject: [PATCH 657/683] New upstream version 1.45.3 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 1448c8c..aee402e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.2 +Version: 1.45.3 Release: 1%{?dist} Summary: NBD server @@ -1544,6 +1544,9 @@ fi %changelog +* Tue Jul 29 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.3-1 +- New upstream version 1.45.3 + * Wed Jul 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-1 - New upstream version 1.45.2 - New map filter. diff --git a/sources b/sources index 7380dfc..bf4f0e0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.2.tar.gz) = a727acc2c3b0df827bcb91349dd7e46bb4ce62429c1a7afb4619dc0ee3d5c8c76944177ea0cd040def20a2cb70801197a814d33dee55c5b6eea90ba2757b5cb6 -SHA512 (nbdkit-1.45.2.tar.gz.sig) = f15fe13bf15791a34a2c812e0344bc87f847f211961f1c0e8a3ea7a1d01a8a7e02a14db41af015a846eb2148cfa01ce3d93151ed1854c3fb4bcd66e7554dce4e +SHA512 (nbdkit-1.45.3.tar.gz) = c6d9835473b4453645f7a9dc43c8f5ffaa13030ff17f7b8234dfaf2963a01f465a07222941ec441364aca700dc146b04d0bcb374b7e1f748ac7f091ed7782727 +SHA512 (nbdkit-1.45.3.tar.gz.sig) = 5537f80243bec2f6ee20fd82abf251b66089f3daaa8856715ee60ef5de023337f1f6bddf9626c987443425db69d7b5e7e51a390e30b44c5bf9028f5e56a23543 From a94e98cf511402368de0675b1de8d69d63e23395 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 29 Jul 2025 12:58:24 +0100 Subject: [PATCH 658/683] Add upstream commit to fix test --- ...-test-at-file.sh-Fix-srcdir-builddir.patch | 53 +++++++++++++++++++ nbdkit.spec | 4 ++ 2 files changed, 57 insertions(+) create mode 100644 0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch diff --git a/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch b/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch new file mode 100644 index 0000000..b1dcdb6 --- /dev/null +++ b/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch @@ -0,0 +1,53 @@ +From 8aef52989c6e4cc5f3e40189d426c1f2ddf13862 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Tue, 29 Jul 2025 12:56:44 +0100 +Subject: [PATCH] tests/test-at-file.sh: Fix srcdir != builddir + +Fixes: commit 05c90e6930d92106f4064ac6c2c56627af8e4c50 +--- + tests/test-at-file.sh | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/test-at-file.sh b/tests/test-at-file.sh +index 7e975aa407..d038f9074e 100755 +--- a/tests/test-at-file.sh ++++ b/tests/test-at-file.sh +@@ -67,7 +67,7 @@ EOF + + # Run each test and check the output is as expected. + +-expected=test-at-file/1.expected ++expected=$srcdir/test-at-file/1.expected + params="@$srcdir/test-at-file/1.input" + + rm -f "$out" +@@ -75,7 +75,7 @@ touch "$out" + nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true + diff -u $expected $out + +-expected=test-at-file/2.expected ++expected=$srcdir/test-at-file/2.expected + params="@$srcdir/test-at-file/2.input" + + rm -f "$out" +@@ -83,7 +83,7 @@ touch "$out" + nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true + diff -u $expected $out + +-expected=test-at-file/3.expected ++expected=$srcdir/test-at-file/3.expected + params="A=1 @$srcdir/test-at-file/3a.input B=2 @$srcdir/test-at-file/3b.input C=3" + + rm -f "$out" +@@ -91,7 +91,7 @@ touch "$out" + nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true + diff -u $expected $out + +-expected=test-at-file/4.expected ++expected=$srcdir/test-at-file/4.expected + params="A=1 @$srcdir/test-at-file/4a.input B=2 @$srcdir/test-at-file/4b.input C=3" + + rm -f "$out" +-- +2.50.1 + diff --git a/nbdkit.spec b/nbdkit.spec index aee402e..3415667 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,6 +86,10 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Fix for test. +# Upstream in 8aef52989c6e4cc5f3e40189d426c1f2ddf13862. +Patch: 0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch + # For applying the patches: BuildRequires: git From 15795b0ff403f1327173ed578339f808f18e827a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 11 Aug 2025 14:07:59 +0100 Subject: [PATCH 659/683] New upstream version 1.45.4 --- ...-test-at-file.sh-Fix-srcdir-builddir.patch | 53 ------------------- nbdkit.spec | 9 ++-- sources | 4 +- 3 files changed, 6 insertions(+), 60 deletions(-) delete mode 100644 0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch diff --git a/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch b/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch deleted file mode 100644 index b1dcdb6..0000000 --- a/0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 8aef52989c6e4cc5f3e40189d426c1f2ddf13862 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Tue, 29 Jul 2025 12:56:44 +0100 -Subject: [PATCH] tests/test-at-file.sh: Fix srcdir != builddir - -Fixes: commit 05c90e6930d92106f4064ac6c2c56627af8e4c50 ---- - tests/test-at-file.sh | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/tests/test-at-file.sh b/tests/test-at-file.sh -index 7e975aa407..d038f9074e 100755 ---- a/tests/test-at-file.sh -+++ b/tests/test-at-file.sh -@@ -67,7 +67,7 @@ EOF - - # Run each test and check the output is as expected. - --expected=test-at-file/1.expected -+expected=$srcdir/test-at-file/1.expected - params="@$srcdir/test-at-file/1.input" - - rm -f "$out" -@@ -75,7 +75,7 @@ touch "$out" - nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true - diff -u $expected $out - --expected=test-at-file/2.expected -+expected=$srcdir/test-at-file/2.expected - params="@$srcdir/test-at-file/2.input" - - rm -f "$out" -@@ -83,7 +83,7 @@ touch "$out" - nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true - diff -u $expected $out - --expected=test-at-file/3.expected -+expected=$srcdir/test-at-file/3.expected - params="A=1 @$srcdir/test-at-file/3a.input B=2 @$srcdir/test-at-file/3b.input C=3" - - rm -f "$out" -@@ -91,7 +91,7 @@ touch "$out" - nbdkit -fv sh - <<<"$plugin" out="$out" $params --run true - diff -u $expected $out - --expected=test-at-file/4.expected -+expected=$srcdir/test-at-file/4.expected - params="A=1 @$srcdir/test-at-file/4a.input B=2 @$srcdir/test-at-file/4b.input C=3" - - rm -f "$out" --- -2.50.1 - diff --git a/nbdkit.spec b/nbdkit.spec index 3415667..db6413d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.3 +Version: 1.45.4 Release: 1%{?dist} Summary: NBD server @@ -86,10 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Fix for test. -# Upstream in 8aef52989c6e4cc5f3e40189d426c1f2ddf13862. -Patch: 0001-tests-test-at-file.sh-Fix-srcdir-builddir.patch - # For applying the patches: BuildRequires: git @@ -1548,6 +1544,9 @@ fi %changelog +* Mon Aug 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.4-1 +- New upstream version 1.45.4 + * Tue Jul 29 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.3-1 - New upstream version 1.45.3 diff --git a/sources b/sources index bf4f0e0..5b3e302 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.3.tar.gz) = c6d9835473b4453645f7a9dc43c8f5ffaa13030ff17f7b8234dfaf2963a01f465a07222941ec441364aca700dc146b04d0bcb374b7e1f748ac7f091ed7782727 -SHA512 (nbdkit-1.45.3.tar.gz.sig) = 5537f80243bec2f6ee20fd82abf251b66089f3daaa8856715ee60ef5de023337f1f6bddf9626c987443425db69d7b5e7e51a390e30b44c5bf9028f5e56a23543 +SHA512 (nbdkit-1.45.4.tar.gz) = 015894500789f743d65264db56e3b13a04fb93183b1aaea00f38a5a1d0407c8a612fd42715135a21f47738d4fb1fc40c80b623aac751c1265e537e7e994bd75b +SHA512 (nbdkit-1.45.4.tar.gz.sig) = 428628d95c2dbc61e4c830493da0f7d3ff3ab32533d95bba1f74e226bca27dcb94e1ef13ed9833598aaec35ff188827a377d551139ad1aa1cbe4fe0e2bec7128 From 29a8d04a48e37869ec3fe2b7864fa2525f87f14f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 20 Aug 2025 15:30:55 +0100 Subject: [PATCH 660/683] New upstream version 1.45.5. Remove obsolete Obsoletes now this is Fedora 43+. Add new nbdkit-indexed-gzip-filter. --- nbdkit.spec | 13 ++++++++++--- sources | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index db6413d..8dac8af 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.4 +Version: 1.45.5 Release: 1%{?dist} Summary: NBD server @@ -574,8 +574,6 @@ VMware VDDK for accessing VMware disks and servers. %package basic-filters Summary: Basic filters for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} -# Remove this in Fedora 43: -Obsoletes: nbdkit-gzip-filter < %{version}-%{release} %description basic-filters This package contains filters for %{name} which only depend on simple @@ -614,6 +612,8 @@ nbdkit-fua-filter Modify flush behaviour in plugins. nbdkit-gzip-filter Decompress a .gz file +nbdkit-indexed-gzip-filter Access .gz contents efficiently. + nbdkit-ip-filter Filter clients by IP address. nbdkit-limit-filter Limit nr clients that can connect concurrently. @@ -1351,6 +1351,7 @@ fi %{_libdir}/%{name}/filters/nbdkit-extentlist-filter.so %{_libdir}/%{name}/filters/nbdkit-fua-filter.so %{_libdir}/%{name}/filters/nbdkit-gzip-filter.so +%{_libdir}/%{name}/filters/nbdkit-indexed-gzip-filter.so %{_libdir}/%{name}/filters/nbdkit-ip-filter.so %{_libdir}/%{name}/filters/nbdkit-limit-filter.so %{_libdir}/%{name}/filters/nbdkit-log-filter.so @@ -1398,6 +1399,7 @@ fi %{_mandir}/man1/nbdkit-extentlist-filter.1* %{_mandir}/man1/nbdkit-fua-filter.1* %{_mandir}/man1/nbdkit-gzip-filter.1* +%{_mandir}/man1/nbdkit-indexed-gzip-filter.1* %{_mandir}/man1/nbdkit-ip-filter.1* %{_mandir}/man1/nbdkit-limit-filter.1* %{_mandir}/man1/nbdkit-log-filter.1* @@ -1544,6 +1546,11 @@ fi %changelog +* Wed Aug 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.5-1 +- New upstream version 1.45.5. +- Remove obsolete Obsoletes now this is Fedora 43+. +- Add new nbdkit-indexed-gzip-filter. + * Mon Aug 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.4-1 - New upstream version 1.45.4 diff --git a/sources b/sources index 5b3e302..0c903c4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.4.tar.gz) = 015894500789f743d65264db56e3b13a04fb93183b1aaea00f38a5a1d0407c8a612fd42715135a21f47738d4fb1fc40c80b623aac751c1265e537e7e994bd75b -SHA512 (nbdkit-1.45.4.tar.gz.sig) = 428628d95c2dbc61e4c830493da0f7d3ff3ab32533d95bba1f74e226bca27dcb94e1ef13ed9833598aaec35ff188827a377d551139ad1aa1cbe4fe0e2bec7128 +SHA512 (nbdkit-1.45.5.tar.gz) = 317ab34469921c2b0e8e87de7b1277922102bd0ef3932e1eb2dc21cdd785eb1f867f451899195a22de9e37af23785d4419e17958c3e108a25d86a66b01d32fd2 +SHA512 (nbdkit-1.45.5.tar.gz.sig) = 6103faca577610a92e20707fd1a1ab4462b7f175d786843f59a0df8642d36451070b074c94c9f19b801e1ddae7a1e3b41bf0422cc68ddd186f1b6b7f85d4e2a4 From b966d108a4c25072329ff5be832dc16a378cd061 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 20 Aug 2025 16:54:40 +0100 Subject: [PATCH 661/683] Add upstream fix for 32-bit indexed-gzip filter --- ...ndexed-gzip-Fixes-for-32-bit-support.patch | 216 ++++++++++++++++++ nbdkit.spec | 3 + 2 files changed, 219 insertions(+) create mode 100644 0001-indexed-gzip-Fixes-for-32-bit-support.patch diff --git a/0001-indexed-gzip-Fixes-for-32-bit-support.patch b/0001-indexed-gzip-Fixes-for-32-bit-support.patch new file mode 100644 index 0000000..cb3d6cf --- /dev/null +++ b/0001-indexed-gzip-Fixes-for-32-bit-support.patch @@ -0,0 +1,216 @@ +From 05eea64423f1cd5c12ac4e7932389c64d58ac7fa Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 20 Aug 2025 16:44:59 +0100 +Subject: [PATCH] indexed-gzip: Fixes for 32-bit support + +On 32-bit i686 nbdkit-indexed-gzip-filter test crashes with: + + realloc(): invalid pointer + +Firstly include <config.h> consistently. I suspect an off_t 32/64-bit +mismatch causes this. In any case make sure _FILE_OFFSET_BITS is +consistent in all compilation units. + +Also fix printf formatters for off_t, uint64_t and ptrdiff_t. +(https://stackoverflow.com/questions/586928/how-should-i-print-types-like-off-t-and-size-t) + +This change seems to fix the crasher in practice, but I'm not certain +that I have identified the root cause. +--- + filters/indexed-gzip/ig_handle.h | 1 - + filters/indexed-gzip/ig_zran.c | 52 ++++++++++++++++++++--------- + filters/indexed-gzip/indexed_gzip.c | 5 +-- + filters/indexed-gzip/zran.c | 2 ++ + 4 files changed, 41 insertions(+), 19 deletions(-) + +diff --git a/filters/indexed-gzip/ig_handle.h b/filters/indexed-gzip/ig_handle.h +index 168774f55b..3d478eaa57 100644 +--- a/filters/indexed-gzip/ig_handle.h ++++ b/filters/indexed-gzip/ig_handle.h +@@ -54,7 +54,6 @@ + #include "pread.h" + #include "minmax.h" + +- + /* NBDkit filter handle containing the index */ + struct handle { + struct deflate_index *index; +diff --git a/filters/indexed-gzip/ig_zran.c b/filters/indexed-gzip/ig_zran.c +index 88a94884b9..025186292c 100644 +--- a/filters/indexed-gzip/ig_zran.c ++++ b/filters/indexed-gzip/ig_zran.c +@@ -2,7 +2,9 @@ + * Copyright (C) 2005, 2012, 2018, 2023, 2024 Mark Adler + * Copyright (C) 2025 Shasheen Ediriweera + * For conditions of distribution and use, see copyright notice in zlib.h +- * Version 1.6 2 Aug 2024 Mark Adler */ ++ * Version 1.6 2 Aug 2024 Mark Adler ++ */ ++ + #include <config.h> + + #include <stdio.h> +@@ -33,8 +35,9 @@ + int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbdkit_err) { + struct handle *h = handle; + +- nbdkit_debug("ig_deflate_index_build: starting with span=%ld, compressed_size=%lu", +- span, h->compressed_size); ++ nbdkit_debug("ig_deflate_index_build: " ++ "starting with span=%jd, compressed_size=%" PRIu64, ++ (intmax_t) span, h->compressed_size); + + // Create and initialize the index list. + struct deflate_index *index = malloc(sizeof(struct deflate_index)); +@@ -67,7 +70,11 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd + // Print how much of the file has been decompressed, for external applications to track progress of this long-lived operation + float new_progress = (float)totin / (float)h->compressed_size; + if (new_progress - decompression_progress > progress_print_threshold) { +- nbdkit_debug("ig_deflate_index_extract: total_in=%ld, compressed_size=%ld, progress=%f", index->strm.total_in, h->compressed_size, decompression_progress); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "total_in=%ld, compressed_size=%" PRIu64 ", " ++ "progress=%f", ++ index->strm.total_in, h->compressed_size, ++ decompression_progress); + decompression_progress = new_progress; + } + +@@ -144,8 +151,9 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd + // very start for the first access point, or there has been span or + // more uncompressed bytes since the last access point, so we want + // to add an access point here. +- nbdkit_debug("ig_deflate_index_build: adding access point at totout=%ld, have=%d", +- totout, index->have); ++ nbdkit_debug("ig_deflate_index_build: " ++ "adding access point at totout=%jd, have=%d", ++ (intmax_t) totout, index->have); + index = add_point(index, totin - index->strm.avail_in, totout, beg, + win); + if (index == NULL) { +@@ -184,8 +192,9 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd + index->mode = mode; + index->length = totout; + h->index = index; +- nbdkit_debug("ig_deflate_index_build: Successfully completed indexation, have=%d, length=%ld", +- index->have, totout); ++ nbdkit_debug("ig_deflate_index_build: " ++ "successfully completed indexation, have=%d, length=%jd", ++ index->have, (intmax_t) totout); + return index->have; + } + +@@ -194,7 +203,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + struct handle *h = handle; + struct deflate_index* index = h->index; + +- nbdkit_debug("ig_deflate_index_extract: starting with offset=%ld, len=%zu", offset, len); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "starting with offset=%jd, len=%zu", ++ (intmax_t) offset, len); + + // Do a quick sanity check on the index. + if (index == NULL || index->have < 1 || index->list[0].out != 0 || +@@ -206,8 +217,10 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + + // If nothing to extract, return zero bytes extracted. + if (len == 0 || offset < 0 || offset >= index->length) { +- nbdkit_debug("ig_deflate_index_extract: nothing to extract - len=%zu, offset=%ld, index->length=%ld", +- len, offset, index->length); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "nothing to extract - len=%zu, offset=%jd, " ++ "index->length=%jd", ++ len, (intmax_t) offset, (intmax_t) index->length); + return 0; + } + +@@ -223,8 +236,10 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + } + point += lo; + +- nbdkit_debug("ig_deflate_index_extract: found access point %d - point->in=%ld, point->out=%ld, point->bits=%d", +- lo, point->in, point->out, point->bits); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "found access point %d - point->in=%jd, point->out=%jd, " ++ "point->bits=%d", ++ lo, (intmax_t) point->in, (intmax_t) point->out, point->bits); + + // Initialize the input file and prime the inflate engine to start there. + off_t start_byte = point->in - (point->bits ? 1 : 0); +@@ -232,7 +247,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + index->strm.avail_in = 0; + int ret = inflateReset2(&index->strm, RAW); + index->strm.total_in = start_byte; +- nbdkit_debug("ig_deflate_index_extract: inflateReset2 returned %d, start_byte=%ld", ret, start_byte); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "inflateReset2 returned %d, start_byte=%jd", ++ ret, (intmax_t) start_byte); + if (ret != Z_OK) + return ret; + if (point->bits) { +@@ -248,7 +265,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + offset -= point->out; // number of bytes to skip to get to offset + size_t left = len; // number of bytes left to read after offset + +- nbdkit_debug("ig_deflate_index_extract: adjusted offset=%ld, left=%zu", offset, left); ++ nbdkit_debug("ig_deflate_index_extract: " ++ "adjusted offset=%jd, left=%zu", ++ (intmax_t) offset, left); + + do { + if (offset) { +@@ -362,7 +381,8 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset + + // Return the number of uncompressed bytes read into buf, or the error. + ptrdiff_t result = ret == Z_OK || ret == Z_STREAM_END ? len - left : ret; +- nbdkit_debug("ig_deflate_index_extract: completed with result=%ld, ret=%d, len=%zu, left=%zu", ++ nbdkit_debug("ig_deflate_index_extract: " ++ "completed with result=%td, ret=%d, len=%zu, left=%zu", + result, ret, len, left); + return result; + } +diff --git a/filters/indexed-gzip/indexed_gzip.c b/filters/indexed-gzip/indexed_gzip.c +index 87c08f8e57..f47e41ecdb 100644 +--- a/filters/indexed-gzip/indexed_gzip.c ++++ b/filters/indexed-gzip/indexed_gzip.c +@@ -31,7 +31,6 @@ + */ + + #include <config.h> +-#include <errno.h> + + #include <stdio.h> + #include <stdlib.h> +@@ -41,6 +40,7 @@ + #include <fcntl.h> + #include <pthread.h> + #include <sys/stat.h> ++#include <errno.h> + #include <unistd.h> + #include <assert.h> + #include <limits.h> +@@ -309,7 +309,8 @@ indexed_gzip_pread(nbdkit_next *next, void *handle, + default: + // + *err = EIO; +- nbdkit_error(FILTER_NAME ": error %ld while extracting value\n", len); ++ nbdkit_error(FILTER_NAME ": error %jd while extracting value\n", ++ (intmax_t) len); + } + return -1; + } +diff --git a/filters/indexed-gzip/zran.c b/filters/indexed-gzip/zran.c +index 5c924dfebe..6a6e087e28 100644 +--- a/filters/indexed-gzip/zran.c ++++ b/filters/indexed-gzip/zran.c +@@ -60,6 +60,8 @@ + // use of pointers in the state. The approach here allows for storage of the + // index in a file. + ++#include <config.h> ++ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +-- +2.50.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 8dac8af..c8e04f0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,6 +86,9 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Upstream fix for 32-bit indexed-gzip filter. +Patch: 0001-indexed-gzip-Fixes-for-32-bit-support.patch + # For applying the patches: BuildRequires: git From 397329a12e02d5b9ca75916f364b07b0003727a6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 23 Aug 2025 17:19:29 +0100 Subject: [PATCH 662/683] New upstream version 1.45.6 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c8e04f0..1365935 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.5 +Version: 1.45.6 Release: 1%{?dist} Summary: NBD server @@ -1549,8 +1549,11 @@ fi %changelog +* Sat Aug 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.6-1 +- New upstream version 1.45.6 + * Wed Aug 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.5-1 -- New upstream version 1.45.5. +- New upstream version 1.45.5 - Remove obsolete Obsoletes now this is Fedora 43+. - Add new nbdkit-indexed-gzip-filter. diff --git a/sources b/sources index 0c903c4..5b4fb5b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.5.tar.gz) = 317ab34469921c2b0e8e87de7b1277922102bd0ef3932e1eb2dc21cdd785eb1f867f451899195a22de9e37af23785d4419e17958c3e108a25d86a66b01d32fd2 -SHA512 (nbdkit-1.45.5.tar.gz.sig) = 6103faca577610a92e20707fd1a1ab4462b7f175d786843f59a0df8642d36451070b074c94c9f19b801e1ddae7a1e3b41bf0422cc68ddd186f1b6b7f85d4e2a4 +SHA512 (nbdkit-1.45.6.tar.gz) = 57612e7cd78cb296237a2a2c46cc5983dbdf489a5661c462bbe3950a92000cd4aea6e6e45499954391d8a0f10a0f4656fe4313e23ec5c0a2915930a93318fb27 +SHA512 (nbdkit-1.45.6.tar.gz.sig) = 935e444f9677fb2ac432105a9e483b42948c792105db631be063d84e8895926d26d62dac8f83652d55e469b93a29313d76b8e2c3ed66ffa98c9d340610c61c8f From 812ce9e3f2e5e06dea4e7e6a4d2bfb27fbd39b44 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 23 Aug 2025 17:30:58 +0100 Subject: [PATCH 663/683] Remove upstream patch --- ...ndexed-gzip-Fixes-for-32-bit-support.patch | 216 ------------------ nbdkit.spec | 3 - 2 files changed, 219 deletions(-) delete mode 100644 0001-indexed-gzip-Fixes-for-32-bit-support.patch diff --git a/0001-indexed-gzip-Fixes-for-32-bit-support.patch b/0001-indexed-gzip-Fixes-for-32-bit-support.patch deleted file mode 100644 index cb3d6cf..0000000 --- a/0001-indexed-gzip-Fixes-for-32-bit-support.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 05eea64423f1cd5c12ac4e7932389c64d58ac7fa Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 20 Aug 2025 16:44:59 +0100 -Subject: [PATCH] indexed-gzip: Fixes for 32-bit support - -On 32-bit i686 nbdkit-indexed-gzip-filter test crashes with: - - realloc(): invalid pointer - -Firstly include <config.h> consistently. I suspect an off_t 32/64-bit -mismatch causes this. In any case make sure _FILE_OFFSET_BITS is -consistent in all compilation units. - -Also fix printf formatters for off_t, uint64_t and ptrdiff_t. -(https://stackoverflow.com/questions/586928/how-should-i-print-types-like-off-t-and-size-t) - -This change seems to fix the crasher in practice, but I'm not certain -that I have identified the root cause. ---- - filters/indexed-gzip/ig_handle.h | 1 - - filters/indexed-gzip/ig_zran.c | 52 ++++++++++++++++++++--------- - filters/indexed-gzip/indexed_gzip.c | 5 +-- - filters/indexed-gzip/zran.c | 2 ++ - 4 files changed, 41 insertions(+), 19 deletions(-) - -diff --git a/filters/indexed-gzip/ig_handle.h b/filters/indexed-gzip/ig_handle.h -index 168774f55b..3d478eaa57 100644 ---- a/filters/indexed-gzip/ig_handle.h -+++ b/filters/indexed-gzip/ig_handle.h -@@ -54,7 +54,6 @@ - #include "pread.h" - #include "minmax.h" - -- - /* NBDkit filter handle containing the index */ - struct handle { - struct deflate_index *index; -diff --git a/filters/indexed-gzip/ig_zran.c b/filters/indexed-gzip/ig_zran.c -index 88a94884b9..025186292c 100644 ---- a/filters/indexed-gzip/ig_zran.c -+++ b/filters/indexed-gzip/ig_zran.c -@@ -2,7 +2,9 @@ - * Copyright (C) 2005, 2012, 2018, 2023, 2024 Mark Adler - * Copyright (C) 2025 Shasheen Ediriweera - * For conditions of distribution and use, see copyright notice in zlib.h -- * Version 1.6 2 Aug 2024 Mark Adler */ -+ * Version 1.6 2 Aug 2024 Mark Adler -+ */ -+ - #include <config.h> - - #include <stdio.h> -@@ -33,8 +35,9 @@ - int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbdkit_err) { - struct handle *h = handle; - -- nbdkit_debug("ig_deflate_index_build: starting with span=%ld, compressed_size=%lu", -- span, h->compressed_size); -+ nbdkit_debug("ig_deflate_index_build: " -+ "starting with span=%jd, compressed_size=%" PRIu64, -+ (intmax_t) span, h->compressed_size); - - // Create and initialize the index list. - struct deflate_index *index = malloc(sizeof(struct deflate_index)); -@@ -67,7 +70,11 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd - // Print how much of the file has been decompressed, for external applications to track progress of this long-lived operation - float new_progress = (float)totin / (float)h->compressed_size; - if (new_progress - decompression_progress > progress_print_threshold) { -- nbdkit_debug("ig_deflate_index_extract: total_in=%ld, compressed_size=%ld, progress=%f", index->strm.total_in, h->compressed_size, decompression_progress); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "total_in=%ld, compressed_size=%" PRIu64 ", " -+ "progress=%f", -+ index->strm.total_in, h->compressed_size, -+ decompression_progress); - decompression_progress = new_progress; - } - -@@ -144,8 +151,9 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd - // very start for the first access point, or there has been span or - // more uncompressed bytes since the last access point, so we want - // to add an access point here. -- nbdkit_debug("ig_deflate_index_build: adding access point at totout=%ld, have=%d", -- totout, index->have); -+ nbdkit_debug("ig_deflate_index_build: " -+ "adding access point at totout=%jd, have=%d", -+ (intmax_t) totout, index->have); - index = add_point(index, totin - index->strm.avail_in, totout, beg, - win); - if (index == NULL) { -@@ -184,8 +192,9 @@ int ig_deflate_index_build(nbdkit_next *next, void* handle, off_t span, int* nbd - index->mode = mode; - index->length = totout; - h->index = index; -- nbdkit_debug("ig_deflate_index_build: Successfully completed indexation, have=%d, length=%ld", -- index->have, totout); -+ nbdkit_debug("ig_deflate_index_build: " -+ "successfully completed indexation, have=%d, length=%jd", -+ index->have, (intmax_t) totout); - return index->have; - } - -@@ -194,7 +203,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - struct handle *h = handle; - struct deflate_index* index = h->index; - -- nbdkit_debug("ig_deflate_index_extract: starting with offset=%ld, len=%zu", offset, len); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "starting with offset=%jd, len=%zu", -+ (intmax_t) offset, len); - - // Do a quick sanity check on the index. - if (index == NULL || index->have < 1 || index->list[0].out != 0 || -@@ -206,8 +217,10 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - - // If nothing to extract, return zero bytes extracted. - if (len == 0 || offset < 0 || offset >= index->length) { -- nbdkit_debug("ig_deflate_index_extract: nothing to extract - len=%zu, offset=%ld, index->length=%ld", -- len, offset, index->length); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "nothing to extract - len=%zu, offset=%jd, " -+ "index->length=%jd", -+ len, (intmax_t) offset, (intmax_t) index->length); - return 0; - } - -@@ -223,8 +236,10 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - } - point += lo; - -- nbdkit_debug("ig_deflate_index_extract: found access point %d - point->in=%ld, point->out=%ld, point->bits=%d", -- lo, point->in, point->out, point->bits); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "found access point %d - point->in=%jd, point->out=%jd, " -+ "point->bits=%d", -+ lo, (intmax_t) point->in, (intmax_t) point->out, point->bits); - - // Initialize the input file and prime the inflate engine to start there. - off_t start_byte = point->in - (point->bits ? 1 : 0); -@@ -232,7 +247,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - index->strm.avail_in = 0; - int ret = inflateReset2(&index->strm, RAW); - index->strm.total_in = start_byte; -- nbdkit_debug("ig_deflate_index_extract: inflateReset2 returned %d, start_byte=%ld", ret, start_byte); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "inflateReset2 returned %d, start_byte=%jd", -+ ret, (intmax_t) start_byte); - if (ret != Z_OK) - return ret; - if (point->bits) { -@@ -248,7 +265,9 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - offset -= point->out; // number of bytes to skip to get to offset - size_t left = len; // number of bytes left to read after offset - -- nbdkit_debug("ig_deflate_index_extract: adjusted offset=%ld, left=%zu", offset, left); -+ nbdkit_debug("ig_deflate_index_extract: " -+ "adjusted offset=%jd, left=%zu", -+ (intmax_t) offset, left); - - do { - if (offset) { -@@ -362,7 +381,8 @@ ptrdiff_t ig_deflate_index_extract(nbdkit_next *next, void *handle, off_t offset - - // Return the number of uncompressed bytes read into buf, or the error. - ptrdiff_t result = ret == Z_OK || ret == Z_STREAM_END ? len - left : ret; -- nbdkit_debug("ig_deflate_index_extract: completed with result=%ld, ret=%d, len=%zu, left=%zu", -+ nbdkit_debug("ig_deflate_index_extract: " -+ "completed with result=%td, ret=%d, len=%zu, left=%zu", - result, ret, len, left); - return result; - } -diff --git a/filters/indexed-gzip/indexed_gzip.c b/filters/indexed-gzip/indexed_gzip.c -index 87c08f8e57..f47e41ecdb 100644 ---- a/filters/indexed-gzip/indexed_gzip.c -+++ b/filters/indexed-gzip/indexed_gzip.c -@@ -31,7 +31,6 @@ - */ - - #include <config.h> --#include <errno.h> - - #include <stdio.h> - #include <stdlib.h> -@@ -41,6 +40,7 @@ - #include <fcntl.h> - #include <pthread.h> - #include <sys/stat.h> -+#include <errno.h> - #include <unistd.h> - #include <assert.h> - #include <limits.h> -@@ -309,7 +309,8 @@ indexed_gzip_pread(nbdkit_next *next, void *handle, - default: - // - *err = EIO; -- nbdkit_error(FILTER_NAME ": error %ld while extracting value\n", len); -+ nbdkit_error(FILTER_NAME ": error %jd while extracting value\n", -+ (intmax_t) len); - } - return -1; - } -diff --git a/filters/indexed-gzip/zran.c b/filters/indexed-gzip/zran.c -index 5c924dfebe..6a6e087e28 100644 ---- a/filters/indexed-gzip/zran.c -+++ b/filters/indexed-gzip/zran.c -@@ -60,6 +60,8 @@ - // use of pointers in the state. The approach here allows for storage of the - // index in a file. - -+#include <config.h> -+ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> --- -2.50.1 - diff --git a/nbdkit.spec b/nbdkit.spec index 1365935..8b3781b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,9 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Upstream fix for 32-bit indexed-gzip filter. -Patch: 0001-indexed-gzip-Fixes-for-32-bit-support.patch - # For applying the patches: BuildRequires: git From f3f6bab39f6960b5068eb32283b1046ce631ecd7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 26 Aug 2025 18:29:54 +0100 Subject: [PATCH 664/683] New upstream version 1.45.7 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 8b3781b..b1f4601 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.6 +Version: 1.45.7 Release: 1%{?dist} Summary: NBD server @@ -1546,6 +1546,9 @@ fi %changelog +* Tue Aug 26 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.7-1 +- New upstream version 1.45.7 + * Sat Aug 23 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.6-1 - New upstream version 1.45.6 diff --git a/sources b/sources index 5b4fb5b..e9292d4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.6.tar.gz) = 57612e7cd78cb296237a2a2c46cc5983dbdf489a5661c462bbe3950a92000cd4aea6e6e45499954391d8a0f10a0f4656fe4313e23ec5c0a2915930a93318fb27 -SHA512 (nbdkit-1.45.6.tar.gz.sig) = 935e444f9677fb2ac432105a9e483b42948c792105db631be063d84e8895926d26d62dac8f83652d55e469b93a29313d76b8e2c3ed66ffa98c9d340610c61c8f +SHA512 (nbdkit-1.45.7.tar.gz) = 0dae8cd809e40f8a67d92e1fd49e8956873cd22037e0d68773392c75eab8357731df67afa48742849f92384edf5ec402fe4195f97ddf4045a250c584500a8448 +SHA512 (nbdkit-1.45.7.tar.gz.sig) = 2239a0a5dbc175a2b9a3d619babbd10a810d534721c84bbdc893d180d674ae5b5f383756b24a6b9fdb1ac3116f7a99e9d4818b5525e8d8ffa33a1a10d12fdccb From 99f216ae7cd814f3fcfc46afa5aeeb88619270e6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 29 Aug 2025 15:08:13 +0100 Subject: [PATCH 665/683] Unify Fedora and RHEL 10.2 spec files --- nbdkit.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index b1f4601..35203ee 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -126,7 +126,10 @@ BuildRequires: pkgconfig(libtorrent-rasterbar) %if 0%{?have_blkio} BuildRequires: pkgconfig(blkio) %endif -BuildRequires: bash-completion, bash-completion-devel +BuildRequires: bash-completion +%if !0%{?rhel} +BuildRequires: bash-completion-devel +%endif BuildRequires: perl-devel BuildRequires: perl(ExtUtils::Embed) %if 0%{?rhel} == 8 @@ -1513,8 +1516,13 @@ fi %files bash-completion %license LICENSE +%if !0%{?rhel} %dir %{bash_completions_dir} %{bash_completions_dir}/nbdkit +%else +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/nbdkit +%endif %if 0%{?with_selinux} From 6e2204c39a1a8b284d4ffabbf4c54d9b7bfcfa28 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 13 Sep 2025 12:18:13 +0100 Subject: [PATCH 666/683] New upstream version 1.45.8 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 35203ee..3d9a5d3 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.7 +Version: 1.45.8 Release: 1%{?dist} Summary: NBD server @@ -1554,6 +1554,9 @@ fi %changelog +* Sat Sep 13 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.8-1 +- New upstream version 1.45.8 + * Tue Aug 26 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.7-1 - New upstream version 1.45.7 diff --git a/sources b/sources index e9292d4..b2cfd43 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.7.tar.gz) = 0dae8cd809e40f8a67d92e1fd49e8956873cd22037e0d68773392c75eab8357731df67afa48742849f92384edf5ec402fe4195f97ddf4045a250c584500a8448 -SHA512 (nbdkit-1.45.7.tar.gz.sig) = 2239a0a5dbc175a2b9a3d619babbd10a810d534721c84bbdc893d180d674ae5b5f383756b24a6b9fdb1ac3116f7a99e9d4818b5525e8d8ffa33a1a10d12fdccb +SHA512 (nbdkit-1.45.8.tar.gz) = 1e94b4cc4c562ae51b2f2b441f7ecce958f5c833a964a7bbb33ff612753c3e6b4c4941b6908b3d6f039bd34f2253503df7b5df70590d62572321d1ec15f34e48 +SHA512 (nbdkit-1.45.8.tar.gz.sig) = e1b15784decc59e166e4a23982f648cb39d6dea9e3e83764420af2e33ef80b40e0f6ed12d0cc179a958280e1897d5f44186893ea8af9964e4b9bf867e4bbd232 From 6950f7b1a0609af98bb59a4710e6982cd1505e7c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz <yselkowi@redhat.com> Date: Thu, 18 Sep 2025 13:08:54 -0400 Subject: [PATCH 667/683] Fix bash-completion conditional ELN (the future RHEL 11) tracks rawhide and therefore also has bash-completion-devel and the %bash_completions_dir macro. --- nbdkit.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 3d9a5d3..9577db1 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -127,7 +127,7 @@ BuildRequires: pkgconfig(libtorrent-rasterbar) BuildRequires: pkgconfig(blkio) %endif BuildRequires: bash-completion -%if !0%{?rhel} +%if 0%{?fedora} || 0%{?rhel} >= 11 BuildRequires: bash-completion-devel %endif BuildRequires: perl-devel @@ -1516,7 +1516,7 @@ fi %files bash-completion %license LICENSE -%if !0%{?rhel} +%if 0%{?fedora} || 0%{?rhel} >= 11 %dir %{bash_completions_dir} %{bash_completions_dir}/nbdkit %else From 674da52cdb21ed5f3259ceb1e43617de7d9beb95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> Date: Thu, 2 Oct 2025 12:37:10 +0100 Subject: [PATCH 668/683] Remove dep on QEMU on i686 arch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ideally nbdkit would ExcludeArch for i686, however, a couple of packages depend on it still $ ./leafdrop nbdkit nbdkit is BuildRequired by: - poke - virt-p2v nbdkit-basic-filters is BuildRequired by: - virt-v2v nbdkit-basic-plugins is BuildRequired by: - poke - virt-v2v nbdkit-server is BuildRequired by: - virt-v2v NO: Package nbdkit is not a leaf package on i686. Rather than chase that deps chain, it is simpler to disable install of the QEMU packages as they're only used in the test suite, and all the test programs auto-skip if the required binaries are not present. The only issue is an oversight in the tests/Makefile.am which assumes qemu-img exists. https://gitlab.com/nbdkit/nbdkit/-/issues/30 Temporarily disable tests entirely on %{ix86} until that bug is addressed. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- nbdkit.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 9577db1..49fe236 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,8 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. -%global broken_test_arches NONE +# https://gitlab.com/nbdkit/nbdkit/-/issues/30 +%global broken_test_arches %{ix86} # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -55,7 +56,7 @@ Name: nbdkit Version: 1.45.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -167,9 +168,11 @@ BuildRequires: /usr/bin/lzip BuildRequires: /usr/bin/nbdcopy BuildRequires: /usr/bin/nbdinfo BuildRequires: /usr/bin/nbdsh +%ifnarch %{ix86} BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/qemu-io BuildRequires: /usr/bin/qemu-nbd +%endif BuildRequires: /usr/sbin/sfdisk %if !0%{?rhel} BuildRequires: /usr/bin/socat @@ -1554,6 +1557,9 @@ fi %changelog +* Thu Oct 2 2025 Daniel P. Berrangé <berrange@redhat.com> - 1.45.8-2 +- Stop using QEMU for tests on 32-bit + * Sat Sep 13 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.8-1 - New upstream version 1.45.8 From 55162a084d089d5829c3b34c0a22836d723fae58 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 3 Oct 2025 11:11:42 +0100 Subject: [PATCH 669/683] New upstream version 1.45.9 Reenable the tests on all arches, since we can now handle missing qemu-img --- nbdkit.spec | 11 +++++++---- sources | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 49fe236..665fee4 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,8 +45,7 @@ # If the test suite is broken on a particular architecture, document # it as a bug and add it to this list. -# https://gitlab.com/nbdkit/nbdkit/-/issues/30 -%global broken_test_arches %{ix86} +%global broken_test_arches NONE # If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 @@ -55,8 +54,8 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.8 -Release: 2%{?dist} +Version: 1.45.9 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1557,6 +1556,10 @@ fi %changelog +* Fri Oct 3 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.9-1 +- New upstream version 1.45.9 +- Reenable the tests on all arches, since we can now handle missing qemu-img + * Thu Oct 2 2025 Daniel P. Berrangé <berrange@redhat.com> - 1.45.8-2 - Stop using QEMU for tests on 32-bit diff --git a/sources b/sources index b2cfd43..bc6a14c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.8.tar.gz) = 1e94b4cc4c562ae51b2f2b441f7ecce958f5c833a964a7bbb33ff612753c3e6b4c4941b6908b3d6f039bd34f2253503df7b5df70590d62572321d1ec15f34e48 -SHA512 (nbdkit-1.45.8.tar.gz.sig) = e1b15784decc59e166e4a23982f648cb39d6dea9e3e83764420af2e33ef80b40e0f6ed12d0cc179a958280e1897d5f44186893ea8af9964e4b9bf867e4bbd232 +SHA512 (nbdkit-1.45.9.tar.gz) = 57ff06917727a8d7bcf76cf84e9fc0d690e17b0c1f41aef8084c17718ee0c15fed74ebb1933b8506bcd8690d297d9e13f2fabc2f952a91a35d25ba56ea4b5203 +SHA512 (nbdkit-1.45.9.tar.gz.sig) = f666ae4b1f59e067849f9c463f6836d0fd9c12add1d855a453129e543fbd3466ced68aa94522e834229c5c1e95270954b56a8739b0278d863aa6eb5f63b93161 From 07acd2186a6621faaf737ce486a4a51a8528d1b1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 15 Oct 2025 12:50:47 +0100 Subject: [PATCH 670/683] OCaml 5.4.0 rebuild --- nbdkit.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 665fee4..502b162 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -55,7 +55,7 @@ Name: nbdkit Version: 1.45.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NBD server License: BSD-3-Clause @@ -1556,6 +1556,9 @@ fi %changelog +* Wed Oct 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.9-2 +- OCaml 5.4.0 rebuild + * Fri Oct 3 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.9-1 - New upstream version 1.45.9 - Reenable the tests on all arches, since we can now handle missing qemu-img From d2963788bbe2ff1dd39175403fb6d296f88f986e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Wed, 15 Oct 2025 13:27:23 +0100 Subject: [PATCH 671/683] Fix crash with OCaml 5.4 --- 112.patch | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ nbdkit.spec | 4 ++++ 2 files changed, 71 insertions(+) create mode 100644 112.patch diff --git a/112.patch b/112.patch new file mode 100644 index 0000000..cf7760d --- /dev/null +++ b/112.patch @@ -0,0 +1,67 @@ +From ce0407b65c2078a6e7d365028e01c739b7d753cb Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Wed, 15 Oct 2025 13:18:04 +0100 +Subject: [PATCH] ocaml: Don't call caml_shutdown on unload + +This causes a new crash with OCaml >= 5.4. + + #0 __pthread_kill_implementation (threadid=<optimized out>, + signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 + #1 0x00007f484a8804b3 in __pthread_kill_internal (threadid=<optimized out>, + signo=6) at pthread_kill.c:89 + #2 0x00007f484a82618e in __GI_raise (sig=sig@entry=6) + at ../sysdeps/posix/raise.c:26 + #3 0x00007f484a80d6d0 in __GI_abort () at abort.c:77 + #4 0x00007f484a17b328 in caml_fatal_error ( + msg=msg@entry=0x7f484a2476a8 "Fatal error during %s: %s\n") + at runtime/misc.c:127 + #5 0x00007f484a17c026 in caml_plat_fatal_error ( + action=action@entry=0x7f484a247882 "unlock", err=<optimized out>) + at runtime/platform.c:45 + #6 0x00007f484a161fe6 in check_err (action=0x7f484a247882 "unlock", + err=<optimized out>) at runtime/caml/platform.h:443 + #7 caml_plat_unlock (m=<optimized out>) at runtime/caml/platform.h:485 + #8 caml_release_domain_lock () at runtime/domain.c:2003 + #9 0x00007f484a14c6f5 in st_bt_lock_release ( + other_threads_waiting=<optimized out>) at st_stubs.c:116 + #10 st_masterlock_release (m=0x5596ff31fa88) + at /usr/src/debug/ocaml-5.4.0-1.fc44.x86_64/otherlibs/systhreads/st_pthreads.h:136 + #11 0x00007f484a180b7e in caml_enter_blocking_section () + at runtime/signals.c:175 + #12 0x00005596c3420aa4 in backend_unload (b=0x5596ff2c7c40, + unload=0x7f484ae72760 <unload_wrapper>) + at /home/rjones/d/nbdkit/server/backend.c:151 + #13 0x00005596c3429ccc in plugin_free (b=0x5596ff2c7c40) + at /home/rjones/d/nbdkit/server/plugins.c:64 + #14 0x00005596c341ecb5 in main (argc=<optimized out>, argv=<optimized out>) + at /home/rjones/d/nbdkit/server/main.c:938 +--- + plugins/ocaml/plugin.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c +index 4757e68c7..60abc207a 100644 +--- a/plugins/ocaml/plugin.c ++++ b/plugins/ocaml/plugin.c +@@ -259,9 +259,18 @@ unload_wrapper (void) + free_strings (); + remove_roots (); + ++ /* In OCaml >= 5.4 this crashes with: ++ * ++ * Fatal error: Fatal error during unlock: Invalid argument ++ * ++ * Since it's not really necessary to shut down the OCaml runtime, ++ * let's just avoid it. ++ */ ++/* + #ifdef HAVE_CAML_SHUTDOWN + caml_shutdown (); + #endif ++*/ + } + + static void +-- +GitLab + diff --git a/nbdkit.spec b/nbdkit.spec index 502b162..87bb30e 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,6 +86,10 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Crash with OCaml 5.4: +# https://gitlab.com/nbdkit/nbdkit/-/merge_requests/112 +Patch: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/112.patch + # For applying the patches: BuildRequires: git From 307a18276f8c47ab6d9132fd69d1ff99e4e203c2 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 16 Oct 2025 17:26:20 +0100 Subject: [PATCH 672/683] New upstream version 1.45.10 Remove OCaml 5.4.0 fix, which is included upstream. --- 112.patch | 67 ----------------------------------------------------- nbdkit.spec | 12 +++++----- sources | 4 ++-- 3 files changed, 8 insertions(+), 75 deletions(-) delete mode 100644 112.patch diff --git a/112.patch b/112.patch deleted file mode 100644 index cf7760d..0000000 --- a/112.patch +++ /dev/null @@ -1,67 +0,0 @@ -From ce0407b65c2078a6e7d365028e01c739b7d753cb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Wed, 15 Oct 2025 13:18:04 +0100 -Subject: [PATCH] ocaml: Don't call caml_shutdown on unload - -This causes a new crash with OCaml >= 5.4. - - #0 __pthread_kill_implementation (threadid=<optimized out>, - signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 - #1 0x00007f484a8804b3 in __pthread_kill_internal (threadid=<optimized out>, - signo=6) at pthread_kill.c:89 - #2 0x00007f484a82618e in __GI_raise (sig=sig@entry=6) - at ../sysdeps/posix/raise.c:26 - #3 0x00007f484a80d6d0 in __GI_abort () at abort.c:77 - #4 0x00007f484a17b328 in caml_fatal_error ( - msg=msg@entry=0x7f484a2476a8 "Fatal error during %s: %s\n") - at runtime/misc.c:127 - #5 0x00007f484a17c026 in caml_plat_fatal_error ( - action=action@entry=0x7f484a247882 "unlock", err=<optimized out>) - at runtime/platform.c:45 - #6 0x00007f484a161fe6 in check_err (action=0x7f484a247882 "unlock", - err=<optimized out>) at runtime/caml/platform.h:443 - #7 caml_plat_unlock (m=<optimized out>) at runtime/caml/platform.h:485 - #8 caml_release_domain_lock () at runtime/domain.c:2003 - #9 0x00007f484a14c6f5 in st_bt_lock_release ( - other_threads_waiting=<optimized out>) at st_stubs.c:116 - #10 st_masterlock_release (m=0x5596ff31fa88) - at /usr/src/debug/ocaml-5.4.0-1.fc44.x86_64/otherlibs/systhreads/st_pthreads.h:136 - #11 0x00007f484a180b7e in caml_enter_blocking_section () - at runtime/signals.c:175 - #12 0x00005596c3420aa4 in backend_unload (b=0x5596ff2c7c40, - unload=0x7f484ae72760 <unload_wrapper>) - at /home/rjones/d/nbdkit/server/backend.c:151 - #13 0x00005596c3429ccc in plugin_free (b=0x5596ff2c7c40) - at /home/rjones/d/nbdkit/server/plugins.c:64 - #14 0x00005596c341ecb5 in main (argc=<optimized out>, argv=<optimized out>) - at /home/rjones/d/nbdkit/server/main.c:938 ---- - plugins/ocaml/plugin.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c -index 4757e68c7..60abc207a 100644 ---- a/plugins/ocaml/plugin.c -+++ b/plugins/ocaml/plugin.c -@@ -259,9 +259,18 @@ unload_wrapper (void) - free_strings (); - remove_roots (); - -+ /* In OCaml >= 5.4 this crashes with: -+ * -+ * Fatal error: Fatal error during unlock: Invalid argument -+ * -+ * Since it's not really necessary to shut down the OCaml runtime, -+ * let's just avoid it. -+ */ -+/* - #ifdef HAVE_CAML_SHUTDOWN - caml_shutdown (); - #endif -+*/ - } - - static void --- -GitLab - diff --git a/nbdkit.spec b/nbdkit.spec index 87bb30e..33c82ba 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,8 +54,8 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.9 -Release: 2%{?dist} +Version: 1.45.10 +Release: 1%{?dist} Summary: NBD server License: BSD-3-Clause @@ -86,10 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Crash with OCaml 5.4: -# https://gitlab.com/nbdkit/nbdkit/-/merge_requests/112 -Patch: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/112.patch - # For applying the patches: BuildRequires: git @@ -1560,6 +1556,10 @@ fi %changelog +* Thu Oct 16 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.10-1 +- New upstream version 1.45.10 +- Remove OCaml 5.4.0 fix, which is included upstream. + * Wed Oct 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.9-2 - OCaml 5.4.0 rebuild diff --git a/sources b/sources index bc6a14c..5556503 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.9.tar.gz) = 57ff06917727a8d7bcf76cf84e9fc0d690e17b0c1f41aef8084c17718ee0c15fed74ebb1933b8506bcd8690d297d9e13f2fabc2f952a91a35d25ba56ea4b5203 -SHA512 (nbdkit-1.45.9.tar.gz.sig) = f666ae4b1f59e067849f9c463f6836d0fd9c12add1d855a453129e543fbd3466ced68aa94522e834229c5c1e95270954b56a8739b0278d863aa6eb5f63b93161 +SHA512 (nbdkit-1.45.10.tar.gz) = 4051d7ce36cbe80f9caf1d729b00f628f80aa9da8e4b8c56d7671ebed768bd3b7488e44d19111bd829c901bae8d6fa75ea8e53cb20dad4dd595d26b96cf1b61f +SHA512 (nbdkit-1.45.10.tar.gz.sig) = 8c829d012087cd9baacd1de3d4dec7b69a56d2ffb15ca331a39929297cec421cc64dff1ee55822ec2a96416254db04fbd618405e2f04998515889551647f6f0b From 43debe038ed86ae7f570de5a6ea4ada6459577e7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 20 Oct 2025 15:54:55 +0100 Subject: [PATCH 673/683] New upstream version 1.45.11 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 33c82ba..128b817 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.10 +Version: 1.45.11 Release: 1%{?dist} Summary: NBD server @@ -1556,6 +1556,9 @@ fi %changelog +* Mon Oct 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.11-1 +- New upstream version 1.45.11 + * Thu Oct 16 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.10-1 - New upstream version 1.45.10 - Remove OCaml 5.4.0 fix, which is included upstream. diff --git a/sources b/sources index 5556503..c2c660f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.10.tar.gz) = 4051d7ce36cbe80f9caf1d729b00f628f80aa9da8e4b8c56d7671ebed768bd3b7488e44d19111bd829c901bae8d6fa75ea8e53cb20dad4dd595d26b96cf1b61f -SHA512 (nbdkit-1.45.10.tar.gz.sig) = 8c829d012087cd9baacd1de3d4dec7b69a56d2ffb15ca331a39929297cec421cc64dff1ee55822ec2a96416254db04fbd618405e2f04998515889551647f6f0b +SHA512 (nbdkit-1.45.11.tar.gz) = b9ba91cfa7e71c415bbc2cb47dd569ce327d8dd9ec28aca03788984872f0a0fd63296f963436740b504950896082c14768bd823f5605d23b63ea149f87f939f5 +SHA512 (nbdkit-1.45.11.tar.gz.sig) = b964604598d50c319c6f04e8cab487f215f6347588b507fdaf752ac8b0929c2e2975d793fbe1f65bf51107b5e087f5c8836589c01b81753e2dce70f9d2e73ae2 From 576d016e7d08e8e09d9777f284867496623f109b Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sun, 26 Oct 2025 21:59:34 +0000 Subject: [PATCH 674/683] New upstream version 1.45.12 Add new nbdkit-vram-plugin --- ...g-devices-when-no-platforms-are-foun.patch | 59 +++++++++++++++ ...rsing-of-last-line-of-du-command-out.patch | 72 +++++++++++++++++++ nbdkit.spec | 37 +++++++++- sources | 4 +- 4 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch create mode 100644 0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch diff --git a/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch b/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch new file mode 100644 index 0000000..3e87d95 --- /dev/null +++ b/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch @@ -0,0 +1,59 @@ +From cad6894ec6dc18b318d0948fadf5833ecd75cb0f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 26 Oct 2025 22:25:10 +0000 +Subject: [PATCH 1/2] vram: Skip listing devices when no platforms are found + +In a chroot-type test environment, tests/test-dump-plugin.sh failed +with: + + + nbdkit vram --dump-plugin + nbdkit: error: clGetPlatformIDs: error -1001 (unknown OpenCL error) + +-1001 is the extended error CL_PLATFORM_NOT_FOUND_KHR +--- + plugins/vram/opencl-errors.h | 3 +++ + plugins/vram/vram.c | 7 +++++++ + 2 files changed, 10 insertions(+) + +diff --git a/plugins/vram/opencl-errors.h b/plugins/vram/opencl-errors.h +index b5d185fc65..dd6fba92d6 100644 +--- a/plugins/vram/opencl-errors.h ++++ b/plugins/vram/opencl-errors.h +@@ -101,6 +101,9 @@ opencl_errstr (cl_int err) + case_return_string(CL_INVALID_COMPILER_OPTIONS ); + case_return_string(CL_INVALID_LINKER_OPTIONS ); + case_return_string(CL_INVALID_DEVICE_PARTITION_COUNT ); ++ ++ /* Extended. */ ++ case_return_string(CL_PLATFORM_NOT_FOUND_KHR ); + default: return "unknown OpenCL error"; + } + } +diff --git a/plugins/vram/vram.c b/plugins/vram/vram.c +index 4b391e2202..9819f0dbe9 100644 +--- a/plugins/vram/vram.c ++++ b/plugins/vram/vram.c +@@ -41,6 +41,7 @@ + + #define CL_TARGET_OPENCL_VERSION 200 /* OpenCL >= 2.0 */ + #include <CL/cl.h> ++#include <CL/cl_ext.h> + + #define NBDKIT_API_VERSION 2 + #include <nbdkit-plugin.h> +@@ -126,6 +127,12 @@ get_all_devices (void) + /* Build the list of all devices from all platforms as a flat list. */ + what = "clGetPlatformIDs"; + r = clGetPlatformIDs (0, NULL, &num_platforms); ++ if (r == CL_PLATFORM_NOT_FOUND_KHR) { ++ /* OpenCL seems to return this when no platform is detected at ++ * all, so just return the empty list in this case. ++ */ ++ return; ++ } + if (r != CL_SUCCESS) goto err; + platform_ids = calloc (num_platforms, sizeof platform_ids[0]); + if (!platform_ids) { +-- +2.50.1 + diff --git a/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch b/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch new file mode 100644 index 0000000..dfc7e91 --- /dev/null +++ b/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch @@ -0,0 +1,72 @@ +From 01b8e557ce129b2f4677061ba04bbb5ff2a703eb Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Mon, 27 Oct 2025 09:15:47 +0000 +Subject: [PATCH 2/2] linuxdisk: Fix parsing of last line of 'du' command + output + +A recent change to glibc breaks this code. Previously we could read +the lines of output from the 'du' command until getline(3) returned +EOF, and the 'line' buffer would contain the last line read. However +after this change, glibc now sets line[0] = '\0' in the EOF case, +breaking the last line of output that we wanted to parse. + +https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=33eff78c8b28adc4963987880e10d96761f2a167 + +We also previously didn't handle the unlikely case where 'du' produces +no output at all. Fix both problems here. +--- + plugins/linuxdisk/filesystem.c | 23 ++++++++++++++++++----- + 1 file changed, 18 insertions(+), 5 deletions(-) + +diff --git a/plugins/linuxdisk/filesystem.c b/plugins/linuxdisk/filesystem.c +index 3e4e2f3a5a..283af61a13 100644 +--- a/plugins/linuxdisk/filesystem.c ++++ b/plugins/linuxdisk/filesystem.c +@@ -148,7 +148,7 @@ create_filesystem (struct virtual_disk *disk) + static int64_t + estimate_size (void) + { +- CLEANUP_FREE char *command = NULL, *line = NULL; ++ CLEANUP_FREE char *command = NULL, *line = NULL, *lastline = NULL; + size_t len = 0; + FILE *fp; + int64_t ret; +@@ -177,8 +177,16 @@ estimate_size (void) + + /* Ignore everything up to the last line. */ + len = 0; +- while (getline (&line, &len, fp) != -1) +- /* empty */; ++ while (getline (&line, &len, fp) != -1) { ++ nbdkit_debug ("du: %s", line); ++ free (lastline); ++ lastline = strndup (line, len); ++ if (lastline == NULL) { ++ nbdkit_error ("strndup: %m"); ++ pclose (fp); ++ return -1; ++ } ++ } + if (ferror (fp)) { + nbdkit_error ("getline failed: %m"); + pclose (fp); +@@ -193,9 +201,14 @@ estimate_size (void) + if (exit_status_to_nbd_error (r, "pclose: du") == -1) + return -1; + ++ if (lastline == NULL) { ++ nbdkit_error ("no output from du command"); ++ return -1; ++ } ++ + /* Parse the last line. */ +- if (sscanf (line, "%" SCNi64, &ret) != 1 || ret < 0) { +- nbdkit_error ("could not parse last line of output: %s", line); ++ if (sscanf (lastline, "%" SCNi64, &ret) != 1 || ret < 0) { ++ nbdkit_error ("could not parse last line from du command: %s", lastline); + return -1; + } + +-- +2.50.1 + diff --git a/nbdkit.spec b/nbdkit.spec index 128b817..f1d2a8b 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.11 +Version: 1.45.12 Release: 1%{?dist} Summary: NBD server @@ -86,6 +86,11 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Fix vram tests. Upstream in > 1.45.12. +Patch: 0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch +# Fix for getline change in glibc-2.42.9000-7.fc44 +Patch: 0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch + # For applying the patches: BuildRequires: git @@ -126,6 +131,9 @@ BuildRequires: pkgconfig(libtorrent-rasterbar) %if 0%{?have_blkio} BuildRequires: pkgconfig(blkio) %endif +%if !0%{?rhel} +BuildRequires: pkgconfig(OpenCL) +%endif BuildRequires: bash-completion %if 0%{?fedora} || 0%{?rhel} >= 11 BuildRequires: bash-completion-devel @@ -576,6 +584,17 @@ VMware VDDK for accessing VMware disks and servers. %endif +%if !0%{?rhel} +%package vram-plugin +Summary: use GPU Video RAM as a network block device +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Recommends: %{_bindir}/clinfo + +%description vram-plugin +This package contains GPU Video RAM support for %{name}. +%endif + + %package basic-filters Summary: Basic filters for %{name} Requires: %{name}-server%{?_isa} = %{version}-%{release} @@ -856,6 +875,7 @@ export PYTHON=%{__python3} --enable-perl \ --enable-tcl \ --enable-torrent \ + --enable-vram \ --with-ext2 \ --with-iso \ --with-libvirt \ @@ -864,6 +884,7 @@ export PYTHON=%{__python3} --disable-perl \ --disable-tcl \ --disable-torrent \ + --disable-vram \ --without-ext2 \ --without-iso \ --without-libvirt \ @@ -928,6 +949,7 @@ popd --disable-torrent \ --disable-valgrind \ --disable-vddk \ + --disable-vram \ --without-bash-completions \ --without-curl \ --without-ext2 \ @@ -1337,6 +1359,15 @@ fi %endif +%if !0%{?rhel} +%files vram-plugin +%doc README.md +%license LICENSE +%{_libdir}/%{name}/plugins/nbdkit-vram-plugin.so +%{_mandir}/man1/nbdkit-vram-plugin.1* +%endif + + %files basic-filters %doc README.md %license LICENSE @@ -1556,6 +1587,10 @@ fi %changelog +* Mon Oct 27 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.12-1 +- New upstream version 1.45.12 +- Add new nbdkit-vram-plugin + * Mon Oct 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.11-1 - New upstream version 1.45.11 diff --git a/sources b/sources index c2c660f..5539189 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.11.tar.gz) = b9ba91cfa7e71c415bbc2cb47dd569ce327d8dd9ec28aca03788984872f0a0fd63296f963436740b504950896082c14768bd823f5605d23b63ea149f87f939f5 -SHA512 (nbdkit-1.45.11.tar.gz.sig) = b964604598d50c319c6f04e8cab487f215f6347588b507fdaf752ac8b0929c2e2975d793fbe1f65bf51107b5e087f5c8836589c01b81753e2dce70f9d2e73ae2 +SHA512 (nbdkit-1.45.12.tar.gz) = a28da3e24c333da5b4b22961078095b1d73bb6c219e7cfae783c301b68d8e755ce839fa15bff6354b44ff7227a91eae6a8e264f3e26b5caff8d27c68905ff01b +SHA512 (nbdkit-1.45.12.tar.gz.sig) = 93c497160f196b1a6144819742cee04b1fad663a148dbc4fd82efe73c9a1aabdcb9c01baa9ec84db17a392ae6cde468736750a878bba3e3c130507890f96a8e5 From f486bc816a56abf71ba92267fc6e790e75603593 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 14 Nov 2025 14:55:07 +0000 Subject: [PATCH 675/683] New upstream version 1.45.13 --- ...g-devices-when-no-platforms-are-foun.patch | 59 --------------- ...rsing-of-last-line-of-du-command-out.patch | 72 ------------------- nbdkit.spec | 10 ++- sources | 4 +- 4 files changed, 6 insertions(+), 139 deletions(-) delete mode 100644 0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch delete mode 100644 0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch diff --git a/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch b/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch deleted file mode 100644 index 3e87d95..0000000 --- a/0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch +++ /dev/null @@ -1,59 +0,0 @@ -From cad6894ec6dc18b318d0948fadf5833ecd75cb0f Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Sun, 26 Oct 2025 22:25:10 +0000 -Subject: [PATCH 1/2] vram: Skip listing devices when no platforms are found - -In a chroot-type test environment, tests/test-dump-plugin.sh failed -with: - - + nbdkit vram --dump-plugin - nbdkit: error: clGetPlatformIDs: error -1001 (unknown OpenCL error) - --1001 is the extended error CL_PLATFORM_NOT_FOUND_KHR ---- - plugins/vram/opencl-errors.h | 3 +++ - plugins/vram/vram.c | 7 +++++++ - 2 files changed, 10 insertions(+) - -diff --git a/plugins/vram/opencl-errors.h b/plugins/vram/opencl-errors.h -index b5d185fc65..dd6fba92d6 100644 ---- a/plugins/vram/opencl-errors.h -+++ b/plugins/vram/opencl-errors.h -@@ -101,6 +101,9 @@ opencl_errstr (cl_int err) - case_return_string(CL_INVALID_COMPILER_OPTIONS ); - case_return_string(CL_INVALID_LINKER_OPTIONS ); - case_return_string(CL_INVALID_DEVICE_PARTITION_COUNT ); -+ -+ /* Extended. */ -+ case_return_string(CL_PLATFORM_NOT_FOUND_KHR ); - default: return "unknown OpenCL error"; - } - } -diff --git a/plugins/vram/vram.c b/plugins/vram/vram.c -index 4b391e2202..9819f0dbe9 100644 ---- a/plugins/vram/vram.c -+++ b/plugins/vram/vram.c -@@ -41,6 +41,7 @@ - - #define CL_TARGET_OPENCL_VERSION 200 /* OpenCL >= 2.0 */ - #include <CL/cl.h> -+#include <CL/cl_ext.h> - - #define NBDKIT_API_VERSION 2 - #include <nbdkit-plugin.h> -@@ -126,6 +127,12 @@ get_all_devices (void) - /* Build the list of all devices from all platforms as a flat list. */ - what = "clGetPlatformIDs"; - r = clGetPlatformIDs (0, NULL, &num_platforms); -+ if (r == CL_PLATFORM_NOT_FOUND_KHR) { -+ /* OpenCL seems to return this when no platform is detected at -+ * all, so just return the empty list in this case. -+ */ -+ return; -+ } - if (r != CL_SUCCESS) goto err; - platform_ids = calloc (num_platforms, sizeof platform_ids[0]); - if (!platform_ids) { --- -2.50.1 - diff --git a/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch b/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch deleted file mode 100644 index dfc7e91..0000000 --- a/0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 01b8e557ce129b2f4677061ba04bbb5ff2a703eb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" <rjones@redhat.com> -Date: Mon, 27 Oct 2025 09:15:47 +0000 -Subject: [PATCH 2/2] linuxdisk: Fix parsing of last line of 'du' command - output - -A recent change to glibc breaks this code. Previously we could read -the lines of output from the 'du' command until getline(3) returned -EOF, and the 'line' buffer would contain the last line read. However -after this change, glibc now sets line[0] = '\0' in the EOF case, -breaking the last line of output that we wanted to parse. - -https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=33eff78c8b28adc4963987880e10d96761f2a167 - -We also previously didn't handle the unlikely case where 'du' produces -no output at all. Fix both problems here. ---- - plugins/linuxdisk/filesystem.c | 23 ++++++++++++++++++----- - 1 file changed, 18 insertions(+), 5 deletions(-) - -diff --git a/plugins/linuxdisk/filesystem.c b/plugins/linuxdisk/filesystem.c -index 3e4e2f3a5a..283af61a13 100644 ---- a/plugins/linuxdisk/filesystem.c -+++ b/plugins/linuxdisk/filesystem.c -@@ -148,7 +148,7 @@ create_filesystem (struct virtual_disk *disk) - static int64_t - estimate_size (void) - { -- CLEANUP_FREE char *command = NULL, *line = NULL; -+ CLEANUP_FREE char *command = NULL, *line = NULL, *lastline = NULL; - size_t len = 0; - FILE *fp; - int64_t ret; -@@ -177,8 +177,16 @@ estimate_size (void) - - /* Ignore everything up to the last line. */ - len = 0; -- while (getline (&line, &len, fp) != -1) -- /* empty */; -+ while (getline (&line, &len, fp) != -1) { -+ nbdkit_debug ("du: %s", line); -+ free (lastline); -+ lastline = strndup (line, len); -+ if (lastline == NULL) { -+ nbdkit_error ("strndup: %m"); -+ pclose (fp); -+ return -1; -+ } -+ } - if (ferror (fp)) { - nbdkit_error ("getline failed: %m"); - pclose (fp); -@@ -193,9 +201,14 @@ estimate_size (void) - if (exit_status_to_nbd_error (r, "pclose: du") == -1) - return -1; - -+ if (lastline == NULL) { -+ nbdkit_error ("no output from du command"); -+ return -1; -+ } -+ - /* Parse the last line. */ -- if (sscanf (line, "%" SCNi64, &ret) != 1 || ret < 0) { -- nbdkit_error ("could not parse last line of output: %s", line); -+ if (sscanf (lastline, "%" SCNi64, &ret) != 1 || ret < 0) { -+ nbdkit_error ("could not parse last line from du command: %s", lastline); - return -1; - } - --- -2.50.1 - diff --git a/nbdkit.spec b/nbdkit.spec index f1d2a8b..71bbb8d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.12 +Version: 1.45.13 Release: 1%{?dist} Summary: NBD server @@ -86,11 +86,6 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc -# Fix vram tests. Upstream in > 1.45.12. -Patch: 0001-vram-Skip-listing-devices-when-no-platforms-are-foun.patch -# Fix for getline change in glibc-2.42.9000-7.fc44 -Patch: 0002-linuxdisk-Fix-parsing-of-last-line-of-du-command-out.patch - # For applying the patches: BuildRequires: git @@ -1587,6 +1582,9 @@ fi %changelog +* Fri Nov 14 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.13-1 +- New upstream version 1.45.13 + * Mon Oct 27 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.12-1 - New upstream version 1.45.12 - Add new nbdkit-vram-plugin diff --git a/sources b/sources index 5539189..02e335f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.12.tar.gz) = a28da3e24c333da5b4b22961078095b1d73bb6c219e7cfae783c301b68d8e755ce839fa15bff6354b44ff7227a91eae6a8e264f3e26b5caff8d27c68905ff01b -SHA512 (nbdkit-1.45.12.tar.gz.sig) = 93c497160f196b1a6144819742cee04b1fad663a148dbc4fd82efe73c9a1aabdcb9c01baa9ec84db17a392ae6cde468736750a878bba3e3c130507890f96a8e5 +SHA512 (nbdkit-1.45.13.tar.gz) = 8bd9331e0a5ba39bea8514d3b45ea25e4aa136cb2ebdbf98e244f5793aa4eb270df673731a2e1591c7f54607cd06c01661a336826be3cf78d8768086adb09015 +SHA512 (nbdkit-1.45.13.tar.gz.sig) = 6c676e7827c4c131d09dcc03789209c70c8f1fd486456417a0fef9e8e12f836c706ded9e057cf9ade28038d1c1cbaabceeb32e7e962ca741eeeab117c5db275d From 7cedd6c452cd0869088a9e99198ca20641912547 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Dec 2025 15:26:13 +0000 Subject: [PATCH 676/683] New upstream version 1.45.15 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 71bbb8d..85b1e60 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.13 +Version: 1.45.15 Release: 1%{?dist} Summary: NBD server @@ -1582,6 +1582,9 @@ fi %changelog +* Tue Dec 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.15-1 +- New upstream version 1.45.15 + * Fri Nov 14 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.13-1 - New upstream version 1.45.13 diff --git a/sources b/sources index 02e335f..8752eea 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.13.tar.gz) = 8bd9331e0a5ba39bea8514d3b45ea25e4aa136cb2ebdbf98e244f5793aa4eb270df673731a2e1591c7f54607cd06c01661a336826be3cf78d8768086adb09015 -SHA512 (nbdkit-1.45.13.tar.gz.sig) = 6c676e7827c4c131d09dcc03789209c70c8f1fd486456417a0fef9e8e12f836c706ded9e057cf9ade28038d1c1cbaabceeb32e7e962ca741eeeab117c5db275d +SHA512 (nbdkit-1.45.15.tar.gz) = ed640d0c5ca6c795b2a9dcbc76cb79015fd5e984ac08da3186f026e58de0a4ee8162e674b8898e860148acbecf9345f2781c1e5d1d46030d2e65cb30f210ea7c +SHA512 (nbdkit-1.45.15.tar.gz.sig) = f4603fa8420954cf9a833863d3f6ba588bdd44777ca60c343eefdaea770ae15dd1e2ac317a06edf3af9bf66936189cb2422540b7a304ca5ecfee7f1e2e2d8ea7 From ca952d821775a56f3024b6cc65d244cc271362ee Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Tue, 2 Dec 2025 16:24:00 +0000 Subject: [PATCH 677/683] Update spec file for new SECURITY.md & TODO.md files RPM build errors: File not found: /builddir/build/BUILD/nbdkit-1.45.15-build/BUILDROOT/usr/share/doc/nbdkit-devel/SECURITY File not found: /builddir/build/BUILD/nbdkit-1.45.15-build/BUILDROOT/usr/share/doc/nbdkit-devel/TODO --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 85b1e60..0d3f0c6 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1504,7 +1504,7 @@ fi %files devel -%doc BENCHMARKING OTHER_PLUGINS README.md SECURITY TODO +%doc BENCHMARKING OTHER_PLUGINS README.md SECURITY.md TODO.md %license LICENSE # Include the source of the example plugins in the documentation. %doc plugins/example*/*.c From b8fab60fd8fef09b6f1d099f1fda0b24a9967bd0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 15 Dec 2025 15:41:40 +0000 Subject: [PATCH 678/683] New upstream version 1.45.16 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 0d3f0c6..34b8286 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.15 +Version: 1.45.16 Release: 1%{?dist} Summary: NBD server @@ -1582,6 +1582,9 @@ fi %changelog +* Mon Dec 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.16-1 +- New upstream version 1.45.16 + * Tue Dec 02 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.15-1 - New upstream version 1.45.15 diff --git a/sources b/sources index 8752eea..26f911a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.15.tar.gz) = ed640d0c5ca6c795b2a9dcbc76cb79015fd5e984ac08da3186f026e58de0a4ee8162e674b8898e860148acbecf9345f2781c1e5d1d46030d2e65cb30f210ea7c -SHA512 (nbdkit-1.45.15.tar.gz.sig) = f4603fa8420954cf9a833863d3f6ba588bdd44777ca60c343eefdaea770ae15dd1e2ac317a06edf3af9bf66936189cb2422540b7a304ca5ecfee7f1e2e2d8ea7 +SHA512 (nbdkit-1.45.16.tar.gz) = 6922f0cb174d2ddbc6c1cf6f9e90361d04126a4f8afa99a5b0b665a48778efb869f358bf2cb03f674d81228e8253d652b3cb4e9cc52016a83ff9c1192becf5ef +SHA512 (nbdkit-1.45.16.tar.gz.sig) = b2d7bb974f95dd5903c971721e9812034859430c13dda44dcd95370768bfcce09c04c4f50600b6c787ef0cee7c074b1502053c434bd4a61557a42635110d1887 From 5dec8362f09cef6d7d6c577708b0f8c0a3e4f663 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Thu, 18 Dec 2025 08:59:47 +0000 Subject: [PATCH 679/683] New upstream version 1.45.17 --- nbdkit.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 34b8286..c0ec44d 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -54,7 +54,7 @@ %global source_directory 1.45-development Name: nbdkit -Version: 1.45.16 +Version: 1.45.17 Release: 1%{?dist} Summary: NBD server @@ -1582,6 +1582,9 @@ fi %changelog +* Thu Dec 18 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.17-1 +- New upstream version 1.45.17 + * Mon Dec 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.16-1 - New upstream version 1.45.16 diff --git a/sources b/sources index 26f911a..a6e9f90 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.16.tar.gz) = 6922f0cb174d2ddbc6c1cf6f9e90361d04126a4f8afa99a5b0b665a48778efb869f358bf2cb03f674d81228e8253d652b3cb4e9cc52016a83ff9c1192becf5ef -SHA512 (nbdkit-1.45.16.tar.gz.sig) = b2d7bb974f95dd5903c971721e9812034859430c13dda44dcd95370768bfcce09c04c4f50600b6c787ef0cee7c074b1502053c434bd4a61557a42635110d1887 +SHA512 (nbdkit-1.45.17.tar.gz) = 7d3fa31ee47b569ec1fee260921bdd5db1da327610c4ea5a2c3bd7450765084cdcdbc40d628c06b287b13ab21e76f7057a0e75055000282e51423529c440813a +SHA512 (nbdkit-1.45.17.tar.gz.sig) = ce24e28481bb436371e6b51330cb72d96e895200ae49b8e2b0536791b7bbcf928fbd781481dd9eedac0c659f3f3a0c6dbece3e6599f8e6a3eae49c30a00e1146 From 303a7303299b438d9085fe6c55d38bf0d203eb33 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Sat, 20 Dec 2025 14:29:55 +0000 Subject: [PATCH 680/683] New upstream stable version 1.46.0 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index c0ec44d..ad4bade 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.45-development +%global source_directory 1.46-stable Name: nbdkit -Version: 1.45.17 +Version: 1.46.0 Release: 1%{?dist} Summary: NBD server @@ -1582,6 +1582,9 @@ fi %changelog +* Sat Dec 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.46.0-1 +- New upstream stable version 1.46.0 + * Thu Dec 18 2025 Richard W.M. Jones <rjones@redhat.com> - 1.45.17-1 - New upstream version 1.45.17 diff --git a/sources b/sources index a6e9f90..4462799 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.45.17.tar.gz) = 7d3fa31ee47b569ec1fee260921bdd5db1da327610c4ea5a2c3bd7450765084cdcdbc40d628c06b287b13ab21e76f7057a0e75055000282e51423529c440813a -SHA512 (nbdkit-1.45.17.tar.gz.sig) = ce24e28481bb436371e6b51330cb72d96e895200ae49b8e2b0536791b7bbcf928fbd781481dd9eedac0c659f3f3a0c6dbece3e6599f8e6a3eae49c30a00e1146 +SHA512 (nbdkit-1.46.0.tar.gz) = ed225bdbd5c1e96b40ed0493f72173853cedafc9ada2296e6418021d4e3f2e6732dbbb764d24baf6263f4b07c3868b05207518d34667fe68c7324360fc3f5254 +SHA512 (nbdkit-1.46.0.tar.gz.sig) = 73c37deac7f18c7a55d401bf569aabc0a017872fc8ed3e4554f32a1007367d6db975c80cdfc3310c3c13ebaf0c506fcf0563360ee663784a653852ec6bde0e3a From 023449b10fc9497445818c44b7c82468722c378d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 2 Jan 2026 10:05:09 +0000 Subject: [PATCH 681/683] New upstream development version 1.47.1 --- nbdkit.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index ad4bade..68ec282 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -51,10 +51,10 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 1.46-stable +%global source_directory 1.47-development Name: nbdkit -Version: 1.46.0 +Version: 1.47.1 Release: 1%{?dist} Summary: NBD server @@ -1582,6 +1582,9 @@ fi %changelog +* Fri Jan 02 2026 Richard W.M. Jones <rjones@redhat.com> - 1.47.1-1 +- New upstream development version 1.47.1 + * Sat Dec 20 2025 Richard W.M. Jones <rjones@redhat.com> - 1.46.0-1 - New upstream stable version 1.46.0 diff --git a/sources b/sources index 4462799..f8f8acc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.46.0.tar.gz) = ed225bdbd5c1e96b40ed0493f72173853cedafc9ada2296e6418021d4e3f2e6732dbbb764d24baf6263f4b07c3868b05207518d34667fe68c7324360fc3f5254 -SHA512 (nbdkit-1.46.0.tar.gz.sig) = 73c37deac7f18c7a55d401bf569aabc0a017872fc8ed3e4554f32a1007367d6db975c80cdfc3310c3c13ebaf0c506fcf0563360ee663784a653852ec6bde0e3a +SHA512 (nbdkit-1.47.1.tar.gz) = 0c9d1da067bf1f7b6ba38dad33e86dff1fe893ff2e4a349dfcd6b259295fd00670e6af6c195e130d8a847520a78a730003315e60afda8eb94758e2195bd1a775 +SHA512 (nbdkit-1.47.1.tar.gz.sig) = 131d9bc191155186408ef7a577f9d2a2cc1fd1b53cbda755d19ff8de1341479a517fab79cc87f04a1bca5518046c24a8647cb4949d5c4d6fdca19ca968604c16 From 31764d38fbea6df335bff77f9accfc97780c8a95 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Fri, 2 Jan 2026 12:01:10 +0000 Subject: [PATCH 682/683] Add upstream fix for broken test --- ...-debug-hexdump.sh-Fix-test-that-plug.patch | 31 +++++++++++++++++++ nbdkit.spec | 3 ++ 2 files changed, 34 insertions(+) create mode 100644 0001-tests-test-ocaml-debug-hexdump.sh-Fix-test-that-plug.patch diff --git a/0001-tests-test-ocaml-debug-hexdump.sh-Fix-test-that-plug.patch b/0001-tests-test-ocaml-debug-hexdump.sh-Fix-test-that-plug.patch new file mode 100644 index 0000000..ab06e22 --- /dev/null +++ b/0001-tests-test-ocaml-debug-hexdump.sh-Fix-test-that-plug.patch @@ -0,0 +1,31 @@ +From 4076ff58512ee98928b1bdb13274466b175e1a97 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Fri, 2 Jan 2026 11:59:11 +0000 +Subject: [PATCH] tests/test-ocaml-debug-hexdump.sh: Fix test that plugin was + built + +This is supposed to check that the test plugin was built and skip if +not. However because the 'requires' function call was missing, it +actually failed the test if not built. + +Fixes: commit ec3be5030656a9126abbb0bceeb5a1ecf6898c6a +--- + tests/test-ocaml-debug-hexdump.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-ocaml-debug-hexdump.sh b/tests/test-ocaml-debug-hexdump.sh +index 5cc71375..3954225e 100755 +--- a/tests/test-ocaml-debug-hexdump.sh ++++ b/tests/test-ocaml-debug-hexdump.sh +@@ -36,7 +36,7 @@ set -x + set -u + + plugin=$abs_top_srcdir/tests/test-ocaml-debug-hexdump-plugin.$SOEXT +-test -x "$plugin" ++requires test -x "$plugin" + + requires_run + requires_nbdsh_uri +-- +2.52.0 + diff --git a/nbdkit.spec b/nbdkit.spec index 68ec282..4639625 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -86,6 +86,9 @@ Source6: %{modulename}.te Source7: %{modulename}.if Source8: %{modulename}.fc +# Fix for broken test, upstream in nbdkit >= 1.47.2 +Patch: 0001-tests-test-ocaml-debug-hexdump.sh-Fix-test-that-plug.patch + # For applying the patches: BuildRequires: git From df7b23c694ef7fc148cb65fe2313fbeab0710f46 Mon Sep 17 00:00:00 2001 From: Jerry James <loganjerry@gmail.com> Date: Mon, 12 Jan 2026 15:58:37 -0700 Subject: [PATCH 683/683] Fix a changelog entry --- nbdkit.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbdkit.spec b/nbdkit.spec index 4639625..c306b50 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -1648,7 +1648,7 @@ fi - New upstream version 1.45.2 - New map filter. -* Fri Jul 11 2025 Jerry James <loganjerry@gmail.com> - 1.45.1-5 +* Fri Jul 11 2025 Jerry James <loganjerry@gmail.com> - 1.45.1-5 - Rebuild to fix OCaml dependencies * Wed Jul 09 2025 Jitka Plesnikova <jplesnik@redhat.com> - 1.45.1-4