Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 02 Apr 2006 16:21:31 -0400
From:      Tom McLaughlin <tmclaugh@sdf.lonestar.org>
To:        Thomas-Martin Seck <tmseck-lists@netcologne.de>
Cc:        pav@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: Pare Down Dependencies from Gnome
Message-ID:  <1144009291.1978.105.camel@bofh>
In-Reply-To: <200604021324.k32DOU5E077448@hardy.tmseck.homedns.org>
References:  <200604021324.k32DOU5E077448@hardy.tmseck.homedns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2006-04-02 at 15:24 +0200, Thomas-Martin Seck wrote:
> * Pav Lucistnik <pav@freebsd.org> [gmane.os.freebsd.devel.ports]:
> 
> > [-- text/plain, encoding quoted-printable, charset: ISO-8859-2, 22 lines --]
> > 
> > Thomas-Martin Seck pí?e v ne 02. 04. 2006 v 14:28 +0200:
> > 
> >> > Here we go, gnomevfs2 has this:
> >> > 
> >> > .if exists(${LOCALBASE}/lib/libkrb5.so)
> >> > LIB_DEPENDS+=   krb5:${PORTSDIR}/security/heimdal
> >> > .endif
> >> 
> >> Ack, this is most evil. Could portlint(1) be extended to mark these
> >> constructs as fatal?  Hidden auto-dependencies that cannot be disabled
> >> are really nasty.
> > 
> > What if it's hidden auto-dependency in vendor configure script?
> > 
> > The port merely records the state of reality. Don't blame it for it.
> 
> In my opinion, a port should always be explicit about it's dependencies.
> The ported software itself should be, too and if not, it's a bug IMO.
> Most problems with implicit dependencies in a vendor's configure script
> are often cured by adding "--disable-foo" to CONFIGURE_ARGS unless the
> option is explicitly enabled via an appropriate port option. If there is
> no --disable-foo, then "foo" needs to be an explicit dependency.
> Auto-dependencies that cannot be overridden are - IMO - a big no-no.

There is no --disable-krb5 or --disable-gssapi available in gnomevfs2.
In the case of kerberos you have a weird situation.  Heimdal is a part
of the base and in the majority of installs that version will be used.
The port politely checks to see if the system has a version of Kerberos
installed from ports and if it does, then it assumes that the version
from ports is the prefered version.  You could patch the port to
determine which kerberos port is being used to quiet pkgdb.  (You can
still run into a situation where it is possible that gnomevfs2 will
think security/heimdal or security/krb5 is a dependency but the port is
linked again the base version if the user has not followed all the
instructions about using versions of kerberos from ports.)

Heimdal or MIT Kerberos cannot be an explicit dependency of gnomevfs2
because you run the risk of installing two versions of kerberos on the
same box.  The base version and a ports version.  If the user is not
prepared for that they inevitably end up with weird crashes because of
the conflicting versions.  Nor is the use of the ports version of
Heimdal or MIT necessary in most cases.  Some ports out there do
explicitly require the ports version of Heimdal which is bad such as
postgresql.  Heimdal from base should be patched to alleviate the need
for these situations.  Right now I just patch ports to work with the
base version as a workaround when I run into them.

(If someone is looking for something to do, trying working out an easy
way to handle all three versions of Kerberos in a uniform way within the
ports tree and avoids the hassles people often run into when using
versions from the ports tree.)

Tom

-- 
| tmclaugh at sdf.lonestar.org             tmclaugh at FreeBSD.org |
| FreeBSD                                   http://www.FreeBSD.org |
| BSD#                    http://www.mono-project.com/Mono:FreeBSD |





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