mapbox / mason

Cross platform package manager for C/C++ apps
BSD 2-Clause "Simplified" License
254 stars 69 forks source link

Support Alpine Linux #562

Open springmeyer opened 6 years ago

springmeyer commented 6 years ago

Mason currently supports most linux systems (like ubuntu, debian, amazon linux, rhel, centos, fedora) and the binaries mason produces run across all those systems. This is possible because:

Alpine Linux is a different story since alpine uses musl for the C standard library rather than glibc. So to support Alpine linux we'll need to:

This is a large lift, but one that may be worthwhile because:

springmeyer commented 5 years ago

This work is still outstanding and would be a useful project. I don't have time to work on it but I did get the mason bash scripts running on alpine recently. https://github.com/mapbox/mason/commit/f6ab273d30f210147a3f44e185f7959e65640f8d and https://github.com/mapbox/mason/commit/c7ea6566e6503e4b6c5e19cb53af08445c931687 were enough to be able to run ./mason install <package> <version> on alpine. The resulting binary was broken still (of course) but at least the bash worked to try to install it.

springmeyer commented 5 years ago

A potential Dockerfile could look like:

FROM alpine:3.8 AS build

ENV CXX=clang++ CC=clang
RUN apk add --no-cache bash ca-certificates curl libstdc++ clang build-base