with complete_step(f"Installing extra packages for {context.config.distribution.pretty_name()}"):
context.config.distribution.install_packages(context, context.config.packages)
else:
- if context.config.overlay or context.config.output_format in (
- OutputFormat.sysext,
- OutputFormat.confext,
- ):
+ if context.config.overlay or context.config.output_format.is_extension_image():
if context.config.packages:
die(
"Cannot install packages in extension images without a base tree",
def check_root_populated(context: Context) -> None:
- if context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.output_format.is_extension_image():
return
"""Check that the root was populated by looking for a os-release file."""
if not (context.config.image_id or context.config.image_version or context.config.hostname):
return
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
for candidate in ["usr/lib/os-release", "usr/lib/initrd-release", "etc/os-release"]:
if context.config.bootable == ConfigFeature.auto and (
context.config.output_format == OutputFormat.cpio
- or context.config.output_format.is_extension_image()
+ or context.config.output_format.is_extension_or_portable_image()
or context.config.overlay
):
return
def configure_initrd(context: Context) -> None:
- if context.config.overlay or context.config.output_format.is_extension_image():
+ if context.config.overlay or context.config.output_format.is_extension_or_portable_image():
return
if (
def configure_clock(context: Context) -> None:
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
with umask(~0o644):
def run_depmod(context: Context, *, cache: bool = False) -> None:
- if context.config.overlay or context.config.output_format.is_extension_image():
+ if context.config.overlay or context.config.output_format.is_extension_or_portable_image():
return
outputs = (
def run_sysusers(context: Context) -> None:
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
if not context.config.find_binary("systemd-sysusers"):
def run_tmpfiles(context: Context) -> None:
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
if not context.config.find_binary("systemd-tmpfiles"):
def run_preset(context: Context) -> None:
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
if not context.config.find_binary("systemctl"):
def run_hwdb(context: Context) -> None:
- if context.config.overlay or context.config.output_format in (OutputFormat.sysext, OutputFormat.confext):
+ if context.config.overlay or context.config.output_format.is_extension_image():
return
if not context.config.find_binary("systemd-hwdb"):
def run_firstboot(context: Context) -> None:
- if context.config.overlay or context.config.output_format.is_extension_image():
+ if context.config.overlay or context.config.output_format.is_extension_or_portable_image():
return
if not context.config.find_binary("systemd-firstboot"):
)
-def make_extension_image(context: Context, output: Path) -> None:
+def make_extension_or_portable_image(context: Context, output: Path) -> None:
unsigned = "-unsigned" if not want_verity(context.config) else ""
r = context.resources / f"repart/definitions/{context.config.output_format}{unsigned}.repart.d"
assert stub and kver and kimg
make_uki(context, stub, kver, kimg, microcode, context.staging / context.config.output_split_uki)
make_esp(context, context.staging / context.config.output_split_uki)
- elif context.config.output_format.is_extension_image():
- make_extension_image(context, context.staging / context.config.output_with_format)
+ elif context.config.output_format.is_extension_or_portable_image():
+ make_extension_or_portable_image(context, context.staging / context.config.output_with_format)
elif context.config.output_format == OutputFormat.directory:
context.root.rename(context.staging / context.config.output_with_format)
}.get(self, "") # fmt: skip
def use_outer_compression(self) -> bool:
- return self in (OutputFormat.tar, OutputFormat.cpio, OutputFormat.disk) or self.is_extension_image()
+ return self in (
+ OutputFormat.tar,
+ OutputFormat.cpio,
+ OutputFormat.disk,
+ OutputFormat.sysext,
+ OutputFormat.confext,
+ OutputFormat.portable,
+ )
def is_extension_image(self) -> bool:
- return self in (OutputFormat.sysext, OutputFormat.confext, OutputFormat.portable)
+ return self in (OutputFormat.sysext, OutputFormat.confext)
+
+ def is_extension_or_portable_image(self) -> bool:
+ return self.is_extension_image() or self == OutputFormat.portable
class ManifestFormat(StrEnum):
SELinux Relabel: {config.selinux_relabel}
"""
- if config.output_format.is_extension_image() or config.output_format in (
+ if config.output_format.is_extension_or_portable_image() or config.output_format in (
OutputFormat.disk,
OutputFormat.uki,
OutputFormat.esp,
)
-@pytest.mark.parametrize(
- "format", [f for f in OutputFormat if f not in (OutputFormat.confext, OutputFormat.sysext)]
-)
+@pytest.mark.parametrize("format", [f for f in OutputFormat if not f.is_extension_image()])
def test_format(config: ImageConfig, format: OutputFormat) -> None:
with Image(config) as image:
if image.config.distribution == Distribution.rhel_ubi and format in (
if image.config.distribution == Distribution.rhel_ubi:
return
- if format in (OutputFormat.tar, OutputFormat.oci, OutputFormat.none) or format.is_extension_image():
+ if format in (OutputFormat.tar, OutputFormat.oci, OutputFormat.none, OutputFormat.portable):
return
if format == OutputFormat.directory and not find_virtiofsd():