Public bug reported: bubblewrap 0.11.2-2 fails to build from source in Ubuntu stonking on ppc64el.
Regressing architectures (built before with 0.11.1-1, fail now with 0.11.2-2): - ppc64el Build log: - https://launchpad.net/ubuntu/+source/bubblewrap/0.11.2-2/+build/32845084/+files/buildlog_ubuntu-stonking-ppc64el.bubblewrap_0.11.2-2_BUILDING.txt.gz Diagnosis (deterministic matcher): compiler-error — GCC 15 on ppc64el rejects `%s` format arguments in `privileged_op()` (bubblewrap.c lines 1117, 1129, 1178, 1181) that GCC's constant-propagation can prove may be NULL, under -Werror=format-overflow=. The same code compiles clean on amd64/arm64 because GCC's null-reachability analysis differs by architecture. Key errors: ../bubblewrap.c:1117:58: error: '%s' directive argument is null [-Werror=format-overflow=] ../bubblewrap.c:1129:55: error: '%s' directive argument is null [-Werror=format-overflow=] ../bubblewrap.c:1178:47: error: '%s' directive argument is null [-Werror=format-overflow=] ../bubblewrap.c:1181:62: error: '%s' directive argument is null [-Werror=format-overflow=] Upstream context: commit ea185f6f in post-0.11.2 HEAD removes the entire privileged_op() dispatch (large refactor, not cherry-pick safe). Debian unstable carries the same 0.11.2-2; no sync/merge opportunity exists. Proposed fix: replace bare arg1/arg2 with `arg1 ? arg1 : "(null)"` / `arg2 ? arg2 : "(null)"` at the four affected call sites. This tells GCC the expression is non-NULL at the format call, silencing the diagnostic. No runtime effect (the assert(failing_path == NULL) that follows already guarantees non-NULL in success paths). Proposed patch (untested — requires ppc64el test build before upload): --- a/bubblewrap.c +++ b/bubblewrap.c @@ -1114,7 +1114,7 @@ if (bind_result != BIND_MOUNT_SUCCESS) die_with_bind_result (bind_result, errno, failing_path, - "Can't remount readonly on %s", arg2); + "Can't remount readonly on %s", arg2 ? arg2 : "(null)"); @@ -1126,7 +1126,9 @@ if (bind_result != BIND_MOUNT_SUCCESS) die_with_bind_result (bind_result, errno, failing_path, - "Can't bind mount %s on %s", arg1, arg2); + "Can't bind mount %s on %s", + arg1 ? arg1 : "(null)", + arg2 ? arg2 : "(null)"); @@ -1177,9 +1179,11 @@ if (errno == ELOOP) die ("Can't make overlay mount on %s with options %s: " "Overlay directories may not overlap", - arg2, arg1); + arg2 ? arg2 : "(null)", + arg1 ? arg1 : "(null)"); die_with_mount_error ("Can't make overlay mount on %s with options %s", - arg2, arg1); + arg2 ? arg2 : "(null)", + arg1 ? arg1 : "(null)"); Suggested version: 0.11.2-2ubuntu1 (Ubuntu-specific delta; Debian carries the same -2 so a Debian upload is the cleaner long-term fix). Patch to be added as debian/patches/fix-format-overflow-gcc15.patch, listed in debian/patches/series. Patch is untested — human review and a ppc64el test build are required before upload. ** Affects: bubblewrap (Ubuntu) Importance: Undecided Status: New ** Tags: ftbfs stonking update-excuses ** Tags added: ftbfs stonking update-excuses -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2157951 Title: bubblewrap 0.11.2-2 fails to build from source on ppc64el (FTBFS) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/bubblewrap/+bug/2157951/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
