Merged proto package

Yaakov (Cygwin/X) yselkowitz at users.sourceforge.net
Thu Apr 8 00:33:22 PDT 2010


On 2010-04-06 17:41, Keith Packard wrote:
> I've written some scripts that construct a merged proto package from the
> existing proto packages. They're not fancy, but do preserve the entire
> history of each sub package as they get merged in.
>
> The goal is to make the installed files exactly match what the existing
> packages install, so that no API or ABI changes would exist. This
> includes installing per-extension .pc files with the current version
> numbers.
>
> Please let me know whether this seems like a good plan, and if so, I'll
> move it into the /git/xorg tree and we can work on deprecating the
> individual protocol packages.
>
> Testing and comments welcome.

Some comments from the POV of both a distributor and one who deals with 
a system-unique DDX:

1) Keeping per-extension proto .pc files makes sense wrt to 
compatibility, but perhaps keeping all the old version number schemes 
does not.  For example, in the future, if a package requires 
compositeproto >= 0.4.2 (after some future update), how will anybody 
know which version of the all-in-one "proto" package provides that 
version of compositeproto?

2) Not all platforms support all extensions, so they do not need all the 
protos.  For example, Cygwin does not support DRI2, XV or XF86* (except 
BigFont); OTOH WindowsWM is only for Cygwin (and perhaps MinGW?) and 
AppleWM is similarly only for Darwin.  Installing protos which are not 
supported may lead some to some false positive configure tests (e.g. ah, 
X11/extensions/Xv.h is installed, you must support Xv!  Wrong.)  This 
could be fixed with some configure options and AM_CONDITIONAL hackery.

3) Can't fontcacheproto be removed as well?

4) The *PROTO_VERSION AC_SUBSTs for removed protos should also be removed.

5) Perhaps reorganizing the headers into a structure resembling an 
installed tree may make more sense:

TOPLEVEL/
     Makefile.am
     README
     configure.ac
     *proto.pc
     *proto-uninstalled.pc (*)
     X11/
         Makefile.am
         X*.h
         extensions/
             Makefile.am
             *.h

Besides being more logical in setup, this would allow building against 
an uninstalled "proto" (OTOH I'm not sure how many other modules are 
prepped for building "uninstalled".)

6) Please tell me you're not planning on releasing this package with the 
name "proto". :-)


Yaakov
Cygwin/X


More information about the xorg-devel mailing list