Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 951863 - media-gfx/gimp-3.0.0 fails to build with app-alternatives/ninja[samurai] (Illegal variable name in environment file meson.build environ_config.set('BIN_PATH', / Failed to parse tag cache: ...)
Summary: media-gfx/gimp-3.0.0 fails to build with app-alternatives/ninja[samurai] (Ill...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Sergey Torokhov
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: parallel-make
  Show dependency tree
 
Reported: 2025-03-22 22:20 UTC by J.Borme
Modified: 2025-04-19 04:10 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Build log (media-gfx:gimp-3.0.0:20250322-220915.log.xz,65.69 KB, application/x-xz)
2025-03-22 22:21 UTC, J.Borme
Details

Note You need to log in before you can comment on or make changes to this bug.
Description J.Borme 2025-03-22 22:20:15 UTC
Gimp-3.0.0 fails to build. I don't know which error is best to report in the title. Tested with gcc-14.2.1_p20250301 (~amd64), with and without (mold+lto), with either of (USE=python_single_target_python3_12 or USE=python_single_target_python3_13)

[ebuild     U ] media-gfx/gimp-3.0.0 [2.10.38-r1] USE="X%* alsa heif jpeg2k jpegxl openexr openmp%* udev webp -aalib -doc -fits% -gnome -javascript% -lua% -mng -postscript -test -unwind -vala% -vector-icons -wmf -xpm (-aqua%) (-debug%)" CPU_FLAGS_X86="(-mmx%*) (-sse%*)" LUA_SINGLE_TARGET="luajit%*" PYTHON_SINGLE_TARGET="python3_13%* -python3_10% -python3_11% -python3_12%"

Last part of the build log:

[3684/3684] /usr/bin/g-ir-compiler libgimp/GimpUi-3.0.gir --output libgimp/GimpUi-3.0.typelib --includedir=/tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0-build/libgimp --includedir=/usr/share/gir-1.0
ninja: job failed: /usr/lib/python-exec/python3.12/meson --internal exe --unpickle /tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0-build/meson-private/meson_exe_in-build-gimp.sh_a0b64b5a656846893273cbb37e2c25c4e40222e8.dat
while executing ['/tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0/tools/in-build-gimp.sh', '-nidfs', '../gimp-3.0.0/gimp-data/images/gimp-splash.xcf.xz', '--batch-interpreter', 'python-fu-eval', '-b', '-', '--quit']
--- stdout ---
INFO: temporary GIMP configuration directory: /tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0-build/.GIMP3-build-config-XNTefu
RUNNING: cat /dev/stdin | /tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0-build/app/gimp-console-3.0 -nidfs ../gimp-3.0.0/gimp-data/images/gimp-splash.xcf.xz --batch-interpreter python-fu-eval -b - --quit

--- stderr ---
GIMP-Warning: Illegal variable name in environment file /tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0/data/environ/meson.build: 

GIMP-Warning: Illegal variable name in environment file /tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0/data/environ/meson.build:  environ_config.set('BIN_PATH', 'PATH

Failed to parse tag cache: No such file or directory
Traceback (most recent call last):
  File "/tmp/var/tmp/portage/media-gfx/gimp-3.0.0/work/gimp-3.0.0-build/plug-ins/python/spyro-plus/spyro-plus.py", line 19, in <module>
    gi.require_version('Gimp', '3.0')
  File "/usr/lib/python3.12/site-packages/gi/__init__.py", line 122, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gimp not available


Reproducible: Always




Portage 3.0.67 (python 3.12.9-final-0, default/linux/amd64/23.0/split-usr/desktop, gcc-14, glibc-2.40-r8, 6.13.7-gentoo-x86_64 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-6.13.7-gentoo-x86_64-x86_64-AMD_Ryzen_9_3950X_16-Core_Processor-with-glibc2.40
KiB Mem:   131819660 total, 101828968 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 22 Mar 2025 18:15:00 +0000
Head commit of repository gentoo: 1ad43e01809561297712147cf54ae2eb150c15bc
Timestamp of repository bentoo: Wed, 19 Mar 2025 21:04:25 +0000
Head commit of repository bentoo: 9655d9d97fcda93b9a44439ba0df58e94017444b

Timestamp of repository guru: Thu, 20 Mar 2025 11:33:31 +0000
Head commit of repository guru: bba937232305c649e1daef0bd83d17259d6ce297

Head commit of repository supertux88: ff31c89a141d5946eabcd2d22ce6678bb3b00fc8

Head commit of repository librewolf: 9691ff789d55814df60dd64bc1a38167f99e206f

Head commit of repository oubliette: fc0860d42b6a2f3985839aab66414200252e5dae

Head commit of repository palemoon: 77300e599732b37683f878407ffa89817da35a69

Head commit of repository pentoo: a0f955ef6d24c083f845612e4fe54df1150fa455

Head commit of repository pf4public: c3610c21d794576b3c0553e86e613e83db91acac

Head commit of repository pg_overlay: 3d9e7fe183ea296a3ceb653e606db0617e4a9499

Head commit of repository science: be8bab628fcaad8f322ae6d75f08c30f20b61e2b

Head commit of repository stuff: f2889b484c9b5f7c6a53338c88b709c1f8f7e768

sh bash 5.2_p37
ld GNU ld (Gentoo 2.44 p1) 2.44.0
app-misc/pax-utils:        1.3.8::gentoo
app-shells/bash:           5.2_p37::gentoo
dev-build/autoconf:        2.13-r8::gentoo, 2.72-r1::gentoo
dev-build/automake:        1.17-r1::gentoo
dev-build/cmake:           3.31.5::gentoo
dev-build/libtool:         2.5.4::gentoo
dev-build/make:            4.4.1-r100::gentoo
dev-build/meson:           1.7.0::gentoo
dev-java/java-config:      2.3.4::gentoo
dev-lang/perl:             5.40.0-r1::gentoo
dev-lang/python:           2.7.18_p16-r2::gentoo, 3.10.16_p2::gentoo, 3.11.11_p2::gentoo, 3.12.9::gentoo, 3.13.2::gentoo
dev-lang/rust:             1.82.0-r102::gentoo, 1.84.1-r1::gentoo
llvm-core/clang:           18.1.8-r6::gentoo, 19.1.7::gentoo, 20.1.1::gentoo
llvm-core/lld:             19.1.7::gentoo, 20.1.1::gentoo
llvm-core/llvm:            18.1.8-r6::gentoo, 19.1.7::gentoo, 20.1.1::gentoo
sys-apps/baselayout:       2.17::gentoo
sys-apps/openrc:           0.56::gentoo
sys-apps/sandbox:          2.39::gentoo
sys-devel/binutils:        2.44::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/gcc:             13.3.1_p20241220::gentoo, 14.2.1_p20250301::gentoo
sys-devel/gcc-config:      2.12.1::gentoo
sys-kernel/linux-headers:  6.13::gentoo (virtual/os-headers)
sys-libs/glibc:            2.40-r8::gentoo
Repositories:

gentoo
    location: /tmp/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: True
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: --quiet --times --omit-dir-times --omit-link-times
    sync-rsync-verify-metamanifest: yes

bentoo
    location: /var/db/repos/bentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/bentoo.git
    masters: gentoo
    volatile: False

guru
    location: /var/db/repos/guru
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/guru.git
    masters: gentoo
    volatile: False

localrepo
    location: /var/db/repos/localrepo
    masters: gentoo
    volatile: False

supertux88
    location: /var/db/repos/supertux88
    sync-type: git
    sync-uri: https://github.com/SuperTux88/gentoo-overlay.git
    masters: gentoo
    volatile: False

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0
    volatile: True

librewolf
    location: /var/db/repos/librewolf
    sync-type: git
    sync-uri: https://codeberg.org/librewolf/gentoo.git
    masters: gentoo
    priority: 50
    volatile: False

oubliette
    location: /var/lib/layman/oubliette
    sync-type: git
    sync-uri: https://github.com/nabbi/oubliette-overlay.git
    masters: gentoo
    priority: 50
    volatile: True

palemoon
    location: /var/lib/layman/palemoon
    sync-type: git
    sync-uri: https://github.com/deu/palemoon-overlay.git
    masters: gentoo
    priority: 50
    volatile: True

pentoo
    location: /var/lib/layman/pentoo
    sync-type: git
    sync-uri: https://github.com/pentoo/pentoo-overlay.git
    masters: gentoo
    priority: 50
    volatile: True

pf4public
    location: /var/lib/layman/pf4public
    sync-type: git
    sync-uri: https://github.com/PF4Public/gentoo-overlay.git
    masters: gentoo
    priority: 50
    volatile: True

pg_overlay
    location: /var/lib/layman/pg_overlay
    sync-type: git
    sync-uri: https://gitlab.com/Perfect_Gentleman/PG_Overlay.git
    masters: gentoo
    priority: 50
    volatile: True

science
    location: /var/lib/layman/science
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/proj/sci.git
    masters: gentoo
    priority: 50
    volatile: True

stuff
    location: /var/lib/layman/stuff
    sync-type: git
    sync-uri: https://github.com/istitov/stuff.git
    masters: gentoo
    priority: 50
    volatile: True

Binary Repositories:

binhost
    priority: 9999
    sync-uri: https://ftp.rnl.tecnico.ulisboa.pt/pub/gentoo/gentoo-distfiles/releases/amd64/binpackages/23.0/x86-64-v3

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -flto -march=native -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -flto -march=native -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
DISTDIR="/tmp/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --keep-going --jobs 1"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe -flto -march=native -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-ignore-signature binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -flto -march=native -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
GENTOO_MIRRORS="ftp://ftp.halifax.rwth-aachen.de/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="fr_FR.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -fuse-ld=mold"
LEX="flex"
MAKEOPTS="-j22"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--quiet --times --omit-dir-times --omit-link-times"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/tmp/var/tmp"
RUSTFLAGS=" -Clinker-plugin-lto"
SHELL="/bin/bash"
USE="X a52 aac acl acpi alsa amd64 avif bluetooth branding bzip2 cairo cdda cdr cdrom cet crypt cuda cups dbus dri dropbox dts dvd dvdr elogind encode exif ffmpeg flac gdbm gif gmic gmp gpm gtk gui iconv icu ipv6 jpeg jpeg2k jpegxl jumbo-build kde kf6compat lcms libnotify libtirpc lto lzma mad mp3 mp4 mpeg multilib ncurses nls nvenc ogg openexr opengl openmp opus pam pango pcre pdf png policykit ppds qml qt5 qt6 raw readline replaygain sdl seccomp sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb v4l vaapi vdpau vim-syntax vorbis vpx vulkan webp wxwidgets x264 xattr xcb xft xml xv xvid zlib zstd" ABI_X86="64" ADA_TARGET="gcc_14" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" L10N="fr fr-FR" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LLVM_TARGETS="NVPTX" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PERL_FEATURES="ithreads" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby25" SANE_BACKENDS="pixma net" VIDEO_CARDS="fbdev vesa dummy nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PYTHONPATH, RANLIB, READELF, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 J.Borme 2025-03-22 22:21:55 UTC
Created attachment 921914 [details]
Build log
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-03-23 08:14:52 UTC
> Found ninja-1.9 at /usr/bin/ninja

What's this about?
Comment 3 J.Borme 2025-03-23 13:35:42 UTC
(In reply to Sam James from comment #2)
I had USE="samurai -reference" app-alternatives/ninja-1.
"samu --version" reports 1.9 (dev-build/samurai-1.2-r3)

If I now emerge USE="-samurai reference" app-alternatives/ninja-1, media-gfx/gimp-3.0.0 builds flawlessly. (Thanks!)

I had dev-build/samurai because an issue with dev-build/ninja prevents the build of ungoogled-chromium (from PF4Public overlay), see https://github.com/PF4Public/gentoo-overlay/issues/406

I'll now have to remember which packages fail with which alternative. (Or ideally the Gimp ebuild could so something about it.)
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-03-24 05:41:19 UTC
The funny thing is, I was actually thinking about that, then saw the samurai version in-tree is 1.2, and it didn't occur to me that samurai claims to be ninja-1.9 (which in hindsight makes complete sense, as there's a grammar and so on involved too).
Comment 5 Sergey Torokhov 2025-03-24 12:32:19 UTC
Currently I see the minimal requirement for Gimp is >=meson-0.61.0 while the newest meson has extra dependency >=ninja-1.8.2. Maybe Gimp uses some spicific features that requires more recent ninja package (is it possible at all?) or samurai  implementation isn't fully compatible with ninja-1.9.
Comment 6 Sergey Torokhov 2025-03-24 12:39:26 UTC
J.Borme, the samurai-1.2 was released in 2020 but upstream is still active. Maybe Gimp will build against samurai-9999 live ebuild. Could you please check it on your system too?
Comment 7 J.Borme 2025-03-24 20:47:32 UTC
(In reply to Sergey Torokhov from comment #6)

It fails identically with samurai-9999. It reports itself as "ninja-1.9.0" (instead of "ninja-1.9").
Comment 8 hugegameartgd 2025-03-27 21:50:08 UTC Comment hidden (offtopic)
Comment 9 hugegameartgd 2025-03-27 21:50:32 UTC Comment hidden (offtopic)
Comment 10 Navid Zamani 2025-03-31 00:12:01 UTC Comment hidden (offtopic)
Comment 11 Sergey Torokhov 2025-04-02 18:23:30 UTC
Usually upstream refers to Build Dependencies and Instructions [1][2] where under Linux build instructions is stated to use "ninja" command to build babl, gegl and gimp. So I doubt upstream will want to fix this issue.
And currently I'm aware to add 'app-alternatives/ninja[reference]' as BDEPEND directly into ebuild.

As for "--load-average make option" problem maybe it worth to restrict threads within ebuild or etc.

P.S.
Also since weekend and next week I will out of my PC and I won't be able to reproduce issue before report to upstream.

[1] https://developer.gimp.org/core/setup/build/
[2] https://developer.gimp.org/core/setup/build/#gimp
Comment 12 Navid Zamani 2025-04-10 10:33:30 UTC Comment hidden (offtopic)
Comment 13 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-10 10:34:31 UTC Comment hidden (offtopic)
Comment 14 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-10 10:35:24 UTC Comment hidden (offtopic)
Comment 15 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-10 10:36:42 UTC Comment hidden (offtopic)
Comment 16 Navid Zamani 2025-04-19 01:25:16 UTC Comment hidden (offtopic)
Comment 17 Navid Zamani 2025-04-19 01:52:20 UTC Comment hidden (offtopic)
Comment 18 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 02:04:48 UTC Comment hidden (offtopic)
Comment 19 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 02:06:06 UTC Comment hidden (offtopic)
Comment 20 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 02:55:53 UTC
Started looking a bit:
```
$ git clone https://gitlab.gnome.org/GNOME/gimp/ && cd gimp
$ git submodule update --init
# Workaround for an unrelated issue (which we need to fix in Gentoo, not upstream)
$ sed -i -e 's/mypaint-brushes-1.0/mypaint-brushes-2.0/' meson.build
$ CFLAGS="-O2 -std=gnu17" NINJA=samu meson setup build -Dvala=disabled
$ samu -C build
```
reproduces it at least.

```
samu: job failed: /usr/lib/python-exec/python3.13/meson --internal exe --unpickle /tmp/gimp/build/meson-private/meson_exe_python3.13_41dcab7ef590c906d9424c0768e38163e58b2cf1.dat
while executing ['/usr/bin/python3.13', '/tmp/gimp/tools/in-build-gimp.py', '-nidfs', '../gimp-data/images/gimp-splash.xcf.xz', '--batch-interpreter', 'python-fu-eval', '-b', '-', '--qui
t']
--- stdout ---
INFO: temporary GIMP configuration directory: /tmp/gimp/build/.GIMP3-build-config-id02y8
RUNNING: /tmp/gimp/build/app/gimp-console-3.0 -nidfs ../gimp-data/images/gimp-splash.xcf.xz --batch-interpreter python-fu-eval -b - --quit
Command failed with exit code 69: ['/tmp/gimp/build/app/gimp-console-3.0', '-nidfs', '../gimp-data/images/gimp-splash.xcf.xz', '--batch-interpreter', 'python-fu-eval', '-b', '-', '--quit
']

--- stderr ---
GIMP-Warning: Illegal variable name in environment file /tmp/gimp/data/environ/meson.build:

GIMP-Warning: Illegal variable name in environment file /tmp/gimp/data/environ/meson.build:  environ_config.set('BIN_PATH', 'PATH

Failed to parse tag cache: No such file or directory
[...]
```

So, first question is where that illegal variable name message comes from and why it's parsing a meson.build.

Apparently that's from gimp_environ_table_load_env_file in app/plug-in/gimpenvirontable.c at:


      if (! gimp_environ_table_legal_name (name))
        {
          g_message (_("Illegal variable name in environment file %s: %s"),
                     gimp_file_get_utf8_name (file), name);
          g_free (buffer);
          continue;
        }

... which does:

static gboolean
gimp_environ_table_legal_name (gchar *name)
{
  gchar *s;

  if (! g_ascii_isalpha (*name) && (*name != '_'))
    return FALSE;

  for (s = name + 1; *s; s++)
    if (! g_ascii_isalnum (*s) && (*s != '_'))
      return FALSE;

  return TRUE;
}

so the ' character upsets it.
Comment 21 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 03:08:56 UTC
(s/build/buildme/ or some out-of-source build dir, as build/ is a real directory in the source-tree.)

Interestingly, re-running `samu -C buildme --verbose` after the first failure works without changing anything else.
Comment 22 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 03:14:44 UTC
(In reply to Sam James from comment #21)
> (s/build/buildme/ or some out-of-source build dir, as build/ is a real
> directory in the source-tree.)
> 
> Interestingly, re-running `samu -C buildme --verbose` after the first
> failure works without changing anything else.

That might point to it being a parallel build issue, given samu schedules differently to ninja.
Comment 23 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 03:28:56 UTC
This fixes the illegal variable noise, but not the build failure:
``
--- a/meson.build
+++ b/meson.build`
@@ -1990,7 +1990,7 @@ if meson.can_run_host_binaries() and have_gobject_introspection

   gimp_run_env.set('GIMP_TESTING_INTERPRETER_DIRS', meson.global_build_root() / 'plug-ins/python/')
   gimp_run_env.append('GIMP_TESTING_INTERPRETER_DIRS', meson.global_build_root() / 'extensions/')
-  gimp_run_env.set('GIMP_TESTING_ENVIRON_DIRS', meson.global_source_root() / 'data/environ/')
+  gimp_run_env.set('GIMP_TESTING_ENVIRON_DIRS', meson.global_build_root() / 'data/environ/')

   # Makes build errors output way less polluted, making easier to debug
   gimp_run_env.set('GIMP3_LOCALEDIR', meson.global_build_root() / 'po-plug-ins')
```
Comment 24 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 04:09:46 UTC
I think the target which makes gimp-splash.xcf.xz is missing at least one dependency, maybe two, on the python-fu-eval plugin (or whatever installs the gir/namespace file for that), and possibly other plugins.
Comment 25 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-04-19 04:10:01 UTC
It's not clear to me yet how to specify deps on the plugins from inside gimp-data.