client-side code needs to be moved out of xserver because of XID size mismatches
For example, on amd64 the xorgcfg program is unusable because it receives
server-side typedef for XID (int32) and calls client-side library function from
libXt which has client-side typedef for XID (int64)
The solutions seem to be
1. Clean up the typedefs, so client and server side would agree:
a) change client-side typedefs to match current server-side
Keep server ABI, break client ABI - extremely undesireable
b) change server-side typedefs to match current client-side
Break server ABI, keep client ABI - somewhat undesireable
2. Fix every client-side app of xserver package
Noone seems to care :)
3. Move client-side apps out of xserver package
No issues with ABI
Thus last solution seems to be the best choice.
The reason most of those apps are in xserver is because they use code from the
xfree86 ddx directly - doing this properly means removing those dependencies or
making the code they use into shared libraries with a defined API available to
both the server & clients. The current discussion around replacing the PCI
probe functions with such a library is one example - with that, scanpci may be
able to move out of the xserver build.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
xorgcfg (an X client), and the non-X-client utilities scanpci & xorgconfig
are all now removed from the X server. The remaining utilities gtf & cvt
are command line utilities, not X clients. X client code remains in the
Xnest, Xdmx & Xephyr programs, but as those are both clients & servers, that's
unavoidable, and have to be carefully coded to keep server & client types
straight. Closing as fixed.