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.


_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to