Commit Graph

116 Commits

Author SHA1 Message Date
Hadi Chokr
0d90bcdb08 Hotfix: delete debugroot after making the debug archive and move it out of tempfs-based /tmp to disk-based /var/tmp
This will unbrick the pipeline.
2026-04-03 16:46:05 +02:00
Hadi Chokr
629f02995d Figure out if space is really causing pipeline failures 2026-04-03 09:03:34 +02:00
Harald Sitter
a81c32aa5d typo-- 2026-03-23 23:23:42 +01:00
Hadi Chokr
3086ceda9b Final Hotfix 2026-02-25 18:30:28 +00:00
Hadi Chokr
ea050a7fa5 Hotfix: Upload Artifacts even when test fails 2026-02-25 16:43:51 +00:00
Hadi Chokr
bb550fc9cd Hotfix: Own as the Build User 2026-02-25 11:04:22 +01:00
Lorenz Wildberg
0a91cb11ef use mkosi.output for output directory 2026-02-25 05:49:43 +01:00
Harald Sitter
faed0b8797 build,upload: chop in upload not build
for practical reasons it seems more useful to chop during the upload
stage, as we can directly feed into the s3 from there
2026-02-18 21:20:42 +01:00
Harald Sitter
bcbb2ea254 build: do not wildcard files
we already know their exact name
2026-02-17 05:39:25 +01:00
Harald Sitter
8044e1a144 build: make sure the desync store exists 2026-02-17 04:01:22 +01:00
Harald Sitter
7c9d595c5f upload: moving chopping to build stage
it's where we make the caibx already and have desync installed
2026-02-17 03:04:23 +01:00
Nate Graham
adb21e7ac8 Turn on multilib and re-add steam-devices 2026-02-13 17:23:54 -07:00
Harald Sitter
47f9fdc015 erofs: build without packing magic
CI is still flakey for some reason. let's try without fragments and
ztailpacking. will increase the image size though :(
2025-12-18 05:21:19 +01:00
Harald Sitter
1979911e5a try different compression
zstd seems to have trouble passing right now and blocks the builds
2025-12-12 06:02:20 +01:00
Harald Sitter
e76a93966e erofs: be more verbose now that we log to a file 2025-12-12 04:45:37 +01:00
Harald Sitter
b72fd7b071 build: put erofs output into a file and artifact it 2025-12-11 00:56:15 +01:00
Harald Sitter
29f2a5ba19 Revert "build: disable erofs silencing to find out why it fails"
This reverts commit 90284efb06.
2025-12-11 00:53:46 +01:00
Harald Sitter
90284efb06 build: disable erofs silencing to find out why it fails 2025-12-11 00:18:31 +01:00
Nate Graham
79c829aae8 Move helper scripts from bin to lib
Also remove the _kde-linux prefix for the two scripts intentionally left
in bin.

Resolves #166
Resolves #391
2025-10-16 17:30:47 -06:00
Harald Sitter
2bdf10b4f5 bootstrap,build: pick packages from storage.kde.org instead of cdn.kde.org
storage is where few-consumers data will be exchanged moving forward
2025-10-12 11:53:27 -06:00
Harald Sitter
c6a74f19a5 hack: temporarily rebuild the pacman.conf
currently waiting for a ci image rebuild to land so this gets fixed
properly
2025-10-06 20:02:51 +02:00
Harald Sitter
fa35a74159 build: make sure the pacman cache is up to date
otherwise we may end up retrieving outdated materials
2025-10-06 20:02:51 +02:00
Harald Sitter
24eda82e5f consume caibx file via sysupdate
this is a bit dangerous but necessary for more efficient delta updates.

we must be very careful to avoid a bug in systemd caused by putting
foo.erofs.caibx into the sha256sums. so instead we have foo.caibx that
gets installed with the correct name by sysupdate

we still have the foo.erofs.caibx on the server for backwards compat,
but continue to not put it into the sha256sums
2025-09-17 14:17:24 +02:00
Harald Sitter
bbbf760eb4 use etc-factory instead of tmpfiles
tmpfiles are too inflexible as it turns out

Fixes #261
2025-08-30 15:53:26 +02:00
Harald Sitter
653e1baadd use absolute path to mtimer.json 2025-08-25 18:18:10 +02:00
Harald Sitter
9719237988 try to produce more consistent mtimes
this is a bit of a shot in the dark, but I believe we may have
unnecessary delta in our images caused by the rebuilding of software on
a daily basis. this would result in mtimes changing when the files
actually do not.

a tiny mtimer tool is meant to work around that by consuming an input
json file of mtimes+checksums and if mtimes change it will checksum the
affected file to verify it actually has changed in content as well.
assuming reproducible builds this should result in far less delta in the
erofs and by extension the delta download
2025-08-25 18:06:43 +02:00
Harald Sitter
9d764074bb align chunk sizes
this should make things more amazing. from my testing it looks like
aligning the sizes improves compression and improves caibx generation by
aligning chunk boundaries better.

in a test scenario of adding a single 128M random data file to /usr/lib
this brought the fragmentation from a couple thousand segments down to 8
(of which 5 are in the superblock and the new file appears as large
contiguous chunk delta). the actual download size is a 135M delta
2025-08-23 04:39:43 +02:00
Harald Sitter
652d836d11 don't keep the live efi around
we don't need it. it's already in the raw in case someone needs access
to it
2025-08-20 19:31:37 +02:00
Harald Sitter
7841052916 make a mock erofs addon
a null efi is not good enough for sysupdate
2025-08-19 23:48:03 +02:00
Harald Sitter
90d44c18a1 publish fake artifacts
in the hopes of getting upgrades listed again

the trouble appears to be that since we no longer create the tar or
erofs addon systemd-sysupdate considers the candidates not viable and
just ignores the new versions. by having mock artifacts I hope things
will work again

we'll need to invent some tech to eventually rotate the old artifacts
out of /system though
2025-08-19 23:12:02 +02:00
Harald Sitter
2c7b07b6b7 zstd 15 takes ages
let's just go with the default for now
2025-08-19 20:26:59 +02:00
Harald Sitter
dcff83c55f use correct separator for compression level 2025-08-19 19:26:57 +02:00
Harald Sitter
f9ccfd5935 erofs addon is no more
now always enabled
2025-08-19 19:10:03 +02:00
Harald Sitter
9bcad6a1c1 don't trip over repeat invocations 2025-08-19 18:57:00 +02:00
Harald Sitter
b693deae87 build sysupdated
...but don't enable in systemd; currently opt-in for testing
2025-08-19 15:12:22 +02:00
Harald Sitter
7e6223e467 completely switch to erofs also for upgrades
our generator now always runs to generate the relevant units for erofs
use

tar build has been removed, instead we spend some extra time on zstd
compression of the erofs
2025-08-19 15:10:56 +02:00
Harald Sitter
da4625edf7 tiny hack to override the erofs.addon in the live esp
otherwise we boot with rootflags even though the root is erofs and then
erofs rightly errors out because it doesn't know what a subvol= is
2025-08-18 12:40:25 +02:00
Harald Sitter
a7566c052f efi: use correct path for addon
$EFI contains the boot counter, we'll want a dir without out so use
$EFI_BASE.efi
2025-08-18 11:52:45 +02:00
Harald Sitter
39a565ef3f erofs: put efi addon into factory dir (makes it default for new installations)
this implicitly makes it the default for new installations because
calamares picks up all of the factory efi
2025-08-18 10:36:19 +02:00
Harald Sitter
d09be93da8 erofs: use advanced features to get a smaller image
shouldn't have much practical impact other than smaller images

dedupe would also be nice to use but unfortunately is single threaded
right now and that would cause **substantial** slow down of builds.
hours for in fact. for only about 300mb reduction :(
2025-08-18 09:38:44 +02:00
Harald Sitter
0f16bd594c remove test.raw on success
no need to upload a successful test image. the proper image is enough
2025-08-14 22:08:38 +02:00
Harald Sitter
3f455168d7 generate a desync index for the erofs
allows to desync... in theory anyway
2025-08-14 20:47:46 +02:00
Harald Sitter
c4a62d2971 erofs: drop duplicated flatpak data 2025-08-14 20:47:01 +02:00
Harald Sitter
6152f828a4 add an erofs efi addon
I have high hopes this will make testing easier by simply letting us opt
into the erofs feature on sysupdate
2025-08-07 10:17:17 +02:00
Harald Sitter
c065cfedef debug-- 2025-08-06 14:56:27 +02:00
Harald Sitter
30fc552dfe use the erofs as root partition
this saves us the entire btrfs dance
2025-08-06 14:45:46 +02:00
Harald Sitter
5f6d0dba73 move efi-template to factory dir 2025-08-06 14:02:18 +02:00
Harald Sitter
5f1c5b62f6 add a helper for the btrfs migration
notably this allows us to recursively delete and snapshot things
2025-08-06 12:55:25 +02:00
Harald Sitter
d7636083d5 bootstrap: fold getbuild_date into bootstrap AND build
unfrotunately we need a code copy for this because bootstrap must be
self contained. not too much to worry about since they are both in the
same repo so I expect people will grep for stuff (hopefully :D)
2025-07-22 10:47:56 +02:00
Harald Sitter
96c7c0d139 bootstrap: refactor how build_date gets applied
with ephemeral VMs the base image is old so we need to update the
mirrorlist during build.sh as well. also turn the copies around. now we
always pull copies out of /etc
2025-07-22 10:10:20 +02:00