Created attachment 175660 [details]
Recompute dependencies at each step
The config-recursive target does not recompute dependencies when options change. This could lead the user to miss dependencies (when they are brought in by a non-default option selected) or to go through unnecessary ports (when dependencies are removed by unselecting an option).
The patch attached makes config-recursive a bit slower but more correct by recomputing the dependencies by reinvoking "make all-depends-list" in a subshell at each step.
Will this work in poudriere too? I am not sure if it calls config-recursive or not but it is extremely annoying to walk through all the unchecked dependency trees. In some edge cases it means tens of useless options dialogs
So thank you for your work on this!
Yes, poudriere is the reason I investigated this in the first place :)
This is a good way to start, but it still is painful.
If the default options are good for me, I select "cancel" so that there is not a configuration saved that could become non default afterwards, and for base ports, like python, or perl, their make config screen will be shown over and over again.
I see. Do you have a solution for this?
Well, no, that's a lie, there is a solution, it would be to extract the config-recursive target into its own script, and then rework it to note which ports have been configured, and skip them if they ever come back.
It won't solve the problem of the config screens coming back when you run poudriere options foo/bar bar/bam if some port is a dependency of both, but it is a start.