Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 2016 16:24:07 +0000
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        marino@freebsd.org
Cc:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r406930 - head/archivers/file-roller
Message-ID:  <20160125162407.GA81295@FreeBSD.org>
In-Reply-To: <56A619BC.7080802@marino.st>
References:  <201601221319.u0MDJbbm075196@repo.freebsd.org> <20160125085654.GB95732@FreeBSD.org> <56A5EFD5.8080804@marino.st> <20160125123904.GA96711@FreeBSD.org> <56A619BC.7080802@marino.st>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 25, 2016 at 01:49:00PM +0100, John Marino wrote:
> On 1/25/2016 1:39 PM, Alexey Dokuchaev wrote:
> > On Mon, Jan 25, 2016 at 10:50:13AM +0100, John Marino wrote:
> > 
> > Hmm, but how is the fact that zipinfo is a symlink $LOCALBASE/bin/unzip
> > is relevant?  The port wants unzip (not zipinfo), and the granule of
> > change is a line; regardless of the contents, it's -1 +1.
> 
> In my view, what it _wants_ is to register the package.  It doesn't
> matter what causes the register, only that it's registered.  I could
> have just as easily requested a man page and it would still work as
> intended.

There are two philosophically different views on *_DEPENDS.  Technically
new-school scheme of "package<condition>pkgversion:..." is more flexible,
and, as some people rightfully argue, is more in line with "what it wants
is to register the package" (optionally, specific version).  However ...

> Now, for those susceptible to pedantism, I can see how it would seem
> less correct but the whole "_DEPENDS" scheme is like this.  We don't
> list *every* file a port might depend on, we just pick one.  That one
> file is enough to create the registry.

.., I kind of like being able to depend on specific binary or a library
as it gives an immediate idea exactly *what* consumers expect from the
dependency.  Technically, it might not be that important (e.g. not every
FOO_DEPENDS parser even obliged to check if the left part of semicolon
actually exists and would install the port on the right unconditionally;
I think it is (was?) true for p*re, but not for tinderbox and "manual"
installation from the ports tree).  But it is still a nice hint for us
porters, and that's why I prefer $localbase/bin/unzip vs. infozip here:
you just clearly tell readers exactly what's needed rather than trying
to enforce the buildbot logic (and as a careful committer, putting that
comment there -- again, thanks for doing it -- most folks won't bother).

It can also serve as a reminder to make sure that the package *actually*
calls $localbase/bin/unzip rather than limited /usr/bin/unzip (think of
encryption support again to see the point) upon further port updates.

> Given that point of view, and given that zipinfo cannot exist without
> unzip, I see those as equivalent.

Right; my point is that while infozip is "correct enough", it lacks the
non-essential and non-required metainformation on exactly what bits of
`archivers/unzip' are needed for the port's proper (designed) operation.

> TLDR;
> Whatever guarantees the dependency registry is correct enough because
> the actual file is can never be considered representative of the true
> requirement.

That is a fair point (one of the arguments of new-age scheme supporters).
Then again, if user puts their own, unregistered $localbase/bin/{info,un}
zip they're asking for trouble IMHO, and we can't eat our hearts to give
them 100% support.

> Maybe, but I wanted somebody to pause before changing it in the future.

Understood; by saying all the above I'm not implying any immediate action
(but certainly welcome any fruitful discussion on the matter).

./danfe



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