commit 35b399270be82180b37dc1c2b8c00fe9d5c4481420c4fd9520baa186dc065435 Author: James Fehlig Date: Fri Oct 18 17:14:10 2024 +0000 - Update to version 1.20.3, jsc#PED-8910 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libnbd?expand=0&rev=37 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/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..514853b --- /dev/null +++ b/_service @@ -0,0 +1,18 @@ + + + libnbd + v1.20.3 + git + disable + https://gitlab.com/nbdkit/libnbd.git + @PARENT_TAG@ + [v]?([^\+]+)(.*) + \1 + enable + + + *.tar + bz2 + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..5cf772f --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://gitlab.com/nbdkit/libnbd.git + 99388bf18d7e43532a435e2f7dead900c7c098c2 \ No newline at end of file diff --git a/libnbd-1.18.4.tar.bz2 b/libnbd-1.18.4.tar.bz2 new file mode 100644 index 0000000..9ce0246 --- /dev/null +++ b/libnbd-1.18.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5d129ec5cbb189ca454218bf2283d2de684788300a0485f7f4378eaac95db58 +size 440557 diff --git a/libnbd-1.20.2.tar.bz2 b/libnbd-1.20.2.tar.bz2 new file mode 100644 index 0000000..d06665e --- /dev/null +++ b/libnbd-1.20.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eebf44277b236f80730533fb97b401fc5a00cbeddf3c5fece8ce9d3602d5c0c +size 474040 diff --git a/libnbd-1.20.3.tar.bz2 b/libnbd-1.20.3.tar.bz2 new file mode 100644 index 0000000..e838d04 --- /dev/null +++ b/libnbd-1.20.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a510e759adb2488ebaf856827543ef3d588c35c75b2a69ae3ea08f5808b59698 +size 474866 diff --git a/libnbd.changes b/libnbd.changes new file mode 100644 index 0000000..6bd2ef7 --- /dev/null +++ b/libnbd.changes @@ -0,0 +1,622 @@ +------------------------------------------------------------------- +Fri Oct 18 16:42:38 UTC 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 (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 works before including it + * docs/libnbd-security.pod: Assign CVE-2024-7383 + * jsc#PED-8910 + +------------------------------------------------------------------- +Mon Aug 05 16:08:37 UTC 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 + * 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 in code which uses standard C int types + * common/include, ublk: Include in code which uses PRI* or SCN* + * Include in code which uses bool/true/false + * copy: Detect + * copy: Detect at configure time + * configure.ac: Indent AC_CHECK_HEADERS consistent with nbdkit + * ublk/nbdublk.c: Include + * copy, lib, ublk: Include 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 20:01:31 UTC 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 12:12:12 UTC 2023 - ohering@suse.de + +- Use ocaml-rpm-macros to track OCaml ABI + +------------------------------------------------------------------- +Mon Nov 13 21:15:40 UTC 2023 - James Fehlig + +- Fix assertion in ext-mode BLOCK_STATUS, CVE-2023-5871 + 4451e5b6-CVE-2023-5871.patch + bsc#1216769 + +------------------------------------------------------------------- +Wed Oct 25 19:29:55 UTC 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 17:22:47 UTC 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 16:15:44 UTC 2023 - Martin Liška + +- Enable LTO as it works fine. + +------------------------------------------------------------------- +Thu Oct 13 21:25:07 UTC 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 + * 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 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 + +------------------------------------------------------------------- +Fri Jul 8 17:59:24 UTC 2022 - James Fehlig + +- Update to version 1.12.4: + * python: Correctly use PyGILState + * olang: aio_buffer.go: Explicit panic() on invalid usage + * python: Enhance tests of nbd.Buffer + * python: Plug uninit leak in nbd.Buffer.to_bytearray + * python: Avoid memleak on (unlikely) module failure + * python: Accept buffers in nbd.Buffer.from_bytearray() + * jsc#ECO-3633 +- Enable building python module and utilities + +------------------------------------------------------------------- +Tue May 24 16:31:09 UTC 2022 - James Fehlig + +- Adjust _service file to coincide with recent manual update to + version 1.12.2 + +------------------------------------------------------------------- +Mon May 16 10:35:34 MDT 2022 - carnold@suse.com + +- Update to version 1.12.2: + * Version 1.12.2. + * Fix for CVE-2022-0485 Silent data corruption when using + nbdcopy(1). + * New APIs + get_pread_initialize + set_pread_initialize + Control whether libnbd clears the pread buffer to avoid + leaking memory contents if the client does not properly + handle errors. These were added as part of the fix for + CVE-2022-0485 (Eric Blake). + get_request_block_size + set_request_block_size + Control whether libnbd requests block size constraints from + the server during negotiation (Eric Blake). + * Error messages about incorrect URIs in nbd_connect_uri(3) have + been improved to make common mistakes clearer for the user. + * New syntax: nbdinfo [ CMD ... ] allowing you to query the + properties of an NBD server directly. + * nbdcopy(1) new --queue-size option to control the maximum + size of the internal buffer (Nir Soffer). + * nbdcopy(1) now names the source and destination handles to + make it easier to understand debug output. + * New OCaml NBD.with_handle helper which ensures that NBD.close + is always called even if the inner code throws an exception. + * The OCaml bindings now consistently use the correct types for + buffer sizes everywhere (Laszlo Ersek). + * Several improvements and fixes to the golang bindings and + tests. The golang bindings have been relicensed to LGPLv2+ + like the rest of the library and are now published as a golang + module at https://libguestfs.org/libnbd (Nir Soffer). + * The Python bindings no longer crash if you pass None in place + of a buffer parameter. In addition some memory leaks were fixed + (Eric Blake). + * Various memory leaks have been fixed when using the optional + strict_mode settings (Eric Blake). + * The performance of the internal vector library has been + improved greatly and overflow is now handled correctly + (Nir Soffer, Laszlo Ersek and Eric Blake). + * Add simple_copy and aio_copy Golang examples (Nir Soffer). + * Error handling was reviewed and fixed across many of the + example programs and documentation (Eric Blake, Nir Soffer). + * Simplify and optimize handling of the extents callback in + Golang (Nir Soffer). + * Golang AioBuffer was enhanced, making it safer to use, faster + and adding documentation (Nir Soffer). + * Other fixes to Tests, Documentation, and Build. + +------------------------------------------------------------------- +Thu May 12 16:25:41 MDT 2022 - carnold@suse.com + +- Enable building the ocaml bindings for libnbd. + virt-v2v has added a dependency on ocaml bindings from libnbd + beginning with virt-v2v version 2.0.0. + libnbd.spec + +------------------------------------------------------------------- +Tue Feb 08 16:46:29 UTC 2022 - jfehlig@suse.com + +- Update to version 1.10.4: + * Version 1.10.4. + * copy: CVE-2022-0485: Fail nbdcopy if NBD read or write fails (bsc#1195636) + * copy: Pass in dummy variable rather than &errno to callback + * docs: Clarify how callbacks should handle errors + * ocaml: tests: Fix error handling + * python: tests: Fix error handling + * ocaml/helpers.c: Rearrange Assert_failure check + * golang: tests: Fix error handling + * docs: Fix typo in callback docs + * ocaml: Update comment + +------------------------------------------------------------------- +Wed Aug 25 23:00:54 UTC 2021 - jfehlig@suse.com + +- Update to version 1.9.3: + * Version 1.9.3. + * maint: Modernize configure.ac to silence autoreconf warnings + * maint: Update to latest ax_pthread.m4 + * copy: Avoid potential divide by zero when source size is zero + * copy: Test corner case of copying from zero-sized source + * copy: Fix progress bar + * Update CI files once more + * ci: Allow failure when building fedora rawhide container + * ci: Consolidate refresh scripts + * macOS: Simple cloexec/nonblock fix + * info: Require can_cache for info-can.sh + * CI: Add testing on Alpine + * Update CI files + * macOS: Do not use --version_script + * One more VSOCK include fix + * m4: Remove *~ on make clean + * ci: Rework the build script to run check-valgrind properly + * fuse: move check-valgrind out from condition + * qemu-storage-daemon 5.2.0 is still broken + * Version 1.9.2. + * python: Add missing test file to EXTRA_DIST + * build: Warn about large stack frames + * configure: Add a macro to test if compiler -W warning flags work + * lib/uri.c: nbd_get_uri: Do not translate port name into service + * python: Implement nbd.aio_connect for AF_UNIX + * bash: Generate completion files during build + * info: Add percentage after field in --map --totals + * info: Add --can|--is options to test for NBD flags + * info: Add --map --totals sub-mode to display summary of map + * info: Don't print extra trailing \n after output + * fuse: Tidy up MODES section of the documentation + * fuse: Note in docs that read-only server implies -r flag + * fuse: Improve documentation on the thread model + * fuse: Update comment as we expect zero support to be present in 5.14 + * copy: Set default request-size to 2**18 (262144 bytes) + * copy/copy-sparse-no-extents.sh: Set request-size explicitly + * maint: Untabify configure.ac + +------------------------------------------------------------------- +Thu Jul 01 14:37:03 UTC 2021 - jfehlig@suse.com + +- Update to version 1.9.1: + * Version 1.9.1. + * ci: Update build files + * ci: Also perform `brew upgrade` on MacOS + * ci: Only run `make check` on Linux + * ci: Skip some broken tests/distro combinations + * ci: Rename build_script.sh to just build.sh + * ci: Add support for test skipping + * ci: Some build script fixes + * ci: Fix run commands in README + * ci: Add support for FreeBSD-13.0 + * ci: Remove debian-10-clang build + * ci: Remove cross-compilation targets + * ci: Change docker driver and archive logs + * tests: Rename version to get-version + * tests: Do not use magic parameter for some nbdkit plugins + * tests: Require cap_sys_admin where root is required + * tests: Fix port randomisation + * tests: Enhance fuse probing + * tests: Clean up qemu-nbd detection + * tests: Fix hexdump probing + * interop: Do not test against broken qemu-storage-daemon + * fuse: Only support defined fallocate modes + * Include sys/vsock.h if linux/vm_sockets.h is not available + * info: Avoid ambiguous 'allocated' terminology in --map + * run: Unset DEBUGINFOD_URLS + * ci/cirrus: Update system before doing anything else + +------------------------------------------------------------------- +Wed Jun 09 19:50:28 UTC 2021 - jfehlig@suse.com + +- Update to version 1.8.0: + * Version 1.8.0. + * docs: Get release notes ready for a release today + * copy/copy-file-to-qcow2.sh: Skip this test for old qemu-nbd + * docs: Put links to release notes in a separate section + * docs: Add preliminary release notes for libnbd 1.8 + * common/utils: Add test-vector.c (unit test for vectors) from nbdkit + * copy, fuse, info: Synchronize --help output with manual + * generator: Update copyright year in generated files. + * Update README + * Version 1.7.12. + +------------------------------------------------------------------- +Wed Apr 14 01:04:29 UTC 2021 - Ferdinand Thiessen + +- Update to 1.7.7 + * Fixed CVE-2021-20286 + * Fix parsing and construction of IPv6 URIs + * New API nbd_get_uri to get an NBD URI for a connection + * Permit "see also" links to nbd_get_error and nbd_get_errno + * Avoid over-long lines in POD. + * Fix reporting of NBD URI support + * Let exit status reflect any failures during NBD_OPT_INFO + * Fix page eviction when len < page_size. + +------------------------------------------------------------------- +Sun Mar 14 18:31:11 UTC 2021 - Jan Engelhardt + +- Specfile modernization + +------------------------------------------------------------------- +Thu Feb 25 23:25:24 UTC 2021 - James Fehlig + +- spec: Only enable system nbd interop tests if + suse_version >= 1550 + +------------------------------------------------------------------- +Tue Jan 26 23:36:04 UTC 2021 - jfehlig@suse.com + +- Initial packaging of libnbd: + * Version 1.7.1. + * sh: Add NOTES section. + * copy: Update multi-conn documentation. + * sh: Arrange --opt-mode documentation in alphabetical order. + * python: Add example. + * copy: Fix initialization complaint with ancient GCC on RHEL 7. + * python: Fix Python style error. + * copy/file-ops.c: Small whitespace fix. + * copy/copy-nbd-to-sparse-file.sh: Skip test unless nbdkit available. + diff --git a/libnbd.spec b/libnbd.spec new file mode 100644 index 0000000..8a71d4e --- /dev/null +++ b/libnbd.spec @@ -0,0 +1,197 @@ +# +# spec file for package libnbd +# +# 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/ +# + + +%define sover 0 + +Name: libnbd +Version: 1.20.3 +Release: 0 +Summary: NBD client library in userspace +License: LGPL-2.1-or-later +URL: https://gitlab.com/nbdkit/libnbd +Source0: %{name}-%{version}.tar.bz2 +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: fdupes +BuildRequires: libtool +BuildRequires: ocaml-findlib +BuildRequires: ocaml-rpm-macros +BuildRequires: pkg-config +BuildRequires: ocaml(compiler) +BuildRequires: perl(Pod::Man) +BuildRequires: perl(Pod::Simple) +BuildRequires: pkgconfig(bash-completion) +BuildRequires: pkgconfig(fuse3) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gnutls) >= 3.3.0 +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(python3) +Requires: libnbd%{sover} = %{version} +# Only for running the test suite. +BuildRequires: gcc-c++ +BuildRequires: jq +%if 0%{?suse_version} >= 1550 +BuildRequires: nbd +%endif +BuildRequires: qemu-tools + +%description +NBD — Network Block Device — is a protocol for accessing Block Devices +(hard disks and disk-like things) over a Network. + +This is the NBD client library in userspace, a simple library for +writing NBD clients. + +The key features are: + + * Synchronous and asynchronous APIs, both for ease of use and for + writing non-blocking, multithreaded clients. + + * High performance. + + * Minimal dependencies for the basic library. + + * Well-documented, stable API. + + * Bindings in several programming languages. + +%package -n libnbd%{sover} +Summary: Core library for nbd + +%description -n libnbd%{sover} +This is the NBD client library in userspace, a simple library for +writing NBD clients. + +%package devel +Summary: Development headers for %{name} +Requires: libnbd%{sover} = %{version}-%{release} + +%description devel +This package contains development headers for %{name}. + +%package -n python3-%{name} +Summary: Python 3 bindings for %{name} +Requires: libnbd%{sover} = %{version}-%{release} + +%description -n python3-%{name} +python3-%{name} contains Python 3 bindings for %{name}. + +%package -n nbdfuse +Summary: FUSE support for %{name} +Requires: libnbd%{sover} = %{version}-%{release} + +%description -n nbdfuse +This package contains FUSE support for %{name}. + +%package bash-completion +Summary: Bash tab-completion for %{name} +BuildArch: noarch +Requires: bash-completion >= 2.0 +Requires: libnbd%{sover} = %{version}-%{release} + +%description bash-completion +Install this package if you want intelligent bash tab-completion +for %{name}. + +%prep +%autosetup -p1 + +%build +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects +autoreconf -fiv +%configure \ + --enable-fuse \ + --disable-golang \ + PYTHON=%{__python3} \ + --enable-python \ + --disable-static \ + %{nil} + +%make_build + +%install +%make_install +%fdupes %{buildroot} +# Delete libtool crap. +find "%{buildroot}" -name '*.la' -delete + +# Delete the golang man page since we're not distributing the bindings. +rm %{buildroot}/%{_mandir}/man3/libnbd-golang.3* + +%ocaml_create_file_list + +%check +# All fuse tests fail in Koji with: +# fusermount: entry for fuse/test-*.d not found in /etc/mtab +# for unknown reasons but probably related to the Koji environment. +for f in fuse/test-*.sh; do + rm $f + touch $f + chmod +x $f +done + +%make_build check || { + for f in $(find . -name test-suite.log); do + echo + echo "==== $f ====" + cat $f + done + } + +%post -n libnbd%{sover} -p /sbin/ldconfig +%postun -n libnbd%{sover} -p /sbin/ldconfig + +%files +%doc README.md +%{_bindir}/nbdcopy +%{_bindir}/nbddump +%{_bindir}/nbdinfo +%{_mandir}/man1/nbdcopy.1* +%{_mandir}/man1/nbddump.1* +%{_mandir}/man1/nbdinfo.1* + +%files -n libnbd%{sover} -f %name.files +%license COPYING.LIB +%{_libdir}/libnbd.so.%{sover} +%{_libdir}/libnbd.so.%{sover}.* + +%files devel -f %name.files.devel +%{_includedir}/libnbd.h +%{_libdir}/libnbd.so +%{_libdir}/pkgconfig/libnbd.pc +%{_mandir}/man3/libnbd.3* +%{_mandir}/man3/libnbd-ocaml.3.gz +%{_mandir}/man1/libnbd-release-notes-1.*.1* +%{_mandir}/man3/libnbd-security.3* +%{_mandir}/man3/nbd_*.3* + +%files -n python3-%{name} +%{python3_sitearch}/libnbdmod*.so +%{python3_sitearch}/nbd.py +%{python3_sitearch}/nbdsh.py +%{_bindir}/nbdsh +%{_mandir}/man1/nbdsh.1* + +%files -n nbdfuse +%{_bindir}/nbdfuse +%{_mandir}/man1/nbdfuse.1* + +%files bash-completion +%{_datadir}/bash-completion + +%changelog