X11.app (XDarwin) on Mac OS X 10.5 (Leopard)
OS X 10.5 (Leopard) ships with an X11.app that is based on the X.org X11R7.2 release. Specifically, it is using Xserver-1.2 with a few libraries and other modules that were updated after the 7.2 katamari release.
The actual source used to build the 10.5.0 release is available on www.opensource.apple.com: X11server-46 X11libs-16 X11apps-13 X11proto-14 X11fonts-5
A xorg-server-1.2-apple git branch has been created to hold patches against X11.app / Xquartz.
Apple has a mailing list (x11-users, archives) for users to discuss X11 on OS X.
Pedro Massobrio created a FAQ about X11 on Leopard in the macosxhints.com forums. If you've just upgraded from Tiger and you're having problems this is a great place to start. Note that many of the problems described there are fixed in the updated Xquartz binaries linked below.
Here's a mailing list post on troubleshooting X protocol forwarding over SSH (i.e. ssh -X foo.bar or ssh -Y foo.bar)
Updated libX11 binary -- Gimp crash fix
libX11-1.1.2 contained a bug that causes Gimp (and anything else that uses gtk) to crash when calling XGetMotionEvents; this bug affected all platforms, and is documented here and here. An updated libX11.6.dylib (based on libX11-1.1.3) is available here.
Steps to install:
curl -LO http://people.freedesktop.org/~bbyer/x11app/libX11.6.dylib.bz2 bunzip2 libX11.6.dylib.bz2 sudo install -b libX11.6.dylib /usr/X11/lib
Updated Xquartz binaries
Updated binaries are available for Leopard; installing the latest of these will fix issues that have been discovered in X11.app since it was released.
The most recent version is 1.2a9. A list of changes is available here.
Binary installation
Quick binary link: http://people.freedesktop.org/~bbyer/x11app/xorg-server-1.2a9/Xquartz-1.2a9.bz2
Note: Before doing this for the first time, make a backup copy of the "real" /usr/X11/bin/Xquartz binary in case something breaks. (i.e. cp /usr/X11/bin/Xquartz ~/Documents/Xquartz-backup)
curl -LO http://people.freedesktop.org/~bbyer/x11app/xorg-server-1.2a9/Xquartz-1.2a9.bz2 bunzip2 Xquartz-1.2a9.bz2 sudo install -b Xquartz-1.2a9 /usr/X11/bin/Xquartz
Source installation
Prerequisite: install pkg-config
curl -LO http://people.freedesktop.org/~bbyer/x11app/xorg-server-1.2a9/xorg-server-1.2a9.tar.bz2 tar jxvf xorg-server-1.2a9.tar.bz2 curl -LO http://downloads.sourceforge.net/mesa3d/MesaLib-6.5.2.tar.bz2 tar jxvf MesaLib-6.5.2.tar.bz2 export ACLOCAL="aclocal -I /usr/X11/share/aclocal" export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig cd xorg-server-1.2a9 ./configure --prefix=/usr/X11 --with-mesa-source=`pwd`/../Mesa-6.5.2 make sudo cp /usr/X11/bin/Xquartz /usr/X11/bin/Xquartz.old sudo cp hw/darwin/Xquartz /usr/X11/bin/ (optional:) make clean ./configure --prefix=/usr/X11 --with-mesa-source=`pwd`/../Mesa-6.5.2 --disable-xdarwin --enable-xvfb --enable-kdrive make sudo install -b hw/vfb/Xvfb /usr/X11/bin/Xvfb sudo install -b hw/kdrive/ephyr/Xephyr /usr/X11/bin/Xephyr
Participating in development
Development is currently performed using git, which is available from both Fink and MacPorts (where it is called 'git-core').
git-clone git://anongit.freedesktop.org/git/xorg/xserver.git cd xserver git checkout -b my-xorg-server-1.2-apple origin/xorg-server-1.2-apple export ACLOCAL="aclocal -I /usr/X11/share/aclocal" export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig ./autogen.sh --prefix=/usr/X11 --with-mesa-source=/path/to/Mesa-6.5.2
Patches may be attached to bug reports on bugs.freedesktop.org, sent to X11-users or emailed directly to me (bbyer at apple dot com)
See XDarwin TODO for a list of known bugs, workarounds, and other useful information.
The info below is all out of date, please fix me! The prerequisites for X11 can be built out of MacPorts, but you must build the xserver yourself using the above directions.
Pre-built Binaries for OS X 10.4
I've put together a binary installation package of X11R7.2 for Mac OS X 10.4. At the moment, the package contains most of the X11R7.2 release's proto headers, libraries and the X server, all built for ppc and i386.
The package will install all of the files in /usr/X11, so as to coexist with the files in /usr/X11R6 as distributed with 10.4. Most users will find this most useful if they already have X11.app installed, as this package does not yet include any applications; it can use the ones in /usr/X11R6, or I can bundle them in a future package if there is interest. (The only way to get Apple's quartz-wm is from the OS X install disk.)
The installer is located here: http://people.freedesktop.org/~bbyer/Xorg-X11R7.2.dmg
After installing the package, you may run the new X.org version as / usr/X11/X11.app.
The included version of the Xquartz server is mostly feature complete; the only feature missing from it but found in the XFree86 Xquartz is fullscreen support, which I am currently working on (but would welcome any help!). All of the X.org bug fixes from the past few years have been included, as well as a handful of bugs. Please feel free to send me as many patches as you'd like
Source tarballs for XDarwin in X11R7.2
Building this package is fairly difficult; I recommend you try the binaries I have provided, and rebuild individual pieces as needed from source. To facilitate this, the above installer is merely a combination of these tarballs:
http://people.freedesktop.org/~bbyer/binaries/X11R72-proto-10.4.tar.bz2
http://people.freedesktop.org/~bbyer/binaries/X11R72-libs-10.4.tar.bz2
http://people.freedesktop.org/~bbyer/binaries/X11R72-fonts-10.4.tar.bz2
http://people.freedesktop.org/~bbyer/binaries/X11R72-server-10.4.tar.bz2
The packages were built with only slight patches to most modules, with the exception of the X server, which is fairly heavily patched.
Complete archives of the sources for those, as well as the rest of the modules, are available:
http://people.freedesktop.org/~bbyer/sources/X11proto-13.tar.bz2
http://people.freedesktop.org/~bbyer/sources/X11libs-15.tar.bz2
http://people.freedesktop.org/~bbyer/sources/X11apps-11.tar.bz2
http://people.freedesktop.org/~bbyer/sources/X11server-40t.tar.bz2
http://people.freedesktop.org/~bbyer/sources/X11misc-6.tar.bz2
In each, you'll find the original tarballs, patches, and configure script parameters, as well as a build script which may or may not be very helpful outside of my build environment. Of these, X11server is the easiest to build, as it's only one module! It also could use the most work, so that'd be a good starting place!
Building using MacPorts
Here's how to build the modular X.org tree on OS X using MacPorts files I made. Feel free to annotate this page with any suggestions.
You will need to install Xcode >= v2.1; this is available (with free registration) from http://developer.apple.com/tools/download/
Download and install MacPorts: http://svn.macports.org/repository/macports/downloads/MacPorts-1.5.0/
Install git, as well as some recent versions of development tools: (one hour on my G4 eMac)
- sudo port install pkgconfig automake autoconf libtool git-core
Install X.org libraries: (45 minutes)
- sudo port install xorg-proto xorg-libX11 xorg-libxkbfile xorg-libXfont xorg-libfontenc
Get X server source from git and build it: see above instructions.