On Fri, May 31, 2019 at 04:24:29PM -0300, Eduardo Habkost wrote: > Long story short: I would really like to drop support for Python > 2 in QEMU 4.1. > > What exactly prevents us from doing this? Does our deprecation > policy really apply to build dependencies?
In general I do *not* consider our deprecation policy to apply to *mandatory* build dependancies. Instead our platform support policy applies. The rationale is that mandatory build dependancies are not something that can be considered on a case by case basis. To build QEMU on any given platform, *all* the mandatory build deps must be satisfied by that platform. Increasing min version of any single mandatory, build dep will effectively exclude a host build target. IOW, when we drop a build target we can consider updating min version of *all* mandatory build deps at the same time. Where the deprecation policy could come into play is if we want to drop an *optional* build dependancy for certain platforms. eg librbd is an optional build dep and we might have some reason we want to increase the min version despite it not being present in all our supported platforms. This could be a case to mark the "rbd" feature as deprecated on certain build platforms. Thus to answer your python 2 question, we should ask which of our build targets cannot support python 3 ? Obviously we know the answer to that is RHEL-7. Except there is some fuzziness in there because it depends on what you define "RHEL-7" to be. There are several possible answers a. RHEL-7 covers only the stuff in the basic yum repos b. RHEL-7 covers packages in any yum repos shipped by Red Hat c. RHEL-7 covers packages in any yum repos shipped by Red Hat or EPEL d. RHEL-7 covers packages in any yum repo available for use with RHEL-7, provided by any vendor The platform support policy has not documented which of these possiblities we're targetting. If we consider it to mean (a), then there's no way to use py3 with RHEL-7. With (b), (c), or (d) it is possible to get py3 available on RHEL-7 by enabling suitable repos. Personally I think it would be fine for use to consider (b) or (c) to be our intended interpretation for platform support policy. In this interpretation it is possible for developers to get Python 3 on RHEL-7 by enabling the Red Hat Software collection repos: https://developers.redhat.com/products/softwarecollections/hello-world/#fndtn-windows This implies we *can* drop python2 from QEMU *and* keep RHEL-7 as a supported target. Also note that the platform support policy didn't say anything about RHEL minor updates. ie it does not distinguish RHEL-7.0 from RHEL-7.6, despite fact that some packages get major version rebases. I think we should clarify that we mean "latest available updates" for our supported platforms. ie 7.6 is supported, 7.0 is *not* supported. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|