aurupdater

lunduke-paint-git

Build times (auto-updated)


Build times (auto-updated)


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:

  1. 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. a SOURCE_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.
  2. 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).

  1. test_release_binary: a false positive baked into the test itself, not a CI-path leak. tests/test_release_binary.cpp bans the literal substring "/workspace" in the shipped binary, intending to catch a leaked CI build-tree path. But the project has a real source file src/doc/workspace.cpp, and ANY build with debug symbols embeds that file’s path in debug info as .../doc/workspace.cpp – which contains /workspace as 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.
  2. test_ora: the test’s hand-crafted “animated GIF” fixture (tests/test_ora.cpp’s kAnim byte 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 current gdk-pixbuf2 (2.44.8) routes GIF decoding through glycin (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 calling gdk_pixbuf_animation_new_from_file directly 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.