Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sysext Build refactoring #115

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Sysext Build refactoring #115

wants to merge 2 commits into from

Conversation

t-lo
Copy link
Member

@t-lo t-lo commented Feb 13, 2025

This change refactors the build process, adds library functions for common tasks,

This is a work in progress.

Done:

  • New framework for writing sysext generators
  • bakery.sh central entry point
  • sysext creation scripts only implement function stubs
  • library implements sysext image generation (replacing bake.sh)
  • skeleton directory available to derive new sysext generators from
  • all sysexts can now print upstream release versions available
  • almost sysext generators converted.
  • Readme updated; links to sysext docs fixed (now works from REDME.md and from index.md)
  • tooling for common maintenance tasks added (e.g. for in-depth comparing sysexts)
  • rebuild and compare all sysexts currently published

TODO:

  • adjust release-build.sh to the new build process
  • Use new upstream release version print feature in release-build.sh

Oh, and I added a nerdctl sysext.

Thanks to @jmacdonagh for help with the Tailscale sysext; I added most of the changes from #105.

How to test

Testing done

  • Build all sysexts in at least one version for x86-64 and compared with at least one release from the bakery.
    • sometimes (rarely) binaries differ, I guess these get re-published? Config files and directory layouts always match.
  • tools/ will automate rebuilding all releases and comparing.

@t-lo t-lo requested a review from a team February 13, 2025 18:10
@jmacdonagh jmacdonagh mentioned this pull request Feb 13, 2025
2 tasks
@t-lo t-lo force-pushed the t-lo/scripts-refactoring branch 2 times, most recently from 776f3c0 to dc72ca6 Compare February 17, 2025 16:54
t-lo and others added 2 commits February 17, 2025 18:24
This refactors all sysext build scripts to use a build library, and
provides a central entry point - bakery.sh - for building sysexts.

Sysext build code now only needs to implement core logic; common tasks
are available in library functions. Sysext build scripts only need to
implement a few function stubs.
Also, static files are provided via a directory tree now.

All sysext build scripts have been converted; a function to list
available versions to build (by fetching respective upstream release
information) has been added.
Also, (optional) generation of sysupdate .conf files has been moved from
release script to the build itself.

A skeleton directory has been added to ease creation of new sysexts.

Lastly, a tools directory has been added to build and compare sysexts.
This is also the new home of flix and flatwrap.

Signed-off-by: Thilo Fromm <[email protected]>
Service file was referring to the wrong path so the service could not be
started.
Also, n Upholds= drop-in was added to auto-start the service w/o the
need of activation via Butane.

Co-authored-by: J MacDonagh <[email protected]>
Signed-off-by: Thilo Fromm <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant