Skip to content

RFC: Setup alpine skeleton structure

Olliver Schinagl requested to merge oliver/aports:skeleton into master

Currently, alpine has two 'main' packages, the alpine-base meta package and the alpine-baselayout.

What is often seen in bootstrapping examples, is to install the desired packages and then do a git fetch alpine-base and extact the files from etc, to properly 'mark' the bootstrap with proper version information. This technically may not even be accurate, as one did not install the entire alpine distribution as intended, but only a subset.

More importantly, when not using the baselayout (as it for example pulls in openrc and other unneeded dependencies), certain skeleton directories are simply not created (such as /var/lock or /run for example).

For this reason, it makes sense to split off alpine-base(layout) into a alpine-skel package, that generates that absolutely minimally needed components, which no package is technically responsible for creating (unless we demand every package that puts something in /etc creates /etc for example.

The lingering question then however becomes, how do we deal with proper versioning. Alpine follows lsb_release weakly, in that there is /etc/alpine-release and /etc/os-release. For backwards compatibility we best leave this as is, but instead introduce /etc/alpine-core-release, which can be used by the user to identify what the core version this build is based on. Basically, it simply comes from the actual alpine release number.

Merge request reports