[PATCH 00/18] xextproto repository cleanup

Jeremy Huddleston jeremyhu at freedesktop.org
Wed Jun 24 22:45:14 PDT 2009


These were issues that made my eyes bleed when I last looked at them.   
After wiping away my red tears, I promptly dug a hole and buried my  
head.  You're certainly a man of higher constitution that I can claim.

I promise you beer in Portland for this...  Sure, I owe you beer in  
general, but one of them will be for this!

Cheers,
Jeremy

On Jun 24, 2009, at 22:26, Peter Hutterer wrote:

>
> This is a patch series to clean up the xextproto repository.
>
> The problem with it now is that it mixes library headers with protocol
> header. This is partly mitigated by amusing requirements to define  
> random
> variables before including the file to ensure you're only including  
> the Xlib
> header part, or just the protocol part, or random other bits.
>
> The runner-up is XShm.h, which includes the few lines that apply to  
> the
> server in an #else clause. So the protocol headers have include  
> lines for
> server internal headers.
> http://cgit.freedesktop.org/xorg/proto/xextproto/tree/XShm.h
>
> The winner of this week's grand prize is sync.h, which declares Xlib
> functions, then #defines macros with the same name so that callers  
> need to
> undef them at will to get the functions instead of the macros. I  
> don't know
> the purpose of this and I didn't try to fix it, at this point I  
> started
> stabbing myself to make the pain go away.
> http://cgit.freedesktop.org/xorg/proto/xextproto/tree/sync.h
>
> Anyway. The approach in this patch series is the following:
> for any header file Foo.h, if Foo.h is a (or contains) Xlib headers
> - remove protocol constants into a Fooconst.h
> - move protocol structures into a Foostr.h (or add to it if exists)
> - move the leftover Foo.h to libXext/include and include Fooconst.h  
> from the
>  file.
>
> So any client users of Foo.h should be mostly fine, they get the same
> defines. In the server there was more work, since the server now  
> needs to
> include Fooconst.h and Foostr.h instead of Foo.h
> This also affects at least xfixesproto that has a #include <shape.h>.
>
> This is in theory anyway, there will be breakages in some clients.  
> This is a
> tricky situation, since getting it to a point where there are no  
> breakages
> on the client side is quite hard given the combinations of ifdefs  
> possible.
>
> Since this is an API break only, not an ABI break, I propose pushing  
> this to
> git and bumping to a pre-relase for xextproto-7.1, then fixing up the
> libraries as they come.
>
> Comments? Review of the patches would be much appreciated.
>
> Cheers,
>  Peter
> _______________________________________________
> xorg-devel mailing list
> xorg-devel at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-devel



More information about the xorg-devel mailing list