zyedidia / eget

Easily install prebuilt binaries from GitHub.
MIT License
982 stars 40 forks source link

Support for musl-based Releases #105

Closed commiyou closed 2 months ago

commiyou commented 3 months ago

I am working on a CentOS 6.3 server, and the system’s built-in glibc doesn’t support GLIBC_2.34. So, is there a musl version of eget that can be released?

zyedidia commented 3 months ago

Could you elaborate on what you mean?

benjaminbauer commented 3 months ago

I guess the OP is referring to cases where binaries are provided for glibc and musl systems. e.g. https://github.com/sharkdp/fd/releases/tag/v10.1.0

When I eget sharkdp/fd, I have to chose if I want the musl or glibc version.

It would be cool, if eget could figure out on what kind of system it runs and pick accordingly, if there are multiple choices.

If neither gnu or musl is present in the asset string, it is 99% accurate to assume the asset is for glibc.

dufferzafar commented 3 months ago

@benjaminbauer eget already does system detection. There's no clear winner among libc/musl. You might want either depending on the conditions.

For cases where I know the musl build works fine, I usually do: eget sharkdp/fd -a musl

benjaminbauer commented 2 months ago

@dufferzafar I am aware of the system detection in terms of OS family and CPU architecture. But the used syscall lib is missing imo. For the majority of linux users/setups it is very clear if they are using musl or glibc, think debian or alpine. Only in a development setup one might have both present. I assume even then, the linker present in the path will use one or the other without explicit configuration.

My (medium) hassle with this in combination with eget is, that I use eget as a cross platform package manger with a central eget.toml. In the cases where a musl asset is present in the release, I have to explicitly select gnu/glibc for linux systems. I also run eget on MacOs, making my eget.toml more messy (if linux, then asset = ["gnu"] - the if is via chezmoi).

Also I cannot set the asset filter globally on linux, because repos that do not have a musl release, also usually do not have gnu/glibc explicitly in the release asset name.

commiyou commented 2 months ago

Sorry, I didn’t clearly explain my requirements. I am working on a CentOS 6.3 server, and the system’s built-in glibc doesn’t support GLIBC_2.34. So, is there a musl version of eget that can be released?

zyedidia commented 2 months ago

Ah, the builds are supposed to be made statically but it looks like in the latest release there was a problem, I will reupload a static version.

zyedidia commented 2 months ago

I just updated the 1.3.4 Linux AMD64 binary (the only non-static binary) on the releases page.