Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Feb 2016 09:20:13 -0700
From:      Adam Weinberger <adamw@adamw.org>
To:        marino@freebsd.org
Cc:        Pietro Cerutti <gahr@FreeBSD.org>, ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org, owner-ports-committers@freebsd.org
Subject:   Re: svn commit: r407270 - head/ports-mgmt/portmaster
Message-ID:  <681B2A9D-9414-4477-80BE-0BF354AC3B73@adamw.org>
In-Reply-To: <56B376CF.40807@marino.st>
References:  <201601261123.u0QBNcvL091258@repo.freebsd.org> <8b37e4951fc45b4f1eeaf5eb67f76804@gahr.ch> <56B36ACE.1010506@marino.st> <cfb249942314fd667f3af9e72f4315af@gahr.ch> <56B36C8A.8070503@marino.st> <3B17D597-12D7-45A7-AF5D-2A0718381B41@adamw.org> <56B376CF.40807@marino.st>

next in thread | previous in thread | raw e-mail | index | archive | help
> On 4 Feb, 2016, at 9:05, John Marino <freebsd.contact@marino.st> =
wrote:
>=20
> 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.
>>=20
>> Beyond polish, there's two things that made me not want to use it at
>> this point:
>>=20
>> 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?
>=20
> 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.
>=20
> 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).
>=20
> 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.
>=20
>=20
>> 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.
>=20
> 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.
>=20
> 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


--=20
Adam Weinberger
adamw@adamw.org
http://www.adamw.org




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?681B2A9D-9414-4477-80BE-0BF354AC3B73>