Hi everyone,
I’ve run into a little issue with my Rust flake. It seems that the x86_64-linux
artifact, created by GitHub Actions and my Rosetta 2-emulated NixOS VM, is missing the “Library runpath.” Here’s what I’m seeing when I check the artifact:
$ readelf -d result/bin/dbrunner
Dynamic section at offset 0x520b18 contains 32 entries:
Tag Type Name/Value
0x000000000000001d (RUNPATH) Library runpath: []
0x0000000000000001 (NEEDED) Shared library: [libsqlite3.so.0]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
This missing runpath causes issues with locating dynamic libraries like SQLite, resulting in the following error:
error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory
On the other hand, the aarch64-linux
artifact does include the runpath:
$ readelf -d result/bin/dbrunner
0x0000000000000001 (NEEDED) Shared library: [libsqlite3.so.0]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]
0x000000000000001d (RUNPATH) Library runpath: [/nix/store/pdj1kvhxj6p3lgz0x9lcs94d9zsv3cgw-sqlite-3.46.0/lib:/nix/store/r9vrnc05rrhr0hz9wm325sgczv0r4xs9-glibc-2.39-52/lib:/nix/store/yw3ac09cs8p2bagsl8ijq5fnxs3mzwma-gcc-13.3.0-lib/lib]
Unfortunately, I haven’t been able to find a solution for this issue. I did come across a similar discussion on NixOS Discourse, but it hasn’t received any responses yet.
The aarch64-darwin
and aarch64-linux
artifacts work fine, but only the x86_64-linux
one seems to be problematic. I am currently working around this by linking everything statically, though it may not be possible for some libraries
You can check out the flake on my GitHub repository, and see the CI error here. I would really appreciate any help in resolving this issue. CI is enabled on the pull request, so feel free to open a PR to test your changes
Thanks a lot!