lunduke-paint-git
Build times (auto-updated)
- x86_64: 1m30s (2026-10-10 13:54 UTC, MAKEFLAGS=-j6)
Build times (auto-updated)
- x86_64: 1h50m (2026-10-06 12:37 UTC, MAKEFLAGS=-j6)
check() regression, 2026-10-05 (NOT fixed – needs a decision)
Rebuild during the full -git batch pass (pkgver r52.0644594 ->
r74.9c081cb, +22 upstream commits since the last recorded build) failed in
check(), not build() – everything compiles fine, 13/15 meson tests pass,
test_widgets self-skips as expected (no DISPLAY), but test_text_box fails:
test_text_box: write jpeg
test_text_box: jpeg preview
test_text_box: 2 failure(s)
No more detail available – meson-logs/testlog.txt lived inside the ephemeral
chroot build dir and wasn’t copied back before the chroot was torn down. Unknown
whether this is a genuine upstream regression in the last 22 commits (jpeg
write/preview code) or an environment dependency drift (e.g. a
libjpeg-turbo/gdk-pixbuf2 version bump changing output slightly). Not
investigated further or fixed – disabling just this test (meson suite exclusion)
would be a non-routine check() change, left for the user to decide: skip the
test, bisect upstream’s recent commits, or leave broken for now.
2026-10-10: retried, DIFFERENT check() failures this time – test_text_box now passes
User asked to retry despite the above. Build itself succeeded (compiled clean,
much faster than the recorded 1h50m – failed during check() well before that
point, so the long historical time doesn’t apply to this run). test_text_box
passed this time (not in the failure list at all), but two other tests failed
that weren’t failing on 2026-10-05:
22/24 lunduke-paint:release_binary FAIL exit status 1
stderr: test_release_binary: production binary contains '/workspace'
23/24 lunduke-paint:ora FAIL exit status 1
stderr: test_ora: a multi-frame gif is reported
test_ora: load keeps the first frame and flags the animation
Neither is the jpeg issue from before – this strongly suggests upstream has moved forward past whatever introduced the jpeg regression (now fixed or no longer triggered) and introduced two new issues since:
test_release_binary: checks the built binary doesn’t embed a build-tree path. It now contains the literal string/workspace– not this chroot’s actual build path (/build/lunduke-paint-git/src/build), so this is most likely a path baked in by upstream’s own CI/release tooling (e.g. aSOURCE_DATE_EPOCH-style reproducible-build macro, or a vendored third-party asset/debug symbol built elsewhere as/workspace) rather than something this PKGBUILD’s build dir choice controls. Not root-caused further this pass.test_ora: multi-frame GIF / animation-flag handling in the ORA (OpenRaster) loader – looks like a real upstream regression in recently added animation support, unrelated to package build.
Not fixed or worked around – build still fails, package NOT published this
pass. Flagging back to the user rather than guessing at a fix for either
(especially release_binary, whose root cause isn’t obviously fixable from the
PKGBUILD side). Pinning to an older, known-good commit is one option if this
package is wanted published again before upstream sorts both issues out.
2026-10-10: root-caused both – both are upstream test bugs, not packaging defects
User asked to look into these properly. Reproduced both OUTSIDE the chroot (host
has all deps installed) by cloning from the local source cache
(/data/INSTALL/lunduke-paint-git/lunduke-paint-git, a bare git cache) and
building directly with meson/ninja – confirmed against upstream’s real
GitHub directly too (e451ff3 is still HEAD, neither bug fixed there yet).
test_release_binary: a false positive baked into the test itself, not a CI-path leak.tests/test_release_binary.cppbans the literal substring"/workspace"in the shipped binary, intending to catch a leaked CI build-tree path. But the project has a real source filesrc/doc/workspace.cpp, and ANY build with debug symbols embeds that file’s path in debug info as.../doc/workspace.cpp– which contains/workspaceas a substring purely by coincidence of the filename, nothing to do with any actual leaked path. Reproduced with a stock host build (no special flags):strings build/lunduke-paint | grep "/workspace"->../src/doc/workspace.cpp. This will fail for anyone building with-g, including (presumably) upstream’s own CI unless they strip debug info before running this test.test_ora: the test’s hand-crafted “animated GIF” fixture (tests/test_ora.cpp’skAnimbyte array) is itself malformed. Its packed byte (0x91) declares a 4-color Global Color Table (12 bytes), but the array only supplies distinct color data for 2 – the oversized GCT eats into what was meant to be the Graphic Control Extension block’s introducer bytes (0x21 0xf9 0x04), corrupting the GIF structure from that point on. Arch’s currentgdk-pixbuf2(2.44.8) routes GIF decoding throughglycin(a stricter Rust-based decoder) which correctly rejects the corrupted bytes (glycin-image-rs/src/animated.rs:92: Format error decoding Gif: unknown block type encountered) instead of silently tolerating them the way the old built-in C loader apparently did. Confirmed with a minimal C reproducer callinggdk_pixbuf_animation_new_from_filedirectly on the exact bytes.
Resolved: user approved excluding both (same pattern as test_text_box
above) rather than chasing a fix in either upstream test. check()’s exclusion
grep extended to :(text_box|release_binary|ora)$, with the root cause
documented inline as a comment. pkgrel 2 -> 3. Built+published cleanly,
r87.e451ff3-1 (+ debug package), x86_64.