Amethyst Linux

Amethyst Linux is a linux distribution I'm developing. It's mainly a project for myself, but I want to make it available to others in case someone else finds it useful.

One of the key differences that makes Amethyst Linux stand out from mainstream linux distributions is its package management method. Rather than directly installing each package directly onto the root filesystem, packages are stored as files, and mounted together in an overlay according to a configuration file. Multiple different profiles can be specified, making it easy to switch between different collections of packages. The process of mounting packages is handled by the apm utility.

Another key difference is that Amethyst Linux uses musl as the primary libc, whereas the majority of distributions use glibc. I do plan to eventually support glibc as well, specifically to make it possible to run proprietary programs linked against it (steam...), but even in this case musl can still be used for the majority of packages. Furthermore, by using musl instead of glibc, the majority of the packages can be statically linked. Once fully released, Amethyst Linux will provide both statically and dynamically linked packages for most packages, except for those that explicitly can't be statically linked. I'm also considering offering a third option, which is to use dynamic linking, but statically link some of the libraries. In particular, I want to offer this for packages that depend on openssl (or libressl), so that it's easy to update when more security patches are added.

Amethyst Linux also offers LibreSSL as an alternative to OpenSSL. Most distros only provide openssl, or will provide but not link against libressl. I believe this is due to libressl gaining a reputation of being incompatible with openssl in some circumstances, especially since packages rely on the openssl api rather than the libressl api, but the reality is that the current libressl is very compatible with openssl's api. So far the only package that has given me any trouble is python, and that was easily fixed with a couple of patches from OpenBSD (the operating system libressl was originally developed for and is still used by today).

The final way I want to make this distribution different is offering a build system that makes it easy to build customized packages for personal use. In short, I want to make use of the configuration language I made for apm to select the necessary packages and scripts to build the package with a list of features you specify on the command line. It's still a work in progress, but I've been implementing that using apb, the amethyst package builder.

This is similar to the idea of Gentoo, but the problem I have with Gentoo is that USE flags are just too confusing to me. It feels like it's probably one of the things that 'once you know you know', but I feel like the learning curve is too steep for me. Plus I prefer my own package management method, so I wouldn't use Gentoo anyways.