[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#287557: /usr/include/GL/GLwDrawAP.h should not be shipped



On Sat, Mar 26, 2005 at 02:51:01AM -0500, Branden Robinson wrote:

 > >  This file is a private implementation file, therefore the "P".
 > 
 > I'm not sure I can honor this request and be consistent with existing
 > Debian practice.

 Uhm... I meant that as "in this particular case the file is named like
 that because it's private to the implementation", but I guess I get
 your point.

 > [ 2 asides:
 >   1) libxaw6-dev will ship much the same files as libxaw7-dev.
 >   2) WTF is xpaint doing shipping header files?! ]

 Good question :-)

 > I'm open to people's thoughts on this.  There's nothing in Debian
 > Policy on point, as far as I know.

 No, there's nothing, that's right.  I wondered about that because the
 "upstream" source (the one in Mesa, not the one in the XFree86 tree)
 doesn't actually include an install target for this particular subset
 and the one in the XFree86 tree was constructed for the XFree86 tree.

 > Might private header files be necessary for non-C implementations of
 > library interfaces?  (XML-RPC and what have you...)

 Hmm... cute.  Maybe...

 I'd really expect wrappers to be wrappers around the public interface,
 which among other things gives you an opaque handle to the widget:

    extern Widget GLwCreateMDrawingArea(
        Widget parent,
        char *name,
        ArgList arglist,
        Cardinal argcount);

 that is to say "like everything else in the X Windows API".

 At some point there were in fact multiple implementations of GLw
 available for Linux (and if I'm not mistaken, there still are but I
 can't check for sure now since I don't have access to the necessary
 installation for that anymore).  The whole point of making the pointers
 opaque is precisely that: you should be able to exchange
 implementations.  It's very slippery to allow programs to have a peek
 into the guts of a library designed in this way.

 Just a datapoint:

$ cat test.c 
#include <GL/GLwDrawA.h>

$ cc -E test.c | grep '^#.*GLw'
# 1 "/usr/include/GL/GLwDrawA.h" 1 3 4
# 53 "/usr/include/GL/GLwDrawA.h" 3 4
# 54 "/usr/include/GL/GLwDrawA.h" 2 3 4
# 175 "/usr/include/GL/GLwDrawA.h" 3 4
# 196 "/usr/include/GL/GLwDrawA.h" 3 4

$ dpkg -S /usr/include/GL/GLwDrawA.h
xlibmesa-gl-dev: /usr/include/GL/GLwDrawA.h

-- 
Marcelo



Reply to: