Updated: XFree86-xserv-4.3.0-66

Harold L Hunt II huntharo@msu.edu
Thu Apr 1 19:52:00 GMT 2004


Lev,

>> 1) winclipboardxevents.c/winClipboardFlushXEvents/SelectionRequest -
>> Change the 'format' value for the first call to XChangeProperty from 8
>> to 32 since we are passing a data array of Atoms, which are 32 bits
>> long.  (Lev Bishop)
> 
> TARGETS still doesn't work right. Now, a request for TARGETS puts the 
> following in XWin.log (once for each request):
> winMultiWindowXMsgProcErrorHandler - ERROR: BadValue (integer parameter 
> out of range for operation)
> 
> I can't find the above change in the CVS (is it there?)

No, it was missing.  When I applied the patch I got a complaint about 
the diff that followed the winclipboardxevents.c file, so I applied that 
following one by hand; but it turns out that the diff for the 
winclipboardxevents.c file was ignored as well, despite there not being 
an error indicating this.  So, I have applied the patch again and 
committed it to CVS.

> but perhaps you
> need to change from sizeof(atomTargetArr) to
> sizeof(atomTargetArr)/sizeof(Atom) ??

Yup, that looks correct to me.  I don't think the TARGETS support has 
ever worked... it is pretty easy to see that the call to XChangeProperty 
was not correct by just looking at the next call to XChangeProperty 
about a hundred lines down in the file, and the docs make it obvious 
that it was wrong as well.  I thank you for catching this because no one 
noticed this until now and I don't think anyone else was looking for it 
either.

> Sorry I can't compile my own
> versions to test these things but I don't even have room on my HD for the
> X sources...

Hmm... actually, you might.  I think you would only need the following 
source packages:

-base
-bin
-prog
-xserv

Those packages total only 12 MiB in bzip2 form.  Uncompressed they take 
68.2 MiB but 84.1 MiB on a disk with 4 KiB clusters.

You'd need the Cygwin packages listed on the following page (except I 
think you can skip perl since we aren't going to build the fonts):

http://x.cygwin.com/docs/cg/prog-build-native.html

Then you would edit /usr/src/xc/CYGWIN-PATCHES/host.def.in and add these 
lines to minimize the amount of code built:

===========================================
#define BuildServersOnly		YES
#define XnestServer			NO
#define XVirtualFramebufferServer	NO
===========================================

Then you are just three simple steps away from a build of XWin.exe:

==================================================
$ cd /usr/src
$ cp xc/CYGWIN-PATCHES/XFree86-4.3.0.sh .
$ ./XFree86-4.3.0.sh mkdirs && \
./XFree86-4.3.0.sh conf && \
./XFree86-4.3.0.sh build > build.log 2>&1
==================================================

Then you can find your own XWin.exe at:

/usr/src/xc/.build/programs/Xserver/XWin.exe

You can just copy this to /usr/X11R6/bin/XWin.exe and start testing the 
changes you have made.

After the initial build you can remake only the server by:

=========================================================
$ cd /usr/src/xc/.build/programs/Xserver && make XWin.exe
=========================================================

The total amount of data generated by the build was 30 MiB requiring 60 
MiB on a disk with 4 KiB clusters.  The build took 12 minutes on my machine.

So, unless you have less than 250 MiB of free disk space, then I think 
that you actually can do your own builds and probably should.

Note: I tested the above build steps and confirmed that they work; the 
numbers presented are from an actual build, not just guesses.

Harold



More information about the Cygwin-xfree mailing list