-
-
Notifications
You must be signed in to change notification settings - Fork 147
Conversation
Add post-boot configuration for NetworkManager
Mask firstboot
This is more elegant than #808, and builds out the mkosi/sysupdate method from #793 that fully supports ubuntu already. In comparison to my bootc suggestion, this:
- Build:
mkosi build --profile=sysupdateCreate disk image (currently .raw but could be a fake .iso). - Install:
rsync mkosi.output/elementary.raw https://r2.cloudflarestorage.com/installer/x86.isoCopy the image to the download link, so users can download it and write to a USB drive. Live boot session would need to copy this image to disk. Installer would need to be adapted. - Update:
rsync mkosi.output/* https://r2.cloudflarestorage.com/updatesPush image to any static host so all existing ElementaryOS installs can runupdatectl update(settings app would need to be adapted). This checks a static folder at ie. updates.elementary.io (currently set to 10.0.2.2:7676 for testing), downloads anything newer than the currently-booted IMAGE_VERSION, drops it into the inactive A/B slot, and reboots into it on next boot. Even over major versions like 8=>9=>10.
@danirabbit what's the best way to land this? This PR currently replaces the old stuff, but I'm guessing some the 8.1 stable jobs might be run in parallel with the 9.0 sysupdate jobs until 8.1 reaches EOL?
Edit: My proposal, not speaking for @jumpyvi here:
- When ready to merge, make current
os/mainbranch intoarchiveand keep running the 8.1 stable jobs off of thatarchivebranch. - This becomes
main, and starts building the sysupdate isos and updates.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as outdated.
This comment was marked as outdated.
OK so going back on my above suggestions, how about we keep sysupdate on a branch, and add a 4th job on a sysupdate branch then:
- daily-8.1 (main branch)
- daily-9.0 (main branch)
- stable-8.1 (main branch)
- image-9.0 (sysupdate branch this can be a manual kick-off, and not advertised until there's delta updates?)
jumpyvi
commented
Jul 23, 2026
* image-9.0 (sysupdate branch this can be a manual kick-off, and not advertised until there's delta updates?)
We don't know when/if systemd will choose to implement this.
idk if there is any other solutions
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
lewisgoddard
commented
Jul 24, 2026
For S3 compatible storage I would recommend Cloudflare R2. We already use Cloudflare and there is no bandwidth billing there, only storage and action costs.
Thank you! Looks like we were holding it wrong: cost won’t be a problem at 0ドル.60 for 10,000 users downloading a 4gb image once a week on Cloudflare R2 (50 gb, 4 writes per mo, 70% egress, 40,000 reads per mo) - thank you @lewisgoddard .
OK so maybe @jumpyvi we don't optimize for transmission size yet for now then, and optimize for deltas later as sysupdate matures - other projects will have this problem too.
* re-add sysupdate jobs * make only monthly image. * make monthly * update scripts * done * merge * revert * fix typo, PR feedback on build * add date to raw * better update file matching * update sha * update upload.py for cloudflare R2
@jumpyvi got updates working (hosted on a temporary CDN), @jumpyvi has also booted the .raw off of a usb stick (I don't have one that's big enough).
Screenshot_20260724_113227Finally, an initial job has been added @danirabbit - edited upload.py to upload to Cloudflare R2
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
@danirabbit
danirabbit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few more comments/questions
I kind think we should put that install script in a package or something. It doesn't really belong in this repo. But I get it's temporary so I won't block on it
....feature Co-authored-by: Danielle Foré <danielle@elementary.io>
@danirabbit
danirabbit
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I'm happy to move this to testing. Just waiting on re-review from @ryonakano I think :)
ryonakano
commented
Sep 8, 2026
Sorry for my late review, I will take a look at this again when getting back home today.
@ryonakano
ryonakano
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry for my late review. Leaving a few nitpicking comments and questions, otherwise LGTM.
Co-authored-by: Ryo Nakano <ryonakaknock3@gmail.com>
@ryonakano
ryonakano
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the fix, leaving tiny EOF comments.
Uh oh!
There was an error while loading. Please reload this page.
Migrate to mkosi and sysupdate
I got basic boot, missing a few package update to be able to check the full experience with Resolute.
Fixes elementary/settings-daemon#167
Fixes #717
Fixes #724