kiwi-build: Update to mimic production builds more closely

Production builds in Fedora have a couple extra features:

* ISOs have custom overrides to set the correct volume/app IDs
* Image filenames are structured to follow roughly NVRA format

Now we support these features with extra helper scripts. If a
"image release" value is passed in, then we fully mimic the
production image build process.

This will be particularly useful for making respins of Fedora images
with updates applied.
This commit is contained in:
Neal Gompa
2024-11-16 20:18:31 -05:00
parent 400c842f0a
commit 2c5cf67014
5 changed files with 159 additions and 7 deletions
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env python3
# Simple tool to generate bundle formats for kiwi image builds
# Author: Neal Gompa <ngompa@fedoraproject.org>
# SPDX-3.0-License-Identifier: GPL-3.0-or-later
# SPDX-2.0-License-Identifier: GPL-3.0+
from argparse import ArgumentParser
from pathlib import Path
import xml.etree.ElementTree as ET
parser = ArgumentParser(description="Generator of ISO labels for Fedora live media builds")
parser.add_argument("kiwi_file", type=Path, default="Fedora.kiwi", help="kiwi description file")
parser.add_argument("image_profile", type=str, help="kiwi image profile")
parser.add_argument("--oci-variant", "-o", action="store_true", help="generate oci variant")
args = parser.parse_args()
xml_tree = ET.parse(args.kiwi_file)
image_root = xml_tree.getroot()
image_basename = image_root.attrib["name"]
image_profile = args.image_profile
image_bundle_format = f"{image_basename}-{image_profile}-%v.%I.%A"
if args.oci_variant:
print(f"{image_bundle_format}.%T")
else:
print(image_bundle_format)