This is the mail archive of the
mailing list for the Cygwin/XFree86 project.
Updated: xorg-server-1.14.1-2 (TEST)
- From: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- To: Cygwin/X announce list <cygwin-xfree-announce at cygwin dot com>
- Date: Fri, 21 Jun 2013 12:52:01 +0100
- Subject: Updated: xorg-server-1.14.1-2 (TEST)
The following packages have been updated in the Cygwin distribution:
These packages contain XWin and the other X.Org X11 servers.
The following cygwin-specific changes have been made since 1.14.1-1:
* Fix a multiwindow mode crash if a failure occurred while making a Windows
icon (Reported by Matthew D'Onofrio)
* Stop processing of _NET_WM_ICON hint if it's malformed with an icon size
bigger than the data remaining in the property
* [cygwin64] Fixed clipboard integration
* [cygwin64] Added DMX server as dependencies are now available
* [source] Fail in ./configure if yacc and lex aren't found
* [source] Check for python in ./configure
* Remove useless multimedia i2c driver modules
* Add xwinclip package
Note that GLX support is still disabled on cygwin64 as software rendering
crashes in softpipe and the dependencies for llvmpipe are missing.
These packages are currently marked as a test release because making the
clipboard work on cygwin64 involved a fair amount of changes, so there is a
probably a high risk of a regressions.
Clipboard integration and cygwin64
A little bit of explanation as to why this broke, and why it was hard to fix...
About 25 years ago, unsigned long was chosen as the C type for CARD32, a
32-bit cardinal value in the Xlib interface. With hindsight, this is
recognized as a mistake .
For 64-bit code, the same type is used (I assume to preserve the API), so
sizeof(CARD32) is 8 in a 64-bit client and converted to a 32-bit protocol
value on the wire (because sizeof(CARD32) is 4 in a 32-bit client).
However special steps are taken in the server code (_XSERVER64 is defined),
which modifies the behaviour of the Xlib headers to makes sizeof(CARD32)
always 4 there.
Currently some X client code, for clipboard integration and the internal
window manager for multiwindow mode is built as part of the process of
building the XWin Xserver.
This works fine for a 32-bit XWin Xserver, but given the above issue, it's
very tricky to build this code correctly when building a 64-bit XWin Xserver.
So, I've now factored out the clipboard code as a library, which is built
separately. Unfortunately, this involved rather a lot of tedious untangling,
so there is the risk that I've broken something.
Also, xwinclip has been restored (it seems the xwinclip package was removed
sometime ago) as a simple client which uses the same clipboard library. This
should make working on clipboard bugs and features a lot more tractable, as
starting the XWin Xserver with -noclipboard and then running xwinclip should
behave identically, but xwinclip can be debugged and modified without having
to restart the Xserver.
Volunteer Cygwin/X X Server maintainer