Date: Mon, 28 Jun 2004 20:26:28 +0100 From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: freebsd-questions@freebsd.org Subject: Re: Guide to x.org update? Message-ID: <20040628192628.GB68724@happy-idiot-talk.infracaninophile.co.uk> In-Reply-To: <20040628184508.GD83630@spamcop.net> References: <20040628161012.82589.qmail@web53406.mail.yahoo.com> <20040628121353.4bd1dc41@vixen42.24-119-122-191.cpe.cableone.net> <20040628171756.GC83630@spamcop.net> <20040628132232.74fabcfa@vixen42.24-119-122-191.cpe.cableone.net> <20040628184508.GD83630@spamcop.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--gj572EiMnwbLXET9 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jun 28, 2004 at 02:45:08PM -0400, Jim Trigg wrote: > On Mon, Jun 28, 2004 at 01:22:32PM -0500, Vulpes Velox wrote: > > On Mon, 28 Jun 2004 13:17:56 -0400 > > Jim Trigg <jtrigg@spamcop.net> wrote: > > >=20 > > > AFAICT, this won't really do anything -- there does not appear to be > > > a real way to tell the ports system that you want X ports to depend > > > on xorg instead of xfree. Every X port appears to have xfree > > > hardcoded. > >=20 > > Not sure, I think some do, but everything I have hear does not seem to > > have that problem. >=20 > OK, so how do you get cvsup to use xorg? As best I can tell, it will > depend on either XFree86 (XFree86 v. 3) or XFree86-4-libraries (XFree86 > v. 4), with no option to depend on xorg-libraries. Both the XFree86-4-libraries and xorg-libraries provide the /usr/X11R6/lib/libX11.so.6 shared library (amongst others). It's the same ABI independent of which port the shlib comes from. The short answer is "just install the x11/xorg-libraries port before you install cvsup". In fact, cvsup works perfectly well even if you replace the XFree86 libs with the xorg ones underneath a previously installed copy of cvsup. Doesn't even need a recompile. The same goes for most X based software. Here's how it works: when the Makefile in the cvsup port says "USE_XLIB" that gets transformed into a LIB_DEPENDS line in /usr/ports/Mk/bsd.ports.mk: LIB_DEPENDS+=3D X11.6:${PORTSDIR}/x11/XFree86-4-libraries (assuming you've not got XFREE86_VERSION =3D=3D 3). That LIB_DEPENDS line is in two parts separated by a colon. The first bit: X11.6 means that the port needs to link against libX11.so.6, and it checks to see if a suitable shlib is installed and accessible by grep'ing in the output of ldconfig: % ldconfig -r | fgrep X11.6 116:-lX11.6 =3D> /usr/X11R6/lib/libX11.so.6 Since last night on my system that's from: % pkg_info -W /usr/X11R6/lib/libX11.so.6 /usr/X11R6/lib/libX11.so.6 was installed by package xorg-libraries-6.7.0 If make(1) can find a suitable shlib, everything is happy and the compile continues -- all make looks for is the presence of the library. It doesn't check what (if any) port the library is part of. Only if it can't find the correct shlib does the right hand side of that LIB_DEPENDS line get considered: ${PORTSDIR}/x11/XFree86-4-libraries That's simply a suggestion of a suitable port that will provide the required shlib, and fulfil the dependency. But there are several such ports in the tree, any of which could be used. Often in such situations there will be some sort of 'WANT_FOO' or 'WITH_FOO_VER' make variable to select which one gets used. Unfortunately, no such mechanism for saying "I want X.Org ports in preference to XFree86 ones" has yet been committed. One annoyance due to the lake of make(1) infrastructure is that the suggested port will be listed in the package dependencies of the installed port, rather than the actual port that provided the shlib you used to build against. That, however, is just an administrative detail which you can fix up with pkgdb(1), and has no real bearing on the effectiveness of the software. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. 26 The Paddocks Savill Way PGP: http://www.infracaninophile.co.uk/pgpkey Marlow Tel: +44 1628 476614 Bucks., SL7 1TH UK --gj572EiMnwbLXET9 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFA4HDkiD657aJF7eIRAvNpAJ9oOpSelGEMGEIYiuOGyI94no6d1gCfbOpV 0C7G/+5OnU4LddbFtJxx9bY= =9uHN -----END PGP SIGNATURE----- --gj572EiMnwbLXET9--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040628192628.GB68724>