We've nearly abolished protosnek!

143 in protosnek
238 in volatile

I'm going to build the last few so we can archive protosnek (safety reasons) so we can get that juicy self hosting status =)

Kernel now built with LLVM toolchain

We'll be updating and cleaning up our LLVM packaging soon, however our kernel is now
built using clang/llvm/lld 14.0.5, with full Link-Time-Optimisation and the baseline set to
x86_64-v2 per our global settings.

After introducing the idea of utilizing Fedora's release-monitoring.org project to keep our packages up-to-date, it quickly gained traction and after some discussion we already had a result. All packages now have a separate monitoring.yml next to their stone.yml, which is filled with their respective project ID for the release monitoring. This file can and will also be used for other things like CVE tracking at a later point in time.

Real /usr directory

This one has irritated me for sometime, whereby /usr would be a symlink to /.moss/root/$ID/usr
With the latest moss, we atomically swap a staging tree with /usr and then archive the old transaction.
This leads to a cleaner more standard FS layout =)

Note: This does break use with overlayfs unfortunately but we'll cross that bridge in time.

Update, overlayfs with redirect_dir=on supports moss nicely =)

overlayfs

ermo changed the title to The devlog - jan. '23 .
6 days later

We're now officially self hosting:

  • All bootstrap stages washed out
  • Interim protosnek repository is now completely superseded by volatile, meaning Serpent OS was entirely rebuilt against itself (multiple times) using its own repositories.

Now in the process of removing the protosnek layer from all build/client configurations =)

5 days later

Latest changes

  • We now use @livingsilver94's bindings for zstd, and produce smaller packages.
  • Decompression is somewhat more efficient now too.
  • Build queue calculation is now in summit and can correctly order build jobs across multiple repositories.
  • Policy decision: static .a archives will remain unstripped. We will soon split these into opt-in subpackages to keep -devel package sizes down. We prefer dynamic linking wherever possible and would like to track static linking trivially.

build_ordering

Infrastructure update

Summit is now able to dispatch builds via available Avalanche nodes! Needs some cleaning up with storage and refresh of the .apiToken field using the .bearerToken in AvalancheEndpoint (which is currently not stored when accepting a pairing request). Then we need to make Avalanche send reports back to the Summit instance once the job has completed.

We're on track to get protoinfra released before the week(+end) is out!

5 days later

Apologies for delays to the infrastructure, we've had car issues and some family sickness.
I started back into the swing of it last night by making the pairing system of the infrastructure
generic enough to share between all components.

Queue management is complete, just some last finalisation steps are required:

  • Port all components to SummitContext and PairingManager
  • Generic Server component to facilitate settings + setup mode.
  • Make avalanche report completion to Summit
  • Make summit fetch build logs
  • Integrate vessel + summit

Lots of UX issues, but they can wait.

    13 days later

    Docker is now in the repos. This necessitated the packaging of iptables/nftables as well as some kernel enablement around the BPF syscall and cgroup support. We're one of the first distros to update to the new Docker 23.0.0 too (which I'm personally excited for as it brings zstd-compressed layers as well as reproducible build tooling, amongst many other features).

    Confirmed working:

    • Image pulling
    • Creating various mounts
    • Network bridging and port forwarding
    • Building and pushing images
    • Running containers
    Write a Reply...