Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Feb 2005 12:13:33 +1100
From:      Sam Lawrance <boris@brooknet.com.au>
To:        Paul Schmehl <pauls@utdallas.edu>
Cc:        ports@freebsd.org
Subject:   Re: mysqltcl
Message-ID:  <1108602813.677.31.camel@dirk.no.domain>
In-Reply-To: <223BF64DCA8FD436A0BC6F52@utd49554.utdallas.edu>
References:  <D092F82A556664A2F9A9F06C@utd49554.utdallas.edu> <1108514045.686.27.camel@dirk.no.domain> <223BF64DCA8FD436A0BC6F52@utd49554.utdallas.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2005-02-16 at 09:54 -0600, Paul Schmehl wrote:
> --On Wednesday, February 16, 2005 11:34:05 AM +1100 Sam Lawrance 
> <boris@brooknet.com.au> wrote:
> >
> > Be careful. If you only use RUN_DEPENDS, make sure your port can be
> > built without tcllib installed (because RUN_DEPENDS are checked and
> > installed after the build).
> >
> The port doesn't build.  It's strictly a copy operation.  However, there's 
> a boatload of dependencies.
> 
> Using RUN_DEPENDS, the dependencies failed to install.  I changed to 
> BUILD_DEPENDS and now everything installs before the port I'm creating 
> installs.  I created another port on 4.9, and RUN_DEPENDS worked fine.  I'm 
> creating this port on 5.3, and it doesn't.  Did something change?

Are you using the same up-to-date ports tree on both systems? How
exactly do the dependencies fail to install? Can you post your port
somewhere so we can have a look?

> > What they look for and how they look for it depends on the type of
> > dependency. The porter's handbook at
> > http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook has a
> > reasonably extensive explanation.
> >
> > When you are trying to find the right file or library name to use in
> > your _DEPENDS variable, look through the pkg-plist of the dependency to
> > see what it installs.
> >
> > ports/Mk/bsd.port.mk has all the answers, even if you have to read for a
> > while before you get to them.
> >
> I've been studying both the Porter's Handbook and bsd.port.mk, and I'm 
> still not clear on a lot of stuff.  I've figured out how to get 
> BUILD_DEPENDS to work, but LIB_DEPENDS is a mystery to me.  I've been 
> getting things working by trial and error, but that's a frustrating process.

LIB_DEPENDS will look for shared libraries in shared library locations
with the help of 'ldconfig -r'.

The first part of the tuple is the name of the library, optionally
followed by a period and a major version.

For example: if your port required the shared library libds
(ports/devel/libds), you would add:

LIB_DEPENDS=	ds:${PORTSDIR}/devel/libds

Specify dependency on major version 1 like this:

LIB_DEPENDS=	ds.1:${PORTSDIR}/devel/libds

Roughly speaking, these will look for libds.so and libds.so.1
respectively. There's a bit more to it than that, but it's not of great
concern.

> Another question - is there a way to say "Use this version or better"?  For 
> example, one port I've submitted requires *at least* autoconf 2.95.  Is 
> there a way to say use 2.95 or better?  Or rather not restrict the port to 
> one version and force an install if someone is using a newer version of 
> autoconf.

AFAIK you can't do this. It's not a good idea anyway - by specifying the
version exactly, there is less chance that things will break because
someone else's environment is different to yours. Nobody is going to
complain about a bit of time and disk space if it ends up working fine.





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