textext: fix GUI library (GTK3) detection

TexText probes for a GUI toolkit by spawning a subprocess (roughly
`import gi; gi.require_version('Gtk', '3.0'); from gi.repository import Gtk`)
instead of importing in-process. The Python wrapper makes runtime dependencies
importable via a site.addsitedir preamble and deliberately does not export
PYTHONPATH, so the spawned probe interpreter cannot import gi. TexText then
reports "Neither GTK nor TkInter has been found" and refuses to launch.

Export PYTHONPATH on the wrapper so the probe subprocess inherits the runtime
dependencies too.

Resolves #384042
This commit is contained in:
CM Geldenhuys
2026-07-21 20:45:04 +02:00
parent 985cad6b52
commit d37982385b
@@ -109,6 +109,20 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
# Include gobject-introspection typelibs in the wrapper.
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
# TexText probes for a GUI toolkit by spawning a subprocess
# (`sys.executable -c "import gi; gi.require_version('Gtk', '3.0'); ..."`)
# instead of importing in-process. The Python wrapper makes runtime
# dependencies importable via a site.addsitedir preamble and deliberately
# does not export PYTHONPATH, so the spawned probe interpreter cannot import
# gi and TexText aborts with "Neither GTK nor TkInter has been found".
# Export PYTHONPATH so the probe subprocess inherits the dependencies too.
# See https://github.com/NixOS/nixpkgs/issues/384042
makeWrapperArgs+=(--prefix PYTHONPATH : "${
lib.makeSearchPath python3.sitePackages (
finalAttrs.propagatedBuildInputs ++ [ python3.pkgs.pycairo ]
)
}")
'';
postFixup = ''