Skip to content

Commit 415ff73

Browse files
committed
uki_addons: provide custom SBAT as input parameter
JIRA: https://issues.redhat.com/browse/RHEL-92594 Upstream Status: RHEL-Only Build the sbat in kernel.spec.template and provide it directly to uki_create_addons.py. This parameter is completely optional. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
1 parent 685163c commit 415ff73

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

redhat/scripts/uki_addons/uki_create_addons.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# creates an addon for each key/value pair matching the given uki, distro and
55
# arch provided in input.
66
#
7-
# Usage: python uki_create_addons.py input_json out_dir uki distro arch
7+
# Usage: python uki_create_addons.py input_json out_dir uki distro arch [sbat]
88
#
99
# This tool requires the systemd-ukify and systemd-boot packages.
1010
#
@@ -37,7 +37,7 @@
3737
UKIFY_PATH = '/usr/lib/systemd/ukify'
3838

3939
def usage(err):
40-
print(f'Usage: {os.path.basename(__file__)} input_json output_dir uki distro arch')
40+
print(f'Usage: {os.path.basename(__file__)} input_json output_dir uki distro arch [sbat]')
4141
print(f'Error:{err}')
4242
sys.exit(1)
4343

@@ -102,19 +102,21 @@ def parse_in_json(in_json, uki_name, distro, arch):
102102
if cmdline:
103103
uki_addons_list.append(UKICmdlineAddon(addon_full_name, cmdline))
104104

105-
def create_addons(out_dir):
105+
def create_addons(out_dir, sbat):
106106
for uki_addon in uki_addons_list:
107107
out_path = os.path.join(out_dir, uki_addon.name)
108108
cmd = [
109109
f'{UKIFY_PATH}', 'build',
110110
'--cmdline', uki_addon.cmdline,
111111
'--output', out_path]
112+
if sbat:
113+
cmd.extend(['--sbat', sbat.rstrip()])
112114

113115
subprocess.check_call(cmd, text=True)
114116

115117
if __name__ == "__main__":
116118
argc = len(sys.argv) - 1
117-
if argc != 5:
119+
if argc < 5 or argc > 6:
118120
usage('too few or too many parameters!')
119121

120122
input_json = sys.argv[1]
@@ -123,8 +125,12 @@ def create_addons(out_dir):
123125
distro = sys.argv[4]
124126
arch = sys.argv[5]
125127

128+
custom_sbat = None
129+
if argc == 6:
130+
custom_sbat = sys.argv[6]
131+
126132
out_dir = check_clean_arguments(input_json, out_dir)
127133
parse_in_json(input_json, uki_name, distro, arch)
128-
create_addons(out_dir)
134+
create_addons(out_dir, custom_sbat)
129135

130136

0 commit comments

Comments
 (0)