Package Release Info

libnbd-1.22.2-160000.2.2

Update Info: Base Release
Available in Package Hub : 16.0

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

libnbd-devel

Change Logs

* 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