X11 in Macports

Ryan Schmidt ryandesign at macports.org
Sat Nov 22 21:26:15 PST 2008


On Nov 22, 2008, at 23:00, Jeremy Huddleston wrote:

> For those of you who don't know me, I took over development of X11  
> in OSX when Ben Byer moved on to bigger and better things at the  
> beginning of 2009.

Shhhh! I thought people weren't supposed to know you have a time  
machine. :)


> I've been poke, prodded, nudged, and otherwise motivated into  
> trying to "fix the X11 problem in Macports" as well... so I figured  
> I'd make some proper introductions, and offer some suggestions to  
> see what everyone's thoughts are on the subject before I start  
> changing things only to have 100 people lash out at me for  
> "breaking" something... so here goes...
>
> 1) The dependency issue
>
> X11 lives in a grey area in Macports' dependency policy.  X11 is  
> actually given as the example for something that is appropriate to  
> use the lib:* or bin:* dependency rather than a port:* dependency,  
> yet there are plenty of ports that are still using a port:  
> dependency.  I believe this is mainly for things like libXrender  
> (rather than libX11) as a legacy of what was available in Tiger's  
> X11.  I'd very much like to use anything in /usr/X11/* over  
> installing a duplicate in /opt/local, and I'm sure others are in  
> the same boat.  I have seen a fair share of bug reports on xquartz- 
> dev that came about simply because the macports version didn't have  
> a fix that was in the system version or macports config files (eg:  
> for fontconfig) didn't match system configurations, so users were  
> wondering why some fonts weren't available in some programs.
>
> I intend to go through all the x11 related ports and update  
> dependencies to be lib: or bin: where appropriate instead of port:  
> (if a port is not nomaintainer or openmaintainer, I will file a bug  
> in trac to be on the safe side... unless general consensus here is  
> that such reports would be overkill and I should just do it myself)
>
> 2) The other dependency issue
>
> Now, for what port to actually depend on... Quickly grepping though  
> the code, I have seen the following dependencies for libX11:
>
> lib:libX11.6:XFree86
> lib:libX11.6:xorg
> lib:libX11:XFree86
> lib:libX11:xorg
> lib:libX11:xorg-libX11
>
> I'd like to standardize this to be xorg-libX11

We did have consensus and standardization: everything that needed X11  
declared a dependency on "lib:libX11.6:XFree86". Then some people  
started changing some ports to "lib:libX11.6:xorg" for an unknown  
reason.

As I understand it, the reason we have a policy exception to allow  
Apple X11 to be used instead of XFree86 or xorg in MacPorts is that  
Apple X11 integrates nicely with Mac OS X. I've never used xorg in  
MacPorts, but I tried installing XFree86 some time ago and when it  
launched, it had a weird cursor, weird window behavior, it launched 5  
weird-shaped and weird-colored terminal windows I couldn't figure out  
how to deal with, and it was just a very off-putting experience. I  
figured I didn't know what I was doing, uninstalled it, and returned  
to Apple X11 which always worked great.

My initial impression is that we shouldn't have a policy exception  
for everything Leopard's X11 provides, however. fontconfig, xrender,  
etc. are surely newer in MacPorts than they are in Tiger, and we  
still support Tiger, and some people even still use MacPorts on  
Panther. If there are things in Leopard's X11 that are newer than  
what we have in MacPorts, then let's update what we have in MacPorts.  
If a MacPorts port configuration (you say fontconfig?) doesn't  
integrate well with the OS, then let's fix that port.


> 3) The old monolith xorg and XFree86
>
> I'd like to eventually punt these in favor of having just one X11  
> solution in Macports based on the latest release.

I have no problem with changing the recommended non-Apple X11 from  
XFree8 to xorg for example. (I understand that Apple's X11 switched  
from being based on XFree86 to being based on xorg, and that would be  
a fine reason to also prefer xorg as the fallback in MacPorts.) If  
that's decided, then it should be done in all ports at once.  
Otherwise people are left wondering why some ports depend on one X  
implementation and others on another.

As long as both projects continue to exist and function on current  
OSes, there's no reason to delete one or the other, however, is  
there? Choice is a good thing, and we certainly have other cases of  
duplicate functionality in ports.




More information about the macports-dev mailing list