Merge config formats [deps: #165, #171, #172]
the primary change here:
config: revert partial format conversion
back in v4.0~a6-1 a transition process was started to move the live-build config to a new format. the new format was INI style, and required parsing functions to read/write values, compared to the existing format which was just shell script code setting variables.
this partial transition is the explanation for the existence of the
New_configuration()
function, and understanding this is important to
understanding the purpose of it - it is not in fact intended for creating
a new configuration, it is just related to the new config format
transition.
the positives of the new format were that it was somewhat cleaner looking, while the negative was the terrible relative efficiency.
the file config/build
was created to hold options in this new format.
the transition was only ever completed for a handful of config options:
- architecture
- archive areas and parent archive areas
- live image name
- live image type
a 'configuration version' attribute was also saved, which is not used by anything.
the bootstrap-mirror and parent-bootstrap-mirror attributes are pointlessly stored in it seemingly resulting from work done in v4.0~a17-1. (they are also stored in another config file from which the value is actually used).
it in fact seems to have been a source of confusion for Raphaël in
authoring 44b9b0a6, since the new
[parent]-distribution-{chroot|binary}
options it introduced were stored
both in config/bootstrap
and in config/build
, while only used from the
former. i expect, understandably, that he thought that config/build
was
just an information file.
there is no impact on compatibility with respect to use of options and auto files of course, but there is partial breakage of existing saved config files, but worth it to clear up this mess imo.