I’d like to be able to save the choices made in menuselect in a way that they can be tracked in a CM system and applied to a later release of Asterisk using an automated tool like Ansible. What’s the best way to do that?
menuselect should create a file containing your choices called menuselect.makeopts – that forms the input to the ‘make’ process which builds the binaries from the source tree.
All you should need to do is copy menuselect.makeopts onto your target system and then run ‘make && make install’ etc in the usual way.
Of course, you might run into problems if the later release introduces new options (or deprecates old ones) which then aren’t going to be in your makeopts file, but at least it’s a good place to start.
That’s my question: how do I reflect the changes that I made to the defaults in a way that’s not dependent on the exact set of options that each release has?
I cannot think of a possible answer to that, because you are trying to guard against features in a future release which may not even have been considered by the developers yet.
Maybe your best bet would be to take the default options file for the “current release” (whatever you regard that as), create a ‘diff’ between that and the file with your selections in, and then use that to ‘patch’ future options files, on the basis that any new options will then keep their (future) default values, and any still-existing options will be changed to your choices. The only problem I can immediately see is if an option stays, but its default gets changed, the patch file will no longer match – but at least you’ll get an error message when you try to do the patching, and can investigate the problem.