Add weak_deps=False to main dnf install so we don't pull in the world,
some things that are gonna be noticeable I added here manually.
OpenCL in containers/flatpak is kinda bad to my understanding. So we
sadly have to include them on the host.
resovles: https://github.com/ublue-os/aurora/issues/2998
Co-authored-by: Jed <ivelisvale73@gmail.com>
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
* refactor: simplify checking for enabled 3rd party repos
We are generally no longer doing the dnf enable/disable dance (except
for the nvidia install script) because we are vendoring the .repo files
which simplifies things a bit.
Also I think that the move to checking what is allowed instead of
checking what is not allowed makes more sense anyway.
resolves: https://github.com/ublue-os/aurora/issues/2854
[1] 1e4d10b9ac/build_files/nvidia/nvidia-install.sh
* get openh264 from negativo
Our base image [1] can't legally include this from fedora-cisco-openh264
repo. Comparing the spec files for Fedora [2] and Negativo [3], they
seem to be built with the same build flags, so they should not have any
differing functionality. The fedora-cisco-openh264 repo is currently
enabled (which is not the case for F44 images) because our repo
validation script broke due to the move to /usr [4].
We are already shipping various other codecs on the system, including
mesa, they get more irrelevant each day but we should have this.
I don't know why exactly but for some reason we now have a stray
/var/log/dnf5.log which makes bootc container lint fail.
[1] 54e811f17a/common.yaml (L144)
[2] cd15228484/f/openh264.spec
[3] dfac89f533/openh264.spec
[4] https://fedoraproject.org/wiki/Changes/RelocateRpmRepoConfigsToUsr
We are currently getting this from Fedora anyway, also the negativo package is
unmaintained, Fedora ships a newer version.
It's packaged the same and doesn't actually include any more features
Fedora can't legally ship from the looks of it.
We can get rid of the copr-helper wrapper script as we are no longer
enabling and then disabling the repo, which is explained in [1] as we
are configuring them to be off by default and then very purposefully
enabling it for that one dnf transaction where we actually need it
enabled.
The files in yum.repos.d were copied from my local /usr/etc directory.
[1] https://github.com/ublue-os/aurora/issues/1115
This provides utilities to debug SELinux related things like with
sealert.
SELinux is already plenty fun on its own, let's make it easier to debug.
This has already been included in dx images due to being a dependency of
cockpit-selinux.
Seen in https://github.com/ublue-os/main/issues/2845.
* chore: remove check for already installed packages before removing
There is very little point to doing this, if the package isn't installed
that we are trying to remove, then it should simply fail.
* chore: also remove removal check for dx
We don't currently (and probably also won't in the future) remove things
from the base. DX should be an addition.
Union is still in development but I think we should preinstall it so
people can try it if they want to. This will be pre-installed in Fedora
at some point and be made an upstream default anyway.
I actually wanted to preinstall this when 6.7 initially came out but I
forgot add this.
More info here https://kde.org/announcements/plasma/6/6.6.91/
* refactor: repurpose build.sh as build preparation
It currently does too many things, let's split it up. This needs to be
done as we want to move away from a system that copies (also overrides)
files from fedora RPMs and then may remove said rpms, resulting in
removing our changes, which of course defeats the entire point.
A disadvantage this has is that we need to be more mindful and
disciplined of when things are needed during the build. Currently we
actually do not need any system_files we copy in the stage where we are
installing packages/have network access.
If we do at some point we will probably either inline files in
build-prep.sh or have a 2nd directory with files strictly needed for the
build.
This is why we can copy all the files to the system after that, just
before systemd units get activated, initramfs gets generated, general
things we can do offline after we have installed packages are done.
Resolves: https://github.com/ublue-os/aurora/issues/2687
* remove useless comment
* same treatment for DX
* remove unused DX specific version logic
We don't use this, we have branches now.
* move sysctl before docker install