Re: How can I deal with build-time port conflicts?

2006-11-12 Thread Kris Kennaway
On Sun, Nov 12, 2006 at 07:59:01PM +0100, Stefan Sperling wrote:
> Hello,
> 
> I am updating audio/beast to version 0.7.0.
> 
> At first it didn't seem to work, it was segfaulting like crazy when run.
> With the friendly help of upstream developers I was able
> to track this down to a shared library problem.
> 
> The port sets LDFLAGS="-L/usr/local/lib" in the environment of the
> configure script, because otherwise the configure script fails to
> find required libraries, like libmad, for example.
> 
> It seems that this causes the beast-0.7.0 binaries to be linked
> with beast-0.6.x libraries installed in /usr/local/lib.
> Deinstalling beast-0.6.x before compiling 0.7.0 solves the issue,
> the application runs just fine. So a clean upgrade requires
> the previous version of the port to be removed *before* the new
> version is built.
> 
> Is there any way I can make sure that the previous version of the port
> is not installed while building the new version? I've tried setting
> CONFLICTS to beast-[0-6]*, but CONFLICTS is not checked until install
> time. I need the check to be performed before anything else.
> 
> Or is the rather ugly LDFLAGS hack to blame, i.e. should I try to find
> a better way to make configure pick up required libraries?

The better way is to fix the port build to not pick up the wrong
libraries, i.e. by using -L. -L${LOCALBASE}/lib to pick up the local
versions first.  Note also that you shouldn't be using /usr/local/lib.

Kris


pgpcEeIi3QFEe.pgp
Description: PGP signature


How can I deal with build-time port conflicts?

2006-11-12 Thread Stefan Sperling
Hello,

I am updating audio/beast to version 0.7.0.

At first it didn't seem to work, it was segfaulting like crazy when run.
With the friendly help of upstream developers I was able
to track this down to a shared library problem.

The port sets LDFLAGS="-L/usr/local/lib" in the environment of the
configure script, because otherwise the configure script fails to
find required libraries, like libmad, for example.

It seems that this causes the beast-0.7.0 binaries to be linked
with beast-0.6.x libraries installed in /usr/local/lib.
Deinstalling beast-0.6.x before compiling 0.7.0 solves the issue,
the application runs just fine. So a clean upgrade requires
the previous version of the port to be removed *before* the new
version is built.

Is there any way I can make sure that the previous version of the port
is not installed while building the new version? I've tried setting
CONFLICTS to beast-[0-6]*, but CONFLICTS is not checked until install
time. I need the check to be performed before anything else.

Or is the rather ugly LDFLAGS hack to blame, i.e. should I try to find
a better way to make configure pick up required libraries?

Thanks,
-- 
stefan
http://stsp.in-berlin.de PGP Key: 0xF59D25F0


pgpIh3p5O3dXU.pgp
Description: PGP signature