I have been working on packaging the new, modular X11R7.0 for Cygwin for
the last few weeks. There's still a few dozen packages left, but the
time has come to deal with handling some of the issues involved in this
transition.
For those unaware of X11 internals, the major changes included in
X11R7.0 over our current X11R6.8 are:
1) Each component source is packaged separately; this means that e.g. a
security update to libXpm (of which there were two during 6.8) does not
necessitate rebuilding the entire monolithic tree. This also means that
something requiring libX11 won't require all of X11 to be installed either.
The library APIs have not changed, except for libOSMesa. However, since
libXau was static in X11R6 and libX11 links against it, if there are any
packages using Xau* functions, they will need to be rebuilt in order not
to look for those functions in cygX11-6.dll.
2) Source packages (except for Mesa) use autoconf, automake, and
libtool. This means that *ALL* X libraries (except for libGL*) will be
shared libtool libraries.
3) /usr/X11R6 is deprecated; like any other package, X11R7.0 is being
configured with --prefix=/usr.
The move to /usr will affect a number of packages.
FIRST, the following two packages *must* be rearranged BEFORE the
X11R7.0 upgrade, in order not to cause collisions:
opengl:
a) /usr/bin/glui-examples is non-FHS-compiliant; this should be moved to
/usr/lib/glui-examples or the like.
b) /usr/include/GL/glut.h will collide with freeglut when moved to /usr;
this should be moved to /usr/include/w32api/GL/glut.h.
c) I think that /usr/include/{glui,gluix}.h should be moved to
/usr/include/w32api, and /usr/lib/lib{glui,gluix}.a to /usr/lib/w32api.
xpm-nox:
a) /usr/bin/{c,s}xpm.exe and /usr/share/man/man1/{c,s}xpm.1 will collide
with those provided by libXpm. These should have -noX appended to their
names.
b) what is the purpose of /usr/bin/cygXpm-X4.dll?
SECOND, the following packages install into /usr/X11R6. These should be
repackaged into /usr ASAP after the X11R7.0 upgrade:
freeglut [1]
fvwm
ghostscript-x11 [2]
gv
lesstif
nedit
openbox
run
tcm
tetex-x11
transfig
WindowMaker
x2x [3]
x3270
Xaw3d
XmHTML
xfig, xfig-lib
xgraph
xmon
xwinclip
[1] opengl needs to be rearranged before freeglut is moved, as stated above.
[2] ghostscript currently provides two sets of executables; a non-X
version in /usr and an X version in /usr/X11R6. What is the reasoning
for this, and is it really necessary?
[3] listed on Corinna's most recent list of orphaned packages.
Status:
By tonight, I'll have completed everything relevant in app, data, doc,
lib, proto, and util. That leaves font and xserver remaining.
Yaakov