bazel-contrib / bazel-contrib/rules_perl
The perl binaries included in the toolchains are not static binaries
- Dominant language
- Starlark
- Stars
- 31
- Forks
- 49
- PR merge metrics
- No merged PRs in 30d
Description
The perl binaries included in the toolchains are not static binaries. Instead, they link against a number of libraries:
```shell-session
ldd perl
linux-vdso.so.1 (0x00007ffc8a09a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f525fd82000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f525fd7d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f525fc96000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f525fc5c000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f525fc57000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f525fa2f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f525fda0000)
```
This makes the rules non-hermetic and prevents usage in clean environments like nixOS.
The issue also has been raised with the source of the perl binaries some time ago: https://github.com/skaji/relocatable-perl/issues/13
Some background:
I want to compile openssl hermetically within bazel.
Contributor guide
Research direction
Start by reproducing the issue with `ldd perl` on the Perl binaries included in the toolchains, then review the linked relocatable-perl issue for the source-side context. Done means the included Perl binaries no longer depend on host libraries and can run in clean environments such as NixOS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100