From 19ae56f9aaf230e7e8d4f9f9d9ba1a4c23c3181d1ca2f666e497e29750690137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 25 Oct 2024 15:33:13 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main nbdkit revision 0d5f1f98ae7313732a7cc8cac810883b --- .gitattributes | 23 + _service | 18 + _servicedata | 4 + nbdkit-1.40.4.tar.xz | 3 + nbdkit.changes | 1144 ++++++++++++++++++++++++++++++++++++++++++ nbdkit.spec | 757 ++++++++++++++++++++++++++++ 6 files changed, 1949 insertions(+) create mode 100644 .gitattributes create mode 100644 _service create mode 100644 _servicedata create mode 100644 nbdkit-1.40.4.tar.xz create mode 100644 nbdkit.changes create mode 100644 nbdkit.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_service b/_service new file mode 100644 index 0000000..781d4f7 --- /dev/null +++ b/_service @@ -0,0 +1,18 @@ + + + nbdkit + v1.40.4 + git + disable + https://gitlab.com/nbdkit/nbdkit.git + @PARENT_TAG@ + [v]?([^\+]+)(.*) + \1 + enable + + + *.tar + xz + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..3fb05c5 --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://gitlab.com/nbdkit/nbdkit.git + 0d111a31d9dbc473b9eb901fefe07f0ad392c75a \ No newline at end of file diff --git a/nbdkit-1.40.4.tar.xz b/nbdkit-1.40.4.tar.xz new file mode 100644 index 0000000..ae74e0c --- /dev/null +++ b/nbdkit-1.40.4.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a4070045a1c4604b824f0a5cc24f392b3c5bf317ece830283792ea280e8059b +size 757704 diff --git a/nbdkit.changes b/nbdkit.changes new file mode 100644 index 0000000..9a29bec --- /dev/null +++ b/nbdkit.changes @@ -0,0 +1,1144 @@ +------------------------------------------------------------------- +Tue Oct 22 16:31:01 UTC 2024 - James Fehlig + +- Exclude tests when building for ix86 + +------------------------------------------------------------------- +Fri Oct 18 17:14:37 UTC 2024 - jfehlig@suse.com + +- Update to version 1.40.4: + * Version 1.40.4. + * ci: Update CI files + * docs/nbdkit-service.pod: Add KeepAlive and User/Group settings + * tests/test-ondemand.sh: Refine qemu exportname skips + * tests/test-ondemand.sh: Work around bug in qemu 9.1 exportname handling + * ondemand: Serialize the .open method + * ondemand: Delete the disk if creation fails + * ondemand, tmpdisk: Don't allow parameters containing '-' + * ondemand: Be less strict about filenames + * tests: bzip2, curl, ext2, file, gzip, memory, offset, xz: Don't leak 'data' returned by guestfs_cat + * Fix documented default value for xz-max-depth + * bzip2: Fix version where this filter first appeared + * filters/qcow2dec/qcow2dec.c: Fix format specifier in error message + * tests: old-plugins: Fix srcdir != builddir + * tests: Rearrange some filter tests in alphabetical order + * server: Clear conn->magic when freeing a connection + * jsc#PED-8910 + +------------------------------------------------------------------- +Thu Sep 19 19:19:43 UTC 2024 - jfehlig@suse.com + +- Update to version 1.40.3: + * Version 1.40.3. + * ip: Do late filtering in list_exports as well as open + * docs/nbdkit_shutdown.pod: Minor copyediting + * docs/nbdkit_error.pod: Typo 'thre' -> 'there' + * podwrapper: Check cross-references to C API pages + * docs: Fix cross-reference to nbdkit_stdio_safe(3) + * ocaml: Use thread-local key to register & unregister the thread + * ocaml: Reinitialize the OCaml runtime after fork + * tests: Refactor ocaml errorcodes plugin used in testing +- Move nbdkit-null-plugin to the nbdkit-server package + +------------------------------------------------------------------- +Tue Sep 03 17:55:21 UTC 2024 - jfehlig@suse.com + +- Update to version 1.40.2: + * Version 1.40.2. + * tests/dummy-vddk.c: Stop the background thread in dummy _Exit function + * vddk: Check create-size is aligned to VIXDISKLIB_SECTOR_SIZE + * vddk: Detect possible VDDK crash and warn + * docs: Refresh nbdkit-service(1) page +- Enable bzip2 filter + +------------------------------------------------------------------- +Mon Aug 05 17:34:23 UTC 2024 - jfehlig@suse.com + +- Update to version 1.40.1: + * Version 1.40.1. + * tests/test-ext2-exportname.sh: Ignore libnbd < 1.8 for this test + * server: Send the last error to the NBD client + * server: Take a thread-local copy of the last call to nbdkit_error + * server: Introduce threadlocal_{set,get}_last_error + * server: Rename threadlocal_{set,get}_error to .._errno + * server: log: Move preserve errno to log_verror function + * server/crypto.c: Fix fallback functions used when gnutls is unavailable + * Version 1.40.0. + * tests/test-tar-info-xz.sh: Check plugin and filters required + * README.md: Describe captive use of nbdkit as a key feature + * curl: Add CURLPROTO_GOPHERS to list + * tests: bzip2: Add disk.bz2 to CLEANFILES + * tests: bzip2: Don't keep recreating disk.bz2 + * curl: Enhance --dump-plugin output + * curl: Add --dump-plugin output + * docs: Copy-edit and fix typo in release notes for nbdkit 1.40 + * docs: Add outline release notes for nbdkit 1.40 + * ci: Drop Alma Linux 8 + * file: Add file_block_size & file_blkrotational to --dump-plugin + * Version 1.39.10. + * file: Rethink calculation of block device I/O size preferences + * file: Return minimum and preferred I/O size for block devices + * server: Add a note about asynch-signal unsafety + * ip: Fix version number where we started to deny unknown socket families + * Version 1.39.9. + * server: Add nbdkit_peer_tls_issuer_dn to read the CA DN + * spinner: Small clarification for diagram of separate-heads property + * vddk: Tested VDDK 8.0.3 + * scan: Use superscript instead of asterisk for footnote + * readahead, scan: Fix documentation referring to parallel thread model + * ip: Revise filter documentation + * ocaml, python: Implement bindings for nbdkit_peer_tls_dn + * Version 1.39.8. + * docs: Add nbdkit_peer_tls_dn.pod to EXTRA_DIST + * ip: Allow matching on the TLS Distinguished Name + * server: Add nbdkit_peer_tls_dn to read the TLS Distinguished Name + * ip: Move fetching peer_name into check_if_allowed + * ip: Move 'check_if_allowed' function closer to use + * ip: Remove implicit allow for non-IP/-Unix/-vsock sockets + * ip: Fix parsing of "security:" rule + * server/crypto.c: Check works before including it + * server: Use '(void)' instead of '()' for a few function definitions + * server/crypto.c: Fix spelling mistake in function name + * docs: tls: Remove incorrect assertion that nbdkit checks the client's CN + * build: Move to minimum gnutls >= 3.5.18 + * maint: Fix logic bug in previous commit + * tests: Fix CI on Fedora 40 + * tests: Require bzip2 on OpenSUSE + * bzip2: Fix mingw build + * ci: Pull in bzip2 development for CI + * xz: Add cross-reference to gzip filter. + * gzip, xz: Add cross-references to new nbdkit-bzip2-filter + * bzip2: Add cross-references to tar and xz filters + * bzip2: Fix extension in description + * Version 1.39.7. + * docs: Mention bzip2 in README.md + * New filter: bzip2 + * .gitignore: add .swp + * build: Fix sorting of 'evil' filter + * Revise README.md file + * .gitignore: Ignore various gcov files + * captive: Use $uri instead of $nbd consistently + * Version 1.39.6. + * tests/test-tls.sh: Use $uri instead of constructing the URI + * server: Set $tls_certificates and $tls_psk variables in --run command + * server/uri.c: Append tls-certificates or tls-psk-key parameter to $uri + * tests/test-tls.sh, tests/test-tls-psk.sh: Use captive nbdkit + * server/uri.c: Refactor URI scheme creation + * server/uri.c: Move URI debug statement into make_uri + * server/uri.c: Single return from function + * server/uri.c: Improve error messages + * server/uri.c: Use close_memstream instead of fclose + * server: Move URI code to a new file server/uri.c + * tests: Fix comment in tests + * tests/test-tls.sh: Skip on RHEL 8 + * tests: Rework TLS tests to use nbdinfo instead of qemu-img info + * tests: Test --print-uri + TLS + * server: Make the --print-uri option easier to machine parse + * docs/nbdkit-captive.pod: Refer to --print-uri section in main doc + * server: Add --print-uri option + * tests: Sort lines in list of tests + * server/main.c: Sort options into order + * tests: More debug output in test-blocksize-sharding.sh + * Version 1.39.5. + * tests: Add tests/test-gcs/google/api_core/__init__.py to EXTRA_DIST + * common/utils/device-size.c: Include + * plugins: Use new device_size function + * tests: Add and enhance some tests to cover device_size function + * common/utils: Add a function to find the size of a file or block device + * sh: Abstract the eval and sh plugins + * docs: Fix references to nbdkit-sh-plugin(3) + * cc, eval: Comma-separate SEE ALSO section of docs correctly + * ci: refresh with latest lcitool manifest + * ci: import lcitool project package list definitions + * podwrapper: nbd-server(1), nbd-client(8) are not local man pages + * tests/test-gcs: Skip tests if google.cloud.storage is installed + * tests/test-gcs: Add __init__.py to mark package + * gcs: Debug which google.cloud.storage module was loaded + * tests: Add further tests of bad plugin and filter names + * server: Reserve more characters from plugin/filter short names + * ci: refresh with latest 'lcitool manifest' + * tests/test-shebang-crlf.sh: Fix location of shebang-crlf.py + * Version 1.39.4. + * tests: Remove a Ruby test file + * tests: Add a regression test for DOS line endings in shebang plugins + * server: C-quote filenames before printing them + * server: Only print installation tip if it could be a package name + * server: Rationalize the parameters of failed_to_load_error + * tests: gcs: Add debugging to the fake google-cloud-storage module + * tests: Add a safe prepend function for path-like environment variables + * sh: Move examples to a subdirectory + * Remove nbdkit-ruby-plugin and Ruby language support completely + * python: Implement nbdkit.parse_delay + * docs: Cross-link nbdkit_parse_delay and other number parsing functions + * docs/nbdkit_debug.pod: Add semicolon after perl example + * docs: Add 'use nbdkit::*' to rust descriptions + * docs/nbdkit_debug.pod: Fix golang description + * Version 1.39.3. + * docs/nbdkit_parse_int.pod: Fix incorrect HISTORY section + * docs/nbdkit_nanosleep.pod: Mention nbdkit_parse_delay + * docs/nbdkit_parse_delay.pod: Fix typo and more examples + * spinning: Use nbdkit_parse_delay to parse seek times + * retry: Use nbdkit_parse_delay to parse retry-delay + * retry-request: Use nbdkit_parse_delay to parse retry-request-delay + * delay: Replace custom parser with nbdkit_parse_delay + * ocaml: Add binding for nbdkit_parse_delay + * server: Add new nbdkit_parse_delay(3) function + * docs: Move more utility functions to separate man pages + * docs/nbdkit-plugin.pod: Fix unlinked ref to nbdkit_stdio_safe(3) + * Version 1.39.2. + * docs: Split nbdkit_realpath(3) etc into separate manual page + * docs: Split nbdkit_stdio_safe(3) into separate manual page + * docs: Split nbdkit_peer_name(3) etc into separate manual page + * docs: Split nbdkit_shutdown(3), nbdkit_disconnect(3) into separate manual page + * docs: Split nbdkit_read_password(3) into separate manual page + * docs: Split nbdkit_parse_probability(3) into separate manual page + * docs: Split nbdkit_parse_bool(3) into separate manual page + * docs: Split nbdkit_error(3) etc into separate manual page + * docs: Split nbdkit_parse_int(3) etc into separate manual page + * docs: Split nbdkit_parse_size(3) into separate manual page + * docs: Prepare to split utility functions into separate manual pages + * docs: Sort lists of man pages into alphabetical-ish order + * podwrapper: Allow multi-entry, multi-line synopsis + * Version 1.39.1. + * filters: Add new spinning filter + * filters: Add new rotational filter + * file: Expose the rotational property of block devices + * file: Check for ioctl error in the normal way + * file: Group initialization of h->sector_size with code that sets it + * S3, gcs: Remove unnecessary can_extents callback + * S3, gcs: Remove unnecessary is_rotational callback + * Version 1.38.0. + * tests: Add test-blkio.sh to unconditional EXTRA_DIST rule + * Revert "valgrind: Add suppression for liblzma bug" + * docs: Add outline release notes for forthcoming 1.38 + * vddk: Move "Unknown error" information to the manual + * ocaml: Mention bigstring and bigstringaf libraries + * Version 1.37.13. + * ocaml: Implement zero-copy pread and pwrite + * ocaml Add better comments to the example plugin + * ocaml: Simplify pread operation + * ocaml: Define a struct handle to hold the OCaml handle + * ocaml: Add OCaml version to --dump-plugin output + * ocaml: Print callback name when an exception is printed + * ocaml: Combine all exception printing into a single macro + * tests: Test that OCaml example plugin works minimally + * ocaml: Add example of how to use debug flags from OCaml plugins + * ocaml: Try to fix cross-references in NBDKit(3) + * cc: Separate two examples in the synopsis + * Version 1.37.12. + * tests: luks: Skip valgrind + * wrapper: Make NBDKIT_VALGRIND=1 NBDKIT_GDB=1 work + * eval: Check that get_size method is provided + * tests: Add a test that a plugin doesn't crash if called without parameters + * lua, tcl: Error out if script parameter is not supplied + * python: Fix crash if script parameter is missing + * server: Explain what to do if plugin/filter loading fails + * perl: Fix crash if script parameter is missing + * Version 1.37.11. + * tests: Fix EXTRA_DIST + * rust: Fix the MSRV check during CI + * tests/test-python-error.sh: Remove nbdsh -n option + * python: Test the nbdkit.set_error function + * Rust: fix a clippy::clone_assign lint + * python: Small revisions to the nbdkit-python-plugin(3) man page + * S3: Note that new key passing features require nbdkit >= 1.38 + * S3: Use nbdkit.read_password for sensitive tokens + * python: Add a binding for nbdkit_read_password + * S3: Fix link to GCS plugin + * ci: cirrus: Use --break-system-packages with 'pip install' + * vddk: Document that VDDK 8.0.2+ is broken with RHEL 8 + * common/utils: Tidy up the documentation of vector. + * cache: Document cache-on-read=true for slow plugins + * Use vector_reserve_exactly in a few places + * common/utils: Make vector_reserve_page_aligned allocate exactly + * common/utils: Add vector_reserve_exactly function + * Version 1.37.10. + * valgrind: Add suppression for liblzma bug + * luks: Fix infinite loop on error path + * main: Add --no-structured-replies alias for --no-sr + * docs: Add example of exporting a variable in --run + * vddk: Move read-only example / explanation to NOTES section + * vddk: Expand the first example into something runnable + * vddk: Update VDDK support matrix again + * benchmark: fio needs "$uri" to be exported + * Version 1.37.9. + * tests: Only clean test-old-plugins-*.sh on distclean + * tests: Rename pycodestyle.sh to test-pycodestyle.sh + * rust: Add const {} around thread_local initializers + * rust: Raise MSRV to 1.59.0 + * rust: Split out clippy and documentation generation from tests + * rust: Run the test script with bash and add a license notice + * tests: Fix documentation and tests for new --no-mc alias + * server: Add --no-meta-contexts option + * common/protocol: Error out if generate-protostrings.sh fails + * example2, partitioning, split: Reject block devices + * configure: Check that bash is sufficiently new + * configure: Use consistent capitalization in --help output + * configure: python: Remove unnecessary quoting + * configure: perl: Improve message output in test + * configure: Past tense, Python 2 has now been deprecated + * configure: Move linuxdisk test next to other ext2 tests + * configure: Fix some comment headings + * configure: Move dlsym & dladdr tests together + * vddk: Tested VDDK up to 8.0.2 + * Version 1.37.8. + * podwrapper: Ignore check on older versions of Perl + * podwrapper: Allow = (POD directive) followed by bare URL + * zero: Point to various alternatives to this plugin + * podwrapper: Check for bare URLs and suggest replacement with L<> links + * podwrapper: Move long lines and cross-reference checks earlier + * docs: Replace some bare URLs with L<> + * gcs: Fix first nbdkit stable release that will contain this plugin + * gcs: Use L<> around links + * Version 1.37.7. + * gcs: Minor typographical revisions to the manual + * New GCS plugin + * Version 1.37.6. + * plugins/S3: Fix zero callback + * S3: Convert docstring to the triple double-quoted string form + * S3: Reorder code lines for improved clarity + * S3: Make tests to run on Windows (avoid using /dev/urandom) + * S3: Correct spelling + * Correct minimum block size for S3 plugin + * common/replacements/win32: Make windmc tool optional + * common/replacements/win32: Only build nbdkit-cat.mc derived files once + * tests: Fix tests to work with srcdir != builddir + * common/bitmaps: Fix tests when srcdir != builddir + * tests: Add some documentation to test-read-password-plugin.c + * Version 1.37.5. + * Update file nbdkit-fua-filter.pod + * ssh: Print the failed path in error message + * ci: Update to latest lcitool + * partition: Suggest alternate partition-sectorsize + * partition: Don't call nbdkit_error twice on error path + * Version 1.37.4. + * exportname: Fix markup for linking to other man pages + * file: Further rework documentation of dir= parameter + * file: Fix markup when referencing dir= option from dirfd= docs + * file: Rework documentation for dir= parameter + * configure: Fix initialization from incompatible pointer type + * Version 1.37.3. + * cdi: Mention qcow2dec filter for extracting qcow2 format images + * cdi: Use a quay.io image instead of docker:// + * cdi: Use docker-dir (instead of oci-dir) when saving pulled image + * New mailing list archives + * New mailing list email address + * server: Declare maximum supported plugin API version + * server: Print SOEXT ("so" or "dll") in nbdkit --dump-config output + * server: Small tidy up of globals + * golang: Fix linker on macOS + * server/internal.h: Simplify generated code used for dynamic handle checks + * protect: Small typo in documentation + * docs: Mention alternatives to using -r / --readonly + * Version 1.37.2. + * server: Add magic values to important structs + * server/threadlocal.c: Inline and simplify threadlocal_pop_context + * server/backend.c: Use calloc when creating context struct + * fuzzing: Document fuzzing cow filter + pattern plugin + * tests/test-readonly.sh: Fix test for RHEL 8 nbdinfo + * New filter: nbdkit-readonly-filter + * tests: Simplify by replacing qemu-io with nbdsh + * tests/test-pattern.sh: Fix quoting of heredoc + * pattern: Accurately update b & offset in loop + * floppy, iso, sparse-random, torrent: Set sensible block_size + * tests: Modify tests that depend on SPARSE_PAGE being 32768 + * data, memory: Advertise minimum, preferred and maximum block size + * common/allocators: Define a preferred read/write block size + * Version 1.37.1. + * python: Implement nbdkit.peer_{pid,uid,gid,security_context} + * tests/test-log-script-info.sh: Check /bin/sh is bash for this test + * python: Implement nbdkit.is_tls, nbdkit.stdio_safe and nbdkit.nanosleep + +------------------------------------------------------------------- +Thu Apr 18 20:11:38 UTC 2024 - jfehlig@suse.com + +- Update to version 1.36.5: + * Version 1.36.5. + * tests: Add test-blkio.sh to unconditional EXTRA_DIST rule + * Revert "valgrind: Add suppression for liblzma bug" + * vddk: Move "Unknown error" information to the manual + * ocaml Add better comments to the example plugin + * ocaml: Simplify pread operation + * ocaml: Define a struct handle to hold the OCaml handle + * ocaml: Add OCaml version to --dump-plugin output + * ocaml: Print callback name when an exception is printed + * ocaml: Combine all exception printing into a single macro + * ocaml: Try to fix cross-references in NBDKit(3) + * cc: Separate two examples in the synopsis + * tests: luks: Skip valgrind + * eval: Check that get_size method is provided + * lua, tcl: Error out if script parameter is not supplied + * python: Fix crash if script parameter is missing + * perl: Fix crash if script parameter is missing + * rust: Fix the MSRV check during CI + * Rust: fix a clippy::clone_assign lint + * ci: cirrus: Use --break-system-packages with 'pip install' + * vddk: Document that VDDK 8.0.2+ is broken with RHEL 8 + * Version 1.36.4. + * valgrind: Add suppression for liblzma bug + * luks: Fix infinite loop on error path + * docs: Add example of exporting a variable in --run + * vddk: Move read-only example / explanation to NOTES section + * vddk: Expand the first example into something runnable + * vddk: Update VDDK support matrix again + * benchmark: fio needs "$uri" to be exported + * tests: Only clean test-old-plugins-*.sh on distclean + * tests: Rename pycodestyle.sh to test-pycodestyle.sh + * rust: Add const {} around thread_local initializers + * rust: Raise MSRV to 1.59.0 + * rust: Split out clippy and documentation generation from tests + * rust: Run the test script with bash and add a license notice + * common/protocol: Error out if generate-protostrings.sh fails + * example2, partitioning, split: Reject block devices + * configure: Check that bash is sufficiently new + * configure: Use consistent capitalization in --help output + * configure: python: Remove unnecessary quoting + * configure: perl: Improve message output in test + * configure: Past tense, Python 2 has now been deprecated + * configure: Move linuxdisk test next to other ext2 tests + * configure: Fix some comment headings + * configure: Move dlsym & dladdr tests together + * vddk: Tested VDDK up to 8.0.2 + * podwrapper: Ignore check on older versions of Perl + * podwrapper: Allow = (POD directive) followed by bare URL + * zero: Point to various alternatives to this plugin + * podwrapper: Check for bare URLs and suggest replacement with L<> links + * podwrapper: Move long lines and cross-reference checks earlier + * docs: Replace some bare URLs with L<> + * plugins/S3: Fix zero callback + * S3: Convert docstring to the triple double-quoted string form + * S3: Reorder code lines for improved clarity + * S3: Make tests to run on Windows (avoid using /dev/urandom) + * S3: Correct spelling + * Correct minimum block size for S3 plugin + * common/replacements/win32: Make windmc tool optional + * common/replacements/win32: Only build nbdkit-cat.mc derived files once + * tests: Fix tests to work with srcdir != builddir + * common/bitmaps: Fix tests when srcdir != builddir + * tests: Add some documentation to test-read-password-plugin.c + * Version 1.36.3. + * Update file nbdkit-fua-filter.pod + * ssh: Print the failed path in error message + * ci: Update to latest lcitool + * partition: Suggest alternate partition-sectorsize + * partition: Don't call nbdkit_error twice on error path + * exportname: Fix markup for linking to other man pages + * file: Fix markup when referencing dir= option from dirfd= docs + * configure: Fix initialization from incompatible pointer type + * Version 1.36.2. + * cdi: Mention qcow2dec filter for extracting qcow2 format images + * cdi: Use a quay.io image instead of docker:// + * cdi: Use docker-dir (instead of oci-dir) when saving pulled image + * New mailing list archives + * New mailing list email address + * server: Declare maximum supported plugin API version + * server: Print SOEXT ("so" or "dll") in nbdkit --dump-config output + * server: Small tidy up of globals + * golang: Fix linker on macOS + * server/internal.h: Simplify generated code used for dynamic handle checks + * server: Add magic values to important structs + * server/threadlocal.c: Inline and simplify threadlocal_pop_context + * server/backend.c: Use calloc when creating context struct + * tests: Simplify by replacing qemu-io with nbdsh + * tests/test-pattern.sh: Fix quoting of heredoc + * pattern: Accurately update b & offset in loop + * tests/test-log-script-info.sh: Check /bin/sh is bash for this test + +------------------------------------------------------------------- +Wed Oct 25 19:34:49 UTC 2023 - jfehlig@suse.com + +- Update to version 1.36.1: + * Version 1.36.1. + * python: Document nbdkit.disconnect(force) helper function + * python: List helper functions in alphabetical order + * python: Clarify possible handle values returned by open() method + * tests: Fix incorrect comment in tests + * docs: Remove references to -U - when it is implicit + +------------------------------------------------------------------- +Fri Sep 29 17:40:05 UTC 2023 - jfehlig@suse.com + +- Update to version 1.36.0: + * Version 1.36.0. + * evil: Fix typo in man page + * tests: Rename test-curl-options.sh and add more tests + * docs: Finalize release notes for release tomorrow + * curl: Use new curl_multi_get_handles API to simplify code + * curl: Store pointer from curl easy handle to our struct curl_handle + * README: Recommend new syntax for ASAN_OPTIONS + * fuzzing/README: Remove advice to set ASAN_OPTIONS + * docs: Small tweaks to the release notes + * docs: Add outline release notes for forthcoming nbdkit 1.36 + * tests: Add some consistency checks of the tests themselves + * tests/test-evil-cosmic.sh: Use requires_nbdcopy + * tests/test-nozero.sh: Test uses nbdsh -u but does not declare requirement + * tests: Fix a couple more tests that are missing requires_run + * docs: Expand Network Block Device (for NBD) in title + +------------------------------------------------------------------- +Thu Oct 13 21:21:00 UTC 2022 - jfehlig@suse.com + +- Update to version 1.32.2: + * Version 1.32.2. + * file: Avoid leaking h->fd on an error path + * common/utils/exit-with-parent.c: Use nbdkit_shutdown instead of exit + * tests: Use GNU cut in tests + * tests: Use GNU stat in tests + * tests/test-vddk-real.sh: Remove requires stat + * tests: Add requires stat --version to a few more tests + * tests/test-python-thread-model.sh: Skip test on non-parallel platforms + * tests/test-retry-request-mirror.c: Skip this test if 'disk' was not built + * tests/test-ocaml-errorcodes.c: Skip this test on macOS + * Revert "tests/test-python-thread-model.sh: Skip test on non-parallel platforms" + * tests: nbd: Skip all nbd plugin tests on macOS + * tests/test-nozero.sh: Test requires GNU stat + * tests/test-layers.c: Fix test for platforms without pipe2 + * nbd: Ignore warnings about deprecated sem_* functions on macOS + * tests/test-layers.c: Don't link with exit-with-parent code. + * docs: Suggest a couple more packages to enhance macOS support + * tests: luks: Skip tests on macOS + * tests/test-memory-allocator-malloc-mlock.sh: Fix test requires + * tests: Fix more tests using truncate instead of $TRUNCATE + * tests/pki: Use GnuTLS certtool on macOS + * tests/test-python-thread-model.sh: Skip test on non-parallel platforms + * server: Further simplification of --exit-with-parent on macOS + * eval, sh: Better error message when we get EPIPE from script + * server: Simplify --exit-with-parent implementation for macOS + * server: Implement --exit-with-parent for macOS + * tests/test-exit-with-parent.c: Don't link with server code + * tests/test-exit-with-parent.c: Correct PIDs in debug messages + * tests/test-exit-with-parent.c: Fix bogus early exit from the test + * tests/test-exit-with-parent.c: Fix missing local variable initialization + * tests/test-exit-with-parent.c: Add a bunch of debugging to this test + * common: Move exit-with-parent code from include/ to utils/ + * tests/test-exit-with-parent.c: Include for kill(2) + * Version 1.32.1. + * docs: Add macOS support to 1.32 release notes + * tests: Skip some nbdkit-cc-plugin OCaml tests on macOS + * tests: Fix miscellaneous test requires lines for macOS. + * example4, S3: Use $(SED) instead of sed. + * tests: Prefer GNU sed if available in several tests + * tests/test-exitwhen*sh: Fix sleep command on macOS + * tests: Move definition of $TRUNCATE to functions.sh.in + * ondemand: Fix plugin and tests on macOS + * wrapper: Set DYLD_LIBRARY_PATH for dynamic library path on macOS + * docs: Further fix relative links in README.md + * docs: Fix relative links in README.md + * build: Document macOS support in the README file + * tests/test-exitwhen-pipe-closed.c: Skip this test on macOS + * tests/test-read-password-interactive.sh: Skip test on macOS + * cc: Ignore undefined symbols on macOS + * build: Check for truncate / gtruncate + * tests/test-blocksize.sh: Add requires qemu-io + * stats: Use -std=c++11 + * stats: Fix C++ syntax on clang 13 / macOS + * exitwhen: Fix some warnings on macOS + * exitwhen: Include for kill(2) + * file: Fix some warnings on macOS + * build: Disable linker script by default on macOS + * build: ./configure --disable-linker-script now disables all linker scripts + * server/public.c: Fix uid_t/gid_t bounds check on macOS + * server: vsock: Use fallback path for creating socket without SOCK_CLOEXEC + * common/utils: On macOS remove error about incomplete atomic CLOEXEC support + * rust: Add resolver feature + * server/sockets.c: Don't fail to start if ipv6.disable=1 + * server/sockets.c: Save errno from EADDINUSE error + * common/utils: Fix generated windows-errors.c line endings + * common/replacements/get_current_dir_name.c: Include for strlen + * build: Check for ranlib (AC_PROG_RANLIB) + * ci: Expire artifacts after 1 week + * server: Use ansi-colours.h header + * common/include: Move ANSI colours to separate library + * tests/make-pki.sh: Use Subject Alternative Name for server certificate + * docs: Suggest using Subject Alternative Name for server certificates + * Version 1.32.0. + * tests/test-tls.sh: Skip test if GnuTLS doesn't support verifying peers + * docs: Review nbdkit-plugin(3) page + * docs: Update authors list + * Version 1.31.15. + * docs: Add outline release notes for nbdkit 1.32 + * build: Document gmake instead of make on *BSD, macOS + * server: Fail early if --tls-verify-peer is used on non-supported platforms + * tests: Avoid bash namerefs, for RHEL 7 + * tests: Better quoting for cleanup_fn + * Version 1.31.14. + * tests: Fix TESTS line for root tests + * docs, tests: Fix client/server key mix-up and document + * tests: Add interop tests with nbd-client (the kernel client) + * tests/functions.sh.in: Copy requires_not and requires_root from libnbd + * checkwrite: Add working example using qemu-img convert + * tests: Hoist some EXTRA_DIST out of automake conditionals + * Version 1.31.13. + * checkwrite: Add an assertion that we checked the whole region + * tests: Add a regression test for bounds error in checkwrite filter + * checkwrite: Fix bounds error + * Version 1.31.12. + * configure: Document --with-* flags that require a parameter + * S3: Fix "E713 test for membership should be 'not in'" + * plugins/S3.py: correctly handle listing contents of empty buckets. + * server: Silence Coverity false positive + * server: Avoid Coverity warning on volatile variable + * multi-conn: Free memory on failure and unload + * floppy: Don't leak string along error path + * curl: Correctly check for errors when using getline + * cc: Use 'error' after it was assigned + * luks: Avoid memory leak on error path + * luks: Avoid potential overflow when computing key material offset and length + * luks: Check return values from malloc more carefully + * delay: Fix bounds check when parsing delay parameters + * Version 1.31.11. + * configure: Use printf to print $ISOPROG + * configure: Print the version of curl, libnbd and libssh + * configure: Make the 'feature' function print the dots + * tests/test-protect.c: Fix typo in previous commit + * tests/test-protect.c: Skip test if "disk" was not created + * common/include: Rename BUILD_BUG_ON_ZERO to something more meaningful + * common/include/test-array-size.c: Avoid Clang warning + * vddk: Demote another "phone home" error message to debug + * Use ARRAY_SIZE macro in various places in nbdkit + * common/include: Add ARRAY_SIZE macro + * Version 1.31.10. + * tests/test-parallel-sh.sh: Skip test under valgrind + debuginfod + * tests/test-parallel-sh.sh: Small cleanups + * tests/test-S3: Fix Python formatting + * server: Work around incorrect include in gnutls/socket.h + * server: Display kTLS setting in debug output + * exitwhen: Check nbdkit doesn't exit before the pipe is closed + * valgrind: Update comment about valgrind bug affecting OCaml + * ocaml: Add further valgrind suppression + * ocaml: Add valgrind suppression for OCaml 4.14 bug + * perl: Move GCC diagnostic ignored earlier + * docs/nbdkit-protocol.pod: block size support was added in 1.30 + * Version 1.31.9. + * s3: catch and handle network timeout exceptions. + * s3: added TRIM and ZERO support to S3 plugin. + * s3: group connection-serving related code into a class. + * s3: move configuration settings into a class. + * tests: Add dummy botocore.exceptions module for S3 tests + * exitwhen: Link to example of how to use exit-when-pipe-closed + * s3: Fix concurrency bug when writing non-aligned data. + * rate: Allow burstiness to be controlled + * rate: Miscellaneous enhancements to comments and debug messages + * tests: Add a regression test for LUKS zeroing crash + * ext2: Improve comments + * eval: Provide default for .can_cache + * eval: Always end scripts in newline + * tests: Add regression test for NBDKIT_EMULATE_CACHE fix + * server: Fix NBDKIT_CACHE_EMULATE + * server: Fix NBDKIT_ZERO_EMULATE from filters + * tests: Give sensible name to test sockets + * Version 1.31.8. + * linuxdisk: Add new subdir/.gitignore to EXTRA_DIST + * tests: Fix test-disk2data.sh use of $PYTHON + * blocksize: Test of aligned writes vs. RMW race + * blocksize: Avoid losing aligned writes to RMW race + * linuxdisk: Reduce size of test + * Change README to use markdown (fixed) + * Change README to use markdown + * multi-conn: Fix test with newer libnbd + * docs: Enhance podwrapper to detect trailing whitespace + * docs: Fix POD verbatim paragraphs + * docs: Remove trailing whitespace from POD file + * rust: Logically group example code + * docs: Fix whitespace to logically group C code examples together + * data: Small clarification to the manual + * Revert "ci: Try to force Rawhide to use the nodebug kernels" + * Version 1.31.7. + * ci: Try to force Rawhide to use the nodebug kernels + * scripts, vddk: Remove VDDK wrapper scripts + * vddk: advise user on obscure thumbprint mismatch error condition + * scan: Fix bound so we don't try to prefetch beyond end of disk + * S3: use mocked boto3 module when running unit tests + * scripts: Split VDDK open script so we can open ESXi or vCenter + * ssh: Don't reference readahead or scan filters from this plugin + * Version 1.31.6. + * scan: Small typographical fix in manual + * scan: Remove condition variable + * New filter: scan + * stats: Enable C++ warnings + * stats: Fix various warnings in the filter + * curl: Don't document curl plugin + readahead filter + * cache: Fix cross-reference nbdkit-readahead-filter + * todo: Remove S3 items + * configure: Fix incorrect comment about supported VDDK version + * Version 1.31.5. + * .gitignore: Ignore __pycache__ directory wherever it occurs + * Improve S3 unit tests + * S3 plugin: add support for accessing multiple objects + * Configure VS Code to wrap comments at the right column. + * maint: List stats under optional filters in configure output + * S3: Older boto3 didn't have head_object, fall back to get_object + * vddk: Demote another useless phone-home error message to debug + * nbd: Hide some state machine debugging behind a debug flag + * Add nbdkit.parse_size() Python function. + * Enable flake8 linting within VS Code. + * Don't retrieve entire object just to get its size. + * Remove pointless 'global' declarations. + * Use RuntimeError instead of Exception + * Drop pointless error check. + * Version 1.31.4. + * tests: luks: Reduce time taken to run these tests + * luks: Refactor the filter + * luks: Link with libcompat on Windows + * luks: Various fixes for Clang + * luks: Disable filter with old GnuTLS in Debian 10 + * Keep track of alignment bits for each block size. + * New filter: luks + * Version 1.31.3. + * build: Add VS code files to EXTRA_DIST + * Make length of block size histogram configurable. + * Avoid pointless copy of block size histogram map. + * Don't crash stats filter when running out of memory. + * Use unordered_map instead of map to track block size statistics. + * Add VS Code settings matching existing formatting. + * Track request block sizes in stats filter. + * tests: Print a warning if nbdkit does not start after 30 seconds + * file: Fix leaked file descriptor on error path + * eval: Fix memory leak on error path + * multi-conn: Fix memory leak on error path + * Version 1.31.2. + * docs: Document how to run nbdkit from inetd or xinetd + * pause: Delete control socket on server shutdown + * rust: Use a local filename for the test socket + * Update to nix 0.24.1 + * rust: Use correct char type for characters + * readahead: Fix test + * readahead: Rewrite this filter so it prefetches using .cache + * readahead: Simplify the test replacing use of sh plugin + * readahead: Simplify the test by inlining some files + * torrent: Don't attempt to rm -rf (null) on unload + * Version 1.31.1. + * ssh: Allow the remote file to be created + * readahead: Minor whitespace changes + * ssh: Move and document thread model declaration + * docs/nbdkit-filter.pod: Fix invalid use of E<> in verbatim section + +------------------------------------------------------------------- +Sun Jul 10 22:10:54 UTC 2022 - jfehlig@suse.com + +- Update to version 1.30.7: + * Version 1.30.7. + * configure: Use printf to print $ISOPROG + * configure: Print the version of curl, libnbd and libssh + * configure: Make the 'feature' function print the dots + * tests/test-protect.c: Fix typo in previous commit + * tests/test-protect.c: Skip test if "disk" was not created + * common/include: Rename BUILD_BUG_ON_ZERO to something more meaningful + * common/include/test-array-size.c: Avoid Clang warning + * vddk: Demote another "phone home" error message to debug + * Use ARRAY_SIZE macro in various places in nbdkit + * common/include: Add ARRAY_SIZE macro + * tests/test-parallel-sh.sh: Skip test under valgrind + debuginfod + * tests/test-parallel-sh.sh: Small cleanups + * server: Work around incorrect include in gnutls/socket.h + * server: Display kTLS setting in debug output + * exitwhen: Check nbdkit doesn't exit before the pipe is closed + * valgrind: Update comment about valgrind bug affecting OCaml + * ocaml: Add further valgrind suppression + * ocaml: Add valgrind suppression for OCaml 4.14 bug + * perl: Move GCC diagnostic ignored earlier + * docs/nbdkit-protocol.pod: block size support was added in 1.30 + * jsc#ECO-3633 +- Enable linuxdisk plugin + +------------------------------------------------------------------- +Fri Jul 08 18:08:16 UTC 2022 - jfehlig@suse.com + +- Update to version 1.30.6: + * Version 1.30.6. + * exitwhen: Link to example of how to use exit-when-pipe-closed + * rate: Miscellaneous enhancements to comments and debug messages + * ext2: Improve comments + * eval: Provide default for .can_cache + * eval: Always end scripts in newline + * tests: Add regression test for NBDKIT_EMULATE_CACHE fix + * server: Fix NBDKIT_CACHE_EMULATE + * server: Fix NBDKIT_ZERO_EMULATE from filters + * tests: Give sensible name to test sockets + * linuxdisk: Add new subdir/.gitignore to EXTRA_DIST + * tests: Fix test-disk2data.sh use of $PYTHON + * blocksize: Test of aligned writes vs. RMW race + * blocksize: Avoid losing aligned writes to RMW race + * linuxdisk: Reduce size of test + * multi-conn: Fix test with newer libnbd + * data: Small clarification to the manual + * vddk: advise user on obscure thumbprint mismatch error condition + * configure: Fix incorrect comment about supported VDDK version + * Version 1.30.5. + * .gitignore: Ignore __pycache__ directory wherever it occurs + * vddk: Demote another useless phone-home error message to debug + * nbd: Hide some state machine debugging behind a debug flag + * Remove pointless 'global' declarations. + * Use RuntimeError instead of Exception + * Drop pointless error check. + * tests: Print a warning if nbdkit does not start after 30 seconds + * file: Fix leaked file descriptor on error path + * eval: Fix memory leak on error path + * multi-conn: Fix memory leak on error path + * Version 1.30.4. + * pause: Delete control socket on server shutdown + * rust: Use a local filename for the test socket + * Update to nix 0.24.1 + * rust: Use correct char type for characters + * readahead: Simplify the test replacing use of sh plugin + * readahead: Simplify the test by inlining some files + * torrent: Don't attempt to rm -rf (null) on unload + * readahead: Minor whitespace changes + * ssh: Move and document thread model declaration + * docs/nbdkit-filter.pod: Fix invalid use of E<> in verbatim section + * Version 1.30.3. + * tests: ssh: Don't run unused sshd + * ocaml: Declare that we use caml_-namespaced symbols, for OCaml 4.14 + * tests/test-cache-max-size.sh: Fix tests in locales with different date format + * common: Add hexdigit.h containing common functions for handling hex + * data: Fix typo in comment + * tests: web-server: Avoid rare race in shutdown + * server, tests: Prefix both uses of perror ("accept") + * data: Check failure from some <(...) scripts + * curl: scripts: Multiple fixes + * python: Also plug leak on error case + * tests/test-protect-ranges.sh: Don't try to use port 10809 + * python: Avoid memory leak in .list_exports and .extents + * fuzzing: Recommend combining fuzzing with ASAN + * configure: Add --disable-linker-script flag + * configure: Disable linker script for server when using libfuzzer + * configure: Reorganise USE_LINKER_SCRIPT_FOR_SERVER conditional + * configure: Report --enable-libfuzzer flag in summary output + * Version 1.30.2. + * server: Improve error message for --dump-plugin when plugin name is missing + * docs: Use I<> to quote command line flag + * tests: Skip vsock tests unless the vsock_loopback module is loaded + * build: Fix GCC diagnostics for GCC 4.4 in RHEL 6 + * podwrapper: Don't add the =encoding header for RHEL 6-era POD + * podwrapper: Verify that all man pages are valid UTF-8 + * podwrapper: Add suggestion for debugging Perl scripts + * docs: Document how to write plugins/filters in C++ + * vddk: Don't use uninitialized values when computing preferred block size + * Update Nix to 0.23.0 + * Update Mockall to 0.11.0 + * fuzzing: Document alternate method for AFL++ using clang-LTO + * server: Export __afl_* symbols for American Fuzzy Lop + * tests: Fix some failing tests in RHEL / CentOS / AlmaLinux 8 + * tests: Generally prefer nbdinfo over qemu-img info + * tests: Remove unnecessary 'requires qemu-img --version' + * tests: Add regression test that nbdkit isn't linked to OpenSSL + * Version 1.30.1. + * ci: Add perl-dev back to Alpine + * ci: Regenerate CI files using latest libvirt-ci/lcitool + * ci/manifest.yml: Add PERL skip variables + * Use new string-vector and const-string-vector types + * common/utils: Add new string vector types + * common/utils/nbdkit-string.h: Rename header guards + * cc: Rename misnamed string_vector to params_vector + * ci: Rename centos-8 to almalinux-8 + * ci: Remove fedora-34 tests + * plugins/sh: Add ENOEXEC fallback for inline scripts + * tests/functions.sh.in: Add comment about enabling vsock in tests + * ci: Skip perl on clang targets + * ci/build.sh: Combine mingw cases + * ci: alpine: Include perl-dev package to build perl plugin + * data: Remove bash-ism from <(...) script + * docs, tests: Remove bash-ism from --run parameter + * ci: Temporarily remove check-valgrind, dist tests + * ci: Install 'dnf-command(config-manager)' first + * ci: Use almalinux-8 instead of centos-8 + * Add CI for GitLab + * tests: Check that /dev/loop-control is accessible when needed + * libssh: Check also for SSH_OPTIONS_DELAY + * test-sh-errors: Allow for more variation of error messages + * Fix libraries for mingw32 builds + * test-delay-shutdown: Do not assume 124 as timeout's exit code and rather probe for it + * test-exportname: Only check exportname.out contents if it exists + * tests: Explicitly run $(plugin) under sh in expect scripts + * test-swap: Only run with proper capability + * plugins/rust: Run more tests + * golang: Make sure used golang version supports modules + * Only use vsock if VMADDR_CID_ANY is defined + * Include sys/vsock.h only if it exists + * plugins/file: Include linux/fs.h only if it exists + * ocaml: Minor simplification of set_field function + * todo: Suggest new thread model numbering in API V3 + * Version 1.30.0. + * docs: Final release notes for 1.30 + * sh: Use new string type instead of reallocing return buffers + * common/utils: Add extensible string, based on vector + * todo: Drop item about minimum request size + * todo: Document possibility of extending .block_size in API v3 + * blocksize: Default internal block size based on plugin + * blocksize: Defer per-handle initialization to .prepare + * blocksize: Refactor to per-handle constraints + * vddk: Use nested MAX macros + * common/include: Fix MIN and MAX macros so they can be nested + * common/include: Change unique-name macros to use __COUNTER__ + * blocksize: Minor doc improvements + * windows: tests/test-foreground.sh: Skip this test + * windows: Skip some nbdkit-cow-filter tests + * windows: tests: Add requires_run for some tests + * windows: server/debug.c: Call close_memstream instead of fclose + * windows: server/debug.c: Don't crash if open_memstream fails + * windows: Add replacement posix_memalign function + * windows: Add replacement for sysconf() POSIX function + * swab: Implement .block_size callback + * windows: blocksize-policy: Don't use reserved word ERROR + * todo: Remove retry filter suggestion which was already implemented + * blocksize: Don't open-code is_power_of_2 + * log: Implement .block_size callback + * docs: Fix typo & line too long in nbdkit-release-notes-1.30.pod + * docs: Update release notes for nbdkit 1.30 + * blocksize: Export block size constraints + * cache, cow: Export block size constraints + * cc: Implement .block_size callback + * vddk: Export block size information for this plugin + * Version 1.29.16. + * blocksize-policy: Check the correct policy + * server/plugins.c: Simplify error handling of .block_size callback + * python: Implement .block_size callback + * ocaml: Implement .block_size callback + * nbd: In error messages, just display nbd_get_error() + * nbd: Implement .block_size callback + * New filter: nbdkit-blocksize-policy-filter + * nbd: Use lowercase in error message + * tests: Add a simple test for block size constraints + * eval, sh: Implement block_size method + * server: Add new plugin/filter .block_size callback + * tls-fallback: Enhance comments about required callbacks + * Version 1.29.15. + * vddk: Document our current thinking on VMware out of memory errors + * nbd: Opt in to libnbd pread_initialize speedup + * error: Tweak filter name for easier debugging + * zero: Fix doc typo + * plugins: python: Make threading model explicit + * plugins: python: Add error example + * common/allocators: Always align mlock buffer + * common/utils: Add vector_reserve_page_aligned + * tests: Use a larger buffer for mlock test + * common/allocators/malloc.c: Avoid calling munlock (NULL, ...) + * Rename top level directory bash -> bash-completion + * docs: Add preliminary outline release notes for 1.30 + * docs: Add link to nbdkit-release-notes-1.28 to main manual page + * Version 1.29.14. + * server/sockets: get rid of AI_ADDRCONFIG + * server/sockets: supply trailing newline for gai_strerror() format string + * tests: Fix VDDK tests + * vddk: Allow create-hwversion to be specified as a number + * vddk: Fix documentation of new create flag + * vddk: Implement VMDK creation + * Version 1.29.13. + * ocaml: Pass count parameter of pread as OCaml int + * ocaml: Use int64 as the OCaml type for counts + * ocaml: Convert offset values correctly in several callbacks + * common/replacements/poll.h: Fix redefinition of poll + * common/replacements: Use _get_osfhandle correctly + * info: Add info_address=yes if mode=address is supported + * valgrind: Fix suppressions for dlopen + * info, ip: Make this plugin and filter work without inet_ntop/inet_pton + * gzip: Don't try calling set_cloexec on Windows + * exportname: Use replacement open_memstream + * exitwhen: Remove some Windows warnings + * cow: Include assert.h and call abort instead of assert (false) + * split: Remove some unused variables when compiling on Windows + * server/sockets.c: Remove variable-length array in Windows-only code + * server, common, filters: Include "strndup.h" in places which use strndup + * server: Remove some dead code when compiling on Windows + * server: Use replacement open_memstream function + * common/include/unique-name.h: Rename UNIQUE_NAME macro + * server: Use ATTRIBUTE_FORMAT_PRINTF instead of __attribute__((printf)) + * include: Disable printf format warnings on platforms that don't support %m + * Version 1.29.12. + * ocaml: NBDKit.set_field should not be @@noalloc + * ocaml: Use magic_config_key in the example + * python: More precise Python parameter passing + * tests/test-python-plugin.py: Allow test to use large disks + * tests: python: Use Python unittest function descriptions consistently + * ocaml: Document the version string in the example + * plugins/python: Fix extents() count format string + * Version 1.29.11. + * tests: Add configure --disable-libguestfs-tests flag + * tests: Use mke2fs -d to create ext4 test image + * Version 1.29.10. + * windows: Link plugins/filters that use utils + pread/pwrite with libcompat + * windows: Use replacement pread and pwrite functions + * windows: Replace vector .size with .len in a few places + * file: Fix implementation of cache=none for writes + +------------------------------------------------------------------- +Fri Nov 05 08:27:15 UTC 2021 - rpm@fthiessen.de + +- Update to version 1.29.4: + * Remove deprecated nbdkit-streaming-plugin + * Added retry-request-filter, an alternative, more lightweight, + filter with different trade-offs for nbdkit-retry-filter. + * cc: Document how to create OCaml plugin scripts + * cc: Add binding for .cleanup + * docs: Document NBDKIT_VERSION_* macros + +------------------------------------------------------------------- +Wed Aug 25 23:03:26 UTC 2021 - jfehlig@suse.com + +- Update to version 1.27.8: + * boo#1189634 + * Version 1.27.8. + * data: Simplify some of the Python code in test cases + * data: Fix optimization of inlined lists + * data: Optimize slices of some constant expressions + * data: Add a test that expected optimizations are being performed + * data: Get rid of EXPR_EXPR + * data: New functions new_node/get_node with simpler usage + * vector: Add vector_duplicate function + * cow: Clarify documentation for new cow-block-size option + * docs: Fix title of nbdkit-client man page + * server: reset meta context replies on starttls + * Version 1.27.7. + * cow: Ship cow.h header + * Version 1.27.6. + * server: CVE-2021-3716 reset structured replies on starttls + * cow: Make the block size configurable + * vddk: Add stats about the amount of time spent in VDDK calls + * vddk: Replace DEBUG_CALL with bracketed VDDK_CALL_START/END macros + * cow: Remove #include which appears to be unused + * cow: Make cow_on_cache static + * maint: Mention online gpg keyring for security use + * data: Missed optimization: ( fill ) => fill + * data: Optimize strings with repeated characters into fills + * data: When possible, combine adjacent list elements + * common/utils: Fix off-by-one error in _remove + * tests/test-data-extents.sh: Remove some bogus tests of zero extents + * common/allocators/zstd.c: Handle zeroing unallocated space + * data: Optimize single element lists containing a single byte + * data: Remove redundant redefinition of APPEND_EXPR macro + * data: Use common EXPR_NULL + * data: Add a new EXPR_FILL expression type to optimize *N + * maint: Also ignore signature files + * Version 1.27.5. + * maint: Modernize configure.ac to silence autoreconf warnings + * maint: Update to latest ax_pthread.m4 + * maint: Default to probing valgrind at runtime + * tests/test-data-format.sh: Reenable valgrind + * common/allocators/malloc.c: Remove bogus kernel hints + * delay: Test delay-open and delay-close + * delay: Fix delay-close + * server: nanosleep: Change error for early end of sleep + * server: Return from nbdkit_nanosleep early if the socket closes + * delay: Improve parsing and representation of delay times + * tests/test-debug-flags.sh: Don't use port 10809 during test + * cow: Add some more debugging especially for blk_read_multiple and cow-on-read + * tests: Check that cache-min-block-size works properly + * data: Improve the example with a diagram + * example4: Do the parameter checking in config_complete + * example4: Use get_ready instead of config_complete to allocate the disk + * cache: Move plugin-args in synopsis earlier + * cow: General revision and updates to the manual + * server: Make debug messages atomic + * Version 1.27.4. + * cache, cow: Fix data corruption in zero and trim on unaligned tail + * docs: Grammar fix for .cache + * python: Implement .cleanup() method + * cache, cow: More links to related filters in documentation + * delay: Add delay-open and delay-close + * cow: Implement cow-on-read + * tests: cache: Test cache-on-read option really caches + * tests: cache: Simplify test-cache-on-read.sh + * cow: Improve documentation of cow-on-cache option + * docs: Improve documentation of .can_cache and .cache methods + * cache: Fix misleading LRU diagram and comment + * cache: Refactor printing state into new function + * cache, cow: Use a 64K block size by default + * cache: Add cache-min-block-size parameter + * cache: Implement cache-on-read=/PATH + * cache, cow: Use full pread/pwrite operations + * cache, cow: Add blk_read_multiple function + * cache: Reduce verbosity of debugging + * cow: Fix assert failure in cow_extents + * Version 1.27.3. + * ocaml: Change thread model in examples to SERIALIZE_ALL_REQUESTS + * docs: Correct --selinux-label example + * data: Include byte-swapping.h + * wrapper: Use vector type instead of realloc + * ocaml: Fix comment on plugin .pread field + * ocaml: tests: Add .after_fork method to test plugin + * ocaml: Add binding for new .cleanup method + * ocaml: Rearrange the callbacks + * ocaml: tests: Actually call .get_ready method in test plugin + * tests: Add a better test of real VDDK + * vddk: Implement can_flush and can_fua + * Version 1.27.2. + * ocaml: Fix valgrinding by only ignoring caml_stat_alloc* functions + * ocaml: Call caml_shutdown when unloading the plugin + * cow: Reduce verbosity of debugging + * docs: Remove nbd-client '-b 512' flag from documentation + * docs: Use I<> consistently around command line options + * ssh: Drop srv_pubkey entirely + * plugins/ssh: remove pointless code fetching SHA1 fingerprint + * floppy: Note that nbdkit-cow-filter can be used + * floppy: support FAT FSes with unused space. + * python: Remove documentation related to Python 2 and nbdkit <= 1.14 + * data: Add le: and be: prefixes for little and big endian words + * data: Rearrange cases in switch statement + * maint: Untabify configure.ac + * Version 1.27.1. + * tests/test-cow-extents1.sh: Fix this for new output of nbdinfo + * tests: Skip tests/test-file-readonly.sh if run as root + * wrapper: Unset DEBUGINFOD_URLS + * tests: Test --run + --tls + $uri + $tls + * server: Add $tls shell variable for captive nbdkit + * server: When --tls is used, set captive $uri variable to nbds://... + +------------------------------------------------------------------- +Thu Jul 01 12:24:31 UTC 2021 - rpm@fthiessen.de + +- Update to version 1.27.1: + * server: Add $tls shell variable for captive nbdkit + * server: When --tls is used, set captive $uri variable to nbds://... + * valgrind: Add OCaml suppression + +------------------------------------------------------------------- +Wed Jun 09 19:46:17 UTC 2021 - jfehlig@suse.com + +- Update to version 1.26.0: + * Version 1.26.0. + * docs: Get release notes ready for a release today + * valgrind: Add OCaml suppression + * docs: List release notes in reverse order + * tests/test-ondemand-list.sh: Skip test on OpenBSD + * server: Use struct sockpeercred instead of ucred on OpenBSD + * tests: Don't break if libssh is installed but not ssh-keygen + * docs: Add outline release notes for 1.26 release + * Version 1.25.9. + * tests/test-debug-flags.sh: Add a positive test of debug flags + +------------------------------------------------------------------- +Sat May 08 15:25:09 UTC 2021 - rpm@fthiessen.de + +- Update to version 1.25.7: + * tar: Add comment about why we use LANG=C + * python: Split up the large python.c file into smaller + compilation units + * Some documentation and test fixes +- Use correct upstream and not github mirror + +------------------------------------------------------------------- +Mon Apr 26 17:50:56 UTC 2021 - rpm@fthiessen.de + +- Update to version 1.25.6: + * Improved documentation. + * iso: Pick xorriso in preference to genisoimage or mkisofs. + * vddk: VDDK 6.7 was the first version supporting extents. + * Removed deprecated tar plugin +- Added multi-conn filter + +------------------------------------------------------------------- +Sun Mar 14 18:03:50 UTC 2021 - Jan Engelhardt + +- Drop ExclusiveArch. This builds on i586 just fine. +- Trim bias and redundant information from descriptions, + and adjust descriptions for grammar. + +------------------------------------------------------------------- +Fri Feb 26 00:19:44 UTC 2021 - James Fehlig + +- spec: Fix license + +------------------------------------------------------------------- +Wed Jan 27 03:57:21 UTC 2021 - James Fehlig + +- Initial packaging of nbdkit 1.25.1 diff --git a/nbdkit.spec b/nbdkit.spec new file mode 100644 index 0000000..ee59268 --- /dev/null +++ b/nbdkit.spec @@ -0,0 +1,757 @@ +# +# spec file for package nbdkit +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_with nbdkit_libguestfs + +# 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 x86_64 +%global broken_test_arches %{arm} aarch64 %{ix86} + +Name: nbdkit +Version: 1.40.4 +Release: 0 +Summary: Network Block Device server +License: BSD-3-Clause +URL: https://gitlab.com/nbdkit/nbdkit +Source0: %{name}-%{version}.tar.xz + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: e2fsprogs +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: jq +BuildRequires: libtool +BuildRequires: openssh +BuildRequires: pkg-config +BuildRequires: qemu-tools +BuildRequires: socat +BuildRequires: xorriso +BuildRequires: perl(Pod::Man) +BuildRequires: perl(Pod::Simple) +BuildRequires: pkgconfig(bash-completion) +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(gnutls) >= 3.3.0 +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libnbd) >= 1.3.11 +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(libssh) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(python3) +BuildRequires: pkgconfig(zlib) >= 1.2.3.5 +%if %{with nbdkit_libguestfs} +BuildRequires: guestfs-tools +BuildRequires: pkgconfig(libguestfs) +%endif + +# nbdkit is a metapackage pulling the server and a useful subset +# of the plugins and filters. +Requires: nbdkit-basic-filters = %{version}-%{release} +Requires: nbdkit-basic-plugins = %{version}-%{release} +Requires: nbdkit-server = %{version}-%{release} + +%description +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. + +The key features are: + +* Multithreaded NBD server written in C. + +* Minimal dependencies for the basic server. + +* Documented plugin API with a stable ABI guarantee. + Lets you to export "unconventional" block devices. + +* You can write plugins in C or many other languages. + +* Filters can be stacked in front of plugins to transform the output. + +'%{name}' is a meta-package which pulls in the core server and a +subset of plugins and filters with minimal dependencies. + +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: Network Block Device server + +%description server +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 +Summary: Basic plugins for %{name} +Requires: %{name}-server = %{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}-ones-plugin = %{version}-%{release} +Provides: %{name}-partitioning-plugin = %{version}-%{release} +Provides: %{name}-pattern-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} + +%description basic-plugins +This package contains plugins for %{name} which depend on a handful of +C libraries: glibc, gnutls, libzstd. Other plugins for nbdkit with +more complex dependencies are packaged separately. + +nbdkit-data-plugin Serves small amounts of data from the command line. + +nbdkit-eval-plugin Writes a shell script plugin on the command line. + +nbdkit-file-plugin The normal file plugin for serving files. + +nbdkit-floppy-plugin Creates a virtual floppy disk from a directory. + +nbdkit-full-plugin A virtual disk that returns ENOSPC errors. + +nbdkit-info-plugin Serves client and server information. + +nbdkit-memory-plugin A virtual memory plugin. + +nbdkit-ondemand-plugin Creates filesystems on demand. + +nbdkit-ones-plugin Fill disk with repeated 0xff or other bytes. + +nbdkit-pattern-plugin Fixed test pattern. + +nbdkit-partitioning-plugin Creates virtual disks from partitions. + +nbdkit-random-plugin Random content plugin for testing. + +nbdkit-sh-plugin Writes plugins as shell scripts or executables. + +nbdkit-sparse-random-plugin Makes sparse random disks. + +nbdkit-split-plugin Concatenates one or more files. + +nbdkit-zero-plugin Zero-length plugin for testing. + +%package example-plugins +Summary: Example plugins for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description example-plugins +This package contains example plugins for %{name}. + + + + + +# The plugins below have non-trivial dependencies are so are +# packaged separately. +%package cdi-plugin +Summary: Containerized Data Import plugin for %{name} +Requires: %{name}-server = %{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} +Requires: %{name}-server = %{version}-%{release} + +%description curl-plugin +This package contains cURL (HTTP/FTP) support for %{name}. + + + + +# 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 = %{version}-%{release} +Requires: %{name}-server = %{version}-%{release} +# 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}. + +%package guestfs-plugin +Summary: libguestfs plugin for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description guestfs-plugin +This package is a libguestfs plugin for %{name}. + +%package linuxdisk-plugin +Summary: Virtual Linux disk plugin for %{name} +Requires: %{name}-server = %{version}-%{release} +# for mke2fs +Requires: e2fsprogs + +%description linuxdisk-plugin +This package is a virtual Linux disk plugin for %{name}. + +%package nbd-plugin +Summary: NBD proxy / forward plugin for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description nbd-plugin +This package lets you forward NBD connections from %{name} +to another NBD server. + +%package python-plugin +Summary: Python 3 plugin for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description python-plugin +This package lets you write Python 3 plugins for %{name}. + +%package ssh-plugin +Summary: SSH plugin for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description ssh-plugin +This package contains SSH support for %{name}. + +%package tmpdisk-plugin +Summary: Remote temporary filesystem disk plugin for %{name} +Requires: %{name}-server = %{version}-%{release} +# For mkfs and mke2fs (defaults). +Requires: e2fsprogs +Requires: util-linux +# For other filesystems. +Suggests: xfsprogs + +%description tmpdisk-plugin +This package is a remote temporary filesystem disk plugin for %{name}. + +%package vddk-plugin +Summary: VMware VDDK plugin for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description vddk-plugin +This package is a plugin for %{name} which connects to +VMware VDDK for accessing VMware disks and servers. + +%package basic-filters +Summary: Basic filters for %{name} +Requires: %{name}-server = %{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}-evil-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}-luks-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}-scan-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 +C libraries: glibc, gnutls, zlib, and zstd. Other filters for nbdkit +with more complex dependencies are packaged separately. + +nbdkit-blocksize-filter Adjusts 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 Caches extents. + +nbdkit-checkwrite-filter Checks 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. + +nbdkit-delay-filter Injects read and write delays. + +nbdkit-error-filter Injects errors. + +nbdkit-evil-filter Add random data corruption to reads. + +nbdkit-exitlast-filter Exits on last client connection. + +nbdkit-exitwhen-filter Exits gracefully when an event occurs. + +nbdkit-exportname-filter Adjusts export names between client and plugin. + +nbdkit-extentlist-filter Places extent list over a plugin. + +nbdkit-fua-filter Modifies flush behaviour in plugins. + +nbdkit-gzip-filter Decompress a .gz file. + +nbdkit-ip-filter Filters clients by IP address. + +nbdkit-limit-filter Limits the number of clients that can connect concurrently. + +nbdkit-log-filter Logs all transactions to a file. + +nbdkit-luks-filter Read and write LUKS-encrypted disks. + +nbdkit-multi-conn-filter Modifies the way multiple clients can connect to the same export simultaneously. + +nbdkit-nocache-filter Disables cache requests in the underlying plugin. + +nbdkit-noextents-filter Disables extents in the underlying plugin. + +nbdkit-nofilter-filter Passthrough filter. + +nbdkit-noparallel-filter Serializes requests to the underlying plugin. + +nbdkit-nozero-filter Adjusts handling of zero requests by plugins. + +nbdkit-offset-filter Serves an offset and range. + +nbdkit-partition-filter Serves a single partition. + +nbdkit-pause-filter Pauses NBD requests. + +nbdkit-protect-filter Write-protect parts of a plugin. + +nbdkit-rate-filter Limits bandwidth by connection or server. + +nbdkit-readahead-filter Prefetches data when reading sequentially. + +nbdkit-readonly-filter Switch a plugin between read-only and writable. + +nbdkit-retry-filter Reopens connection on error. + +nbdkit-retry-request-filter Retries single requests if they fail. + +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. + +nbdkit-truncate-filter Truncates, expands, rounds up or rounds down size. + +%package bzip2-filter +Summary: BZip2 filter for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description bzip2-filter +This package is a bzip2 filter for %{name}. + +%package stats-filter +Summary: Statistics filter for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description stats-filter +Display statistics about operations. + +%package tar-filter +Summary: Tar archive filter for %{name} +Requires: %{name}-server = %{version}-%{release} +Requires: tar + +%description tar-filter +This package is a tar archive filter for %{name}. + +%package xz-filter +Summary: XZ filter for %{name} +Requires: %{name}-server = %{version}-%{release} + +%description xz-filter +This package is the xz filter for %{name}. + +%package devel +Summary: Development files and documentation for %{name} +Requires: %{name}-server = %{version}-%{release} +Requires: pkgconfig + +%description devel +This package contains development files and documentation +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: %{name}-server = %{version}-%{release} +Requires: bash-completion >= 2.0 + +%description bash-completion +Install this package if you want intelligent bash tab-completion +for %{name}. + +%prep +%autosetup -p1 + +%build +autoreconf -fiv + +%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 + +# 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=$(realink -f %{__python3}) +export PATH=/usr/sbin:$PATH +%configure \ + --with-extra='%{name}-%{version}' \ + --disable-static \ + --disable-golang \ + --disable-rust \ + --disable-ocaml \ + --disable-lua \ + --disable-perl \ + --disable-ruby \ + --disable-tcl \ + --disable-torrent \ + --without-ext2 \ + --without-iso \ + --without-libvirt \ +%if %{with nbdkit_libguestfs} + --with-libguestfs \ +%else + --without-libguestfs \ +%endif + %{nil} + +# Verify that it picked the correct version of Python +# to avoid RHBZ#1404631 happening again silently. +grep '^PYTHON_VERSION = 3' Makefile + +%make_build + +%install +%make_install + +# Delete libtool crap. +find "%{buildroot}" -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 %{buildroot}/%{_mandir}/man3/nbdkit-rust-plugin.3* + +# Remove some plugins we cannot --disable. +for f in cc cdi torrent; do + rm -f %{buildroot}/%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so + rm -f %{buildroot}/%{_mandir}/man?/nbdkit-$f-plugin.* +done +rm -f %{buildroot}/%{_libdir}/%{name}/plugins/nbdkit-S3-plugin +rm -f %{buildroot}/%{_mandir}/man1/nbdkit-S3-plugin.1* +rm -f %{buildroot}/%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so +rm -f %{buildroot}/%{_mandir}/man1/nbdkit-qcow2dec-filter.1* + +%check +# exit 0 +%ifnarch %{broken_test_arches} +# tests/test-captive.sh is racy especially on s390x. We need to +# rethink this test upstream. +truncate -s 0 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 +%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 +export PATH=/usr/sbin:$PATH + +%make_build check || { + cat tests/test-suite.log + exit 1 + } +%endif + +%files +# metapackage so empty + +%files server +%doc README.md +%license LICENSE +%{_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* +%{_mandir}/man1/nbdkit-security.1* +%{_mandir}/man1/nbdkit-tls.1* + +%files basic-plugins +%doc README.md +%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 +%{_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 +%{_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-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* +%{_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* +%{_mandir}/man3/nbdkit-sh-plugin.3* +%{_mandir}/man1/nbdkit-sparse-random-plugin.1* +%{_mandir}/man1/nbdkit-split-plugin.1* +%{_mandir}/man1/nbdkit-zero-plugin.1* + +%files example-plugins +%{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so +%{_mandir}/man1/nbdkit-example*-plugin.1* + +%files curl-plugin +%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so +%{_mandir}/man1/nbdkit-curl-plugin.1* + +%files gcs-plugin +%{_libdir}/%{name}/plugins/nbdkit-gcs-plugin +%{_mandir}/man1/nbdkit-gcs-plugin.1* + +%if %{with nbdkit_libguestfs} +%files guestfs-plugin +%{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so +%{_mandir}/man1/nbdkit-guestfs-plugin.1* +%endif + +%files linuxdisk-plugin +%{_libdir}/%{name}/plugins/nbdkit-linuxdisk-plugin.so +%{_mandir}/man1/nbdkit-linuxdisk-plugin.1* + +%files nbd-plugin +%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so +%{_mandir}/man1/nbdkit-nbd-plugin.1* + +%files python-plugin +%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so +%{_mandir}/man3/nbdkit-python-plugin.3* + +%files ssh-plugin +%{_libdir}/%{name}/plugins/nbdkit-ssh-plugin.so +%{_mandir}/man1/nbdkit-ssh-plugin.1* + +%files tmpdisk-plugin +%{_libdir}/%{name}/plugins/nbdkit-tmpdisk-plugin.so +%{_mandir}/man1/nbdkit-tmpdisk-plugin.1* + +%ifarch x86_64 +%files vddk-plugin +%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so +%{_mandir}/man1/nbdkit-vddk-plugin.1* +%endif + +%files basic-filters +%{_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-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-evil-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 +%{_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 +%{_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 +%{_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 +%{_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-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 +%{_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-cow-filter.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* +%{_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* +%{_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* +%{_mandir}/man1/nbdkit-nofilter-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* +%{_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-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* + +%files bzip2-filter +%{_libdir}/%{name}/filters/nbdkit-bzip2-filter.so +%{_mandir}/man1/nbdkit-bzip2-filter.1* + +%files stats-filter +%{_libdir}/%{name}/filters/nbdkit-stats-filter.so +%{_mandir}/man1/nbdkit-stats-filter.1* + +%files tar-filter +%{_libdir}/%{name}/filters/nbdkit-tar-filter.so +%{_mandir}/man1/nbdkit-tar-filter.1* + +%files xz-filter +%{_libdir}/%{name}/filters/nbdkit-xz-filter.so +%{_mandir}/man1/nbdkit-xz-filter.1* + +%files devel +%{_includedir}/nbdkit-common.h +%{_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* +%{_mandir}/man3/nbdkit_*.3* +%{_mandir}/man1/nbdkit-release-notes-1.*.1* +%{_libdir}/pkgconfig/nbdkit.pc + +%files bash-completion +%{_datadir}/bash-completion + +%changelog