[libvirt] [PATCH v3 0/4] Add resolution properties for QEMU video devices
by jcfaracco@gmail.com
From: Julio Faracco <jcfaracco(a)gmail.com>
This serie adds resolution ('x' and 'y') properties into XML definition
for QEMU video devices to specify a default resolution. This specific
case is not considering those attributes as a QEMU capabilities due to
complexity of code versus test complexity versus a real gain. This
skeleton would work very well initially. After, it should be possible to
include them as a capabilities without changing this serie.
v1-v2: Adds suggestions of multiple members.
v2-v3: Adds Cole's suggestions.
Julio Faracco (4):
docs: Add 'xres' and 'yres' into video XML definition
qemu: Generate 'xres' and 'yres' for video devices
conf: Adding XML resolution support for video models
tests: Add separate tests for resolution 'x' and 'y'
docs/formatdomain.html.in | 5 +-
docs/schemas/domaincommon.rng | 10 +++
src/conf/domain_conf.c | 74 ++++++++++++++++++-
src/conf/domain_conf.h | 5 ++
src/conf/virconftypes.h | 3 +
src/qemu/qemu_command.c | 5 ++
.../video-qxl-resolution.args | 32 ++++++++
.../qemuxml2argvdata/video-qxl-resolution.xml | 42 +++++++++++
tests/qemuxml2argvtest.c | 4 +
.../video-qxl-resolution.xml | 42 +++++++++++
tests/qemuxml2xmltest.c | 1 +
11 files changed, 221 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxml2argvdata/video-qxl-resolution.args
create mode 100644 tests/qemuxml2argvdata/video-qxl-resolution.xml
create mode 100644 tests/qemuxml2xmloutdata/video-qxl-resolution.xml
--
2.20.1
5 years, 2 months
[libvirt] [dockerfiles PATCH] Refresh after forcing an UTF-8 locale
by Andrea Bolognani
The corresponding libvirt-jenkins-ci commit is 7ee840dc17ca.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Pushed under the Dockerfile refresh rule. Plain-text diff below.
buildenv-libosinfo-centos-7.zip | Bin 546 -> 575 bytes
buildenv-libosinfo-debian-10.zip | Bin 646 -> 663 bytes
buildenv-libosinfo-debian-9.zip | Bin 666 -> 683 bytes
buildenv-libosinfo-debian-sid.zip | Bin 646 -> 663 bytes
buildenv-libosinfo-fedora-29.zip | Bin 513 -> 544 bytes
buildenv-libosinfo-fedora-30.zip | Bin 575 -> 605 bytes
buildenv-libosinfo-fedora-rawhide.zip | Bin 533 -> 564 bytes
buildenv-libosinfo-ubuntu-16.zip | Bin 669 -> 686 bytes
buildenv-libosinfo-ubuntu-18.zip | Bin 669 -> 686 bytes
buildenv-libvirt-centos-7.zip | Bin 729 -> 759 bytes
buildenv-libvirt-debian-10-cross-aarch64.zip | Bin 998 -> 1010 bytes
buildenv-libvirt-debian-10-cross-armv6l.zip | Bin 989 -> 1003 bytes
buildenv-libvirt-debian-10-cross-armv7l.zip | Bin 993 -> 1008 bytes
buildenv-libvirt-debian-10-cross-i686.zip | Bin 993 -> 1001 bytes
buildenv-libvirt-debian-10-cross-mips.zip | Bin 987 -> 997 bytes
buildenv-libvirt-debian-10-cross-mips64el.zip | Bin 1000 -> 1011 bytes
buildenv-libvirt-debian-10-cross-mipsel.zip | Bin 992 -> 1001 bytes
buildenv-libvirt-debian-10-cross-ppc64le.zip | Bin 999 -> 1012 bytes
buildenv-libvirt-debian-10-cross-s390x.zip | Bin 991 -> 1000 bytes
buildenv-libvirt-debian-10.zip | Bin 879 -> 898 bytes
buildenv-libvirt-debian-9-cross-aarch64.zip | Bin 1028 -> 1042 bytes
buildenv-libvirt-debian-9-cross-armv6l.zip | Bin 1021 -> 1033 bytes
buildenv-libvirt-debian-9-cross-armv7l.zip | Bin 1025 -> 1039 bytes
buildenv-libvirt-debian-9-cross-mips.zip | Bin 1020 -> 1033 bytes
buildenv-libvirt-debian-9-cross-mips64el.zip | Bin 1032 -> 1041 bytes
buildenv-libvirt-debian-9-cross-mipsel.zip | Bin 1023 -> 1036 bytes
buildenv-libvirt-debian-9-cross-ppc64le.zip | Bin 1032 -> 1045 bytes
buildenv-libvirt-debian-9-cross-s390x.zip | Bin 1022 -> 1034 bytes
buildenv-libvirt-debian-9.zip | Bin 908 -> 927 bytes
buildenv-libvirt-debian-sid-cross-aarch64.zip | Bin 997 -> 1010 bytes
buildenv-libvirt-debian-sid-cross-armv6l.zip | Bin 989 -> 1003 bytes
buildenv-libvirt-debian-sid-cross-armv7l.zip | Bin 994 -> 1008 bytes
buildenv-libvirt-debian-sid-cross-i686.zip | Bin 992 -> 1001 bytes
buildenv-libvirt-debian-sid-cross-mips.zip | Bin 987 -> 1000 bytes
...denv-libvirt-debian-sid-cross-mips64el.zip | Bin 999 -> 1014 bytes
buildenv-libvirt-debian-sid-cross-mipsel.zip | Bin 992 -> 1005 bytes
buildenv-libvirt-debian-sid-cross-ppc64le.zip | Bin 1000 -> 1012 bytes
buildenv-libvirt-debian-sid-cross-s390x.zip | Bin 991 -> 1000 bytes
buildenv-libvirt-debian-sid.zip | Bin 879 -> 898 bytes
buildenv-libvirt-fedora-29.zip | Bin 738 -> 768 bytes
buildenv-libvirt-fedora-30.zip | Bin 862 -> 891 bytes
buildenv-libvirt-fedora-rawhide.zip | Bin 758 -> 788 bytes
buildenv-libvirt-ubuntu-16.zip | Bin 915 -> 933 bytes
buildenv-libvirt-ubuntu-18.zip | Bin 916 -> 935 bytes
44 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/buildenv-libosinfo-centos-7.zip b/buildenv-libosinfo-centos-7.zip
index 4da4c52..c9dd791 100644
--- a/buildenv-libosinfo-centos-7.zip
+++ b/buildenv-libosinfo-centos-7.zip
@@ -54,3 +54,5 @@ RUN yum update -y && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-debian-10.zip b/buildenv-libosinfo-debian-10.zip
index e3b9a99..2592910 100644
--- a/buildenv-libosinfo-debian-10.zip
+++ b/buildenv-libosinfo-debian-10.zip
@@ -54,3 +54,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-debian-9.zip b/buildenv-libosinfo-debian-9.zip
index 47d4c59..72b04a2 100644
--- a/buildenv-libosinfo-debian-9.zip
+++ b/buildenv-libosinfo-debian-9.zip
@@ -57,3 +57,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-debian-sid.zip b/buildenv-libosinfo-debian-sid.zip
index de8128f..f81f758 100644
--- a/buildenv-libosinfo-debian-sid.zip
+++ b/buildenv-libosinfo-debian-sid.zip
@@ -54,3 +54,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-fedora-29.zip b/buildenv-libosinfo-fedora-29.zip
index a0fbbb2..c3cb705 100644
--- a/buildenv-libosinfo-fedora-29.zip
+++ b/buildenv-libosinfo-fedora-29.zip
@@ -51,3 +51,5 @@ RUN dnf update -y && \
vim && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-fedora-30.zip b/buildenv-libosinfo-fedora-30.zip
index fa864d5..96e195e 100644
--- a/buildenv-libosinfo-fedora-30.zip
+++ b/buildenv-libosinfo-fedora-30.zip
@@ -64,3 +64,5 @@ RUN dnf update -y && \
wget && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-fedora-rawhide.zip b/buildenv-libosinfo-fedora-rawhide.zip
index 45acef2..6d6cefd 100644
--- a/buildenv-libosinfo-fedora-rawhide.zip
+++ b/buildenv-libosinfo-fedora-rawhide.zip
@@ -52,3 +52,5 @@ RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
vim && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-ubuntu-16.zip b/buildenv-libosinfo-ubuntu-16.zip
index 4e2ef2e..5e3bc10 100644
--- a/buildenv-libosinfo-ubuntu-16.zip
+++ b/buildenv-libosinfo-ubuntu-16.zip
@@ -57,3 +57,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libosinfo-ubuntu-18.zip b/buildenv-libosinfo-ubuntu-18.zip
index fae08fc..ff8df9a 100644
--- a/buildenv-libosinfo-ubuntu-18.zip
+++ b/buildenv-libosinfo-ubuntu-18.zip
@@ -57,3 +57,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-centos-7.zip b/buildenv-libvirt-centos-7.zip
index 148a4e5..d779453 100644
--- a/buildenv-libvirt-centos-7.zip
+++ b/buildenv-libvirt-centos-7.zip
@@ -89,3 +89,5 @@ RUN yum update -y && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-debian-10-cross-aarch64.zip b/buildenv-libvirt-debian-10-cross-aarch64.zip
index 8783769..464e6e8 100644
--- a/buildenv-libvirt-debian-10-cross-aarch64.zip
+++ b/buildenv-libvirt-debian-10-cross-aarch64.zip
@@ -103,6 +103,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "aarch64-linux-gnu"
ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu \
--target=aarch64-linux-gnu"
diff --git a/buildenv-libvirt-debian-10-cross-armv6l.zip b/buildenv-libvirt-debian-10-cross-armv6l.zip
index 2ac1669..a100e1e 100644
--- a/buildenv-libvirt-debian-10-cross-armv6l.zip
+++ b/buildenv-libvirt-debian-10-cross-armv6l.zip
@@ -101,6 +101,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabi"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi \
--target=arm-linux-gnueabi"
diff --git a/buildenv-libvirt-debian-10-cross-armv7l.zip b/buildenv-libvirt-debian-10-cross-armv7l.zip
index 5f8ef23..dd40036 100644
--- a/buildenv-libvirt-debian-10-cross-armv7l.zip
+++ b/buildenv-libvirt-debian-10-cross-armv7l.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabihf"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf \
--target=arm-linux-gnueabihf"
diff --git a/buildenv-libvirt-debian-10-cross-i686.zip b/buildenv-libvirt-debian-10-cross-i686.zip
index d31143d..b997fdb 100644
--- a/buildenv-libvirt-debian-10-cross-i686.zip
+++ b/buildenv-libvirt-debian-10-cross-i686.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "i686-linux-gnu"
ENV CONFIGURE_OPTS "--host=i686-linux-gnu \
--target=i686-linux-gnu"
diff --git a/buildenv-libvirt-debian-10-cross-mips.zip b/buildenv-libvirt-debian-10-cross-mips.zip
index fc111ce..4bcaca0 100644
--- a/buildenv-libvirt-debian-10-cross-mips.zip
+++ b/buildenv-libvirt-debian-10-cross-mips.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips-linux-gnu"
ENV CONFIGURE_OPTS "--host=mips-linux-gnu \
--target=mips-linux-gnu"
diff --git a/buildenv-libvirt-debian-10-cross-mips64el.zip b/buildenv-libvirt-debian-10-cross-mips64el.zip
index 0195967..dc03ed2 100644
--- a/buildenv-libvirt-debian-10-cross-mips64el.zip
+++ b/buildenv-libvirt-debian-10-cross-mips64el.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips64el-linux-gnuabi64"
ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64 \
--target=mips64el-linux-gnuabi64"
diff --git a/buildenv-libvirt-debian-10-cross-mipsel.zip b/buildenv-libvirt-debian-10-cross-mipsel.zip
index bdea106..5252f5d 100644
--- a/buildenv-libvirt-debian-10-cross-mipsel.zip
+++ b/buildenv-libvirt-debian-10-cross-mipsel.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mipsel-linux-gnu"
ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu \
--target=mipsel-linux-gnu"
diff --git a/buildenv-libvirt-debian-10-cross-ppc64le.zip b/buildenv-libvirt-debian-10-cross-ppc64le.zip
index b4c6373..d208ffc 100644
--- a/buildenv-libvirt-debian-10-cross-ppc64le.zip
+++ b/buildenv-libvirt-debian-10-cross-ppc64le.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "powerpc64le-linux-gnu"
ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu \
--target=powerpc64le-linux-gnu"
diff --git a/buildenv-libvirt-debian-10-cross-s390x.zip b/buildenv-libvirt-debian-10-cross-s390x.zip
index b13c921..b38a6bf 100644
--- a/buildenv-libvirt-debian-10-cross-s390x.zip
+++ b/buildenv-libvirt-debian-10-cross-s390x.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "s390x-linux-gnu"
ENV CONFIGURE_OPTS "--host=s390x-linux-gnu \
--target=s390x-linux-gnu"
diff --git a/buildenv-libvirt-debian-10.zip b/buildenv-libvirt-debian-10.zip
index 6da9f17..edb1995 100644
--- a/buildenv-libvirt-debian-10.zip
+++ b/buildenv-libvirt-debian-10.zip
@@ -96,3 +96,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-debian-9-cross-aarch64.zip b/buildenv-libvirt-debian-9-cross-aarch64.zip
index 9d1150c..b3aab6c 100644
--- a/buildenv-libvirt-debian-9-cross-aarch64.zip
+++ b/buildenv-libvirt-debian-9-cross-aarch64.zip
@@ -107,6 +107,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "aarch64-linux-gnu"
ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu \
--target=aarch64-linux-gnu"
diff --git a/buildenv-libvirt-debian-9-cross-armv6l.zip b/buildenv-libvirt-debian-9-cross-armv6l.zip
index 8bcabc2..1315370 100644
--- a/buildenv-libvirt-debian-9-cross-armv6l.zip
+++ b/buildenv-libvirt-debian-9-cross-armv6l.zip
@@ -105,6 +105,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabi"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi \
--target=arm-linux-gnueabi"
diff --git a/buildenv-libvirt-debian-9-cross-armv7l.zip b/buildenv-libvirt-debian-9-cross-armv7l.zip
index c4f5e06..5b00d99 100644
--- a/buildenv-libvirt-debian-9-cross-armv7l.zip
+++ b/buildenv-libvirt-debian-9-cross-armv7l.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabihf"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf \
--target=arm-linux-gnueabihf"
diff --git a/buildenv-libvirt-debian-9-cross-mips.zip b/buildenv-libvirt-debian-9-cross-mips.zip
index 771e34a..a0bf5d7 100644
--- a/buildenv-libvirt-debian-9-cross-mips.zip
+++ b/buildenv-libvirt-debian-9-cross-mips.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips-linux-gnu"
ENV CONFIGURE_OPTS "--host=mips-linux-gnu \
--target=mips-linux-gnu"
diff --git a/buildenv-libvirt-debian-9-cross-mips64el.zip b/buildenv-libvirt-debian-9-cross-mips64el.zip
index 52a6ec3..553de7f 100644
--- a/buildenv-libvirt-debian-9-cross-mips64el.zip
+++ b/buildenv-libvirt-debian-9-cross-mips64el.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips64el-linux-gnuabi64"
ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64 \
--target=mips64el-linux-gnuabi64"
diff --git a/buildenv-libvirt-debian-9-cross-mipsel.zip b/buildenv-libvirt-debian-9-cross-mipsel.zip
index 8b3146c..400bdbd 100644
--- a/buildenv-libvirt-debian-9-cross-mipsel.zip
+++ b/buildenv-libvirt-debian-9-cross-mipsel.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mipsel-linux-gnu"
ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu \
--target=mipsel-linux-gnu"
diff --git a/buildenv-libvirt-debian-9-cross-ppc64le.zip b/buildenv-libvirt-debian-9-cross-ppc64le.zip
index 6476438..becdd74 100644
--- a/buildenv-libvirt-debian-9-cross-ppc64le.zip
+++ b/buildenv-libvirt-debian-9-cross-ppc64le.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "powerpc64le-linux-gnu"
ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu \
--target=powerpc64le-linux-gnu"
diff --git a/buildenv-libvirt-debian-9-cross-s390x.zip b/buildenv-libvirt-debian-9-cross-s390x.zip
index 9eebda0..cdf007d 100644
--- a/buildenv-libvirt-debian-9-cross-s390x.zip
+++ b/buildenv-libvirt-debian-9-cross-s390x.zip
@@ -106,6 +106,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+ENV LANG "en_US.UTF-8"
+
ENV ABI "s390x-linux-gnu"
ENV CONFIGURE_OPTS "--host=s390x-linux-gnu \
--target=s390x-linux-gnu"
diff --git a/buildenv-libvirt-debian-9.zip b/buildenv-libvirt-debian-9.zip
index 4a20573..9b64729 100644
--- a/buildenv-libvirt-debian-9.zip
+++ b/buildenv-libvirt-debian-9.zip
@@ -100,3 +100,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-debian-sid-cross-aarch64.zip b/buildenv-libvirt-debian-sid-cross-aarch64.zip
index 72d3f19..55bc82d 100644
--- a/buildenv-libvirt-debian-sid-cross-aarch64.zip
+++ b/buildenv-libvirt-debian-sid-cross-aarch64.zip
@@ -103,6 +103,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "aarch64-linux-gnu"
ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu \
--target=aarch64-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid-cross-armv6l.zip b/buildenv-libvirt-debian-sid-cross-armv6l.zip
index b644daf..44cd281 100644
--- a/buildenv-libvirt-debian-sid-cross-armv6l.zip
+++ b/buildenv-libvirt-debian-sid-cross-armv6l.zip
@@ -101,6 +101,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabi"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi \
--target=arm-linux-gnueabi"
diff --git a/buildenv-libvirt-debian-sid-cross-armv7l.zip b/buildenv-libvirt-debian-sid-cross-armv7l.zip
index 3620b23..6b1bfc3 100644
--- a/buildenv-libvirt-debian-sid-cross-armv7l.zip
+++ b/buildenv-libvirt-debian-sid-cross-armv7l.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "arm-linux-gnueabihf"
ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf \
--target=arm-linux-gnueabihf"
diff --git a/buildenv-libvirt-debian-sid-cross-i686.zip b/buildenv-libvirt-debian-sid-cross-i686.zip
index 4de80e2..87ac9e2 100644
--- a/buildenv-libvirt-debian-sid-cross-i686.zip
+++ b/buildenv-libvirt-debian-sid-cross-i686.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "i686-linux-gnu"
ENV CONFIGURE_OPTS "--host=i686-linux-gnu \
--target=i686-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid-cross-mips.zip b/buildenv-libvirt-debian-sid-cross-mips.zip
index 7ba7296..90b34e5 100644
--- a/buildenv-libvirt-debian-sid-cross-mips.zip
+++ b/buildenv-libvirt-debian-sid-cross-mips.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips-linux-gnu"
ENV CONFIGURE_OPTS "--host=mips-linux-gnu \
--target=mips-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid-cross-mips64el.zip b/buildenv-libvirt-debian-sid-cross-mips64el.zip
index 233e30c..9aa7e8a 100644
--- a/buildenv-libvirt-debian-sid-cross-mips64el.zip
+++ b/buildenv-libvirt-debian-sid-cross-mips64el.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mips64el-linux-gnuabi64"
ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64 \
--target=mips64el-linux-gnuabi64"
diff --git a/buildenv-libvirt-debian-sid-cross-mipsel.zip b/buildenv-libvirt-debian-sid-cross-mipsel.zip
index 5fb2ad4..485b080 100644
--- a/buildenv-libvirt-debian-sid-cross-mipsel.zip
+++ b/buildenv-libvirt-debian-sid-cross-mipsel.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "mipsel-linux-gnu"
ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu \
--target=mipsel-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid-cross-ppc64le.zip b/buildenv-libvirt-debian-sid-cross-ppc64le.zip
index fab8039..b38c207 100644
--- a/buildenv-libvirt-debian-sid-cross-ppc64le.zip
+++ b/buildenv-libvirt-debian-sid-cross-ppc64le.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "powerpc64le-linux-gnu"
ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu \
--target=powerpc64le-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid-cross-s390x.zip b/buildenv-libvirt-debian-sid-cross-s390x.zip
index 51afe17..68a50b5 100644
--- a/buildenv-libvirt-debian-sid-cross-s390x.zip
+++ b/buildenv-libvirt-debian-sid-cross-s390x.zip
@@ -102,6 +102,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoremove -y && \
apt-get autoclean -y
+ENV LANG "en_US.UTF-8"
+
ENV ABI "s390x-linux-gnu"
ENV CONFIGURE_OPTS "--host=s390x-linux-gnu \
--target=s390x-linux-gnu"
diff --git a/buildenv-libvirt-debian-sid.zip b/buildenv-libvirt-debian-sid.zip
index b84bbc8..9a4153d 100644
--- a/buildenv-libvirt-debian-sid.zip
+++ b/buildenv-libvirt-debian-sid.zip
@@ -96,3 +96,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-fedora-29.zip b/buildenv-libvirt-fedora-29.zip
index ada66ea..0953e21 100644
--- a/buildenv-libvirt-fedora-29.zip
+++ b/buildenv-libvirt-fedora-29.zip
@@ -94,3 +94,5 @@ RUN dnf update -y && \
zfs-fuse && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-fedora-30.zip b/buildenv-libvirt-fedora-30.zip
index 87a61df..aa5e0f0 100644
--- a/buildenv-libvirt-fedora-30.zip
+++ b/buildenv-libvirt-fedora-30.zip
@@ -120,3 +120,5 @@ RUN dnf update -y && \
zfs-fuse && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-fedora-rawhide.zip b/buildenv-libvirt-fedora-rawhide.zip
index 1c1d488..9ba117d 100644
--- a/buildenv-libvirt-fedora-rawhide.zip
+++ b/buildenv-libvirt-fedora-rawhide.zip
@@ -95,3 +95,5 @@ RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
zfs-fuse && \
dnf autoremove -y && \
dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-ubuntu-16.zip b/buildenv-libvirt-ubuntu-16.zip
index 978ec36..c7d7803 100644
--- a/buildenv-libvirt-ubuntu-16.zip
+++ b/buildenv-libvirt-ubuntu-16.zip
@@ -101,3 +101,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
diff --git a/buildenv-libvirt-ubuntu-18.zip b/buildenv-libvirt-ubuntu-18.zip
index 92e6c8f..5227249 100644
--- a/buildenv-libvirt-ubuntu-18.zip
+++ b/buildenv-libvirt-ubuntu-18.zip
@@ -101,3 +101,5 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
RUN pip3 install \
meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
--
2.21.0
5 years, 2 months
[libvirt] [PATCH v2 0/3] Adding the 'ccf-assist' pSeries capability
by Daniel Henrique Barboza
changes in v2:
- rebased with newer master (412cc0f403)
- changed the 'news' text to be in the v5.9.0 section
Hi,
This short series exposes, implements and documents a
pSeries guest capability called Count Cache Flush Assist
(ccf-assist), which was added in the Linux kernel since
5.1 and in QEMU since 4.0.0.
The reason why this capability needs to exposed via Libvirt
is because it is defaulted to 'off' in QEMU to not break
migration compatibility in the Power 9 processor class. However,
there is a performance gain in activating it, thus the user
might want to choose less migration options for more power.
More details can be found in the commit message of patch 1.
v1: https://www.redhat.com/archives/libvir-list/2019-September/msg00649.html
Daniel Henrique Barboza (3):
qemu: Add capability for the ccf-assist pSeries feature
qemu: Implement the ccf-assist pSeries feature
news: Update for the ccf-assist pSeries feature
docs/formatdomain.html.in | 9 +++++++++
docs/news.xml | 9 +++++++++
docs/schemas/domaincommon.rng | 5 +++++
src/conf/domain_conf.c | 4 ++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 20 +++++++++++++++++++
src/qemu/qemu_domain.c | 1 +
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
tests/qemuxml2argvdata/pseries-features.args | 2 +-
tests/qemuxml2argvdata/pseries-features.xml | 1 +
tests/qemuxml2argvtest.c | 1 +
tests/qemuxml2xmloutdata/pseries-features.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
15 files changed, 58 insertions(+), 1 deletion(-)
--
2.21.0
5 years, 2 months
[libvirt] [PATCH] util: drop support for stack traces with logging
by Daniel P. Berrangé
The log filters have supported the use of a "+" before the source match
string to request that a stack trace be emitted for every log message:
commit 548563956e484e0e43e9a66a89bdda0f95930108
Author: Daniel P. Berrange <berrange(a)redhat.com>
Date: Wed May 9 15:18:56 2012 +0100
Allow stack traces to be included with log messages
Sometimes it is useful to see the callpath for log messages.
This change enhances the log filter syntax so that stack traces
can be show by setting '1:+NAME' instead of '1:NAME'.
With the huge & ever increasing number of logging statements per file,
this will be incredibly verbose and have a major performance penalty.
This makes the feature impractical to use widely and as such it is not
worth the code maint cost.
Removing this seldom used feature allows us to drop the 'execinfo'
module in gnulib which provides the backtrace() function which doesn't
exist on non-Linux.
Users who want to get stack traces of parts of libvirt can use GDB,
or systemtap for live tracing with minimal perf impact.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
bootstrap.conf | 1 -
docs/logging.html.in | 7 ++--
src/locking/virtlockd.conf | 4 ---
src/logging/virtlogd.conf | 4 ---
src/remote/libvirtd.conf.in | 4 ---
src/util/virlog.c | 68 ++++++-------------------------------
src/util/virlog.h | 11 +-----
tests/testutils.c | 2 --
tests/virtestmock.c | 1 -
9 files changed, 14 insertions(+), 88 deletions(-)
diff --git a/bootstrap.conf b/bootstrap.conf
index 358d783a6b..55997b018f 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -35,7 +35,6 @@ connect
configmake
dirname-lgpl
environ
-execinfo
fclose
fcntl
fcntl-h
diff --git a/docs/logging.html.in b/docs/logging.html.in
index be2fd4ab5b..d62220a9c1 100644
--- a/docs/logging.html.in
+++ b/docs/logging.html.in
@@ -102,16 +102,13 @@
variables.</p>
<p>The format for a filter is one of:</p>
<pre>
-x:name (log message only)
-x:+name (log message + stack trace)</pre>
+x:name (log message only)</pre>
<p>where <code>name</code> is a string which is matched against
the category given in the VIR_LOG_INIT() at the top of each
libvirt source file, e.g., <code>remote</code>, <code>qemu</code>,
or <code>util.json</code> (the name in the filter can be a
substring of the full category name, in order to match multiple
- similar categories), the optional <code>+</code> prefix tells
- libvirt to log stack trace for each message
- matching <code>name</code>, and <code>x</code> is the minimal
+ similar categories), and <code>x</code> is the minimal
level where matching messages should be logged:</p>
<ul>
<li>1: DEBUG</li>
diff --git a/src/locking/virtlockd.conf b/src/locking/virtlockd.conf
index b65110fc3e..b75eb3b279 100644
--- a/src/locking/virtlockd.conf
+++ b/src/locking/virtlockd.conf
@@ -26,7 +26,6 @@
# of logs. The format for a filter is one of:
#
# level:match
-# level:+match
#
# where 'match' is a string which is matched against the category
# given in the VIR_LOG_INIT() at the top of each libvirt source
@@ -35,9 +34,6 @@
# The 'match' is always treated as a substring match. IOW a match
# string 'foo' is equivalent to '*foo*'.
#
-# If 'match' contains the optional "+" prefix, it tells libvirt
-# to log stack trace for each message matching name.
-#
# 'level' is the minimal level where matching messages should
# be logged:
#
diff --git a/src/logging/virtlogd.conf b/src/logging/virtlogd.conf
index bc41edbc6b..9f2d36c382 100644
--- a/src/logging/virtlogd.conf
+++ b/src/logging/virtlogd.conf
@@ -26,7 +26,6 @@
# of logs. The format for a filter is one of:
#
# level:match
-# level:+match
#
# where 'match' is a string which is matched against the category
# given in the VIR_LOG_INIT() at the top of each libvirt source
@@ -35,9 +34,6 @@
# The 'match' is always treated as a substring match. IOW a match
# string 'foo' is equivalent to '*foo*'.
#
-# If 'match' contains the optional "+" prefix, it tells libvirt
-# to log stack trace for each message matching name.
-#
# 'level' is the minimal level where matching messages should
# be logged:
#
diff --git a/src/remote/libvirtd.conf.in b/src/remote/libvirtd.conf.in
index fdef97f371..50e3a00854 100644
--- a/src/remote/libvirtd.conf.in
+++ b/src/remote/libvirtd.conf.in
@@ -372,7 +372,6 @@
# of logs. The format for a filter is one of:
#
# level:match
-# level:+match
#
# where 'match' is a string which is matched against the category
# given in the VIR_LOG_INIT() at the top of each libvirt source
@@ -381,9 +380,6 @@
# The 'match' is always treated as a substring match. IOW a match
# string 'foo' is equivalent to '*foo*'.
#
-# If 'match' contains the optional "+" prefix, it tells libvirt
-# to log stack trace for each message matching name.
-#
# 'level' is the minimal level where matching messages should
# be logged:
#
diff --git a/src/util/virlog.c b/src/util/virlog.c
index 4c76fbc5a4..611475c8d7 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -28,7 +28,6 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
-#include <execinfo.h>
#include <regex.h>
#include <sys/uio.h>
#if HAVE_SYSLOG_H
@@ -88,7 +87,6 @@ VIR_ENUM_IMPL(virLogDestination,
struct _virLogFilter {
char *match;
virLogPriority priority;
- unsigned int flags; /* bitwise OR of virLogFilterFlags */
};
static int virLogFiltersSerial = 1;
@@ -127,7 +125,6 @@ static void virLogOutputToFd(virLogSourcePtr src,
const char *funcname,
const char *timestamp,
virLogMetadataPtr metadata,
- unsigned int flags,
const char *rawstr,
const char *str,
void *data);
@@ -510,19 +507,16 @@ virLogSourceUpdate(virLogSourcePtr source)
virLogLock();
if (source->serial < virLogFiltersSerial) {
unsigned int priority = virLogDefaultPriority;
- unsigned int flags = 0;
size_t i;
for (i = 0; i < virLogNbFilters; i++) {
if (fnmatch(virLogFilters[i]->match, source->name, 0) == 0) {
priority = virLogFilters[i]->priority;
- flags = virLogFilters[i]->flags;
break;
}
}
source->priority = priority;
- source->flags = flags;
source->serial = virLogFiltersSerial;
}
virLogUnlock();
@@ -591,7 +585,6 @@ virLogVMessage(virLogSourcePtr source,
int ret;
size_t i;
int saved_errno = errno;
- unsigned int filterflags = 0;
if (virLogInitialize() < 0)
return;
@@ -611,7 +604,6 @@ virLogVMessage(virLogSourcePtr source,
virLogSourceUpdate(source);
if (priority < source->priority)
goto cleanup;
- filterflags = source->flags;
/*
* serialize the error message, add level and timestamp
@@ -641,13 +633,13 @@ virLogVMessage(virLogSourcePtr source,
if (virLogVersionString(&rawinitmsg, &initmsg) >= 0)
virLogOutputs[i]->f(&virLogSelf, VIR_LOG_INFO,
__FILE__, __LINE__, __func__,
- timestamp, NULL, 0, rawinitmsg, initmsg,
+ timestamp, NULL, rawinitmsg, initmsg,
virLogOutputs[i]->data);
VIR_FREE(initmsg);
if (virLogHostnameString(&hoststr, &initmsg) >= 0)
virLogOutputs[i]->f(&virLogSelf, VIR_LOG_INFO,
__FILE__, __LINE__, __func__,
- timestamp, NULL, 0, hoststr, initmsg,
+ timestamp, NULL, hoststr, initmsg,
virLogOutputs[i]->data);
VIR_FREE(hoststr);
VIR_FREE(initmsg);
@@ -655,7 +647,7 @@ virLogVMessage(virLogSourcePtr source,
}
virLogOutputs[i]->f(source, priority,
filename, linenr, funcname,
- timestamp, metadata, filterflags,
+ timestamp, metadata,
str, msg, virLogOutputs[i]->data);
}
}
@@ -667,13 +659,13 @@ virLogVMessage(virLogSourcePtr source,
if (virLogVersionString(&rawinitmsg, &initmsg) >= 0)
virLogOutputToFd(&virLogSelf, VIR_LOG_INFO,
__FILE__, __LINE__, __func__,
- timestamp, NULL, 0, rawinitmsg, initmsg,
+ timestamp, NULL, rawinitmsg, initmsg,
(void *) STDERR_FILENO);
VIR_FREE(initmsg);
if (virLogHostnameString(&hoststr, &initmsg) >= 0)
virLogOutputToFd(&virLogSelf, VIR_LOG_INFO,
__FILE__, __LINE__, __func__,
- timestamp, NULL, 0, hoststr, initmsg,
+ timestamp, NULL, hoststr, initmsg,
(void *) STDERR_FILENO);
VIR_FREE(hoststr);
VIR_FREE(initmsg);
@@ -681,7 +673,7 @@ virLogVMessage(virLogSourcePtr source,
}
virLogOutputToFd(source, priority,
filename, linenr, funcname,
- timestamp, metadata, filterflags,
+ timestamp, metadata,
str, msg, (void *) STDERR_FILENO);
}
virLogUnlock();
@@ -693,26 +685,6 @@ virLogVMessage(virLogSourcePtr source,
}
-static void
-virLogStackTraceToFd(int fd)
-{
- void *array[100];
- int size;
- static bool doneWarning;
- const char *msg = "Stack trace not available on this platform\n";
-
-#define STRIP_DEPTH 3
- size = backtrace(array, ARRAY_CARDINALITY(array));
- if (size) {
- backtrace_symbols_fd(array + STRIP_DEPTH, size - STRIP_DEPTH, fd);
- ignore_value(safewrite(fd, "\n", 1));
- } else if (!doneWarning) {
- ignore_value(safewrite(fd, msg, strlen(msg)));
- doneWarning = true;
- }
-#undef STRIP_DEPTH
-}
-
static void
virLogOutputToFd(virLogSourcePtr source ATTRIBUTE_UNUSED,
virLogPriority priority ATTRIBUTE_UNUSED,
@@ -721,7 +693,6 @@ virLogOutputToFd(virLogSourcePtr source ATTRIBUTE_UNUSED,
const char *funcname ATTRIBUTE_UNUSED,
const char *timestamp,
virLogMetadataPtr metadata ATTRIBUTE_UNUSED,
- unsigned int flags,
const char *rawstr ATTRIBUTE_UNUSED,
const char *str,
void *data)
@@ -737,9 +708,6 @@ virLogOutputToFd(virLogSourcePtr source ATTRIBUTE_UNUSED,
ignore_value(safewrite(fd, msg, strlen(msg)));
VIR_FREE(msg);
-
- if (flags & VIR_LOG_STACK_TRACE)
- virLogStackTraceToFd(fd);
}
@@ -827,13 +795,10 @@ virLogOutputToSyslog(virLogSourcePtr source ATTRIBUTE_UNUSED,
const char *funcname ATTRIBUTE_UNUSED,
const char *timestamp ATTRIBUTE_UNUSED,
virLogMetadataPtr metadata ATTRIBUTE_UNUSED,
- unsigned int flags,
const char *rawstr ATTRIBUTE_UNUSED,
const char *str,
void *data ATTRIBUTE_UNUSED)
{
- virCheckFlags(VIR_LOG_STACK_TRACE,);
-
syslog(virLogPrioritySyslog(priority), "%s", str);
}
@@ -975,12 +940,10 @@ virLogOutputToJournald(virLogSourcePtr source,
const char *funcname,
const char *timestamp ATTRIBUTE_UNUSED,
virLogMetadataPtr metadata,
- unsigned int flags,
const char *rawstr,
const char *str ATTRIBUTE_UNUSED,
void *data)
{
- virCheckFlags(VIR_LOG_STACK_TRACE,);
int buffd = -1;
int journalfd = (intptr_t) data;
struct msghdr mh;
@@ -1168,8 +1131,6 @@ virLogGetFilters(void)
virLogLock();
for (i = 0; i < virLogNbFilters; i++) {
const char *sep = ":";
- if (virLogFilters[i]->flags & VIR_LOG_STACK_TRACE)
- sep = ":+";
virBufferAsprintf(&filterbuf, "%d%s%s ",
virLogFilters[i]->priority,
sep,
@@ -1395,7 +1356,6 @@ virLogOutputNew(virLogOutputFunc f,
* virLogFilterNew:
* @match: the pattern to match
* @priority: the priority to give to messages matching the pattern
- * @flags: extra flags, see virLogFilterFlags enum
*
* Allocates and returns a new log filter object. The object has to be later
* defined, so that the pattern will be taken into account when executing the
@@ -1409,15 +1369,12 @@ virLogOutputNew(virLogOutputFunc f,
*/
virLogFilterPtr
virLogFilterNew(const char *match,
- virLogPriority priority,
- unsigned int flags)
+ virLogPriority priority)
{
virLogFilterPtr ret = NULL;
char *mdup = NULL;
size_t mlen = strlen(match);
- virCheckFlags(VIR_LOG_STACK_TRACE, NULL);
-
if (priority < VIR_LOG_DEBUG || priority > VIR_LOG_ERROR) {
virReportError(VIR_ERR_INVALID_ARG, _("Invalid log priority %d"),
priority);
@@ -1441,7 +1398,6 @@ virLogFilterNew(const char *match,
ret->match = mdup;
ret->priority = priority;
- ret->flags = flags;
return ret;
}
@@ -1661,9 +1617,6 @@ virLogParseOutput(const char *src)
*
* The format of @src should be one of the following:
* x:name - filter affecting all modules which match 'name'
- * x:+name
- *
- * '+' - hints the logger to also include a stack trace for every message
* 'name' - match string which either matches a name of a directory in
* libvirt's source tree which in turn affects all modules in
* that directory or it can matches a specific module within a
@@ -1689,7 +1642,6 @@ virLogParseFilter(const char *src)
size_t count = 0;
virLogPriority prio;
char **tokens = NULL;
- unsigned int flags = 0;
char *match = NULL;
VIR_DEBUG("filter=%s", src);
@@ -1711,7 +1663,9 @@ virLogParseFilter(const char *src)
match = tokens[1];
if (match[0] == '+') {
- flags |= VIR_LOG_STACK_TRACE;
+ /* '+' used to indicate printing a stack trace,
+ * but we dropped that feature, so just chomp
+ * that leading '+' */
match++;
}
@@ -1723,7 +1677,7 @@ virLogParseFilter(const char *src)
goto cleanup;
}
- if (!(ret = virLogFilterNew(match, prio, flags)))
+ if (!(ret = virLogFilterNew(match, prio)))
goto cleanup;
cleanup:
diff --git a/src/util/virlog.h b/src/util/virlog.h
index a30b760fb4..e27cd6475d 100644
--- a/src/util/virlog.h
+++ b/src/util/virlog.h
@@ -64,7 +64,6 @@ struct _virLogSource {
const char *name;
unsigned int priority;
unsigned int serial;
- unsigned int flags;
};
/*
@@ -77,7 +76,6 @@ struct _virLogSource {
.name = "" n "", \
.priority = VIR_LOG_ERROR, \
.serial = 0, \
- .flags = 0, \
}
/*
@@ -144,7 +142,6 @@ typedef virLogFilter *virLogFilterPtr;
* @funcname: the function emitting the message
* @timestamp: zero terminated string with timestamp of the message
* @metadata: NULL or metadata array, terminated by an item with NULL key
- * @flags: flags associated with the message
* @rawstr: the unformatted message to log, zero terminated
* @str: the message to log, preformatted and zero terminated
* @data: extra output logging data
@@ -158,7 +155,6 @@ typedef void (*virLogOutputFunc) (virLogSourcePtr src,
const char *funcname,
const char *timestamp,
virLogMetadataPtr metadata,
- unsigned int flags,
const char *rawstr,
const char *str,
void *data);
@@ -171,10 +167,6 @@ typedef void (*virLogOutputFunc) (virLogSourcePtr src,
*/
typedef void (*virLogCloseFunc) (void *data);
-typedef enum {
- VIR_LOG_STACK_TRACE = (1 << 0),
-} virLogFilterFlags;
-
int virLogGetNbFilters(void);
int virLogGetNbOutputs(void);
char *virLogGetFilters(void);
@@ -224,8 +216,7 @@ virLogOutputPtr virLogOutputNew(virLogOutputFunc f,
virLogDestination dest,
const char *name) ATTRIBUTE_NONNULL(1);
virLogFilterPtr virLogFilterNew(const char *match,
- virLogPriority priority,
- unsigned int flags) ATTRIBUTE_NONNULL(1);
+ virLogPriority priority) ATTRIBUTE_NONNULL(1);
int virLogFindOutput(virLogOutputPtr *outputs, size_t noutputs,
virLogDestination dest, const void *opaque);
int virLogDefineOutputs(virLogOutputPtr *outputs,
diff --git a/tests/testutils.c b/tests/testutils.c
index 1b663f9d5d..92eb780617 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -740,13 +740,11 @@ virtTestLogOutput(virLogSourcePtr source ATTRIBUTE_UNUSED,
const char *funcname ATTRIBUTE_UNUSED,
const char *timestamp,
virLogMetadataPtr metadata ATTRIBUTE_UNUSED,
- unsigned int flags,
const char *rawstr ATTRIBUTE_UNUSED,
const char *str,
void *data)
{
struct virtTestLogData *log = data;
- virCheckFlags(VIR_LOG_STACK_TRACE,);
virBufferAsprintf(&log->buf, "%s: %s", timestamp, str);
}
diff --git a/tests/virtestmock.c b/tests/virtestmock.c
index df8cac6441..1261393ec2 100644
--- a/tests/virtestmock.c
+++ b/tests/virtestmock.c
@@ -22,7 +22,6 @@
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
-#include <execinfo.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/socket.h>
--
2.21.0
5 years, 2 months
[libvirt] [PATCH v2 00/23] Integrate usage of glib into libvirt
by Daniel P. Berrangé
This is a followup to a previous patch series:
v0: https://www.redhat.com/archives/libvir-list/2019-August/msg01374.html
v1: https://www.redhat.com/archives/libvir-list/2019-September/msg01331.html
The focus in this glib series is
- Wire up pieces to facilitate interoperability around
memory allocation/cleanup.
- Deprecate & document existing libvirt APIs that are
targetted for removal/conversion.
- Illustrate some conversions and/or usage of new APIs.
- Convert code that allows us to eliminate more gnulib
modules
There's obviously alot of conversion work that could be done, especially
around memory allocation, auto cleanup and virObject stuff. I'm not
intending to do that myself in the short term, as my immediate focus is
on eliminating gnulib modules. Once this series is merged though, anyone
is able to take on conversion jobs, so this allows the work to be spread
out across the contributors.
Daniel P. Berrangé (23):
build: probe for glib-2 library in configure
build: link to glib library
util: use glib memory allocation functions
util: use glib string allocation/formatting functions
util: convert virSystemdActivation to use VIR_DEFINE_AUTOPTR_FUNC
util: rewrite auto cleanup macros to use glib's equivalent
src: add support for g_autoptr with virObject instances
conf: convert virSecretObj APIs to use autofree
util: use glib base64 encoding/decoding APIs
util: convert virIdentity implementation and test suite to g_autoptr
access: convert polkit driver to auto free memory
admin: convert admin server code to use auto free macros
rpc: convert methods using virIdentityPtr to auto free macros
remote: convert methods using virIdentityPtr to auto free macros
util: convert virIdentity class to use GObject
libxl: convert over to use GRegex for regular expressions
conf: convert over to use GRegex for regular expressions
virsh: convert command line parsing to use GOptionContext
virt-admin: convert command line parsing to use GOptionContext
virt-login-shell: convert command line parsing to use GOptionContext
virt-host-validate: convert command line parsing to use GOptionContext
util: replace strerror/strerror_r with g_strerror
build: remove use of usleep gnulib module in favour of g_usleep
bootstrap.conf | 8 -
cfg.mk | 2 +-
configure.ac | 7 +-
docs/hacking.html.in | 144 ++++++-------
libvirt.spec.in | 1 +
m4/virt-glib.m4 | 36 ++++
mingw-libvirt.spec.in | 2 +
src/Makefile.am | 2 +
src/access/viraccessdriverpolkit.c | 38 ++--
src/admin/admin_server.c | 204 ++++++++-----------
src/conf/capabilities.h | 3 +
src/conf/domain_capabilities.h | 3 +
src/conf/domain_conf.h | 3 +
src/conf/domain_event.c | 25 +--
src/conf/snapshot_conf.h | 3 +
src/conf/storage_capabilities.h | 3 +
src/conf/virsecretobj.c | 68 ++-----
src/datatypes.h | 15 ++
src/hyperv/hyperv_driver.c | 2 +-
src/hyperv/hyperv_wmi.c | 4 +-
src/internal.h | 1 +
src/libvirt_private.syms | 1 -
src/libxl/libxl_capabilities.c | 42 ++--
src/libxl/libxl_conf.c | 3 +-
src/libxl/libxl_conf.h | 2 +
src/locking/lock_daemon.c | 2 +-
src/locking/lock_driver_sanlock.c | 2 +-
src/lxc/Makefile.inc.am | 2 +
src/lxc/lxc_controller.c | 2 +-
src/lxc/lxc_driver.c | 2 +-
src/lxc/lxc_process.c | 2 +-
src/network/bridge_driver.c | 2 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 4 +-
src/nwfilter/nwfilter_learnipaddr.c | 2 +-
src/qemu/qemu_agent.c | 6 +-
src/qemu/qemu_blockjob.h | 1 +
src/qemu/qemu_capabilities.h | 2 +
src/qemu/qemu_command.c | 5 +-
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 8 +-
src/qemu/qemu_monitor_json.c | 2 +-
src/qemu/qemu_process.c | 6 +-
src/qemu/qemu_tpm.c | 2 +-
src/remote/Makefile.inc.am | 1 +
src/remote/remote_daemon.c | 3 +-
src/remote/remote_daemon_dispatch.c | 35 ++--
src/rpc/virnetserverclient.c | 57 +++---
src/rpc/virnetserverprogram.c | 13 +-
src/rpc/virnetsocket.c | 2 +-
src/secret/secret_driver.c | 1 -
src/security/security_manager.c | 2 +-
src/storage/storage_backend_rbd.c | 4 +-
src/storage/storage_util.c | 4 +-
src/util/Makefile.inc.am | 1 +
src/util/viralloc.c | 29 +--
src/util/viralloc.h | 14 +-
src/util/virautoclean.h | 38 ++--
src/util/vircgroup.c | 2 +-
src/util/virerror.c | 9 +-
src/util/virerror.h | 1 +
src/util/virfile.c | 2 +-
src/util/virhostdev.h | 3 +
src/util/viridentity.c | 97 ++++-----
src/util/viridentity.h | 7 +-
src/util/virmdev.h | 3 +
src/util/virnetdev.c | 2 +-
src/util/virnetdevip.c | 2 +-
src/util/virnetdevmacvlan.c | 2 +-
src/util/virnetdevvportprofile.c | 2 +-
src/util/virobject.h | 4 +
src/util/virpci.c | 8 +-
src/util/virpci.h | 3 +
src/util/virprocess.c | 4 +-
src/util/virresctrl.h | 4 +
src/util/virscsi.h | 3 +
src/util/virscsivhost.h | 3 +
src/util/virstoragefile.h | 2 +
src/util/virstring.c | 49 ++---
src/util/virstring.h | 10 +-
src/util/virsystemd.c | 10 +-
src/util/virsystemd.h | 5 +-
src/util/virtime.c | 2 +-
src/util/virusb.h | 3 +
src/vbox/vbox_common.c | 2 +-
tests/Makefile.am | 3 +-
tests/commandtest.c | 16 +-
tests/eventtest.c | 4 +-
tests/fdstreamtest.c | 4 +-
tests/qemumonitortestutils.c | 2 +-
tests/seclabeltest.c | 4 +-
tests/testutils.c | 6 +-
tests/virhostcputest.c | 4 +-
tests/viridentitytest.c | 45 ++--
tests/virnetserverclienttest.c | 3 +-
tests/virsystemdtest.c | 2 +-
tests/virtestmock.c | 4 +-
tools/Makefile.am | 1 +
tools/virsh-domain.c | 2 +-
tools/virsh-secret.c | 17 +-
tools/virsh.c | 304 +++++++++++++---------------
tools/virt-admin.c | 210 +++++++++----------
tools/virt-host-validate.c | 86 ++++----
tools/virt-login-shell-helper.c | 76 +++----
103 files changed, 891 insertions(+), 1027 deletions(-)
create mode 100644 m4/virt-glib.m4
--
2.21.0
5 years, 2 months
[libvirt] [PATCH 0/2] qemu: Add support for host-model pseries machine option
by Fabiano Rosas
This series adds support for the -machine,host-model= QEMU option for
for pseries guests.
Pseries guests used to have a node (/proc/device-tree/host-model) in
device-tree that exposed the host's model string so that guest
userspace tools could determine the host machine they were running on.
QEMU used to provide the node by default, but this has been disabled
due to security concerns. There is now a machine option (host-model)
that allows the user to set an arbitrary string to be used as the host
model.
Userspace tools will then be broken unless the user explicitly edits
the domain XML with the desired host model to be exposed to the
guest. However, having an arbitrary string in the domain XML that
needs to be the same for every guest in that machine but different
across host machines would generate issues with XML portability and
more importantly, migration.
So this series implements a generic way for an administrator to enable
the old behavior for a specific guest without allowing arbitrary
strings.
Implementation note:
The 'host-serial' property, which reads /proc/device-tree/system-id in
the host and was also addressed by the QEMU change could be
implemented similarly in the future.
However I see that we're currently populating smbios structures
(virSysinfoDef) with info gathered from /proc/cpuinfo for
architectures that do not use smbios and I think that should be
addressed first.
My idea is to perhaps create new sysinfo types like the existing
'smbios', such as 'cpuinfo' and 'device-tree'.
So to keep the two discussions separated I took advantage of the fact
that the host model happens to also be present at /proc/cpuinfo and
used the smbios structures for now.
Fabiano Rosas (2):
qemu: Add capability for pseries machine 'host-model' parameter
qemu: Add support for pseries 'host-model' machine parameter
docs/formatdomain.html.in | 9 ++++++
docs/schemas/domaincommon.rng | 5 ++++
src/conf/domain_conf.c | 4 +++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 25 ++++++++++++++--
src/qemu/qemu_domain.c | 1 +
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
tests/qemuxml2argvdata/pseries-features.args | 3 +-
tests/qemuxml2argvdata/pseries-features.xml | 1 +
tests/qemuxml2argvtest.c | 30 ++++++++++++++++++-
tests/qemuxml2xmloutdata/pseries-features.xml | 1 +
13 files changed, 79 insertions(+), 5 deletions(-)
--
2.20.1
5 years, 2 months
[libvirt] [PATCH 0/2] qemu: Fix @vm locking issue when connecting to the monitor
by Michal Privoznik
See 1/2 for explanation.
Michal Prívozník (2):
qemu: Fix @vm locking issue when connecting to the monitor
Revert "qemu: Obtain reference on monConfig"
src/qemu/qemu_monitor.c | 33 +++++++++++++++++++++++++--------
src/qemu/qemu_process.c | 17 +----------------
tests/qemumonitortestutils.c | 2 ++
3 files changed, 28 insertions(+), 24 deletions(-)
--
2.21.0
5 years, 2 months
[libvirt] [PATCH] qemu_process: Initialize domain definition for QMP query
by Michal Privoznik
When constructing QMP capabilities we allocate a dummy domain
object to pass to qemuMonitorOpen(). However, after 75dd595861
the function also expects domain definition to be allocated for
the domain object. The referenced commit already fixed
qemumonitortestutils.c but forgot to fix the other caller:
qemuProcessQMPConnectMonitor().
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed under trivial rule.
src/qemu/qemu_process.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index ca2a5cab5b..c14c09da11 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8654,7 +8654,8 @@ qemuProcessQMPConnectMonitor(qemuProcessQMPPtr proc)
monConfig.data.nix.listen = false;
if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL)) ||
- !(proc->vm = virDomainObjNew(xmlopt)))
+ !(proc->vm = virDomainObjNew(xmlopt)) ||
+ !(proc->vm->def = virDomainDefNew()))
goto cleanup;
proc->vm->pid = proc->pid;
--
2.21.0
5 years, 2 months
[libvirt] [PATCH v2 0/1] IDE: Deprecate ide-drive
by John Snow
V2: Change phrasings and spellings as Markus suggested.
John Snow (1):
IDE: deprecate ide-drive
qemu-deprecated.texi | 5 +++++
hw/ide/qdev.c | 3 +++
tests/qemu-iotests/051.pc.out | 6 ++++--
3 files changed, 12 insertions(+), 2 deletions(-)
--
2.21.0
5 years, 2 months