axodotdev / axodotdev/cargo-dist
Need to build release artifact for an older GNU/Linux version
- Dominant language
- Rust
- Stars
- 2.1k
- Forks
- 149
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 32
Description
Hi,
I need to build my releases against GNU/Linux 2.6.32, for example:
This is what I need
```
$ cargo build --target x86_64-unknown-linux-gnu --release
$ file manta
manta: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3bddb4eb2ebf10ab63469a165b6f7d8263ebdaf7, with debug_info, not stripped
```
The above is what I need which is building an artifact for an older glib version.
My problem is I am switching to cargo dist to manage my github cicd pipeline and I am under the impression that `cargo dist build --target="x86_64-unknown-linux-gnu" --tag=${{ github.ref_name }} --output-format=json ${{ matrix.dist-args }} > dist-manifest.json` is building the artifact for a more recent glib version.
```
$ file manta
$ manta: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3b3fdd0c6820f9e66bbb07fd73ad3e1e95900fbc, for GNU/Linux 3.2.0, with debug_info, not stripped
```
How can I tell `cargo dist` I want it to use GNU/Linux 2.6.32 instead of 3.2.0?
thank you very much
Contributor guide
Research direction
Start by examining the cargo dist build command and the GitHub CI pipeline described in the issue, then compare its GNU/Linux 3.2.0 output with the cargo build result targeting GNU/Linux 2.6.32. Done means the release artifact is built against the older glibc baseline and the file output confirms GNU/Linux 2.6.32 compatibility.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, linux, rust
- Domain
- build-system, devops, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100