* Mon Jul 07 2025 carnold@suse.com
- Update to version 1.44.1:
* Version 1.44.1.
* server: Fix .zero fallback path
* Version 1.44.0.
* tests: Use 'source ./functions.sh' and 'set -e/-x/-u' consistently
* tests/test-parallel-sh.sh: Enable shell debugging options in the test
* tests/test-vddk-real.sh: Enable nbdcopy --flush unconditionally
* tests: Use 'set -u' in tests
* tests: Modify some more tests to use 'define' function
* tests/test-info-base64.sh: Remove never-used 'info-base64.out' file
* tests/test-ddrescue-filter.sh: Various fixes and improvements
* docs: Update release notes for upcoming 1.44
* tests/test-exportname.sh: Refactor output file name
* tests: Use new 'define' function for some sh plugins
* tests/test-export-name.sh: Fix PID file name
* Fix typo and wording in release notes
* Version 1.43.13.
* tests: Skip more Python tests under valgrind
* vddk: Add support for VDDK 9.0.0.0
* vddk: Debug the output from QueryAllocatedBlocks
* vddk: Document unreliable extents information with local vmdk files
* docs: Create release notes for upcoming 1.44
* Revert "vddk: Add example of finding out how sparse VMDK files are"
* vddk: Add example of finding out how sparse VMDK files are
* tests/functions.sh.in: Fix typo in comment
* vddk: Update comment and broken link
* server: Print filter and plugin layers in debug mode
* common/utils: Add convenient string_append_format function
* Version 1.43.12.
* tests: Stop leaving left-over /tmp/nbdkitXXXXXX dirs
* tests/test-no-parameters.sh: Fix comment to reflect reality
* exitwhen: Print a debug message if we exit before starting up
* server: Try harder to clean up the random fifo dir (-U -)
* sh: Use utils make_temporary_directory function
* tests/test.c: Try harder to clean up nbdkit and temporary directory
* curl: Remove temporary file when the plugin is unloaded
* vddk: Fix VDDK version in error message and some comments
* vddk: stats: Collect elapsed time for ReadAsync and WriteAsync
* vddk: stats: Record the byte count of each QueryAllocatedBlocks call
* vddk: stats: Line up the columns correctly
* vddk: stats: Use "us" instead of (Unicode) "µs" for microseconds
* Version 1.43.11.
* maint: Better fix for clang
* blocksize-policy: Add blocksize-error-policy=strict-error
* server: Align the truncation of large block_status results
* blocksize-policy: Round extents to match minimum alignment
* extents: Handle unaligned tail in nbdkit_extents_aligned
* blocksize-policy: Document use with truncate filter
* data: Allow scaling suffixes on @decimal
* human-size: Add human_size_parse_substr
* blocksize-policy: Always flag unaligned block_status calls
* maint: Silence clang warning
* file: Add offset/count to error messages
* file: Add the filename (or equivalent) to error messages
* file: Save the filename or equivalent in the file handle
* Version 1.43.10.
* vddk: Pre-cache the extents for readonly connections
* vddk: Unconditionally test QueryAllocatedBlocks
* vddk: Move minimum version of VDDK to 6.7
* vddk: Cache the readonly flag from the .open call in the handle
* vddk: Display command type in command completed message
* include: Move some extent functions to nbdkit-common.h
* cacheextents: Mark this filter as deprecated
* blocksize-policy: Typo fix
* vddk: Debug length of extents when using -D vddk.extents=1
* ext2: Support concurrent connections
* Version 1.43.9.
* docs: Mention recent CVE fixes
* tests/test-spinning-mkfs.sh: Reduce the time taken to run this test
* ci: Update generated files
* ci: Remove fedora-40 and add fedora-42
* ci: Install python3-packaging for the CI tests
* New filter: openonce - open the underlying plugin once (per export)
* server: filters: Pass the underlying thread model to .thread_model
* filters: Remove a few unnecessary thread_model parallel definitions
* docs: filters: Change parameter name of filter .get_ready
* docs: Remove irrelevant verbiage about how plugins define thread models
* server: Move saved exportname from connection to context
* docs: Describe which filters are currently export safe
* cow: Destroy blk->lock on exit
* Version 1.43.8.
* cow: Replace singleton overlay with a mapping of export name -> overlay
* cow: Allow there to be multiple block overlays
* cow: Make cow_on_read private to this file
* vddk: Document export parameter
* vddk: Embolden "/" in file option
* vddk: Add export parameter
* todo: Remove references to libnfs and gluster
* Version 1.43.7.
* blocksize: Fix 32-bit overflow in .extents [CVE-2025-47712]
* server: Fix off-by-one for maximum block_status length [CVE-2025-47711]
* file: Change confusing comment
* file: Implement BLKDISCARD for trim
* file: Don't ignore most errors on trim
* file: Fix check for errno EOPNOTSUPP
* torrent: Implement --dump-plugin
* torrent: Implement cache (prefetch)
* Version 1.43.6.
* Update TODO with file plugin vs block device issues
* file: zero: Use BLKDISCARD method if may_trim is set
* file: zero: Document implicit order that we will try zeroing methods
* file: Rename h->can_zeroout to h->can_blkzeroout to reflect ioctl
* file: Fix do_fallocate debugging on Alpine
* file: Fix do_fallocate debugging on Alpine
* rust: Fix clippy uninlined-format-args warning
* file: Fix comment style in a few places
* file: Add more debugging when -D file.zero=1 is used
* file: Fix minor typo in debug message
* maint: Spelling fixes
* curl: add proxy-cafile and proxy-capath
* curl: Remove extra whitespace character
* tests: More robust check for nbdsh --base-allocation
* ci: Update to latest
* docs: Explain how debug flags work
* tests/test-layers.c: Replace realloc with nbdkit string type
* docs: Simplify and clarify the standard text about magic parameters
* docs: Use POD macro for all magic parameters
* tests/test-golang-fork-warning.sh: Don't use nbdinfo in test
* nfs: Set libnfs context to readonly if readonly=true
* Version 1.43.5.
* New plugin: NFS plugin using libnfs
* curl: Move AC_DEFINE upwards
* tests/test-pycodestyle.sh: Print paths relative to top source directory
* python: Remove unneeded global statements
* random, sparse-random: Link to nbdkit-pattern-plugin
* info: Add new method 'version'
* fua: Add an example of using flush-on-close=true
* fua: Small whitespace and comment changes
* fua: Use common code for flag logic
* fua: Add flush-on-close flag
* file: Improve documentation for cache=none
* file: Annotate a few local variables with 'const'
* server: Turn flush into a controlpath message
* Version 1.43.4.
* file: Document implicit assumption about eviction windows
* file: Reduce the size of the lock around write eviction
* file: Hard error if sync_file_range fails
* tests: Add more generic tests of file cache=none
* Version 1.43.3.
* tests: Add tests of file plugin cache=none
* file: If sync_file_range fails to start, don't add window to list
* file: Add debugging if sync_file_range / posix_fadvise fails
* Version 1.43.2.
* tests: Add test-golang-fork-warning.sh to EXTRA_DIST if !HAVE_GOLANG
* tests: Add test file to EXTRA_DIST even if !HAVE_LZIP
* common/protocol: Add a test of protocol string conversion functions
* common/protocol: Use thread-local storage for "unknown" string
* common/protocol/protostrings.h: Fix name_of_nbd_reply prototype
* protostrings: Use correct path to nbd-protocol.h
* docs: Add a note to --log entry about using nbdkit_error
* docs/nbdkit_error.pod: Describe interaction with --log option
* docs: Remove incorrect information about syslog
* docs: Simplify documentation for --log option
* server: Add --log=default
* server/log.c: Fix comment
* tests: Test that --log=/path appends to the log file
* golang: Issue a warning if we detect fork in golang plugin
* golang: Don't use '()' for no-argument C functions
* server: Add --log=/path option to log to a file
* server/log-fp.c: Flush the message after writing
* server: Make log-stderr function more generic
* build: Create sections in the configure file
* build: Add heading about basic build environment
* Version 1.43.1.
* build: Only use ANSI colour sequences if stdout is a terminal
* build: Embolden headings in configure output
* build: Mark libfuzzer as a developer only option
* build: Colourize features
* build: Default USDT probes to off on FreeBSD and macOS
* rust: Disable clippy warnings unless --enable-gcc-warnings is used
* server: Allow user statically defined tracing (USDT) probes
* Fri Jun 27 2025 carnold@suse.com
- Update to version 1.42.5: (jsc#PED-12706)
* vddk: Embolden "/" in file option
* cow: Make cow_on_read private to this file
* docs: Remove irrelevant verbiage about how plugins define
thread models
* docs: filters: Change parameter name of filter .get_ready
* filters: Remove a few unnecessary thread_model parallel
definitions
* tests/test-spinning-mkfs.sh: Reduce the time taken to run this
test
* docs: Mention recent CVE fixes
* vddk: Debug length of extents when using -D vddk.extents=1
* blocksize-policy: Typo fix
* cacheextents: Mark this filter as deprecated
* include: Move some extent functions to nbdkit-common.h
* vddk: Display command type in command completed message
* maint: Silence clang warning
* maint: Better fix for clang
* vddk: stats: Use "us" instead of (Unicode) "µs" for
microseconds
* vddk: stats: Line up the columns correctly
* curl: Remove temporary file when the plugin is unloaded
* tests/test.c: Try harder to clean up nbdkit and temporary
directory
* sh: Use utils make_temporary_directory function
* server: Try harder to clean up the random fifo dir (-U -)
* exitwhen: Print a debug message if we exit before starting up
* tests/test-no-parameters.sh: Fix comment to reflect reality
* tests: Stop leaving left-over /tmp/nbdkitXXXXXX dirs
* vddk: Update comment and broken link
* tests/functions.sh.in: Fix typo in comment
* vddk: Document unreliable extents information with local vmdk
files
* vddk: Debug the output from QueryAllocatedBlocks
* vddk: Add support for VDDK 9.0.0.0
* tests: Skip more Python tests under valgrind
* Tue May 13 2025 jfehlig@suse.com
- Update to version 1.42.3:
* Version 1.42.3.
* file: Change confusing comment
* file: Implement BLKDISCARD for trim
* file: Don't ignore most errors on trim
* file: Fix check for errno EOPNOTSUPP
* Update TODO with file plugin vs block device issues
* file: zero: Use BLKDISCARD method if may_trim is set
* file: zero: Document implicit order that we will try zeroing methods
* file: Rename h->can_zeroout to h->can_blkzeroout to reflect ioctl
* file: Fix do_fallocate debugging on Alpine
* rust: Fix clippy uninlined-format-args warning
* file: Fix comment style in a few places
* file: Add more debugging when -D file.zero=1 is used
* file: Fix minor typo in debug message
* curl: Remove extra whitespace character
* tests: More robust check for nbdsh --base-allocation
* ci: Update to latest
* docs: Explain how debug flags work
* tests/test-layers.c: Replace realloc with nbdkit string type
* docs: Simplify and clarify the standard text about magic parameters
* docs: Use POD macro for all magic parameters
* curl: Move AC_DEFINE upwards
* tests/test-pycodestyle.sh: Print paths relative to top source directory
* python: Remove unneeded global statements
* random, sparse-random: Link to nbdkit-pattern-plugin
* file: Improve documentation for cache=none
* file: Annotate a few local variables with 'const'
* server: Turn flush into a controlpath message
* file: Document implicit assumption about eviction windows
* file: Reduce the size of the lock around write eviction
* file: Hard error if sync_file_range fails
* file: If sync_file_range fails to start, don't add window to list
* file: Add debugging if sync_file_range / posix_fadvise fails
* blocksize: Fix 32-bit overflow in .extents [CVE-2025-47712]
bsc#1243108
* server: Fix off-by-one for maximum block_status length [CVE-2025-47711]
bsc#1243110
* Tue May 06 2025 jfehlig@suse.com
- Update to version 1.42.2:
* Version 1.42.2.
* tests: Add test file to EXTRA_DIST even if !HAVE_LZIP
* common/protocol: Add a test of protocol string conversion functions
* common/protocol: Use thread-local storage for "unknown" string
* common/protocol/protostrings.h: Fix name_of_nbd_reply prototype
* protostrings: Use correct path to nbd-protocol.h
* docs: Add a note to --log entry about using nbdkit_error
* docs/nbdkit_error.pod: Describe interaction with --log option
* docs: Remove incorrect information about syslog
* docs: Simplify documentation for --log option
* server/log.c: Fix comment
* golang: Don't use '()' for no-argument C functions
* build: Mark libfuzzer as a developer only option
* rust: Disable clippy warnings unless --enable-gcc-warnings is used
* ci: Move FreeBSD from Tcl 8.7 to 9.0
* ci: Drop alpine-319, add alpine-321
* Version 1.42.1.
* golang: Add a note about breakage when plugins run in the background
* README: New location for Wine AF_UNIX patches
* build: Disable -Wunused-command-line-argument on FreeBSD
* gitlab: make rust jobs honour the gitlab workflow rules
* docs/nbdkit-release-notes-1.42.pod: Add release date
* Version 1.42.0.
* golang: Support GCC 15
* ci: Update FreeBSD builds
* docs: Small revisions to the release notes
* server: Add vsock_option=yes|no to --dump-config output
* openbsd: curl: Include pthread.h
* server: Define timeout_option=yes|no in --dump-config output
* openbsd: server: Fix detection of --timeout option
* docs: Add outline release notes for nbdkit 1.42
* Revert "build: Disable -Wunused-command-line-argument on FreeBSD"
* ci: In rawhide-clang test, use clang++ to compile C++ (eg. filters/stats)
* build: Disable -Wunused-command-line-argument on FreeBSD
* rust: Fix "overindented" list in comment
* rust: Declare explicit extern "C" API
* curl: Fix configure-time checks for enums
* ci: Update to latest
* Version 1.41.9.
* vddk: do_extents: Avoid reading partial chunk beyond the end of the disk
* vddk: do_extents: Exit the function if we hit req_one condition
* vddk: do_extents: Mark some local variables const
* vddk: Cache the disk size in the handle
* vddk: Include <stdbool.h>
* curl: Remove unnecessary checks for CURL_SSLVERSION_MAX_* macros
* docs: Link to a couple of "alternate" plugins
* python: examples: Fix comment above API_VERSION constant
* TODO: Document problems with -p 0 option and picking a port
* tcl: Fix for Tcl 9.0 compatibility
* Version 1.41.8.
* build: Use 'tar ztf' instead of 'zcat | tar'
* ci: Dump out failed log files when the tests fail
* tests/test-ocaml-dump-plugin.sh: Temporarily skip test on FreeBSD
* ci/build.sh: Set os_id on macOS which lacks /etc/os-release
* ci: Don't skip tests on non-Linux
* tests: Check that C tests using requires/skip include "requires.h"
* tests: Add requires.[ch] as dependencies of test-ocaml
* tests: Skip all OCaml tests on macOS
* server: Turn synopsis.c into a standalone top level source file
* server: Add description of nbdkit to --help output
* tmpdisk: Miscellaneous documentation clean-ups
* tmpdisk: Link to nbdkit-ondemand-plugin in SEE ALSO section
* tests: Add 'requires_root' C function
* tests: Add 'requires_not_valgrind'
* tests: requires: Add unconditional skip_because helper function
* tests: Use 'requires.c' code from libnbd to test requirements
* tests: tmpdisk: Check for mkfs and truncate before running these tests
* tmpdisk: Use configure-time truncate command
* Version 1.41.7.
* ondemand: Miscellaneous documentation clean-ups
* ondemand: Implement share=true option
* tests/test-ondemand-locking.sh: Fail if second connection succeeds
* ondemand: Filter out correct invalid exports in .list_exports
* ondemand: Refactor exportname checking
* ocaml: Further updates to ocamldoc documentation
* ocaml: Split OCaml 5 includes (eg. -I +unix) from OCAML_PLUGIN_LIBRARIES
* ocaml: Improve ocamldoc documentation
* plugins/ocaml/NBDKit.ml: Sort bindings into order
* ocaml: Don't call abort if caml_c_thread_unregister fails
* ocaml: Use real addresses instead of (void*)<constant>s
* evil: Link to nbdkit_parse_probability(3)
* Version 1.41.6.
* plugins/rust: use CStr literals for static strings
* ci: Skip rust on platforms with rustc < 1.77.0
* ci: Update CI files
* docs/nbdkit-service.pod: Add KeepAlive and User/Group settings
* tests/test-ondemand.sh: Refine qemu exportname skips
* server: Add --keepalive option
* tests/test-ondemand.sh: Work around bug in qemu 9.1 exportname handling
* Version 1.41.5.
* 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
* lzip: Include <config.h>
* lzip: Fix memory leak
* lzip: Use vector
* tests: bzip2, curl, ext2, file, gzip, lzip, memory, offset, xz: Don't leak 'data' returned by guestfs_cat
* Add tests for the lzip filter
* Introduce lzip-filter
* Fix documented default value for xz-max-depth
* bzip2: Fix version where this filter first appeared
* Version 1.41.4.
* tests: old-plugins: Use self-built 1.38.4 plugin instead of Fedora
* filters/qcow2dec/qcow2dec.c: Fix format specifier in error message
* tests: old-plugins: Fix srcdir != builddir
* tests: old-plugins: Discrete tests and test using nbdinfo
* tests: old-plugins: Rename tests so version doesn't contain '-'
* tests: old-plugins: Add i686 plugin from nbdkit 1.38.4
* tests/test-old-plugins.sh: Test --version, --help and --dump-plugin
* tests: old-plugins: Add plugin from nbdkit 1.38.4
* tests: Rearrange some filter tests in alphabetical order
* Version 1.41.3.
* time-limit: Replace ESHUTDOWN error on Windows
* New filter: nbdkit-time-limit-filter
* tests: Skip test-timeout-cancel when --timeout fails
* tests: Test that the timeout gets cancelled after NBD negotiation
* docs: Minor corrections to --timeout documentation
* server: Implement --timeout option
* server: Clear conn->magic when freeing a connection
* Version 1.41.2.
* 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
* Version 1.41.1.
* vddk: Print the default list of transports in --dump-plugin output
* Wed Oct 30 2024 jfehlig@suse.com
- spec: Cleanup 'Provides' list for the nbdkit-basic-plugins and
nbdkit-basic-filters subpackages
* Tue Oct 22 2024 jfehlig@suse.com
- Exclude tests when building for ix86
* Fri Oct 18 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 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 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 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 <gnutls/socket.h> 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 <stdint.h>
* 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