What's going on?
The xmkmf and imake utilities are being dropped from X11. These are fairly old tools used to compile programs and libraries, including portable detection of the paths to X11 headers and libraries, and a whole makefile-generator system. Fink has packages of some programs and libraries that use xmkmf/imake as part of their build process:
- intimately -- the author has used this system instead of autotools or other build systems.
- slightly -- just using xmkmf to find out X11 paths, but then some other build system.
- autoconf -- older version of autoconf used xmkmf to determine X11 paths
To solve this mess, packages that use xmkmf/imake to detect the location of X11 and/or to generate makefiles will need to work around the fact that xmkmf and imake will no longer exist.
Note that the latest X11 release, without xmkmf, is already being used by some Fink users: those who have installed the distribution of X11 from the xquartz project.
There is now a fink xmkmf package, in both stable and unstable trees, which contains that program taken from a recent x.org distro. This will allow packages that rely on xmkmf to continue to use the old system.
To use fink's xmkmf, you should include a BuildDepends on xmkmf (>= 1.0.2-3), and then should include the following lines at the beginning of your CompileScript:
It may also be a good idea to include the same lines in your InstallScript.
Alternately, packages can be overhauled to avoid using these obsolete tools at all.
- The "intimately" ones may be easy to fix (just write a real makefile or direct compiler calls) or hard (the package might be complex, and xmkmf/imake automatically handles suites of inter-related programs and libraries).
- The "slightly" ones are probably easy to fix (just patch in the paths or pass via various flags or env vars).
- The "autoconf" ones are probably easy to fix (autoconf-2.62 has a fallback detection, so maybe just have to redo aclocal/autoconf, which would recreate ./configure with this improved detection).
For the "slightly" and "autoconf" packages, adding the following flags to ConfigureParams works in many cases:
Packages needing work
Grepping the 10.4/unstable distro, the following package make intimate use of xmkmf/imake:
- Maintainer: Hanspeter Niederstrasser
- Maintainer: Ben Hines
- games/xquarto (only builds under 10.4 at the moment...)
- Maintainer: Rob Braun
- games/xkobo (also in stable) (10.4/ppc only, so no need to update)
- Maintainer: Dave Morrison
- text/dvibook (this one is presently marked "Distribution: 10.4" so is not affected)
- Maintainer: W. G. Scott
- sci/ccp4 (also in stable)
- Maintainer: none
- x11/glut (also in stable; let die? not portable to newer OSX/cpu, there are newer/portable glut libs in fink)
- Maintainer: Dave Vasilevsky
- text/groff -- new upstream %v might not use xmkmf; maintainer will look into it in a few weeks
- Maintainer: Todai Fink Team
- x11/kterm (also in stable)
- Maintainer: Jack Fink
- x11-system/tightvnc -- upstream says they are rewriting the build system