[Libguestfs] [p2v PATCH 7/7] gui.c: annotate GTK_INPUT_PURPOSE_PASSWORD with upstream GTK3 version

Daniel P. Berrangé berrange at redhat.com
Tue Sep 27 17:20:43 UTC 2022


On Tue, Sep 27, 2022 at 06:27:08PM +0200, Laszlo Ersek wrote:
> On 09/27/22 17:59, Daniel P. Berrangé wrote:
> > On Tue, Sep 27, 2022 at 04:53:08PM +0200, Laszlo Ersek wrote:
> >> On 09/26/22 14:09, Daniel P. Berrangé wrote:
> >>> On Mon, Sep 26, 2022 at 12:59:21PM +0100, Richard W.M. Jones wrote:
> >>>>
> >>>> Apart from Dan's suggestions in patch 1, the series looks good to me.
> >>>>
> >>>> FWIW RHEL 7 (the earliest distro with PCRE 2) has glib2 2.56.1 &
> >>>> gtk3 3.22.30, so supporting any earlier versions also seems pointless,
> >>>> so that might be another thing to review.  We could make USE_POPOVERS
> >>>> unconditional, and make gui-gtk3-compat.h considerably less
> >>>> complicated.
> >>>
> >>> Say you pick 3.22 as your official min and check this with pkg-config
> >>> in configure, then you can further define
> >>>
> >>>   GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_22
> >>>   GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_22
> >>>
> >>> The former will give you warnings if you use any API that was already
> >>> deprecated in 3.22 - this is something that should be re-written to
> >>> use the recommended modern alternative API.
> >>
> >> Is "GDK" a muscle-memory typo (because "GDK" does exist)? Did you mean GTK?
> > 
> > It looks odd, but I really do mean GDK here. It affects both the GDK
> > and GTK   include files (GDK is a layer below GTK).
> 
> Right, I've found a diagram here:
> 
> https://en.wikipedia.org/wiki/GDK
> 
> What I didn't know was that the GTK and GDK versions were supposed to be
> in sync. In virt-p2v, we care about GTK (and maybe glib); I've not been
> aware that we care about APIs at the GDK level. So enforcing a GDK
> version seemed strange, as a proxy for the GTK version.

Practically speaking in terms of configure/meson checks it is sufficient
to merely check for GTK, as GTK's pkg-config file has a dependancy on
GDK's pkg-config file. It should be impossible end up with mis-matched
versions of GTK & GDK unless you've gone out of your way to intentionally
break their installation in some way.

It does mean you end up with the strange scenario, where you refer to
GTK for the pkg-config test, but for the API version checking #defines
I describe, you refer to GDK instead.

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


More information about the Libguestfs mailing list