]> git.ipfire.org Git - thirdparty/mkosi.git/log
thirdparty/mkosi.git
9 months agoAdd some extra tools tree packages to the default image 3164/head
Daan De Meyer [Sat, 2 Nov 2024 20:26:56 +0000 (21:26 +0100)] 
Add some extra tools tree packages to the default image

Now that we have mkosi sandbox, let's add ruff, mypy and pytest to
the tools tree so that they can be used with mkosi sandbox.

9 months agoAdd sandbox verb
Daan De Meyer [Sat, 2 Nov 2024 17:57:31 +0000 (18:57 +0100)] 
Add sandbox verb

In systemd, to run the integration tests, we need to run meson on
the host which will itself invoke mkosi to run the integration tests.
This means all the dependencies to run meson need to be installed on
the host. This doesn't just mean meson needs to be installed, but also
a compiler and various required build dependencies of systemd to allow
building tools invoked by mkosi to build the image.

To avoid having to install these dependencies on the host system, let's
introduce a sandbox verb which runs a command in the mkosi sandbox that's
also used by other verbs such as boot, qemu and shell. This then allows
extra required tools to be installed in the tools tree via ToolsTreePackages=
to allow running these commands without having to install them on the host
system.

9 months agoDrop tools tree from cache manifest
Daan De Meyer [Sat, 2 Nov 2024 19:39:53 +0000 (20:39 +0100)] 
Drop tools tree from cache manifest

The existing check is too primitive and actually causes issues when
using the new mkosi sandbox verb we'll add in the next commit so let's
drop it.

9 months agoAlways mount in /usr/share/factory from the host in relaxed sandbox
Daan De Meyer [Sat, 2 Nov 2024 17:55:51 +0000 (18:55 +0100)] 
Always mount in /usr/share/factory from the host in relaxed sandbox

If we're using /etc from the host, also use /usr/share/factory from
the host to account for symlinks from /etc into /usr/share/factory.

9 months agoDon't mount sandbox.py to /sandbox.py in relaxed sandbox
Daan De Meyer [Sat, 2 Nov 2024 15:35:44 +0000 (16:35 +0100)] 
Don't mount sandbox.py to /sandbox.py in relaxed sandbox

In a relaxed sandbox we'll never execute apivfs_script_cmd() or
chroot_script_cmd() so there's no need to mount sandbox.py in.

9 months agoAdd PATH entries beneath the user's home to PATH in relaxed sandbox
Daan De Meyer [Sat, 2 Nov 2024 15:11:07 +0000 (16:11 +0100)] 
Add PATH entries beneath the user's home to PATH in relaxed sandbox

This handles the case where a user adds ~/.local/bin to the PATH.
Let's make sure we use that even when running with a tools tree.
This might not work for binaries that are built against libraries
from the user's host /usr but there's lots of tools that will either
be statically compiled or written in an interpreted language like
python that will still work even when we switch out /usr from underneath
them.

9 months agoIgnore crypto mount if it only contains empty directories
Daan De Meyer [Sat, 2 Nov 2024 15:09:29 +0000 (16:09 +0100)] 
Ignore crypto mount if it only contains empty directories

Let's beef up the crypto mount check and check if there are only
empty directories in the mount and ignore it if that's the case.
This handles the case where e.g. on Arch installing pesign leads
to /etc/pki containing only /etc/pki/pesign as an empty directory.

9 months agoDon't remove default tools tree when mkosi -ff is used
Daan De Meyer [Sat, 2 Nov 2024 15:08:05 +0000 (16:08 +0100)] 
Don't remove default tools tree when mkosi -ff is used

Generally when -ff is specified users won't want to remove the
default tools tree if they're using one, so let's stop doing that.
The default tools tree is still removed when mkosi -f clean is invoked.

9 months agoMake default tools tree output name distribution independent
Daan De Meyer [Sat, 2 Nov 2024 15:06:42 +0000 (16:06 +0100)] 
Make default tools tree output name distribution independent

We included the distribution name when we first added this because
the tools tree distribution was different depending on which distribution
we were building. Now that we choose the tools tree distribution based on
the host distribution, this doesn't make much sense anymore, so get rid
of the distribution in the default tools tree output name and name it just
"tools" instead.

9 months agoMake asyncio imports lazy
Daan De Meyer [Sat, 2 Nov 2024 20:37:24 +0000 (21:37 +0100)] 
Make asyncio imports lazy

This is low hanging fruit to reduce the startup time a little.

9 months agoBump github/codeql-action from 3.26.10 to 3.27.0
dependabot[bot] [Fri, 1 Nov 2024 22:46:29 +0000 (22:46 +0000)] 
Bump github/codeql-action from 3.26.10 to 3.27.0

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.10 to 3.27.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e2b3eafc8d227b0241d48be5f425d47c2d750a13...662472033e021d55d94146f66f6058822b0b39fd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agoBump actions/checkout from 4.2.0 to 4.2.2
dependabot[bot] [Fri, 1 Nov 2024 22:46:22 +0000 (22:46 +0000)] 
Bump actions/checkout from 4.2.0 to 4.2.2

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/d632683dd7b4114ad314bca15554477dd762a938...11bd71901bbe5b1630ceea73d27597364c9af683)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
9 months agoRemove BuildDirectory= from PrepareScripts=
Michael Ferrari [Fri, 1 Nov 2024 12:24:21 +0000 (13:24 +0100)] 
Remove BuildDirectory= from PrepareScripts=

The BuildDirectory= is meant for files which are non-essential and can
be recreated during the build process of the image, so source files that
need to be acquired should be saved somewhere within the $BUILDROOT to
be cached for runs when PrepareScripts= aren't run (assuming incremental
builds).

9 months agoFix qemu gui output on aarch64
Davide Cavalca [Thu, 31 Oct 2024 22:52:42 +0000 (15:52 -0700)] 
Fix qemu gui output on aarch64

9 months agoMerge pull request #3156 from DaanDeMeyer/subuid
Daan De Meyer [Thu, 31 Oct 2024 21:51:23 +0000 (22:51 +0100)] 
Merge pull request #3156 from DaanDeMeyer/subuid

Map current user to root in subuid user namespace

9 months agoMap current user to root in subuid user namespace 3156/head
Daan De Meyer [Thu, 31 Oct 2024 10:58:28 +0000 (11:58 +0100)] 
Map current user to root in subuid user namespace

By mapping the current user to root in the subuid user namespace,
we don't have to change the ownership of all the files in the directory
tree to root in the subuid uid/gid range. This means that on btrfs
filesystems, we can do a subvolume snapshot instead of an expensive
full tree recursion to copy each file individually.

9 months agoShow a proper error message if /etc/subuid or /etc/subgid doesn't exist.
Daan De Meyer [Thu, 31 Oct 2024 11:00:52 +0000 (12:00 +0100)] 
Show a proper error message if /etc/subuid or /etc/subgid doesn't exist.

9 months agoMerge pull request #3157 from DaanDeMeyer/engine
Jörg Behrmann [Thu, 31 Oct 2024 17:04:07 +0000 (18:04 +0100)] 
Merge pull request #3157 from DaanDeMeyer/engine

Improvements for signing with engines

9 months agoPass through stdin to various signing tools if an engine is used 3157/head
Daan De Meyer [Thu, 31 Oct 2024 11:40:30 +0000 (12:40 +0100)] 
Pass through stdin to various signing tools if an engine is used

The engine might have a pin that needs to be entered via stdin so
let's pass through stdin if that's the case so that users can enter
the pin.

9 months agoBind /run when an engine might be used instead of only /run/pcscd
Daan De Meyer [Thu, 31 Oct 2024 11:36:09 +0000 (12:36 +0100)] 
Bind /run when an engine might be used instead of only /run/pcscd

It's not guaranteed that the engine will be the pkcs#11 one so let's
bind the entirety of /run in case another daemon might be used with
a socket elsewhere in /run.

9 months agoParse local drop-in configuration files
Stephen Larew [Wed, 30 Oct 2024 18:35:19 +0000 (11:35 -0700)] 
Parse local drop-in configuration files

9 months agoNever clean output directory when Format=none
Daan De Meyer [Wed, 30 Oct 2024 09:38:05 +0000 (10:38 +0100)] 
Never clean output directory when Format=none

If Format=none no outputs can be produced at all so let's make sure
we always keep the previous outputs intact when Format=none regardless
of whether -f is specified or not.

9 months agoqemu: move removable_flag into device_type
Jörg Behrmann [Wed, 30 Oct 2024 09:01:44 +0000 (10:01 +0100)] 
qemu: move removable_flag into device_type

Also drop the no longer needed noqa for the overly long line.

Followup for 1c3e71b1.

9 months agoUse scsi-hd when QemuRemovable is enabled
Stephen Larew [Wed, 30 Oct 2024 00:18:00 +0000 (17:18 -0700)] 
Use scsi-hd when QemuRemovable is enabled

9 months agoCheck if firmware subdirectory still exists before trying to remove it
Antonio Alvarez Feijoo [Tue, 29 Oct 2024 12:25:03 +0000 (13:25 +0100)] 
Check if firmware subdirectory still exists before trying to remove it

Detected with `mkosi-initrd`:

```
Calculating required kernel modules and firmware
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mkosi/run.py", line 64, in uncaught_exception_handler
    yield
  File "/usr/lib/python3.11/site-packages/mkosi/run.py", line 105, in fork_and_wait
    target(*args, **kwargs)
  File "/usr/lib/python3.11/site-packages/mkosi/__init__.py", line 4450, in run_build
    build_image(
  File "/usr/lib/python3.11/site-packages/mkosi/__init__.py", line 3668, in build_image
    run_depmod(context)
  File "/usr/lib/python3.11/site-packages/mkosi/__init__.py", line 2721, in run_depmod
    process_kernel_modules(
  File "/usr/lib/python3.11/site-packages/mkosi/kmod.py", line 248, in process_kernel_modules
    p.rmdir()
  File "/usr/lib64/python3.11/pathlib.py", line 1156, in rmdir
    os.rmdir(self)
FileNotFoundError: [Errno 2] No such file or directory: '/var/tmp/mkosi-workspace-9r8egfmc/root/usr/lib/firmware/yamaha'
```

Fixes c0d596dbee111f4730b26045a1f4d7da68a66047

9 months agoMerge pull request #3146 from DaanDeMeyer/clean
Jörg Behrmann [Tue, 29 Oct 2024 11:59:51 +0000 (12:59 +0100)] 
Merge pull request #3146 from DaanDeMeyer/clean

Remove access to the output directory in build scripts and only run clean scripts when we clean up the output dir

9 months agoopensuse: remove sysuser-shadow from initrd
Antonio Alvarez Feijoo [Tue, 29 Oct 2024 08:22:45 +0000 (09:22 +0100)] 
opensuse: remove sysuser-shadow from initrd

SUSE-ish utility pulled by some rpm scriptlets that calls systemd-sysusers or
shadow tools to create users and groups during installation.

9 months agoRemove access to the output directory in build scripts 3146/head
Daan De Meyer [Mon, 28 Oct 2024 20:27:30 +0000 (21:27 +0100)] 
Remove access to the output directory in build scripts

With mkosi -t none, we can rerun the build script without cleaning
the output directory. This creates an awkward situation, as the build
script might create new outputs but is unable to remove previous ones,
which could lead to weird situations where the output directory contains
artifacts from multiple builds.

Let's tighten this up by disallowing access to the output directory in
build scripts. Users can still copy from the build script to the output
directory by doing the copy from a post-installation script which is not
invoked when we run mkosi -t none so it only runs when we've cleaned up
the output directory.

9 months agoOnly run clean scripts when we clean up the output directory
Daan De Meyer [Mon, 28 Oct 2024 20:19:28 +0000 (21:19 +0100)] 
Only run clean scripts when we clean up the output directory

Clean scripts are intended to clean up the output directory, so let's
only run them when we actually decide to clean up the output directory.

9 months agoUnset $CONFIG in prepare scripts
Septatrix [Mon, 28 Oct 2024 14:56:09 +0000 (15:56 +0100)] 
Unset $CONFIG in prepare scripts

9 months agoMake sure verbs run in the current working directory
Daan De Meyer [Mon, 28 Oct 2024 14:14:28 +0000 (15:14 +0100)] 
Make sure verbs run in the current working directory

9 months agoMerge pull request #3142 from DaanDeMeyer/firmware
Jörg Behrmann [Mon, 28 Oct 2024 15:13:03 +0000 (16:13 +0100)] 
Merge pull request #3142 from DaanDeMeyer/firmware

Delete empty firmware subdirectories

9 months agoDelete empty firmware subdirectories 3142/head
Daan De Meyer [Mon, 28 Oct 2024 13:36:32 +0000 (14:36 +0100)] 
Delete empty firmware subdirectories

Fixes #3124

9 months agoUse firmwared variable in one more place
Daan De Meyer [Mon, 28 Oct 2024 13:36:18 +0000 (14:36 +0100)] 
Use firmwared variable in one more place

9 months agoAllow specifying OpenPGP implementation to use for signing
Wiktor Kwapisiewicz [Thu, 19 Sep 2024 13:17:27 +0000 (15:17 +0200)] 
Allow specifying OpenPGP implementation to use for signing

Fixes: https://github.com/systemd/mkosi/issues/3042
9 months agoopensuse: remove which from initrd
Antonio Alvarez Feijoo [Mon, 28 Oct 2024 08:05:25 +0000 (09:05 +0100)] 
opensuse: remove which from initrd

`less` had hard requirements on `which` and `file` (so also `file-magic` and
`libmagic1`), reworked via packaging in Tumbleweed (
https://build.opensuse.org/request/show/1218137) and available since snapshot
20241025.

9 months agomkosi-initrd: honor x-initrd.attach options in crypttab
Antonio Alvarez Feijoo [Tue, 22 Oct 2024 14:49:39 +0000 (16:49 +0200)] 
mkosi-initrd: honor x-initrd.attach options in crypttab

9 months agoMerge pull request #3131 from NekkoDroid/no-more-split-uki
Daan De Meyer [Fri, 25 Oct 2024 15:30:30 +0000 (17:30 +0200)] 
Merge pull request #3131 from NekkoDroid/no-more-split-uki

Allow more granular control on which artifacts are output

9 months agokernel-install: fix move of cpio output file
Antonio Alvarez Feijoo [Fri, 25 Oct 2024 15:08:58 +0000 (17:08 +0200)] 
kernel-install: fix move of cpio output file

Its name is already `initrd` since 6b0dfe58f3f04264f1df5cb90b7091195913562f

Otherwise:

```
‣  /tmp/tmpgpvfc6y8/initrd.cpio.zst size is 44.9M, consumes 44.9M.
‣ Copying /tmp/tmpgpvfc6y8/initrd to /tmp/kernel-install.staging.KXnXSC/initrd
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mkosi/run.py", line 64, in uncaught_exception_handler
    yield
  File "/usr/lib64/python3.11/contextlib.py", line 81, in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/kernel/install.d/50-mkosi.install", line 167, in main
    shutil.move(next(context.staging_area.glob("initrd*.cpio*")), context.staging_area / "initrd")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration
/usr/lib/kernel/install.d/50-mkosi.install failed with exit status 1.
```

9 months agoman/mkosi-initrd: fix description of --output option
Antonio Alvarez Feijoo [Fri, 25 Oct 2024 13:50:12 +0000 (15:50 +0200)] 
man/mkosi-initrd: fix description of --output option

Follow-up for 6b0dfe58f3f04264f1df5cb90b7091195913562f

9 months agoSet qemu drive caching options for qemu drives as well
Daan De Meyer [Wed, 23 Oct 2024 09:50:15 +0000 (11:50 +0200)] 
Set qemu drive caching options for qemu drives as well

We already set these for the scratch device, let's make sure we set
them for any drives we allocate as well.

We also make sure the drive size is aligned to the page size so qemu
can use O_DIRECT.

9 months agoMerge pull request #3137 from DaanDeMeyer/stuff
Daan De Meyer [Tue, 22 Oct 2024 18:21:46 +0000 (20:21 +0200)] 
Merge pull request #3137 from DaanDeMeyer/stuff

Various fixes

9 months agomkosi-initrd: Include virtio_blk module 3137/head
Daan De Meyer [Tue, 22 Oct 2024 17:41:35 +0000 (19:41 +0200)] 
mkosi-initrd: Include virtio_blk module

9 months agoUse virtio-blk-pci unless scsi-hd is really needed
Daan De Meyer [Tue, 22 Oct 2024 17:40:10 +0000 (19:40 +0200)] 
Use virtio-blk-pci unless scsi-hd is really needed

https://www.qemu.org/2021/01/19/virtio-blk-scsi-configuration/
mentions that for performance critical use cases, virtio-blk should
be preferred so let's use virtio-blk unless we actually need scsi-hd.

9 months agoMake qemu drives and scratch device NOCOW as well
Daan De Meyer [Tue, 22 Oct 2024 17:35:51 +0000 (19:35 +0200)] 
Make qemu drives and scratch device NOCOW as well

These will face lots of random writes as well so let's make these
NOCOW as well.

9 months agoDon't unconditionally enable epel for mkosi-initrd
Daan De Meyer [Sun, 20 Oct 2024 08:58:08 +0000 (10:58 +0200)] 
Don't unconditionally enable epel for mkosi-initrd

Whether to enable epel or not should be up to the user, not hard coded
by us, so drop the config snippet that enables the epel repositories.

follow-up for 886f091a743a6ac808c20ef59e9cf7e20703376d

To enable the epel repositories for mkosi-initrd, you'd do something
like the following:

"""
[Distribution]
Distribution=centos
Release=9
Repositories=epel,epel-next

[Include]
Include=mkosi-initrd
"""

We don't currently have a way to enable the epel repositories when
using mkosi-initrd, because it always uses the exact same repositories
as the host system. However, erofs-utils can still be installed by just
including it using /usr/lib/mkosi-initrd/mkosi.conf without a match
section.

9 months agoImplement default values for the simple config parser
Daan De Meyer [Mon, 21 Oct 2024 18:02:22 +0000 (20:02 +0200)] 
Implement default values for the simple config parser

9 months agoMake SplitArtifacts= take a list of values 3131/head
Michael Ferrari [Sun, 20 Oct 2024 11:11:32 +0000 (13:11 +0200)] 
Make SplitArtifacts= take a list of values

This allows more precision on which artifacts are actually split out of
the image and placed into the output directory. Defaults to splitting
the UKI, vmlinuz and the initrd out.

9 months agoRefactor copy_{uki,vmlinuz,initrd}
Michael Ferrari [Thu, 17 Oct 2024 19:52:28 +0000 (21:52 +0200)] 
Refactor copy_{uki,vmlinuz,initrd}

A follow-up commit will introduce the ability to disable copying these
to the output directory, so refactor all the logic so that they are
contained within their respectiv functions.

9 months agoopensuse: prevent zypper from pulling busybox in the initrd
Antonio Alvarez Feijoo [Fri, 18 Oct 2024 09:43:32 +0000 (11:43 +0200)] 
opensuse: prevent zypper from pulling busybox in the initrd

zypper's internal logic selects busybox-package variants of packages that are
required via dependency and not explicitly listed to install, which also causes
busybox to be added to the initrd.

Also, remove the shadow package (the equivalent to the shadow-utils package in
Fedora).

9 months agoMove copy_nspawn_settings
Michael Ferrari [Fri, 18 Oct 2024 09:08:04 +0000 (11:08 +0200)] 
Move copy_nspawn_settings

9 months agoFix conf with settings in Content instead of Build
Antonio Alvarez Feijoo [Wed, 16 Oct 2024 13:33:05 +0000 (15:33 +0200)] 
Fix conf with settings in Content instead of Build

Follow-up for 6912dc0ea0c7e20900a9b5d2c43343c1c782e91c

9 months agoFix mkosi-initrd conf for CentOS EPEL
Antonio Alvarez Feijoo [Wed, 16 Oct 2024 08:28:14 +0000 (10:28 +0200)] 
Fix mkosi-initrd conf for CentOS EPEL

Fixes #3127

9 months agoSync man and help output
Antonio Alvarez Feijoo [Mon, 14 Oct 2024 08:08:18 +0000 (10:08 +0200)] 
Sync man and help output

10 months agoFix repart definition for ESP builds
Septatrix [Fri, 11 Oct 2024 15:52:00 +0000 (17:52 +0200)] 
Fix repart definition for ESP builds

10 months agoMerge pull request #3123 from septatrix/more-fsck-in-initrd
Daan De Meyer [Fri, 11 Oct 2024 14:20:58 +0000 (16:20 +0200)] 
Merge pull request #3123 from septatrix/more-fsck-in-initrd

Add erofs and fat utils to initrd

10 months agoAdd erofs and fat utils to initrd 3123/head
Septatrix [Fri, 11 Oct 2024 11:06:09 +0000 (13:06 +0200)] 
Add erofs and fat utils to initrd

These provide the respective fsck progs

10 months agoAdd erofs and fat utils to initrd
Septatrix [Fri, 11 Oct 2024 11:02:41 +0000 (13:02 +0200)] 
Add erofs and fat utils to initrd

These provide the respective fsck progs

10 months agoAdd a new QemuRemovable option to allow attaching the image to qemu as removable
Paul Wicks [Wed, 9 Oct 2024 23:25:32 +0000 (16:25 -0700)] 
Add a new QemuRemovable option to allow attaching the image to qemu as removable

Add noqa for overlength line

Fix failing test

Rewrap QemuRemovable section on the man page to column 109

10 months agoAdd erofs and fat utils to initrd
Septatrix [Thu, 10 Oct 2024 16:09:59 +0000 (18:09 +0200)] 
Add erofs and fat utils to initrd

These provide the respective fsck progs

10 months agoClarify explanation of `Verity=` option
Nils K [Thu, 10 Oct 2024 14:06:48 +0000 (16:06 +0200)] 
Clarify explanation of `Verity=` option

This clarifies that the "auto" value for the verity option
only really makes sense for extension images.

10 months agoUpdate description of `ToolsTreeDistribution=`
Nils K [Thu, 10 Oct 2024 15:19:55 +0000 (17:19 +0200)] 
Update description of `ToolsTreeDistribution=`

It was changed to default to the host distro instead of the target distro a while a ago but this was forgotten.

10 months agoMerge pull request #3120 from DaanDeMeyer/fix
Daan De Meyer [Thu, 10 Oct 2024 14:48:20 +0000 (16:48 +0200)] 
Merge pull request #3120 from DaanDeMeyer/fix

Log config file path where available on config file parse errors

10 months agoFix sections of various settings 3120/head
Daan De Meyer [Thu, 10 Oct 2024 12:45:28 +0000 (14:45 +0200)] 
Fix sections of various settings

10 months agoLog config file path where available on config file parse errors
Daan De Meyer [Thu, 10 Oct 2024 12:40:57 +0000 (14:40 +0200)] 
Log config file path where available on config file parse errors

10 months agoCheck if tools tree exists before statting it in cache_manifest()
Daan De Meyer [Thu, 10 Oct 2024 12:12:55 +0000 (14:12 +0200)] 
Check if tools tree exists before statting it in cache_manifest()

The tools tree might have been removed because it's cache was out of
date so let's make sure we check it exists in cache_manifest().

10 months agoCopy SYSEXT_LEVEL from os-release to extension-release as well
Daan De Meyer [Thu, 10 Oct 2024 10:21:16 +0000 (12:21 +0200)] 
Copy SYSEXT_LEVEL from os-release to extension-release as well

Fixes #3117

10 months agoMerge pull request #3115 from DaanDeMeyer/stuff
Daan De Meyer [Wed, 9 Oct 2024 18:01:30 +0000 (20:01 +0200)] 
Merge pull request #3115 from DaanDeMeyer/stuff

Various fixes for extension images

10 months agoAdd Verity= feature 3115/head
Daan De Meyer [Wed, 9 Oct 2024 11:46:21 +0000 (13:46 +0200)] 
Add Verity= feature

This allows explicitly enabling/disabling use of verity for disk and
extension images as requested in #3113..

10 months agoRun various cleanup operations without the base trees mounted
Daan De Meyer [Wed, 9 Oct 2024 11:51:51 +0000 (13:51 +0200)] 
Run various cleanup operations without the base trees mounted

When running cleanup operations just before we finish the build and
we're building with Overlay=yes, we only want the cleanup to apply
to the overlay, not the base trees, so it makes sense to run the
final cleanup operations and the finalize scripts without the base
trees mounted.

This makes using chroot finalize scripts for overlay images impossible
but this shouldn't be a huge issue.

Package removals and selinux relabelling still run with the base trees
mounted because those operations rely on various files included in the
base trees.

10 months agodocs: Mention Format=none in sysext doc
Daan De Meyer [Wed, 9 Oct 2024 11:45:39 +0000 (13:45 +0200)] 
docs: Mention Format=none in sysext doc

This allows disabling building of the default image as requested
in #3113.

10 months agoMerge pull request #3109 from DaanDeMeyer/tests-tools
Jörg Behrmann [Mon, 7 Oct 2024 15:21:32 +0000 (17:21 +0200)] 
Merge pull request #3109 from DaanDeMeyer/tests-tools

Make tools tree available in tests

10 months agoconfig: Make recursive_paths configurable with globs
Jörg Behrmann [Mon, 7 Oct 2024 08:48:53 +0000 (10:48 +0200)] 
config: Make recursive_paths configurable with globs

10 months agoMake tools tree available in tests 3109/head
Daan De Meyer [Mon, 7 Oct 2024 08:39:38 +0000 (10:39 +0200)] 
Make tools tree available in tests

For use with find_binary() to check if binaries exist in the tools
tree.

10 months agoPut .profile section values in quotes if not alphanumeric
Daan De Meyer [Mon, 7 Oct 2024 10:38:12 +0000 (12:38 +0200)] 
Put .profile section values in quotes if not alphanumeric

This is supposed to be sourcable by shells so make sure we use
quotes in case values with whitespace are used.

10 months agoBe specific about noqa tags
Jörg Behrmann [Mon, 7 Oct 2024 08:34:00 +0000 (10:34 +0200)] 
Be specific about noqa tags

10 months agoDefine our own config for PE addons and UKI profiles
Daan De Meyer [Sun, 6 Oct 2024 13:30:57 +0000 (15:30 +0200)] 
Define our own config for PE addons and UKI profiles

ukify's config parser uses python's configparser module and as such
suffers from all its issues just like we used to in mkosi. Having ukify
parse the config file also means that we have to make sure any paths
configured in the profile are available in the sandbox.

Instead, let's define our own configs for the PE addons and UKI profiles
so we get to take advantage of our own config file parser and have full
knowledge of all the configured settings so we can mount extra stuff into
the sandbox if needed.

It also gets rid of the hack where we parse ukify's config file to figure
out the command line.

10 months agodocs: fix broken man page link on the website
Jelle van der Waa [Mon, 7 Oct 2024 10:01:50 +0000 (12:01 +0200)] 
docs: fix broken man page link on the website

10 months agoMake find_binary()'s root argument optional
Daan De Meyer [Mon, 7 Oct 2024 08:39:21 +0000 (10:39 +0200)] 
Make find_binary()'s root argument optional

Makes it a little easier to use.

10 months agoUse fmt: skip instead of noqa in two places
Daan De Meyer [Mon, 7 Oct 2024 08:14:43 +0000 (10:14 +0200)] 
Use fmt: skip instead of noqa in two places

10 months agoRemove DownloadUser from provided pacman.conf
Daan De Meyer [Sat, 5 Oct 2024 12:32:28 +0000 (14:32 +0200)] 
Remove DownloadUser from provided pacman.conf

Fixes #3048

10 months agoMerge pull request #3103 from DaanDeMeyer/relax
Daan De Meyer [Mon, 7 Oct 2024 08:01:19 +0000 (10:01 +0200)] 
Merge pull request #3103 from DaanDeMeyer/relax

Relax read-only mounts even more

10 months agotree-wide: Use workdir() everywhere 3103/head
Daan De Meyer [Fri, 4 Oct 2024 18:37:05 +0000 (20:37 +0200)] 
tree-wide: Use workdir() everywhere

Let's make sure we mount inputs and outputs to various tools in a
completely separate directory than the base ones that are in the
sandbox.

10 months agoMake sure various directory exist when we shortcut sandbox_cmd()
Daan De Meyer [Fri, 4 Oct 2024 19:50:02 +0000 (21:50 +0200)] 
Make sure various directory exist when we shortcut sandbox_cmd()

10 months agoMake sure swtpm is run in a scope, not swtpm_setup
Daan De Meyer [Fri, 4 Oct 2024 19:49:47 +0000 (21:49 +0200)] 
Make sure swtpm is run in a scope, not swtpm_setup

10 months agoRelax read-only mounts even more
Daan De Meyer [Fri, 4 Oct 2024 14:23:11 +0000 (16:23 +0200)] 
Relax read-only mounts even more

Turns out having home directories as a subdirectory of /usr is a thing.
Let's relax the readonly mount requirements even more to make this use
case work as well.

10 months agoMerge pull request #3102 from DaanDeMeyer/pcr
Daan De Meyer [Fri, 4 Oct 2024 19:37:05 +0000 (21:37 +0200)] 
Merge pull request #3102 from DaanDeMeyer/pcr

Allow signing expected PCRs independently of using secure boot

10 months agoAllow signing expected PCRs independently of using secure boot 3102/head
Daan De Meyer [Fri, 4 Oct 2024 14:19:29 +0000 (16:19 +0200)] 
Allow signing expected PCRs independently of using secure boot

10 months agoInstall tpm2.0-tools in opensuse tools tree
Daan De Meyer [Fri, 4 Oct 2024 17:33:26 +0000 (19:33 +0200)] 
Install tpm2.0-tools in opensuse tools tree

Makes sure the tpm2.0 libraries are pulled in which is required for
syztemd-measure.

10 months agoInstall python3-cryptography in opensuse tools tree
Daan De Meyer [Fri, 4 Oct 2024 17:15:07 +0000 (19:15 +0200)] 
Install python3-cryptography in opensuse tools tree

Required by ukify

10 months agoMerge pull request #3101 from aafeijoo-suse/use-distro-pretty-name
Jörg Behrmann [Fri, 4 Oct 2024 13:53:51 +0000 (15:53 +0200)] 
Merge pull request #3101 from aafeijoo-suse/use-distro-pretty-name

Print distribution pretty name on installation

10 months agoRename Profile= match to Profiles=
Daan De Meyer [Fri, 4 Oct 2024 12:13:41 +0000 (14:13 +0200)] 
Rename Profile= match to Profiles=

Matches related to settings are named after their setting so this
should be Profiles= similarly to the Repositories= match. The old
name will still work as well but we use the new one in docs.

10 months agoUse openSUSE everywhere 3101/head
Antonio Alvarez Feijoo [Fri, 4 Oct 2024 13:13:25 +0000 (15:13 +0200)] 
Use openSUSE everywhere

10 months agoPrint distribution pretty name on installation
Antonio Alvarez Feijoo [Fri, 4 Oct 2024 13:02:22 +0000 (15:02 +0200)] 
Print distribution pretty name on installation

10 months agoMove various settings to the [Build] section
Daan De Meyer [Fri, 4 Oct 2024 12:04:54 +0000 (14:04 +0200)] 
Move various settings to the [Build] section

These all make more sense to have in the [Build] section.

10 months agoMerge pull request #3090 from DaanDeMeyer/profiles
Daan De Meyer [Fri, 4 Oct 2024 11:59:31 +0000 (13:59 +0200)] 
Merge pull request #3090 from DaanDeMeyer/profiles

Introduce UnifiedKernelImageProfiles=

10 months agoIntroduce UnifiedKernelImageProfiles= 3090/head
Daan De Meyer [Tue, 1 Oct 2024 12:49:37 +0000 (14:49 +0200)] 
Introduce UnifiedKernelImageProfiles=

Same concept as PEAddons=, except these are added as additional
profiles to every UKI built by mkosi.

Accompanying systemd PR: https://github.com/systemd/systemd/pull/34608

10 months agoSimplify run_ukify() and related functions a little
Daan De Meyer [Tue, 1 Oct 2024 12:46:24 +0000 (14:46 +0200)] 
Simplify run_ukify() and related functions a little

10 months agomkosi-initrd: only set restrictive umask to create output dir if user is root
Antonio Alvarez Feijoo [Fri, 4 Oct 2024 10:14:40 +0000 (12:14 +0200)] 
mkosi-initrd: only set restrictive umask to create output dir if user is root

10 months agomkosi-initrd: build using a temporary directory
Antonio Alvarez Feijoo [Thu, 3 Oct 2024 13:31:21 +0000 (15:31 +0200)] 
mkosi-initrd: build using a temporary directory

Fixes #3083