Bug 41231
| Summary: | Не работает графическая часть приложения | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Evgeny Ivanitskiy <pikone> |
| Component: | grass | Assignee: | Andrey Cherepanov <cas> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | alton, cas, rauty |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Результат проверки актуальности Состояние: grass 7.8.5 → Sisyphus 8.5.0-alt2. wxGUI в 8.x переписан, i586 снят. Ретеста с 2021 года не было. Рекомендация: ретест на Sisyphus/p11 x86_64. На Sisyphus x86_64 (2026-09-16) grass-8.5.0-alt2 (задание https://packages.altlinux.org/tasks/429383/), python3-module-wx-4.2.2-alt2, libwxGTK3.2-3.2.11-alt1, python3 3.14 — пакет не запускается вообще, до wxGUI дело не доходит: любой вызов grass (--gui, --version, --config path) бесконечно рекурсивно запускает `grass --config path`, за минуту съедает 4 ГБ памяти (free: 110 MB из 3918), load average 10, машина перестаёт отвечать. Окно GUI не появляется, ~/grass.log пуст. $ ps -o pid,ppid,pcpu,rss,cmd -u test --sort=-pcpu | head 3415 3414 100 20340 /usr/bin/python3 /usr/bin/grass --config path 3414 3413 46 20240 /usr/bin/python3 /usr/bin/grass --config path 3413 3412 30 20100 /usr/bin/python3 /usr/bin/grass --config path ... (сотни уровней вложенности) $ GISBASE=/usr/lib64/grass85 timeout 15 grass --version → rc=124, то же дерево процессов Причина — в пакет зашит путь buildroot: $ rpm -ql grass | xargs grep -l grass-buildroot | grep -v pycache /usr/lib64/grass85/demolocation/.grassrc85 (GISDBASE: /usr/src/tmp/grass-buildroot/usr/grass85) /usr/lib64/python3/site-packages/grass/app/resource_paths.py (GRASS_PREFIX = "/usr/src/tmp/grass-buildroot/usr/grass85") /usr/bin/grass (строки 2193-2200) видит, что gisbase не существует, и зовёт grass.script.setup.get_install_path(), а тот — subprocess `grass --config path`, который делает то же самое. GISBASE из окружения не помогает: RuntimePaths(set_env_variables=True) перезаписывает его значением из prefix. В grass.spec (%install) путь правится только в /usr/bin/grass (sed 's|%buildroot%_prefix|%_libdir|') и старыми sed-ами по etc/python/grass/script/*.py, которых в 8.5 уже нет; новый модуль grass/app/resource_paths.py (появился в GRASS 8.5) и demolocation/.grassrc85 остаются с buildroot. Нужно добавить после переноса в %python3_sitelibdir: sed -i 's|%buildroot%_prefix/%grassdir|%_libdir/%grassdir|g' \ %buildroot%python3_sitelibdir/grass/app/resource_paths.py \ %buildroot%_libdir/%grassdir/demolocation/.grassrc85 (и проверку `grep -r grass-buildroot %buildroot` в %check). Исходный симптом (пропадающие окна wxGUI в 7.8.5) можно перепроверить только после пересборки. Перевешиваю на сопровождающего. |

Description
Evgeny Ivanitskiy 2021-10-27 13:11:19 MSK