Skip to content

implement on-demand dependency resolution & replace mkmf with custom code

this is a bit meh but since neondocker needs docker but we don't want docker on the ISO we have to jump through hoops to get this working out of the box :(

xephyr and docker are now installed unless they are available. docker-api gem is also installed as necessary.

the latter is a bit tricky even. when not run as a program the file will expect the gem to be present (as before) but when run as program it will install the gem and then reexecute the program to reload the gem list. to prevent inifnity reexecs there also needs to be a loop protection passed via the environment

this also replaces the use of mkmf with a custom Executable class to locate binaries. mkmf is not meant to be used outside build configuration. it pollutes the main object namespace and it actually requires ruby-dev to run. it's altogether rubbish here. instead the new Executable class from releaseme implements proper binary lookup but without all the downsides of mkmf

Edited by Harald Sitter

Merge request reports