From 9ce21f3a2d67d68f1a45848589ad4add83eff415 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 11 Oct 2026 13:43:34 +0000 Subject: [PATCH 1/2] CI: Fix missing wxGUI menu strings in the update-i18n job The job did not install wxPython, so gui/wxpython/menustrings.py was left as a header-only stub and about 1100 menu strings were missing from grasswxpy.pot. Install python3-wxgtk4.0 and enable the optional dependencies of the tools listed in the menus, so that their real descriptions are extracted instead of "Module not installed". Also delete menustrings.py and the other generated files in gui/wxpython when a generator fails (.DELETE_ON_ERROR), so that the existence check in 'make pot' fails visibly instead of passing on a stub. This change was developed with substantial AI assistance. --- .github/workflows/periodic_update.yml | 30 +++++++++++++++++++++------ gui/wxpython/Makefile | 4 ++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/.github/workflows/periodic_update.yml b/.github/workflows/periodic_update.yml index e75b9828e01..c8ac68180ab 100644 --- a/.github/workflows/periodic_update.yml +++ b/.github/workflows/periodic_update.yml @@ -86,16 +86,34 @@ jobs: sudo apt update sudo apt install -y --no-install-recommends --no-install-suggests \ gettext \ + libcairo2-dev \ + libfftw3-dev \ + libfreetype-dev \ libgdal-dev \ - libproj-dev - - name: Configure grass with minimal packages + libgeos-dev \ + libgl-dev \ + libglu1-mesa-dev \ + libnetcdf-dev \ + libpq-dev \ + libproj-dev \ + libsvm-dev \ + python3-wxgtk4.0 + - name: Configure grass with the packages needed for the menu strings + # wxPython is needed to generate the menu strings, and the tools + # that are not built get a placeholder instead of their description. run: | ./configure \ + --with-cairo \ + --with-fftw \ + --with-freetype \ + --with-freetype-includes=/usr/include/freetype2 \ + --with-geos \ + --with-libsvm \ + --with-netcdf \ --with-nls \ - --without-cairo \ - --without-fftw \ - --without-freetype \ - --without-opengl \ + --with-opengl \ + --with-postgres \ + --with-postgres-includes=/usr/include/postgresql \ --without-pdal - name: Build grass core run: make -j"$(nproc)" diff --git a/gui/wxpython/Makefile b/gui/wxpython/Makefile index 343599fe01a..8cf0f87a64f 100644 --- a/gui/wxpython/Makefile +++ b/gui/wxpython/Makefile @@ -8,6 +8,10 @@ include $(MODULE_TOPDIR)/include/Make/Python.make DSTDIR = $(GUIDIR)/wxpython +# Do not leave a partial menustrings.py or XML file behind when a generator +# fails (e.g., wxPython is missing), as later steps treat it as complete. +.DELETE_ON_ERROR: + SRCFILES := $(wildcard icons/*.py xml/*) \ $(wildcard animation/*.py core/*.py datacatalog/*.py jupyter_notebook/*.py history/*.py dbmgr/*.py gcp/*.py gmodeler/*.py \ gui_core/*.py iclass/*.py lmgr/*.py location_wizard/*.py main_window/*.py mapwin/*.py mapdisp/*.py \ From c890872db6941c450947b91131f5eaa32226a3fc Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 11 Oct 2026 14:11:38 +0000 Subject: [PATCH 2/2] CI: Note that point cloud tools keep the menu string placeholder Ubuntu 24.04 does not package PDAL or libLAS, so the update-i18n job cannot build r.in.pdal, v.in.pdal and the *.lidar tools. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/periodic_update.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/periodic_update.yml b/.github/workflows/periodic_update.yml index c8ac68180ab..5621d9a27b8 100644 --- a/.github/workflows/periodic_update.yml +++ b/.github/workflows/periodic_update.yml @@ -101,6 +101,8 @@ jobs: - name: Configure grass with the packages needed for the menu strings # wxPython is needed to generate the menu strings, and the tools # that are not built get a placeholder instead of their description. + # Ubuntu 24.04 does not package PDAL or libLAS, so the point cloud + # import and export tools still get the placeholder. run: | ./configure \ --with-cairo \