summaryrefslogtreecommitdiff
path: root/man/systemd-sysext.xml
diff options
context:
space:
mode:
authorKai Lueke <kailuke@microsoft.com>2022-08-09 17:07:20 +0200
committerKai Lueke <kailuke@microsoft.com>2022-08-15 10:54:32 +0200
commit16c1ca0db4cf6dd33cff1239df8dd9c366cee914 (patch)
treec34d3a4cdeaa0de6ddfba1e6802f33888cb1f5bc /man/systemd-sysext.xml
parentab4d43c54e977e5e53a98da3e77fd71a62b4fbfb (diff)
downloadsystemd-16c1ca0db4cf6dd33cff1239df8dd9c366cee914.tar.gz
sysext: introduce ARCHITECTURE field to match host architecture
When an extension image has binaries they should match the host architecture. Currently there is no way to specify this requirement. Introduce an ARCHITECTURE field in the extension's release file that may be set to prevent loading on the wrong host architecture. Since this new field is introduced late, we don't want to make specifying it mandatory as it would break existing sysext images. See https://github.com/systemd/systemd/issues/24061
Diffstat (limited to 'man/systemd-sysext.xml')
-rw-r--r--man/systemd-sysext.xml12
1 files changed, 8 insertions, 4 deletions
diff --git a/man/systemd-sysext.xml b/man/systemd-sysext.xml
index c2cf87c9cb..8da6bd26ad 100644
--- a/man/systemd-sysext.xml
+++ b/man/systemd-sysext.xml
@@ -118,10 +118,14 @@
file: the contained <varname>ID=</varname> fields have to match unless <literal>_any</literal> is set
for the extension. If the extension <varname>ID=</varname> is not <literal>_any</literal>, the
<varname>SYSEXT_LEVEL=</varname> field (if defined) has to match. If the latter is not defined, the
- <varname>VERSION_ID=</varname> field has to match instead. System extensions should not ship a
- <filename>/usr/lib/os-release</filename> file (as that would be merged into the host
- <filename>/usr/</filename> tree, overriding the host OS version data, which is not desirable). The
- <filename>extension-release</filename> file follows the same format and semantics, and carries the same
+ <varname>VERSION_ID=</varname> field has to match instead. If the extension defines the
+ <varname>ARCHITECTURE=</varname> field and the value is not <literal>_any</literal> it has to match the kernel's
+ architecture reported by <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+ but the used architecture identifiers are the same as for <varname>ConditionArchitecture=</varname>
+ described in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ System extensions should not ship a <filename>/usr/lib/os-release</filename> file (as that would be merged
+ into the host <filename>/usr/</filename> tree, overriding the host OS version data, which is not desirable).
+ The <filename>extension-release</filename> file follows the same format and semantics, and carries the same
content, as the <filename>os-release</filename> file of the OS, but it describes the resources carried
in the extension image.</para>
</refsect1>