Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Nov 2005 11:31:47 +0100
From:      Volker Stolz <vs@FreeBSD.org>
To:        Tilman Linneweh <arved@FreeBSD.org>
Cc:        cvs-ports@FreeBSD.org, ports-committers@FreeBSD.org, Kris Kennaway <kris@obsecurity.org>
Subject:   Re: cvs commit: ports/graphics/py-graphviz Makefile
Message-ID:  <20051102103147.GF9487@i2.informatik.rwth-aachen.de>
In-Reply-To: <20051102094550.GA60209@arved.priv.at>
References:  <200511011418.jA1EIqVv060958@repoman.freebsd.org> <20051101191515.GA74339@xor.obsecurity.org> <20051102083018.GA9487@i2.informatik.rwth-aachen.de> <20051102094550.GA60209@arved.priv.at>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 02. Nov 2005 um 10:45 CET schrieb Tilman Linneweh:
> * Volker Stolz [2005-11-02 09:30]:
> > > > arved       2005-11-01 14:18:52 UTC
> > > > 
> > > >   FreeBSD ports repository
> > > > 
> > > >   Modified files:
> > > >     graphics/py-graphviz Makefile 
> > > >   Log:
> > > >   Fix dependency on graphviz, the graphviz libraries are installed in a
> > > >   non-default libdir, add BUILD_ and RUN_ dependendencies instead.
> > > 
> > > Shouldn't graphviz be setting LDCONFIG_DIRS instead?
> 
> Yes, that's the problem. 
> According to perky, the graphviz port does not install a startup script,
> that sets LDCONFIG_DIRS, because the libraries have very common names.

This means that the python-binding will be broken anyway:

>>> from graphviz import *;
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/lib/python2.3/site-packages/graphviz/__init__.py", line 23, in ?
    from graphviz import *
  File "/usr/local/lib/python2.3/site-packages/graphviz/graphviz.py", line 5, in ?
    import _graphviz
ImportError: Shared object "libagraph.so.0" not found, required by "_graphviz.so"

Having spent the last week in -rpath-hell anyway, how about this solution:
-       ${CC} -shared ${LOCALBASE}/lib/graphviz/libagraph.so ${LOCALBASE}/lib/graphviz/libcdt.so gv_wrap.o -o _graphviz.so
+       ${LD} -shared -L${LOCALBASE}/lib/graphviz -rpath ${LOCALBASE}/lib/graphviz -lagraph -lcdt gv_wrap.o -o _graphviz.so

This makes the use-case above work again and doesn't require and ldconfig.
I'll check if there are any other consumers of graphviz' shlibs.

#readelf -a work/graphviz-0.1/_graphviz.so | grep PATH
 0x0000000f (RPATH)                      Library rpath: [/usr/local/lib/graphviz]
# ldd work/graphviz-0.1/_graphviz.so
work/graphviz-0.1/_graphviz.so:
        libagraph.so.0 => /usr/local/lib/graphviz/libagraph.so.0 (0x28119000)
        libcdt.so.0 => /usr/local/lib/graphviz/libcdt.so.0 (0x28128000)

Volker
-- 
http://www-i2.informatik.rwth-aachen.de/stolz/ *** PGP *** S/MIME
Receive and transmit



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