Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: QEMU 10.2.2
To:
ports@openbsd.org
Date:
Fri, 3 Apr 2026 17:37:47 -0400

Download raw body.

Thread
  • Brad Smith:

    UPDATE: QEMU 10.2.2

    • Brad Smith:

      UPDATE: QEMU 10.2.2

ping.

On 2026-03-22 11:26 p.m., Brad Smith wrote:
> Here is an update to QEMU 10.2.2.
>
> https://marc.info/?l=qemu-devel&m=177381254605022&w=2
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/emulators/qemu/Makefile,v
> retrieving revision 1.260
> diff -u -p -u -p -r1.260 Makefile
> --- Makefile	5 Mar 2026 12:12:19 -0000	1.260
> +++ Makefile	23 Mar 2026 02:21:18 -0000
> @@ -6,7 +6,7 @@ USE_NOBTCFI=	Yes
>   COMMENT-main=	multi system emulator
>   COMMENT-ga=	QEMU guest agent
>   
> -VERSION=	10.2.1
> +VERSION=	10.2.2
>   DISTNAME=	qemu-${VERSION}
>   CATEGORIES=	emulators
>   SITES=		https://download.qemu.org/
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/emulators/qemu/distinfo,v
> retrieving revision 1.85
> diff -u -p -u -p -r1.85 distinfo
> --- distinfo	5 Mar 2026 12:12:19 -0000	1.85
> +++ distinfo	23 Mar 2026 02:21:18 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (qemu-10.2.1.tar.xz) = o3F0d9jiyE1jC//7wg9s0yk+tFqh5trG0MwnaJmRyeE=
> -SIZE (qemu-10.2.1.tar.xz) = 141075160
> +SHA256 (qemu-10.2.2.tar.xz) = eEspb/KcFBeqcjI6vLLS6pq5dxck9Xfc14XDsE8h4XY=
> +SIZE (qemu-10.2.2.tar.xz) = 141119364
> Index: patches/patch-block_nfs_c
> ===================================================================
> RCS file: /cvs/ports/emulators/qemu/patches/patch-block_nfs_c,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 patch-block_nfs_c
> --- patches/patch-block_nfs_c	10 Feb 2026 10:46:00 -0000	1.2
> +++ patches/patch-block_nfs_c	23 Mar 2026 02:21:18 -0000
> @@ -1,23 +1,87 @@
> -- support for libnfs API v2
> +- block/nfs: add support for libnfs v6
>   
>   Index: block/nfs.c
>   --- block/nfs.c.orig
>   +++ block/nfs.c
> -@@ -270,8 +270,13 @@ static int coroutine_fn nfs_co_preadv(BlockDriverState
> -     task.iov = iov;
> +@@ -69,7 +69,9 @@ typedef struct NFSClient {
> + typedef struct NFSRPC {
> +     BlockDriverState *bs;
> +     int ret;
> ++#ifndef LIBNFS_API_V2
> +     QEMUIOVector *iov;
> ++#endif
> +     struct stat *st;
> +     Coroutine *co;
> +     NFSClient *client;
> +@@ -237,6 +239,7 @@ nfs_co_generic_cb(int ret, struct nfs_context *nfs, vo
> +     NFSRPC *task = private_data;
> +     task->ret = ret;
> +     assert(!task->st);
> ++#ifndef LIBNFS_API_V2
> +     if (task->ret > 0 && task->iov) {
> +         if (task->ret <= task->iov->size) {
> +             qemu_iovec_from_buf(task->iov, 0, data, task->ret);
> +@@ -244,6 +247,7 @@ nfs_co_generic_cb(int ret, struct nfs_context *nfs, vo
> +             task->ret = -EIO;
> +         }
> +     }
> ++#endif
> +     if (task->ret < 0) {
> +         error_report("NFS Error: %s", nfs_get_error(nfs));
> +     }
> +@@ -266,13 +270,36 @@ static int coroutine_fn nfs_co_preadv(BlockDriverState
> + {
> +     NFSClient *client = bs->opaque;
> +     NFSRPC task;
> ++    char *buf = NULL;
> ++    bool my_buffer = false;
> +
> +     nfs_co_init_task(bs, &task);
> +-    task.iov = iov;
>    
> ++#ifdef LIBNFS_API_V2
> ++    if (iov->niov != 1) {
> ++        buf = g_try_malloc(bytes);
> ++        if (bytes && buf == NULL) {
> ++            return -ENOMEM;
> ++        }
> ++        my_buffer = true;
> ++    } else {
> ++        buf = iov->iov[0].iov_base;
> ++    }
> ++#endif
> ++
>        WITH_QEMU_LOCK_GUARD(&client->mutex) {
>   +#ifdef LIBNFS_API_V2
>            if (nfs_pread_async(client->context, client->fh,
> -+                            NULL, bytes, offset, nfs_co_generic_cb, &task) != 0) {
> ++                            buf, bytes, offset,
> ++                            nfs_co_generic_cb, &task) != 0) {
>   +#else
> ++        task.iov = iov;
>   +        if (nfs_pread_async(client->context, client->fh,
>                                offset, bytes, nfs_co_generic_cb, &task) != 0) {
>   +#endif
> ++            if (my_buffer) {
> ++                g_free(buf);
> ++            }
>                return -ENOMEM;
>            }
>    
> -@@ -314,9 +319,15 @@ static int coroutine_fn nfs_co_pwritev(BlockDriverStat
> +@@ -280,6 +307,13 @@ static int coroutine_fn nfs_co_preadv(BlockDriverState
> +     }
> +     qemu_coroutine_yield();
> +
> ++    if (my_buffer) {
> ++        if (task.ret > 0) {
> ++            qemu_iovec_from_buf(iov, 0, buf, task.ret);
> ++        }
> ++        g_free(buf);
> ++    }
> ++
> +     if (task.ret < 0) {
> +         return task.ret;
> +     }
> +@@ -315,9 +349,15 @@ static int coroutine_fn nfs_co_pwritev(BlockDriverStat
>        }
>    
>        WITH_QEMU_LOCK_GUARD(&client->mutex) {
> @@ -33,3 +97,25 @@ Index: block/nfs.c
>                if (my_buffer) {
>                    g_free(buf);
>                }
> +@@ -856,6 +896,13 @@ static void coroutine_fn nfs_co_invalidate_cache(Block
> + }
> + #endif
> +
> ++static void nfs_refresh_limits(BlockDriverState *bs, Error **errp)
> ++{
> ++    NFSClient *client = bs->opaque;
> ++    bs->bl.max_transfer = MIN((uint32_t)nfs_get_readmax(client->context),
> ++                              (uint32_t)nfs_get_writemax(client->context));
> ++}
> ++
> + static const char *nfs_strong_runtime_opts[] = {
> +     "path",
> +     "user",
> +@@ -893,6 +940,7 @@ static BlockDriver bdrv_nfs = {
> +     .bdrv_detach_aio_context        = nfs_detach_aio_context,
> +     .bdrv_attach_aio_context        = nfs_attach_aio_context,
> +     .bdrv_refresh_filename          = nfs_refresh_filename,
> ++    .bdrv_refresh_limits            = nfs_refresh_limits,
> +     .bdrv_dirname                   = nfs_dirname,
> +
> +     .strong_runtime_opts            = nfs_strong_runtime_opts,
> Index: patches/patch-meson_build
> ===================================================================
> RCS file: /cvs/ports/emulators/qemu/patches/patch-meson_build,v
> retrieving revision 1.19
> diff -u -p -u -p -r1.19 patch-meson_build
> --- patches/patch-meson_build	10 Feb 2026 10:46:00 -0000	1.19
> +++ patches/patch-meson_build	23 Mar 2026 02:21:18 -0000
> @@ -1,4 +1,4 @@
> -- support for libnfs API v2
> +- block/nfs: add support for libnfs v6
>   - localstatedir does not belong under prefix
>   - remove hardcoding of optimization
>