Welcome back! In our last update, we mentioned a fix in pureos-meta for some missing essential system components.
This seemed trivial at the time – just add the missing components. However, when the fix went into review and we looked deeper, it turned out to be anything but trivial.
We noticed some time ago that arm64 images for PureOS Crimson were missing some important system components, like sudo
. x86_64 images however, were fine. It’s pureos-minimal’s job to include those components. That’s how we decide what a minimal PureOS system is – we add it to pureos-minimal.
It seemed that the obvious fix was to simply add those dependencies. But in review, Sebastian pointed out that those lists are actually supposed to be generated from another tool, germinate
.
What’s more, those missing components were already listed for germinate:
sudo
and the other packages were already there! But running germinate only included them for x86_64. Why is that?
germinate said these packages were ignored because they were “not in debootstrap”:
minimal/amd64: Skipping package lsb-release (package not in debootstrap)
...
minimal/arm64: Skipping package console-setup (package not in debootstrap)
minimal/arm64: Skipping package kbd (package not in debootstrap)
minimal/arm64: Skipping package sudo (package not in debootstrap)
minimal/arm64: Skipping package lsb-release (package not in debootstrap)
minimal/arm64: Skipping package locales (package not in debootstrap)
minimal/arm64: Skipping package netcat-openbsd (package not in debootstrap)
What this means is that when creating this list of packages, germinate would separately install a minimal PureOS system, then only include dependencies that are part of that minimal system.
If this sounds circular and confusing, that’s because it is. The “minimal system” is defined by pureos-minimal itself. In effect, germinate is filtering pureos-minimal with the prior version of pureos-minimal itself. We couldn’t add new dependencies, because germinate filtered them out.
With the cause now understood, the best solution to unblock PureOS Crimson was to again manually edit the germinate output. Now that we knew what to look for, we also found that there was a minor issue on x86_64 – the lsb_release
package was incorrectly ignored, so that is fixed too. (This wouldn’t affect typical desktop systems because they will get this package via another dependency anyway, but it could have affected minimal systems like our new server images.)
We’ll address the root cause – the circular filtering – outside of a release cycle, since we know there isn’t any further impact to this release.
Looking ahead to our next update for August, the release candidate images for the PureOS Crimson Alpha are up now! As soon as these are tested and documented, we will close the alpha milestone.
If you are feeling adventurous, give them a try and let us know about your experience in the issue!
Model | Status | Lead Time | ||
---|---|---|---|---|
![]() | Librem Key (Made in USA) | In Stock ($59+) | 10 business days | |
![]() | Liberty Phone (Made in USA Electronics) | In Stock ($1,999+) 4GB/128GB | 10 business days | |
![]() | Librem 5 | In Stock ($799+) 3GB/32GB | 10 business days | |
![]() | Librem 11 | In Stock ($999+) 8GB/1TB | 10 business days | |
![]() | Librem 14 | Out of stock | New Version in Development | |
![]() | Librem Mini | Out of stock | New Version in Development | |
![]() | Librem Server | In Stock ($2,999+) | 45 business days | |
![]() | Librem PQC Encryptor | Available Now, contact sales@puri.sm | 90 business days | |
![]() | Librem PQC Comms Server | Available Now, contact sales@puri.sm | 90 business days |