[{"id":1766259,"web_url":"http://patchwork.ozlabs.org/comment/1766259/","msgid":"<150513088270.225.15090454288679267870@6d89bd104fc3>","list_archive_url":null,"date":"2017-09-11T11:54:43","subject":"Re: [Qemu-devel] [PATCH v3 00/50] Hi,","submitter":{"id":69632,"url":"http://patchwork.ozlabs.org/api/people/69632/","name":null,"email":"no-reply@patchew.org"},"content":"Hi,\n\nThis series failed automatic build test. Please find the testing commands and\ntheir output below. If you have docker installed, you can probably reproduce it\nlocally.\n\nSubject: [Qemu-devel] [PATCH v3 00/50] Hi,\nMessage-id: 20170911110623.24981-1-marcandre.lureau@redhat.com\nType: series\n\n=== TEST SCRIPT BEGIN ===\n#!/bin/bash\nset -e\ngit submodule update --init dtc\n# Let docker tests dump environment info\nexport SHOW_ENV=1\nexport J=8\ntime make docker-test-quick@centos6\ntime make docker-test-build@min-glib\ntime make docker-test-mingw@fedora\n=== TEST SCRIPT END ===\n\nUpdating 3c8cf5a9c21ff8782164d1def7f44bd888713384\nSwitched to a new branch 'test'\n1d8781c86a qapi: make query-cpu-definitions depend on specific targets\nc1814694c2 qapi: make query-cpu-model-expansion depend on s390 or x86\nbd74091ade qapi: make query-gic-capabilities depend on TARGET_ARM\n1d28b98dd1 target.json: add a note about query-cpu* not being s390x-specific\nc7b9cba7dd qapi: make s390 commands depend on TARGET_S390X\nb131645e5f qapi: make rtc-reset-reinjection depend on TARGET_I386\n960aaa74bb build-sys: add a target schema\ne3f318c8c3 build-sys: move qmp-introspect per target\n71eab793c2 qapi: add a -u/--unit option to specify which unit to visit\n9d165fe81e qapi: add a 'unit' pragma\ne7ea04e24b qapi: add -i/--include filename.h\nfbf22f44fa qapi-commands: don't initialize command list in qmp_init_marshall()\n6def7fd06b qapi: add conditions to REPLICATION type/commands on the schema\n043aba6677 qapi: add conditions to SPICE type/commands/events on the schema\ncd14f015e5 qapi: add conditions to VNC type/commands/events on the schema\n0aa323bee5 qapi2texi: add condition to variants\n2b93c585fc qapi2texi: add 'If:' condition to struct members\nbb70e84669 qapi2texi: add 'If:' condition to enum values\nfd7b62cdac qapi2texi: add 'If:' section to generated documentation\n44b2c49aa0 docs: document schema configuration\n1cac828e3b qapi: add #if conditions to generated alternate variants\nb8c8b93c51 qapi: add tests for invalid alternate\n7594ba7d28 qapi: add 'if' to alternate variant\n25e10a0b8a qapi: add #if conditions to generated variants\nbd9efd8521 qapi: add 'if' on union variants\ne82ba63f9d qapi: add #if conditions to generated struct members\ncff07c1587 qapi: add some struct member tests\nfd66601eec qapi: add 'if' to struct members and implicit objects members\nc75e5f0c86 tests: add some enum members tests\n450301d6d6 qapi: add #if conditions on generated enum members\nbe66ae92a3 qapi-event: add 'if' condition to generated enum\nc248455099 qapi: add 'if' to enum members\nec649c084c qapi: change enum visitor to take QAPISchemaMember\na3635c5ed0 qapi: do not define enumeration value explicitely\na3de6080f9 qapi-types: add #if conditions to types & visitors\nbf00d931ab qapi-types: refactor variants handling\n2620d8539e qapi-event: add #if conditions to events\n9afa67c39b qapi-commands: add #if conditions to commands\n6016203f71 qapi-introspect: add preprocessor conditions to generated QLit\n1d1970308c qapi-introspect: modify to_qlit() to generate #if code\n10a53e0e87 qapi-introspect: modify to_qlit() to append ', ' on level > 0\n8c1cf63678 qapi: add #if/#endif helpers\n8029ce5875 qapi: mcgen() shouldn't indent # lines\n1780e303b8 qapi: add 'ifcond' to visitor methods\ndd93a5bdb8 qapi: pass 'if' condition into QAPISchemaEntity objects\nb2df076279 qapi: add tests for invalid 'if'\n186e9297f0 qapi: add 'if' to top-level expressions\n0032b622c7 qapi2texi: minor python code simplification\n347ba5193c qapi: generate a literal qobject for introspection\n150a7e19aa qlit: add qobject_from_qlit()\n\n=== OUTPUT BEGIN ===\nSubmodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'\nCloning into '/var/tmp/patchew-tester-tmp-g9aaw526/src/dtc'...\nSubmodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'\n  BUILD   centos6\nmake[1]: Entering directory '/var/tmp/patchew-tester-tmp-g9aaw526/src'\n  ARCHIVE qemu.tgz\n  ARCHIVE dtc.tgz\n  COPY    RUNNER\n    RUN test-quick in qemu:centos6 \nPackages installed:\nSDL-devel-1.2.14-7.el6_7.1.x86_64\nbison-2.4.1-5.el6.x86_64\nbzip2-devel-1.0.5-7.el6_0.x86_64\nccache-3.1.6-2.el6.x86_64\ncsnappy-devel-0-6.20150729gitd7bc683.el6.x86_64\nflex-2.5.35-9.el6.x86_64\ngcc-4.4.7-18.el6.x86_64\ngit-1.7.1-8.el6.x86_64\nglib2-devel-2.28.8-9.el6.x86_64\nlibepoxy-devel-1.2-3.el6.x86_64\nlibfdt-devel-1.4.0-1.el6.x86_64\nlibrdmacm-devel-1.0.21-0.el6.x86_64\nlzo-devel-2.03-3.1.el6_5.1.x86_64\nmake-3.81-23.el6.x86_64\nmesa-libEGL-devel-11.0.7-4.el6.x86_64\nmesa-libgbm-devel-11.0.7-4.el6.x86_64\npackage g++ is not installed\npixman-devel-0.32.8-1.el6.x86_64\nspice-glib-devel-0.26-8.el6.x86_64\nspice-server-devel-0.12.4-16.el6.x86_64\ntar-1.23-15.el6_8.x86_64\nvte-devel-0.25.1-9.el6.x86_64\nxen-devel-4.6.3-15.el6.x86_64\nzlib-devel-1.2.3-29.el6.x86_64\n\nEnvironment variables:\nPACKAGES=bison     bzip2-devel     ccache     csnappy-devel     flex     g++     gcc     git     glib2-devel     libepoxy-devel     libfdt-devel     librdmacm-devel     lzo-devel     make     mesa-libEGL-devel     mesa-libgbm-devel     pixman-devel     SDL-devel     spice-glib-devel     spice-server-devel     tar     vte-devel     xen-devel     zlib-devel\nHOSTNAME=b98b51bd7e45\nTERM=xterm\nMAKEFLAGS= -j8\nHISTSIZE=1000\nJ=8\nUSER=root\nLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:\nCCACHE_DIR=/var/tmp/ccache\nEXTRA_CONFIGURE_OPTS=\nV=\nSHOW_ENV=1\nMAIL=/var/spool/mail/root\nPATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nPWD=/\nLANG=en_US.UTF-8\nTARGET_LIST=\nHISTCONTROL=ignoredups\nSHLVL=1\nHOME=/root\nTEST_DIR=/tmp/qemu-test\nLOGNAME=root\nLESSOPEN=||/usr/bin/lesspipe.sh %s\nFEATURES= dtc\nDEBUG=\nG_BROKEN_FILENAMES=1\nCCACHE_HASHDIR=\n_=/usr/bin/env\n\nConfigure options:\n--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install\nNo C++ compiler available; disabling C++ specific optional code\nInstall prefix    /var/tmp/qemu-build/install\nBIOS directory    /var/tmp/qemu-build/install/share/qemu\nbinary directory  /var/tmp/qemu-build/install/bin\nlibrary directory /var/tmp/qemu-build/install/lib\nmodule directory  /var/tmp/qemu-build/install/lib/qemu\nlibexec directory /var/tmp/qemu-build/install/libexec\ninclude directory /var/tmp/qemu-build/install/include\nconfig directory  /var/tmp/qemu-build/install/etc\nlocal state directory   /var/tmp/qemu-build/install/var\nManual directory  /var/tmp/qemu-build/install/share/man\nELF interp prefix /usr/gnemul/qemu-%M\nSource path       /tmp/qemu-test/src\nC compiler        cc\nHost C compiler   cc\nC++ compiler      \nObjective-C compiler cc\nARFLAGS           rv\nCFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g \nQEMU_CFLAGS       -I/usr/include/pixman-1   -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -DNCURSES_WIDECHAR   -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all  -I/usr/include/libpng12   -I/usr/include/libdrm     -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1   -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4  \nLDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g \nmake              make\ninstall           install\npython            python -B\nsmbd              /usr/sbin/smbd\nmodule support    no\nhost CPU          x86_64\nhost big endian   no\ntarget list       x86_64-softmmu aarch64-softmmu\ngprof enabled     no\nsparse enabled    no\nstrip binaries    yes\nprofiler          no\nstatic build      no\npixman            system\nSDL support       yes (1.2.14)\nGTK support       yes (2.24.23)\nGTK GL support    no\nVTE support       yes (0.25.1)\nTLS priority      NORMAL\nGNUTLS support    no\nGNUTLS rnd        no\nlibgcrypt         no\nlibgcrypt kdf     no\nnettle            no \nnettle kdf        no\nlibtasn1          no\ncurses support    yes\nvirgl support     no\ncurl support      no\nmingw32 support   no\nAudio drivers     oss\nBlock whitelist (rw) \nBlock whitelist (ro) \nVirtFS support    no\nVNC support       yes\nVNC SASL support  no\nVNC JPEG support  yes\nVNC PNG support   yes\nxen support       yes\nxen ctrl version  40600\npv dom build      no\nbrlapi support    no\nbluez  support    no\nDocumentation     no\nPIE               yes\nvde support       no\nnetmap support    no\nLinux AIO support no\nATTR/XATTR support yes\nInstall blobs     yes\nKVM support       yes\nHAX support       no\nTCG support       yes\nTCG debug enabled no\nTCG interpreter   no\nRDMA support      yes\nfdt support       yes\npreadv support    yes\nfdatasync         yes\nmadvise           yes\nposix_madvise     yes\nlibcap-ng support no\nvhost-net support yes\nvhost-scsi support yes\nvhost-vsock support yes\nvhost-user support yes\nTrace backends    log\nspice support     yes (0.12.6/0.12.4)\nrbd support       no\nxfsctl support    no\nsmartcard support yes\nlibusb            no\nusb net redir     no\nOpenGL support    yes\nOpenGL dmabufs    no\nlibiscsi support  no\nlibnfs support    no\nbuild guest agent yes\nQGA VSS support   no\nQGA w32 disk info no\nQGA MSI support   no\nseccomp support   no\ncoroutine backend ucontext\ncoroutine pool    yes\ndebug stack usage no\ncrypto afalg      no\nGlusterFS support no\ngcov              gcov\ngcov enabled      no\nTPM support       yes\nlibssh2 support   no\nTPM passthrough   yes\nQOM debugging     yes\nLive block migration yes\nlzo support       yes\nsnappy support    no\nbzip2 support     yes\nNUMA host support no\ntcmalloc support  no\njemalloc support  no\navx2 optimization no\nreplication support yes\nVxHS block device no\nmkdir -p dtc/libfdt\nmkdir -p dtc/tests\n  GEN     x86_64-softmmu/config-devices.mak.tmp\n  GEN     aarch64-softmmu/config-devices.mak.tmp\n  GEN     qemu-options.def\n  GEN     config-host.h\n  GEN     qmp-commands.h\n  GEN     qapi-types.h\n  GEN     qapi-visit.h\nTraceback (most recent call last):\n  File \"/tmp/qemu-test/src/scripts/qapi-commands.py\", line 15, in <module>\n    from qapi import *\n  File \"/tmp/qemu-test/src/scripts/qapi.py\", line 714\n    check_unknown_keys(info, value, {'type', 'if'})\n                                           ^\nSyntaxError: invalid syntax\n  GEN     qapi-event.h\nmake: *** [qmp-commands.h] Error 1\nmake: *** Waiting for unfinished jobs....\nTraceback (most recent call last):\n  File \"/tmp/qemu-test/src/scripts/qapi-visit.py\", line 15, in <module>\n    from qapi import *\n  File \"/tmp/qemu-test/src/scripts/qapi.py\", line 714\n    check_unknown_keys(info, value, {'type', 'if'})\n                                           ^\nSyntaxError: invalid syntax\nTraceback (most recent call last):\n  File \"/tmp/qemu-test/src/scripts/qapi-types.py\", line 14, in <module>\n    from qapi import *\n  File \"/tmp/qemu-test/src/scripts/qapi.py\", line 714\n    check_unknown_keys(info, value, {'type', 'if'})\n                                           ^\nSyntaxError: invalid syntax\nmake: *** [qapi-visit.h] Error 1\nmake: *** [qapi-types.h] Error 1\n  GEN     aarch64-softmmu/config-devices.mak\nTraceback (most recent call last):\n  File \"/tmp/qemu-test/src/scripts/qapi-event.py\", line 14, in <module>\n    from qapi import *\n  File \"/tmp/qemu-test/src/scripts/qapi.py\", line 714\n    check_unknown_keys(info, value, {'type', 'if'})\n                                           ^\nSyntaxError: invalid syntax\nmake: *** [qapi-event.h] Error 1\n  GEN     x86_64-softmmu/config-devices.mak\nTraceback (most recent call last):\n  File \"./tests/docker/docker.py\", line 384, in <module>\n    sys.exit(main())\n  File \"./tests/docker/docker.py\", line 381, in main\n    return args.cmdobj.run(args, argv)\n  File \"./tests/docker/docker.py\", line 239, in run\n    return Docker().run(argv, args.keep, quiet=args.quiet)\n  File \"./tests/docker/docker.py\", line 207, in run\n    quiet=quiet)\n  File \"./tests/docker/docker.py\", line 125, in _do_check\n    return subprocess.check_call(self._command + cmd, **kwargs)\n  File \"/usr/lib64/python2.7/subprocess.py\", line 186, in check_call\n    raise CalledProcessError(retcode, cmd)\nsubprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=d7268e7a96e711e7b25b52540069c830', '-u', '0', '-t', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/var/tmp/patchew-tester-tmp-g9aaw526/src/docker-src.2017-09-11-07.53.31.9321:/var/tmp/qemu:z,ro', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2\nmake[1]: *** [tests/docker/Makefile.include:139: docker-run] Error 1\nmake[1]: Leaving directory '/var/tmp/patchew-tester-tmp-g9aaw526/src'\nmake: *** [tests/docker/Makefile.include:168: docker-run-test-quick@centos6] Error 2\n\nreal\t1m12.628s\nuser\t0m5.082s\nsys\t0m1.662s\n=== OUTPUT END ===\n\nTest command exited with code: 2\n\n\n---\nEmail generated automatically by Patchew [http://patchew.org/].\nPlease send your feedback to patchew-devel@freelists.org","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrRsw4vkvz9s71\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 11 Sep 2017 22:23:32 +1000 (AEST)","from localhost ([::1]:57302 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drNU8-0004SK-R0\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 08:06:40 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:60119)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <no-reply@patchew.org>) id 1drNIm-0003yz-Eq\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 07:54:59 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <no-reply@patchew.org>) id 1drNIh-0008W4-Nd\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 07:54:56 -0400","from sender-of-o52.zoho.com ([135.84.80.217]:21473)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <no-reply@patchew.org>)\n\tid 1drNIh-0008TE-EH\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 07:54:51 -0400","from [172.17.0.2] (23.253.156.214 [23.253.156.214]) by\n\tmx.zohomail.com with SMTPS id 15051308832511007.1398176249527;\n\tMon, 11 Sep 2017 04:54:43 -0700 (PDT)"],"Resent-Date":"Mon, 11 Sep 2017 07:54:56 -0400","Resent-Message-Id":"<E1drNIh-0008W4-Nd@eggs.gnu.org>","In-Reply-To":"<20170911110623.24981-1-marcandre.lureau@redhat.com>","Message-ID":"<150513088270.225.15090454288679267870@6d89bd104fc3>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Resent-From":"","From":"no-reply@patchew.org","To":"marcandre.lureau@redhat.com","Date":"Mon, 11 Sep 2017 04:54:43 -0700 (PDT)","X-ZohoMailClient":"External","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [fuzzy]","X-Received-From":"135.84.80.217","Subject":"Re: [Qemu-devel] [PATCH v3 00/50] Hi,","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-To":"qemu-devel@nongnu.org","Cc":"marcandre.lureau@redhat.com, famz@redhat.com, qemu-devel@nongnu.org,\n\tarmbru@redhat.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1824372,"web_url":"http://patchwork.ozlabs.org/comment/1824372/","msgid":"<87r2rsfaau.fsf@dusky.pond.sub.org>","list_archive_url":null,"date":"2017-12-18T13:14:01","subject":"Re: [Qemu-devel] [PATCH v3 00/50] Hi,","submitter":{"id":2645,"url":"http://patchwork.ozlabs.org/api/people/2645/","name":"Markus Armbruster","email":"armbru@redhat.com"},"content":"Marc-André Lureau <marcandre.lureau@redhat.com> writes:\n\n> In order to clean-up some hacks in qapi (having to unregister commands\n> at runtime), I proposed a \"[PATCH v5 02/20] qapi.py: add a simple #ifdef condition\"\n>\n> (see http://lists.gnu.org/archive/html/qemu-devel/2016-08/msg03106.html).\n>\n> However, we decided to drop that patch from the series and solve the\n> problem later. The main issues were:\n> - the syntax was awkward to the JSON schema and documentation\n> - the evaluation of the condition was done in the qapi scripts, with\n>   very limited capability\n> - each target/config would need different generated files.\n>\n> Instead, it could defer the #if evaluation to the C-preprocessor.\n>\n> With this series, top-level qapi JSON entity can take 'if' keys:\n>\n> { 'struct': 'TestIfStruct', 'data': { 'foo': 'int' },\n>   'if': 'defined(TEST_IF_STRUCT)' }\n>\n> Members can be exploded as dictionnary with 'type'/'if' keys:\n>\n> { 'struct': 'TestIfStruct', 'data':\n>   { 'foo': 'int',\n>     'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }\n>\n> Enum values can be exploded as dictionnary with 'type'/'if' keys:\n>\n> { 'enum': 'TestIfEnum', 'data':\n>   [ 'foo',\n>     { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }\n>\n> A good benefit from having conditional schema is that introspection\n> will reflect more accurately the capability of the server. Another\n> benefit is that it may help to remove some dead code when disabling a\n> functionality.\n>\n> Starting from patch \"qapi: add conditions to VNC type/commands/events\n> on the schema\", the series demonstrate adding conditions, in order to\n> remove qmp_unregister_commands_hack(). The main difference with v2, is\n> the addition of a per-target schema in \"build-sys: add a target\n> schema\". This removes the NEED_CPU_H hack, and keep most of the qapi\n> files in common build.\n>\n> There are a lot more things we could make conditional in the QAPI\n> schema, like pci/kvm/xen/numa/vde/slirp/posix/win32/vsock/lzo etc etc,\n> however I am still evaluating the implication of such changes both\n> externally and internally, for those interested, I can share my wip\n> branch.\n>\n> Comments welcome,\n>\n> v3:\n> - rebased (qlit is now merged upstream)\n> - solve the per-target #ifdef problem by using a target.json\n>   and new qapi generated target files\n> - update some commit messages based on Markus review\n> - more schema error reporting\n> - move the ifcond argument closer to info/doc\n> - use mcgen() in gen_if()/gen_endif()\n> - simplify \"modify to_qlit() to take an optional suffix\"\n> - fix generated qlit indentation\n> - fix temporary build break by merging #if types & visitors patch\n> - fix some redundant condtionals generation\n> - change enum visitor to take QAPISchemaMember\n> - reject unknown dictionnary keys in { .., 'if': ..}\n> - split qapi test visitor print() with trailing ',' trick\n\nThings I like:\n\n* How you add conditionals to the QAPI language\n\n* How the generated code changes\n\nThings I don't like so much:\n\n* A few commit messages are just too terse\n\n* Code and its test added in separate patches\n\n* ifcond_decorator\n\n  I guess can either accept it, or come up with a better solution.\n\n* Unconventional handling of sugared forms (see my review of PATCH 28).\n\n* Addressing complilation consistency problems (see my review of PATCH\n  17) before addressing them by splitting off target-specific generated\n  files (PATCH 39..)\n\n* Manual splitting of the generated monolith with pragma unit, -i and\n  -u.  I guess can either accept it, or come up with a better solution.\n\nAdditionally, there are couple of minor things here and there, and a few\nquestions.  The usual patch review business.\n\nOverall, there's much more for me to like than to dislike :)","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3z0hNF62sjz9s84\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Dec 2017 00:15:08 +1100 (AEDT)","from localhost ([::1]:33841 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1eQvG6-0004xE-4H\n\tfor incoming@patchwork.ozlabs.org; Mon, 18 Dec 2017 08:15:06 -0500","from eggs.gnu.org ([2001:4830:134:3::10]:48082)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <armbru@redhat.com>) id 1eQvFT-0004oa-1E\n\tfor qemu-devel@nongnu.org; Mon, 18 Dec 2017 08:14:40 -0500","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <armbru@redhat.com>) id 1eQvFC-0004jn-Nx\n\tfor qemu-devel@nongnu.org; Mon, 18 Dec 2017 08:14:26 -0500","from mx1.redhat.com ([209.132.183.28]:33594)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <armbru@redhat.com>) id 1eQvFC-0004i9-DP\n\tfor qemu-devel@nongnu.org; Mon, 18 Dec 2017 08:14:10 -0500","from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 9664580082\n\tfor <qemu-devel@nongnu.org>; Mon, 18 Dec 2017 13:14:08 +0000 (UTC)","from blackfin.pond.sub.org (ovpn-116-74.ams2.redhat.com\n\t[10.36.116.74])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 89E6660C5B;\n\tMon, 18 Dec 2017 13:14:02 +0000 (UTC)","by blackfin.pond.sub.org (Postfix, from userid 1000)\n\tid 15C471138645; Mon, 18 Dec 2017 14:14:01 +0100 (CET)"],"From":"Markus Armbruster <armbru@redhat.com>","To":"=?utf-8?q?Marc-Andr=C3=A9?= Lureau <marcandre.lureau@redhat.com>","References":"<20170911110623.24981-1-marcandre.lureau@redhat.com>","Date":"Mon, 18 Dec 2017 14:14:01 +0100","In-Reply-To":"<20170911110623.24981-1-marcandre.lureau@redhat.com> (\n\t=?utf-8?b?Ik1hcmMtQW5kcsOp?= Lureau\"'s message of \"Mon,\n\t11 Sep 2017 13:05:33 +0200\")","Message-ID":"<87r2rsfaau.fsf@dusky.pond.sub.org>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.14","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.28]);\n\tMon, 18 Dec 2017 13:14:08 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v3 00/50] Hi,","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]