diff mbox series

meson.build: Bump minimum supported version of pixman to 0.34.0

Message ID 20220511094758.794946-1-thuth@redhat.com
State New
Headers show
Series meson.build: Bump minimum supported version of pixman to 0.34.0 | expand

Commit Message

Thomas Huth May 11, 2022, 9:47 a.m. UTC
We haven't revisited the minimum required versions of pixman
since quite a while. Let's check whether we can rule out some
old versions that nobody tests anymore...

For pixman, per repology.org, currently shipping versions are:

     CentOS 8 / RHEL-8 : 0.38.4
              Fedora 34: 0.40.0
             Debian 10 : 0.36.0
      Ubuntu LTS 20.04 : 0.38.4
    openSUSE Leap 15.3 : 0.34.0
           MSYS2 MinGW : 0.40.0
         FreeBSD Ports : 0.34.0 / 0.40.0
          NetBSD pksrc : 0.40.0

OpenBSD 7.1 seems to use 0.40.0 when running tests/vm/openbsd.

So it seems to be fine to bump the minimum version to 0.34.0 now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell May 11, 2022, 10:28 a.m. UTC | #1
On Wed, 11 May 2022 at 10:50, Thomas Huth <thuth@redhat.com> wrote:
>
> We haven't revisited the minimum required versions of pixman
> since quite a while. Let's check whether we can rule out some
> old versions that nobody tests anymore...
>
> For pixman, per repology.org, currently shipping versions are:
>
>      CentOS 8 / RHEL-8 : 0.38.4
>               Fedora 34: 0.40.0
>              Debian 10 : 0.36.0
>       Ubuntu LTS 20.04 : 0.38.4
>     openSUSE Leap 15.3 : 0.34.0
>            MSYS2 MinGW : 0.40.0
>          FreeBSD Ports : 0.34.0 / 0.40.0
>           NetBSD pksrc : 0.40.0
>
> OpenBSD 7.1 seems to use 0.40.0 when running tests/vm/openbsd.
>
> So it seems to be fine to bump the minimum version to 0.34.0 now.

This seems to be missing the rationale for why bumping
the minimum version is worth doing. What new feature that
we need is this enabling, or what now-unnecessary bug
workarounds does this permit us to drop?

We shouldn't bump minimum versions of libraries only because
all our supported hosts happen to have something newer.

thanks
-- PMM
Thomas Huth May 11, 2022, 10:56 a.m. UTC | #2
On 11/05/2022 12.28, Peter Maydell wrote:
> On Wed, 11 May 2022 at 10:50, Thomas Huth <thuth@redhat.com> wrote:
>>
>> We haven't revisited the minimum required versions of pixman
>> since quite a while. Let's check whether we can rule out some
>> old versions that nobody tests anymore...
>>
>> For pixman, per repology.org, currently shipping versions are:
>>
>>       CentOS 8 / RHEL-8 : 0.38.4
>>                Fedora 34: 0.40.0
>>               Debian 10 : 0.36.0
>>        Ubuntu LTS 20.04 : 0.38.4
>>      openSUSE Leap 15.3 : 0.34.0
>>             MSYS2 MinGW : 0.40.0
>>           FreeBSD Ports : 0.34.0 / 0.40.0
>>            NetBSD pksrc : 0.40.0
>>
>> OpenBSD 7.1 seems to use 0.40.0 when running tests/vm/openbsd.
>>
>> So it seems to be fine to bump the minimum version to 0.34.0 now.
> 
> This seems to be missing the rationale for why bumping
> the minimum version is worth doing. What new feature that
> we need is this enabling, or what now-unnecessary bug
> workarounds does this permit us to drop?

We simply don't test such old versions anymore. Thus what happens if someone 
tries to use such a version and runs into a problem (especially if it is 
non-obvious and would need a lot of debugging)? Are you still willing to fix 
it? Or would you then rather bump the version after hours of debugging the 
problem? ... IMHO it's better to set the expectations right from the start. 
If we do not test and support it anymore, we should not give the impression 
that QEMU can still be compiled with this.

  Thomas
Daniel P. Berrangé May 11, 2022, 11:22 a.m. UTC | #3
On Wed, May 11, 2022 at 12:56:45PM +0200, Thomas Huth wrote:
> On 11/05/2022 12.28, Peter Maydell wrote:
> > On Wed, 11 May 2022 at 10:50, Thomas Huth <thuth@redhat.com> wrote:
> > > 
> > > We haven't revisited the minimum required versions of pixman
> > > since quite a while. Let's check whether we can rule out some
> > > old versions that nobody tests anymore...
> > > 
> > > For pixman, per repology.org, currently shipping versions are:
> > > 
> > >       CentOS 8 / RHEL-8 : 0.38.4
> > >                Fedora 34: 0.40.0
> > >               Debian 10 : 0.36.0
> > >        Ubuntu LTS 20.04 : 0.38.4
> > >      openSUSE Leap 15.3 : 0.34.0
> > >             MSYS2 MinGW : 0.40.0
> > >           FreeBSD Ports : 0.34.0 / 0.40.0
> > >            NetBSD pksrc : 0.40.0
> > > 
> > > OpenBSD 7.1 seems to use 0.40.0 when running tests/vm/openbsd.
> > > 
> > > So it seems to be fine to bump the minimum version to 0.34.0 now.
> > 
> > This seems to be missing the rationale for why bumping
> > the minimum version is worth doing. What new feature that
> > we need is this enabling, or what now-unnecessary bug
> > workarounds does this permit us to drop?
> 
> We simply don't test such old versions anymore. Thus what happens if someone
> tries to use such a version and runs into a problem (especially if it is
> non-obvious and would need a lot of debugging)? Are you still willing to fix
> it? Or would you then rather bump the version after hours of debugging the
> problem? ... IMHO it's better to set the expectations right from the start.
> If we do not test and support it anymore, we should not give the impression
> that QEMU can still be compiled with this.

Support for QEMU is not such a clearly defined boundary, there are many
levels of support.  Our CI testing determines our "top tier" platforms
where we expect everything to be functional at all times, but it doesn't
mean that all other platforms are entirely unsupported. It merely means
we can't offer the same level of assurance that it will be perfect out
of the box.

If someone reports an issue we have freedom to decide how much effort
to put in. If they're using a pixman that's very old compared to what
we've tested, we don't have to spend time on that ourselves. We can
easily tell the reporter to reproduce with something newer first if
desired.

The platform support matrix is a way to determine:

 - what platforms we should focus our testing resources on

   For this, we can unambiguously bump our tsting envs
   on each release. It merely means the old version is
   no longer top tier, it is second tier in terms of
   what quality users can expect.

 - whether it is reasonable to bump a package minimum version

   Admittedly we never expressed whether the min version bumps
   are justifiable just for the sake of it, or whether version
   bumps are expected as a means to access new functionality /
   drop back compat code. Nearly all the bumps we've done have
   had some code benefit in the past.

   In practice when we bump the minimum glib2 version this has
   a clear code benefit, and once you bump min glib2, this defacto
   eliminates old versions of many other libraries. The only
   exception would be distros that are fast at rebasing glib, but
   slow at rebasing other deps we have. This is pretty uncommon
   for any mainstream distro.

IOW, I would suggest that in each release our first focus should
be on glib, gcc/clang versions, as those historically bring us
clear benefits. If glib bumps, then there's little point in
keeping any other deps with older min versions, so many other
bits can be a fairly straightforward decision.

With regards,
Daniel
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 864e97945f..7843a50cc1 100644
--- a/meson.build
+++ b/meson.build
@@ -504,7 +504,7 @@  if 'ust' in get_option('trace_backends')
 endif
 pixman = not_found
 if have_system or have_tools
-  pixman = dependency('pixman-1', required: have_system, version:'>=0.21.8',
+  pixman = dependency('pixman-1', required: have_system, version:'>=0.34.0',
                       method: 'pkg-config', kwargs: static_kwargs)
 endif
 zlib = dependency('zlib', required: true, kwargs: static_kwargs)