diff --git a/pungi/createiso.py b/pungi/createiso.py index 1f7990db..cbd3fef3 100644 --- a/pungi/createiso.py +++ b/pungi/createiso.py @@ -76,6 +76,7 @@ def make_image(f, opts): volid=opts.volid, exclude=["./lost+found"], graft_points=opts.graft_points, + use_xorrisofs=opts.use_xorrisofs, **mkisofs_kwargs ) emit(f, cmd) @@ -97,7 +98,7 @@ def run_isohybrid(f, opts): def make_manifest(f, opts): - emit(f, iso.get_manifest_cmd(opts.iso_name)) + emit(f, iso.get_manifest_cmd(opts.iso_name, opts.use_xorrisofs)) def make_jigdo(f, opts): diff --git a/pungi/wrappers/iso.py b/pungi/wrappers/iso.py index afbdf87b..4cdbd3f6 100644 --- a/pungi/wrappers/iso.py +++ b/pungi/wrappers/iso.py @@ -255,11 +255,21 @@ def get_isohybrid_cmd(iso_path, arch): return cmd -def get_manifest_cmd(iso_name): - return "isoinfo -R -f -i %s | grep -v '/TRANS.TBL$' | sort >> %s.manifest" % ( - shlex_quote(iso_name), - shlex_quote(iso_name), - ) +def get_manifest_cmd(iso_name, xorriso=False): + if xorriso: + return """xorriso -dev %s --find | + tail -n+2 | + tr -d "'" | + cut -c2- | + sort >> %s.manifest""" % ( + shlex_quote(iso_name), + shlex_quote(iso_name), + ) + else: + return "isoinfo -R -f -i %s | grep -v '/TRANS.TBL$' | sort >> %s.manifest" % ( + shlex_quote(iso_name), + shlex_quote(iso_name), + ) def get_volume_id(path):