Commit Graph

30 Commits

Author SHA1 Message Date
Harald Sitter
f9d82550cb bootstrap: install wget for ci image bootstrapping
wget is used to download the gitlab-runner in the outer script from
sysadmin/ci-images
2025-10-06 20:02:51 +02:00
Harald Sitter
8244df407b bootstrap: prefer our repos over all others
this should allow us to override packages more conveniently without
having to fiddle with the package versions at all
2025-10-06 17:38:13 +02:00
Harald Sitter
8d1906ab44 bootstrap: store the pristine pacman.conf
we can't have the packages pipeline use the linux equipped file because
then it'd download the binary packages instead of building them, risking
BIC crashes and the like
2025-07-22 12:03:27 +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
Harald Sitter
6a3d390d32 bootstrap: put mkosi into /opt
/tmp would disappear between boots in VM
2025-07-22 10:08:22 +02:00
Harald Sitter
a39c00fa52 bootstrap: make sure to populate the key
VM images don't come populated
2025-07-22 10:08:03 +02:00
Harald Sitter
bc254ff413 refresh twice to force a refresh
prevents random 404 errors, hopefully
2025-05-04 21:47:31 +02:00
Hadi Chokr
eef2c1ac6f Use Arch Linux Archive Snapshot for Image Builds
This is the second PR to fix the issue i am assigned to. It depends on the first PR at kde linux packages.

(Closes #148)
2025-05-04 18:50:04 +02:00
Hadi Chokr
03b2c1adec Fix Alphabetical Odering in bootstrap.sh 2025-05-01 11:20:43 +00:00
Harald Sitter
dc5feaf51a clean up btrfs subvolumes in an after script
hopefully prevents most of the problems we've had with server space
2025-04-30 18:55:45 +02:00
Harald Sitter
d1319c0603 implement a very trivial basic test for the image
this will hopefully prevent super obviously broken images from making it
onto the server at all
2025-04-30 18:55:45 +02:00
Harald Sitter
7cad3b86ed use a pristine pacman.conf
the one in the docker image has been made to not extract localization
tech as of late. seeing as we need (some) localization data to generate
locales and whatnot we need to restore the original config
2025-03-07 19:34:49 +00:00
Ian Monroe
6cbe5099cf move flatpak install from chroot to container
cleaner, allows caching
2024-12-15 14:29:44 -08:00
Ian Monroe
5c750c9918 only run reflector when needed 2024-12-15 22:29:08 +00:00
Ian Monroe
9a3481e59e install all packages outside the chroot
use the mkosi sandbox to install, so now the arch linux packages
are all cached properly
2024-12-15 15:42:09 +00:00
Bruno Pajdek
fa24dbc1eb Improve bootstrap.sh
archlinux-keyring is a part of base already. Good global mirrors are already defined in Arch Docker images, the explicit 23m mirror stuff is unnecessary.
2024-11-28 20:22:40 +00:00
Harald Sitter
a63ec33d5d throw away useless packages from build env
s3cmd is no longer used because we don't use s3 storage.

vim was never used
2024-11-06 02:01:04 +01:00
Harald Sitter
ce692b289f create torrent file for raw image 2024-11-06 02:01:01 +01:00
Harald Sitter
26f6290687 shrink btrfs to the actually necessary size
this doesn't yet give any gains because partition resizing also needs
figuring out, but it's a start.

specifically we now deduplicate files, balance extents and shrink the
actual filesystem as much as possible.

in a second step we could then chop off the end of the partition table
to actually reduce the image size. except it is more difficult than one
might think. perhaps we should construct a new table entirely instead.
something to figure out
2024-11-05 19:46:58 +01:00
Harald Sitter
1fdb021f51 print compression diagnostics
something isn't quite right with the compression coverage, technically
we should have force compression, but effectively we have a large chunk
of data that is not compressed
2024-11-05 03:37:38 +01:00
Harald Sitter
13e836d523 use correct package for scp 2024-10-09 22:13:20 +02:00
Harald Sitter
64349757f9 add missing dep on scp
used in the upload script
2024-10-09 19:26:30 +02:00
Harald Sitter
2a26e15594 move uploads to files.kde.org
this requires that we vacuum uploads automatically so there's a helper
for that now. hopefully it works :D
2024-10-09 17:22:38 +02:00
Harald Sitter
a7ab8ba327 clone mkosi into tmp
this way it won't fall over when running the build on the same checkout
multiple times
2024-08-24 16:54:49 +02:00
Harald Sitter
bad477d078 use mkosi from git
current release is a bit defective for arch systems
2024-07-18 22:36:16 +02:00
Harald Sitter
3900b8467a disable key refreshing
unclear if it is needed and it is dreadfully slow. let's try with just
--init for now.
2024-07-18 22:36:01 +02:00
Harald Sitter
d5c8ba6e9b make sure pacman keys are in order 2024-07-10 09:58:01 +02:00
Harald Sitter
003af6db2c make sure the keyring is up to date 2024-07-10 09:55:16 +02:00
Harald Sitter
42ed5696a9 grand refactor
- add ci builds
- add some scripting surrounding spinning up local containers
- use btrfs send-receive to populate the image for both speed, precision
and reliablity (won't miss ENSPC or something)
- no longer generate bootable images through mkosi, we generate two UKIs
anyway, mkosis extra work is entirely pointless and as it turns out
produces vastly larger UKIs for some reason. probably worth inspecting
at some point why that is
- the entire build has been moved from relying on arch packages to using
kde-builder. this effectively turns the way we build in development also
in the way we build for deployment, giving greater familiarity and
exercise of code paths
- move initrd from dracut to mkinitcpio as it is better integrating with
the arch base
- the initrd system is still driven by systemd rather than busybox (the
initcpio default)
- calamares tech still doesn't work entirely but got a bit of polish
- basic session blessing support (tracking whether an image is good or
not)
- boot failure tracking via the UKI filename (foo_1+3-1.efi etc)
- pam files imported from arch
- font files imported from neon
- aggressive debugging via systemd is on for the time being to aid with
development
- snapd support
- general AUR support (really cruddy because we are inside a bwrap that
runs with no-new-priviledges which means we can't sudo but arch tools
don't want to run as root - so everything is awkwardly detangled with
dependency installation happening manually in root scope, then the build
as a temporary user, then the installation in root scope again)
-
2024-03-13 19:48:30 +01:00