Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Feb 2016 10:55:54 +0100
From:      John Marino <freebsdml@marino.st>
To:        Mathias Picker <mathiasp@mathiaspicker.net>, Peter Jeremy <peter@rulingia.com>
Cc:        Kevin Oberman <rkoberman@gmail.com>, FreeBSD Mailing List <freebsd-ports@freebsd.org>
Subject:   Re: Removing documentation
Message-ID:  <56B8662A.2050502@marino.st>
In-Reply-To: <1454923852.4807.19.camel@mathiaspicker.net>
References:  <56B754A8.3030605@marino.st> <20160208064305.GB63030@server.rulingia.com> <56B8454F.8060605@marino.st> <1454923852.4807.19.camel@mathiaspicker.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2/8/2016 10:30 AM, Mathias Picker wrote:
> Am Montag, den 08.02.2016, 08:35 +0100 schrieb John Marino:
> While I like the ideas of synth, and hoped I could use it to just build
> my 3-8 ports with modified options, on first look I found many things
> suggesting that it's not yet ready:
> 
> - shows uninteresting eye candy instead of build

Every single port has it's own build log with far more detail that a
source build provides (similar to poudriere)

> - stops at every conf file version mismatch requiring me to start make
> config by hand, and then to re-run when it discovers the next mismatch.
> I mean, WTF?

This is incorrect.  It lists *ALL* the configuration mismatches at once.
 This is actually a huge "pro" for synth; no other tool detects this
mismatches.  It is far worse to have cached options that do not match
the current port.  The port can be misbuilt and it's a major pain to
troubleshoot.  All build tools should be doing this.  Are you really
proposing that a tool build a port with a bad configuration file?  You
should be thanking Synth for alerting to a problem you obviously didn't
know you had.

Also, once you fix it, then configuration problems are rare, they occur
when the port changes.

> - using prebuild packages requires fetching and installing them all
> into the local repository? pkg can use multiple repositories with
> different priorities, so this seems to clutter my system unnecessarily.

Yes, that's what is happening.  Prebuilt (an opt-in option) saves you
from downloading the distinfo and building the package, so you get a
tradeoff.

> - building blender rebuilds audio/jack every time???

Yeah, it's a problem with the port.  Synth has been detecting port
problems that other tools have failed to.  I need to look at jack and
fix it.

> - after building blender successfully, ignores (deletes?) the package
> with the cryptic error msg:  
> - wants to build > 100 ports on my system, whereas portmaster -a just
> build 31 ports.

That's the first run.  After that it's incremental.
Synth is a local repository builder; it's trying to build a complete
repository tailored to your system.


> If I could just rebuild blender, apache, password store with my local
> options and install them into a local repository, that would be nice
> indeed, saving me from installing poudriere for this minor task.

With the prebuilt option on, it will download all the suitable prebuilt
packages and build your custom ones.  During the upgrade process, pkg
will cherry pick the updates.

The first run is heavy, the subsequent runs are incremental.


> To comment on the original bug report: removing portmaster from
> documentation seems to be a bit premature. It's working fine for me,
> and it seems quite a lot simpler to me than synth, which makes it
> preferable in my book.

Honestly you're the first one to say *that*.


> Thinking about it, I'm not even sure the clean room build aproach of
> synth is actually preferable to portmaster, the messy portmaster
> aproach will pick up any messy thing (e.g. library) I did to my system,
> which might be exactly what I want. Have to think about this some
> more...

How about performance?
One guy reported periodically building 1800 packages on poudriere
requiring 24 hours.  Synth did the same exact job in 18 hours.  How long
would you estimate that portmaster (which does not build concurrently)
would take?  I'd guess 3 days?

You need to understand something about the "clean room", this differs
from poudriere.  Poudriere builds a pristine jail.  Synth uses the host
system (same /bin, /sbin, usr/bin, usr/sbin, etc) with no /usr/local,
stripped etc, var, etc.  This was a design choice because the pristine
jail was held as a negative in some use cases.   So Synth does exactly
what you described above.

John






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56B8662A.2050502>