This bug was fixed in the package qemu - 1:5.2+dfsg-6ubuntu2 --------------- qemu (1:5.2+dfsg-6ubuntu2) hirsute; urgency=medium
* d/p/u/lp-1916705-disas-Fix-build-with-glib2.0-2.67.3.patch: Fix FTFBS due to glib2.0 >=2.67.3 (LP: #1916705) qemu (1:5.2+dfsg-6ubuntu1) hirsute; urgency=medium * Merge with Debian unstable, includes fixes for - build operates differently if source is a git repo (LP: #1887535) Remaining changes: - qemu-kvm to systemd unit - d/qemu-kvm-init: script for QEMU KVM preparation modules, ksm, hugepages and architecture specifics - d/qemu-system-common.qemu-kvm.service: systemd unit to call qemu-kvm-init - d/qemu-system-common.install: install helper script - d/qemu-system-common.qemu-kvm.default: defaults for /etc/default/qemu-kvm - d/rules: call dh_installinit and dh_installsystemd for qemu-kvm - Distribution specific machine type (LP: 1304107 1621042) - d/p/ubuntu/define-ubuntu-machine-types.patch: distro machine types - d/qemu-system-x86.NEWS Info on fixed machine type definitions for host-phys-bits=true (LP: 1776189) - add an info about -hpb machine type in debian/qemu-system-x86.NEWS - provide pseries-bionic-2.11-sxxm type as convenience with all meltdown/spectre workarounds enabled by default. (LP: 1761372). - ubuntu-q35 alias added to auto-select the most recent q35 ubuntu type - Enable nesting by default - d/p/ubuntu/enable-svm-by-default.patch: Enable nested svm by default in qemu64 on amd [ No more strictly needed, but required for backward compatibility ] - improved dependencies - Make qemu-system-common depend on qemu-block-extra - Make qemu-utils depend on qemu-block-extra - let qemu-utils recommend sharutils - tolerate ipxe size change on migrations to >=18.04 (LP: 1713490) - d/p/ubuntu/pre-bionic-256k-ipxe-efi-roms.patch: old machine types reference 256k path - d/control-in: depend on ipxe-qemu-256k-compat-efi-roms to be able to handle incoming migrations from former releases. - d/control-in: Disable capstone disassembler library support (universe) - d/qemu-system-x86.README.Debian: add info about updated nesting changes - d/control*, d/rules: disable xen by default, but provide universe package qemu-system-x86-xen as alternative [includes compat links changes of 5.0-5ubuntu4] - allow qemu to load old modules post upgrade (LP 1847361) - Drop d/qemu-block-extra.*.in, d/qemu-system-gui.*.in - d/rules: Drop generating package version into maintainer scripts - d/qemu-system-gui.prerm: add no-op prerm to overcome upgrade issues on the bad old prerm (LP 1906245 1905377) - d/p/ubuntu/lp-1907789-build-no-pie-is-no-functional-liker-flag.patch: fix ld usage of -no-pie (LP 1907789) * Added changes - d/p/u/lp-1916230-hw-s390x-fix-build-for-virtio-9p-ccw.patch: fix virtio-9p-ccw being missing (LP: #1916230) qemu (1:5.2+dfsg-6) unstable; urgency=medium * deprecate qemu-debootstrap. It is not needed anymore with binfmt F flag, since everything now works without --foreign debootstrap argument and copying the right qemu binary into the chroot. Closes: #901197 * fix the brown-paper bag bug: wrong argument order in the linux-user-binfmt patch (really closes: #970460) qemu (1:5.2+dfsg-5) unstable; urgency=medium * d/rules: ensure b/ subdir exists before building palcode and qboot * d/changelog: #959530 is not fixed by 5.2+dfsg-4 * 3 virtiofsd patches Closes: #980814, CVE-2020-35517 virtiofsd: potential privileged host device access from guest - virtiofsd-extract-lo_do_open-from-lo_open.patch - virtiofsd-optionally-return-inode-pointer-from-lo_do_lookup.patch - virtiofsd-prevent-opening-of-special-files-CVE-2020-35517.patch qemu (1:5.2+dfsg-4) unstable; urgency=medium [ Michael Tokarev ] * require libfdt >= 1.5.0-2 due to #931046 * qemu-user: attempt to preserve argv[0] when run under binfmt (Closes: #970460) This changes the enterpreter name for all linux-user registered binfmts, so it potentially can break stuff. The actual binary being registered now is /usr/libexec/qemu-binfmt/foo-binfmt-P, which is a symlink to actual /usr/lib/qemu-foo[-static]. * ignore .git-submodule-status when building source * some security fixes from upstream: o arm_gic-fix-interrupt-ID-in-GICD_SGIR-CVE-2021-20221.patch Closes: CVE-2021-20221 GIC (armv7): out-of-bound heap buffer access via an interrupt ID field o 9pfs-Fully-restart-unreclaim-loop-CVE-2021-20181.patch Closes: CVE-2021-20181 * non-security fixes from upstream: pc-bios-descriptors-fix-paths-in-json-files.patch - fixes wrong paths in edk2-firmware-related json files introduced in 5.2 [ Christian Ehrhardt ] * d/control-in: avoid version mismatch of installed binaries (Closes: #956377) [ Dan Streetman ] * Backport configure param --with-git-submodules and set to 'ignore' -- Christian Ehrhardt <christian.ehrha...@canonical.com> Wed, 24 Feb 2021 08:39:09 +0100 ** Changed in: qemu (Ubuntu) Status: Triaged => Fix Released ** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-35517 ** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-20181 ** CVE added: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-20221 -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to glib2.0 in Ubuntu. https://bugs.launchpad.net/bugs/1916705 Title: glib2.0 >=2.67.3 breaks include from an extern C context Status in glib2.0 package in Ubuntu: Fix Released Status in open-vm-tools package in Ubuntu: New Status in qemu package in Ubuntu: Fix Released Status in ukui-control-center package in Ubuntu: Triaged Bug description: qemu now breaks in Hirsute (it didn't 23h ago) Broken: https://launchpadlibrarian.net/524654684/buildlog_ubuntu-hirsute-amd64.qemu_1%3A5.2+dfsg-6ubuntu1_BUILDING.txt.gz Good before: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/4471/+packages Error: ../../disas/arm-a64.cc In file included from /usr/include/glib-2.0/glib/gmacros.h:241, from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from /<<BUILDDIR>>/qemu-5.2+dfsg/include/glib-compat.h:32, from /<<BUILDDIR>>/qemu-5.2+dfsg/include/qemu/osdep.h:126, from ../../disas/arm-a64.cc:21: /usr/include/c++/10/type_traits:56:3: error: template with C linkage 56 | template<typename _Tp, _Tp __v> | ^~~~~~~~ ../../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here 20 | extern "C" { | ^~~~~~~~~~ Also in disas/nanomips.cpp, ... And indeed disas/arm-a64.cc has: 20 extern "C" { 21 #include "qemu/osdep.h" 22 #include "disas/dis-asm.h" 23 } Through the chain of headers as reported above this gets to the templates in /usr/include/c++/10/type_traits which fails due to that. So C++ constructs within a C scope which is this bug. Upstream qemu has not recently changed yet for this. The code is the same since 2016 via commit e78490c44: "disas/arm-a64.cc: Include osdep.h first" by Peter Maydell. But what was different before to break it now? To find that I was comparing Hirsute vs Hirsute-proposed ... It is indeed failing in -proposed but working in hirsute-release. 10.2.1-20ubuntu1 : bad repro in broken build: $ cd /root/qemu-5.2+dfsg/b/qemu $ c++ -Ilibcommon.fa.p -I. -I../.. -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/pixman-1 -I/usr/include/virgl -I/usr/include/libpng16 -I/usr/include/spice-server -I/usr/include/spice-1 -I/usr/include/libusb-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cacard -I/usr/include/nss -I/usr/include/nspr -I/usr/include/PCSC -I/usr/include/slirp -fdiagnostics-color=auto -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=gnu++11 -O2 -g -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -U_FORTIFY_SOURCE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wundef -Wwrite-strings -fno-strict-aliasing -fno-common -fwrapv -g -O2 -ffile-prefix-map=/root/qemu-5.2+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wendif-labels -Wexpansion-to-defined -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong -isystem /root/qemu-5.2+dfsg/linux-headers -isystem linux-headers -iquote /root/qemu-5.2+dfsg/tcg/i386 -iquote . -iquote /root/qemu-5.2+dfsg -iquote /root/qemu-5.2+dfsg/accel/tcg -iquote /root/qemu-5.2+dfsg/include -iquote /root/qemu-5.2+dfsg/disas/libvixl -pthread -fPIE -DSTRUCT_IOVEC_DEFINED -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNCURSES_WIDECHAR -MD -MQ libcommon.fa.p/disas_nanomips.cpp.o -MF libcommon.fa.p/disas_nanomips.cpp.o.d -o libcommon.fa.p/disas_nanomips.cpp.o -c ../../disas/nanomips.cpp With that I have a test env... Doko asked me to test https://launchpad.net/ubuntu/+source/gcc-10/10.2.1-19ubuntu1/+build/20995220/+files/g++-10_10.2.1-19ubuntu1_amd64.deb That fails as well, but also good as well as bad case have 10.10.2.1-20ubuntu1 It must be something else. The difference were ~340 packages I was upgrading them to spot what broke it. I eventually found glib 2.66 -> 2.67 to break it. libglib2.0-0/hirsute-proposed 2.67.4-1 amd64 [upgradable from: 2.66.4-1] libglib2.0-bin/hirsute-proposed 2.67.4-1 amd64 [upgradable from: 2.66.4-1] libglib2.0-data/hirsute-proposed 2.67.4-1 all [upgradable from: 2.66.4-1] libglib2.0-dev-bin/hirsute-proposed 2.67.4-1 amd64 [upgradable from: 2.66.4-1] libglib2.0-dev/hirsute-proposed 2.67.4-1 amd64 [upgradable from: 2.66.4-1] Old: /* * We can only use __typeof__ on GCC >= 4.8, and not when compiling C++. Since * __typeof__ is used in a few places in GLib, provide a pre-processor symbol * to factor the check out from callers. * * This symbol is private. */ #undef g_has_typeof #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && !defined(__cplusplus) #define g_has_typeof #endif New: /* * We can only use __typeof__ on GCC >= 4.8, and not when compiling C++. Since * __typeof__ is used in a few places in GLib, provide a pre-processor symbol * to factor the check out from callers. * * This symbol is private. */ #undef glib_typeof #if !defined(__cplusplus) && \ ((defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) || \ defined(__clang__)) #define glib_typeof(t) __typeof__ (t) #elif defined(__cplusplus) && __cplusplus >= 201103L /* C++11 decltype() is close enough for our usage */ #include <type_traits> <--- THIS IS WHAT BREAKS US #define glib_typeof(t) typename std::remove_reference<decltype (t)>::type #define glib_typeof_2_68 #endif On the glib side this is due to: https://gitlab.gnome.org/GNOME/glib/-/issues/2331 Also related: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1935 https://lists.fedoraproject.org/archives/list/de...@lists.fedoraproject.org/thread/J3P4TRHLWNDIKXF76OLYZNAPTABCZ3U5/#7LXFUDBBBIT23FE44QJYWX3I7U4EHW6M Qemu try to fix/discussion at: https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg07294.html This won't be the final solution, but it gets things going for the time being. glib try to fix (also seems not to be ok for upstream, but would get everything going for now). Thanks Laney btw: https://gitlab.gnome.org/iainl/glib/-/commit/b865b76c01a35fb8dbffb9bc2907acf341a31aba To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/1916705/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp