Re: What is this "gi" Python module that x11-toolkits/gtk40 wants?

From: Dima Panov <fluffy_at_FreeBSD.org>
Date: Sun, 11 Sep 2022 14:47:31 UTC
Moin!

On 11.09.2022 17:04, David Wolfskill wrote:
> Of my "development" machines, one is a headless "build machine" and the
> other two are laptops (one around 10 years old that I'm trying to
> retire; the other only about 6 years old that I'm trying to be able to
> use the way I can the older one -- but that;s tangential to the issue at
> hand).
> 
> The build machine builds both FreeBSD and packages for my "production"
> machines (using poudriere for the latter).  The development machines get
> their ports updated via portmaster.
> 
> During the port update process on the laptops this morning, the
> intended "Upgrade gtk4-4.6.3 to gtk4-4.8.0" failed for x11-toolkits/gtk40,
> citing:
> 
> | Program glib-compile-resources found: YES (/usr/local/bin/glib-compile-resources)
> | Program bash found: YES (/usr/local/bin/bash)
> | Program python3 (gi) found: NO
> |
> | testsuite/introspection/meson.build:1:0: ERROR: python3 is missing modules: gi
> |
> | A full log can be found at /common/ports/x11-toolkits/gtk40/work/gtk-4.8.0/_build/meson-logs/meson-log.txt
> | ===>  Script "configure" failed unexpectedly.
> 
> 
> The tail end of that "full log" reads:
> 
> | Adding test "reftest wrapping-in-boxes-in-boxes.ui"
> | Program python3 (gi) found: NO
> |
> | testsuite/introspection/meson.build:1:0: ERROR: python3 is missing modules: gi
> 

It should be textproc/py-gi-docgen but it not a hard-requirement and 
should pass without.

Error also can be caused by wrong python3 detection but it should be 
covered via BINARY_ALIAS

> Output of `make -C /usr/ports/lang/python39 showconfig` is:
> 
> g1-70(12.3-S)[7] make -C /usr/ports/lang/python39 showconfig
> ===> The following configuration options are available for python39-3.9.13:
>       DEBUG=off: Build with debugging support
>       IPV6=on: IPv6 protocol support
>       LIBMPDEC=on: Use libmpdec from ports instead of bundled version
>       LTO=off: Use Link-Time Optimization
>       NLS=on: Enable gettext support for the locale module
>       PYMALLOC=on: Enable specialized mallocs
> ====> Hash Algorithm (PEP-456): you can only select none or one of them
>       FNV=off: Modified Fowler-Noll-Vo Algorithm
>       SIPHASH=off: SipHash24 Algorithm
> ===> Use 'make config' to modify these settings
> g1-70(12.3-S)[8]
> 
> On the off-chance that it was some sort of devel/meson option:
> g1-70(12.3-S)[12] make -C /usr/ports/devel/meson showconfig
> g1-70(12.3-S)[13]
> 
> This is running on:
> g1-70(12.3-S)[10] uname -aUK
> FreeBSD g1-70.catwhisker.org 12.3-STABLE FreeBSD 12.3-STABLE #1283 stable/12-98bde38b32a: Sat Sep 10 10:34:25 UTC 2022     root@g1-70.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY  amd64 1203507 1203507
> 
> with the ports tree at main-n595362-ddae4e92d831.
> 
> 
> The poudriere run (for the production machines) did not encounter
> an issue -- but a significant contributor to that is that (in checking
> this) I discovered that poudriere isn't building gtk4 -- it's building
> gtk2 & gtk3.  (I have nothing mentioning gtk at all in any make.conf
> files -- either in /etc or in /usr/local/etc/poudriere.d/.)
> 
> I'm not developing gtk applications; for my purposes, gtk* is merely a
> dependency of some port that I intend to use.
> 
> I have placed copies of salient files in
> https://www.catwhisker.org/~david/FreeBSD/ports/gtk40/
> 
> How may I fix this?
> 
> Thanks!
> 
> Peace,
> david

-- 
Sincerely,
Dima (fluffy@FreeBSD.org, https://t.me/FluffyBSD)
(desktop, kde, x11, office, ports-secteam)@FreeBSD team