Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Feb 2016 08:46:47 -0500
From:      Jim Ohlstein <jim@ohlste.in>
To:        John Marino <freebsdml@marino.st>, Hrant Dadivanyan <hrant@dadivanyan.net>
Cc:        FreeBSD Mailing List <freebsd-ports@freebsd.org>
Subject:   Re: Removing documentation
Message-ID:  <56B9EDC7.1010403@ohlste.in>
In-Reply-To: <56B9D609.6030407@marino.st>
References:  <E1aT6jw-000MGn-1T@pandora.amnic.net> <56B9D609.6030407@marino.st>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

On 2/9/16 7:05 AM, John Marino wrote:
> On 2/9/2016 12:45 PM, Hrant Dadivanyan wrote:
>>> 1) As was just stated earler this morning, having synth installed is 2
>>> packages: Synth itself and ncurses.  These "17 dependences" are build
>>> requirements and not installed.  So what is "unreasonable" about that?
>>
>> So will require any upgrade of synth by itself, correct ? If build from
>> sources, of course.
>
> You don't build all 17 dependencies every time, it's incremental. And
> even if you did, it would take like 20-30 minutes, at most (mainly gcc).
>   I would not call that "unreasonable" because time isn't critical here.
>   Most of the dependences are common to other packages too.
>

After all of this "discussion" I decided to give synth a try. I have no 
pony in this race as I use neither portmaster nor portupgrade. Both may 
still be in my repo, but they are not installed.

The build time of "like 20-30 minutes, at most" is ummm... let' just 
call it optimistic. I only needed five new dependencies. Poudriere was 
unable to take advantage of more than two parallel builders except for a 
rather short overlap where it used three, if I recall correctly. The 
vast majority of the time it used only one builder. Build and package 
time for gcc6-aux was 34:52 on an Intel E5-2650 v3. Build and package 
time for binutils, required for gcc6-aux, took 4:44. That's pretty close 
to 40 minutes for just two dependencies, one of which is a dependency of 
the other. Build and package time for synth was 1:09.

I installed synth and had a look at the man page. Nice job on the 
documentation though I might suggest more real world examples, in an 
"Examples" section at the end, would be helpful to people like me who 
want to understand how to get started. Sort of like a "quick start 
guide" that comes with a new electronic component. Get it going and then 
read the details on what's really important for the specific use case. 
That shouldn't be construed as a knock on the documentation, which 
really is very good.

This was last night and I haven't tried building with it yet. I need to 
re-read the documentation. I do however have concerns, the biggest of 
which is, yes, the dependencies. I use poudriere because I like to build 
packages myself for my installations and with my options, so using the 
FreeBSD repo version of synth will be a non-starter. That means that 
I'll need to rebuild gcc6-aux every time I need to rebuild synth, 
assuming gcc6-aux has been updated. It's a fair guess that gcc6-aux is 
regularly updated (the current version is dated 20160124). It's also a 
fair guess that synth will go through a few iterations in the short term 
given its youth. Looking at my recent build logs, the longest builds I 
run are far shorter than 35 minutes. This will slow things down and I'm 
not certain I'm going to be willing to keep a package in my repo that 
requires that amount of build time just as a dependency I otherwise 
would never build. To be honest, synth, which I will try, will have to 
be _far_ superior to poudriere in order to replace it as my tool of 
choice. Of course that's my use case and mine only.


>
>>> 2) If 17 dependencies are such a concern, why would you not install it
>>> via official freebsd packages?
>>
>> Ports buiding is also official. Phrasing of your question sets the
>> preference in favour of prebuilt packages, my preference is opposite.
>
> I don't think that's really answering the question.  That's a case where
> you consciously reject a fast, easy solution for a different one, but
> then don't accept the consequences.  Yes, it's fine fine to build form
> ports (although I would be careful with "official" because everything is
> pushing towards packages), but if you choose to build from source, you
> are choosing to also build the build dependencies.  That's not something
> you have to do.  I would actually say that complaining about known
> consequences of an conscious decision is unreasonable.
>
> by the way, packages *are* favoured.  That's been the case for a while.
>
>
>> In my case it's just a preference to build everything locally.
>
> so the cost for this preference is extra time and extra building.
> That's fine.  The build dependencies are not installed.  Obtaining synth
> from building on /usr/ports works too, but then the build dependencies
> *are* installed.  So using a provided package would be the better way to
> avoid the extra installations.
>
>
>> There is no need to address it, because of two quite different use cases.
>> As far as I can see synth is excellent in some cases, my point is that
>> portmaster is fine in some other ones.
>
> I did want to point out that there are many known bugs and open reports,
> so it's not "fine" for everyone.  You've apparently not hit them so
> that's great for you.
>
> Actually, I don't care what you use, but the using build dependencies as
> a justification for not using it and labelling it "unreasonable" at the
> same time, I just wanted that expanded on.  I don't know if you still
> think it's unreasonable, but I do appreciate that you took the time to
> respond.
>
> P.S.  If FreeBSD 11 didn't regress with ncurses (PR 199109) then
> probably we could provide synth with NO runtime dependencies.  But there
> doesn't seem to be any interest in fixing the regression unfortunately.
>

-- 
Jim Ohlstein


"Never argue with a fool, onlookers may not be able to tell the 
difference." - Mark Twain



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