This caused a little regression in the build times as it would relabel
absolutely everything, vast majority of content is of course RPM
packages which already have this timestamp set.
Before the normal image build was around 5-7min, now it has gone up by
2-3min.
Follow-up of: 3ef1256cd3.
Figured out by Bazzite in [1].
[1] a4ccbec9f6
* feat: timestamp all files with epoch 0
We have been using this chunkah feature [1] to put non-rpm content like
the brew tarball in dedicated layers, we didn't actually save any
bandwith on downloads with this as the copying sets the file
modification and access time. Which makes it non-reproducible and every
single update would re-download everything not in RPMs.
This should make updates smaller especially noticeable on daily/multiple
daily image builds. I'm not sure how much of a positive effect this is
gonna have on the stable weekly images as the brew tarball is refreshed
weekly. Things like the wallpapers should at least no longer be
downloaded when they haven't changed. There are still some files we
could do but I think it's mostly not worth it.
xref: https://github.com/ublue-os/aurora/issues/2579
[1] https://github.com/coreos/chunkah#customizing-the-layers
* typo
Co-authored-by: Adam Fidel <ledif@users.noreply.github.com>
---------
Co-authored-by: Adam Fidel <ledif@users.noreply.github.com>
This makes way more sense, nobody who builds a local image wants to use
a potentially older fedora release, especially on the same branch, this
is also a mismatch between what is built in CI as that builds from a
stable branch instead of main.
This makes the initramfs reproducible, because currently the
kmod-v4l2loopback is the only thing that is not reproducible.
This is not the proper way to do this, it has to be fixed in
ublue-os/akmods and see what step introduces timestamps into the build.
xref: https://github.com/ublue-os/aurora/issues/2579
In the past we have moved away from doing big dnf transactions spanning
multiple rpm repositories [1] because of the associated risk of third
party repos injecting packages we expect to get from Fedora. With this
we explicitly set which packages are allowed to be installed from each
repo. This means we still get to do big transactions which are generally
faster.
The downside of this is that if subpackages or dependencies from a
3rd-party repo get introduced/change then our builds will break, I think
this is fine as the ones I'm changing here have been unchanging for a
while.
This should only touch repositories with a very specific purpose/single
projects.
This purposefully doesn't touch any ublue-os coprs or negativo (also
they are difficult to handle as we use them in the nvidia script [2]),
those are the only mono-repos so outright excluding the packages is not
an easy option as we would make custom image builds (and usr-overlays
for testing) more annoying.
[1] https://github.com/ublue-os/aurora/issues/1115
[2] 1e4d10b9ac/build_files/nvidia/nvidia-install.sh
This is a requirement for using bootc with Anaconda or else we don't
enforce signed images for subsequent updates.
In the past we have used bootc switch --mutate-in-place (in combination
with ostree-container which is what we are currently using for the
installation media), but this no longer works with bootc for whatever
reason.
This doesn't seem to matter for local builds, so this is fine to just
add here on the image.
xref: https://github.com/get-aurora-dev/iso/pull/93