]> git.ipfire.org Git - thirdparty/mkosi.git/log
thirdparty/mkosi.git
22 months agoUse GenericVersion() for CentOS version comparisons 1968/head
Daan De Meyer [Tue, 10 Oct 2023 12:38:10 +0000 (14:38 +0200)] 
Use GenericVersion() for CentOS version comparisons

This allows using RHEL point releases with --release (e.g. 9.2)

22 months agoAllow comparing GenericVersion() against int and str values
Daan De Meyer [Tue, 10 Oct 2023 12:37:52 +0000 (14:37 +0200)] 
Allow comparing GenericVersion() against int and str values

22 months agoAdd RHEL support
Daan De Meyer [Tue, 10 Oct 2023 09:48:01 +0000 (11:48 +0200)] 
Add RHEL support

To make RHEL work, we have to look up the necessary certificates and
add them to the generated repo files. This requires the image build to
be done from a system with a RHEL subscription.

22 months agoEnable codeready-builder by default on RHEL
Daan De Meyer [Tue, 10 Oct 2023 13:27:41 +0000 (15:27 +0200)] 
Enable codeready-builder by default on RHEL

We enable CRB by default on CentOS as well, so do the same for
codeready-builder on RHEL.

22 months agoGet rid of config_default_mirror()
Daan De Meyer [Tue, 10 Oct 2023 12:02:46 +0000 (14:02 +0200)] 
Get rid of config_default_mirror()

The only advantage of having it in the config object is that we can
show it in the summary. If we're fine with just showing "default"
instead, we can inline the default mirror into the installer classes,
which is important for the next commit.

We also document the default mirrors used.

22 months agoAdd newline between repos in generated mkosi.repo file
Daan De Meyer [Tue, 10 Oct 2023 10:32:41 +0000 (12:32 +0200)] 
Add newline between repos in generated mkosi.repo file

22 months agoPass around MkosiState in centos based distributions
Daan De Meyer [Tue, 10 Oct 2023 09:36:59 +0000 (11:36 +0200)] 
Pass around MkosiState in centos based distributions

We need access to the pkgmngr tree to be able to look for GPG keys
or certificates there, so let's pass around MkosiState everywhere.

22 months agoMention secure boot auto enrollment minimum systemd version
Daan De Meyer [Tue, 10 Oct 2023 06:26:55 +0000 (08:26 +0200)] 
Mention secure boot auto enrollment minimum systemd version

22 months agoMerge pull request #1964 from DaanDeMeyer/testing
Jörg Behrmann [Mon, 9 Oct 2023 17:41:20 +0000 (19:41 +0200)] 
Merge pull request #1964 from DaanDeMeyer/testing

fedora: Add updates-testing repositories

22 months agofedora: Add updates-testing repositories 1964/head
Daan De Meyer [Mon, 9 Oct 2023 12:53:47 +0000 (14:53 +0200)] 
fedora: Add updates-testing repositories

22 months agoAdd extra search paths to $PATH when booting
Daan De Meyer [Mon, 9 Oct 2023 12:41:51 +0000 (14:41 +0200)] 
Add extra search paths to $PATH when booting

22 months agoMerge pull request #1963 from DaanDeMeyer/check
Daan De Meyer [Mon, 9 Oct 2023 09:46:47 +0000 (11:46 +0200)] 
Merge pull request #1963 from DaanDeMeyer/check

Extend tools checks for ukify and systemd-repart

22 months agoExtend tools checks for ukify and systemd-repart 1963/head
Daan De Meyer [Mon, 9 Oct 2023 09:09:46 +0000 (11:09 +0200)] 
Extend tools checks for ukify and systemd-repart

Let's check for systemd-repart and systemd-nspawn as well and make
sure the versions of all are recent enough.

Also make sure we check for tools when booting the image as we don't
always build it first.

22 months agoAdd stringification of GenericVersion()
Daan De Meyer [Mon, 9 Oct 2023 09:07:44 +0000 (11:07 +0200)] 
Add stringification of GenericVersion()

22 months agoRelease 18 v18
Luca Boccassi [Thu, 5 Oct 2023 14:52:38 +0000 (15:52 +0100)] 
Release 18

22 months agoVerify that two instances of MkosiConfig.default() are always equal
Daan De Meyer [Thu, 5 Oct 2023 14:21:57 +0000 (16:21 +0200)] 
Verify that two instances of MkosiConfig.default() are always equal

22 months agoUpdate NEWS.md
Daan De Meyer [Thu, 5 Oct 2023 13:36:29 +0000 (15:36 +0200)] 
Update NEWS.md

22 months agoNote minimum systemd version requirement for RuntimeTrees=
Daan De Meyer [Thu, 5 Oct 2023 13:36:17 +0000 (15:36 +0200)] 
Note minimum systemd version requirement for RuntimeTrees=

22 months agoFix CentOS SIG keys
Daan De Meyer [Thu, 5 Oct 2023 13:45:10 +0000 (15:45 +0200)] 
Fix CentOS SIG keys

22 months agoMerge pull request #1953 from behrmann/pascalcase
Daan De Meyer [Thu, 5 Oct 2023 12:36:39 +0000 (14:36 +0200)] 
Merge pull request #1953 from behrmann/pascalcase

json: move JSON keys to PascalCase

22 months agoeditorconfig: Add global defaults for indent_style and indent_size
Daan De Meyer [Thu, 5 Oct 2023 11:24:36 +0000 (13:24 +0200)] 
editorconfig: Add global defaults for indent_style and indent_size

22 months agojson: fix typos and add missing raise 1953/head
Joerg Behrmann [Thu, 5 Oct 2023 10:45:03 +0000 (12:45 +0200)] 
json: fix typos and add missing raise

22 months agojson: move JSON keys to PascalCase
Joerg Behrmann [Wed, 4 Oct 2023 15:41:46 +0000 (17:41 +0200)] 
json: move JSON keys to PascalCase

22 months agoAdd a policy on adding new distributions
Daan De Meyer [Wed, 4 Oct 2023 19:22:03 +0000 (21:22 +0200)] 
Add a policy on adding new distributions

Fixes #236

22 months agoMention OutputDirectory= when parsing Output= or --output fails
Daan De Meyer [Wed, 4 Oct 2023 19:42:28 +0000 (21:42 +0200)] 
Mention OutputDirectory= when parsing Output= or --output fails

Fixes #1824

22 months agoMerge pull request #1955 from DaanDeMeyer/deterministic
Daan De Meyer [Wed, 4 Oct 2023 19:43:56 +0000 (21:43 +0200)] 
Merge pull request #1955 from DaanDeMeyer/deterministic

Fail when running without configuration

22 months agoFail when running without configuration 1955/head
Daan De Meyer [Wed, 4 Oct 2023 19:07:11 +0000 (21:07 +0200)] 
Fail when running without configuration

Fixes #609

22 months agoDon't leak cwd into MkosiConfig
Daan De Meyer [Wed, 4 Oct 2023 19:02:10 +0000 (21:02 +0200)] 
Don't leak cwd into MkosiConfig

Storing Path.cwd() in MkosiConfig makes it complicated to figure
out if a MkosiConfig instance is equal to MkosiConfig.default() as
that one executes after changing directory to a temporary directory,
so let's remove our default factories for the output and workspace
directory and add two methods on the MkosiConfig class instead that
replicate the functionality.

22 months agoAdd ImageId= and ImageVersion= specifiers
Daan De Meyer [Wed, 4 Oct 2023 16:50:07 +0000 (18:50 +0200)] 
Add ImageId= and ImageVersion= specifiers

Also rework the specifier tests a bit.

22 months agoMerge pull request #1952 from DaanDeMeyer/config
Daan De Meyer [Wed, 4 Oct 2023 16:22:53 +0000 (18:22 +0200)] 
Merge pull request #1952 from DaanDeMeyer/config

Add support for specifiers

22 months agoAdd support for specifiers 1952/head
Daan De Meyer [Wed, 4 Oct 2023 11:52:26 +0000 (13:52 +0200)] 
Add support for specifiers

Let's allow referring to the value of various settings using
specifiers.

Fixes #1664

22 months agoParse setting paths before parsing main config file
Daan De Meyer [Wed, 4 Oct 2023 11:30:19 +0000 (13:30 +0200)] 
Parse setting paths before parsing main config file

Currently, paths either configure default values or append to a
list (When path_default is False, it's always a list based setting).

When paths are configuring default values, it makes more sense for
default values set in the mkosi.conf file to override path based
default values.

When appending to a list, (e.g. ExtraTrees=), it makes more sense
for the trees configured in the mkosi.conf to come after the tree
from the path (mkosi.extra).

Both these goals are achieved by parsing the path based values before
parsing the main mkosi.conf file.

22 months agoMerge pull request #1951 from DaanDeMeyer/custom
Daan De Meyer [Wed, 4 Oct 2023 10:41:53 +0000 (12:41 +0200)] 
Merge pull request #1951 from DaanDeMeyer/custom

Rename "none" distribution to "custom"

22 months agoStop explicitly setting distribution in tests 1951/head
Daan De Meyer [Wed, 4 Oct 2023 08:46:39 +0000 (10:46 +0200)] 
Stop explicitly setting distribution in tests

We now default to "custom" when we can't figure out the host
distribution instead of failing so let's stop explicitly setting
the distribution in tests.

22 months agoRename "none" distribution to "custom"
Daan De Meyer [Wed, 4 Oct 2023 08:41:41 +0000 (10:41 +0200)] 
Rename "none" distribution to "custom"

"custom" seems a better fit than "none" since there likely still
is a distribution, we just don't support it.

22 months agoMerge pull request #1914 from behrmann/json
Daan De Meyer [Wed, 4 Oct 2023 08:17:46 +0000 (10:17 +0200)] 
Merge pull request #1914 from behrmann/json

Make `MkosiArgs` and `MkosiConfig` dumpable to and loadble from JSON

22 months agoconfig: factor out settings_lookup_by* and match_lookup from parse_config 1914/head
Joerg Behrmann [Wed, 4 Oct 2023 07:52:24 +0000 (09:52 +0200)] 
config: factor out settings_lookup_by* and match_lookup from parse_config

All three (settings_lookup_by_name, settings_lookup_by_dest, and match_lookup)
only repackage global variables. Moving them outside makes them usable in other
places and only calculates them once instead of on every invocation of
parse_config.

22 months agojson: produce a known error when parsing JSON
Joerg Behrmann [Wed, 27 Sep 2023 10:46:32 +0000 (12:46 +0200)] 
json: produce a known error when parsing JSON

22 months agojson: add alternative constructor from partial JSON for MkosiArgs and MkosiConfig
Joerg Behrmann [Wed, 27 Sep 2023 09:17:10 +0000 (11:17 +0200)] 
json: add alternative constructor from partial JSON for MkosiArgs and MkosiConfig

22 months agojson: add alternative default constructors to MkosiArgs and MkosiConfig
Joerg Behrmann [Wed, 27 Sep 2023 09:15:52 +0000 (11:15 +0200)] 
json: add alternative default constructors to MkosiArgs and MkosiConfig

These can be used to get a default MkosiArgs/MkosiConfig just have if mkosi had
been called in an empty directory with no cmdline without adding defaults to
the attributes and allowing instances of MkosiArgs/MkosiConfig to be made with
missing keys.

22 months agojson: make JSON readable from dicts and files as well es strings
Joerg Behrmann [Wed, 27 Sep 2023 08:38:49 +0000 (10:38 +0200)] 
json: make JSON readable from dicts and files as well es strings

22 months agotest: add tests for json dumping
Joerg Behrmann [Tue, 19 Sep 2023 20:41:25 +0000 (22:41 +0200)] 
test: add tests for json dumping

22 months agojson: make MkosiArgs and MkosiConfig loadable from json
Joerg Behrmann [Sun, 17 Sep 2023 16:56:21 +0000 (18:56 +0200)] 
json: make MkosiArgs and MkosiConfig loadable from json

22 months agojson: make MkosiArgs and MkosiConfig JSON-dumpable
Joerg Behrmann [Fri, 15 Sep 2023 16:19:35 +0000 (18:19 +0200)] 
json: make MkosiArgs and MkosiConfig JSON-dumpable

22 months agoconfig: fix type of presets and dependencies
Joerg Behrmann [Thu, 21 Sep 2023 10:25:01 +0000 (12:25 +0200)] 
config: fix type of presets and dependencies

tuple[str] is a single element tuple, whereas tuple[str, ...] is a tuple of
arbitrary length (with only str elements)

22 months agoconfig: don't use Sequence in MkosiConfig definition
Joerg Behrmann [Fri, 15 Sep 2023 16:19:01 +0000 (18:19 +0200)] 
config: don't use Sequence in MkosiConfig definition

22 months agoFix ruff warnings
Joerg Behrmann [Thu, 21 Sep 2023 10:54:51 +0000 (12:54 +0200)] 
Fix ruff warnings

- reformat overly long lines
- remove typing.Type in favour of type
- import Iterablefrom collections.abc instead of typing
- compare singletons with is
- don't use "ambiguous variable name: l"

22 months agoMake sure we chdir() to directories when parsing includes
Daan De Meyer [Tue, 3 Oct 2023 13:56:56 +0000 (15:56 +0200)] 
Make sure we chdir() to directories when parsing includes

22 months agoAdd "none" distribution
Stefan Nickl [Wed, 27 Sep 2023 18:31:53 +0000 (20:31 +0200)] 
Add "none" distribution

22 months agoUse local GPG keys from distribution-gpg-keys if available
Daan De Meyer [Tue, 3 Oct 2023 12:42:50 +0000 (14:42 +0200)] 
Use local GPG keys from distribution-gpg-keys if available

Let's prefer using local keys from the distribution-gpg-keys package
if available.

22 months agoAlways set the ttyS0 credentials
Daan De Meyer [Tue, 3 Oct 2023 08:08:41 +0000 (10:08 +0200)] 
Always set the ttyS0 credentials

Even when booting with GUI, we might still have a serial terminal,
so let's always set the serial terminal specific size credentials
as these don't affect the GUI terminals at all.

22 months agoOnly parse each path included with Include= once
Daan De Meyer [Mon, 2 Oct 2023 11:08:30 +0000 (13:08 +0200)] 
Only parse each path included with Include= once

Even if a path is included multiple times using Include=, let's make
sure we only parse it once.

22 months agoOnly add console=ttyS0 and tty sizes when QemuGui= is disabled
Daan De Meyer [Mon, 2 Oct 2023 08:24:19 +0000 (10:24 +0200)] 
Only add console=ttyS0 and tty sizes when QemuGui= is disabled

With console=ttyS0, we don't get any boot logs when running qemu
in GUI mode. The tty sizes don't matter either when booting in GUI
mode as Linux can figure it out itself in that scenario.

22 months agoMerge pull request #1945 from behrmann/moredefaults
Daan De Meyer [Mon, 2 Oct 2023 08:15:01 +0000 (10:15 +0200)] 
Merge pull request #1945 from behrmann/moredefaults

Add pesign to all default tools trees and apt to Arch's

22 months agoMerge pull request #1944 from DaanDeMeyer/size
Daan De Meyer [Mon, 2 Oct 2023 08:14:43 +0000 (10:14 +0200)] 
Merge pull request #1944 from DaanDeMeyer/size

Add RuntimeSize= setting

22 months agotools: add apt to Arch default tools tree 1945/head
Joerg Behrmann [Mon, 2 Oct 2023 07:56:09 +0000 (09:56 +0200)] 
tools: add apt to Arch default tools tree

22 months agotools: add pesign to Arch, Debian and OpenSUSE default tools trees
Joerg Behrmann [Mon, 2 Oct 2023 07:54:21 +0000 (09:54 +0200)] 
tools: add pesign to Arch, Debian and OpenSUSE default tools trees

22 months agoAdd RuntimeSize= setting 1944/head
Daan De Meyer [Sun, 1 Oct 2023 18:20:12 +0000 (20:20 +0200)] 
Add RuntimeSize= setting

Currently we unconditionally grow disk images to 8G before booting
them in systemd-nspawn or qemu. Let's do better here by making the
size configurable and not growing the disk images by default.

We also move format_bytes() to config.py as most other formatting
functions are located there.

22 months agoAdd back parse_bytes() function as config_parse_bytes()
Daan De Meyer [Sun, 1 Oct 2023 18:04:33 +0000 (20:04 +0200)] 
Add back parse_bytes() function as config_parse_bytes()

22 months agoMerge pull request #1941 from DaanDeMeyer/include
Jörg Behrmann [Mon, 2 Oct 2023 07:44:15 +0000 (09:44 +0200)] 
Merge pull request #1941 from DaanDeMeyer/include

Add Include= setting

22 months agoAdd Include= setting 1941/head
Daan De Meyer [Sat, 30 Sep 2023 14:43:05 +0000 (16:43 +0200)] 
Add Include= setting

This setting allows including extra configuration from user specified
directories or files. The extra configuration is parsed immediately.

22 months agoFix formatting nit
Daan De Meyer [Sat, 30 Sep 2023 15:58:47 +0000 (17:58 +0200)] 
Fix formatting nit

22 months agoStop hardcoding setting names we pass to parse_ini()
Daan De Meyer [Sat, 30 Sep 2023 15:54:58 +0000 (17:54 +0200)] 
Stop hardcoding setting names we pass to parse_ini()

Instead, derive them from the settings list.

22 months agoMerge pull request #1942 from DaanDeMeyer/initrd-packages
Daan De Meyer [Sun, 1 Oct 2023 16:57:20 +0000 (18:57 +0200)] 
Merge pull request #1942 from DaanDeMeyer/initrd-packages

Add InitrdPackages=

22 months agoAdd InitrdPackages= 1942/head
Daan De Meyer [Sat, 30 Sep 2023 18:16:24 +0000 (20:16 +0200)] 
Add InitrdPackages=

We have ToolsTreePackages= already, so let's add a similar setting
for the default initrd to allow the default initrd to be used in
more scenarios.

22 months agoImprove formatting a bit in finalize_tools()
Daan De Meyer [Sat, 30 Sep 2023 18:08:50 +0000 (20:08 +0200)] 
Improve formatting a bit in finalize_tools()

22 months agoDon't show default tools trees in the summary
Daan De Meyer [Sat, 30 Sep 2023 18:06:03 +0000 (20:06 +0200)] 
Don't show default tools trees in the summary

Instead, let's show individual tools tree packages in the summary.
This makes things a bit more consistent as we don't show default
initrd presets in the summary either (and making that happen is no
trivial task so we opt to do the reverse and not show default tools
trees either).

We also add a table to the documentation showing which packages are
in the default tools tree for which distributions.

22 months agoAdd apt and debian-keyring to CentOS tools tree packages
Daan De Meyer [Sun, 1 Oct 2023 16:35:46 +0000 (18:35 +0200)] 
Add apt and debian-keyring to CentOS tools tree packages

This requires epel so we introduce some machinery to specify tools
tree repositories for distributions and use it for CentOS

22 months agoMake --tools-tree-packages singular
Daan De Meyer [Sat, 30 Sep 2023 17:34:20 +0000 (19:34 +0200)] 
Make --tools-tree-packages singular

Let's mimick --package and make the long form CLI option singular.

22 months agoUpdate help for --tools-tree-packages a bit
Daan De Meyer [Sat, 30 Sep 2023 17:32:59 +0000 (19:32 +0200)] 
Update help for --tools-tree-packages a bit

22 months agoDon't reuse unprivileged cache when building as root
Daan De Meyer [Sun, 1 Oct 2023 08:26:12 +0000 (10:26 +0200)] 
Don't reuse unprivileged cache when building as root

When using --incremental and first building an image unprivileged,
followed by building it as root, we can't reuse the cache as the
ownership will be wrong. So let's make sure we don't reuse the
cache when that's the case.

22 months agobuild/cache dir name: append architecture
Luca Boccassi [Sat, 30 Sep 2023 13:13:18 +0000 (14:13 +0100)] 
build/cache dir name: append architecture

The builds and caches are architecture specific, so name them accordingly

22 months agoMerge pull request #1911 from keszybz/rhel-ubi
Daan De Meyer [Sat, 30 Sep 2023 12:57:18 +0000 (14:57 +0200)] 
Merge pull request #1911 from keszybz/rhel-ubi

Add support for RHEL UBI

22 months agoci: add nspawn boot of rhel-ubi 1911/head
Zbigniew Jędrzejewski-Szmek [Thu, 28 Sep 2023 14:42:48 +0000 (16:42 +0200)] 
ci: add nspawn boot of rhel-ubi

22 months agoAdd support for RHEL UBI
Zbigniew Jędrzejewski-Szmek [Wed, 20 Sep 2023 14:08:27 +0000 (16:08 +0200)] 
Add support for RHEL UBI

The repository naming matches what is visible in the standard ubi container
image (registry.access.redhat.com/ubi8/ubi).

This is the first time that I'm doing anything more complicated wit UBIs, but I
hope this is a sensible beginning.

22 months agodistributions: add .pretty_name
Zbigniew Jędrzejewski-Szmek [Fri, 29 Sep 2023 15:38:33 +0000 (17:38 +0200)] 
distributions: add .pretty_name

This makes it easier to print a message from the installer referring
to the distro by the proper name.

I looked at the home pages of the distros and took the spelling used
there. In particular Fedora is making a concious effort to use "Fedora"
for the whole project, and "Fedora Linux" for the distro. OTOH, Ubuntu
is known for not using "linux" anywhere where users could see it.

22 months agoDo not explicitly instantiate exceptions
Zbigniew Jędrzejewski-Szmek [Fri, 29 Sep 2023 15:36:27 +0000 (17:36 +0200)] 
Do not explicitly instantiate exceptions

This will happen automatically. If no arguments are needed, it's
more pythonic to just specify the class and let the interpreter
create the instance.

22 months agodistributions: use a generator to reduce list boilerplate
Zbigniew Jędrzejewski-Szmek [Thu, 28 Sep 2023 13:00:45 +0000 (15:00 +0200)] 
distributions: use a generator to reduce list boilerplate

When the list of repos to return is conditionalized, we can use yield instead
of concatenating lists. Iterable[Repo] can be satisfied by both the functions
which are generators and the functions which just return a list as before.

22 months agoCheck early whether 'ukify' is available
Zbigniew Jędrzejewski-Szmek [Thu, 28 Sep 2023 11:50:57 +0000 (13:50 +0200)] 
Check early whether 'ukify' is available

It is an optional component. The user would be unhappy when we fail at the end
of a lengthy installation process. So let's check early if we would need it and
refuse to continue.
(When config.bootable == ConfigFeature.auto, we cannot to do the check before
the installation is performed, so let's opt to be strict and do the check.)

Inspired by https://bugzilla.redhat.com/show_bug.cgi?id=2240598.

22 months agoMerge pull request #1939 from behrmann/scriptenv
Daan De Meyer [Fri, 29 Sep 2023 09:14:22 +0000 (11:14 +0200)] 
Merge pull request #1939 from behrmann/scriptenv

Add more variables to the prepare script environment

22 months agoman: add a table which script receives what environment variable 1939/head
Joerg Behrmann [Thu, 28 Sep 2023 14:23:33 +0000 (16:23 +0200)] 
man: add a table which script receives what environment variable

22 months agotooltrees: add curl to default packages
Joerg Behrmann [Thu, 28 Sep 2023 13:46:04 +0000 (15:46 +0200)] 
tooltrees: add curl to default packages

This makes it easy to download a file from a prepare script when using a
default tool tree.

22 months agodistributions: rename all installers to "Installer"
Zbigniew Jędrzejewski-Szmek [Thu, 28 Sep 2023 12:39:57 +0000 (14:39 +0200)] 
distributions: rename all installers to "Installer"

We were doing "double namespacing": "centos.CentosInstaller",
"ubuntu.UbuntuInstaller", etc. Let's simplify things by dropping the second
name. This avoids the awkward issue how capitalize the names of distributions
that already have capitals in their name, e.g. CentoOS, or dashes in the name,
e.g. RHEL-UBI. The one call site where we import the right installer becomes
simpler.

In Distribution.installer(), try..except is replaced by assert. If the
installer class for a distro is missing, then it's a programming error and not
not something we should suppress.

22 months agoscripts: also pass WITH_ to prepare script
Joerg Behrmann [Thu, 28 Sep 2023 14:05:15 +0000 (16:05 +0200)] 
scripts: also pass WITH_ to prepare script

22 months agoscripts: sort environment variables we pass to scripts
Joerg Behrmann [Thu, 28 Sep 2023 14:04:45 +0000 (16:04 +0200)] 
scripts: sort environment variables we pass to scripts

22 months agoman: add missing spaces
Joerg Behrmann [Thu, 28 Sep 2023 12:14:32 +0000 (14:14 +0200)] 
man: add missing spaces

22 months agoUse user provided initrds for grub
Daan De Meyer [Thu, 28 Sep 2023 10:36:22 +0000 (12:36 +0200)] 
Use user provided initrds for grub

Let's only build a default initrd for grub if the user didn't
provide any initrds themselves.

22 months agoWrite IMAGE_ID and IMAGE_VERSION to /usr/lib/os-release
Joerg Behrmann [Tue, 26 Sep 2023 14:58:38 +0000 (16:58 +0200)] 
Write IMAGE_ID and IMAGE_VERSION to /usr/lib/os-release

22 months agoAdd Architecture match
Daan De Meyer [Thu, 28 Sep 2023 10:45:56 +0000 (12:45 +0200)] 
Add Architecture match

22 months agoAdd default implementations for a bunch of DistributionInstaller methods
Daan De Meyer [Thu, 28 Sep 2023 10:14:41 +0000 (12:14 +0200)] 
Add default implementations for a bunch of DistributionInstaller methods

Make it easier to add distributions by adding default implementations
for optional methods.

22 months agoFix setpgid logic
Daan De Meyer [Thu, 28 Sep 2023 07:18:55 +0000 (09:18 +0200)] 
Fix setpgid logic

Make sure we append the setpgid command after all the options. Let's
also use -- to avoid any potential confusion about whether the following
arguments are options or not.

22 months agoMerge pull request #1903 from gdiscry/scripts
Jörg Behrmann [Wed, 27 Sep 2023 15:06:40 +0000 (17:06 +0200)] 
Merge pull request #1903 from gdiscry/scripts

Convert script settings to lists

22 months agoConvert script settings to lists 1903/head
Georges Discry [Fri, 15 Sep 2023 20:19:41 +0000 (22:19 +0200)] 
Convert script settings to lists

With `mkosi.conf.d`, `mkosi.presets` and/or `[Match]`, it's become
really easy to split the configuration of an image in logical parts. It
might be done to isolate some settings that go together or to share the
same configuration across several images.

However, for each `mkosi.prepare`, `mkosi.build`, `mkosi.postinst` and
`mkosi.finalize` step, only one script could be executed as the one with
highest priority overrides the others.

Each script is now managed as a list of executables so that it's also
possible to split them if desired.

Backward compatibility is kind of maintained by keeping the same options
on the command line and by introducing aliases for the renamed INI
settings (with a deprecation warning). These aliases also parse the
settings as a list, so compatibility is still broken when a script was
expected to override a previously defined one, as they are now both
executed.

22 months agoBackward-compatibility for renamed INI settings
Georges Discry [Tue, 19 Sep 2023 11:44:18 +0000 (13:44 +0200)] 
Backward-compatibility for renamed INI settings

A setting can now declare aliases used when parsing INI files. These
aliases are useful when a setting is renamed as they maintain
backward-compatibility while emitting a deprecation warning.

22 months agoAlways copy kernel to split output
Daan De Meyer [Tue, 26 Sep 2023 10:35:33 +0000 (12:35 +0200)] 
Always copy kernel to split output

Even if we don't have a bootloader or aren't configured to be
bootable, make sure we copy a kernel out of the image so we can
linux direct boot images in qemu.

22 months agoMerge pull request #1926 from DaanDeMeyer/build-args
Daan De Meyer [Tue, 26 Sep 2023 09:37:10 +0000 (11:37 +0200)] 
Merge pull request #1926 from DaanDeMeyer/build-args

Pass command line arguments to build script again

22 months agoPass command line arguments to build script again 1926/head
Daan De Meyer [Tue, 26 Sep 2023 08:55:48 +0000 (10:55 +0200)] 
Pass command line arguments to build script again

It turns out this can be useful after all, for example to specify
whether to build in debug mode or release mode, or which config to
use when building kernels, so let's pass arguments to the build
script again.

22 months agoAdd util-linux to tools tree packages
Daan De Meyer [Tue, 26 Sep 2023 09:10:10 +0000 (11:10 +0200)] 
Add util-linux to tools tree packages

We need mount and various other tools from util-linux so let's make
sure it's installed as part of the default tools tree.

22 months agoRevert "CI: pin CentOS 9 kernel to workaround panic on shutdown"
Daan De Meyer [Tue, 26 Sep 2023 09:26:03 +0000 (11:26 +0200)] 
Revert "CI: pin CentOS 9 kernel to workaround panic on shutdown"

This reverts commit f9cd279e21cce2393bb0493c577f5c74a21e6914.

This issue was fixed upstream so let's revert the commit.

22 months agoMerge pull request #1923 from DaanDeMeyer/name
Daan De Meyer [Mon, 25 Sep 2023 12:56:07 +0000 (14:56 +0200)] 
Merge pull request #1923 from DaanDeMeyer/name

Mount over /etc/passwd when building an image and running build script