Repository navigation
Conversation
|
Updated to cross-libc-dlopen v0.2.8 ( The bug was Checked in the released binary rather than assuming from the version number: the ppc64le Full matrix run against this tree: 41 jobs, 40 success, 0 failures (the 41st is the release job, skipped on a non-main ref). One |
|
@Nemo-010 rebase |
|
Rebased onto #970 rewrote Re-verified the whole matrix on the rebased tree, since #970 changed the library deployment path that every demo goes through: 41 jobs, 40 success, 0 failures, with One |
sharun 3.7.0 reverted the embedded shell of 3.6.0 and ships the same patched dash as a `dash` file inside sharun+helper-libs-<arch>.tar, which sharun runs AppRun.sh with when it sits next to it. 3.7.1 adds the BSD-3-Clause notice for it as `dash-COPYING`. _get_sharun now extracts sharun and dash into the AppDir root and chmods both. dash is extracted on its own because it is not in tarballs older than 3.7.0 and asking tar for a member that is not there fails the whole extraction; if it is missing the build warns and continues. The early return checks dash too, so an AppDir that already has sharun does not skip the download and end up without a shell. dash-COPYING goes to APPDIR/share/licenses, and only when the tarball has it, so 3.7.0 and older do not leave an empty directory behind. _add_helper_libs deletes dash and the notice from the preload dir, since they belong in the AppDir root. cross-libc-dlopen v0.2.8 carries the ppc64le resolver frame fix: glfwd_resolve_asm saved the argument registers inside the ABI's own header, so glfwd_resolve_one overwrote the saved r5 and r6 on the first call through every slot. Any GL entry point taking a third or fourth integer argument got garbage, which segfaulted GTK3 apps on ppc64le. All checksums for both are updated and each was checked against the release's own .sha256 files.
A build-additional-cpu-arches matrix builds the gtk3, gtk4, sdl and vkcube+glxgears demos for the four newer arches through qemu user emulation, and runs them. The binfmt handlers are registered before the container starts, with the script of anylinux-setup-action, because docker/setup-qemu-action ships no ppc64 (BE) handler. The release job waits for that matrix with the same !cancelled() guard as the template, so a disabled matrix does not block a release. ppc64le, loongarch64 and riscv64 do have vulkan drivers in their repos, we just do not bundle them, so vkcube works there and only BE ppc64 makes glxgears its main binary. vulkan-swrast is installed for the test on every arch, it is packaged for powerpc64 too. The sdl demo keeps plain sdl2, which sdl2-compat provides on riscv64 and loongarch64.
|
Split done. The dependency bumps are now their own PR: #973, one file, This PR now carries only the demo matrix: It is stacked on the deps commit rather than branched from I did not re-run CI after the split: the tree at |
Greetings from Port Edwards. Updates
quick-sharunto sharun 3.7.1 and turns on the emulated arches for four demos. Rebased on currentmain, so it now includes theAPPIMAGE_ARCHoverride and the performance work from #965–#968.sharun 3.7.1
3.7.0 reverted the embedded shell of 3.6.0 and ships the same patched dash as a
dashfile insidesharun+helper-libs-<arch>.tar. sharun runsAppRun.shwith<sharun dir>/dashwhen it is executable, and falls back to the host shells otherwise. 3.7.1 adds the BSD-3-Clause notice for it asdash-COPYING. All six checksums are updated and each was checked against the release's own.sha256files.That matters for the second half: the embedded dash of 3.6.0 was a foreign-arch ELF in a memfd, so under qemu user emulation
binfmt_mischad to run it, and the kernel refuses to hand a close-on-exec fd to an interpreter. Every emulated AppImage died inAppRun.shbefore the app started.quick-sharunnow deploysdash. It only extractedsharun, so without this the dash never reached the AppDir and the shell was silently looked up on the host again, which is the/bin/shdependency the dash exists to remove:_get_sharunextractsdashinto the AppDir root next tosharunand chmods both.dashis extracted separately fromsharun. It is not in tarballs older than 3.7.0, and askingtarfor a member that is not there fails the whole extraction. If it is missing the build warns and continues.dashtoo, so an AppDir that already hassharundoes not skip the download and end up without a shell.dash-COPYINGgoes toAPPDIR/share/licenses, and only when the tarball has it, so 3.7.0 and older do not leave an empty directory behind._add_helper_libsdeletesdashand the notice from the preload dir, since they belong next to sharun.Checked against three real tarballs: 3.7.1 gives
sharun,dashandshare/licenses/dash-COPYING; 3.7.0 givessharunanddashwith no emptyshare/licenses; 3.5.1 warns and keeps a workingsharun. In all threelib/sharun-preloadends up with only the helper libs.Emulated arches
A
build-additional-cpu-archesmatrix builds the gtk3, gtk4, sdl and vkcube+glxgears demos for riscv64, loongarch64, ppc64le and ppc64 through qemu user emulation, and runs them. The binfmt handlers are registered before the container starts, with the script ofanylinux-setup-action, becausedocker/setup-qemu-actionships no ppc64 (BE) handler. The release job waits for that matrix with the same!cancelled()guard as the template.ppc64le,loongarch64andriscv64do have vulkan drivers in their repos, we just do not bundle them, sovkcubeworks there; only BEppc64predates vulkan and makesglxgearsits main binary.vulkan-swrastis installed for the test on every arch — it is packaged forpowerpc64too.The sdl demo keeps plain
sdl2, whichsdl2-compatprovides on riscv64 and loongarch64.Tested
Full matrix run on my fork against this exact tree: 15 of 16 emulated jobs green, including every
vkcubejob with a plainpacman -S vulkan-swrast. The one failure isgtk3-demo-appimage (ppc64le), where the AppImage builds and starts, then exits with code 0 inside the 12s test window — the demo app quitting early, which it also did before this change.Worth noting for review: an earlier revision of this PR needed
--overwritewhen installingvulkan-swraston the four emulated arches, because the debloatedmesashipped mesa's layer files that upstream puts invulkan-mesa-implicit-layers. That was a packaging bug and is fixed upstream in pkgforge-dev/archlinux-pkgs-debloated#95; the rebuilt packages no longer carry those files, so this PR installsvulkan-swrastnormally and the workaround is gone.We aim to provide the software that shapes the world of tomorrow.
Requested by Samueru via errand.
Conversation: https://discord.com/channels/1313385177703256064/1561764843965649021