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>