vcswatch reports that
this package seems to have new commits in its VCS but has
not yet updated debian/changelog. You should consider updating
the Debian changelog and uploading this new version into the archive.
Here are the relevant commit logs:
commit 98dc03a56e4a88fc692911ce6566fcfea857b9e1
Author: Wouter Verhelst <w@uter.be>
Date: Thu Mar 19 17:23:21 2026 +0200
Whoops, fix the version number :)
commit d98b7c8274986c27841e63b41376a11a4e5849f9
Author: Wouter Verhelst <w@uter.be>
Date: Thu Mar 19 17:20:28 2026 +0200
Changelog entry
commit 86d2b4b16791693a76aef417cb1b371310ebd808
Author: Wouter Verhelst <w@uter.be>
Date: Thu Mar 19 16:49:29 2026 +0200
We're not interested in GNUTLS_E_AGAIN
commit 5c7e1e74b615db9c161c083e4e98c17d1bfb0860
Author: Wouter Verhelst <w@uter.be>
Date: Thu Mar 19 16:43:25 2026 +0200
Drop libnl_mock.h, not actually used
commit 0bc57590703e64d5b15c90d4252d4adb027766b4
Author: Wouter Verhelst <w@uter.be>
Date: Mon Feb 23 11:38:19 2026 +0200
Add cautionary note about the nature of this documentation.
commit e3a1342cdc1cfc276e4b0b4a5bd15e905e1a5f48
Author: Wouter Verhelst <w@uter.be>
Date: Mon Feb 23 11:32:51 2026 +0200
Implement persist mode for netlink
There is a "-p" mode for ioctl connections, which attempts to reconnect
to the server if the connection dies. It doesn't really work anymore
though.
The netlink interface has a "monitor" message that can get sent to a
multicast group, and a "reconfigure" message that can replace dropped
connections. Additionally, there is a "dead link timeout" option which
can be used to tell the kernel to block I/O to a device for X amount of
time.
The three combined allow for a much more flexible way of persist mode
using netlink.
Implement that, and a test for it.
TODO: test. It compiles, and seems to behave correctly against our
mocked libnl3, that's all I can say for now, but no guarantees (yet)
that it will actually work correctly against a kernel and/or an
unreliable network.
Signed-Off-By: Wouter Verhelst <w@uter.be>
commit 1d1291b1e07e4581f119ac6108cc83fada214b09
Author: Wouter Verhelst <w@uter.be>
Date: Mon Feb 23 11:19:54 2026 +0200
Don't set custom push/pull functions unconditionally
We set custom push/pull functions for GnuTLS so that it works under
socket-wrapper.
However, this has downsides:
- There is a slight performance impact
- We have also observed issues with nonblocking IO causing floods of
EAGAIN errors in the test suite.
This is fine for a test environment, but not when running for real.
To avoid issues when the code is actually being used, only set the
custom push/pull functions when SOCKET_WRAPPER_DIR environment variable
is set, indicating that we're running under socket-wrapper.
Signed-Off-By: Wouter Verhelst <w@uter.be>
commit 4266f1d0ef7d9e3830391bcce558f7b6f7d33eaf
Author: Wouter Verhelst <w@uter.be>
Date: Sun Feb 22 21:02:48 2026 +0200
Enable socket_wrapper and nss_wrapper support for tests
Uncomment the socket_wrapper and nss_wrapper checks in configure.ac and add custom GnuTLS push/pull functions to work better with socket_wrapper. Update test environment to use cwrap_test when both wrappers are available.
commit 6f8149a90d0eb7539e3287a628333f466646bb09
Author: Wouter Verhelst <w@uter.be>
Date: Sun Feb 22 20:03:08 2026 +0200
Ignore our LD_PRELOAD thingy
commit 26c851771245f8f1e354868b9427f7ed99ff7151
Author: Wouter Verhelst <w@uter.be>
Date: Sun Feb 22 17:16:05 2026 +0200
Move the netlink-based connection status into nbd-client
netlink-get-status was a command written by Josef, but we already had a
check_conn function that did the same using the ioctl interface.
It's confusing to have two commands for that, so integrate the
connection status stuff into nbd-client and drop netlink-get-status
commit 3ad98b1cdf7e3afd6ff932c80eba74520d02c0a3
Author: Wouter Verhelst <w@uter.be>
Date: Sun Feb 22 16:04:37 2026 +0200
Add tests for nbd-client
We can't test the ioctl-based paths; but with some LD_PRELOAD tricks and
mocked libnl reimplementations, we *can* test the netlink-based paths.
(strictly speaking that's not true, we can also test the ioctl-based
paths in that way by mocking more, but fugly)
Signed-Off-By: Wouter Verhelst <w@uter.be>
commit 23f74dff424fb45864f48ba5ef30a0f6cc3fc77a
Author: Wouter Verhelst <w@uter.be>
Date: Sun Feb 22 12:50:36 2026 +0200
Refactor netlink_configure to have less arguments
commit 8d456e682c2cc0ac92dc36bb95ecadd1bc14e8a1
Author: Wouter Verhelst <w@uter.be>
Date: Sat Feb 21 10:00:52 2026 +0200
Include an introductory paragraph.
Closes: gh-181
commit 13dba339fdea5d5d4bddaf408ac43296ff2a0b0b
Author: Wouter Verhelst <w@uter.be>
Date: Fri Feb 20 20:39:22 2026 +0200
Fix missing install, and also publish to coveralls
commit bebd77c940206cc42b808704f7ccf61e788b0d2d
Author: Wouter Verhelst <w@uter.be>
Date: Fri Feb 20 20:17:45 2026 +0200
Do the coverage thing
commit 05287e88a605530d93c50d23479570bb17453e36
Author: Wouter Verhelst <w@uter.be>
Date: Sun Dec 28 12:07:51 2025 +0200
Fix typo
Fixes: d294cda ("Depend on the nbd module being loaded")
commit ea3cb75afd49e1b85ae67b7d5c86d5cc04163fdf
Author: Wouter Verhelst <w@uter.be>
Date: Sun Dec 28 12:03:26 2025 +0200
One more u32 -> uint32_t change
The original pull request did not see this code and therefore did not
include it. Fix.
commit 1b7a789ddeb651337c262166304618d4e4b6cc31
Author: Lars H. Rohwedder <RokerHRO@users.noreply.github.com>
Date: Thu Dec 4 14:43:49 2025 +0100
u64 -> uint64_t, u32 -> uint32_t
Signed-off-by: Lars H. Rohwedder <RokerHRO@users.noreply.github.com>
commit 7773eec30d9e5f9f9039ea6c3dcf9100e60b0b43
Author: Baruch <bmburstein@gmail.com>
Date: Thu Jun 5 16:12:25 2025 +0300
Fix wrong compare in test
commit 148b0b05a65238c2d63d10301c257887c1c91ac8
Author: Yunseong Kim <ysk@kzalloc.com>
Date: Mon Sep 15 00:29:42 2025 +0000
nbd: fix build failure after openunix/opennet refactor
Commit 17043b068f43 ("Refactor the negotiate() and connected functions")
removed all parameters from openunix() and opennet(), but main()
still called them with host/port arguments. This causes build errors:
nbd-client.c:1224:32: error: too many arguments to function ‘openunix’; expected 0, have 1
nbd-client.c:1226:32: error: too many arguments to function ‘opennet’; expected 0, have 2
Update the calls in main() to match the new prototypes.
Fixes: 17043b068f43 ("Refactor the negotiate() and connected functions")
Signed-off-by: Yunseong Kim <ysk@kzalloc.com>
Signed-off-by: Wouter Verhelst <w@uter.be>
commit 0e2b202bca90c72b32f0baae2a58937f39d3eaae
Author: berend de schouwer <berend@deschouwer.co.za>
Date: Thu Jun 26 18:47:10 2025 +0200
Remove the maillinglist reference
commit 7fe07d44713f5d21fdd855d8102f1d7259cc4b1c
Author: berend de schouwer <berend@deschouwer.co.za>
Date: Thu May 8 09:34:00 2025 +0200
Fix copy-on-write corruption
Copy-on-write can cause I/O errors and corruption, as
described in 'BRANCH'
First, copy-on-write can send corrupt data over the
network -- even though on-disk it's fine -- with
sequential reads.
Second, sparse-copy-on-write can fail to write
correctly to disk, when extending the file.
commit 37a12b97e28ffc29268cf3f5528596d632ca9362
Author: Eric Blake <eblake@redhat.com>
Date: Sat May 31 10:31:59 2025 -0500
spec: Relax block status alignment to match existing servers
At least nbdkit 1.42 has several scenarios where it can advertise a
minimum block size, but where block status results are not aligned to
that size. While most of those instances are bugs fixed in the
upcoming 1.44, we have to consider the case when a server advertises
an image size which is not a multiple of the minimum block size. The
spec is already clear that a server SHOULD advertise aligned sizes,
but when it doesn't, the requirement that block status results be
aligned is impossible to meet. Relaxing the standard from MUST to
SHOULD warns clients to be prepared for weaknesses in the server, as
well as making it less troublesome to try and collect block status
even for an unaligned tail of an image.
Signed-off-by: Eric Blake <eblake@redhat.com>
commit 6d6732e38435505630ec14cd8c3dd5ea6c75b87c
Author: Leonid Evdokimov <leon@darkk.net.ru>
Date: Thu May 1 00:55:15 2025 +0300
README: update qemu-nbd doc link
commit a0ac1d63da157c8f76c0b4c47e27ffce3e452efd
Author: Eric Blake <eblake@redhat.com>
Date: Tue Nov 19 16:56:00 2024 -0600
nbd-client: Add support for setting /sys/block/nbdN/backend
In order for userspace apps to idempotently ensure that a
netlink-managed NBD device corresponds to the device that the app is
expecting, kernel 5.14 added a netlink backend string identifier.
Expose the ability for setting this identifier when binding to a
device; the user can then check with /sys/block/nbdN/backend to see if
the contents match expectations.
Signed-off-by: Eric Blake <eblake@redhat.com>
commit c2bfe0686621cc37f846e0c84417f622aa9cba28
Author: Eric Blake <eblake@redhat.com>
Date: Tue Nov 19 17:12:49 2024 -0600
nbd-client: Fix use without -N
The refactoring in commit 17043b068 causes nbd-client without -N to
segfault, instead of using the desired default export.
Signed-off-by: Eric Blake <eblake@redhat.com>
commit c1e4baa4fdaa82efb2ab05c8e1f20ba44fb17c8f
Author: Lin Liu <Lin.Liu01@cloud.com>
Date: Sun Sep 29 02:33:12 2024 +0000
nbd-client: Exit with error code other than EXIT_FAILURE
When nbd-client tries to connect to nbd device, it talks to kernel
via netlink. If the nbd device is taken and locked by other process
like systemd-udevd, kernel will return EBUSY to nbd client. However,
nbd client just hide this error code with error message to check
dmesg logs.
Checking the dmesg logs is error-prone and not friendly for other
caller program. Instead, nbd-client should return the error code
to the caller to handle it properly.
Signed-off-by: Lin Liu <Lin.Liu01@cloud.com>
commit 18d6e36150c50ae44af69bf532d19993b7a9cc05
Author: Janis Kalofolias <kalofoli@ceid.upatras.gr>
Date: Tue Oct 1 12:21:25 2024 +0200
Fix nbd-server infinite loop for TLS
When the nbd-client disconnects from a TLS connection, the gnutls_record_recv
function will return a zero value. Due to a faulty/missing check, this
causes the readit_tls call to enter an infinite loop, with all terrible
consequences that this has. This is a very problematic bug that causes a
full CPU usage, and is only treatable by killing the nbd-server.
This fix adds the missing check and an appropriate message that
terminates the forked server child graceously.
Signed-off-by: Janis Kalofolias <code@kalofolias.de>
commit f8943a9fa0b5fa5d119106e0e5b9dbb32af7e4b5
Author: Wouter Verhelst <w@uter.be>
Date: Sat Sep 28 13:24:44 2024 +0200
Refactor the negotiate() and connected functions
Having a gazillion arguments to negotiate is unwieldy and
unmaintainable. Use the CLIENT type to handle parsed stuff instead.
Originally we were going to pass a pointer to a CLIENT, but we need to
keep the cur_client global variable for config file parsing, so might
as well reuse that.
Not so clean, so we might revisit this in the future, but at least this
reduces complexity somewhat.
Signed-off-by: Wouter Verhelst <w@uter.be>
commit cc4708e11e331e68a9bacaac0fc73a90e946ebba
Author: Josef Bacik <jbacik@fb.com>
Date: Tue Mar 28 11:28:18 2017 -0400
nbd: add nbd-get-status
Add support for the netlink get status command to get the connection
status of one or all of the nbd devices in a system.
Signed-off-by: Josef Bacik <jbacik@fb.com>
[Forward-ported after seven (!) years by Wouter Verhelst]
Signed-off-by: Wouter Verhelst <w@uter.be>
commit 97974142c05187a7c562ed323415be340a9b5c3f
Author: Wouter Verhelst <w@uter.be>
Date: Sun Aug 18 19:09:15 2024 +0200
Drop note about sourceforge.
Closes: gh-168
Signed-off-by: Wouter Verhelst <w@uter.be>
commit f0b9ddcf7784aa688db8c663358121998ce8ac7b
Author: Eric Blake <eblake@redhat.com>
Date: Fri Aug 2 08:32:05 2024 -0500
docs: Tweak location of qemu nbd extensions
Upstream QEMU has moved the location of its NBD docs, as of its commit
8dac93a8e[1]. Instead of pointing to a raw git .txt source file that
no longer exists, we now point to the rendered html version built from
rST [2].
[1] https://gitlab.com/qemu-project/qemu/-/commit/8dac93a8e, see
also https://lists.gnu.org/archive/html/qemu-devel/2024-08/msg00223.html
[2] https://www.qemu.org/docs/master/interop/nbd.html
CC: qemu-devel@nongnu.org
Signed-off-by: Eric Blake <eblake@redhat.com>
commit d91192771e27ccc068e513645fbc83c73dc43311
Author: Wouter Verhelst <w@uter.be>
Date: Tue Aug 6 19:22:11 2024 +0200
Stop using gcc linker magic
Somehow gcc figures out that nbd_err is err, because of the macro? not
sure.
This is confusing and black magic, stop doing it.
commit 04a9f0ecac2d35aa27742012eed5cd9bb06b2faa
Author: Wouter Verhelst <w@uter.be>
Date: Tue Aug 6 19:06:33 2024 +0200
Drop gznbd
We have not looked at this in forever, and it probably does not work
with modern nbd clients anymore.
commit 72a349146df90256563aae01b933f36c266f95c1
Author: Wouter Verhelst <w@uter.be>
Date: Tue Aug 6 19:01:02 2024 +0200
Reimplement daemonize() without using daemon()
The daemon() helper function is widely implemented, but is not really
standardized and is actually somewhat buggy on some platforms.
Implementing the desired functionality is also not all that complicated.
So, do it ourselves.
Closes: gh-161
commit ea0ea6049a2051f550916b52b1a833824d556363
Author: Wouter Verhelst <w@uter.be>
Date: Tue Aug 6 18:17:22 2024 +0200
Clarify error message when not root
nbd-client requires root to set up devices. The error message when we
are not root was less than helpful.
Fix.
Closes: gh-167
Signed-off-by: Wouter Verhelst <w@uter.be>
commit c76510a0acc64dee8f3f950a4e770f2512125699
Author: Khem Raj <raj.khem@gmail.com>
Date: Mon May 20 17:50:51 2024 -0700
nbd-client: Fix build on musl + gcc14
GCC-14 has promoted incompatible-pointer-types warning into error which is
now flagged especially with when building on musl
Fixes following error
| ../nbd-3.26.1/nbd-client.c: In function 'openunix':
| ../nbd-3.26.1/nbd-client.c:345:27: error: passing argument 2 of 'connect' from incompatible pointer type [-Wincompatible-pointer-types]
| 345 | if (connect(sock, &un_addr, sizeof(un_addr)) == -1) {
| | ^~~~~~~~
| | |
| | struct sockaddr_un *
| In file included from ../nbd-3.26.1/nbd-client.c:25:
| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/nbd/3.26.1/recipe-sysroot/usr/include/sys/socket.h:386:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
| 386 | int connect (int, const struct sockaddr *, socklen_t);
| | ^~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Khem Raj <raj.khem@gmail.com>
commit 59f9906bc8808b070b1dc1eed3872bcdab99c79f
Author: Lars H. Rohwedder <RokerHRO@users.noreply.github.com>
Date: Mon May 6 21:19:15 2024 +0200
buffer is 'const void*' in output functions, as in write(2), fwrite(3) etc.
commit a2ba4432813dad9b320ee6a3beb63656c590e25c
Author: roker <roker@pep-project.org>
Date: Wed Apr 10 11:42:44 2024 +0200
umask(77) -> umask(077): "allow rwx permission for the owner, but prohibit rwx for everyone else"
commit 1d9c541d30b4bb23709e04cbf49c2dc306646cb8
Author: roker <roker@pep-project.org>
Date: Wed Apr 10 11:33:35 2024 +0200
clean-up headers necessary for treefiles.o, minor source formatting fixes, remove unecessary heap allocation in open_treefile()
commit a97a81886e86685a6f1f6f4bd9e21668f252a25c
Author: Wouter Verhelst <w@uter.be>
Date: Sun Apr 7 12:42:02 2024 +0200
Actually, do this differently
Disabling all versions of TLS and then enabling those versions that are
supported only means we get to do this again when (if ever) a new
version of TLS is defined.
Enabling all versions of TLS and then disabling those versions that are
*not* supported means we support it the moment GnuTLS supports it.
commit 62c7331f55a17b3299e1c3ecd209b45c5970094d
Author: Wouter Verhelst <w@uter.be>
Date: Sun Apr 7 12:38:33 2024 +0200
Enable TLS1.3 by default
Older versions of GnuTLS did not support TLS1.3, and so we couldn't
update the version priority string to enable that by default, yet.
This now seems to no longer be a problem, so enable support for TLS1.3
by default while still disallowing TLS1.1 and below.
commit 54d3d5882bbee7fc35bf06605a54d6ca32cbdb15
Author: roker <roker@pep-project.org>
Date: Sat Mar 30 12:36:54 2024 +0100
fix clang warnings in nbd-server.c
commit 2cfa870d9ca7ede1a66662186204431397a63b99
Author: Christian Hesse <mail@eworm.de>
Date: Mon Mar 4 11:24:57 2024 +0100
fix generation of systemd service
The shell template is no longer required to generate man pages, so more
it to systemd/ and ship it in tarball.
Signed-off-by: Wouter Verhelst <w@uter.be>
commit f7b5f91af3cd086147a6dbf68ef1717d3864e4d4
Merge: 23043cc 98ca158
Author: Wouter Verhelst <wouter@debian.org>
Date: Sat Feb 21 08:29:19 2026 +0000
Merge branch 'improve-autopkgtest' into 'debian'
d/t/initrd-boot: improve robustness of autopkgtest
See merge request wouter/nbd!8
commit 23043cc021e75448febd00bcb4a74e16a656cdcb
Author: Wouter Verhelst <w@uter.be>
Date: Sun Sep 1 20:12:37 2024 +0200
Resync with salsa
commit 98ca1586d880f226ec2f54a7899645feac936907
Author: Pragyansh Chaturvedi <pragyansh.chaturvedi@canonical.com>
Date: Fri Aug 8 15:33:48 2025 +0200
d/t/initrd-boot: improve robustness of autopkgtest
* Fix nbd autopkgtests to make the initrd-boot autopkgtest more robust and
remove the flaky tag (LP #2054480)
- d/t/control: remove flaky for initrd-boot, allow-root for initrd-boot test
- d/t/initrd-boot: make initrd-boot pass on all architectures
+ Allocate swap space to not run out of memory (except armhf where it isn't
possible)
+ Changes for s390x and ppc64el (LP #2078255)
- Disable vga in debvm-run to avoid failing on ppc64el
- Disable early failure as debvm-waitssh might fail on some
architectures even when the test might pass
commit f02ef895d68da32bfe9eb871318addc6ec0e6539
Author: Wouter Verhelst <w@uter.be>
Date: Sun Sep 1 20:12:37 2024 +0200
Drop /sbin from nbd-client. (Closes: #1080063).
commit cb7b3ba50e8fe06beab447ceef50df6d5a67020e
Author: Wouter Verhelst <w@uter.be>
Date: Sat Aug 31 14:26:05 2024 +0200
Add changelog entry
commit bba8403dde0e3d6c598996cd4030406e050c7292
Author: Wouter Verhelst <w@uter.be>
Date: Sat Aug 31 14:17:19 2024 +0200
Make things be much slower
commit 8ba5fc1061f241191651cdf53d0e2f36fd1826d9
Author: Wouter Verhelst <w@uter.be>
Date: Mon Aug 26 10:05:14 2024 +0200
Try a few things
commit b5bafe37b179478d0caa36a85f43a71da8ae878e
Merge: 7c10c69 681b930
Author: Wouter Verhelst <wouter@debian.org>
Date: Sat Aug 31 12:17:50 2024 +0000
Merge branch 'autopkgtest' into 'debian'
Mark initrd-boot autopkgtest as flaky
See merge request wouter/nbd!6
commit 681b9300138274cbdb51a21fc98395bb76a95688
Author: Michael Biebl <biebl@debian.org>
Date: Wed Aug 28 09:39:43 2024 +0200
Mark initrd-boot autopkgtest as flaky
It doesn't pass on debci yet and thus blocks testing migration.
commit 1320aa4042c5f9e1a3b5fd00961f2a97d8fefc0b
Author: Michael Biebl <biebl@debian.org>
Date: Wed Aug 28 09:38:39 2024 +0200
Drop debian/tests/get-deb-codename.pl
No longer needed since 0dcbf5e83d944330fb64129fe86b6849e989dc91.