update to qemu 6.2.0; including fix for CVE-2021-3713 which affects

versions earlier than 6.2.0-rc0

From brad (MAINTAINER) with minor updates to README-main from me
This commit is contained in:
daniel 2021-12-24 03:50:41 +00:00
parent d6b8130e41
commit c43950067b
15 changed files with 155 additions and 173 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.217 2021/11/22 15:00:42 espie Exp $ # $OpenBSD: Makefile,v 1.218 2021/12/24 03:50:41 daniel Exp $
ONLY_FOR_ARCHS= aarch64 amd64 arm i386 powerpc powerpc64 riscv64 sparc64 ONLY_FOR_ARCHS= aarch64 amd64 arm i386 powerpc powerpc64 riscv64 sparc64
DPB_PROPERTIES= parallel DPB_PROPERTIES= parallel
@ -6,9 +6,8 @@ DPB_PROPERTIES= parallel
COMMENT-main= multi system emulator COMMENT-main= multi system emulator
COMMENT-ga= QEMU guest agent COMMENT-ga= QEMU guest agent
VERSION= 6.1.0 VERSION= 6.2.0
DISTNAME= qemu-${VERSION} DISTNAME= qemu-${VERSION}
REVISION-main= 1
CATEGORIES= emulators CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/ MASTER_SITES= https://download.qemu.org/
EXTRACT_SUFX= .tar.xz EXTRACT_SUFX= .tar.xz
@ -86,9 +85,10 @@ CONFIGURE_ARGS= --prefix=${PREFIX} \
--cc="${CC}" \ --cc="${CC}" \
--cxx="${CXX}" \ --cxx="${CXX}" \
--host-cc="${CC}" \ --host-cc="${CC}" \
--disable-bsd-user \
--enable-capstone=system \ --enable-capstone=system \
--disable-auth-pam \ --disable-auth-pam \
--disable-bsd-user \
--disable-jack \
--disable-sdl-image \ --disable-sdl-image \
--disable-smartcard \ --disable-smartcard \
--disable-snappy \ --disable-snappy \

View File

@ -1,2 +1,2 @@
SHA256 (qemu-6.1.0.tar.xz) = 7rwInbNBS77t8eRkvtoKdRWq0w9zJhq8JGybJ1A6PJY= SHA256 (qemu-6.2.0.tar.xz) = aOFdjkWsVjJuC5pK+otJo9/oq6NIgiHQmMhGmLymW0U=
SIZE (qemu-6.1.0.tar.xz) = 111258808 SIZE (qemu-6.2.0.tar.xz) = 115667324

View File

@ -1,4 +1,6 @@
$OpenBSD: patch-audio_audio_c,v 1.10 2021/09/03 23:04:49 sthen Exp $ $OpenBSD: patch-audio_audio_c,v 1.11 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: audio/audio.c Index: audio/audio.c
--- audio/audio.c.orig --- audio/audio.c.orig

View File

@ -1,4 +1,6 @@
$OpenBSD: patch-audio_audio_template_h,v 1.5 2021/05/02 08:15:19 landry Exp $ $OpenBSD: patch-audio_audio_template_h,v 1.6 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: audio/audio_template.h Index: audio/audio_template.h
--- audio/audio_template.h.orig --- audio/audio_template.h.orig

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-audio_meson_build,v 1.1 2021/05/02 08:15:19 landry Exp $ $OpenBSD: patch-audio_meson_build,v 1.2 2021/12/24 03:50:41 daniel Exp $
sndio module sndio module
@ -6,10 +6,10 @@ Index: audio/meson.build
--- audio/meson.build.orig --- audio/meson.build.orig
+++ audio/meson.build +++ audio/meson.build
@@ -17,6 +17,7 @@ foreach m : [ @@ -17,6 +17,7 @@ foreach m : [
['CONFIG_AUDIO_OSS', 'oss', oss, 'ossaudio.c'], ['pa', pulse, files('paaudio.c')],
['CONFIG_AUDIO_PA', 'pa', pulse, 'paaudio.c'], ['sdl', sdl, files('sdlaudio.c')],
['CONFIG_AUDIO_SDL', 'sdl', sdl, 'sdlaudio.c'], ['jack', jack, files('jackaudio.c')],
+ ['CONFIG_AUDIO_SNDIO', 'sndio', sndio, 'sndioaudio.c'], + ['sndio', sndio, files('sndioaudio.c')],
['CONFIG_AUDIO_JACK', 'jack', jack, 'jackaudio.c'], ['spice', spice, files('spiceaudio.c')]
['CONFIG_SPICE', 'spice', spice, 'spiceaudio.c']
] ]
if m[1].found()

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-audio_sndioaudio_c,v 1.4 2020/03/30 20:10:24 ajacoutot Exp $ $OpenBSD: patch-audio_sndioaudio_c,v 1.5 2021/12/24 03:50:41 daniel Exp $
sndio module sndio module
@ -7,19 +7,9 @@ Index: audio/sndioaudio.c
+++ audio/sndioaudio.c +++ audio/sndioaudio.c
@@ -0,0 +1,555 @@ @@ -0,0 +1,555 @@
+/* +/*
+ * SPDX-License-Identifier: ISC
+ *
+ * Copyright (c) 2019 Alexandre Ratchov <alex@caoua.org> + * Copyright (c) 2019 Alexandre Ratchov <alex@caoua.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */ + */
+ +
+/* +/*
@ -43,7 +33,7 @@ Index: audio/sndioaudio.c
+#define AUDIO_CAP "sndio" +#define AUDIO_CAP "sndio"
+#include "audio_int.h" +#include "audio_int.h"
+ +
+/* default latency in ms if no option is set */ +/* default latency in microseconds if no option is set */
+#define SNDIO_LATENCY_US 50000 +#define SNDIO_LATENCY_US 50000
+ +
+typedef struct SndioVoice { +typedef struct SndioVoice {
@ -64,6 +54,7 @@ Index: audio/sndioaudio.c
+ size_t qemu_pos; + size_t qemu_pos;
+ unsigned int mode; + unsigned int mode;
+ unsigned int nfds; + unsigned int nfds;
+ bool enabled;
+} SndioVoice; +} SndioVoice;
+ +
+typedef struct SndioConf { +typedef struct SndioConf {
@ -85,7 +76,7 @@ Index: audio/sndioaudio.c
+ +
+ for (i = 0; i < self->nfds; i++) { + for (i = 0; i < self->nfds; i++) {
+ pfd = &self->pfds[i]; + pfd = &self->pfds[i];
+ qemu_set_fd_handler (pfd->fd, NULL, NULL, NULL); + qemu_set_fd_handler(pfd->fd, NULL, NULL, NULL);
+ } + }
+ +
+ self->nfds = 0; + self->nfds = 0;
@ -175,12 +166,12 @@ Index: audio/sndioaudio.c
+ for (i = 0; i < self->nfds; i++) { + for (i = 0; i < self->nfds; i++) {
+ pfd = &self->pfds[i]; + pfd = &self->pfds[i];
+ if (pfd->fd < 0) { + if (pfd->fd < 0) {
+ continue; + continue;
+ } + }
+ qemu_set_fd_handler(pfd->fd, + qemu_set_fd_handler(pfd->fd,
+ (pfd->events & POLLIN) ? sndio_poll_in : NULL, + (pfd->events & POLLIN) ? sndio_poll_in : NULL,
+ (pfd->events & POLLOUT) ? sndio_poll_out : NULL, + (pfd->events & POLLOUT) ? sndio_poll_out : NULL,
+ &self->pindexes[i]); + &self->pindexes[i]);
+ pfd->revents = 0; + pfd->revents = 0;
+ } + }
+} +}
@ -227,7 +218,12 @@ Index: audio/sndioaudio.c
+ } + }
+ } + }
+ +
+ sndio_poll_wait(self); + /*
+ * audio_run() may have changed state
+ */
+ if (self->enabled) {
+ sndio_poll_wait(self);
+ }
+} +}
+ +
+/* +/*
@ -238,7 +234,6 @@ Index: audio/sndioaudio.c
+{ +{
+ SndioVoice *self = (SndioVoice *) hw; + SndioVoice *self = (SndioVoice *) hw;
+ +
+ /* size is not set by the caller */
+ *size = self->buf_size - self->qemu_pos; + *size = self->buf_size - self->qemu_pos;
+ return self->buf + self->qemu_pos; + return self->buf + self->qemu_pos;
+} +}
@ -375,6 +370,7 @@ Index: audio/sndioaudio.c
+ case AUDIO_FORMAT_U32: + case AUDIO_FORMAT_U32:
+ req.bits = 32; + req.bits = 32;
+ req.sig = 0; + req.sig = 0;
+ break;
+ default: + default:
+ dolog("unknown audio sample format\n"); + dolog("unknown audio sample format\n");
+ return -1; + return -1;
@ -386,9 +382,9 @@ Index: audio/sndioaudio.c
+ +
+ req.rate = as->freq; + req.rate = as->freq;
+ if (mode == SIO_PLAY) { + if (mode == SIO_PLAY) {
+ req.pchan = as->nchannels; + req.pchan = as->nchannels;
+ } else { + } else {
+ req.rchan = as->nchannels; + req.rchan = as->nchannels;
+ } + }
+ +
+ /* set on-device buffer size */ + /* set on-device buffer size */
@ -458,8 +454,10 @@ Index: audio/sndioaudio.c
+{ +{
+ if (enable) { + if (enable) {
+ sio_start(self->hdl); + sio_start(self->hdl);
+ self->enabled = true;
+ sndio_poll_wait(self); + sndio_poll_wait(self);
+ } else { + } else {
+ self->enabled = false;
+ sndio_poll_clear(self); + sndio_poll_clear(self);
+ sio_stop(self->hdl); + sio_stop(self->hdl);
+ } + }
@ -469,14 +467,14 @@ Index: audio/sndioaudio.c
+{ +{
+ SndioVoice *self = (SndioVoice *) hw; + SndioVoice *self = (SndioVoice *) hw;
+ +
+ return sndio_enable(self, enable); + sndio_enable(self, enable);
+} +}
+ +
+static void sndio_enable_in(HWVoiceIn *hw, bool enable) +static void sndio_enable_in(HWVoiceIn *hw, bool enable)
+{ +{
+ SndioVoice *self = (SndioVoice *) hw; + SndioVoice *self = (SndioVoice *) hw;
+ +
+ return sndio_enable(self, enable); + sndio_enable(self, enable);
+} +}
+ +
+static int sndio_init_out(HWVoiceOut *hw, struct audsettings *as, void *opaque) +static int sndio_init_out(HWVoiceOut *hw, struct audsettings *as, void *opaque)
@ -509,14 +507,14 @@ Index: audio/sndioaudio.c
+{ +{
+ SndioVoice *self = (SndioVoice *) hw; + SndioVoice *self = (SndioVoice *) hw;
+ +
+ return sndio_fini(self); + sndio_fini(self);
+} +}
+ +
+static void sndio_fini_in(HWVoiceIn *hw) +static void sndio_fini_in(HWVoiceIn *hw)
+{ +{
+ SndioVoice *self = (SndioVoice *) hw; + SndioVoice *self = (SndioVoice *) hw;
+ +
+ return sndio_fini(self); + sndio_fini(self);
+} +}
+ +
+static void *sndio_audio_init(Audiodev *dev) +static void *sndio_audio_init(Audiodev *dev)
@ -533,10 +531,12 @@ Index: audio/sndioaudio.c
+ .init_out = sndio_init_out, + .init_out = sndio_init_out,
+ .fini_out = sndio_fini_out, + .fini_out = sndio_fini_out,
+ .enable_out = sndio_enable_out, + .enable_out = sndio_enable_out,
+ .write = audio_generic_write,
+ .get_buffer_out = sndio_get_buffer_out, + .get_buffer_out = sndio_get_buffer_out,
+ .put_buffer_out = sndio_put_buffer_out, + .put_buffer_out = sndio_put_buffer_out,
+ .init_in = sndio_init_in, + .init_in = sndio_init_in,
+ .fini_in = sndio_fini_in, + .fini_in = sndio_fini_in,
+ .read = audio_generic_read,
+ .enable_in = sndio_enable_in, + .enable_in = sndio_enable_in,
+ .get_buffer_in = sndio_get_buffer_in, + .get_buffer_in = sndio_get_buffer_in,
+ .put_buffer_in = sndio_put_buffer_in, + .put_buffer_in = sndio_put_buffer_in,
@ -544,7 +544,7 @@ Index: audio/sndioaudio.c
+ +
+static struct audio_driver sndio_audio_driver = { +static struct audio_driver sndio_audio_driver = {
+ .name = "sndio", + .name = "sndio",
+ .descr = "https://man.openbsd.org/sndio", + .descr = "sndio https://sndio.org",
+ .init = sndio_audio_init, + .init = sndio_audio_init,
+ .fini = sndio_audio_fini, + .fini = sndio_audio_fini,
+ .pcm_ops = &sndio_pcm_ops, + .pcm_ops = &sndio_pcm_ops,

View File

@ -1,47 +1,9 @@
$OpenBSD: patch-configure,v 1.68 2021/09/03 23:04:49 sthen Exp $ $OpenBSD: patch-configure,v 1.69 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: configure Index: configure
--- configure.orig --- configure.orig
+++ configure +++ configure
@@ -743,8 +743,8 @@ NetBSD) @@ -3259,7 +3259,6 @@ write_c_skeleton
OpenBSD)
bsd="yes"
make="${MAKE-gmake}"
- audio_drv_list="try-sdl"
- audio_possible_drivers="sdl"
+ audio_drv_list="sndio"
+ audio_possible_drivers="sndio"
;;
Darwin)
bsd="yes"
@@ -3066,6 +3066,24 @@ for drv in $audio_drv_list; do
fi
;;
+ sndio | try-sndio)
+ if $pkg_config sndio --exists; then
+ sndio=yes
+ sndio_libs=$($pkg_config sndio --libs)
+ sndio_cflags=$($pkg_config sndio --cflags)
+ if test "$drv" = "try-sndio"; then
+ audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sndio/sndio/')
+ fi
+ else
+ if test "$drv" = "try-sndio"; then
+ audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sndio//')
+ else
+ error_exit "$drv check failed" \
+ "Make sure to have the $drv libs and headers installed."
+ fi
+ fi
+ ;;
+
coreaudio | try-coreaudio)
if test "$coreaudio" = "no"; then
if test "$drv" = "try-coreaudio"; then
@@ -4299,7 +4317,6 @@ write_c_skeleton
if test "$gcov" = "yes" ; then if test "$gcov" = "yes" ; then
: :
elif test "$fortify_source" = "yes" ; then elif test "$fortify_source" = "yes" ; then
@ -49,15 +11,3 @@ Index: configure
debug=no debug=no
fi fi
@@ -4565,6 +4582,11 @@ echo "PULSE_CFLAGS=$pulse_cflags" >> $config_host_mak
echo "COREAUDIO_LIBS=$coreaudio_libs" >> $config_host_mak
echo "DSOUND_LIBS=$dsound_libs" >> $config_host_mak
echo "OSS_LIBS=$oss_libs" >> $config_host_mak
+if test "$sndio" = "yes" ; then
+ echo "CONFIG_SNDIO=y" >> $config_host_mak
+fi
+echo "SNDIO_LIBS=$sndio_libs" >> $config_host_mak
+echo "SNDIO_CFLAGS=$sndio_cflags" >> $config_host_mak
if test "$libjack" = "yes" ; then
echo "CONFIG_LIBJACK=y" >> $config_host_mak
fi

View File

@ -1,34 +1,41 @@
$OpenBSD: patch-meson_build,v 1.2 2021/09/03 23:04:49 sthen Exp $ $OpenBSD: patch-meson_build,v 1.3 2021/12/24 03:50:41 daniel Exp $
- Fix curses build on OpenBSD
- sndio module - sndio module
- Remove hardcoding of optimization - Remove hardcoding of optimization
Index: meson.build Index: meson.build
--- meson.build.orig --- meson.build.orig
+++ meson.build +++ meson.build
@@ -441,6 +441,11 @@ jack = not_found @@ -554,6 +554,11 @@ if not get_option('jack').auto() or have_system
if 'CONFIG_LIBJACK' in config_host jack = dependency('jack', required: get_option('jack'),
jack = declare_dependency(link_args: config_host['JACK_LIBS'].split()) method: 'pkg-config', kwargs: static_kwargs)
endif endif
+sndio = not_found +sndio = not_found
+if 'CONFIG_SNDIO' in config_host +if not get_option('sndio').auto() or have_system
+ sndio = declare_dependency(compile_args: config_host['SNDIO_CFLAGS'].split(), + sndio = dependency('sndio', required: get_option('sndio'),
+ link_args: config_host['SNDIO_LIBS'].split()) + method: 'pkg-config', kwargs: static_kwargs)
+endif +endif
spice = not_found
spice_headers = not_found
spice_protocol = not_found spice_protocol = not_found
@@ -596,7 +601,7 @@ if have_system and not get_option('curses').disabled() if not get_option('spice_protocol').auto() or have_system
endif @@ -1311,6 +1316,7 @@ if have_system
endforeach 'oss': oss.found(),
msg = get_option('curses').enabled() ? 'curses library not found' : '' 'pa': pulse.found(),
- curses_compile_args = ['-DNCURSES_WIDECHAR'] 'sdl': sdl.found(),
+ curses_compile_args = ['-D_XOPEN_SOURCE_EXTENDED -DNCURSES_WIDECHAR'] + 'sndio': sndio.found(),
if curses.found() }
if cc.links(curses_test, args: curses_compile_args, dependencies: [curses]) foreach k, v: audio_drivers_available
curses = declare_dependency(compile_args: curses_compile_args, dependencies: [curses]) config_host_data.set('CONFIG_AUDIO_' + k.to_upper(), v)
@@ -2907,11 +2912,9 @@ if targetos == 'windows' @@ -1318,7 +1324,7 @@ if have_system
# Default to native drivers first, OSS second, SDL third
audio_drivers_priority = \
- [ 'pa', 'coreaudio', 'dsound', 'oss' ] + \
+ [ 'pa', 'coreaudio', 'dsound', 'sndio', 'oss' ] + \
(targetos == 'linux' ? [] : [ 'sdl' ])
audio_drivers_default = []
foreach k: audio_drivers_priority
@@ -3234,11 +3240,9 @@ if targetos == 'windows'
endif endif
endif endif
summary_info += {'CFLAGS': ' '.join(get_option('c_args') summary_info += {'CFLAGS': ' '.join(get_option('c_args')
@ -40,3 +47,11 @@ Index: meson.build
+ (get_option('debug') ? ['-g'] : []))} + (get_option('debug') ? ['-g'] : []))}
endif endif
link_args = get_option(link_language + '_link_args') link_args = get_option(link_language + '_link_args')
@@ -3385,6 +3389,7 @@ if vnc.found()
endif
if targetos not in ['darwin', 'haiku', 'windows']
summary_info += {'OSS support': oss}
+ summary_info += {'sndio support': sndio}
elif targetos == 'darwin'
summary_info += {'CoreAudio support': coreaudio}
elif targetos == 'windows'

View File

@ -1,21 +1,21 @@
$OpenBSD: patch-meson_mesonbuild_compilers_cpp_py,v 1.1 2021/05/02 08:15:19 landry Exp $ $OpenBSD: patch-meson_mesonbuild_compilers_cpp_py,v 1.2 2021/12/24 03:50:41 daniel Exp $
Index: meson/mesonbuild/compilers/cpp.py Index: meson/mesonbuild/compilers/cpp.py
--- meson/mesonbuild/compilers/cpp.py.orig --- meson/mesonbuild/compilers/cpp.py.orig
+++ meson/mesonbuild/compilers/cpp.py +++ meson/mesonbuild/compilers/cpp.py
@@ -210,7 +210,7 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler): @@ -247,7 +247,7 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
return [] return []
def language_stdlib_only_link_flags(self): def language_stdlib_only_link_flags(self) -> T.List[str]:
- return ['-lstdc++'] - return ['-lstdc++']
+ return ['-lc++'] + return ['-lc++']
class AppleClangCPPCompiler(ClangCPPCompiler): class AppleClangCPPCompiler(ClangCPPCompiler):
@@ -346,7 +346,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler): @@ -397,7 +397,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
return ['-fpch-preprocess', '-include', os.path.basename(header)] return ['-fpch-preprocess', '-include', os.path.basename(header)]
def language_stdlib_only_link_flags(self): def language_stdlib_only_link_flags(self) -> T.List[str]:
- return ['-lstdc++'] - return ['-lstdc++']
+ return ['-lestdc++'] + return ['-lestdc++']

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-meson_options_txt,v 1.1 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: meson_options.txt
--- meson_options.txt.orig
+++ meson_options.txt
@@ -13,7 +13,7 @@ option('sphinx_build', type : 'string', value : '',
option('default_devices', type : 'boolean', value : true,
description: 'Include a default selection of devices in emulators')
option('audio_drv_list', type: 'array', value: ['default'],
- choices: ['alsa', 'coreaudio', 'default', 'dsound', 'jack', 'oss', 'pa', 'sdl'],
+ choices: ['alsa', 'coreaudio', 'default', 'dsound', 'jack', 'oss', 'pa', 'sdl', 'sndio'],
description: 'Set audio driver list')
option('fuzzing_engine', type : 'string', value : '',
description: 'fuzzing engine library for OSS-Fuzz')
@@ -184,6 +184,8 @@ option('oss', type: 'feature', value: 'auto',
description: 'OSS sound support')
option('pa', type: 'feature', value: 'auto',
description: 'PulseAudio sound support')
+option('sndio', type: 'feature', value: 'auto',
+ description: 'sndio sound support')
option('vhost_user_blk_server', type: 'feature', value: 'auto',
description: 'build vhost-user-blk server')

View File

@ -1,4 +1,6 @@
$OpenBSD: patch-qapi_audio_json,v 1.5 2021/05/02 08:15:19 landry Exp $ $OpenBSD: patch-qapi_audio_json,v 1.6 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: qapi/audio.json Index: qapi/audio.json
--- qapi/audio.json.orig --- qapi/audio.json.orig
@ -19,7 +21,7 @@ Index: qapi/audio.json
+# +#
+# @latency: play buffer size (in microseconds) +# @latency: play buffer size (in microseconds)
+# +#
+# Since: 5.0 +# Since: 7.0
+## +##
+{ 'struct': 'AudiodevSndioOptions', +{ 'struct': 'AudiodevSndioOptions',
+ 'data': { + 'data': {

View File

@ -1,9 +1,11 @@
$OpenBSD: patch-qemu-options_hx,v 1.9 2021/09/03 23:04:49 sthen Exp $ $OpenBSD: patch-qemu-options_hx,v 1.10 2021/12/24 03:50:41 daniel Exp $
sndio module
Index: qemu-options.hx Index: qemu-options.hx
--- qemu-options.hx.orig --- qemu-options.hx.orig
+++ qemu-options.hx +++ qemu-options.hx
@@ -643,6 +643,9 @@ DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev, @@ -657,6 +657,9 @@ DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev,
"-audiodev sdl,id=id[,prop[=value][,...]]\n" "-audiodev sdl,id=id[,prop[=value][,...]]\n"
" in|out.buffer-count= number of buffers\n" " in|out.buffer-count= number of buffers\n"
#endif #endif
@ -13,15 +15,23 @@ Index: qemu-options.hx
#ifdef CONFIG_SPICE #ifdef CONFIG_SPICE
"-audiodev spice,id=id[,prop[=value][,...]]\n" "-audiodev spice,id=id[,prop[=value][,...]]\n"
#endif #endif
@@ -805,6 +808,11 @@ SRST @@ -819,6 +822,19 @@ SRST
``in|out.buffer-count=count`` ``in|out.buffer-count=count``
Sets the count of the buffers. Sets the count of the buffers.
+ +
+``-audiodev sndio,id=id[,prop[=value][,...]]`` +``-audiodev sndio,id=id[,prop[=value][,...]]``
+ Creates a backend using SNDIO. This backend is available on + Creates a backend using SNDIO. This backend is available on
+ OpenBSD and most other Unix-like systems. This backend has no + OpenBSD and most other Unix-like systems.
+ backend specific properties. +
+ Sndio specific options are:
+
+ ``in|out.dev=device``
+ Specify the sndio device to use for input and/or output. Default
+ is ``default``.
+
+ ``in|out.latency=usecs``
+ Sets the desired period length in microseconds.
``-audiodev spice,id=id[,prop[=value][,...]]`` ``-audiodev spice,id=id[,prop[=value][,...]]``
Creates a backend that sends audio through SPICE. This backend Creates a backend that sends audio through SPICE. This backend

View File

@ -1,37 +0,0 @@
$OpenBSD: patch-tcg_ppc_tcg-target_c_inc,v 1.2 2021/07/16 17:54:16 sthen Exp $
tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF
Clang only sets _CALL_ELF for ppc64, and nothing at all to specify
the ABI for ppc32. Make a good guess based on other symbols.
Index: tcg/ppc/tcg-target.c.inc
--- tcg/ppc/tcg-target.c.inc.orig
+++ tcg/ppc/tcg-target.c.inc
@@ -25,9 +25,24 @@
#include "elf.h"
#include "../tcg-pool.c.inc"
-#if defined _CALL_DARWIN || defined __APPLE__
-#define TCG_TARGET_CALL_DARWIN
+/*
+ * Standardize on the _CALL_FOO symbols used by GCC:
+ * Apple XCode does not define _CALL_DARWIN.
+ * Clang defines _CALL_ELF (64-bit) but not _CALL_SYSV (32-bit).
+ */
+#if !defined(_CALL_SYSV) && \
+ !defined(_CALL_DARWIN) && \
+ !defined(_CALL_AIX) && \
+ !defined(_CALL_ELF)
+# if defined(__APPLE__)
+# define _CALL_DARWIN
+# elif defined(__ELF__) && TCG_TARGET_REG_BITS == 32
+# define _CALL_SYSV
+# else
+# error "Unknown ABI"
+# endif
#endif
+
#ifdef _CALL_SYSV
# define TCG_TARGET_CALL_ALIGN_ARGS 1
#endif

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST-main,v 1.5 2021/09/18 11:06:41 sthen Exp $ @comment $OpenBSD: PLIST-main,v 1.6 2021/12/24 03:50:41 daniel Exp $
@pkgpath emulators/qemu @pkgpath emulators/qemu
@bin bin/elf2dmp @bin bin/elf2dmp
@bin bin/qemu-edid @bin bin/qemu-edid
@ -74,6 +74,7 @@ share/doc/qemu/_static/css/fonts/lato-normal-italic.woff2
share/doc/qemu/_static/css/fonts/lato-normal.woff share/doc/qemu/_static/css/fonts/lato-normal.woff
share/doc/qemu/_static/css/fonts/lato-normal.woff2 share/doc/qemu/_static/css/fonts/lato-normal.woff2
share/doc/qemu/_static/css/theme.css share/doc/qemu/_static/css/theme.css
share/doc/qemu/_static/custom.js
share/doc/qemu/_static/doctools.js share/doc/qemu/_static/doctools.js
share/doc/qemu/_static/documentation_options.js share/doc/qemu/_static/documentation_options.js
share/doc/qemu/_static/file.png share/doc/qemu/_static/file.png
@ -128,14 +129,17 @@ share/doc/qemu/devel/s390-dasd-ipl.html
share/doc/qemu/devel/secure-coding-practices.html share/doc/qemu/devel/secure-coding-practices.html
share/doc/qemu/devel/stable-process.html share/doc/qemu/devel/stable-process.html
share/doc/qemu/devel/style.html share/doc/qemu/devel/style.html
share/doc/qemu/devel/submitting-a-patch.html
share/doc/qemu/devel/submitting-a-pull-request.html
share/doc/qemu/devel/tcg-icount.html share/doc/qemu/devel/tcg-icount.html
share/doc/qemu/devel/tcg-plugins.html share/doc/qemu/devel/tcg-plugins.html
share/doc/qemu/devel/tcg.html share/doc/qemu/devel/tcg.html
share/doc/qemu/devel/testing.html share/doc/qemu/devel/testing.html
share/doc/qemu/devel/tracing.html share/doc/qemu/devel/tracing.html
share/doc/qemu/devel/trivial-patches.html
share/doc/qemu/devel/ui.html share/doc/qemu/devel/ui.html
share/doc/qemu/devel/vfio-migration.html share/doc/qemu/devel/vfio-migration.html
share/doc/qemu/devel/writing-qmp-commands.html share/doc/qemu/devel/writing-monitor-commands.html
share/doc/qemu/genindex.html share/doc/qemu/genindex.html
share/doc/qemu/index.html share/doc/qemu/index.html
share/doc/qemu/interop/ share/doc/qemu/interop/
@ -155,8 +159,12 @@ share/doc/qemu/objects.inv
share/doc/qemu/search.html share/doc/qemu/search.html
share/doc/qemu/searchindex.js share/doc/qemu/searchindex.js
share/doc/qemu/specs/ share/doc/qemu/specs/
share/doc/qemu/specs/acpi_cpu_hotplug.html
share/doc/qemu/specs/acpi_hest_ghes.html share/doc/qemu/specs/acpi_hest_ghes.html
share/doc/qemu/specs/acpi_hw_reduced_hotplug.html share/doc/qemu/specs/acpi_hw_reduced_hotplug.html
share/doc/qemu/specs/acpi_mem_hotplug.html
share/doc/qemu/specs/acpi_nvdimm.html
share/doc/qemu/specs/acpi_pci_hotplug.html
share/doc/qemu/specs/index.html share/doc/qemu/specs/index.html
share/doc/qemu/specs/ppc-spapr-numa.html share/doc/qemu/specs/ppc-spapr-numa.html
share/doc/qemu/specs/ppc-spapr-xive.html share/doc/qemu/specs/ppc-spapr-xive.html
@ -207,14 +215,18 @@ share/doc/qemu/system/devices/ivshmem.html
share/doc/qemu/system/devices/net.html share/doc/qemu/system/devices/net.html
share/doc/qemu/system/devices/nvme.html share/doc/qemu/system/devices/nvme.html
share/doc/qemu/system/devices/usb.html share/doc/qemu/system/devices/usb.html
share/doc/qemu/system/devices/vhost-user-rng.html
share/doc/qemu/system/devices/vhost-user.html share/doc/qemu/system/devices/vhost-user.html
share/doc/qemu/system/devices/virtio-pmem.html share/doc/qemu/system/devices/virtio-pmem.html
share/doc/qemu/system/gdb.html share/doc/qemu/system/gdb.html
share/doc/qemu/system/generic-loader.html share/doc/qemu/system/generic-loader.html
share/doc/qemu/system/guest-loader.html share/doc/qemu/system/guest-loader.html
share/doc/qemu/system/i386/ share/doc/qemu/system/i386/
share/doc/qemu/system/i386/cpu.html
share/doc/qemu/system/i386/kvm-pv.html
share/doc/qemu/system/i386/microvm.html share/doc/qemu/system/i386/microvm.html
share/doc/qemu/system/i386/pc.html share/doc/qemu/system/i386/pc.html
share/doc/qemu/system/i386/sgx.html
share/doc/qemu/system/images.html share/doc/qemu/system/images.html
share/doc/qemu/system/index.html share/doc/qemu/system/index.html
share/doc/qemu/system/invocation.html share/doc/qemu/system/invocation.html
@ -381,6 +393,7 @@ share/qemu/kvmvapic.bin
share/qemu/linuxboot.bin share/qemu/linuxboot.bin
share/qemu/linuxboot_dma.bin share/qemu/linuxboot_dma.bin
share/qemu/multiboot.bin share/qemu/multiboot.bin
share/qemu/multiboot_dma.bin
share/qemu/npcm7xx_bootrom.bin share/qemu/npcm7xx_bootrom.bin
share/qemu/openbios-ppc share/qemu/openbios-ppc
share/qemu/openbios-sparc32 share/qemu/openbios-sparc32

View File

@ -1,4 +1,4 @@
$OpenBSD: README-main,v 1.1 2021/02/28 18:38:41 landry Exp $ $OpenBSD: README-main,v 1.2 2021/12/24 03:50:41 daniel Exp $
+----------------------------------------------------------------------- +-----------------------------------------------------------------------
| Running ${PKGSTEM} on OpenBSD | Running ${PKGSTEM} on OpenBSD
@ -8,13 +8,13 @@ $OpenBSD: README-main,v 1.1 2021/02/28 18:38:41 landry Exp $
1. Get a bootable CDROM image: 1. Get a bootable CDROM image:
$ ftp ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386/cd52.iso $ ftp https://cdn.openbsd.org/pub/OpenBSD/snapshots/i386/cd70.iso
or to use a 64-bit client OS or SPARC, respectively: or to use a 64-bit client OS or SPARC, respectively:
$ ftp ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/amd64/cd52.iso $ ftp https://cdn.openbsd.org/pub/OpenBSD/snapshots/amd64/cd70.iso
$ ftp ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/sparc/cd52.iso $ ftp https://cdn.openbsd.org/pub/OpenBSD/snapshots/sparc/cd70.iso
2. Create a virtual disk image: 2. Create a virtual disk image:
@ -23,15 +23,15 @@ $OpenBSD: README-main,v 1.1 2021/02/28 18:38:41 landry Exp $
3. Install the OS: 3. Install the OS:
$ qemu-system-i386 -m 32 -monitor stdio -no-fd-bootchk \ $ qemu-system-i386 -m 32 -monitor stdio -no-fd-bootchk \
-hda virtual.img -cdrom cd52.iso -boot d -hda virtual.img -cdrom cd70.iso -boot d
or: or:
$ qemu-system-x86_64 -m 32 -monitor stdio -no-fd-bootchk \ $ qemu-system-x86_64 -m 32 -monitor stdio -no-fd-bootchk \
-hda virtual.img -cdrom cd52.iso -boot d -hda virtual.img -cdrom cd70.iso -boot d
$ qemu-system-sparc -m 32 -monitor stdio \ $ qemu-system-sparc -m 32 -monitor stdio \
-hda virtual.img -cdrom cd52.iso -boot d -hda virtual.img -cdrom cd70.iso -boot d
NOTE: start this inside an xterm or equivalent. NOTE: start this inside an xterm or equivalent.
NOTE: be sure to choose serial console during install. NOTE: be sure to choose serial console during install.