ocaml-gettext and dune-site
by Olaf Hering
The recently released ocaml-gettext 0.5.0 uses dune-site.
This does apparently cause build failures in guestfs-tools 1.53.7:
File "_none_", line 1:
Error: No implementations provided for the following modules:
Dune_site__Dune_site_data referenced from /usr/lib64/ocaml/dune-site/dune_site.cmxa(Dune_site__Helpers)
make[2]: *** [Makefile:952: virt-customize] Error 2
I guess a change is required in consumers of ocaml-gettext now.
Maybe a package which uses dune to build will not run into this,
at least in opam there are no consumers of ocaml-gettext.
But, maybe it is just an incorrectly built dune 3.17 on my site.
Did anyone already ran into this?
Olaf
1 week
Re: [PATCH 1/2] libguestfs: Rust binding build error and warning fixes
by Jacob Reger
Fixed break in Rust bindings where callback registering expected a
*const i8, but were provided with a *const c_char. Changed to be both
*const c_char in alignment with the libguestfs documentation.
Signed-off-by: Jacob Reger <regerjacob(a)gmail.com>
---
rust/src/event.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust/src/event.rs b/rust/src/event.rs
index 72afd3cf6..156968a69 100644
--- a/rust/src/event.rs
+++ b/rust/src/event.rs
@@ -29,7 +29,7 @@ type GuestfsEventCallback = extern "C" fn(
u64,
i32,
i32,
- *const i8,
+ *const c_char,
usize,
*const u64,
usize,
--
2.39.5 (Apple Git-154)
1 week, 1 day
[PATCH 0/2] libguestfs: Rust binding build error and warning fixes
by Jacob Reger
There is actually a build error on master right now, probably came with the new cargo version. The first patch will fix that error (just a one liner). The second patch will implement the necessary traits for the internal Error type to be a proper Rust error. This caused issues with manual error handling and with error handling crates like anyhow.
1 week, 1 day
Rust Bindings Improvements
by regerjacob@gmail.com
Hey rwmjones, not sure how many people are using the Rust bindings, but I am and noticed a few pain points that I think I could help out with if you're interested.
Wanted to ask ahead of time if there is interest in improvements and making the Rust code a bit more idiomatic/ergonomic before I spend too much time on it.
1 week, 1 day
ANNOUNCE: nbdkit 1.42 and libnbd 1.22 released
by Richard W.M. Jones
I'm pleased to announce new stable releases of nbdkit 1.42 and libnbd 1.22
nbdkit is a Network Block Device (NBD) server with a stable plugin ABI
and a permissive license. libnbd is an NBD client library in
userspace.
Notable features include:
- New nbdkit-time-limit-filter, nbdkit-lzip-filter
- New nbdkit --timeout and --keepalive options
- New nbd+ssh:// URI format for libnbd, tunneling NBD over SSH
- Send the full plugin error from nbdkit to libnbd
- Support for GCC 15, Tcl 9.0, OCaml 5.3, Rust 1.84
nbdkit 1.42.0 can be downloaded here:
https://download.libguestfs.org/nbdkit/1.42-stable/
git here: https://gitlab.com/nbdkit/nbdkit
libnbd 1.22.0 can be downloaded here:
https://download.libguestfs.org/libnbd/1.22-stable/
git here: https://gitlab.com/nbdkit/libnbd
Release notes for nbdkit 1.42 online:
https://libguestfs.org/nbdkit-release-notes-1.42.1.html
Release notes for libnbd 1.22 online:
https://libguestfs.org/libnbd-release-notes-1.22.1.html
-----
nbdkit-release-notes-1.42(1) NBDKIT nbdkit-release-notes-1.42(1)
NAME
nbdkit-release-notes-1.42 - release notes for nbdkit 1.42
DESCRIPTION
These are the release notes for nbdkit stable release 1.42. This
describes the major changes since 1.40.
nbdkit 1.42.0 was released on 11 February 2025.
Security
nbdkit-ip-filter(1) has been fixed to close an information leak. In an
unusual configuration of the filter, it could leak the list of exports
to clients that are supposed to be blocked.
All past security issues and information about how to report new ones
can be found in nbdkit-security(1).
Plugins
nbdkit-ondemand-plugin(1) now allows more characters to appear in
filenames. Colons are now allowed, so filenames containing MAC
addresses can be used, which is useful when using NBD in pre-boot
environments. Also add the "share=true" option to allow sharing.
(Thanks Markus Hartung)
nbdkit-vddk-plugin(1) now prints the default list of transports in
--dump-plugin output. Also this plugin now handles partial chunks
correctly when reading extents for disks with a non-aligned size (thanks
Ming Xie).
Filters
New nbdkit-time-limit-filter(1) can be used to specify the maximum time
limit for a connection. (See also the new --timeout option below).
New nbdkit-lzip-filter(1) implements random access to lzip-compressed
files (Jan Felix Langenbach).
Language bindings
Multiple updates to nbdkit-rust-plugin(3) to keep up to date with latest
changes in the Rust language (Alan Somers).
Fix crash that happened in nbdkit-ocaml-plugin(3) plugins with OCaml ≥ 5
(thanks Guillaume Munch-Maccagnoni, Gabriel Scherer). Also update the
ocamldoc documentation. Fix more OCaml 5 deprecation warnings.
Add support for Tcl 9.0 to nbdkit-tcl-plugin(3).
Server
nbdkit will now try to send the last plugin error message over the NBD
protocol to the client, to provide additional information. This
requires an NBD client which supports this, such as qemu ≥ 2.12 or
libnbd ≥ 1.22.
New nbdkit --timeout flag can be used as a security measure to ensure
that clients don't consume resources by opening lots of connections and
then not negotiating (or negotiating slowly) the full NBD session.
New nbdkit --keepalive option which enables TCP-level keepalives. This
is useful for detecting dead clients.
nbdkit --dump-config output now includes "timeout_option=yes|no" and
"vsock_option=yes|no" reflecting whether the --timeout and --vsock
options are available.
Bug fixes
Detect and warn about certain conditions which can cause the
closed-source VDDK library to crash the server (Matthew Arnold, Nijin
Ashok, Eric Blake).
Tests
Plugins from nbdkit 1.38 have been added to the tests/old-plugins
directory.
Build
nbdkit should be buildable again on macOS.
Add support for GCC 15.
SEE ALSO
nbdkit(1).
AUTHORS
Authors of nbdkit 1.42:
Alan Somers
Eric Blake
Jan Felix Langenbach
Richard W.M. Jones
----------
libnbd-release-notes-1.22(1) LIBNBD libnbd-release-notes-1.22(1)
NAME
libnbd-release-notes-1.22 - release notes for libnbd 1.22
DESCRIPTION
These are the release notes for libnbd stable release 1.22. This
describes the major changes since 1.20.
libnbd 1.22.0 was released on 11 February 2025.
Security
Multiple flaws in TLS server certificate checking were found and fixed
(CVE-2024-7383). See
https://lists.libguestfs.org/archives/list/guestfs@lists.libguestfs.org/t...
(thanks Jon Szymaniak, Daniel P. Berrangé).
If you find a security issue, please read SECURITY in the source (online
here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). To find
out about previous security issues in libnbd, see libnbd-security(3).
New APIs
nbd_set_tls_hostname(3) and nbd_get_tls_hostname(3) can be used to set
and get the hostname used for TLS server certificate checking. This
hostname, if set, is used in preference to the hostname of the server.
This can be used when NBD connections are proxied, or transported over a
Unix domain socket.
nbd_is_uri(3) applies a heuristic to detect if something is likely to be
an NBD URI or not.
nbd_get_subprocess_pid(3) returns the process ID (PID) of the subprocess
created by functions such as nbd_connect_command(3).
Enhancements to existing APIs
As an extension to nbd_connect_uri(3), you can now connect to
"nbd+ssh://" or "nbds+ssh://" URIs, creating an NBD tunnel over an SSH
connection. This is very convenient when you have SSH access to a
remote host, but a firewall prevents direct access to NBD ports.
Protocol
We now print the full error message string if one is sent by the server.
nbdkit ≥ 1.42 will send full error messages from plugins over the NBD
connection to compatible NBD clients like libnbd 1.22 or qemu.
Tools
Fix nbdfuse(1) so that TLS URIs using "?tls-certificates" or
"?tls-psk-file" now work properly (Jon Szymaniak).
nbddump(1) has a new --offset option (Eric Blake).
Language bindings
Various fixes to the Rust bindings (thanks Hanna Czenczek).
The documentation included in the Rust bindings has been improved
greatly.
Other improvements and bug fixes
Common code is now used to get the size of block devices, and this has
been fixed to work properly on BSD. This affected at least nbdcopy when
used to copy to and from block devices on BSD.
Documentation
Fix links to nbd-server(1) and other pages in HTML-generated
documentation (Vera Wu).
In nbd_connect_uri(3) we documented small differences in the way that we
parse NBD URIs versus qemu.
nbd_connect_uri(3) adds additional documentation on the reserved VSock
port numbers.
Build
gnutls ≥ 3.5.18 is now required. This matches the version needed by
qemu. If using RHEL, this means that RHEL ≥ 8 is now required.
libnbd should now compile on macOS.
examples/connect-benchmark is a new example that can be used to
benchmark connections.
Add support for GCC 15.
SEE ALSO
libnbd(3).
AUTHORS
Daniel P. Berrangé
Eric Blake
Richard W.M. Jones
Jon Szymaniak
3 weeks, 1 day