Skip to content

update sharun to 3.7.1 and cross-libc-dlopen to v0.2.8 - #973

Merged
Samueru-sama merged 1 commit into
pkgforge-dev:mainfrom
Nemo-010:deps-only
Oct 23, 2026
Merged

Samueru-sama merged 1 commit into
pkgforge-dev:mainfrom
Nemo-010:deps-only

Conversation

@Nemo-010

Copy link
Copy Markdown
Contributor

Greetings from Port Edwards. Dependency bump only — useful-tools/quick-sharun.sh, one file, no behaviour change outside the two updates. This is the first half of #969, split out so the version bumps can land without waiting on the demo matrix.

sharun 3.5.1 -> 3.7.1

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; sharun runs AppRun.sh with it when it sits next to sharun. 3.7.1 adds the BSD-3-Clause notice for it as dash-COPYING.

quick-sharun now deploys dash. It previously extracted only sharun, so the dash never reached the AppDir and the shell was silently looked up on the host again — the /bin/sh dependency the dash exists to remove:

  • _get_sharun extracts dash into the AppDir root next to sharun and chmods both.
  • dash is extracted separately from sharun. 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 next to sharun.

Checked against three real tarballs: 3.7.1 gives sharun, dash and share/licenses/dash-COPYING; 3.7.0 gives sharun and dash with no empty share/licenses; 3.5.1 warns and keeps a working sharun. In all three lib/sharun-preload ends up with only the helper libs.

cross-libc-dlopen v0.2.7 -> v0.2.8

v0.2.8 carries the ppc64le resolver frame fix (pkgforge-dev/cross-libc-dlopen#60, from the report in #59): glfwd_resolve_asm saved the argument registers inside the ABI's own frame 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 applications on ppc64le.

Checked in the released binary rather than assuming from the version number — the ppc64le gl-fwd.so is the same byte size as v0.2.7, so I decoded the first instruction at glfwd_resolve_asm: v0.2.8 is stdu 1,-288(1), v0.2.7 was the buggy -192.

All checksums for both updates are verified against each release's own .sha256 files.

Tested

Full CI on this branch: 25 jobs, 24 success, 0 failures (the 25th is the release job, skipped on a non-main ref). dash deployed next to sharun and Test went OK in the gtk3 demo, and both new versions download with checksum verified!.

The second half — the emulated-arch demo matrix for riscv64, loongarch64, ppc64le and ppc64 — stays in #969, which is rebased on top of this.


We aim to provide the software that shapes the world of tomorrow.


Requested by Samueru via errand.
Conversation: https://discord.com/channels/1313385177703256064/1561764843965649021

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.
@Samueru-sama
Samueru-sama merged commit d21742a into pkgforge-dev:main Oct 23, 2026
1 check passed
@Nemo-010
Nemo-010 deleted the deps-only branch October 23, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants