* Tue May 06 2025 jfehlig@suse.com
- Update to version 1.22.2:
* Version 1.22.2.
* copy: Test --allocated + --destination-is-zero options together
* copy: Test --destination-is-zero option
* copy: Test --allocated option more thoroughly
* copy: Add a test of the --flush option
* copy: Remove output file in a few tests
* build: Print rustc version in ./configure output
* rust: Use nbd.is_uri in examples
* ci: Skip go on FreeBSD 14
* ci: Update to latest
* copy: Fix file allocation when using --allocated
* copy: Fix file_sync_zero when allocate == true
* copy: Consider options when zeroing in synch mode
* copy: Hard error if sync_file_range fails
* info/info-uri-nbds.sh: Fix test if compiled without GnuTLS
* copy: Set the total size in bytes copied
* copy: progress: Add a comment about size and pipes
* info: Use magenta for export headings, instead of black
* Version 1.22.1.
* ocaml/{examples,tests}: Don't try to run OCAMLFIND if --disable-ocaml
* docs/libnbd-release-notes-1.22.pod: Set release date
* Version 1.22.0.
* ci: Update FreeBSD builds
* copy: Include pthread.h
* docs: Small revisions to the release notes
* golang: Replace () with correct argument decl, for GCC 15
* docs: Add outline release notes for libnbd 1.22
* ci: Update to latest
* dump: Add a test of --length and --offset
* dump: Add --offset for further limiting the dump
* dump: Document --length
* examples: Add simple program to benchmark connections
* Version 1.21.6.
* build: Use 'tar ztf' instead of 'zcat | tar'
* Revert "ci: Skip maintainer-check-extra-dist test on macOS"
* ci: Skip maintainer-check-extra-dist test on macOS
* ci: Install bash (from homebrew) in the CI environment
* configure: Check that bash is sufficiently new
* ci: Dump out failed log files when the tests fail
* golang, rust: Use env bash for FreeBSD
* python: Skip Python tests on macOS
* tests/newstyle-limited.c: Check truncate is GNU truncate before using
* ocaml/tests/test_220_opt_list.ml: Use correct nbdkit binary
* ocaml/tests/test_580_aio_connect.ml: Skip this test on macOS
* build: Test for GnuTLS certtool on macOS
* build: Use GNU alternatives on macOS and FreeBSD
* copy/copy-file-to-nbd.sh: Remove test for 'truncate'
* lib/test-fork-safe-execvpe.sh: Skip this test on macOS
* ci/build.sh: Set os_id on macOS which lacks /etc/os-release
* ci: Don't skip tests on non-Linux
* Version 1.21.5.
* interop: Skip nbd-server test on Alpine
* ci: Update CI files
* vsock: Document limitations and reserved vsock port numbers
* rust: Parse perlpod L<https://...> (external links) to rust markup
* generator: connect_uri: Document differences with qemu parsing
* podwrapper: Add some simple checks for cross-references within manual pages.
* docs/libnbd-release-notes-1.10.pod: Remove broken link to "nbd_connect(3)"
* docs/nbd_create.pod: Cross-reference nbd_shutdown(3)
* Version 1.21.4.
* docs: Use "oldstyle servers" in preference to "older servers"
* docs: Mention newstyle and oldstyle servers in main docs
* docs: Mention nbd_is_uri under "Connecting to an NBD URI" in main docs
* README: Fix bold markdown
* README: Mention 'make install DESTDIR=...'
* README: Mention the ./run script
* lib: Add nbd_get_subprocess_pid to return h->pid
* docs/libnbd-security.pod: Assign CVE-2024-7383
* Version 1.21.3.
* build: Prefer "for developers" in ./configure --help output
* build: Fix ./configure --help output for --enable-python-code-style
* copy: Fix URI detection
* lib: Add new nbd_is_uri API
* tests/requires.c: Don't fail to compile if NBDKIT is not defined
* Version 1.21.2.
* lib: Implement nbd+ssh:// and nbds+ssh:// URIs
* tests/connect-uri.c: Replace -DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1
* lib/uri.c: Change socket required boolean into an enum
* generator/states-newstyle.c: Don't sign extend escaped chars
* rust: Add os-ext feature to get mio::unix
* generator/states-newstyle.c: Quote untrusted string from the server
* generator: Restore assignment to local 'err'
* .gitignore: Remove unused line
* lib: Don't overwrite error in nbd_opt_{go,info}
* generator: Print full error in handle_reply_error
* ci: Drop Alma Linux 8
* lib/crypto.c: Check <gnutls/socket.h> works before including it
* lib/uri.c: Append tls-hostname and tls-verify-peer when getting URI
* Version 1.21.1.
* docs: security: Add link to TLS server certificate checking announcement
* lib/uri.c: Allow tls-hostname to be overridden in URIs
* lib/uri.c: Allow tls-verify-peer to be overridden in URIs
* lib/crypto.c: Add API functions to get/set TLS hostname
* Fri Oct 18 2024 jfehlig@suse.com
- Update to version 1.20.3:
* Version 1.20.3.
* interop: Skip nbd-server test on Alpine
* ci: Update CI files
* rust: Parse perlpod L<https://...> (external links) to rust markup
* podwrapper: Add some simple checks for cross-references within manual pages.
* docs/libnbd-release-notes-1.10.pod: Remove broken link to "nbd_connect(3)"
* docs/nbd_create.pod: Cross-reference nbd_shutdown(3)
* docs: Use "oldstyle servers" in preference to "older servers"
* docs: Mention newstyle and oldstyle servers in main docs
* README: Fix bold markdown
* README: Mention 'make install DESTDIR=...'
* README: Mention the ./run script
* build: Prefer "for developers" in ./configure --help output
* build: Fix ./configure --help output for --enable-python-code-style
* .gitignore: Remove unused line
* ci: Drop Alma Linux 8
* lib/crypto.c: Check <gnutls/socket.h> works before including it
* docs/libnbd-security.pod: Assign CVE-2024-7383
* jsc#PED-8910
* Mon Aug 05 2024 jfehlig@suse.com
- Update to version 1.20.2:
* CVE-2024-7383 (bsc#1228872)
* Version 1.20.2.
* docs: security: Add link to TLS server certificate checking announcement
* lib/uri.c: Allow tls-verify-peer to be overridden in URIs
* interop: Test interop with a bad system CA
* interop: Add -DEXPECT_FAIL=1 where we expect the test to fail
* interop: Pass -DCERTS and -DPSK as strings
* lib/crypto.c: Allow CA verification even if h->hostname is not set
* lib/crypto.c: Check server certificate even when using system CA
* build: Move to minimum gnutls >= 3.5.18
* nbdfuse: Can't use ?tls-certificates or ?tls-psk-file
* ci: Fix MacOS builds
* tests: Fix CI on Fedora 40
* Version 1.20.1.
* tests: Add some code quality checks (mainly for maintainers)
* common/utils/device-size.c: Include <stdint.h>
* copy: Use device_size to get size of block devices
* copy: Refactor the internal file_create API
* common/utils: Add a function to find the size of a file or block device
* Include <stdint.h> in code which uses standard C int types
* common/include, ublk: Include <inttypes.h> in code which uses PRI* or SCN*
* Include <stdbool.h> in code which uses bool/true/false
* copy: Detect <sys/ioctl.h>
* copy: Detect <linux/fs.h> at configure time
* configure.ac: Indent AC_CHECK_HEADERS consistent with nbdkit
* ublk/nbdublk.c: Include <errno.h>
* copy, lib, ublk: Include <assert.h> which was missing in a few places
* tests: Remove extra whitespace
* copy/copy-nbd-to-small-block-error.sh: Use different pidfiles
* copy: Use verbose nbdcopy in test
* copy: Fix "destination size is smaller than source size" error
* 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
* Version 1.20.0.
* tests/connect-uri.c: Don't call strlen on each loop iteration
* tests/connect-uri: Remove -DPIDFILE, generate it implicitly
* lib/uri: Make parsing URIs more case insensitive
* rust: Make the struct Cookie internal field fully public
* interop/block-status-64.c: Fix skip path under valgrind
* Revert "valgrind: Add suppression for liblzma bug"
* docs: Add outline release notes for forthcoming libnbd 1.20
* lib/handle.c: Invalidate h->magic field just before freeing
* Version 1.19.11.
* ocaml: Add ocamlfind -package to ocamldoc invocation
* ocaml: Mention bigstring and bigstringaf libraries
* ocaml/tests: Add a test of the buffer lifecycle
* ocaml: Update META so we link programs with bigarray on OCaml < 5
* ocaml: Use Bigarray to link examples and tests on OCaml < 5
* ocaml/tests: Modify the tests to use the new NBD.Buffer.t
* ocaml: Add NBD.Buffer to/from string functions
* ocaml: Reimplement NBD.Buffer.t using Bigarray for zero-copy
* Version 1.19.10.
* info: Add --isnt & --cannot to --help output
* info: Implement --cannot and synonyms
* info/can.c: Assert that 'can' variable is set
* info: Fix error message
* info: Add note that --can/--is/--has are synonyms
* Version 1.19.9.
* info: --uri: Free URI after printing it
* lib/uri.c: Add better comments to nbd_get_uri function
* info: Add --uri parameter
* docs: Link from nbd_get_size to nbdinfo --size option
* info: Handle failure of call to file
* copy, fuse: Use vector_reserve_exactly in a few places
* common/utils: Make vector_reserve_page_aligned allocate exactly
* common/utils: Add vector_reserve_exactly function
* fuzzing: Add a comment that the libfuzzer test is unmaintained
* Version 1.19.8.
* tests/opt-info.c: Free string returned by nbd_get_export_name
* valgrind: Add suppression for liblzma bug
* info: Try harder to report contents from nbd-server
* copy: Add test for server without meta context support
* api: Fix nbd_can_meta_context for server that lacks meta contexts
* copy, info: Treat can_meta_context failures as unsupported
* configure: Copy bash-completions test from nbdkit
* Version 1.19.7.
* podwrapper: Ignore check on older versions of Perl
* podwrapper: Allow = (POD directive) followed by bare URL
* podwrapper: Check for bare URLs and suggest replacement with L<> links
* podwrapper: Move long lines and cross-reference checks earlier
* contrib: Add suggested autoconf CHECK_LIBNBD macro
* Version 1.19.6.
* tests: Missed another C test which didn't use NBDKIT
* tests: Use $NBDKIT instead of plain 'nbdkit'
* tests: Use 'source ./function.sh' consistently in this directory
* ocaml/tests: Add replacement for Bytes.set_int64_be
* ocaml/tests: Add explicit dependency on ocaml_test_config.cm{o,x}
* build: Define the minimum required version of OCaml as 4.05
* generator: Remove definition of sort_uniq
* configure: Annotate OCaml tests by version of OCaml
* ci: Skip certain deadlocking nbd-server tests on Alpine 3.19
* docs: Clarify description of block size constraints
* ocaml: tests: Compute srcdir centrally in Ocaml_test_config module
* ocaml: tests: Use @NBDKIT@ instead of hard coding nbdkit
* python: tests: Use $NBDKIT instead of hard coding nbdkit
* python: Various fixes to the Python tests and test wrapper
* Version 1.19.5.
* tests: Use wait_for_pidfile instead of open-coded loops
* tests: Define NBD_SERVER in config.h and use it for requires tests
* tests: Define QEMU_NBD in config.h and use it for requires tests
* maint: Be more consistent about using ./configure-defined @NBDKIT@
* maint: Be more consistent about using ./configure-defined @QEMU_NBD@
* interop: Prefer exporting QEMU_STORAGE_DAEMON through tests/functions.sh
* interop: Use nbd-server FORCEDTLS mode
* interop: Test write, flush and zero operations
* interop: Add nbd-server flush flag
* interop: Remove -DNEEDS_TMPFILE
* maint: Use @LN_S@ autoconf macro in preference to writing out 'ln -s'
* tests: connect-uri: Choose random port for TCP connections at runtime
* tests: connect-uri: Change how Unix domain sockets are generated
* docs: Fix accidental double line in SECURITY file
* Version 1.19.4.
* ci: Update to latest lcitool
* rust: Avoid compiler warning about unused import
* bash: Make nbdfuse and nbdublk installation conditional
* generator/Makefile.am: Fix missing continuation backslash
* Version 1.19.3.
* ocaml: Nullify custom block before releasing runtime lock
* ocaml: Use Gc.finalize instead of a C finalizer
* Version 1.19.2.
* generator: Clarify message about generated files
* docs: Mention CVE-2023-5871
* docs: Improve handle states documentation
* generator: Move docs generation out to a new module
* docs: Add comment for api_built, and formatting
* docs: Tighten up description of nbd_connect_uri(3)
* examples: Add example code for nbd_connect_uri(3)
* examples: Rearrange Makefile alphabetically
* generator: Make sure man pages are rebuilt if examples change
* New mailing list archives
* examples/userfault-map.c: Make nbd handle static
* example: Using userfaultfd to mmap an NBD-backed drive
* tests: Check behavior of nbd_set_strict_mode(STRICT_AUTO_FLAG)
* lib: Add dynamic validation of struct nbd_handle
* docs: Fix incorrect xref in libnbd-release-notes for 1.18
* fuzzing: Remove unnecessary NULL assignments
* fuzzing: Change fuzzing approach so we issue asynchronous commands
* generator: Fix assertion in ext-mode BLOCK_STATUS, CVE-2023-5871
* fuzzing: We need to disable Rust bindings when building fuzzer version
* Version 1.19.1.
* rust: Use string_starts_with instead of String.starts_with
* rust: Build the examples
* rust: Write a custom translator from POD to rustdoc
* rust: Add overview documentation
* rust: Annotate 'endif' with corresponding label
* info: Show human sizes for block_size values
* utils: Slightly simplify human_size()
* docs: Assign CVE-2023-5215 to nbd_get_size negative result issue
* info: Try harder for graceful disconnect from server
* Thu Apr 18 2024 jfehlig@suse.com
- Update to version 1.18.4:
* Version 1.18.4.
* tests/connect-uri: Remove -DPIDFILE, generate it implicitly
* rust: Make the struct Cookie internal field fully public
* interop/block-status-64.c: Fix skip path under valgrind
* Revert "valgrind: Add suppression for liblzma bug"
* ocaml: Add ocamlfind -package to ocamldoc invocation
* info/can.c: Assert that 'can' variable is set
* info: Fix error message
* info: Add note that --can/--is/--has are synonyms
* info: Handle failure of call to file
* fuzzing: Add a comment that the libfuzzer test is unmaintained
* Version 1.18.3.
* tests/opt-info.c: Free string returned by nbd_get_export_name
* valgrind: Add suppression for liblzma bug
* info: Try harder to report contents from nbd-server
* copy: Add test for server without meta context support
* api: Fix nbd_can_meta_context for server that lacks meta contexts
* copy, info: Treat can_meta_context failures as unsupported
* configure: Copy bash-completions test from nbdkit
* podwrapper: Ignore check on older versions of Perl
* podwrapper: Allow = (POD directive) followed by bare URL
* podwrapper: Check for bare URLs and suggest replacement with L<> links
* podwrapper: Move long lines and cross-reference checks earlier
* tests: Missed another C test which didn't use NBDKIT
* tests: Use $NBDKIT instead of plain 'nbdkit'
* tests: Use 'source ./function.sh' consistently in this directory
* ocaml/tests: Add replacement for Bytes.set_int64_be
* ocaml/tests: Add explicit dependency on ocaml_test_config.cm{o,x}
* build: Define the minimum required version of OCaml as 4.05
* generator: Remove definition of sort_uniq
* configure: Annotate OCaml tests by version of OCaml
* ci: Skip certain deadlocking nbd-server tests on Alpine 3.19
* docs: Clarify description of block size constraints
* ocaml: tests: Compute srcdir centrally in Ocaml_test_config module
* ocaml: tests: Use @NBDKIT@ instead of hard coding nbdkit
* python: tests: Use $NBDKIT instead of hard coding nbdkit
* python: Various fixes to the Python tests and test wrapper
* tests: Use wait_for_pidfile instead of open-coded loops
* tests: Define NBD_SERVER in config.h and use it for requires tests
* tests: Define QEMU_NBD in config.h and use it for requires tests
* maint: Be more consistent about using ./configure-defined @NBDKIT@
* maint: Be more consistent about using ./configure-defined @QEMU_NBD@
* interop: Prefer exporting QEMU_STORAGE_DAEMON through tests/functions.sh
* interop: Use nbd-server FORCEDTLS mode
* interop: Test write, flush and zero operations
* interop: Add nbd-server flush flag
* interop: Remove -DNEEDS_TMPFILE
* maint: Use @LN_S@ autoconf macro in preference to writing out 'ln -s'
* tests: connect-uri: Choose random port for TCP connections at runtime
* tests: connect-uri: Change how Unix domain sockets are generated
* docs: Fix accidental double line in SECURITY file
* bash: Make nbdfuse and nbdublk installation conditional
* Version 1.18.2.
* ocaml: Nullify custom block before releasing runtime lock
* ocaml: Use Gc.finalize instead of a C finalizer
* ci: Update to latest lcitool
* rust: Avoid compiler warning about unused import
* docs: Mention CVE-2023-5871
* New mailing list archives
* fuzzing: We need to disable Rust bindings when building fuzzer version
* tests: Check behavior of nbd_set_strict_mode(STRICT_AUTO_FLAG)
* docs: Fix incorrect xref in libnbd-release-notes for 1.18
* generator: Fix assertion in ext-mode BLOCK_STATUS, CVE-2023-5871
* Drop patch 4451e5b6-CVE-2023-5871.patch, which is now included
in the stable-1.18 branch
* Tue Dec 12 2023 ohering@suse.de
- Use ocaml-rpm-macros to track OCaml ABI
* Mon Nov 13 2023 jfehlig@suse.com
- Fix assertion in ext-mode BLOCK_STATUS, CVE-2023-5871
4451e5b6-CVE-2023-5871.patch
bsc#1216769
* Wed Oct 25 2023 jfehlig@suse.com
- Update to version 1.18.1:
* Version 1.18.1.
* rust: Use string_starts_with instead of String.starts_with
* rust: Build the examples
* rust: Write a custom translator from POD to rustdoc
* rust: Add overview documentation
* rust: Annotate 'endif' with corresponding label
* utils: Slightly simplify human_size()
* docs: Assign CVE-2023-5215 to nbd_get_size negative result issue
* Fri Sep 29 2023 jfehlig@suse.com
- Update to version 1.18.0:
* CVE-2023-5215 (bsc#1215799)
* docs: Add link to nbd_get_size announcement in release notes
* docs: Add URL to list post on nbd_get_size security
* docs: Update release notes for nbd_get_size backport to 1.16.5
* docs: Finalize release notes for release tomorrow
* dump: Add more examples of running subprocesses from nbddump
* info: Tolerate missing size
* block_status: Fix assertion on bad 64-bit block status reply
* block_status: Fix assertion with large server size
* api: Sanitize sizes larger than INT64_MAX
* Thu Mar 23 2023 mliska@suse.cz
- Enable LTO as it works fine.
* Thu Oct 13 2022 jfehlig@suse.com
- Update to version 1.14.1:
* Version 1.14.1.
* copy/copy-file-to-qcow2-compressed.sh: Alternate test for compressed clusters
* ci: Expire artifacts after 1 week
* sh: Add workaround for macOS SIP DYLD_* environment sanitiser
* info: Tone down the colours in nbdinfo normal output
* tests/make-pki.sh: Use Subject Alternative Name for server certificate
* info: Improve error message when the export may be unknown to the server
* info: Add limited colourized output
* dump: Move ANSI colours to separate library under common/include
* Version 1.14.0.
* docs: Finalize release notes for 1.14
* Version 1.13.9.
* build: Document gmake instead of make on *BSD, macOS
* build: Use GNUTLS_CFLAGS when checking for <gnutls/socket.h>
* build: Remove use of $^
* copy: Skip compressed qcow2 test on older qemu-nbd
* interop: Skip interop-qemu-nbd-tls-psk if qemu-nbd doesn't support PSK
* tests: Check nbdkit supports --tls-verify-peer before using
* docs: Document signal handling
* generator: Set SO_NOSIGPIPE on sockets
* lib/crypto: Use GNUTLS_NO_SIGNAL if available
* docs: Add outline release notes for libnbd 1.14
* lib/crypto.c: Ignore TLS premature termination after write shutdown
* lib/crypto.c: Check for <gnutls/socket.h> before including
* Version 1.13.8.
* generator: Add README.state-machine.md to EXTRA_DIST
* generator: Fix reentry to REPLY.START when recv returns EAGAIN
* generator: Move state machine documentation to a README file
* tests: Avoid bash namerefs, for RHEL 7
* tests: Better quoting for cleanup_fn
* Version 1.13.7.
* configure: Document --with-* flags that require a parameter
* copy: Remove advice about using nbdcopy + cmp to compare NBD sources
* build: Print full versions of nbdkit and qemu-nbd
* tests: Add tests/connect-uri-nbd-vsock.sh to EXTRA_DIST
* tests: Test nbd+vsock:// support
* lib/uri.c: Don't corrupt memory on error path
* info/show.c: Don't misuse nbd_get_error or leak nbd_get_export_name
* fuzzing/libnbd-fuzz-wrapper.c: Fix loop condition
* fuse: Check return value from nbd_poll
* examples/batched-read-write.c: Use _exit in signal handler
* copy: Remove dead store
* Version 1.13.6.
* configure: Add status of interop and examples
* configure: Print the versions of certain external libraries
* configure: Check for nbdkit-file-plugin
* configure: Make the 'feature' function print the dots
* ci: Update generated files
* copy: Assert that request size is not too large
* copy: Force block size, request size and sparse size to be powers of 2
* copy/copy-file-to-qcow2-compressed.sh: Break up long lines
* Use ARRAY_SIZE macro in a few places in libnbd
* common/include: Rename BUILD_BUG_ON_ZERO to something more meaningful
* common/include/test-array-size.c: Avoid Clang warning
* common/include: Add ARRAY_SIZE macro
* dump: Add another example to the manual
* Version 1.13.5.
* copy: Use preferred block size for copying
* copy: Store the preferred block size in the operations struct
* dump/dump-data.sh: Test requires nbdkit 1.22
* dump: Fix tests on Debian 10
* dump: Fix build on i686
* dump: Visually separate columns 0-7 and 8-15
* Version 1.13.4.
* Add nbddump tool
* copy/nbd-ops.c: Fix whitespace for indentation
* copy/nbd-ops.c: Move related extents functions together
* lib: Display kTLS status
* copy: Print program name in some error messages
* Version 1.13.3.
* python: Allow control over copy/share of nbd.Buffer
* valgrind: Update comment about valgrind bug affecting OCaml
* ocaml: Add further valgrind suppression
* ocaml: Add valgrind suppression for OCaml 4.14 bug
* Version 1.13.2.
* python: Fix code style in the tests
* python: Slice structured read callback buffer from original
* python: Support len(nbd.Buffer(n))
* python: Accept all buffer-like objects in aio_p{read,write}
* python: Alter lock for persistent buffer
* python: Simplify passing of mutable *error to callbacks
* python: Whitespace cleanup
* python: Correctly use PyGILState
* Version 1.13.1.
* golang: aio_buffer.go: Explicit panic() on invalid usage
* golang: Whitespace change caused by gofmt
* golang: Add some more debug environment variables
* python: Another format tweak to generated code
* python: Make nbd.Buffer lighter-weight
* python: Simplify python generator
* python: Don't unwrap nbd.Buffer in nbd.py
* python: Make py_aio_buffer a private struct
* python: Reformat generated methods.c in a few places
* python: Enhance tests of nbd.Buffer
* python: Plug uninit leak in nbd.Buffer.to_bytearray
* python: Improve doc comments for nbd.py
* python: Drop pointless (char*)"..." cast
* python: Avoid memleak on (unlikely) module failure
* api: Tighter checking of structured read replies
* Fix small whitespace problem in README.md
* Change README to use markdown
* python: Speed up pread
* api: Speed up nbd_pread_structured when reading holes
* ci: Rebuild containers