membrane_core icon indicating copy to clipboard operation
membrane_core copied to clipboard

Create precompiled builds that work on systems utilizing musl libc

Open Noarkhh opened this issue 1 year ago • 1 comments

Currently precompiled builds work only on systems with glibc, which excludes musl libc systems from benefiting from them, from which the most notable is Alpine.

Problem:

Up until now we used homebrew to get builds for different systems and architectures. However it seems that homebrew needs glibc and therefore I suspect it installs libraries built using glibc.

Solution:

Create a similair sandbox, but instead of homebrew use Alpine's apk package manager. I believe this should be much less complex than our setup with homebrew, because we won't have to deal with MacOS and we already have a good framework of hosting and fetching the builds.

Noarkhh avatar Dec 14 '23 11:12 Noarkhh

apk observations:

  • libs are installed to /usr/lib (sometimes nested)
  • headers are installed to /usr/include
  • for headers to be available most packages need to be installed with -dev suffix
  • there is no option to force uninstall dependencies of packages
  • to get rid of unwanted libs from being published you can use apk info <package_name> --contents | grep ^usr/lib/.*.so to get all libs from an unwanted package (such as alsa-lib)

Noarkhh avatar Dec 15 '23 14:12 Noarkhh