void-linux / void-linux/void-packages

age: aarch64-musl package contains glibc-linked binaries

Open
#58,782 28 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-testing
Dominant language
Shell
Stars
3.4k
Forks
2.8k
Avg merge
2d 5h
Merged PRs (30d)
299

Description

Is this a new report?

Yes

System Info

Void 6.12.67_1 aarch64-musl Unknown uptodate r

Package(s) Affected

age-1.3.1_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

No response

Expected behaviour

Most binaries in age package (version 1.3.1_1) in the aarch64-musl repository seem to be linked against glibc instead of musl.

Actual behaviour

Attempting to run age-keygen, age-inspect or age-plugin-batchpass, gives no such file or directory in shell because they are dynamically linked against /lib/ld-linux-aarch64.so.1 (glibc) instead of /lib/ld-musl-aarch64.so.1.

% file $(which age-inspect)
/usr/bin/age-inspect: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=cc4caed281633f51cf8e2f7dd1878717d383ca41, stripped

% file $(which age-plugin-batchpass)
/usr/bin/age-plugin-batchpass: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=2a32da9daf1b0f18ba93aebf44dceddfbf82303f, stripped

% file $(which age-keygen)
/usr/bin/age-keygen: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=f8a7ffab717b032227ec84c90e687022040faf8d, stripped
Steps to reproduce
  1. Install age package on an AArch64 Void Linux musl system --> xbps-install -S age
  2. Try to run any of --> age-keygen, age-inspect, age-plugin-batchpass
  3. You get zsh: command not found or no such file or directory or the equivalent in your shell.
  4. Try checking what they're linked against using ldd, you'd get something like:
% ldd /usr/bin/age-keygen
	/lib/ld-linux-aarch64.so.1 (0xffffba3d0000)

% ldd /usr/bin/age-inspect
	/lib/ld-linux-aarch64.so.1 (0xffff8a520000)

% ldd /usr/bin/age-plugin-batchpass 
	/lib/ld-linux-aarch64.so.1 (0xffffa4c40000)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the packaging recipe for age-1.3.1_1 and reproduce the issue on an aarch64-musl system. Check age-keygen, age-inspect, and age-plugin-batchpass with file and ldd, then trace how the package is built. Done means these binaries use /lib/ld-musl-aarch64.so.1 and run successfully on the target system.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.