Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libnbd for openSUSE:Factory checked in at 2025-08-05 14:21:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libnbd (Old) and /work/SRC/openSUSE:Factory/.libnbd.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnbd" Tue Aug 5 14:21:10 2025 rev:20 rq:1297550 version:1.22.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libnbd/libnbd.changes 2025-05-14 17:01:57.373119282 +0200 +++ /work/SRC/openSUSE:Factory/.libnbd.new.1085/libnbd.changes 2025-08-05 14:21:47.434501474 +0200 @@ -1,0 +2,13 @@ +Thu Jul 31 17:01:32 UTC 2025 - Charles Arnold <carn...@suse.com> + +- Update to version 1.22.3: + * Version 1.22.3. + * ublk: Remove unused EXPECTED_VERSION + * todo: Remove a couple of minor features that have been implemented + * info: Tolerate nbdkit slop on large extents + * generator: Avoid const-correctness warnings in golang + * maint: Spelling fixes + * ci: Disable cross-builds of Rust + * rust: Allow cargo build --target $RUST_TARGET to be set + +------------------------------------------------------------------- Old: ---- libnbd-1.22.2.tar.bz2 New: ---- libnbd-1.22.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libnbd.spec ++++++ --- /var/tmp/diff_new_pack.L4q28M/_old 2025-08-05 14:21:48.198533405 +0200 +++ /var/tmp/diff_new_pack.L4q28M/_new 2025-08-05 14:21:48.202533572 +0200 @@ -19,7 +19,7 @@ %define sover 0 Name: libnbd -Version: 1.22.2 +Version: 1.22.3 Release: 0 Summary: NBD client library in userspace License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.L4q28M/_old 2025-08-05 14:21:48.238535076 +0200 +++ /var/tmp/diff_new_pack.L4q28M/_new 2025-08-05 14:21:48.242535244 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> <param name="filename">libnbd</param> - <param name="revision">v1.22.2</param> + <param name="revision">v1.22.3</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://gitlab.com/nbdkit/libnbd.git</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.L4q28M/_old 2025-08-05 14:21:48.262536080 +0200 +++ /var/tmp/diff_new_pack.L4q28M/_new 2025-08-05 14:21:48.266536247 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.com/nbdkit/libnbd.git</param> - <param name="changesrevision">5f55a26f3a776c11049a27154b1f2b59b8c335da</param></service></servicedata> + <param name="changesrevision">e6383d73b38fc5b7c06b3d8cd9f22e42ad16edfc</param></service></servicedata> (No newline at EOF) ++++++ libnbd-1.22.2.tar.bz2 -> libnbd-1.22.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/TODO new/libnbd-1.22.3/TODO --- old/libnbd-1.22.2/TODO 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/TODO 2025-07-17 15:05:46.000000000 +0200 @@ -1,10 +1,6 @@ Explore if nbd_aio_notify_error is needed for faster response if server goes away. -Bindings in other languages. - - Latest attempt at adding Rust: - https://www.redhat.com/archives/libguestfs/2019-August/msg00416.html - Example code integrating with ppoll, pollfd, APR pollset (and others?). NBD resize extension. @@ -32,8 +28,6 @@ - Synchronous loop should be adjusted to take into account the NBD preferred block size, as was done for multi-thread loop. - Benchmark. - - Better page cache usage, see nbdkit-file-plugin options - fadvise=sequential cache=none. - Consider io_uring if there are performance bottlenecks. - Configurable retries in response to read or write failures. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/ci/build.sh new/libnbd-1.22.3/ci/build.sh --- old/libnbd-1.22.2/ci/build.sh 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/ci/build.sh 2025-07-17 15:05:46.000000000 +0200 @@ -106,11 +106,13 @@ --disable-fuse --disable-ocaml --disable-python + --disable-rust --disable-golang" else CONFIG_ARGS="$CONFIG_ARGS --enable-fuse --enable-ocaml + --enable-rust --enable-python" if test "$GOLANG" = "skip" then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/configure.ac new/libnbd-1.22.3/configure.ac --- old/libnbd-1.22.2/configure.ac 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/configure.ac 2025-07-17 15:05:46.000000000 +0200 @@ -15,7 +15,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -AC_INIT([libnbd],[1.22.2]) +AC_INIT([libnbd],[1.22.3]) AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],[], @@ -751,6 +751,8 @@ CARGO=no ]) ]) + AC_ARG_VAR([RUST_TARGET], + [if set, cargo build uses --target $RUST_TARGET]) ],[CARGO=no]) AM_CONDITIONAL([HAVE_RUST],[test "x$CARGO" != "xno"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/copy/file-ops.c new/libnbd-1.22.3/copy/file-ops.c --- old/libnbd-1.22.2/copy/file-ops.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/copy/file-ops.c 2025-07-17 15:05:46.000000000 +0200 @@ -82,7 +82,7 @@ bool seek_hole_supported; int sector_size; - /* We try to use the most eficient zeroing first. If an efficent zero + /* We try to use the most efficient zeroing first. If an efficient zero * method is not available, we disable the flag so next time we use * the working method. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/docs/libnbd-release-notes-1.18.pod new/libnbd-1.22.3/docs/libnbd-release-notes-1.18.pod --- old/libnbd-1.22.2/docs/libnbd-release-notes-1.18.pod 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/docs/libnbd-release-notes-1.18.pod 2025-07-17 15:05:46.000000000 +0200 @@ -145,7 +145,7 @@ Debug messages no longer print the very verbose state transitions inside the state machine as these are not usually useful. You can -reenable this by defining C<-DLIBNBD_STATE_VERBOSE=1> at compile time. +re-enable this by defining C<-DLIBNBD_STATE_VERBOSE=1> at compile time. Completion C<.callback> methods are now always called exactly once, and documentation is clearer on when this happens (Eric Blake). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/docs/libnbd.pod new/libnbd-1.22.3/docs/libnbd.pod --- old/libnbd-1.22.2/docs/libnbd.pod 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/docs/libnbd.pod 2025-07-17 15:05:46.000000000 +0200 @@ -936,7 +936,7 @@ =head2 Completion callbacks -All of the asychronous commands have an optional completion callback +All of the asynchronous commands have an optional completion callback function that is used if the call to the asynchronous API reports success. The completion callback is invoked when the submitted command is eventually marked complete, after any mid-command callbacks @@ -976,7 +976,7 @@ the server's reply), and the overall command will still fail (at the completion callback or L<nbd_aio_command_completed(3)> for an asynchronous command, or as the result of the overall synchronous -command). Returing C<-1> from a mid-command callback does not prevent +command). Returning C<-1> from a mid-command callback does not prevent that callback from being reached again, if the server sends more mid-command replies that warrant another use of that callback. A mid-command callback may be reached more times than expected if the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/examples/copy-libev.c new/libnbd-1.22.3/examples/copy-libev.c --- old/libnbd-1.22.2/examples/copy-libev.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/examples/copy-libev.c 2025-07-17 15:05:46.000000000 +0200 @@ -3,7 +3,7 @@ * * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod * - * To build it you need the libev-devel pacakge. + * To build it you need the libev-devel package. * * To run it: * @@ -32,7 +32,7 @@ #include <ev.h> -/* These values depend on the enviroment tested. +/* These values depend on the environment tested. * * For shared storage using direct I/O: * @@ -76,8 +76,8 @@ IDLE, /* Not used yet. */ EXTENTS, /* Getting extents from source. */ READ, /* Read from source. */ - WRITE, /* Write to destiation. */ - ZERO, /* Write zeroes to destiation. */ + WRITE, /* Write to destination. */ + ZERO, /* Write zeroes to destination. */ SLEEP /* Waiting for extents completion. */ }; @@ -631,12 +631,12 @@ debug = getenv ("COPY_LIBEV_DEBUG") != NULL; - /* Configure soruce to report extents. */ + /* Configure source to report extents. */ if (nbd_add_meta_context (src.nbd, LIBNBD_CONTEXT_BASE_ALLOCATION)) FAIL ("Cannot add base:allocation: %s", nbd_get_error ()); - /* Connecting is fast, so use the syncronous API. */ + /* Connecting is fast, so use the synchronous API. */ if (nbd_connect_uri (src.nbd, argv[1])) FAIL ("Cannot connect to source: %s", nbd_get_error ()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/generator/C.ml new/libnbd-1.22.3/generator/C.ml --- old/libnbd-1.22.2/generator/C.ml 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/generator/C.ml 2025-07-17 15:05:46.000000000 +0200 @@ -286,16 +286,16 @@ pr "\n LIBNBD_ATTRIBUTE_NONNULL (%s);\n" (String.concat ", " nns) let rec print_cbarg_list ?(wrap = false) ?maxcol ?types ?(parens = true) - cbargs = + ?(noconst = false) cbargs = if parens then pr "("; if wrap then pr_wrap ?maxcol ',' - (fun () -> print_cbarg_list' ?types cbargs) + (fun () -> print_cbarg_list' ?types noconst cbargs) else - print_cbarg_list' ?types cbargs; + print_cbarg_list' ?types noconst cbargs; if parens then pr ")" -and print_cbarg_list' ?(types = true) cbargs = +and print_cbarg_list' ?(types = true) noconst cbargs = if types then pr "void *"; pr "user_data"; @@ -316,6 +316,7 @@ | CBArrayAndLen _ -> assert false | CBBytesIn (n, len) -> if types then pr "const void *"; + if noconst then pr "(void *)"; pr "%s, " n; if types then pr "size_t "; pr "%s" len @@ -331,6 +332,7 @@ | CBMutable arg -> assert false | CBString n -> if types then pr "const char *"; + if noconst then pr "(char *)"; pr "%s" n | CBUInt n -> if types then pr "unsigned "; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/generator/C.mli new/libnbd-1.22.3/generator/C.mli --- old/libnbd-1.22.2/generator/C.mli 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/generator/C.mli 2025-07-17 15:05:46.000000000 +0200 @@ -34,7 +34,7 @@ ?closure_style:closure_style -> API.arg list -> API.optarg list -> unit val print_cbarg_list : ?wrap:bool -> ?maxcol:int -> - ?types:bool -> ?parens:bool -> + ?types:bool -> ?parens:bool -> ?noconst:bool -> API.cbarg list -> unit val print_call : ?wrap:bool -> ?maxcol:int -> ?closure_style:closure_style -> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/generator/GoLang.ml new/libnbd-1.22.3/generator/GoLang.ml --- old/libnbd-1.22.2/generator/GoLang.ml 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/generator/GoLang.ml 2025-07-17 15:05:46.000000000 +0200 @@ -159,9 +159,9 @@ C.print_cbarg_list ~wrap:true cbargs; pr "\n"; pr "{\n"; - pr " // golang isn't const-correct, there will be warnings here:\n"; + pr " // golang isn't const-correct, casts avoid warnings here:\n"; pr " return %s_callback ((long *)" cbname; - C.print_cbarg_list ~types:false ~parens:false cbargs; + C.print_cbarg_list ~types:false ~parens:false ~noconst:true cbargs; pr ");\n"; pr "}\n"; pr "\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/aio_buffer.go new/libnbd-1.22.3/golang/aio_buffer.go --- old/libnbd-1.22.2/golang/aio_buffer.go 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/aio_buffer.go 2025-07-17 15:05:46.000000000 +0200 @@ -80,7 +80,7 @@ // Slice creates a slice backed by the underlying C array. The slice can be // used to access or modify the contents of the underlying array. The slice -// must not be used after caling Free(). +// must not be used after calling Free(). func (b *AioBuffer) Slice() []byte { if b.P == nil { panic("Using AioBuffer after Free()") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/callbacks.go new/libnbd-1.22.3/golang/callbacks.go --- old/libnbd-1.22.2/golang/callbacks.go 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/callbacks.go 2025-07-17 15:05:46.000000000 +0200 @@ -36,7 +36,7 @@ // - Create an exported Golang function whose job will be to retrieve // the context and execute the callback in it // (connErrCallback). Such a function should receive a callback ID -// and will use it to retrive the context. +// and will use it to retrieve the context. // // - Create a CGO function similar to the above function but with the // appropriate signature to be registered as a callback in C code diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/examples/aio_copy/aio_copy.go new/libnbd-1.22.3/golang/examples/aio_copy/aio_copy.go --- old/libnbd-1.22.2/golang/examples/aio_copy/aio_copy.go 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/examples/aio_copy/aio_copy.go 2025-07-17 15:05:46.000000000 +0200 @@ -62,8 +62,8 @@ ) // command keeps state of single AioPread call while the read is handled by -// libnbd, until the command reach the front of the queue and can be writen to -// the output. +// libnbd, until the command reach the front of the queue and can be written +// to the output. type command struct { buf libnbd.AioBuffer ready bool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/libnbd_020_aio_buffer_test.go new/libnbd-1.22.3/golang/libnbd_020_aio_buffer_test.go --- old/libnbd-1.22.2/golang/libnbd_020_aio_buffer_test.go 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/libnbd_020_aio_buffer_test.go 2025-07-17 15:05:46.000000000 +0200 @@ -75,7 +75,7 @@ t.Fatalf("Expected %v, got %v", zeroes, buf2.Bytes()) } - /* Crated a zeroed buffer. */ + /* Create a zeroed buffer. */ buf3 := MakeAioBufferZero(uint(32)) defer buf.Free() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/libnbd_590_aio_copy_test.go new/libnbd-1.22.3/golang/libnbd_590_aio_copy_test.go --- old/libnbd-1.22.2/golang/libnbd_590_aio_copy_test.go 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/libnbd_590_aio_copy_test.go 2025-07-17 15:05:46.000000000 +0200 @@ -86,7 +86,7 @@ return 1 } -/* Copy between two libnbd handles using aynchronous I/O (AIO). */ +/* Copy between two libnbd handles using asynchronous I/O (AIO). */ func asynch_copy(t *testing.T, src *Libnbd, dst *Libnbd) { size, _ := dst.GetSize() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/golang/make-dist.sh new/libnbd-1.22.3/golang/make-dist.sh --- old/libnbd-1.22.2/golang/make-dist.sh 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/golang/make-dist.sh 2025-07-17 15:05:46.000000000 +0200 @@ -112,7 +112,7 @@ cp go.mod $v_dir/$version.mod mv $version.zip $v_dir -# Create the list file by amending the curent file on the server. +# Create the list file by amending the current file on the server. list_url=https://download.libguestfs.org/libnbd/golang/libguestfs.org/libnbd/@v/list curl --silent --show-error "$list_url" | sort > $v_dir/list grep -q "$version" $v_dir/list || echo "$version" >> $v_dir/list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/info/Makefile.am new/libnbd-1.22.3/info/Makefile.am --- old/libnbd-1.22.2/info/Makefile.am 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/info/Makefile.am 2025-07-17 15:05:46.000000000 +0200 @@ -49,6 +49,7 @@ info-map-base-allocation-large.sh \ info-map-base-allocation-weird.sh \ info-map-base-allocation-zero.sh \ + info-map-large-extent.sh \ info-map-qemu-dirty-bitmap.sh \ info-map-qemu-allocation-depth.sh \ info-map-totals.sh \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/info/info-map-large-extent.sh new/libnbd-1.22.3/info/info-map-large-extent.sh --- old/libnbd-1.22.2/info/info-map-large-extent.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/libnbd-1.22.3/info/info-map-large-extent.sh 2025-07-17 15:05:46.000000000 +0200 @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# nbd client library in userspace +# Copyright Red Hat +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +. ../tests/functions.sh + +set -e +set -x + +requires $NBDKIT --version +requires $NBDKIT -U - --filter=blocksize-policy data 1 --run 'test "$uri" != ""' + +out=info-map-large-extent.out +cleanup_fn rm -f $out +rm -f $out + +# nbdkit < 1.44 had a bug where 4G large extents would truncate larger than +# the aligned request; whether or not nbdkit is fixed, we can work around it. +$NBDKIT -U - data data='@4294967296 1 @^512' \ + --filter=blocksize-policy blocksize-minimum=512 \ + --run '$VG nbdinfo --map "$uri"' > $out + +cat $out + +diff -u - $out <<EOF + 0 4294967296 3 hole,zero +4294967296 512 0 data +EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/info/main.c new/libnbd-1.22.3/info/main.c --- old/libnbd-1.22.2/info/main.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/info/main.c 2025-07-17 15:05:46.000000000 +0200 @@ -130,7 +130,7 @@ { "can", required_argument, NULL, CAN_OPTION }, { "cannot", required_argument, NULL, CANNOT_OPTION }, { "can-not", required_argument, NULL, CANNOT_OPTION }, - { "cant", required_argument, NULL, CANNOT_OPTION }, + { "can""t", required_argument, NULL, CANNOT_OPTION }, { "color", no_argument, NULL, COLOUR_OPTION }, { "colors", no_argument, NULL, COLOUR_OPTION }, { "colour", no_argument, NULL, COLOUR_OPTION }, @@ -144,15 +144,15 @@ { "has", required_argument, NULL, CAN_OPTION }, { "hasnot", required_argument, NULL, CANNOT_OPTION }, { "has-not", required_argument, NULL, CANNOT_OPTION }, - { "hasnt", required_argument, NULL, CANNOT_OPTION }, + { "hasn""t", required_argument, NULL, CANNOT_OPTION }, { "have", required_argument, NULL, CAN_OPTION }, - { "havent", required_argument, NULL, CANNOT_OPTION }, + { "haven""t", required_argument, NULL, CANNOT_OPTION }, { "havenot", required_argument, NULL, CANNOT_OPTION }, { "have-not", required_argument, NULL, CANNOT_OPTION }, { "is", required_argument, NULL, CAN_OPTION }, { "isnot", required_argument, NULL, CANNOT_OPTION }, { "is-not", required_argument, NULL, CANNOT_OPTION }, - { "isnt", required_argument, NULL, CANNOT_OPTION }, + { "isn""t", required_argument, NULL, CANNOT_OPTION }, { "json", no_argument, NULL, JSON_OPTION }, { "list", no_argument, NULL, 'L' }, { "long-options", no_argument, NULL, LONG_OPTIONS }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/info/map.c new/libnbd-1.22.3/info/map.c --- old/libnbd-1.22.2/info/map.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/info/map.c 2025-07-17 15:05:46.000000000 +0200 @@ -95,8 +95,18 @@ progname); exit (EXIT_FAILURE); } - for (i = prev_entries_size; i < entries.len; i++) + for (i = prev_entries_size; i < entries.len; i++) { + /* nbdkit < 1.44 has a bug where even though we requested an + * aligned request at 4G-alignment, the result can be unaligned + * if it is larger than the request. The easiest workaround is + * to ignore the slop. + */ + if (entries.ptr[i].length > max_len) { + entries.ptr[i].length = max_len; + entries.len = i + 1; + } offset += entries.ptr[i].length; + } } if (!totals) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/interop/interop.c new/libnbd-1.22.3/interop/interop.c --- old/libnbd-1.22.2/interop/interop.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/interop/interop.c 2025-07-17 15:05:46.000000000 +0200 @@ -131,7 +131,7 @@ * need to have our own log handler. * * Also the log levels are quite random. Level 2 doesn't show the - * negotiated cyphersuite, but level 3+ shows excessive detail. + * negotiated ciphersuite, but level 3+ shows excessive detail. */ gnutls_global_set_log_level (2); gnutls_global_set_log_function (tls_log); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/ocaml/examples/asynch_copy.ml new/libnbd-1.22.3/ocaml/examples/asynch_copy.ml --- old/libnbd-1.22.2/ocaml/examples/asynch_copy.ml 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/ocaml/examples/asynch_copy.ml 2025-07-17 15:05:46.000000000 +0200 @@ -10,7 +10,7 @@ let dir_is_read dir = dir land (Int32.to_int NBD.aio_direction_read) <> 0 let dir_is_write dir = dir land (Int32.to_int NBD.aio_direction_write) <> 0 -(* Copy between two libnbd handles using aynchronous I/O (AIO). *) +(* Copy between two libnbd handles using asynchronous I/O (AIO). *) let asynch_copy src dst = let size = NBD.get_size dst in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/ocaml/tests/test_590_aio_copy.ml new/libnbd-1.22.3/ocaml/tests/test_590_aio_copy.ml --- old/libnbd-1.22.2/ocaml/tests/test_590_aio_copy.ml 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/ocaml/tests/test_590_aio_copy.ml 2025-07-17 15:05:46.000000000 +0200 @@ -34,7 +34,7 @@ let dir_is_read dir = dir land (Int32.to_int NBD.aio_direction_read) <> 0 let dir_is_write dir = dir land (Int32.to_int NBD.aio_direction_write) <> 0 -(* Copy between two libnbd handles using aynchronous I/O (AIO). *) +(* Copy between two libnbd handles using asynchronous I/O (AIO). *) let asynch_copy src dst = let size = NBD.get_size dst in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/rust/Makefile.am new/libnbd-1.22.3/rust/Makefile.am --- old/libnbd-1.22.2/rust/Makefile.am 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/rust/Makefile.am 2025-07-17 15:05:46.000000000 +0200 @@ -98,15 +98,17 @@ $(abs_top_builddir)/run echo $(VERSION) > libnbd-sys/libnbd_version.t mv libnbd-sys/libnbd_version.t libnbd-sys/libnbd_version +RUST_TARGET_PARAM := $(if $(RUST_TARGET),--target $(RUST_TARGET)) + target/debug/liblibnbd.rlib: $(source_files) - $(abs_top_builddir)/run $(CARGO) build + $(abs_top_builddir)/run $(CARGO) build $(RUST_TARGET_PARAM) target/doc/libnbd/index.html: $(source_files) $(abs_top_builddir)/run $(CARGO) doc # This will actually build all the examples: target/debug/examples/get-size: $(source_files) - $(abs_top_builddir)/run $(CARGO) build --examples + $(abs_top_builddir)/run $(CARGO) build $(RUST_TARGET_PARAM) --examples if HAVE_POD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/rust/cargo_test/README.md new/libnbd-1.22.3/rust/cargo_test/README.md --- old/libnbd-1.22.2/rust/cargo_test/README.md 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/rust/cargo_test/README.md 2025-07-17 15:05:46.000000000 +0200 @@ -1,3 +1,3 @@ -The solely purpose of this directory is to serve as a test crate for checking if Cargo is useable. -`cargo test`, `cargo doc` and `cargo fmt` are run in the Autoconf script in this directory. If any of the commands failes, -Cargo is assumed not to be useable and the Rust bindings will be disabled. +The sole purpose of this directory is to serve as a test crate for checking if Cargo is usable. +`cargo test`, `cargo doc` and `cargo fmt` are run in the Autoconf script in this directory. If any of the commands fails, +Cargo is assumed not to be usable and the Rust bindings will be disabled. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/rust/tests/test_log/mod.rs new/libnbd-1.22.3/rust/tests/test_log/mod.rs --- old/libnbd-1.22.2/rust/tests/test_log/mod.rs 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/rust/tests/test_log/mod.rs 2025-07-17 15:05:46.000000000 +0200 @@ -49,7 +49,7 @@ } } - /// Check wether a specific message has been logged. + /// Check whether a specific message has been logged. pub fn contains(&self, msg: &str) -> bool { self.entries.lock().unwrap().iter().any(|(_, x)| x == msg) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/tests/closure-lifetimes.c new/libnbd-1.22.3/tests/closure-lifetimes.c --- old/libnbd-1.22.2/tests/closure-lifetimes.c 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/tests/closure-lifetimes.c 2025-07-17 15:05:46.000000000 +0200 @@ -156,7 +156,7 @@ completion_callback, 0); if (cookie == -1) NBD_ERROR; /* read_cb_called is indeterminate at this point, as state machine - * progress may vary based on task schduling and network speed factors. + * progress may vary based on task scheduling and network speed factors. */ assert (completion_cb_called == 0); assert (read_cb_freed == 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libnbd-1.22.2/ublk/Makefile.am new/libnbd-1.22.3/ublk/Makefile.am --- old/libnbd-1.22.2/ublk/Makefile.am 2025-04-22 16:56:54.000000000 +0200 +++ new/libnbd-1.22.3/ublk/Makefile.am 2025-07-17 15:05:46.000000000 +0200 @@ -24,7 +24,6 @@ TESTS_ENVIRONMENT = \ LIBNBD_DEBUG=1 \ $(MALLOC_CHECKS) \ - EXPECTED_VERSION=$(VERSION) \ $(NULL) LOG_COMPILER = $(top_builddir)/run TESTS =