svn commit: r407270 - head/ports-mgmt/portmaster

Adam Weinberger adamw at adamw.org
Thu Feb 4 16:20:19 UTC 2016


> On 4 Feb, 2016, at 9:05, John Marino <freebsd.contact at marino.st> wrote:
> 
> On 2/4/2016 4:56 PM, Adam Weinberger wrote:
>> I played around with Synth for a couple days. I really, really like
>> it. Once it's production ready it absolutely deserves to be written
>> into the handbook and taught to new users as the go-to tool for
>> overseeing port builds.
>> 
>> Beyond polish, there's two things that made me not want to use it at
>> this point:
>> 
>> 1) As you said in your reply to my previous extremely rude email,
>> synth is lightweight as long as it's installed by 'pkg install
>> synth'. Is there some way to mark synth as not to be built by synth?
>> The next 'synth upgrade-system' rebuilds synth, including gcc and all
>> its dependencies. It'd be nice to have a list of ports that synth
>> will fetch rather than rebuild. (I know that I could maintain a
>> separate list of my ports and use that but I'd rather maintain a list
>> of exceptions.) Does that make sense?
> 
> Well, even building from synth, synth isn't really heavy.  Everything
> thta gcc6-aux needs is also needed by lang/gcc, and gcc6-aux takes like
> 10 minutes to build on my 4 year old machine?  so I don't think that's
> crazy.
> 
> However, Synth has an option (like portmaster) to use prebuilt packages
> if possible.  It's option "[N]" on the configure screen.  So one mode it
> is designed to support is to use Synth only to build ports with custom
> options (and any consequency of that).
> 
> The option to specify fetch-only would be technically difficult to
> support.  If it decides it can't fetch it, then hardcoding fetch, what
> should it do?  It would have to just stop and do nothing.
> 
> 
>> 2) The big problem for me is rebuilding the repository after every
>> single step. My main pride & joy server is a little VM from RootBSD.
>> Rebuilding the repository takes about an hour. Installing a port,
>> upgrading a port, checking to see if there were updates and not
>> rebuilding anything---each of these tasks takes over an hour. At home
>> I have an 8-core machine with 16G of RAM and an SSD, and rebuilding
>> the repository takes 25 minutes. Is there some way to use synth
>> without having to rebuild the entire repository every time? I can't
>> see myself ever using it when each command takes over an hour to
>> run.
> 
> hmm?  you're not supposed to rebuild the repository on every single
> step.  Only the last step!   there's the "just-build" option, which
> always be used.  Now the "rebuild-repository" command will rebuild it
> when you want, so you could just issue "just-build" and when everything
> is done, manually rebuild the repository.  and of course, the
> upgrade-system / prepare-systm only rebuild it once as well.
> 
> John

That's assuming that the list of installed ports essentially never changes, and you only check for updates rarely, no?

Say I want to find a new MUA.
- Install pine (1 hour) - Too simple
- Install elm (1 hour) - Too old
- Install mutt (1 hour) - Good but now I want the sidebar patch
- Change option and reinstall mutt (1 hour)
- Update ports tree, see if any of my installed ports have updates (1 hour)

That's 20 minutes of work but it takes 5 hours. Am I doing the work-flow wrong?

What exactly is going on with the repository rebuild? Why does only synth need to do it? Is there some way to restrict the checks to only the installed ports, rather than the entire tree?

# Adam


-- 
Adam Weinberger
adamw at adamw.org
http://www.adamw.org



More information about the svn-ports-all mailing list