[Qemu-devel] [PATCH] Deprecate Python 2 support

Eduardo Habkost posted 1 patch 4 years, 12 months ago
Test asan passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190503193721.18459-1-ehabkost@redhat.com
configure            | 8 ++++++++
qemu-deprecated.texi | 8 ++++++++
2 files changed, 16 insertions(+)
[Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Eduardo Habkost 4 years, 12 months ago
Python 2 will reach end of life in January 1 2020.  Declare it as
deprecated.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 configure            | 8 ++++++++
 qemu-deprecated.texi | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/configure b/configure
index 5b183c2e39..50385061ed 100755
--- a/configure
+++ b/configure
@@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
     echo "us upstream at qemu-devel@nongnu.org."
 fi
 
+# Note that if the Python conditional here evaluates True we will exit
+# with status 1 which is a shell 'false' value.
+if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
+  echo
+  echo "WARNING: Python 2 support is deprecated" >&2
+  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
+fi
+
 config_host_mak="config-host.mak"
 
 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 842e71b11d..2f2d9a3e95 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
 to just export the entire image and then mount only /dev/nbd0p1 than
 it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
 subset of the image.
+
+@section Build system
+
+@subsection Python 2 support (since 4.1.0)
+
+In the future, QEMU will require Python 3 to be available at
+build time.  Support for Python 2 in scripts shipped with QEMU
+is deprecated.
-- 
2.18.0.rc1.1.g3f1ff2140


Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Thomas Huth 4 years, 12 months ago
On 03/05/2019 21.37, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.

Reviewed-by: Thomas Huth <thuth@redhat.com>

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Daniel P. Berrangé 4 years, 11 months ago
On Fri, May 03, 2019 at 04:37:21PM -0300, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


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 :|

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Kevin Wolf 4 years, 11 months ago
Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi

While it's clear that we want to get rid of Python 2, did we actually
discuss how to decide what the new minimum Python version is? I don't
think any major distribution uses 3.0, which was released in 2008, so
this doesn't seem to make a lot of sense to me as the new minimum.

Currently, 3.6 seems to be a commonly available version. It looks like
Debian stable is at 3.5 still, though it might become oldstable before
the next QEMU release. Do we need to support anything older than that?

Kevin

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Daniel P. Berrangé 4 years, 11 months ago
On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> > Python 2 will reach end of life in January 1 2020.  Declare it as
> > deprecated.
> > 
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  configure            | 8 ++++++++
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 16 insertions(+)
> > 
> > diff --git a/configure b/configure
> > index 5b183c2e39..50385061ed 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >      echo "us upstream at qemu-devel@nongnu.org."
> >  fi
> >  
> > +# Note that if the Python conditional here evaluates True we will exit
> > +# with status 1 which is a shell 'false' value.
> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> > +  echo
> > +  echo "WARNING: Python 2 support is deprecated" >&2
> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> > +fi
> 
> While it's clear that we want to get rid of Python 2, did we actually
> discuss how to decide what the new minimum Python version is? I don't
> think any major distribution uses 3.0, which was released in 2008, so
> this doesn't seem to make a lot of sense to me as the new minimum.
> 
> Currently, 3.6 seems to be a commonly available version. It looks like
> Debian stable is at 3.5 still, though it might become oldstable before
> the next QEMU release. Do we need to support anything older than that?

Per our support build platform doc, the oldest distros we care about will
be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
Stretch was released. IOW, we can drop Jessie in June this year, which
is before our next releasee. So we don't need to care about the 3.4
version in Jessie.

RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
via software collections and this has 3.6

Debian Strech has 3.5.3, so 3.5 looks like our min viable version.

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 :|

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Markus Armbruster 4 years, 11 months ago
Daniel P. Berrangé <berrange@redhat.com> writes:

> On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
>> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
>> > Python 2 will reach end of life in January 1 2020.  Declare it as
>> > deprecated.
>> > 
>> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>> > ---
>> >  configure            | 8 ++++++++
>> >  qemu-deprecated.texi | 8 ++++++++
>> >  2 files changed, 16 insertions(+)
>> > 
>> > diff --git a/configure b/configure
>> > index 5b183c2e39..50385061ed 100755
>> > --- a/configure
>> > +++ b/configure
>> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>> >      echo "us upstream at qemu-devel@nongnu.org."
>> >  fi
>> >  
>> > +# Note that if the Python conditional here evaluates True we will exit
>> > +# with status 1 which is a shell 'false' value.
>> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
>> > +  echo
>> > +  echo "WARNING: Python 2 support is deprecated" >&2
>> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
>> > +fi
>> 
>> While it's clear that we want to get rid of Python 2, did we actually
>> discuss how to decide what the new minimum Python version is? I don't
>> think any major distribution uses 3.0, which was released in 2008, so
>> this doesn't seem to make a lot of sense to me as the new minimum.

Good point.

>> Currently, 3.6 seems to be a commonly available version. It looks like
>> Debian stable is at 3.5 still, though it might become oldstable before
>> the next QEMU release. Do we need to support anything older than that?
>
> Per our support build platform doc, the oldest distros we care about will
> be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
> Stretch was released. IOW, we can drop Jessie in June this year, which
> is before our next releasee. So we don't need to care about the 3.4
> version in Jessie.
>
> RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
> via software collections and this has 3.6
>
> Debian Strech has 3.5.3, so 3.5 looks like our min viable version.

Eduardo, care to update configure accordingly?

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Eduardo Habkost 4 years, 11 months ago
On Wed, May 08, 2019 at 02:50:00PM +0200, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
> > On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
> >> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> >> > Python 2 will reach end of life in January 1 2020.  Declare it as
> >> > deprecated.
> >> > 
> >> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> >> > ---
> >> >  configure            | 8 ++++++++
> >> >  qemu-deprecated.texi | 8 ++++++++
> >> >  2 files changed, 16 insertions(+)
> >> > 
> >> > diff --git a/configure b/configure
> >> > index 5b183c2e39..50385061ed 100755
> >> > --- a/configure
> >> > +++ b/configure
> >> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >> >      echo "us upstream at qemu-devel@nongnu.org."
> >> >  fi
> >> >  
> >> > +# Note that if the Python conditional here evaluates True we will exit
> >> > +# with status 1 which is a shell 'false' value.
> >> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> >> > +  echo
> >> > +  echo "WARNING: Python 2 support is deprecated" >&2
> >> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> >> > +fi
> >> 
> >> While it's clear that we want to get rid of Python 2, did we actually
> >> discuss how to decide what the new minimum Python version is? I don't
> >> think any major distribution uses 3.0, which was released in 2008, so
> >> this doesn't seem to make a lot of sense to me as the new minimum.
> 
> Good point.
> 
> >> Currently, 3.6 seems to be a commonly available version. It looks like
> >> Debian stable is at 3.5 still, though it might become oldstable before
> >> the next QEMU release. Do we need to support anything older than that?
> >
> > Per our support build platform doc, the oldest distros we care about will
> > be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
> > Stretch was released. IOW, we can drop Jessie in June this year, which
> > is before our next releasee. So we don't need to care about the 3.4
> > version in Jessie.
> >
> > RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
> > via software collections and this has 3.6
> >
> > Debian Strech has 3.5.3, so 3.5 looks like our min viable version.
> 
> Eduardo, care to update configure accordingly?

I'll do it as a separate patch, because updating the minimum
Python 3.x version (which is 3.0 right now) is independent from
Python 2 deprecation.

-- 
Eduardo

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Philippe Mathieu-Daudé 4 years, 10 months ago
On 5/3/19 9:37 PM, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Markus Armbruster 4 years, 11 months ago
Eduardo Habkost <ehabkost@redhat.com> writes:

> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2

Please don't shout "warning".  

> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.

Reviewed-by: Markus Armbruster <armbru@redhat.com>

Re: [Qemu-devel] [PATCH] Deprecate Python 2 support
Posted by Eduardo Habkost 4 years, 11 months ago
On Mon, May 06, 2019 at 04:12:02PM +0200, Markus Armbruster wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
> 
> > Python 2 will reach end of life in January 1 2020.  Declare it as
> > deprecated.
> >
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  configure            | 8 ++++++++
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 16 insertions(+)
> >
> > diff --git a/configure b/configure
> > index 5b183c2e39..50385061ed 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >      echo "us upstream at qemu-devel@nongnu.org."
> >  fi
> >  
> > +# Note that if the Python conditional here evaluates True we will exit
> > +# with status 1 which is a shell 'false' value.
> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> > +  echo
> > +  echo "WARNING: Python 2 support is deprecated" >&2
> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> 
> Please don't shout "warning".  
>
[...]
> 
> Reviewed-by: Markus Armbruster <armbru@redhat.com>

Thanks!  Queued after changing messages to "warning: ..."

-- 
Eduardo