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

From: David Wolfskill <david_at_catwhisker.org>
Date: Sun, 11 Sep 2022 14:04:53 UTC
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

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,

| 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

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

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                   

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

How may I fix this?


David H. Wolfskill                              david@catwhisker.org
"In my administration, I'm going to enforce all laws concerning the
protection of classified information. No one will be above the law."
 -- D. Trump, August, 2016

See https://www.catwhisker.org/~david/publickey.gpg for my public key.