tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: switching remaining platforms to modular X by default



On Tue, Jun 04, 2013 at 12:50:58PM +1200, David Sainty wrote:
 > > Since apparently this isn't clear to some people: the problem arises
 > > because libXft is linked to fontconfig and freetype, so anything that
 > > links with native libXft will end up linked to both versions of
 > > fontconfig and freetype and will blow up if you try to run it in a way
 > > that actually exercises that functionality.
 > > 
 > > Furthermore, the X infrastructure in pkgsrc has no way to exclude
 > > builtin libXft based on the fact that it depends on builtin things
 > > that pkgsrc is trying to override. (Doing it based on version won't
 > > work, because it's not the version that matters.)
 > > 
 > > (It might be that using an explicit PREFER to also build libXft from
 > > pkgsrc will fix the overt problems. But that might also just make
 > > things worse, depending on what else libXft links to and what else is
 > > linked to it.)
 > 
 > I think Pkgsrc already makes some attempt to get this right what you're
 > describing, in pkgsrc/fonts/Xft2/builtin.mk:
 > 
 > .if defined(USE_BUILTIN.fontconfig) && !
 > empty(USE_BUILTIN.fontconfig:M[nN][oO])
 > USE_BUILTIN.Xft2=       no
 > .endif
 > 
 > This code (or code like it) seems like it should resolve that problem -
 > perhaps the check is incomplete or being subverted?

Yes, I found that last night; it has two problems:

(1) it doesn't work (the builtin.mk files are not included in tree
order and so USE_BUILTIN.fontconfig hasn't been set yet)

and (2) if it did, it would result in using fonts/Xft2, not
x11/libXft; fonts/Xft2 is older than the libXft in native X even in
netbsd-5's native X.

When I fell asleep last night I was looking at inserting logic into
bsd.buildlink3.mk (at line 123) to walk the depends tree and clear
USE_BUILTIN=yes for any package that depends on a package with
USE_BUILTIN=no. This isn't entirely trivial. It only fixes problem (1)
though... I only dimly recall why there's an extra outdated libXft
packages in pkgsrc or what problem (2) is ultimately about.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index