Friday, April 30, 2021

Re: UPDATE: QEMU 6.0.0

On Fri, Apr 30, 2021 at 11:05:43AM +0200, Landry Breuil wrote:
> On Fri, Apr 30, 2021 at 12:34:32AM -0400, Brad Smith wrote:
> > Here is an update to QEMU 6.0.0.
> >
> > https://wiki.qemu.org/ChangeLog/6.0
>
> lgtm, i'd juste remove textproc/libxml from LIB_DEPENDS-main as xml2
> disappeared from WANTLIB:
>
> LIB_DEPENDS textproc/libxml not needed for emulators/qemu,-main ?
>
> once this is commited, i'll send another patch adding support for more
> qemu-ga commands.


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.206
diff -u -p -u -p -r1.206 Makefile
--- Makefile 28 Feb 2021 18:38:41 -0000 1.206
+++ Makefile 30 Apr 2021 19:14:06 -0000
@@ -6,11 +6,10 @@ DPB_PROPERTIES= parallel
COMMENT-main= multi system emulator
COMMENT-ga= QEMU guest agent

-VERSION= 5.1.0
-DISTNAME= qemu-5.1.0
-PKGNAME-main= qemu-${VERSION}
+VERSION= 6.0.0
+DISTNAME= qemu-${VERSION}
+PKGNAME-main= ${DISTNAME}
PKGNAME-ga= qemu-ga-${VERSION}
-REVISION-main= 3
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
EXTRACT_SUFX= .tar.xz
@@ -22,12 +21,12 @@ MAINTAINER= Brad Smith <brad@comstyle.co
# GPLv2, LGPLv2 and BSD
PERMIT_PACKAGE= Yes

-WANTLIB= ${COMPILER_LIBCXX} c glib-2.0 gthread-2.0 intl m
-WANTLIB-main= ${WANTLIB} SDL2 X11 atk-1.0 bz2 c cairo cairo-gobject capstone \
- curl curses epoxy fdt gbm gdk-3 gdk_pixbuf-2.0 gio-2.0 gnutls \
- gobject-2.0 gtk-3 harfbuzz iconv iscsi jpeg lzo2 nettle nfs \
- pango-1.0 pangocairo-1.0 pixman-1 png sndio ssh usb-1.0 util \
- vte-2.91 xkbcommon xml2 z zstd
+WANTLIB= c glib-2.0 pthread
+WANTLIB-main= ${COMPILER_LIBCXX} ${WANTLIB} SDL2 X11 bz2 cairo capstone \
+ curl curses epoxy fdt gbm gdk-3 gdk_pixbuf-2.0 gio-2.0 \
+ gnutls gobject-2.0 gtk-3 iconv intl iscsi jpeg lzo2 m \
+ nettle nfs pixman-1 png sndio ssh usb-1.0 util vte-2.91 \
+ xkbcommon z zstd
WANTLIB-ga= ${WANTLIB}

MULTI_PACKAGES= -main -ga
@@ -39,11 +38,11 @@ MODULES= lang/python
MODPY_RUNDEP= No

BUILD_DEPENDS= devel/gettext,-tools \
+ devel/ninja \
textproc/py-sphinx${MODPY_FLAVOR}>=3.5.1

RUN_DEPENDS-main= ${BUILD_PKGPATH}-ga
-LIB_DEPENDS= devel/gettext,-runtime \
- devel/glib2
+LIB_DEPENDS= devel/glib2
LIB_DEPENDS-main= ${LIB_DEPENDS} \
archivers/bzip2 \
archivers/lzo2 \
@@ -51,6 +50,7 @@ LIB_DEPENDS-main= ${LIB_DEPENDS} \
converters/libiconv \
devel/capstone/main \
devel/dtc \
+ devel/gettext,-runtime \
devel/libiscsi \
devel/libnfs \
devel/libusb1 \
@@ -62,7 +62,6 @@ LIB_DEPENDS-main= ${LIB_DEPENDS} \
security/gnutls \
security/libnettle \
security/libssh \
- textproc/libxml \
x11/gtk+3 \
x11/xkbcommon
LIB_DEPENDS-ga= ${LIB_DEPENDS}
@@ -70,18 +69,16 @@ LIB_DEPENDS-ga= ${LIB_DEPENDS}
MAKE_ENV= V=1
FAKE_FLAGS= qemu_confdir=${PREFIX}/share/examples/qemu

-EXTRA_CFLAGS= -I${LOCALBASE}/include -I${X11BASE}/include
-EXTRA_LDFLAGS= -L${LOCALBASE}/lib -L${X11BASE}/lib
-
-# fix build with ancient ncurses. ncurses needs to be updated to 5.9 or newer.
-EXTRA_CFLAGS+= -D_XOPEN_SOURCE_EXTENDED
+CFLAGS+= -I${LOCALBASE}/include -I${X11BASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib -L${X11BASE}/lib

# until the system headers are fixed properly.
-EXTRA_CFLAGS+= -Wno-redundant-decls
+CFLAGS+= -Wno-redundant-decls

SEPARATE_BUILD= Yes
USE_GMAKE= Yes
CONFIGURE_STYLE=simple
+CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
CONFIGURE_ARGS= --prefix=${PREFIX} \
--sysconfdir=${SYSCONFDIR} \
--mandir=${PREFIX}/man \
@@ -90,11 +87,8 @@ CONFIGURE_ARGS= --prefix=${PREFIX} \
--cc="${CC}" \
--cxx="${CXX}" \
--host-cc="${CC}" \
- --extra-cflags="${EXTRA_CFLAGS}" \
- --extra-ldflags="${EXTRA_LDFLAGS}" \
--disable-bsd-user \
--enable-capstone=system \
- --enable-curses \
--disable-auth-pam \
--disable-gcrypt \
--disable-sdl-image \
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/distinfo,v
retrieving revision 1.62
diff -u -p -u -p -r1.62 distinfo
--- distinfo 17 Aug 2020 09:58:44 -0000 1.62
+++ distinfo 30 Apr 2021 03:41:11 -0000
@@ -1,2 +1,2 @@
-SHA256 (qemu-5.1.0.tar.xz) = yRdOtZM9nrXmH1Qc1tEYTNMRjf5MXElVvBvcTTkPpOU=
-SIZE (qemu-5.1.0.tar.xz) = 62911540
+SHA256 (qemu-6.0.0.tar.xz) = h7waRxyiS5fnAFcRBmAH1ENCPRmqzaPUQlWK4DL6MLk=
+SIZE (qemu-6.0.0.tar.xz) = 107333232
Index: patches/patch-audio_Makefile_objs
===================================================================
RCS file: patches/patch-audio_Makefile_objs
diff -N patches/patch-audio_Makefile_objs
--- patches/patch-audio_Makefile_objs 17 Aug 2020 09:58:44 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-$OpenBSD: patch-audio_Makefile_objs,v 1.3 2020/08/17 09:58:44 sthen Exp $
-
-sndio module
-
-Index: audio/Makefile.objs
---- audio/Makefile.objs.orig
-+++ audio/Makefile.objs
-@@ -29,6 +29,11 @@ sdl.mo-objs = sdlaudio.o
- sdl.mo-cflags := $(SDL_CFLAGS)
- sdl.mo-libs := $(SDL_LIBS)
-
-+# sndio module
-+common-obj-$(CONFIG_AUDIO_SNDIO) += sndio.mo
-+sndio.mo-objs = sndioaudio.o
-+sndio.mo-libs := $(SNDIO_LIBS)
-+
- # jack module
- common-obj-$(CONFIG_AUDIO_JACK) += jack.mo
- jack.mo-objs = jackaudio.o
Index: patches/patch-audio_audio_c
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/patches/patch-audio_audio_c,v
retrieving revision 1.8
diff -u -p -u -p -r1.8 patch-audio_audio_c
--- patches/patch-audio_audio_c 17 Aug 2020 09:58:44 -0000 1.8
+++ patches/patch-audio_audio_c 27 Mar 2021 00:12:30 -0000
@@ -3,10 +3,10 @@ $OpenBSD: patch-audio_audio_c,v 1.8 2020
Index: audio/audio.c
--- audio/audio.c.orig
+++ audio/audio.c
-@@ -1973,6 +1973,7 @@ void audio_create_pdos(Audiodev *dev)
+@@ -1994,6 +1994,7 @@ void audio_create_pdos(Audiodev *dev)
CASE(OSS, oss, Oss);
CASE(PA, pa, Pa);
- CASE(SDL, sdl, );
+ CASE(SDL, sdl, Sdl);
+ CASE(SNDIO, sndio, );
CASE(SPICE, spice, );
CASE(WAV, wav, );
Index: patches/patch-audio_audio_template_h
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/patches/patch-audio_audio_template_h,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-audio_audio_template_h
--- patches/patch-audio_audio_template_h 17 Aug 2020 09:58:44 -0000 1.4
+++ patches/patch-audio_audio_template_h 27 Mar 2021 00:12:25 -0000
@@ -3,10 +3,10 @@ $OpenBSD: patch-audio_audio_template_h,v
Index: audio/audio_template.h
--- audio/audio_template.h.orig
+++ audio/audio_template.h
-@@ -338,6 +338,8 @@ AudiodevPerDirectionOptions *glue(audio_get_pdo_, TYPE
+@@ -337,6 +337,8 @@ AudiodevPerDirectionOptions *glue(audio_get_pdo_, TYPE
return qapi_AudiodevPaPerDirectionOptions_base(dev->u.pa.TYPE);
case AUDIODEV_DRIVER_SDL:
- return dev->u.sdl.TYPE;
+ return qapi_AudiodevSdlPerDirectionOptions_base(dev->u.sdl.TYPE);
+ case AUDIODEV_DRIVER_SNDIO:
+ return dev->u.sndio.TYPE;
case AUDIODEV_DRIVER_SPICE:
Index: patches/patch-audio_meson_build
===================================================================
RCS file: patches/patch-audio_meson_build
diff -N patches/patch-audio_meson_build
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-audio_meson_build 28 Feb 2021 19:11:41 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+sndio module
+
+Index: audio/meson.build
+--- audio/meson.build.orig
++++ audio/meson.build
+@@ -17,6 +17,7 @@ foreach m : [
+ ['CONFIG_AUDIO_OSS', 'oss', oss, 'ossaudio.c'],
+ ['CONFIG_AUDIO_PA', 'pa', pulse, 'paaudio.c'],
+ ['CONFIG_AUDIO_SDL', 'sdl', sdl, 'sdlaudio.c'],
++ ['CONFIG_AUDIO_SNDIO', 'sndio', sndio, 'sndioaudio.c'],
+ ['CONFIG_AUDIO_JACK', 'jack', jack, 'jackaudio.c'],
+ ['CONFIG_SPICE', 'spice', spice, 'spiceaudio.c']
+ ]
Index: patches/patch-configure
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/patches/patch-configure,v
retrieving revision 1.66
diff -u -p -u -p -r1.66 patch-configure
--- patches/patch-configure 17 Aug 2020 09:58:44 -0000 1.66
+++ patches/patch-configure 28 Apr 2021 23:32:12 -0000
@@ -5,7 +5,7 @@ sndio module
Index: configure
--- configure.orig
+++ configure
-@@ -857,8 +857,8 @@ NetBSD)
+@@ -763,8 +763,8 @@ NetBSD)
OpenBSD)
bsd="yes"
make="${MAKE-gmake}"
@@ -13,42 +13,18 @@ Index: configure
- audio_possible_drivers="sdl"
+ audio_drv_list="sndio"
+ audio_possible_drivers="sndio"
- HOST_VARIANT_DIR="openbsd"
- supported_os="yes"
;;
-@@ -3690,6 +3690,24 @@ fi
- ##########################################
- # Sound support libraries probe
-
-+audio_drv_probe()
-+{
-+ drv=$1
-+ hdr=$2
-+ lib=$3
-+ exp=$4
-+ cfl=$5
-+ cat > $TMPC << EOF
-+#include <$hdr>
-+int main(void) { $exp }
-+EOF
-+ if compile_prog "$cfl" "$lib" ; then
-+ :
-+ else
-+ return 1
-+ fi
-+}
-+
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/,/ /g')
- for drv in $audio_drv_list; do
- case $drv in
-@@ -3739,6 +3757,23 @@ for drv in $audio_drv_list; do
+ Darwin)
+ bsd="yes"
+@@ -3246,6 +3246,24 @@ for drv in $audio_drv_list; do
fi
;;

+ sndio | try-sndio)
-+ if audio_drv_probe $drv sndio.h "-lsndio" \
-+ "sio_open(0, SIO_PLAY, 0); return 0;"; then
-+ sndio_libs="-lsndio"
++ 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
@@ -62,34 +38,26 @@ Index: configure
+ fi
+ ;;
+
- coreaudio)
- coreaudio_libs="-framework CoreAudio"
- ;;
-@@ -6524,10 +6559,6 @@ write_c_skeleton
+ coreaudio | try-coreaudio)
+ if test "$coreaudio" = "no"; then
+ if test "$drv" = "try-coreaudio"; then
+@@ -5299,7 +5317,6 @@ write_c_skeleton
if test "$gcov" = "yes" ; then
- QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
- QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
--elif test "$fortify_source" = "yes" ; then
-- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
--elif test "$debug" = "no"; then
-- CFLAGS="-O2 $CFLAGS"
+ :
+ elif test "$fortify_source" = "yes" ; then
+- QEMU_CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
+ debug=no
fi

- if test "$have_asan" = "yes"; then
-@@ -7182,7 +7213,7 @@ echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config
- for drv in $audio_drv_list; do
- def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
- case "$drv" in
-- alsa | oss | pa | sdl)
-+ alsa | oss | pa | sdl | sndio)
- echo "$def=m" >> $config_host_mak ;;
- *)
- echo "$def=y" >> $config_host_mak ;;
-@@ -7193,6 +7224,7 @@ echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
+@@ -5562,6 +5579,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 "JACK_LIBS=$jack_libs" >> $config_host_mak
- if test "$audio_win_int" = "yes" ; then
- echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
++echo "SNDIO_CFLAGS=$sndio_cflags" >> $config_host_mak
+ if test "$libjack" = "yes" ; then
+ echo "CONFIG_LIBJACK=y" >> $config_host_mak
+ fi
Index: patches/patch-hw_hppa_lasi_c
===================================================================
RCS file: patches/patch-hw_hppa_lasi_c
diff -N patches/patch-hw_hppa_lasi_c
--- patches/patch-hw_hppa_lasi_c 7 Oct 2020 19:55:57 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,33 +0,0 @@
-$OpenBSD: patch-hw_hppa_lasi_c,v 1.1 2020/10/07 19:55:57 cwen Exp $
-
-From upstream commit b899fe41:
-
-OpenBSD initializes the LASI IMR value with 0xffffffff to disable all LASI
-interrupts. This triggered an assert() and stopped the emulation. By replacing
-the check with a warning in the guest log we now allow OpenBSD to boot again.
-
-Index: hw/hppa/lasi.c
---- hw/hppa/lasi.c.orig
-+++ hw/hppa/lasi.c
-@@ -11,6 +11,7 @@
-
- #include "qemu/osdep.h"
- #include "qemu/units.h"
-+#include "qemu/log.h"
- #include "qapi/error.h"
- #include "cpu.h"
- #include "trace.h"
-@@ -172,8 +173,11 @@ static MemTxResult lasi_chip_write_with_attrs(void *op
- /* read-only. */
- break;
- case LASI_IMR:
-- s->imr = val; /* 0x20 ?? */
-- assert((val & LASI_IRQ_BITS) == val);
-+ s->imr = val;
-+ if (((val & LASI_IRQ_BITS) != val) && (val != 0xffffffff))
-+ qemu_log_mask(LOG_GUEST_ERROR,
-+ "LASI: tried to set invalid %lx IMR value.\n",
-+ (unsigned long) val);
- break;
- case LASI_IPR:
- /* Any write to IPR clears the register. */
Index: patches/patch-meson_build
===================================================================
RCS file: patches/patch-meson_build
diff -N patches/patch-meson_build
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-meson_build 30 Apr 2021 03:46:24 -0000
@@ -0,0 +1,42 @@
+$OpenBSD$
+
+- Fix curses build on OpenBSD
+- sndio module
+- Remove hardcoding of optimization
+
+Index: meson.build
+--- meson.build.orig
++++ meson.build
+@@ -444,6 +444,11 @@ jack = not_found
+ if 'CONFIG_LIBJACK' in config_host
+ jack = declare_dependency(link_args: config_host['JACK_LIBS'].split())
+ endif
++sndio = not_found
++if 'CONFIG_SNDIO' in config_host
++ sndio = declare_dependency(compile_args: config_host['SNDIO_CFLAGS'].split(),
++ link_args: config_host['SNDIO_LIBS'].split())
++endif
+ spice = not_found
+ spice_headers = not_found
+ if 'CONFIG_SPICE' in config_host
+@@ -590,7 +595,7 @@ if have_system and not get_option('curses').disabled()
+ endif
+ endforeach
+ msg = get_option('curses').enabled() ? 'curses library not found' : ''
+- curses_compile_args = ['-DNCURSES_WIDECHAR']
++ curses_compile_args = ['-D_XOPEN_SOURCE_EXTENDED -DNCURSES_WIDECHAR']
+ if curses.found()
+ if cc.links(curses_test, args: curses_compile_args, dependencies: [curses])
+ curses = declare_dependency(compile_args: curses_compile_args, dependencies: [curses])
+@@ -2510,11 +2515,9 @@ if targetos == 'windows'
+ endif
+ summary_info += {'ARFLAGS': config_host['ARFLAGS']}
+ summary_info += {'CFLAGS': ' '.join(get_option('c_args')
+- + ['-O' + get_option('optimization')]
+ + (get_option('debug') ? ['-g'] : []))}
+ if link_language == 'cpp'
+ summary_info += {'CXXFLAGS': ' '.join(get_option('cpp_args')
+- + ['-O' + get_option('optimization')]
+ + (get_option('debug') ? ['-g'] : []))}
+ endif
+ link_args = get_option(link_language + '_link_args')
Index: patches/patch-meson_mesonbuild_compilers_cpp_py
===================================================================
RCS file: patches/patch-meson_mesonbuild_compilers_cpp_py
diff -N patches/patch-meson_mesonbuild_compilers_cpp_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-meson_mesonbuild_compilers_cpp_py 27 Mar 2021 05:49:15 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+Index: meson/mesonbuild/compilers/cpp.py
+--- meson/mesonbuild/compilers/cpp.py.orig
++++ meson/mesonbuild/compilers/cpp.py
+@@ -210,7 +210,7 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
+ return []
+
+ def language_stdlib_only_link_flags(self):
+- return ['-lstdc++']
++ return ['-lc++']
+
+
+ class AppleClangCPPCompiler(ClangCPPCompiler):
+@@ -346,7 +346,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
+ return ['-fpch-preprocess', '-include', os.path.basename(header)]
+
+ def language_stdlib_only_link_flags(self):
+- return ['-lstdc++']
++ return ['-lestdc++']
+
+
+ class PGICPPCompiler(PGICompiler, CPPCompiler):
Index: patches/patch-qapi_audio_json
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/patches/patch-qapi_audio_json,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-qapi_audio_json
--- patches/patch-qapi_audio_json 17 Aug 2020 09:58:44 -0000 1.4
+++ patches/patch-qapi_audio_json 27 Mar 2021 00:12:25 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-qapi_audio_json,v 1.4 20
Index: qapi/audio.json
--- qapi/audio.json.orig
+++ qapi/audio.json
-@@ -102,6 +102,28 @@
+@@ -106,6 +106,28 @@
'*threshold': 'uint32' } }

##
@@ -32,7 +32,7 @@ Index: qapi/audio.json
# @AudiodevCoreaudioPerDirectionOptions:
#
# Options of the Core Audio backend that are used for both playback and
-@@ -352,7 +374,7 @@
+@@ -387,7 +409,7 @@
##
{ 'enum': 'AudiodevDriver',
'data': [ 'none', 'alsa', 'coreaudio', 'dsound', 'jack', 'oss', 'pa',
@@ -41,10 +41,10 @@ Index: qapi/audio.json

##
# @Audiodev:
-@@ -382,5 +404,6 @@
+@@ -417,5 +439,6 @@
'oss': 'AudiodevOssOptions',
'pa': 'AudiodevPaOptions',
- 'sdl': 'AudiodevGenericOptions',
+ 'sdl': 'AudiodevSdlOptions',
+ 'sndio': 'AudiodevSndioOptions',
'spice': 'AudiodevGenericOptions',
'wav': 'AudiodevWavOptions' } }
Index: patches/patch-qemu-options_hx
===================================================================
RCS file: /home/cvs/ports/emulators/qemu/patches/patch-qemu-options_hx,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 patch-qemu-options_hx
--- patches/patch-qemu-options_hx 17 Aug 2020 09:58:44 -0000 1.7
+++ patches/patch-qemu-options_hx 27 Mar 2021 00:12:25 -0000
@@ -3,9 +3,9 @@ $OpenBSD: patch-qemu-options_hx,v 1.7 20
Index: qemu-options.hx
--- qemu-options.hx.orig
+++ qemu-options.hx
-@@ -590,6 +590,9 @@ DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev,
- #ifdef CONFIG_AUDIO_SDL
+@@ -614,6 +614,9 @@ DEF("audiodev", HAS_ARG, QEMU_OPTION_audiodev,
"-audiodev sdl,id=id[,prop[=value][,...]]\n"
+ " in|out.buffer-count= number of buffers\n"

No comments:

Post a Comment