Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2018 21:09:10 +0200
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        Gary Aitken <freebsd@dreamchaser.org>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: recommended setup for building ports in development env?
Message-ID:  <20180426210910.475aeefd@kalimero.tijl.coosemans.org>
In-Reply-To: <0cf315a5-dedf-29b9-13de-32240b52a5ad@dreamchaser.org>
References:  <ba4df094-8f3f-c7f7-e908-beb5daca69f6@dreamchaser.org> <20180425105447.7d69d2b9@kalimero.tijl.coosemans.org> <0cf315a5-dedf-29b9-13de-32240b52a5ad@dreamchaser.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 25 Apr 2018 11:22:30 -0600 Gary Aitken <freebsd@dreamchaser.org> wrote:
> On 04/25/18 02:54, Tijl Coosemans wrote:
> > On Tue, 24 Apr 2018 19:18:50 -0600 Gary Aitken <freebsd@dreamchaser.org> wrote:  
> >> Asked this on questions a while ago and got no response;
> >> any thoughts would be much appreciated.
> >>
> >> I'm trying to set up a development environment for a few ports.
> >> I established a parallel ports tree and set the environment variables
> >>     PREFIX=${MYFREEBSD}/usr/local
> >>     WORKDIR=${MYFREEBSD}/var/db/portsnap
> >>     PORTSDIR=${MYFREEBSD}/usr/ports
> >>
> >> With those set, I can build and install some things.
> >>
> >> For example, I can build and install graphics/ufraw, and with my PATH
> >> properly extended to include ${MYFREEBSD}/usr/local/bin I can execute it.
> >> I can also build and install x11/babl into ${MYFREEBSD}.
> >> Running a normally built gimp finds the new libbabl located in a
> >> different, non-standard place:
> >>     $ ldd `which gimp` | grep babl
> >>           libbabl-0.1.so.0 => /usr/home/.../usr/local/lib/libbabl-0.1.so.0
> >> I didn't expect that to work; nice.
> >>
> >> However, when I go to build graphics/gegl it fails because it can't find
> >> the installed babl:  
> >>     ===>   gegl-0.3.34 depends on shared library: libbabl-0.1.so - not found  
> >>
> >> If I set
> >>     LOCALBASE=${MYFREEBSD}/usr/local
> >> it wants to rebuild all dependencies, since it doesn't find any of the
> >> normally installed stuff.
> >>
> >> Adding
> >>      -L${MYFREEBSD}/usr/local/lib      to LDFLAGS
> >>     -I${MYFREEBSD}/usr/local/include  to CPPFLAGS
> >> in the Makefile doesn't solve the problem.
> >>
> >> Is there a good solution to this, or do I have to set LOCALBASE with the
> >> resulting build of everything else, not just the things that I need to
> >> upgrade for this work?  Hopefully there's a way to extend the normal
> >> search path for port builds?  
> ...
> > Try setting LIB_DIRS.  Its default value is "/lib /usr/lib ${LOCALBASE}/lib".  
> 
> Thanks, that mostly did the trick.
> However, I still have an issue with a library which resides in a subdir
> of /usr/local/lib:
>    ===>   gegl-0.3.34 depends on shared library: libcgraph.so - not found  
> $ pkg info -l graphviz
> ...
>          /usr/local/lib/graphviz/libcgraph.so
>          /usr/local/lib/graphviz/libcgraph.so.6
>          /usr/local/lib/graphviz/libcgraph.so.6.0.0
> 
> I tried tweaking the Makefile:
> LIB_DEPENDS+=   graphviz/libcgraph.so:graphics/graphviz
> but that fails:
> Error: pattern graphviz/libcgraph.so in LIB_DEPENDS is not valid
> 
> Also tried some permutations with trailing '/' and '/*' on the directory
> with no success.
> 
> I could not find any discussion of this situation in the porter's
> handbook, probably because it "just works" building in /usr/ports.
> I can get it to work by explicitly adding the subdir as another element
> of LIB_DIRS but that seems wrong; I have 92 subdirs to /usr/local/lib.

The code to find libraries is in /usr/ports/Mk/Scripts/find-lib.sh.  These
are the directories:

dirs="${LIB_DIRS} `cat ${LOCALBASE}/libdata/ldconfig/* 2>/dev/null || :`"

So either you modified LOCALBASE or ${LOCALBASE}/libdata/ldconfig/
doesn't contain an file for graphviz.



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