Skip to content

Blog

A community that works together, builds together

An image of a welder building something in his workshop

Whilst August is a holiday month around Europe, it’s safe to say it’s been a very busy month around the project, with a lot of progress made across various core tooling repositories.

Following on from our Versioned Repositories phase 2 work that we landed last month, we are developing moss on multiple fronts. tarkah has supplemented our current hardlink driver approach with a reflink strategy for filesystems that support it, along with working on an in-progress development sprint to eventually deliver an EROFS metadata-image based approach that will be fully filesystem agnostic. Fabio is working on moss’ command tree, reorganising the commands we already have but also looking forward to the command functionality we will eventually want to have available. Lastly, Jonathan is also working towards improved search and shell completion functionality that will make moss easier to interact with for both users and packagers alike.

Joey has delivered a number of performance-related improvements to boulder, making packaging quicker and also offering additional optimisation techniques such as BOLT for key packages.

On the distribution side, Reilly has led our expanding packaging team through a repository-wide rebuild to ensure ABI sanity and protect against potential bit rot. Ultimately, this means less risk of broken packages or systems for our early adopters.

In a separate work stream, staff member Bryan is working on a new TUI-based lichen installer that is substantially improved from the current lichen installer that we offer. We are developing it openly with updated versions being shared in our Zulip server. Bryan is taking on board feedback and iterating on the design and functionality with the aim of it being included in a future ISO. Key improvements include automatic disk formatting, system-model-driven installs, btrfs as a root partition option and generally a much more refined TUI navigation experience.

Staff members Alice and NomadicCore have worked on a new Discourse forum that will replace our GitHub Discussions forum. We are thankful to Discourse for sponsoring the project with this server, and to our community members who have been giving us feedback on the layout. It is now ready for wider use by our community.

Finally, we’re continuing to refine the project’s branding with a slight tweak to the project name from AerynOS to aerynOS along with tweaks to logo colours and fonts.

The wider aerynOS team has expanded with a “Trusted Maintainers” role that sits under staff. We have Jaredy899 and K1ngfish3r currently operating in this role and primarily supporting reviews and approvals in our recipes repository.

Their addition to the wider team has made a substantial impact on day-to-day package maintenance and is helping ensure aerynOS stays current. In addition, we have implemented a new Packaging Policy and new Issue and PR templates to support users, maintainers and staff to efficiently and effectively manage our recipes repository.

Package highlights for this month include:

  • CMake 4.4.3
  • COSMIC DE 1.7.0
  • Ccache 4.14
  • Faugus Launcher 2.2.1
  • Firefox 154.0.1
  • GCC 16.2.0
  • Gamescope 3.16.26
  • Glibc 2.43
  • KDE Frameworks 6.29.0
  • KDE Gear 26.08.0
  • KDE Plasma 6.7.4
  • Linux LTS 6.18.48
  • Linux gaming 7.2.2
  • Linux stable 7.1.12
  • Mesa 26.2.1
  • Neovim 0.12.5
  • NetworkManager 1.58.1
  • Node.js 24.20.0
  • PHP 8.5.10
  • QEMU 11.1.1
  • Qt 6.11.2
  • Rust 1.98.0
  • Thunderbird 154.0
  • VS Code 1.135.0
  • Wine 11.16
  • Youki 0.7.0
  • ZFS 2.4.4
  • Zed 1.17.2 … along with sundry additions and updates.

We mentioned EROFS metadata-only images that would operate in a read-only capacity. Work is still ongoing in this area, however in the meantime, we have delivered a more general filesystem tree abstraction within moss. This has then been supplemented with a reflink approach for the filesystems that support it.

The new fstree driver API separates the concept of a filesystem tree from the mechanism used to create and manage it. Our existing native implementation now works through this abstraction, while an overlay-image driver is also being developed and tested.

This is important groundwork for the EROFS metadata-image approach, as it allows moss to work with different filesystem tree approaches without coupling the higher-level state-management code to one particular approach.

The EROFS work is still very much under development and is not yet delivered. There is still testing and integration work to complete before we can consider making it available to users.

The work to restructure the moss command line has continued throughout the month and is currently awaiting PR review before being merged.

We’re progressively moving the CLI over to clap_derive, allowing the command hierarchy to be represented directly through the command structures rather than being manually assembled.

A number of commands will be converted, including repo, pkg, search, state, sync, cache and boot.

We will also be able to simplify some of the existing command behaviour as part of this work. The separate help and version subcommands are being removed in favour of the conventional command-line handling provided by clap.

The work is being tracked in PR #687.

While this is primarily an internal refactoring at present, it gives us a much cleaner foundation for extending moss’ command line as more functionality is added in the future.

The work on moss’ search functionality has also continued in PR #788.

The current focus is on making package and file searching easier to understand and use, with a more coherent moss search interface rather than requiring users to know which specific search command they need.

This approach is exploring how package, provider and file searches should be exposed through the command line while retaining the ability to perform more specific searches where required.

This is still being refined, and we’re using the current development work to make sure the resulting interface is useful for both everyday users and packagers while ensuring it links back into the moss command tree work highlighted above.

We’ve continued making improvements to boulder, our package build tool.

boulder can now emit multiple packages concurrently allowing recipes which produce several packages to make better use of modern multi-core systems while still limiting the amount of concurrent work so that CPU resources remain available for compression.

We’ve also updated the BOLT optimisation configuration used during package builds. This includes moving from the deprecated hfsort+ option to cdsort and removing obsolete optimisation options.

Additional LLVM tuning flags have also been added as part of our continuing work to make better use of the available compiler and linker tooling.

These changes aren’t necessarily visible to users directly, but they help improve the efficiency of the infrastructure we use to build the distribution.

One of the largest pieces of work in the recipes repository over the last month has been our global package rebuild. We last conducted this exercise around May to June last year when we transitioned from our old Dlang-based infrastructure to our newer Rust-based infrastructure.

We had planned to do repository-wide rebuilds on a slightly more frequent basis and had actually mentioned it in our February project update, however other development work took priority. We have now rebuilt all packages across the repository to establish a much more consistent ABI baseline as our current tooling does not automatically ensure ABI sanity as a feature; this is currently managed through ingrained knowledge in our core packagers. This is particularly important as we continue evolving aerynOS’s underlying system libraries and toolchain. Rather than having a mixture of packages built against different generations of dependencies, we want to reach a point where the repository has a well-defined and coherent baseline.

With over 1700 recipes each producing one or more packages, there has been a lot of churn in the repository, which also serves as another stress test for our infrastructure. We are happy to say that it has passed with flying colours.

The new TUI-based version of lichen, our installer, has made substantial progress over the last month. The work is currently being developed on the tui branch of the lichen-installer repository and represents a significant rewrite of the installer interface and underlying installation flow.

As part of the rewrite, we’ve added the installation and summary screens, installation plumbing, networking functionality, account configuration, storage and filesystem selection, remote KDL fetching and a number of other pieces required to make the installer usable end-to-end. One big feature we think early adopters will appreciate is the ability to install aerynOS to a btrfs partition!

We’ve also spent considerable time hardening the installer. This includes improvements around Polkit, ESP and XBOOTLDR handling, password hashing and various installation-flow issues.

The new installer is now being openly tested by members of our community, with development versions being made available through our Zulip server. This testing is particularly valuable because we’re now able to get feedback from people using the installer on real hardware rather than relying solely on internal testing.

There is still feedback from this testing that needs to be worked through, and we continue to iterate on the codebase until it is ready to be included in a future aerynOS ISO.

Until the new lichen-installer is ready, the current ISO (with the old installer) remains the officially supported way to install aerynOS. We do welcome early adopters to try out the new installer, but please be aware that it is being actively developed and should be treated as development code.

We have mentioned in multiple previous blog posts how we would like to reduce our reliance on GitHub. Whilst our assessment of Codeberg will run in the background via our website development work stream, Codeberg does not have a comparable feature to GitHub Discussions. As such, we looked at our wider options and found Discourse to be a good option for our needs and a forum platform that is fairly widely used within the wider open source community.

The Discourse team were kind enough to sponsor the project with a free hosted instance, which we have gladly accepted.

Over the course of the last month, we have worked with a number of our Trusted Contributors to start using the forum and to provide feedback. We believe the forum is now ready for wider public use and can continue to iterate on the design as we get more familiar with it.

One area of feedback has been a concern that having a more traditional forum on top of our Zulip server may end up splitting the community between two platforms and/or give users two places to “keep up” with aerynOS. We hear the feedback but are also conscious that different users will have different preferences on how they wish to interact with the project. If in the medium to long term, we feel that maintaining two community locations isn’t beneficial, we can always adapt our approach again.

You can find the Discourse server here. Sign up, look around and get involved!

A screenshot of the aerynOS Discourse site

Comparison image showing our new logo brand colours on both a light and dark background

During our April blog post we launched our new logomark, moving away from our older LLM-created A symbol. As the project continues to evolve, and as new members with design expertise join our community, we are continuing to refine our branding.

One of the more visible changes is a transition from AerynOS to aerynOS. We are working through our various repositories to ensure consistency with the new spelling but this will take some time. Most of the high-visibility areas, such as our website, have already been transitioned.

Concurrently, relatively new contributor Nona has been working with us on refining the project’s visual identity. The existing triquetra logo is not being replaced. Instead, we are refining the shades of orange and green used by the project and working through the choice of font and kerning to bring the various elements of our branding together more consistently. It’s important to note part of this fine-tuning is also to consider various accessibility needs such as different forms of colour blindness. We take accessibility considerations fairly seriously within this project.

This is a relatively small piece of work compared with the engineering happening elsewhere in the project, but completing these details will allow us to finally bring the visual side of the aerynOS rebrand to a more finished state.

We have ramped up progress on our website redesign over on Codeberg in the last month. Whilst not yet ready to launch, it is nearing “completion”, although we may end up launching the site in stages.

The goal is to eventually deliver a single site that covers what both our dotcom and dotdev currently cover. However, we may split this into two transitions, with the main site transitioning first and our dotdev documentation site moving over at a later stage once we have done a full review of the documentation and brought it in line with the current state of the project.

One important point to note is that we have created a new repository for this work. We had originally created a brand new repository for the Hugo/Hextra redesign but that meant that we had not copied over authorship history from the existing website. We have now forked our existing website and subsequently overlaid our new Hugo/Hextra work on top to maintain as much of the git history as we can.

As part of our website work, we noted that there wasn’t any licence attributed to the code. We had a look at what is considered standard practice in this area for other Linux distributions, as well as the licences used by Astro, Hugo and Hextra, and have decided on licensing our website code as MIT, our blog posts as CC BY-ND 4.0 and our documentation as CC BY-SA 4.0. This has already been applied to our current websites and will carry over to our new site once it is launched.

There are several major pieces of work already in progress which will continue into the next month.

The EROFS metadata-image work will continue towards a production-ready implementation, with the fstree abstraction and overlay-image driver providing the foundation for this work.

The moss CLI refactor will continue through PR #687, while PR #788 will continue to develop the new search experience.

We’re also expecting the new TUI version of lichen to go through additional rounds of development based on the feedback from community testing. Once the outstanding issues have been addressed and the installer has received sufficient testing, we can begin looking towards including it in a future ISO.

There is still plenty to do, but the work across moss, boulder, lichen and the recipes infrastructure is increasingly building on the foundations we have established within the project to date.

If you would like to support the project, you can do this in multiple ways. You can help with documentation, supporting our website redesign in Hugo/Hextra, get involved with deeper code development or join us in our Zulip serverr and help us grow our community!

Outside of this, you can also help support the project financially through one of our supported sponsorship platforms.

We are always open to engagement with hardware vendors and infrastructure partners around the open source community. We have been lucky enough to engage with some very cool businesses to provide hardware or service solutions sponsorship. If you would like to get in touch to discuss any sponsorship opportunities, please reach out to us at contact@aerynos.com.

We are very grateful for your support, be it financial or via project contributions in the form of carefully written bug reports, code contributions, design contributions, documentation updates, general feedback, package updates and overall enthusiasm around the project.

We hope that you will continue showing enthusiasm for our project, and that you will want to get involved in whichever way, shape, or form works for you!

Solid foundations are leading to expanding horizons

A car light trail signifying moving at pace

It’s been several months since our last update in May, and a lot has happened around the AerynOS project in the meantime!

First and foremost, we have tested, landed and productised our Versioned Repositories phase 2 feature, which will serve to firm up AerynOS’ foundations and help us further develop our vision of how to build a Linux distribution.

On the distribution side, Reilly has landed experimental OpenZFS support for data drives alongside significant systemd packaging efforts bringing it from 257.13 to 261.2.

Community member Christian Bendiksen is continuing his work around his Gnist and Malm cli tools for conveniently declaring, applying, and sharing Wayland Window Manager themes, and community member lumi has worked on their aerbox tool, which natively makes use of moss’ system-model concept to quickly create containers gated by access control to network, sound, drives and other hardware.

On the kernel front, we have moved to 7.1.5 for our stable and gaming branches and 6.18.40 for LTS, following a period of elevated vulnerability disclosures in the Linux kernel that required rapid response from the team.

We have also landed NVIDIA driver 610.43.03 in our repositories and have been running a testing programme with community members over the last month that is already yielding positive results.

In our wider project activities, we continue to explore Codeberg as an alternative to GitHub, with our new website built with Hugo using the Hextra theme under active development over there. We are also releasing a new ISO, AerynOS 2026.08.

In terms of our code bases, we have contributors experimenting with improving the moss package search UX, and refactoring some of our shared low-level git and sqlite3 db functionality.

From a development story arc perspective, AerynOS has been deliberately kept under a very tight leash over the last year, as we have focused on strengthening our core tooling and infrastructure code bases. Whilst we are nowhere near “done” with our vision for our tooling, now that our ability to seamlessly deliver updates to our on-disk repository and file formats has been secured, you will see AerynOS deliberately transitioning into a more open and collaborative space for those of you who want to get involved with the project and work on areas that you find fun, interesting and engaging.

This shift in approach has already been evident over the last couple of months, as engagement around the project continues to grow through all of our social media platforms and particularly in our Zulip server.

Reilly has worked on adding OpenZFS data drive support in AerynOS. This means that we now support btrfs, bcachefs and OpenZFS drives for user-managed data drives.

Reilly has tested OpenZFS on one of his drives; however we need help from you all, our community of early adopters, to test OpenZFS on your drives and provide feedback that we can then use to iterate.

As ever, our intrepid contributors and staff have landed a bunch of updates. Please check the recipes repository for the latest version numbers as these change frequently. Highlights include:

  • COSMIC DE 1.5.0
  • KDE Plasma 6.7.3
  • KDE Oxygen icon/sound/wm theme
  • WayVR 26.7.1
    • envision 3.2.0+git.aa84e48e
    • monado 25.1.0+git.983a8a51
  • bazaar 0.9.1
  • bitwarden 2026.7.0
  • bottom 0.14.7
  • buildah 1.45.0
  • carapace 1.7.3
  • cardwire 0.11.1
  • croc 11.0.0
  • cython 3.2.9
  • dankcalendar 0.3.0
  • dankmaterialshell 1.5.3
  • discord 1.0.151
  • dua-cli 2.39.0
  • faugus-launcher 2.0.4
  • firefox 153.0.1
  • fresh 0.4.6
  • gnist 0.3.6
  • gram 3.2.0
  • imagemagick 7.1.2-29
  • intel-media-driver & vpl-gpu-rt 26.2.4
  • kitty 0.48.2
  • linux-gaming/-stable 7.1.5
  • linux-lts 6.18.40
  • malm 0.4.0
  • mangowm 0.15.5
  • mesa 26.1.6
  • networkmanager 1.58.0
  • noctalia 5.0.0-beta7
  • nodejs-22 22.23.2
  • nodejs-24 24.18.1
  • opengamepadui 0.46.0
  • otter-launcher 0.7.6
  • php 8.5.9
  • plezy 2.11.0
  • pnpm 11.19.0
  • qemu 11.0.3
  • ryzenadj 0.19.0
  • signal-desktop 8.21.0
  • sqlite 3.53.4
  • strawberry 1.2.26
  • systemd 261.2
  • tailscale 1.98.10
  • thunderbird 153.0.1
  • typescript 6.0.3
  • vapoursynth R78
  • vscode-bin 1.131.0
  • vulkan 1.4.357.0
  • walker 2.17.0
  • wine 11.14
  • youki 0.7.0
  • yubico-authenticator 7.4.1
  • zed 1.13.1

… along with sundry additions and updates.

A terminal window showing the transition through Versioned Repositories phase 2

The team, spearheaded by efforts from tarkah and ermo, have landed our Versioned Repositories phase 2 development sprint. This feature was included in the Unstable Stream update released on 5 July with users having reported a positive transition experience ever since.

This work involves an upgrade to a new on-disk repository format layout, and a new moss KDL configuration file format. This has been designed to prepare the path for future on-disk format upgrades and package manager capabilities.

Most importantly, this enables moss to upgrade itself seamlessly across what would otherwise be breaking on-disk format changes, with no user interaction required, other than running sudo moss sync -u until no new updates are available.

Users simply keep updating their systems and will get new features as part of their normal update workflow. This moves us closer to a true “install once, update forever” model where we can evolve the capabilities of the system over time without leaving users on older moss versions behind.

We have long considered this feature a foundational must-have for what we are trying to achieve with AerynOS on behalf of current testers and future users, as it enables us to deliver incremental tooling innovations and updates as they become ready for wider consumption, in a completely seamless fashion from a user perspective.

The team received a few reports of issues when trying to verify system states. Upon closer examination, this revealed a small issue in how we look up cached assets in our Content Addressable Store when verifying said store with sudo moss state verify.

However, while digging into that issue, tarkah took the opportunity to add a few extra verification checks that, for now, will slightly reduce blitting speeds, and which will give moss more robust guarantees that assets have been downloaded and cached correctly going forward.

We recommend that people who have previously seen spurious errors when running sudo moss state verify re-run said command with the now updated moss.

While working through the CAS fixes, it turned out that we could trivially add support for reflinks in our native hardlink driver with only a few lines of code. Hence, users using XFS will automatically begin using our native reflink driver that is now shipped with moss. Reflinks enables “thin” files with different names, owners and permissions to all point to the same underlying file content.

Filesystems which do not support reflinks (such as ext4 and f2fs) will instead fall back on the existing hardlink support. However, we have some good news in the pipeline for ext4 and f2fs users as well.

In addition to the new native reflink format support, we are working towards landing a new, optional, read-only EROFS metadata image approach. Apart from being a read-only format, this format will come with the same benefits as the new native reflink format, without the underlying filesystem needing to be reflink capable. Hence, this new format will keep all the benefits our early testers have come to expect from AerynOS.

We will talk more about this in a future blog post when the currently in-development code has been landed and thoroughly vetted.

A moss sync command in terminal showing the changes to systemd

Reilly reworked our systemd package to ensure that manually enabling or disabling systemd units will no longer be overridden on moss package transactions.

As part of this rework, systemd has been updated incrementally from 257.13, to 258.9, 259.7, 260.4, and finally to 261.2. This represents a significant version jump that brings with it a number of upstream improvements and fixes. Alongside the upstream update, we have restructured how systemd is packaged in AerynOS.

Please note the following important changes:

  • Network interface names will change after the next reboot. Please ensure that your configurations are using the new names (e.g., eth0 to enp12s0)

  • Systemd sub-packages: systemd-boot, systemd-coredump, systemd-homed, systemd-container, systemd-oomd, systemd-resolved, systemd-timesyncd, systemd-udev, and systemd-userdbd are now separate packages.

  • systemd-boot, systemd-coredump, systemd-resolved, and systemd-udev will all be installed automatically if you are using pkgsets (if you don’t know what these are you are most likely using them). They will also be installed if a package you are using directly depends on them.

The AerynOS team hasn’t been impressed with the direction of GitHub for some time now. We talked about this in our January 2026 blog post and we have been exploring Codeberg as an alternative git forge in the background.

Over the course of the last few months, the team has moved our new “in development” website branch over to Codeberg in its own repository. You can follow along with the new website development there including raising new issues and/or submitting your own PRs.

As the new website development continues, we will explore whether Codeberg is a viable alternative to GitHub for our needs. This will allow for better understanding of Codeberg’s CI tooling and function as our first public repository shipping “a release-quality product”.

After this, the team will be in a better position to investigate the possibility of bringing additional repositories over to Codeberg. If Codeberg is found to be a viable alternative, it still remains to be seen how a transition from Github to Codeberg would occur.

One outstanding challenge with a full transition away from GitHub is the GitHub Discussions forum. There is no equivalent on Codeberg so the team would need to see whether another forum platform would be required (or whether a forum platform even makes sense for AerynOS on top of our Zulip chat platform).

Website development is now progressing nicely, with design and implementation work happening across Codeberg and in our Zulip Web Development channel.

The new website is being built with Hugo, a fast and flexible static site generator, and uses the Hextra theme as its foundation. We have been building upon Hextra to tailor it to AerynOS’ needs, and we are pleased with how the site is taking shape.

Rather than over-promising on what AerynOS will deliver (something we feel the current site does today), with the new site, we want to be straightforward with potential users whilst improving our web presence both visually and structurally. The new site unifies our main website and documentation into a single cohesive web presence, which addresses a real issue we have observed: a number of new users joining our Zulip server have been aware of our main site but not the documentation site, and we want to eliminate that gap.

We are taking a deliberate approach of focusing on what we have delivered rather than overhyping what we promise to deliver… No more comments of “blazing fast” anything on the site (even though we know AerynOS is already pretty quick)! The site is coming together piece by piece, and we will share more as concrete milestones are reached rather than offering grand projections.

If you have experience developing websites with Hugo and want to contribute, we welcome PRs on the Codeberg repository.

A screenshot of the homepage of the new in progress AerynOS website

Please note that this is just a placeholder as the current focus is on the design rather than the content.

We have landed the NVIDIA driver 610.43.03 version in the repos. This driver version has improved DLSS support and several fixes for system sleep and wake-from-suspend issues.

Over the last month, we put out a call for NVIDIA GPU owners to help us test new driver updates, since no-one on the team owns NVIDIA GPUs. The response has been encouraging: several community members have already stepped up and their contributions are positively impacting our testing and validation process on NVIDIA GPU-based systems. Issues that would have gone unnoticed by the team are now being caught and addressed during testing in our volatile stream thanks to this community effort.

That said, more testers are always welcome. The broader the range of NVIDIA hardware we can test against, the more confident we can be in our driver packaging and integration. If you have an NVIDIA GPU, feel free to join us in the NVIDIA Testing Feedback thread on Zulip.

AerynOS now ships with Linux 7.1.5 on our stable and gaming branches and Linux 6.18.40 for our LTS branch.

Over the last few months, there were a number of Linux vulnerabilities reported that required quick fixes. The team followed along with the discourse and built each new version of the Linux Kernel and landed them into our Volatile repository.

The vulnerability disclosures have somewhat slowed down but in any case, we will continue to deliver the latest point releases as they land into our volatile stream, from where they will be added to our unstable stream once they have been appropriately tested.

In our last blog post we highlighted that we will be moving away from monthly ISO releases as these had mostly served their purpose.

Given the updates to our os-tooling as part of our Versioned Repositories phase 2 work, it is now an appropriate time to release a new ISO, AerynOS 2026.08, incorporating the latest updates without users having to manually update their way through the repository update process.

The new ISO incorporates all the latest updates to date including the latest 7.1 series kernel, updates to GNOME for the live installer and access to Plasma 6.7.3 and Cosmic 1.5.0 as install options thanks to our net installer approach which will always install the latest packages in our unstable repository at the time of installation.

The cdn77 logo

The latest project sponsor for AerynOS is CDN77, who is providing the project with content delivery and storage hosting services.

We’re especially pleased to be working with CDN77 because they’re an independent infrastructure provider with a global network spanning 130 countries. Their extensive Points of Presence ensure fast, reliable service for our users worldwide while aligning with AerynOS’s increasing commitment to European digital sovereignty. CDN77 has a strong focus on performance and reliability, making them an excellent partner for the project. Working with them also helps us diversify our infrastructure and reduce overreliance on large US providers.

We’re currently determining how best to integrate CDN77 into our existing infrastructure setup. We’re considering a tiered approach that allows us to leverage their strengths during this evaluation period. We’ll share more details as our integration progresses.

The AerynOS team has already adopted KDL for our declarative system-model approach, reflecting our view that it is a much better fit for our use case than YAML. Building on this work, and via our collaboration with Kat Marchán, the author of KDL, we are defining a new KDL-based recipe schema to replace our current YAML-based format.

Transitioning our recipe format from YAML to KDL is one of our next major workstreams. Establishing the initial KDL schema will provide the foundation for future enhancements to our core tooling, with new capabilities being introduced through subsequent revisions of the schema.

To support this transition, we have intentionally deferred adding new features to the existing YAML-based recipe format. As the long-term direction has always been to replace it with KDL, continuing to invest in the YAML schema would have meant developing a format we already considered transitional.

The discussions for this are taking place on our Zulip server and on a GitHub issue.

We’re actively seeking contributors across several areas where fresh perspectives would be valuable:

Technical Areas:

  • OpenZFS testing — Help us validate experimental OpenZFS support on real hardware
  • NVIDIA driver testing — If you own an NVIDIA GPU, help us test our NVIDIA open kernel modules and userspace driver 610.43.03 configuration
  • Adaptable concurrent downloads — Help us explore how to optimise moss download performance in wildly different scenarios
  • Declarative container configurations — Help us test and shape KDL-declared container setups
  • Package search UX improvements — Help us make searching for packages and providers easier for everyone
  • Website development — Help us build the new AerynOS website; we’re looking for contributors with experience using the Hugo static site generator

How to Get Involved:

Whether you’re interested in package maintenance, UI/UX, documentation, or testing, there’s room for you. We’ve been deliberately opening up the project to collaborative contributions, and we’d love to welcome you aboard.

Over the last year, the project has been through a significant period of change. As detailed in our October 2025 blog post, we had to update our sponsorship accounts to receive future sponsorship funds once it became clear our previous project leader had permanently stepped away from the project.

This left us in a position where we had to build up our sponsor income from scratch having lost previous sponsors. We are very grateful that many sponsors (old and new) have joined or stayed with us on this journey and our income is again able to cover our fixed project costs with a little surplus each month.

Since the last blog post, we are now in a net positive position having borne the project costs since April 2025 whilst receiving sponsorship income since October 2025. We are very appreciative of all who have ever sponsored the project; we wouldn’t be here without your support! ❤️

Ideally we would like to grow our monthly income (and therefore surplus). Doing so would allow us to:

  1. Support our staff who currently work on a voluntary basis
  2. Scale and/or upgrade infrastructure over time
  3. Consider purchasing hardware for compatibility testing
  4. Fund future initiatives for the betterment of the project

If you wish to discuss other sponsorship opportunities, such as hosting or hardware sponsorship, please reach out to us at contact@aerynos.com.

We are very grateful for your support, be it financial or via project contributions in the form of carefully written bug reports, code contributions, design contributions, documentation updates, general feedback, package updates and overall enthusiasm around the project.

We hope that you will continue showing enthusiasm for our project, and that you will want to get involved in whichever way, shape, or form works for you!

A post we never want to have to make!

An image showing the word “Sorry” with three exclamation marks

This is the post we never want to make, where we made errors with our previous ISO release and are having to take steps to fix the issue, including releasing an updated ISO.

Over the course of April, the team worked on systemd-presets as a workstream we didn’t actually talk about in our April blog post. We thought that all the work had been completed in such a fashion that users wouldn’t see any discernible difference whilst allowing us to move closer to “best-practice” approaches.

Unfortunately, due to the way systemd functions, it doesn’t natively support a global preset-all approach on first boot, one of the preset approaches we had recently adopted. In combination, our lichen installer was creating an /etc/machine-id file in new installs, which is what systemd uses to detect whether a machine is in its first boot or not.

As such, users on existing systems did not have an issue, but new installs could be broken and we did not detect this as part of our ISO testing process.

Thanks to user feedback, we were able to narrow down, identify and resolve the issue within 24 hours of the ISO release, and we had an updated ISO up for testing within our server by the end of the first day of the original release. The fix came via two commits:

  1. Lichen: Fix first boot
  2. Systemd: Preset-all user services on first-boot

Following additional testing with a wider audience on our Zulip server, we have updated the links on our download page to our new ISO so any users downloading the latest ISO won’t see these issues.

How we view the project and our roles in creating it

Section titled “How we view the project and our roles in creating it”

Since taking over stewardship of AerynOS last year, we have consciously reset our own expectations of what we aim to deliver to our users / early adopters. It is a deliberate decision to keep the distro at an alpha tag, as there are certain expectations / deliverables for our core tooling we have not yet met.

We know we haven’t publicly laid out our roadmap, another deliberate decision, but this is all in service of delivering a product that early adopters (and eventually users) can rely on without having to worry about “what the hell might go wrong”.

There is an ethos within the team that we take seriously our craft, that being to create new and modern tooling that will make delivering and maintaining a Linux distribution significantly easier and more ergonomic.

In retrospect, we’re glad that in the year that we have collectively had stewardship of the project, this is the first and only time we have had to rush out a new ISO to fix an issue. We hope to not have this occur again in the future.

In the background, we have been offering a “best effort” approach to supporting NVIDIA GPUs. This is primarily because nobody on the core team are actually using NVIDIA GPUs, and because NVIDIA’s approach to open source leaves a lot to be desired from a package- and distro-maintenance point of view.

For an alpha tag distribution that is primarily focused on dogfooding itself, NVIDIA GPU support has been — and remains — fairly low priority.

That said, Reilly identified an issue with our build ordering that caused the NVIDIA module to fail to work for GPUs that require GSP firmware. With this knowledge, we have implemented a manual fix for now. The underlying issue was already known to the team, we just hadn’t caught that it presented an issue for this particular case. Fixing that issue in our infrastructure tooling is therefore moving up on our list of priorities.

The issue with new installs only presented because of our new ISO release. Had users installed AerynOS from any of our previous ISOs, the distribution would have installed without issue. Last year, we made a decision to move to a monthly ISO cadence as part of a wider “hearts and minds” effort, to demonstrate that AerynOS is in good hands, and that we are able to consistently deliver progress at a time when there was uncertainty of whether the project would be able to survive during Ikey’s initial (and, as it turned out, eventually permanent) absence from the project.

However, as a rolling release distro with a net-installer, it doesn’t strictly matter which ISO you boot to install AerynOS on your system (or in a VM), given that Lichen will always install from the latest unstable stream version of AerynOS. As such, we are reviewing our release cadence and will likely align releases around a couple of key factors:

  1. Major Linux kernel versions for new hardware support
  2. Updates to our installer

which will also have a benefit of reducing bandwidth consumption. This won’t however affect the frequency of our blog posts, as we have found it helpful to communicate often with those following along with the project.

We actually delivered quite a lot in the last couple of days!

Section titled “We actually delivered quite a lot in the last couple of days!”

Package / stack updates for this iteration include:

Updates:

  • linux stable & gaming 7.0.3
  • linux LTS 6.18.26
  • thunderbird 150.0.1
  • asciinema 3.2.0
  • enchant 2.8.16
  • faugus-launcher 1.18.10
  • flatpak 1.16.6
  • glib2 2.88.1
  • gtk-4 4.22.4
  • inetutils 2.8
  • libvirt 12.3.0
  • rssguard 5.1.0
  • wine 11.8

Fixes:

  • boulder: Ensure that failing to set thread priority to SCHED_BATCH does not cause a panic w/ backtrace.
  • nm-connection-editor: It’s now a separate package and can be installed without networkmanager-applet
  • strawberry: Fixed not supporting common audio formats

Added:

  • envision 3.2.0 (VR gaming)
  • gitui: A graphical git client
  • hexyl: A terminal based hex viewer with coloured output
  • pkgset-oxidize: A set of pkgsets for different WM environments designed to work with the oxidize theme tool
  • oxidize: A tool for atomically changing themes in supported WMs
  • yt-dlp 2026.03.17

One of our community members, Christian Bendiksen, has been working on automated theming of window managers over the last couple of months with his oxidize tool.

His work is now ready to be included in AerynOS, and can be used to automate theme setup for the four window manager options we have within AerynOS. There are many popular themes already included, and Christian has taken the initiative to play around with our new brand colour palette to make a new Aeryn theme as well!

This work builds on top of the great work Christian and a number of other dedicated contributors have been putting in to build out AerynOS’ Window Manager credentials with the inclusion of packages to bolster our offering in this area. Taking this further, Christian has also created a package set around oxidize. This package set will help simplify the process of getting set up with a great Window Manager configuration without having to go through all of the steps to get there. The next step is to take this further by utilizing our system-model approach to further develop this approach with the goal being to eventually have a simple preconfigured Window Manager option available out of the box.

Of course, for those wishing to configure their Window Manager experience from scratch, this option is of course available to you as well.

With this blog post, we already have a new 2026.05.2 ISO available on our download page.

It incorporates all the changes and package updates highlighted above and as usual, serves as a vessel for you to use lichen to install AerynOS onto your system or into a virtual machine.

The primary focus on the development side is (still) to attempt to get the Versioned Repos, phase2 feature over the finish line as soon as feasible.

Frankly, we have been so focused on getting the Versioned Repos, phase2 feature right, that we’ve scarcely had the mental bandwidth to focus on anything else from the perspective of our larger development arc.

That said – and assuming we succeed in landing the Versioned Repos, phase2 feature soon – we will then spend some time on sketching out the details of the upcoming avenues of development that will open up as a result.

In parallel to that, we hope to spend some time getting our systemd-preset story straight from a packaging perspective, which will give us the ability to enable services as a packaging operation. This will be especially useful when leveraged via our declarative system-model capabilities.

Outside of financial donations through Stripe and Ko-fi mentioned above, we are always looking for people to get involved with development and packaging efforts and welcome anyone curious about AerynOS to join us in our Zulip server!

If any hardware vendors are interested in sponsoring the project either financially or through hardware sponsorship, this would be warmly received.

If you wish to discuss other sponsorship opportunities, such as hosting or hardware sponsorship, please reach out to us at contact@aerynos.com.

We are very grateful for your support, be it financial or via project contributions in the form of carefully written bug reports, code contributions, design contributions, documentation updates, general feedback, package updates and overall enthusiasm around the project.

We hope that you will continue showing enthusiasm for our project, and that you will want to get involved in whichever way, shape, or form works for you!

Rebranding, Upgrading, and Wallpapering: AerynOS’ April glow-up!

Image captured by a drone camera of wintery snowy fields with a river meandering through the middle

No, this isn’t a suspicious phishing attempt! AerynOS has officially gone through a rebrand 🎉

Over the course of April, we rolled out a new logo and refreshed colour palette across the entire project. It took a bit of time to thread this through every corner of the OS and our web presence, but we’re happy to say it’s now fully in place.

Alongside the new branding, we’ve also been collaborating with community member ziegenmelker5, licensing a selection of his photography for use as wallpapers (and the title image above). A handful of these have already landed in our artwork repository and will show up on user systems after the next sync. On top of that, the team has created an abstract wallpaper inspired by the new logo, so there’s a bit of something for everyone.

On the software development side, a big chunk of April was spent improving our core tooling, especially moss and boulder:

Boulder:

  • Added boulder cache size to show cache size of both boulder and moss.
  • Added boulder cache clean to free up space on system by deleting the cache.
  • Updated boulder recipe update to use ent to check for recipe updates and appropriately update the stone.yaml accordingly.

Moss:

  • moss state prune is now faster and shows a progress bar when removing states.

In addition, we’ve continued our reuse compliance work, extending it from our recipes repository into our os-tools repository. This brings us closer to full compliance across the board.

Lastly, we have expanded our kernel configurations and now offer an LTS, stable and gaming kernel, though switching away from the stable kernel isn’t yet a simple process.

Package / stack updates for this iteration include:

  • COSMIC DE 1.0.11
  • GNOME 50.1
  • KDE Frameworks 6.25.0
  • KDE Gear 26.04.0
  • KDE Plasma 6.6.4
  • dankmaterialshell 1.4.6
  • dash 0.5.13.3
  • docker 29.4.1
  • eza 0.23.4
  • firefox 150.0.1
  • fresh 0.2.23
  • jujutsu 0.40.0
  • kitty 0.46.2
  • kmscon 9.3.5
  • linux-gaming 7.0.2
  • linux-lts 6.18.25
  • linux-stable 7.0.2
  • llvm 22.1.4
  • ly 1.3.2
  • maven 3.9.15
  • mesa 26.0.6
  • niri 26.4
  • ntpd-rs 1.7.2
  • openvpn 2.7.2
  • pipewire 1.6.4
  • qemu 11.0.0
  • python 3.14.4
  • rust 1.95.0
  • thunderbird 150.0
  • uutils-coreutils 0.8.0
  • wine 11.7
  • zig 0.16.0
  • zls 0.16.0
  • zed 1.0.0

… along with sundry additions and updates.

boulder cache subcommands with clean and size options

Section titled “boulder cache subcommands with clean and size options”

Screenshot showing boulder cache size command with output

This month, Joey has added additional subcommands for boulder to calculate cache sizes (both for boulder and moss). Additionally, a boulder cache clean command was added that will delete the cache to help free up space on a user’s system.

This will be particularly helpful for our packagers who after building packages will have increasing amounts of space taken up by the boulder cache. The team itself frequently moves between our unstable and volatile repositories so having the ability to delete the moss cache will also be helpful to ensure predictable outcomes.

Screenshot of a terminal session after running boulder recipe update on the yq package recipe, resulting in the automatic update of the corresponding stone.yaml recipe file

Using our self built ent tool (which integrates with Anitya for release monitoring), we’ve taken another step toward automating package maintenance by combining it with our boulder recipe update command. When invoking this command, boulder will:

  • Check for updates using ent
  • Resolve the source URL of the latest update
  • Download the latest version source archive
  • Appropriately update the stone.yaml recipe

…all in one go.

There’s also JSON output support, which will be useful as we expand our automation tooling further down the line.

For simple package updates, this helps consolidate some of our mundane workflow steps and help make packaging a more streamlined affair on AerynOS, letting packagers focus on logic and problem solving, not administrative minutiae.

Screenshot of a terminal session after running sudo moss state remove 56-77, resulting in a confirmation prompt and log of the deleted state directories

State removal is now faster thanks to parallelization, and it finally provides real-time feedback via a progress bar.

Behind the scenes, moss intelligently handles our deduplicated CAS storage, which is why removal order might look a little unusual, it’s working out which files are safe to delete across shared states.

A new contributor, otherJL0, has made some great improvements to our moss search command:

  • Support for using provider syntax in search, e.g. sysbinary(...)
  • Smarter grouping of results based on name or summary
  • Highlights matched substrings in output by name or summary

This is especially useful for packaging workflows as our packagers can get a better understanding of which packages provide a given binary or library.

Continuation of our Versioned Repository feature set

Section titled “Continuation of our Versioned Repository feature set”

We’ve continued work on phase 2 of our Versioned Repositories feature, and a draft PR with the basic workflow and new configuration format has been opened for moss. The vessel repository manager companion work has been mapped out, but no PR has yet been opened for this.

As mentioned in previous posts, the key goal of phase 2 is to enable moss to upgrade itself seamlessly, which in turn enables us to add support for new repository features and .stone format features without manual intervention.

In practical terms, this moves us closer to a true install-once, update-forever model, where we can evolve the capabilities of the system over time, without leaving users on older moss versions behind.

We hope to land the phase 2 related feature PRs in the near future.

April was a big month for us here at AerynOS, as we made some exciting strides in our rebranding efforts. We’re thrilled to finally roll out a brand-new logomark, a version of the triquetra that was originally proposed by community member Petru Jenach, and later refined by community member platlas when AerynOS was rebranded from SerpentOS last year.

Working closely with platlas and the wider community, we’ve spent the last few months refining the design and selecting a brand new colour palette. Special thanks to sammypanda, who suggested the colour scheme that we ended up using.

So, what’s behind the triquetra? This symbol has deep meaning across cultures, but we’ve chosen it particularly for its Irish roots, as a nod to AerynOS’ founder, Ikey Doherty. The triquetra represents themes of life, death, and rebirth, which felt fitting for a project that’s always evolving. It also symbolises unity and commitment, values that align with our community driven approach.

Design-wise, we’ve divided the three points of the triquetra into two colours: green and orange. The green is all about nature, while the orange ties directly to Rust, the programming language at the heart of our project. We love how the orange section can be interpreted as an ‘O’ and the green section as an ‘S’, coming together to form “OS”. It’s subtle, but we think it’s a nice touch.

We’re really excited about this fresh new look, and the fact that it’s something the whole community helped us shape. We’ve spent the month rolling it out across the operating system and our web presence, and we’re happy with how it all ties together.

New Wallpapers: Bringing Nature to Your Desktop

Section titled “New Wallpapers: Bringing Nature to Your Desktop”

Screenshot of a newly installed virtual machine instance of AerynOS, Gnome edition showing the about this system page with the new default AerynOS wallpaper

Next to the new logomark, we’ve also worked with community member Gabriel Janich (aka ziegenmelker5) to bring some stunning new wallpapers to AerynOS. Gabriel has an amazing collection of photos, and choosing just a handful to feature was no easy task!

In the end, we selected seven that we felt best represented the spirit of AerynOS. You’ll see two of them as the new default wallpapers for Cosmic and GNOME (we have some work to do to properly customise our KDE Plasma defaults). Each one has its own vibe, but all of them bring a touch of nature and tranquility to your desktop.

We hope these new wallpapers, paired with the fresh logo, help make your AerynOS experience even more enjoyable as you dive into the project in the coming days and months.

Screenshot of a newly installed virtual machine instance of AerynOS, Cosmic edition showing the about this system page with the new default AerynOS wallpaper

We mentioned last month that we planned a Python stack upgrade. Due to diligent prior preparation work by Reilly, this stack upgrade landed in a fairly seamless manner with only minor fixes required over the course of a day. The process saw Python being upgraded from 3.11 to 3.14.4 as of this writing.

Our python stack isn’t currently very large (only around 200 packages) which also played a role in the fairly seamless nature of this update. From what we can tell, the updated has enabled our early adopters to continue using Python packages without any regressions.

We have packaged two alternative kernel options, though we have yet to finish the supporting work required to let users easily switch between them:

  1. linux-lts (6.18): Latest LTS release for our most stable offering.
  2. linux-stable (7.0): Follows the latest stable release with very few optimisations for a current stable offering.
  3. linux-gaming (7.0): Also follows the latest stable release, but with patches for handheld gaming and miscellaneous performance optimisations.

Switching away from our linux-stable kernel to either of the other two alternative options isn’t a smooth process just yet. Improving that experience is on our roadmap.

We are releasing our newest Alpha ISO, AerynOS 2026.05, which includes the updates we’ve worked on since the start of April, and which features the 7.0.2 linux-stable kernel.

As usual, this is a Live GNOME ISO that merely serves as a delivery vehicle for our Alpha/PoC lichen installer. Hence, installing AerynOS requires a network connection over which the latest pkgsets can be downloaded and subsequently installed onto a hard drive.

Please note that for now, Ventoy cannot be used to install AerynOS ISOs for which we have submitted a bug report upstream. Not to worry, multiple other options work such as Etcher, DD and GNOME Disks.

The link for our 2026.05 ISO can be found on our download page.

The primary focus on the development side is to attempt to get the Versioned Repos, phase2 feature over the finish line as soon as feasible.

Frankly, we have been so focused on getting the Versioned Repos, phase2 feature right, that we’ve scarcely had the mental bandwidth to focus on anything else from the perspective of our larger development arc.

That said – and assuming we succeed in landing the Versioned Repos, phase2 feature soon – we will then spend some time on sketching out the details of the upcoming avenues of development that will open up as a result.

In parallel to that, we hope to spend some time getting our systemd-preset story straight from a packaging perspective, which will give us the ability to enable services as a packaging operation. This will be especially useful when leveraged via our declarative system-model capabilities.

Over the last year, the project has been through a significant period of change. As detailed in our October 2025 blog post, we had to update our sponsorship accounts to receive future sponsorship funds once it became clear our previous project leader had permanently stepped away from the project.

This left us in a position where we had to build up our sponsor income from scratch having lost previous sponsors. We are very grateful that many sponsors (old and new) have joined or stayed with us on this journey and our income is again able to cover our fixed project costs with a little surplus each month.

As of this month, we are now in a net neutral position having borne the project costs for a year whilst receiving sponsorship income for 6 months. We are very appreciative of all who have ever sponsored the project, we wouldn’t be here without your support! ❤️

Ideally we would like to grow our monthly income (and therefore surplus). Doing so would allow us to:

  1. Support our staff who currently work without compensation (apart from occasional hardware donation)
  2. Scale and/or upgrade infrastructure over time
  3. Consider purchasing hardware for compatibility testing
  4. Fund future initiatives for the betterment of the project

If you wish to discuss other sponsorship opportunities, such as hosting or hardware sponsorship, please reach out to us at contact@aerynos.com.

We are very grateful for your support, be it financial or via project contributions in the form of carefully written bug reports, code contributions, design contributions, documentation updates, general feedback, package updates and overall enthusiasm around the project.

We hope that you will continue showing enthusiasm for our project, and that you will want to get involved in whichever way, shape, or form works for you!

March 2026 project update

Climbing

Another month brings another project update. In some respects, March has felt somewhat quieter than usual for the project. However, in the background, things have been fairly busy on the development front, as we prepare for larger and more visible tooling updates to land in the months to come.

On the packaging front, notable package & stack updates include GNOME 50, KDE Plasma 6.6.3, LLVM 22.1.1, Wayland 1.25.0, QT6.11.0, FFmpeg 8.1 and mesa 26.0.3 which have kept our builders busy with a significant number of package builds and rebuilds. The team mentioned last month that there is a soft-freeze in place for our repository, in terms of accepting new package recipes. This is not a full freeze as packages with little or no reverse dependency rebuild chains are still being accepted where we believe they will prove useful.

The development work this month has centered around the features we offer in terms of automating recipe updates and how we can better support bootstrap builds on the boulder side, along with the usual clean-up and refactoring work across the moss and boulder code bases.

Lastly, we want to take a moment to thank Framework for their on-going hardware sponsorship of our project. This month, they have provided the project with an AMD AI 300 based Framework 16 that Joey Riches is now using as a dedicated device for AerynOS development.

Package / stack updates for this iteration include:

  • GNOME 50.0
  • KDE Frameworks 6.24.0
  • KDE Gear 25.12.3
  • KDE Plasma 6.6.3
  • awww 0.12.0
  • dankmaterialshell 1.4.4
  • firefox 149
  • fish 4.6.0
  • fresh 0.2.20
  • jujutsu 0.39.0
  • linux 6.18.19
  • mangowm 0.12.7
  • mesa 26.0.2
  • pipewire 1.6.2
  • qemu 10.2.2
  • riftbar 0.1.8
  • thunderbird 149.0.1
  • wine 11.5
  • dash 0.5.13.2
  • wlroots 0.19.3
  • wayland 1.25.0
  • maven 3.9.14
  • gparted 1.8.1
  • kitty 0.46.1
  • systemd 257.13
  • zls 0.15.1
  • sudo-rs 0.2.13
  • llvm 22.1.1
  • Qt6 6.11.0

… along with sundry additions and updates.

Gnome Install

This month sees a significant update to the GNOME stack with the delivery of GNOME 50. We have not received any reports of any issues but if you do find any bugs, please report them back to us via GitHub Issues or through our Zulip community.

Some key updates include:

  • Improved parental controls
  • VRR and Fractional Scaling are now stable and enabled by default
  • Wayland only, coming in line with AerynOS’ default of having no X11 session

Plus many more features and fixes.

KDE Install

KDE Plasma has been updated to 6.6.3, KDE Frameworks to 6.24.0 and KDE Gear to 25.12.3.

The latest KDE Plasma update brings:

  • KWin’s screencasting feature has become robust when using PipeWire 1.6 or newer
  • Reduced CPU and GPU load for full-screen windows for screens using more fractional scale factors
  • Improve support for mice with high-resolution scroll wheels in the built-in remote desktop server

Our packaging community has really taken to the Wayland Compositor Environment choice we have in AerynOS. With new packagers getting involved with AerynOS, we are seeing faster package updates and submissions for packages that specifically enhance people’s ability to rice their environments just the way they like them.

A few key updates this month include:

  • mangowm 0.12.7
  • dankmaterialshell 1.4.4
  • elephant 2.20.3
  • bluetui 0.8.1
  • impala 0.7.4
  • awww 0.12.0
  • riftbar 0.1.8

On top of this, several packages have been rebuilt for better performance, support or defaults. The default terminal in our Sway package set has been swapped from alacritty to foot as this is the default terminal proposed by Sway itself. Elephant has had upstream support for moss included and this version has now been added to our own repository. Niri has seen a few upstream improvements backported into our repository also.

As part of our content delivery strategy, we had already moved to using a CDN for delivering updates through moss on our Unstable repository. This month, we have made the transition to also using the CDN for our Volatile repository as well.

The Volatile repository is primary used for those who do their own packaging and/or submit packages to our repository. This change helps speed up downloads for those users as they disproportionately engage with our repositories for packaging purposes.

We have updated our documentation accordingly, so if you do any packaging work on AerynOS, please refer to the updated documentation on our dotdev site.

Moss searching has been updated to add the ability to search by binary provider.

Currently, the command line to do so is moss search --provides some-binary

Example:

$ moss search --provides cat
uutils-coreutils Cross-platform Rust rewrite of the GNU coreutils

The current implementation is somewhat limited, and work is ongoing to improve and generalize this functionality.

Moss works by utilizing a Content Addressable Storage architecture. This means that all package related files are stored in a deduplicated manner in the CAS and then hardlinked to transaction numbers /usr trees. This has the benefit of allowing for all historic states of a system to be kept without significant overhead of duplicating the majority of all data, as would happen with simple snapshots.

Space is not infinite on our systems however, so moss was designed to be able to delete transactions. This could be done, either individually, or by automatically deleting all but the last 10 transactions. Any unique files in the CAS related to these transactions would be deleting, help free up space on a users system.

Thanks to a contribution by one of our long time trusted contributors, AnonAlly, this moss state removal command now has the ability to either delete multiple states by state number or by ranges of states. This is a nice usability improvement as otherwise, users had to individually delete states one at a time. Given that some of our systems are now reaching into the hundreds of states, this is a nice time saving QoL improvement.

Example:

$ sudo moss state remove 2 5-14 17 23-28

After a feature request from Reilly, ermo and tarkah designed a flexible control file format for boulder, which is initially intended to help support bootstrapping efforts for major stack updates.

During these updates, the tests within our recipes can fail though this is expected behavior. In part to conveniently address this failure mode, the control file format enables packagers to override, prepend or append phases within our build recipes.

Initially, we have created a shared control file that outright disables tests, which can be activated by symlinking it in next to recipes whilst bootstrapping them. This will enable initial bootstrapping builds to succeed before final builds are completed with the control file removed and tests therefore re-enabled.

The benefit of the shared control file approach in this instance, is that it does away with the need to go in and manually edit each recipe to disable (and subsequently re-enable) the check phase for the stack that is being bootstrapped.

We have built the control file using the KDL format as part of our wider transition to this file format within our tooling.

To those wondering why we didn’t just add a boulder build flag for this, the reason is that we have a few other future use cases in mind for this feature that are also projected to benefit from a control file, hence settling on the current design.

Unless otherwise stated, all packaging recipes in our recipes repository are available under the terms of the MPL-2.0 license. This was managed both at the repository level in the readme and as a header on individual files.

Over time, the application of our header text has varied, specifically in relation to our move from the SerpentOS name to AerynOS. Fabio has reviewed the best practices for ensuring REUSE compliance and updated all files in our recipe repository to standardize the header text to these best practices.

For anyone doing local packaging work, you will need to ensure you update your local forks of the recipe repository and update boulder to ensure that you are working from the latest version of the files, and that new recipe files are created with the correct header text. You may also need to rebase existing PRs to ensure compliance to the new standard.

In addition, a new CI process has been created to check for this REUSE compliance for package recipes. This will ensure compliance with our licensing standards into the future rather than letting the files deviate over time again.

Framework

Back in August 2024, Framework provided the project (then SerpentOS) with an AMD Ryzen 7840u based Framework 13. At the time, this was helpful for Ikey (our project founder and former project lead) to have a separate and dedicated laptop for working on the project following the appropriate hardware enablement.

Fast forward to 2026, the Framework team have provided additional hardware sponsorship in the form of an AMD AI 300 based Framework 16 laptop which is being utilized by Joey Riches. Our project, whilst still in Alpha has matured significantly since 2024 so once Joey disabled secure boot, the installation occurred without a hitch without any further hardware enablement required.

Joey is coming from a desktop Ryzen 3000 based system so coming to this new Framework 16 has provided a nice upgrade in performance whilst also acting as a dedicated device for this work on AerynOS.

Unfortunately, when Ikey stepped away from the project, we lost access to the Framework 13. However, I (NomadicCore) also personally own an AMD 7840u based Framework 13 so can ensure continued hardware support for the device.

As a team, we like the repairable nature of Framework hardware and appreciate them supporting an up-and-coming distro such as ours!

We are releasing our newest Alpha ISO, AerynOS 2026.03, which includes the updates we’ve worked on since the start of March, and which features the 6.18.20 kernel.

As usual, this is a Live GNOME ISO that merely serves as a delivery vehicle for our Alpha/PoC lichen installer. Hence, installing AerynOS requires a network connection over which the latest pkgsets can be downloaded and subsequently installed onto a hard drive.

We did notice an issue in our 2026.02 ISO whereby it would not boot from Ventoy USB sticks. The issue reoccured with our 2026.03 ISO and we believe we have identified the issue. We have raised an issue with Ventoy and hopefully will have this resolved soon.

The link for our 2026.03 ISO can be found on our download page.

Next month, we are aiming to upgrade our Python stack (which is a notoriously invasive undertaking), along with doing a full repository rebuild across our ~1500 recipes. This effort deliberately coincides with us having landed LLVM 22 this month.

Our last full repository rebuild was completed in June 2025, following the then recent transition to our Rust-based infrastructure. With almost a year of infrastructure and tooling updates, it will be interesting to see how the rebuild process pans out this time.

The AerynOS build infrastructure currently runs with four permanent builders. In addition, it is trivial for us to add temporary builders to help manage peak demand periods.

For this rebuild trek, we will likely add one or two temporary builders to help keep the queue flowing past the larger builds that would otherwise clog up the queue.

Full repository rebuilds like this are important for a couple of reasons:

  • They test our infrastructure and help highlight any deficiencies that we need to address
  • They ensure full repository ABI compliance, to help minimize the risk of packages not working due to incompatible dependencies
  • They help ensure that our recipes and our build artefacts are all valid and up to date
  • They demonstrate that we can rebuild our repository if we need to for whatever reason

The current iteration of our infrastructure is at ~2750 builds, and is no longer a frustration point for the team when submitting packages for build.

This stands in stark contrast to our original Proof of Concept infrastructure that, in the background, became quite fickle and had increasingly become a source of frustration until it was replaced.

This month we have been steadily building towards phase2 of our Versioned Repos feature set. We highlighted this in last month’s blog post, and the aim remains to be to teach moss how to seamlessly upgrade itself on user systems, in a way that automagically enables support for new repository and .stone format features.

This will set us up nicely from an “install once, update forever” perspective, as we will always be able to add new features to our tooling without requiring fresh installs or manual upgrade interventions on user systems.

Outside of financial donations through Stripe and Ko-fi mentioned above, we are always looking for people to get involved with development and packaging efforts and welcome anyone curious about AerynOS to join us in our Zulip server!

If any hardware vendors are interested in sponsoring the project either financially or through hardware sponsorship, this would be warmly received.

If you wish to discuss other sponsorship details, please reach out to us at contact@aerynos.com.

We are very grateful for your support, be it financial or via project contributions in the form of carefully written bug reports, code contributions, design contributions, documentation updates, general feedback, package updates and overall enthusiasm around the project.

In that vein, we would also like to (in this case, once again) give Framework Computers a shout out for their generous support in the form of hardware sponsorship for project members now and in the past.