Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nbdkit for openSUSE:Factory checked in at 2026-01-06 17:45:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nbdkit (Old) and /work/SRC/openSUSE:Factory/.nbdkit.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nbdkit" Tue Jan 6 17:45:10 2026 rev:26 rq:1325485 version:1.46.1 Changes: -------- --- /work/SRC/openSUSE:Factory/nbdkit/nbdkit.changes 2025-12-22 22:56:10.262167367 +0100 +++ /work/SRC/openSUSE:Factory/.nbdkit.new.1928/nbdkit.changes 2026-01-06 17:46:38.246694277 +0100 @@ -1,0 +2,16 @@ +Mon Jan 05 20:33:24 UTC 2026 - Charles Arnold <[email protected]> + +- Update to version 1.46.1: (jsc#PED-14625) + * Version 1.46.1. + * docs/nbdkit_read_password.pod: Fix typo in Python description + * server: Rewrite ugly macros in nbdkit_debug_hexdump + * tests: Fix some copy/paste errors in debug_hexdump tests + * file: Link to delay filter in the SEE ALSO section + * file: Sort plugin names in SEE ALSO section + * file: Improve flow of documentation of dir parameter + * docs: Match all return value descriptions of nbdkit_parse_* + * docs: Fix thinko and clarify description of nbdkit_parse_* functions + * tests/test-ocaml-errorcodes.c: Fix typo in error messages + * ocaml: Fix comment about parse_* functions + +------------------------------------------------------------------- Old: ---- nbdkit-1.46.0.tar.xz New: ---- nbdkit-1.46.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nbdkit.spec ++++++ --- /var/tmp/diff_new_pack.7DXT1K/_old 2026-01-06 17:46:40.434784268 +0100 +++ /var/tmp/diff_new_pack.7DXT1K/_new 2026-01-06 17:46:40.454785091 +0100 @@ -1,7 +1,7 @@ # # spec file for package nbdkit # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,7 +27,7 @@ %global broken_test_arches %{arm} aarch64 %{ix86} Name: nbdkit -Version: 1.46.0 +Version: 1.46.1 Release: 0 Summary: Network Block Device server License: BSD-3-Clause @@ -181,9 +181,9 @@ + # The plugins below have non-trivial dependencies are so are # packaged separately. - %package cdi-plugin Summary: Containerized Data Import plugin for %{name} Requires: %{name}-server = %{version}-%{release} @@ -210,9 +210,9 @@ + # In theory this is noarch, but because plugins are placed in _libdir # which varies across architectures, RPM does not allow this. - %package gcs-plugin Summary: Gooogle Cloud Storage plugin %{name} Requires: %{name}-python-plugin = %{version}-%{release} ++++++ _service ++++++ --- /var/tmp/diff_new_pack.7DXT1K/_old 2026-01-06 17:46:40.762797759 +0100 +++ /var/tmp/diff_new_pack.7DXT1K/_new 2026-01-06 17:46:40.802799404 +0100 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> <param name="filename">nbdkit</param> - <param name="revision">v1.46.0</param> + <param name="revision">v1.46.1</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://gitlab.com/nbdkit/nbdkit.git</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.7DXT1K/_old 2026-01-06 17:46:41.046809440 +0100 +++ /var/tmp/diff_new_pack.7DXT1K/_new 2026-01-06 17:46:41.110812072 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.com/nbdkit/nbdkit.git</param> - <param name="changesrevision">8c660cbf507ce6008483ae21c186444aa3dc0f11</param></service></servicedata> + <param name="changesrevision">e1d3d4106c06d3c448e59d16aa756353babe6074</param></service></servicedata> (No newline at EOF) ++++++ nbdkit-1.46.0.tar.xz -> nbdkit-1.46.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/configure.ac new/nbdkit-1.46.1/configure.ac --- old/nbdkit-1.46.0/configure.ac 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/configure.ac 2026-01-02 11:07:39.000000000 +0100 @@ -31,7 +31,7 @@ m4_define([NBDKIT_VERSION_MAJOR], [1]) m4_define([NBDKIT_VERSION_MINOR], [46]) -m4_define([NBDKIT_VERSION_MICRO], [0]) +m4_define([NBDKIT_VERSION_MICRO], [1]) AC_INIT([nbdkit], NBDKIT_VERSION_MAJOR.NBDKIT_VERSION_MINOR.NBDKIT_VERSION_MICRO) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/docs/nbdkit_parse_delay.pod new/nbdkit-1.46.1/docs/nbdkit_parse_delay.pod --- old/nbdkit-1.46.0/docs/nbdkit_parse_delay.pod 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/docs/nbdkit_parse_delay.pod 2026-01-02 11:07:39.000000000 +0100 @@ -54,11 +54,13 @@ =head1 RETURN VALUE -On success the function returns C<0> and sets C<*sec> and C<*nsec> to -the seconds and nanoseconds parsed. +On success the function returns C<0>. If C<sec != NULL>, set C<*sec> +to the parsed seconds. If C<nsec != NULL>, set C<*nsec> to the parsed +nanoseconds. If either C<sec == NULL> or C<nsec == NULL>, the parsing +is done but the corresponding result is discarded. If there is an error it calls L<nbdkit_error(3)> and returns C<-1>. -In this case, C<*sec> and C<*nsec> are not touched. +On error C<*sec> and C<*nsec> are always unchanged. =head1 LANGUAGE BINDINGS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/docs/nbdkit_parse_int.pod new/nbdkit-1.46.1/docs/nbdkit_parse_int.pod --- old/nbdkit-1.46.0/docs/nbdkit_parse_int.pod 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/docs/nbdkit_parse_int.pod 2026-01-02 11:07:39.000000000 +0100 @@ -52,8 +52,9 @@ =head1 RETURN VALUE -On success the functions return C<0> and set C<*r> to the parsed value -(unless C<*r == NULL> in which case the result is discarded). +On success the functions return C<0>. If C<r != NULL>, they set C<*r> +to the parsed value. If C<r == NULL>, the parsing is done but the +result is discarded. On error, L<nbdkit_error(3)> is called and the functions return C<-1>. On error C<*r> is always unchanged. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/docs/nbdkit_parse_probability.pod new/nbdkit-1.46.1/docs/nbdkit_parse_probability.pod --- old/nbdkit-1.46.0/docs/nbdkit_parse_probability.pod 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/docs/nbdkit_parse_probability.pod 2026-01-02 11:07:39.000000000 +0100 @@ -21,13 +21,17 @@ =head1 RETURN VALUE -On success the function returns C<0> and sets C<*ret>. The -probability is always a finite number E<ge> 0.0, but B<note the result -may be larger than 1.0> (for example if S<C<str == "200%">> then the -function will set S<C<*ret = 2.0>>). If you want to clamp the upper -bound the caller must do that. +On success the function returns C<0>. If C<ret != NULL>, set C<*ret> +to the parsed value. If C<ret == NULL>, the parsing is done but the +result is discarded. -On error, L<nbdkit_error(3)> is called and C<-1> is returned. +The probability is always a finite number E<ge> 0.0, but B<note the +result may be larger than 1.0> (for example if S<C<str == "200%">> +then the function will set S<C<*ret = 2.0>>). If you want to clamp +the upper bound the caller must do that. + +On error, L<nbdkit_error(3)> is called and C<-1> is returned. On +error C<*ret> is always unchanged. =head1 LANGUAGE BINDINGS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/docs/nbdkit_read_password.pod new/nbdkit-1.46.1/docs/nbdkit_read_password.pod --- old/nbdkit-1.46.0/docs/nbdkit_read_password.pod 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/docs/nbdkit_read_password.pod 2026-01-02 11:07:39.000000000 +0100 @@ -79,7 +79,7 @@ In L<nbdkit-python-plugin(3)>: import nbdkit - password = nbdkit.parse_size(value) + password = nbdkit.read_password(value) =head1 HISTORY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/plugins/file/nbdkit-file-plugin.pod new/nbdkit-1.46.1/plugins/file/nbdkit-file-plugin.pod --- old/nbdkit-1.46.0/plugins/file/nbdkit-file-plugin.pod 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/plugins/file/nbdkit-file-plugin.pod 2026-01-02 11:07:39.000000000 +0100 @@ -28,8 +28,9 @@ (eg. F</dev/sda>) may also be served. If you use the C<dir> parameter the plugin works in a different mode -where it serves files from the given C<DIRECTORY>, chosen by the -client using the NBD export name. +where it serves files from the given C<DIRECTORY>. The filename is +chosen L<by the client sending an NBD export name|/Serving multiple +files and block devices>. If you use the C<fd> or C<dirfd> parameter then you can pass the file descriptor of a single disk or a directory to the plugin, inherited @@ -166,8 +167,27 @@ $ nbdkit file dir=/var/tmp/exports will serve three exports called C<"disk1">, C<"disk2"> and C<"sda1">. -The first two are regular files and the last is a block device. You -can add or remove files or symbolic links from the directory while +The first two are regular files and the last is a block device. + +The NBD URIs of the three exports are: + +=over 4 + +=item * + +C<nbd://localhost/disk1> + +=item * + +C<nbd://localhost/disk2> + +=item * + +C<nbd://localhost/sda1> + +=back + +You can add or remove files or symbolic links from the directory while nbdkit is running. To list exports, use L<nbdinfo(1)> I<--list> option, for example: @@ -319,11 +339,12 @@ L<nbdkit(1)>, L<nbdkit-plugin(3)>, -L<nbdkit-split-plugin(1)>, +L<nbdkit-nfs-plugin(1)>, L<nbdkit-partitioning-plugin(1)>, +L<nbdkit-split-plugin(1)>, L<nbdkit-tmpdisk-plugin(1)>, -L<nbdkit-nfs-plugin(1)>, L<nbdkit-count-filter(1)>, +L<nbdkit-delay-filter(1)>, L<nbdkit-exportname-filter(1)>, L<nbdkit-fua-filter(1)>, L<nbdkit-luks-filter(1)>, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/plugins/ocaml/NBDKit.mli new/nbdkit-1.46.1/plugins/ocaml/NBDKit.mli --- old/nbdkit-1.46.0/plugins/ocaml/NBDKit.mli 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/plugins/ocaml/NBDKit.mli 2026-01-02 11:07:39.000000000 +0100 @@ -179,8 +179,9 @@ (* Note OCaml has functions already for parsing other integers, so * there is no need to bind them here. We only bind the functions * which have special abilities in nbdkit: [parse_size] can parse - * human sizes, [parse_probability] and [parse_bool] parses a range - * of nbdkit-specific strings, and [read_password] suppresses echo. + * human sizes, [parse_probability], [parse_bool] and [parse_delay] + * parse a range of nbdkit-specific strings, and [read_password] + * suppresses echo. *) val parse_size : string -> int64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/server/debug.c new/nbdkit-1.46.1/server/debug.c --- old/nbdkit-1.46.0/server/debug.c 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/server/debug.c 2026-01-02 11:07:39.000000000 +0100 @@ -172,6 +172,44 @@ errno = err; } +struct hexdump_line { + char str_offset[16+1]; /* The offset field */ + char hex[16*3+1]; /* Sixteen pairs of hex digits (or spaces) */ + char chars[16+1]; /* The printable chars (or spaces) */ + uint64_t offset; +}; + +static inline void +hexdump_reset_line (struct hexdump_line *line) +{ + snprintf (line->str_offset, sizeof line->str_offset, "%08" PRIx64, + ROUND_DOWN (line->offset, 16)); + memset (line->hex, ' ', sizeof line->hex - 1); + line->hex[sizeof line->hex - 1] = '\0'; + memset (line->chars, ' ', sizeof line->chars - 1); + line->chars[sizeof line->chars - 1] = '\0'; + +} + +static inline void +hexdump_set_byte (struct hexdump_line *line, size_t i, uint8_t b) +{ + sprintf (&line->hex[i*3], "%02x", b); + line->hex[i*3+2] = ' '; + line->chars[i] = ascii_isprint (b) ? b : '.'; +} + +/* Send the final string to nbdkit_debug. */ +static inline void +hexdump_emit_debug (struct hexdump_line *line, const char *prefix) +{ + /* Start by splitting up the hex digits into two groups of 8. */ + line->hex[8*3-1] = '\0'; + nbdkit_debug ("%s%s: %s %s |%s|", + prefix ? : "", + line->str_offset, line->hex, &line->hex[8*3], line->chars); +} + /* Usually this function would be part of server/public.c, but in this * case we want to use nbdkit_debug instead of debug_in_server. */ @@ -182,62 +220,34 @@ if (!verbose) return; + struct hexdump_line line = { .offset = start }; const uint8_t *buf = vbuf; - uint64_t offset = start, skip; + uint64_t skip; size_t i; - char str_offset[16+1]; /* The offset field */ - char hex[16*3+1]; /* Sixteen pairs of hex digits (or spaces) */ - char chars[16+1]; /* The printable chars (or spaces) */ - -#define HEXDUMP_RESET_STRS() \ - snprintf (str_offset, sizeof str_offset, "%08" PRIx64, \ - ROUND_DOWN (offset, 16)); \ - memset (hex, ' ', sizeof hex - 1); \ - hex[sizeof hex - 1] = '\0'; \ - memset (chars, ' ', sizeof chars - 1); \ - chars[sizeof chars - 1] = '\0'; - -#define HEXDUMP_SET_BYTE(i, b) \ - sprintf (&hex[(i)*3], "%02x", (b)); \ - hex[(i)*3+2] = ' '; \ - chars[i] = ascii_isprint ((b)) ? (b) : '.'; - -/* Send the final string to nbdkit_debug. Start by splitting up the - * hex digits into two groups of 8. - */ -#define HEXDUMP_EMIT_DEBUG() \ - hex[8*3-1] = '\0'; \ - nbdkit_debug ("%s%s: %s %s |%s|", \ - prefix ? : "", \ - str_offset, hex, &hex[8*3], chars); /* Unaligned head. */ - if (! IS_ALIGNED (offset, 16)) { - HEXDUMP_RESET_STRS (); - skip = offset % 16; + if (! IS_ALIGNED (line.offset, 16)) { + hexdump_reset_line (&line); + skip = line.offset % 16; for (i = skip; i < 16 && len > 0; ++i) { - HEXDUMP_SET_BYTE (i, *buf); + hexdump_set_byte (&line, i, *buf); buf++; - offset++; + line.offset++; len--; } - HEXDUMP_EMIT_DEBUG (); + hexdump_emit_debug (&line, prefix); } /* Aligned body and unaligned tail. */ while (len > 0) { - assert (IS_ALIGNED (offset, 16)); - HEXDUMP_RESET_STRS (); + assert (IS_ALIGNED (line.offset, 16)); + hexdump_reset_line (&line); for (i = 0; i < 16 && len > 0; ++i) { - HEXDUMP_SET_BYTE (i, *buf); + hexdump_set_byte (&line, i, *buf); buf++; - offset++; + line.offset++; len--; } - HEXDUMP_EMIT_DEBUG (); + hexdump_emit_debug (&line, prefix); } - -#undef HEXDUMP_RESET_STRS -#undef HEXDUMP_SET_BYTE -#undef HEXDUMP_EMIT_DEBUG } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/tests/test-debug-hexdump-plugin.c new/nbdkit-1.46.1/tests/test-debug-hexdump-plugin.c --- old/nbdkit-1.46.0/tests/test-debug-hexdump-plugin.c 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/tests/test-debug-hexdump-plugin.c 2026-01-02 11:07:39.000000000 +0100 @@ -42,13 +42,13 @@ #include <nbdkit-plugin.h> static void * -password_open (int readonly) +hexdump_open (int readonly) { return NBDKIT_HANDLE_NOT_NEEDED; } static int64_t -password_get_size (void *handle) +hexdump_get_size (void *handle) { return INT64_MAX; } @@ -57,8 +57,8 @@ /* Never actually called, but return zeroes. */ static int -password_pread (void *handle, void *buf, uint32_t count, uint64_t offset, - uint32_t flags) +hexdump_pread (void *handle, void *buf, uint32_t count, uint64_t offset, + uint32_t flags) { memset (buf, 0, count); return 0; @@ -66,7 +66,7 @@ /* We hexdump the buffer, with a prefix string, and discard the data. */ static int -password_pwrite (void *handle, const void *buf, uint32_t count, uint64_t offset, +hexdump_pwrite (void *handle, const void *buf, uint32_t count, uint64_t offset, uint32_t flags) { nbdkit_debug_hexdump (buf, count, "DUMP: ", offset); @@ -74,12 +74,12 @@ } static struct nbdkit_plugin plugin = { - .name = "hexdump-debug", + .name = "hexdump", .version = PACKAGE_VERSION, - .open = password_open, - .get_size = password_get_size, - .pread = password_pread, - .pwrite = password_pwrite, + .open = hexdump_open, + .get_size = hexdump_get_size, + .pread = hexdump_pread, + .pwrite = hexdump_pwrite, }; NBDKIT_REGISTER_PLUGIN (plugin) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/tests/test-debug-hexdump.sh new/nbdkit-1.46.1/tests/test-debug-hexdump.sh --- old/nbdkit-1.46.0/tests/test-debug-hexdump.sh 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/tests/test-debug-hexdump.sh 2026-01-02 11:07:39.000000000 +0100 @@ -45,8 +45,8 @@ plugin=.libs/test-debug-hexdump-plugin.$SOEXT requires test -f $plugin -out=debug-shutdown.out -hexout=debug-shutdown.hexout +out=debug-hexdump.out +hexout=debug-hexdump.hexout files="$out $hexout" rm -f $files cleanup_fn rm -f $files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nbdkit-1.46.0/tests/test-ocaml-errorcodes.c new/nbdkit-1.46.1/tests/test-ocaml-errorcodes.c --- old/nbdkit-1.46.0/tests/test-ocaml-errorcodes.c 2025-12-20 15:34:35.000000000 +0100 +++ new/nbdkit-1.46.1/tests/test-ocaml-errorcodes.c 2026-01-02 11:07:39.000000000 +0100 @@ -102,7 +102,7 @@ if (r != -1) { fprintf (stderr, - "%s: FAIL: reading sector %" PRIu64 "should have failed\n", + "%s: FAIL: reading sector %" PRIu64 " should have failed\n", argv[0], tests[i].offset / 512); exit (EXIT_FAILURE); } @@ -119,7 +119,7 @@ else { /* tests[i].expected_errno == 0 */ if (r != 0) { fprintf (stderr, - "%s: FAIL: reading sector %" PRIu64 "should have succeeded\n", + "%s: FAIL: reading sector %" PRIu64 " should have succeeded\n", argv[0], tests[i].offset / 512); exit (EXIT_FAILURE); }
