Subject: bug#50105: [core-updates] Python sitecustomize issue.

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 18 Aug 2021 11:53:07 +0200

Hello,

I tried to upgrade glade to the 3.38.2 release on core-update and
encountered the following test issue:

--8<---------------cut here---------------start------------->8---
2/5 modules               FAIL            0.29s   killed by signal 5 SIGTRAP
>>> GLADE_MODULE_SEARCH_PATH=/home/mathieu/glade-3.38.2/build/plugins/gtk+:/home/mathieu/glade-3.38.2/build/plugins/python:/home/mathieu/glade-3.38.2/build/plugins/gjs:/home/mathieu/glade-3.38.2/tests/modules MALLOC_PERTURB_=195 GLADE_TESTING=1 GLADE_CATALOG_SEARCH_PATH=/home/mathieu/glade-3.38.2/plugins/gtk+:/home/mathieu/glade-3.38.2/plugins/python:/home/mathieu/glade-3.38.2/plugins/gjs:/home/mathieu/glade-3.38.2/tests/catalogs GLADE_PIXMAP_DIR=/home/mathieu/glade-3.38.2/data/icons GLADE_ICON_THEME_PATH=/home/mathieu/glade-3.38.2/plugins/gtk+/icons/22x22 /home/mathieu/glade-3.38.2/build/tests/modules
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
stdout:
# random seed: R02Sd222538bc9b76b6e424ec0cb17ee887c
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
Bail out! GladeUI-PYTHON-FATAL-WARNING: Error initializing Python interpreter: could not import pygobject
stderr:
Error in sitecustomize; set PYTHONVERBOSE for traceback:
ValueError: '/home/mathieu/glade-3.38.2/build/lib/python3.9/site-packages' is not in list

(/home/mathieu/glade-3.38.2/build/tests/modules:4898): GladeUI-PYTHON-WARNING **: 09:43:58.605: Error initializing Python interpreter: could not import pygobject
--8<---------------cut here---------------end--------------->8---

I think the issue here lies in the sitecustomize.py file introduced with
cb72f9a773e0931ee3758c851d96007ded034e4c.

--8<---------------cut here---------------start------------->8---
python_root = os.path.realpath(sys.executable).split('/bin/')[0]
--8<---------------cut here---------------end--------------->8---

When using the Python C library, sys.executable is not the expected
python binary but the test binary.

So when we try to find the associated libraries in the Python search
path, this way:

--8<---------------cut here---------------start------------->8---
index = sys_path_absolute.index(python_site)
sys.path = sys.path[:index] + matching_sites + sys.path[index:]
--8<---------------cut here---------------end--------------->8---

we get:

--8<---------------cut here---------------start------------->8---
ValueError: '/home/mathieu/glade-3.38.2/build/lib/python3.9/site-packages' is not in list
--8<---------------cut here---------------end--------------->8---

Running the test with the PYTHONPATH set to:

--8<---------------cut here---------------start------------->8---
PYTHONPATH=/home/mathieu/glade-3.38.2/build/lib/python3.9/site-packages:$PYTHONPATH 
--8<---------------cut here---------------end--------------->8---

is a way to work around this issue.

The fix here would be to replace sys.executable in the sitecustomize.py
with something more adequate, but I have no idea what could it be.

Thanks,

Mathieu