]> git.ipfire.org Git - thirdparty/mkosi.git/log
thirdparty/mkosi.git
6 months agomkosi-initrd: Simplify 3395/head
Daan De Meyer [Tue, 21 Jan 2025 09:26:19 +0000 (10:26 +0100)] 
mkosi-initrd: Simplify

kernel_image is not optional so get rid of the if check.

6 months agomkosi-initrd: Add extra logging to kernel-install plugin
Daan De Meyer [Tue, 21 Jan 2025 09:26:05 +0000 (10:26 +0100)] 
mkosi-initrd: Add extra logging to kernel-install plugin

6 months agomkosi-addon: Skip if provided kernel image is not a UKI
Daan De Meyer [Tue, 21 Jan 2025 09:13:49 +0000 (10:13 +0100)] 
mkosi-addon: Skip if provided kernel image is not a UKI

6 months agoReduce duplication between mkosi-initrd and mkosi-addon
Daan De Meyer [Tue, 21 Jan 2025 09:15:29 +0000 (10:15 +0100)] 
Reduce duplication between mkosi-initrd and mkosi-addon

6 months agoSimplify KernelInstallContext.parse() a little
Daan De Meyer [Tue, 21 Jan 2025 09:15:00 +0000 (10:15 +0100)] 
Simplify KernelInstallContext.parse() a little

6 months agoqemu: Look for /usr/libexec/qemu-kvm as well
Daan De Meyer [Tue, 21 Jan 2025 09:40:47 +0000 (10:40 +0100)] 
qemu: Look for /usr/libexec/qemu-kvm as well

On CentOS Stream, only /usr/libexec/qemu-kvm is available.

6 months agoSkip firmware descriptions without nvram-template
Daan De Meyer [Tue, 21 Jan 2025 08:37:48 +0000 (09:37 +0100)] 
Skip firmware descriptions without nvram-template

6 months agoMerge pull request #3393 from behrmann/addonfixups
Daan De Meyer [Mon, 20 Jan 2025 22:14:05 +0000 (23:14 +0100)] 
Merge pull request #3393 from behrmann/addonfixups

Addon fixups

6 months agoman: Move plugin sections under the kernel-install section 3393/head
Jörg Behrmann [Mon, 20 Jan 2025 16:32:22 +0000 (17:32 +0100)] 
man: Move plugin sections under the kernel-install section

6 months agoman: Generate mkosi-addon man page as well
Jörg Behrmann [Mon, 20 Jan 2025 16:31:57 +0000 (17:31 +0100)] 
man: Generate mkosi-addon man page as well

6 months agoAdd mkosi-addon and kernel-install plugin
Luca Boccassi [Fri, 6 Dec 2024 00:28:13 +0000 (00:28 +0000)] 
Add mkosi-addon and kernel-install plugin

Add new mkosi-addon and kernel-install plugin to build local
customizations into an EFI addon.

This allows us to move closer to the desired goal of having
universal UKIs, built by vendors, used together with locally
built enhancements.

6 months agoUse $HOME in current_home_dir() regardless of whether we're in it or not
Daan De Meyer [Mon, 20 Jan 2025 10:37:38 +0000 (11:37 +0100)] 
Use $HOME in current_home_dir() regardless of whether we're in it or not

If $HOME is set, let's always use it as a fallback if we're not running
from a home directory.

6 months agoEnforce that images with Overlay=yes only add files
Daan De Meyer [Mon, 20 Jan 2025 09:42:08 +0000 (10:42 +0100)] 
Enforce that images with Overlay=yes only add files

Any extension images built with Overlay=yes should never override
files in the base image, so let's add some enforcement to make
sure that's the case by automatically removing files that already
exist in the base image.

6 months agoRevert "action: Fix up $PATH as a workaround"
Daan De Meyer [Mon, 20 Jan 2025 11:30:29 +0000 (12:30 +0100)] 
Revert "action: Fix up $PATH as a workaround"

Issue was fixed in a new image.

This reverts commit 49832f6c2af0f7ef0a458d1e0795ad1854ecd863.

6 months agoUse os.walk() to remove empty directories
Daan De Meyer [Mon, 20 Jan 2025 07:25:14 +0000 (08:25 +0100)] 
Use os.walk() to remove empty directories

6 months agomypy: enable scripts_are_modules
Daan De Meyer [Mon, 20 Jan 2025 09:00:30 +0000 (10:00 +0100)] 
mypy: enable scripts_are_modules

Otherwise mypy errors on type checking multiple kernel-install
scripts in kernel-install/.

6 months agoMerge pull request #3386 from DaanDeMeyer/addon-initrd-empty
Daan De Meyer [Mon, 20 Jan 2025 07:23:36 +0000 (08:23 +0100)] 
Merge pull request #3386 from DaanDeMeyer/addon-initrd-empty

addon: Don't add initrd section if buildroot is empty

6 months agoRun modinfo from the tools tree when building a standalone extension image
Daan De Meyer [Sun, 19 Jan 2025 22:22:22 +0000 (23:22 +0100)] 
Run modinfo from the tools tree when building a standalone extension image

If we're building a standalone extension image, modinfo won't be
installed in the image buildroot, so run modinfo from the host
instead.

6 months agoPass in Context to functions in kmod.py
Daan De Meyer [Sun, 19 Jan 2025 22:10:14 +0000 (23:10 +0100)] 
Pass in Context to functions in kmod.py

Preparation for the next commit.

6 months agoImprove formatting of filter_kernel_modules()
Daan De Meyer [Sun, 19 Jan 2025 22:04:44 +0000 (23:04 +0100)] 
Improve formatting of filter_kernel_modules()

6 months agoaddon: Don't add initrd section if buildroot is empty 3386/head
Daan De Meyer [Sun, 19 Jan 2025 22:32:54 +0000 (23:32 +0100)] 
addon: Don't add initrd section if buildroot is empty

6 months agoDon't remove root directory when removing empty directories
Daan De Meyer [Sun, 19 Jan 2025 22:42:33 +0000 (23:42 +0100)] 
Don't remove root directory when removing empty directories

6 months agoci: Make kernel-install script checks more generic
Daan De Meyer [Sun, 19 Jan 2025 21:22:49 +0000 (22:22 +0100)] 
ci: Make kernel-install script checks more generic

Let's check all .install scripts in the kernel-install directory.

6 months agoMake sure addon initrds are compressed as well
Daan De Meyer [Sun, 19 Jan 2025 20:20:30 +0000 (21:20 +0100)] 
Make sure addon initrds are compressed as well

6 months agoInverse output format check for run_shell()
Daan De Meyer [Sun, 19 Jan 2025 19:50:36 +0000 (20:50 +0100)] 
Inverse output format check for run_shell()

6 months agoMake use of use_outer_compression() more
Daan De Meyer [Sun, 19 Jan 2025 19:45:18 +0000 (20:45 +0100)] 
Make use of use_outer_compression() more

6 months agoRemove empty directories from extension images
Daan De Meyer [Sun, 19 Jan 2025 19:02:42 +0000 (20:02 +0100)] 
Remove empty directories from extension images

6 months agoDon't check for populated OS root if Format == none
Daan De Meyer [Sun, 19 Jan 2025 19:11:20 +0000 (20:11 +0100)] 
Don't check for populated OS root if Format == none

Let's skip checking if the OS root is populated if Format == none
so that Format=none and Distribution=custom can be used to execute
arbitrary code in a build script without actually building an image.

6 months agoAllow adding kernel modules in extension images
Daan De Meyer [Sun, 19 Jan 2025 19:34:31 +0000 (20:34 +0100)] 
Allow adding kernel modules in extension images

When building standalone extension images (without Overlay=yes),
let's process kernel modules but not run depmod. depmod produces a
single monolithic file which means we can't extend it from an
extension image without overriding the base file.

6 months agoMerge pull request #3378 from DaanDeMeyer/addon
Daan De Meyer [Sun, 19 Jan 2025 17:42:03 +0000 (18:42 +0100)] 
Merge pull request #3378 from DaanDeMeyer/addon

Add kernel command line to addon

6 months agoAdd kernel command line to addon 3378/head
Daan De Meyer [Sun, 19 Jan 2025 16:58:05 +0000 (17:58 +0100)] 
Add kernel command line to addon

Let's allow adding making more than just initrd addons.

6 months agoRename initrd-addon to addon
Daan De Meyer [Sun, 19 Jan 2025 16:57:50 +0000 (17:57 +0100)] 
Rename initrd-addon to addon

6 months agoAdd ToolsTreeRelease= match
Daan De Meyer [Fri, 17 Jan 2025 15:46:40 +0000 (16:46 +0100)] 
Add ToolsTreeRelease= match

6 months agoUpdate NEWS
Daan De Meyer [Fri, 17 Jan 2025 11:31:07 +0000 (12:31 +0100)] 
Update NEWS

6 months agoMerge pull request #3373 from DaanDeMeyer/centos
Daan De Meyer [Fri, 17 Jan 2025 14:11:39 +0000 (15:11 +0100)] 
Merge pull request #3373 from DaanDeMeyer/centos

centos: epel-next does not exist anymore since CentOS Stream 10

6 months agocentos: epel-next does not exist anymore since CentOS Stream 10 3373/head
Daan De Meyer [Fri, 17 Jan 2025 13:05:26 +0000 (14:05 +0100)] 
centos: epel-next does not exist anymore since CentOS Stream 10

Detailed in https://discussion.fedoraproject.org/t/epel-10-proposal/44304.

6 months agocentos: Bump default image to CentOS Stream 10 as well
Daan De Meyer [Fri, 17 Jan 2025 13:05:08 +0000 (14:05 +0100)] 
centos: Bump default image to CentOS Stream 10 as well

6 months agoaction: Fix up $PATH as a workaround
Daan De Meyer [Fri, 17 Jan 2025 13:10:50 +0000 (14:10 +0100)] 
action: Fix up $PATH as a workaround

Can be removed once https://github.com/actions/runner-images/issues/11414
is addressed.

6 months agoMerge pull request #3371 from DaanDeMeyer/cache
Jörg Behrmann [Fri, 17 Jan 2025 10:30:06 +0000 (11:30 +0100)] 
Merge pull request #3371 from DaanDeMeyer/cache

Cache package manager in cache manifest again

6 months agoAdd package manager back to the cache manifest 3371/head
Daan De Meyer [Thu, 16 Jan 2025 23:07:07 +0000 (00:07 +0100)] 
Add package manager back to the cache manifest

As detailed in the previous commit, it's important to cache the
package manager used in the cache manifest. If we don't, we'll end
up reusing the wrong metadata cache which won't have any metadata in
it for the new package manager.

6 months agoRebuild default tools tree before cleaning up other images
Daan De Meyer [Thu, 16 Jan 2025 23:02:52 +0000 (00:02 +0100)] 
Rebuild default tools tree before cleaning up other images

It turns out we have to put the used package manager in the cache
manifest as the metadata cache needs to be refreshed if the package
manager used changes, otherwise the metadata cache will be reused but
the new package manager won't actually be able to find any metadata
since the metadata cache contains metadata for another package manager.

To avoid running into all the problems we had previously trying to do
this, we have to make sure that the default tools tree is always available
whenever we run have_cache() on a (non-default tools tree) image, so that
the package manager we decide to use to build the image is always the same.

To achieve that, we make sure to rebuild the tools tree before doing checks
and cleaning up other images when doing a regular build. This means whenever
we call have_cache() the default tools tree will be available if it is used.

6 months agoImprove cache manifest mismatch logging message
Daan De Meyer [Thu, 16 Jan 2025 23:01:56 +0000 (00:01 +0100)] 
Improve cache manifest mismatch logging message

6 months agofedora: Use a lower repository metadata expire time for rawhide
Daan De Meyer [Thu, 16 Jan 2025 21:42:23 +0000 (22:42 +0100)] 
fedora: Use a lower repository metadata expire time for rawhide

Let's mimick Fedora's own rawhide repository configuration and use
a metadata expire time of 6h when building rawhide images so that
we don't end up keeping stale repository metadata around for too
long which will result in dnf being unable to find certain packages
as they will have been replaced by a newer version in rawhide already.

6 months agoBump Arch initrd size again ...
Daan De Meyer [Thu, 16 Jan 2025 21:47:09 +0000 (22:47 +0100)] 
Bump Arch initrd size again ...

Seems like Arch is gaining a lot of weight lately in it's core
packages.

6 months agoMerge pull request #3368 from DaanDeMeyer/epel
Daan De Meyer [Thu, 16 Jan 2025 21:39:17 +0000 (22:39 +0100)] 
Merge pull request #3368 from DaanDeMeyer/epel

Various CentOS Stream improvements

6 months agocentos: Enable EPEL for c10s tools tree as well 3368/head
Daan De Meyer [Thu, 16 Jan 2025 13:53:16 +0000 (14:53 +0100)] 
centos: Enable EPEL for c10s tools tree as well

Now that EPEL exists for c10s, let's enable it for the c10s tools
tree as EPEL has distribution-gpg-keys which is crucial to be able
to use c10s as a tools tree.

6 months agoLook for the CentOS Stream official GPG in /etc/pki/rpm-gpg as well
Daan De Meyer [Thu, 16 Jan 2025 14:31:10 +0000 (15:31 +0100)] 
Look for the CentOS Stream official GPG in /etc/pki/rpm-gpg as well

Turns out the key names in /etc/pki/rpm-gpg are slightly different
so let's update the logic to search properly for both.

6 months agoOnly use a fallback in find_rpm_gpgkey() if one is defined
Daan De Meyer [Thu, 16 Jan 2025 14:30:54 +0000 (15:30 +0100)] 
Only use a fallback in find_rpm_gpgkey() if one is defined

6 months agoImprove find_rpm_gpgkey() declaration formatting
Daan De Meyer [Thu, 16 Jan 2025 14:30:37 +0000 (15:30 +0100)] 
Improve find_rpm_gpgkey() declaration formatting

6 months agoFix type of second overload of find_rpm_gpgkey()
Daan De Meyer [Thu, 16 Jan 2025 14:29:44 +0000 (15:29 +0100)] 
Fix type of second overload of find_rpm_gpgkey()

The return type is optional when we get any boolean that's not a
literal True, so widen the type to bool to fix that.

6 months agoaction: Stop populating pacman keyring
Daan De Meyer [Thu, 16 Jan 2025 09:30:19 +0000 (10:30 +0100)] 
action: Stop populating pacman keyring

Not required anymore now that mkosi does this itself.

6 months agoMerge pull request #3366 from DaanDeMeyer/keyring
Daan De Meyer [Thu, 16 Jan 2025 09:28:07 +0000 (10:28 +0100)] 
Merge pull request #3366 from DaanDeMeyer/keyring

Add a keyring cache and use it for Arch Linux

6 months agoAdd a keyring cache and use it for Arch Linux 3366/head
Daan De Meyer [Wed, 15 Jan 2025 22:07:07 +0000 (23:07 +0100)] 
Add a keyring cache and use it for Arch Linux

Currently, the Arch keyring from the host or tools tree is always
used directly without any option to modify it (except by modifying
it directly on the host or in the tools tree). We also don't support
RepositoryKeyFetch= for the Arch Linux keyring and it's one of the
sources of annoying mounts outside of /usr which complicates
"mkosi sandbox".

Let's improve the situation by switching to our own pacman keyring
instead of using the one from the tools tree or host. Instead, we'll
only use /usr/share/pacman/keyrings from the host or tools tree to
populate the keyring we maintain ourselves. Users can extend the
keyring created by mkosi with their own keys via sandbox trees. If
RepositoryKeyFetch= is enabled, we'll download the archlinux-keyring
package and extract the keyring from there into the sandbox.

The keyring cache is maintained together with the repository metadata
cache. The only difference is that sync_repository_metadata() will
update the global package cache whereas the keyring directory is always
maintained per cache directory instead of globally.

We take the opportunity to stop using Michel's kernel-utils ppa with a
more recent archlinux-keyring package in favor of enabling
RepositoryKeyFetch= by default for Arch builds on Ubuntu.

6 months agosandbox: Use dict to store bind mounts instead of set
Daan De Meyer [Wed, 15 Jan 2025 21:59:59 +0000 (22:59 +0100)] 
sandbox: Use dict to store bind mounts instead of set

dict guarantee iteration in insertion order, set does not which matters
in this specific case.

6 months agoIntroduce support for overriding system's DeviceTree
Bjorn Andersson [Thu, 29 Feb 2024 15:00:13 +0000 (16:00 +0100)] 
Introduce support for overriding system's DeviceTree

While experimenting with OS images on development boards where either
the bootloader doesn't load a Flattened DeviceTree Blob, or if one wants
to replace the one provided by the bootloader with a specific/new one
for development/experimentation/testing purposes, it's convenient to use
the OS-loaders ability to load a specific DeviceTree blob.

Add a new option to mkosi, to cause a specified DeviceTree blob to be
baked into the UKI, or copied into /boot and added to the systemd loader
entry.

As different distributions store the dtb files in different locations
the requested file is searched for in the locations spotted in Debian,
Fedora, Arch Linux packages (both from distro and kernel build system -
as these differs as well).

Resolves #2439
Based on initial effort by Manuel Traut.

Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
6 months agoAdd support for machined registration using varlink
Daan De Meyer [Wed, 15 Jan 2025 13:49:05 +0000 (14:49 +0100)] 
Add support for machined registration using varlink

6 months agoAdd missing parentheses to make sure we don't throw away scope for virtiofsd
Daan De Meyer [Wed, 15 Jan 2025 13:26:23 +0000 (14:26 +0100)] 
Add missing parentheses to make sure we don't throw away scope for virtiofsd

6 months agoMerge pull request #3363 from DaanDeMeyer/sandbox
Jörg Behrmann [Wed, 15 Jan 2025 18:32:46 +0000 (19:32 +0100)] 
Merge pull request #3363 from DaanDeMeyer/sandbox

sandbox: Make terminal background color cyan if on tty

6 months agosandbox: Don't allow nested mkosi sandbox invocations 3363/head
Daan De Meyer [Wed, 15 Jan 2025 11:06:53 +0000 (12:06 +0100)] 
sandbox: Don't allow nested mkosi sandbox invocations

Until a good usecase pops up it's probably best to disallow this since
when it happens it's most likely a user error rather than intended.

6 months agosandbox: Drop tools tree in run_verb() instead of when parsing config
Daan De Meyer [Wed, 15 Jan 2025 11:14:01 +0000 (12:14 +0100)] 
sandbox: Drop tools tree in run_verb() instead of when parsing config

Another change to make mkosi sandbox in and outside the sandbox identical.

6 months agosandbox: Make terminal background color cyan if on tty
Daan De Meyer [Wed, 15 Jan 2025 11:01:09 +0000 (12:01 +0100)] 
sandbox: Make terminal background color cyan if on tty

Let's make the sandbox more recognizable by turning the terminal
background cyan if on a tty.

6 months agoUse MKOSI_HOST_DISTRIBUTION in config_default_tools_tree_distribution()
Daan De Meyer [Wed, 15 Jan 2025 08:48:21 +0000 (09:48 +0100)] 
Use MKOSI_HOST_DISTRIBUTION in config_default_tools_tree_distribution()

It doesn't really matter since we won't use the tools tree in the
sandbox anyway but this reduces the diff between mkosi summary outside
and inside the sandbox.

6 months agocentos: Bump default release to 10
Daan De Meyer [Wed, 15 Jan 2025 08:49:31 +0000 (09:49 +0100)] 
centos: Bump default release to 10

6 months agoMake sure we use the same host distribution/release in sandbox
Daan De Meyer [Tue, 14 Jan 2025 14:32:20 +0000 (15:32 +0100)] 
Make sure we use the same host distribution/release in sandbox

If the distribution is not explicitly specified in the config file
and the host distribution does not match the tools tree distribution,
then currently mkosi -f sandbox mkosi -f and mkosi -f will build images
for different distributions.

Let's make sure these commands use the same default distribution by
communicating the host distribution and release to the sandbox via
environment variables and using them to determine the default values to
use if available.

6 months agoOnly add keylayouts to grub image on x86
Daan De Meyer [Tue, 14 Jan 2025 12:22:00 +0000 (13:22 +0100)] 
Only add keylayouts to grub image on x86

6 months agoUpdate NEWS
Daan De Meyer [Tue, 14 Jan 2025 11:57:54 +0000 (12:57 +0100)] 
Update NEWS

6 months agoMake grub EFI logic architecture independent
Daan De Meyer [Tue, 14 Jan 2025 09:18:48 +0000 (10:18 +0100)] 
Make grub EFI logic architecture independent

Fixes #3352

6 months agosandbox: Slight optimization
Daan De Meyer [Tue, 14 Jan 2025 11:22:02 +0000 (12:22 +0100)] 
sandbox: Slight optimization

6 months agoBind mount /dev/fuse in sandbox
Martin Hundebøll [Tue, 14 Jan 2025 07:09:22 +0000 (08:09 +0100)] 
Bind mount /dev/fuse in sandbox

/dev/fuse is needed to support building container images from within the
mkosi.build scripts. Make it avaiable in the sandbox just like /dev/null
and its friends.

Since not all mkosi builds runs in host contexts where /dev/fuse is
actually available, update the logic to skip the /dev/fuse node if it is
not present.

7 months agoOnly use extra search paths when running in sandbox
Daan De Meyer [Mon, 13 Jan 2025 11:10:29 +0000 (12:10 +0100)] 
Only use extra search paths when running in sandbox

Since ExtraSearchPaths= might be built within the sandbox, we have
to make sure that we're in the sandbox when potentially executing
binaries from ExtraSearchPaths=. This was almost always the case,
except when setup= was used when constructing the sandbox, as the
command in setup= is executed outside of the sandbox.

To fix this we also had the option to remove the setup= argument
from sandbox_cmd() and execute the command from setup= within the
sandbox as well, but this would mean the synchronization mechanism
we added in https://github.com/systemd/mkosi/pull/3298 to make sure
we don't register vms with machined before the scope is started would
stop working, so for now we keep setup= and instead make sure we don't
use paths from ExtraSearchPaths= when executing the commands in setup=.

Implementation wise, we get rid of modifying mkosi's own $PATH to append
the extra search paths, and instead construct the proper $PATH in
sandbox_cmd().

Because we get rid of prepend_to_environ_path(), we also get rid of
the logic to construct a separate directory for any files listed in
ExtraSearchPaths=, but this logic turned out to be undocumented and
broken because the separate directory we add to $PATH wasn't mounted
into the sandbox so since this logic was always broken and nobody ever
complained we opt to remove it here to keep the implementation simple.

7 months agoapt: avoid ?exact-name for systemd packages
Luca Boccassi [Sat, 11 Jan 2025 01:48:47 +0000 (01:48 +0000)] 
apt: avoid ?exact-name for systemd packages

There is a strange interaction between ?exact-name, apt repositories
generated by OBS and multiple architectures, that breaks installing
packages:

$ apt install --dry-run '?exact-name(systemd-cryptsetup)'
NOTE: This is only a simulation!
      apt needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!

systemd-cryptsetup is already the newest version (257.999+731+g8c5b35957-0).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

Unsatisfied dependencies:
 systemd-cryptsetup : Conflicts: systemd-cryptsetup:i386 but 257.999+731+g8c5b35957-0 is to be installed
                      Conflicts: systemd-cryptsetup:arm64 but 257.999+731+g8c5b35957-0 is to be installed
 systemd-cryptsetup:i386 : Conflicts: systemd-cryptsetup but 257.999+731+g8c5b35957-0 is to be installed
                           Conflicts: systemd-cryptsetup:arm64 but 257.999+731+g8c5b35957-0 is to be installed
 systemd-cryptsetup:arm64 : Depends: libc6:arm64 (>= 2.38) but it is not installable
                            Depends: libcryptsetup12:arm64 (>= 2:2.7) but it is not installable
                            Depends: libssl3t64:arm64 (>= 3.0.0) but it is not installable
                            Depends: libsystemd-shared:arm64 (= 257.999+731+g8c5b35957-0) but it is not going to be installed
                            Conflicts: systemd-cryptsetup but 257.999+731+g8c5b35957-0 is to be installed
                            Conflicts: systemd-cryptsetup:i386 but 257.999+731+g8c5b35957-0 is to be installed
Error: Unable to correct problems, you have held broken packages.

It seems ?exact-name selects _all_ available packages, unless an architecture
is specified:

$ apt install --dry-run '?exact-name(systemd-cryptsetup:amd64)'
NOTE: This is only a simulation!
      apt needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!

Summary:
  Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0

But this only happens with the repository metadata format generated
on OBS. There are multiple formats, apparently.

https://download.opensuse.org/repositories/home:/bluca:/systemd/Debian_Testing/

So either we set the specific architecture in the common mkosi.conf,
or we need a separate mkosi.conf with a trigger to filter out releases
where the packages are not available.
I chose the latter as it the filters are fixed, while adding by architecture
means every time a new arch is added, it needs to be duplicated.

This is only necessary for packages that are hosted on OBS, ie: the
systemd ones.

7 months agoci: Don't run on push to main
Daan De Meyer [Mon, 13 Jan 2025 14:44:54 +0000 (15:44 +0100)] 
ci: Don't run on push to main

We're not exactly swimming in capacity, and this hasn't ever caught
anything, so let's stop running CI on pushes to main.

7 months agoMerge pull request #3344 from DaanDeMeyer/focal
Daan De Meyer [Mon, 13 Jan 2025 14:04:20 +0000 (15:04 +0100)] 
Merge pull request #3344 from DaanDeMeyer/focal

Drop support for Focal

7 months agoDrop support for Focal 3344/head
Daan De Meyer [Sat, 11 Jan 2025 10:00:26 +0000 (11:00 +0100)] 
Drop support for Focal

It's going EOL in April, so I think it's fine if we drop support for
it.

7 months agotests: Install lsof instead of dnsmasq
Daan De Meyer [Mon, 13 Jan 2025 10:25:08 +0000 (11:25 +0100)] 
tests: Install lsof instead of dnsmasq

lsof is available in Ubuntu's main repository, dnsmasq isn't.

7 months agoOnly mount /usr/share/factory if mount point exists in tools tree
Daan De Meyer [Sun, 12 Jan 2025 11:33:30 +0000 (12:33 +0100)] 
Only mount /usr/share/factory if mount point exists in tools tree

Otherwise the bind mount fails as the mount point cannot be created
since we mount /usr from the tools tree read-only.

7 months agoFix passing repositories and sandbox trees to default initrd/tools
Daan De Meyer [Sun, 12 Jan 2025 11:29:57 +0000 (12:29 +0100)] 
Fix passing repositories and sandbox trees to default initrd/tools

Currently if none are specified we end up passing the empty string
which overrides any repositories or sandbox trees specified in the
default initrd/tools configs themselves.

7 months agoBump Arch initrd size
Daan De Meyer [Mon, 13 Jan 2025 10:16:00 +0000 (11:16 +0100)] 
Bump Arch initrd size

7 months agoci: Disable Azure
Daan De Meyer [Mon, 13 Jan 2025 10:27:04 +0000 (11:27 +0100)] 
ci: Disable Azure

They're so flaky that I don't even look at them anymore, so let's
disable them until they do a new systemd stable release which
includes the required vsock fix.

7 months agoSpecify --install-source=image when installing systemd-boot
Daan De Meyer [Mon, 13 Jan 2025 09:28:14 +0000 (10:28 +0100)] 
Specify --install-source=image when installing systemd-boot

Let's make sure we don't try to pick up EFI binaries from the host.

7 months agoAdd perf to tools tree
Daan De Meyer [Fri, 10 Jan 2025 12:48:59 +0000 (13:48 +0100)] 
Add perf to tools tree

We don't add it to Ubuntu as perf is very tightly coupled to the
kernel package there which makes installing it a royal pain.

7 months agomkosi-initrd: Add two more CPU modules
Daan De Meyer [Fri, 10 Jan 2025 12:33:41 +0000 (13:33 +0100)] 
mkosi-initrd: Add two more CPU modules

7 months agodoc: add missing continue if pandoc is not available
Jörg Behrmann [Thu, 9 Jan 2025 21:59:58 +0000 (22:59 +0100)] 
doc: add missing continue if pandoc is not available

Without the continue, the run on the next line will call die if pandoc is not
available, thus breaking the fallback for subsequent formats.

7 months agoApply new ruff 0.9 formatting
Daan De Meyer [Thu, 9 Jan 2025 15:26:49 +0000 (16:26 +0100)] 
Apply new ruff 0.9 formatting

7 months agoMerge pull request #3323 from septatrix/initrd-dnf-choice
Daan De Meyer [Thu, 9 Jan 2025 08:19:15 +0000 (09:19 +0100)] 
Merge pull request #3323 from septatrix/initrd-dnf-choice

Remove preference for dnf4 in mkosi-initrd

7 months agoUse hosts preferred dnf version in mkosi-initrd 3323/head
Septatrix [Wed, 8 Jan 2025 21:20:14 +0000 (22:20 +0100)] 
Use hosts preferred dnf version in mkosi-initrd

7 months agoaction: Show CPU and memory
Daan De Meyer [Wed, 8 Jan 2025 15:43:20 +0000 (16:43 +0100)] 
action: Show CPU and memory

7 months agoMake dnf version checks consistent
Septatrix [Wed, 8 Jan 2025 21:19:05 +0000 (22:19 +0100)] 
Make dnf version checks consistent

As the executable method returns the name an equality check is enough

7 months agoMerge pull request #3333 from behrmann/manfixes
Daan De Meyer [Wed, 8 Jan 2025 15:46:29 +0000 (16:46 +0100)] 
Merge pull request #3333 from behrmann/manfixes

Various man page fixes

7 months agoman: Reformulate triggering match sections a bit 3333/head
Jörg Behrmann [Tue, 7 Jan 2025 14:57:43 +0000 (15:57 +0100)] 
man: Reformulate triggering match sections a bit

7 months agoman: Implement various stye fixes
Jörg Behrmann [Tue, 7 Jan 2025 14:54:18 +0000 (15:54 +0100)] 
man: Implement various stye fixes

- Highlight command-names in text in bold instead of code style
- Consistent highlighting of command names
- Consistent hyphenation
- Removal of superfluous periods
- Addition of missing periods and colons
- Consistent capitalisation of RPM when not a command

Fixes: #3330
7 months agomkosi-initrd: Remove /var/cache and /var/log from the initrd
Daan De Meyer [Tue, 7 Jan 2025 09:29:38 +0000 (10:29 +0100)] 
mkosi-initrd: Remove /var/cache and /var/log from the initrd

Fixes #3331

7 months agoMerge pull request #3329 from DaanDeMeyer/fixes
Jörg Behrmann [Mon, 6 Jan 2025 14:44:40 +0000 (15:44 +0100)] 
Merge pull request #3329 from DaanDeMeyer/fixes

Fixes

7 months agoapt: drop usr-is-merged from essential list
Luca Boccassi [Mon, 6 Jan 2025 01:05:55 +0000 (01:05 +0000)] 
apt: drop usr-is-merged from essential list

It is no longer required, base-files now does the work, drop it

7 months agomkosi-vm: Drop duplicate systemd-boot 3329/head
Daan De Meyer [Mon, 6 Jan 2025 13:44:09 +0000 (14:44 +0100)] 
mkosi-vm: Drop duplicate systemd-boot

7 months agoDrop which from mkosi-vm
Daan De Meyer [Mon, 6 Jan 2025 13:43:26 +0000 (14:43 +0100)] 
Drop which from mkosi-vm

Not available in Jammy.

7 months agoFix section
Daan De Meyer [Mon, 6 Jan 2025 13:41:45 +0000 (14:41 +0100)] 
Fix section

7 months agoMerge pull request #3312 from hundeboll/modules-and-firmware-includes
Daan De Meyer [Mon, 6 Jan 2025 10:53:54 +0000 (11:53 +0100)] 
Merge pull request #3312 from hundeboll/modules-and-firmware-includes

Modules and firmware includes

7 months agoInclude linked firmware files 3312/head
Martin Hundebøll [Fri, 3 Jan 2025 11:00:31 +0000 (12:00 +0100)] 
Include linked firmware files

Some modules reference a firmware file that is just a link to a "real"
file. Make sure those files are also included when needed by resolving
those referenced symlinks and including their target files in the set of
required firmware files.

7 months agoBe less explicit about module matching sub directories
Martin Hundebøll [Fri, 3 Jan 2025 11:05:08 +0000 (12:05 +0100)] 
Be less explicit about module matching sub directories

The kernel module include/exclude logic matches against paths below any
folder in /usr/lib/modules/$(uname -r)/*/, and not just the `kernel`
folder. Replace the explicitly mentioned `kernel` folder from the
example path with an asterisk to make it clear the folders like `extra`
and `updates` are searched too.