> if it _really_ needs 2.7, > > MODULES = lang/python > MODPY_BUILDDEP = No > MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2}
It actually wants Python 2.7 as a BDEP, so remove 'MODPY_BUILDDEP = No'. If 2.7 is not installed, xorn's configure script errors out: configure: error: Package requirements (python2 >= 2.7) were not met: Package python2 was not found in the pkg-config search path A comment on one of your patches: > Index: cad/geda-gaf/patches/patch-libgeda_src_scheme_config_c > =================================================================== > RCS file: cad/geda-gaf/patches/patch-libgeda_src_scheme_config_c > diff -N cad/geda-gaf/patches/patch-libgeda_src_scheme_config_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ cad/geda-gaf/patches/patch-libgeda_src_scheme_config_c 20 Mar 2023 > 12:32:59 -0000 > @@ -0,0 +1,22 @@ > +g_strfreev expects its argument to be a NULL-terminated array of pointers. > + > +Index: libgeda/src/scheme_config.c > +--- libgeda/src/scheme_config.c.orig > ++++ libgeda/src/scheme_config.c > +@@ -961,7 +961,7 @@ SCM_DEFINE (set_config_x, "%set-config!", 4, 0, 0, > + int i = 0; > + > + if (scm_is_string (first_s)) { > +- gchar **value = g_new0 (gchar *, len); > ++ gchar **value = g_new0 (gchar *, len + 1); Nice find. > + scm_dynwind_unwind_handler ((void (*)(void *)) g_strfreev, value, > + SCM_F_WIND_EXPLICITLY); > + for (curr_s = value_s; !scm_is_null (curr_s); curr_s = scm_cdr > (curr_s)) { > +@@ -969,6 +969,7 @@ SCM_DEFINE (set_config_x, "%set-config!", 4, 0, 0, > + value [i++] = g_strdup (tmp); > + free (tmp); > + } > ++ value [i] = NULL; /* null-terminate for > g_strfreev */ This hunk is unnecessary. The 0 in g_new0() means the allocation is zeroed (as in calloc(3): https://docs.gtk.org/glib/func.new0.html > + eda_config_set_string_list (cfg, group, key, > + (const gchar * const *) value, len); > + >