From 0feacbc9da94145147ef7f89b70728bc1dd39369 Mon Sep 17 00:00:00 2001 From: Jabber Developer Date: Sat, 18 Apr 2026 16:09:03 +0000 Subject: [PATCH] ci: simulate Pikaur flag duplication in Arch Linux CI Inject system flags from /etc/makepkg.conf into the CI environment to detect build collisions caused by Pikaur's configuration bug. Pikaur's cascading logic causes flags from /etc/makepkg.conf to be merged into the build environment. This creates collisions with flags defined in the project's Makefile.am (e.g., duplicate -D_FORTIFY_SOURCE definitions), which can cause builds to fail for users. By exporting these flags in the CI environment, we ensure that any code change that is sensitive to flag duplication will trigger a failure in our Arch Linux CI matrix, preventing broken builds from reaching users. Implementation details: - Detects Arch Linux via /etc/os-release. - Uses a sed-based flattener to handle multi-line variables and trailing backslashes in makepkg.conf. - Exports the flags to the shell environment so that 'configure' and 'make' inherit them naturally, maintaining parity with a real Pikaur session. --- ci-build.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ci-build.sh b/ci-build.sh index c9fdcb0e..73a27e73 100755 --- a/ci-build.sh +++ b/ci-build.sh @@ -204,6 +204,13 @@ case "$ARCH" in "" ) source /etc/profile.d/debuginfod.sh 2>/dev/null || true + + if grep -q 'ID=arch' /etc/os-release 2>/dev/null && [ -f /etc/makepkg.conf ]; then + echo "--> [Parity Mode] Simulating Pikaur collision..." + set -a + source /etc/makepkg.conf + set +a + fi ;; darwin*) # 4 configurations for parallel CI