On Tue, Jan 16, 2018 at 01:42:03PM +0000, Daniel P. Berrange wrote:
> This is an update for my previously posted series:
>
> v2: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg06528.html
> v3: https://lists.gnu.org/archive/html/qemu-devel/2018-01/msg02978.html
> v4: https://lists.gnu.org/archive/html/qemu-devel/2018-01/msg03150.html
>
> This series enables some level of CI testing for py3 so that our CI jobs will
> get coverage of both py2 and py3 builds to avoid bitrot.
>
I'm queueing this on python-next. Thanks!
> I did a test travis build with py 3.0 and py 3.6 and got success:
>
> https://travis-ci.org/berrange/qemu/builds/328223261
>
> The goal was to achieve the following
>
> ./configure --python=/usr/bin/python3
> make
> make check
>
> This still requires passing python path to configure explicitly. A
> further improvement would be for configure to automatically detect
> a pythjon 3 binary and use it preferentially to python 2.
>
> I have not attempted to fix/validate the block I/O tests. I would expect
> them to be broken, but easily fixable with the similar kind of scope
> changes as seen here. I felt it better to tackle that separately to
> avoid this initial series getting too large.
>
> Although the Python 2 EOL date is 2020, we already have distros which
> are not shipping Python 2 by default (Fedora >= 26 has dropped Py2 from
> the default install). Any new releases of long life and/or enterprise
> distros may well not ship Python 2 given that it would go EOL long
> before the EOL of the distro itself. IOW QEMU does have a fairly pressing
> need to be able to support Python 3 for building.
>
> A request for py3 is tracked here:
>
> https://bugs.launchpad.net/qemu/+bug/1708462
>
> If, rather than supporting py2+py3 in parallel, we wish to entirely drop
> py2 support, this series would not change significantly
>
> - The "from __future__ import print_function" line can be removed
> from patch 1.
> - The code in patches 2, 3, 4 to deal with changed module names
> for a few functions can be simpified to only try the py3 location
> - The travis + docker jobs would be fully updated to install py3,
> or delete jobs which can't support py3
>
> Given how little code is removed should we drop py2 support, I don't
> believe it is in our immediate interests to do this. It would create
> extra pain for consumers of QEMU, with little benefit to QEMU code
> maintainance. The key thing is ensuring our travis+docker jobs provide
> satisfactory automated test coverage for the variety of python versions
> in the distros we care about targetting.
>
> NB, Patch 11 here is not related to python 3 work - it was just a
> temporary pre-requisite of pulling in the keycodemapdb update.
>
> Changes since v4:
>
> - Fix broken rebase which accidentally squashed first two
> patches together
> - Unset LC_ALL, and set LANG + LC_CTYPE, instead of only LANG (Eric)
>
> Changes since v3:
>
> - Remove space before '(' in print() function calls (Phillippe)
> - Force use of en_US.UTF-8 for QAPI code generation (Patchew)
>
> Changes since v2:
>
> - Pull in fix for keycodemapdb
> - Enable testing with Travis
> - Enable testing with Fedora Docker images
> - Fix for sort ordering to fix 'make check-qapi-schema'
> - Fix for signrom data
>
> Daniel P. Berrange (13):
> qapi: convert to use python print function instead of statement
> qapi: use items()/values() intead of iteritems()/itervalues()
> qapi: Use OrderedDict from standard library if available
> qapi: adapt to moved location of StringIO module in py3
> qapi: Adapt to moved location of 'maketrans' function in py3
> qapi: remove '-q' arg to diff when comparing QAPI output
> qapi: ensure stable sort ordering when checking QAPI entities
> qapi: force a UTF-8 locale for running Python
> scripts: ensure signrom treats data as bytes
> configure: allow use of python 3
> ui: update keycodemapdb to get py3 fixes
> travis: improve python version test coverage
> docker: change Fedora images to run with python3
>
> Miika S (1):
> input: add missing JIS keys to virtio input
>
> .travis.yml | 14 +++++++----
> Makefile | 22 +++++++++--------
> configure | 5 ++--
> hw/input/virtio-input-hid.c | 7 ++++++
> qapi/ui.json | 5 +++-
> scripts/qapi.py | 43 ++++++++++++++++++++--------------
> scripts/qapi2texi.py | 11 +++++----
> scripts/signrom.py | 4 ++--
> tests/Makefile.include | 6 ++---
> tests/docker/dockerfiles/fedora.docker | 3 ++-
> tests/qapi-schema/test-qapi.py | 43 +++++++++++++++++-----------------
> ui/keycodemapdb | 2 +-
> 12 files changed, 96 insertions(+), 69 deletions(-)
>
> --
> 2.14.3
>
>
--
Eduardo