Skip to content

Fixes #39589 - Default bootdisk_mkiso_command to xorrisofs instead of genisoimage - #194

Merged
stejskalleos merged 1 commit into
theforeman:masterfrom
ogajduse:el10-xorrisofs
Aug 6, 2026
Merged

Fixes #39589 - Default bootdisk_mkiso_command to xorrisofs instead of genisoimage#194
stejskalleos merged 1 commit into
theforeman:masterfrom
ogajduse:el10-xorrisofs

Conversation

@ogajduse

@ogajduse ogajduse commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

CentOS Stream 10 dropped the genisoimage/cdrkit package entirely. bootdisk_mkiso_command still defaults to "genisoimage", so ISO generation fails at runtime on a fresh EL10 install (nothing provides /usr/bin/genisoimage there, and it isn't installable).

Root cause dig: mkisofs, genisoimage, and xorrisofs aren't three different tools with varying compatibility -- on modern distros they're all the same xorriso binary, dispatching to the identical argument-emulation code path based on argv[0] (xorriso/base_obj.c in libisoburn: all four leafnames set argument_emulation = 1 identically). Every flag iso_generator.rb passes (-iso-level, -b, -c, -no-emul-boot, -boot-load-size, -boot-info-table, -eltorito-alt-boot, -e) is handled by that same emulation layer. Confirmed by running the exact generated command against a CentOS Stream 10 container with xorrisofs.

isohybrid (used unconditionally right after ISO generation) is unaffected by this change -- still shipped via syslinux on EL10.

Filed as https://projects.theforeman.org/issues/39589 with the full investigation.

Changes

  • lib/foreman_bootdisk/engine.rb: default bootdisk_mkiso_command from "genisoimage" to "xorrisofs", update setting description
  • app/services/foreman_bootdisk/iso_generator.rb: update file-header comment listing runtime deps
  • test/unit/iso_generator_test.rb: update hardcoded command-regexp expectation from genisoimage to xorrisofs
  • README.md: update the two spots describing the ISO-tool dependency

Test plan

  • Ran test/unit/iso_generator_test.rb against a Foreman develop core checkout (Postgres 17, schema loaded + seeded): 5 tests, 6 assertions, 0 failures, 0 errors

Fixes #39589

@ogajduse ogajduse changed the title Default bootdisk_mkiso_command to xorrisofs instead of genisoimage Fixes #39589 - Default bootdisk_mkiso_command to xorrisofs instead of genisoimage Aug 5, 2026
@stejskalleos
stejskalleos self-requested a review August 5, 2026 13:04

@stejskalleos stejskalleos left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏 LGTM

Just one small nit.

Comment thread README.md Outdated
… genisoimage

genisoimage/cdrkit was dropped entirely on CentOS Stream 10, so the
default breaks ISO generation there. xorriso's mkisofs/genisoimage/
xorrisofs personalities all dispatch to the same argument-emulation
code path (xorriso/base_obj.c), so this is not a behavior change on
distros that still carry genisoimage/mkisofs -- just picking the name
that keeps working once the legacy compat aliases go away.
@stejskalleos
stejskalleos merged commit 92efe88 into theforeman:master Aug 6, 2026
15 of 16 checks passed
@stejskalleos

Copy link
Copy Markdown
Collaborator

Thanks @ogajduse !

@ogajduse
ogajduse deleted the el10-xorrisofs branch August 6, 2026 09:55
setting "bootdisk_mkiso_command",
type: :string,
default: "genisoimage",
default: "xorrisofs",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about users who have bootdisk already installed? Will those remain on genisoimage?

@stejskalleos stejskalleos Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the default value will be changed.

However, if they change the setting to something-else, the value will still be something-else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants