FACT 1: The vast majority of ports don't need configuring. The default options, the ones that the freebsd cluster uses are the ones desired
That's not a fact, that's some b/s.
I, as a user, decide which options I'd like the port to have. It's my choice.
Fact is that it's not always necessary to configure ports for minimal functionality.
FACT 2: Synth runs if all the pre-saved options are valid. Thus, once they are saved, they are known to be good. Once that's not true, synth will not start a new run until they are fixed.
Sorry, I do not understand. What's a 'pre-saved' option? Did you mean default options values for a port?
Even default options sometimes lead to port being unable to get built, because ports system is just a bin and maintainers can toss there whatever code they like and it may be that buggy that it doesn't compile. I regularly file issue reports about such ports.
FACT 3: You have a list of ports that you want built, either manually created or created from pkg(8) queries
Thus, you *should* know which of the very few ports you are build need non-standard options and setting those individually is not a burden. In the worse case, where you are one of those few people that have the idea you MUST set every ports options, you can either run your list through a shell script or use another tool to the options recursively which you need to do ONCE. Then if options change in the future, you can set it individually when synth notifies the options are obsolete.
Yeah, looks like I'm one of
those people. I have 977 packages and each was built from ports and for many of the ports I have non-default make configs.
I'm also not going to do anything individually for ports with obsolete options, I prefer to work only with sets of ports (
read next about portmaster).
Not to mention FACT 4 where synth uses the existing options set by ports/portmaster if you want.
That's the most important thing, that you, unfortunately, don't seem to take into account: we don't live in a stasis, the time flows and the ports in the repository do evolve. And they get new config options and lose the old ones.
So from time to time I have to re-configure the ports that were configured once already. And that's normal.
Unlike synth, portmaster shows make config screen once it figures out that my current config for a port is outdated.
Portmaster is even smart enough as to scan all ports configs prior to starting upgrading them, so currently I run portmaster first to check if there any new configs that require my attention, then I have to answer 'nay' to the prompt that asks to confirm the upgrade to the following ports and run synth.
I would use synth way less frequently (only for the ports that portmaster fails to build) if synth didn't have such an attitude that it has to re-build every port that was built outside of it. I hate that.
conclusion: You've portrayed this as some necessary missing feature which actual use proves is anything but.
The util already has your input on the license, through the make.conf file.
It was YOUR failure to set the license or DISABLE licenses.
Like options, this is a one-time set and forget.
It is not outlandlish to expect you to pre-approve the VERY FEW licenses that require explicit approval.
These have got to be in sub 0.5% of the tree level. So it's another mole hole you've made into a mount.
I sufficiently explained why there is no cache of previous runs.
No, that's some misunderstanding on your side.
make.conf provides a way to override future prompts with a pre-defined decision.
What if 2 ports have the same license and I'd like to accept it for port A and reject for port B?
You could say that it is some idiocy, while it's actually not at all: port B's older version may have not required to accept a license, but newer versions do.
I might want say 'screw you, dear developer, I'll wait for a fork of the old version', but your approach doesn't leave me such freedom.
You kill freedom with your approach.
conclusion: Synth has decided that the information it was given through configuration and specialized make.conf and will not pester you with "Are you sure" garbage questions. It will assume that you are sure about the configuration that YOU set.
Again, I don't want to configure everything proactively, I prefer minimal interaction to take place when needed.
Why do I have to check the options prior to upgrading? Why can't the machine do this work for me and ask for my interaction when it needs the human to make some decision? I want that. I want my life to be simpler rather than more complex in such things.
There's no antidote against laziness.
There is. It's automation.
What, like all 2 of you?
There is one guy that thinks synth should automatically create save option files whenever a port's default options are accepted so that in the feature if the options change, synth will alert so that port can be reviewed. That was something to consider because it has a small bit of legitimacy to the use case, but only a single person requested it.
There are more users of synth than the commenters in this topic. There are places in the internets other than this forum where users discuss synth (irc, for example).
Forums are not very useful for discussion, because no one is going to read those tens of forum topic's pages just to get familiar with what already got discussed.
Proper way for development is to have an issue tracker for each project.
Preferably on a centralized host like github where lots of users already have an account (because otherwise the project will get less attention and feedback as there is the laziness of registering new account vs using an existing one on a well-familiar centralized system).
In an issue tracker with a sane number of non-finished tickets it's quite easy to find whether feature X was discussed already so that more users could voice out.
But I don't know why I even explain these basics to you, as it's quite clear that you have a quite hostile attitude towards users of your util and not interested in all that.
What you're doing is trying to turn synth back into portmaster so my response is, "just keep using portmaster if that's what you want".
Contrary to what you believe, there's isn't a bunch of people saying these features are so important that their unavailability is the sole reason they don't use Synth.
And finally, I don't care if you use it or not. I only care when you spread fud and misinformation (albeit without intention) about a tool that you clearly haven't mastered.
I'm not some crusader, I don't fight for making X be like Y.
I just want max comfort from the use of the tools I interact with.
The comfort in that sense is the balance between ease of use and functionality/configurability.
In my opinion, synth has only 2 strong points over portmaster:
- it can build ports in parallel (which is supposed to fasten the build process);
- afaiu, it builds ports in a 'clean environment' - I don't really value this feature very much, as it makes the the building process longer, while it usually is needed only when some conflicts across ports appear.
portmaster has strong points over synth:
- it knows when to show make config screens and it does show them;
- it builds 1 port faster than synth does (because unlike synth it doesn't build it in a 'clean environment';
- it shows accept license prompts
(but does it in a stupid [all make config screens are shown before the global building process starts, but accept license prompts appear only when the building queue reaches the current port] and buggy [-a key makes it hang up in background whenever portmaster reaches a port that has accept license prompt] way in some cases).
I want all of those strong points in 1 utility. I don't care about its name.