ports/63851: [patch] enable devel/libgsf to be built without gnome

Sybolt de Boer sybolt at xs4all.nl
Mon Mar 8 16:10:15 PST 2004


The following reply was made to PR ports/63851; it has been noted by GNATS.

From: Sybolt de Boer <sybolt at xs4all.nl>
To: freebsd-gnats-submit at FreeBSD.org
Cc: Alexander Nedotsukov <bland at FreeBSD.org>
Subject: Re: ports/63851: [patch] enable devel/libgsf to be built without gnome
Date: Tue, 9 Mar 2004 01:05:32 +0100

 --Boundary-00=_MpQTAOddcV12m7k
 Content-Type: text/plain;
   charset="iso-8859-1"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 On Monday 08 March 2004 14:32, you wrote:
 > I can see one problem with proposed patch. At the moment main library
 > consumers are ports from gnome land. This patch will change package
 > configuration built on bento. And we get libgsf package incompatible
 > with ports I mentioned before. Pehaps better aproach in this case will
 > be creation of slave libgsf-gnome port.
 > Just for the record what is the reason you want this option? This list
 > will also be usefull for precise dependency targetting if we go the way
 > I said.
 > Thanks.
 
 Thanks for your comments!
 
 The reason I'd like to be able to build libgsf without gnome, is that I'd like 
 to open msword documents in kword. For this to work, editors/koffice-kde3 
 needs textproc/wv2, which needs devel/libgsf. It seems silly to install many 
 gnome packages - which I do not use - just to be able to read msword 
 documents. :)
 
 I've done a little research to see how many packages really link with the 
 gnome part of libgsf (libgsf-gnome-1.so.9):
 
 % find /usr/ports -name Makefile -mindepth 3 -maxdepth 3 \
 | xargs egrep -l "gsf-1|gsf-gnome-1|libgsf"
 /usr/ports/textproc/wv2/Makefile
 /usr/ports/textproc/libwpd/Makefile
 /usr/ports/math/gnumeric2/Makefile
 /usr/ports/graphics/librsvg2/Makefile
 /usr/ports/devel/libgsf/Makefile
 /usr/ports/deskutils/planner/Makefile
 
 BTW with my patch applied, all of those will build just fine after
 # touch /usr/local/libdata/pkgconfig/libgsf-gnome-1.pc
 
 To see which ports really want to link with libgsf-gnome-1.so.9, I reverted to 
 ports version of devel/libgsf, and rebuilt all of the above ports.
 A little script (attached) showed me this:
 
 % pkg_info -R libgsf-1.8.2_1
 Information for libgsf-1.8.2_1:
 
 Required by:
 koffice-1.3,1
 librsvg2-2.4.0_2
 libwpd-0.7.1
 planner-0.11_1
 wv2-0.2.1_1
 gnumeric2-1.2.6
 
 % ./gsflink.sh koffice-1.3,1
 /usr/local/lib/kde3/libmswordimport.so:	libgsf-1.so.9	0x29694000
 
 % ./gsflink.sh librsvg2-2.4.0_2
 /usr/X11R6/bin/rsvg:	libgsf-1.so.9	0x2807e000
 /usr/X11R6/lib/gtk-2.0/2.2.0/loaders/svg_loader.so:	libgsf-1.so.9	0x28520000
 
 % ./gsflink.sh libwpd-0.7.1
 /usr/local/bin/wpd2html: 	libgsf-1.so.9	0x280b4000
 /usr/local/bin/wpd2raw:	libgsf-1.so.9	0x280b3000
 /usr/local/bin/wpd2text:	libgsf-1.so.9	0x280b3000
 /usr/local/lib/libwpd-1.so:  libgsf-1.so.9	0x28193000
 /usr/local/lib/libwpd-1.so.7:	libgsf-1.so.9	0x28193000
 
 % ./gsflink.sh planner-0.11_1
 /usr/X11R6/bin/planner:	libgsf-1.so.9		0x280de000
 /usr/X11R6/lib/libplanner-1.so: libgsf-1.so.9	0x28185000
 
 % ./gsflink.sh wv2-0.2.1_1
 /usr/local/lib/libwv2.so:	libgsf-1.so.9	0x282fd000
 /usr/local/lib/libwv2.so.1:	libgsf-1.so.9	0x282fd000
 
 % ./gsflink.sh gnumeric2-1.2.6
 /usr/X11R6/bin/gnumeric:	libgsf-gnome-1.so.9		0x29137000
 /usr/X11R6/bin/ssconvert:	libgsf-gnome-1.so.9		0x29136000
 /usr/X11R6/libexec/gnumeric-component:	libgsf-gnome-1.so.9		0x29137000
 
 Conclusion: of all the ports *explicitly* depending on libgsf, only gnumeric 
 actually links with the gnome part (libgsf-gnome-1.so), and gnumeric doesn't 
 need it to build (it does need libgsf-1.so.9). 
 
 Now only if things were so simple! from Mk/bsd.gnome.mk I learned that 
 USE_GNOME+=libgsf is implied by USE_GNOME+=librsvg2, which is implied by 
 USE_GNOME+=*who knows what*. Since my computer isn't exactly build-cluster 
 material, I don't have time/resources to build every single gnome port to 
 check whether they somehow cheat and link against libgsf-gnome-1.so.
 
 There are a number of things we can do:
 1) leave things the way they are (back to local patching :)
 2) apply the patch
 3) make a slave port (devel/libgsf-gnome?)
 4) make a new port (devel/libgsf-gnome?) depending on devel/libgsf
 
 I'll send a patch for option 3 if this is the preferred way. :)
 
 
 sybolt
 
 --Boundary-00=_MpQTAOddcV12m7k
 Content-Type: application/x-shellscript;
   name="gsflink.sh"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename="gsflink.sh"
 
 #!/bin/sh
 
 usage="Usage: `basename $0` package"
 
 if [ "x$1" = "x" ]; then
     echo $usage && exit 0
 elif !(pkg_info -e $1); then
     echo "Error: $1 is not installed"
     echo $usage && exit 1
 fi
 
 #pkg_info -qL $1 | xargs ldd 2> /dev/null | egrep "/.*:|gsf"
 pkg_info -qL $1 | xargs ldd -f"%A:\t%o\t%x\n" 2> /dev/null | egrep "gsf"
 
 exit 0
 
 --Boundary-00=_MpQTAOddcV12m7k--


More information about the freebsd-gnome mailing list