[Xcb] Python generator / cairo problems
Jeremy A. Kolb
jkolb at brandeis.edu
Mon Apr 21 13:52:08 PDT 2008
On Mon, 21 Apr 2008, Eamon Walsh wrote:
> Ian Osgood wrote:
>> On Apr 21, 2008, at 11:17 AM, Ian Osgood wrote:
>>
>>
>>> On Apr 21, 2008, at 7:52 AM, Jeremy A. Kolb wrote:
>>>
>>>
>>>> Ian,
>>>>
>>>> Are you refering to Felix Rabe's email? It looks like he sorted it
>>>> out.
>>>>
>>>> Jeremy
>>>>
>>>> On Mon, 21 Apr 2008, Ian Osgood wrote:
>>>>
>>>>
>>>>> On Apr 19, 2008, at 8:34 PM, Jeremy Kolb wrote:
>>>>>
>>>>>> Now that we have the python generator (sweeeeeet)...
>>>>>>
>>>>> Speaking of which...
>>>>>
>>>>> A rant about building the cairo XCB backend was just posted on the
>>>>> cairo mailing list. From the logs, it may have to do with the new
>>>>> python code generator.
>>>>>
>
> The only part in this mail that had to do with the Python parser was the part
> where he got the error "failed to load the xcbgen Python package." This is
> because if you use an install location that is not on your Python path, the
> c_client.py script in libxcb will not be able to find the xcbgen libraries
> installed by xcb/proto. I made the error message pretty descriptive in this
> case and put a note in the README file about how to create a *.pth file to
> extend the python path.
>
> However, his mail notes that there is a PYTHONPATH environment variable. I'll
> commit a change to the build that sets this variable. That will probably fix
> this problem entirely.
>
>
I added a note in the error message about PYTHONPATH.
>>>>> Ian
>>>>>
>>>>>
>>> Thanks, I spoke too soon. His HOWTO could use some work, though (all
>>> of xorg???).
>>>
>>> It is claiming Python 2.5 is required. Is it really using 2.5-only
>>> features, or could the version requirement be loosened to 2.4 or 2.3?
>>> Has anyone tried it on earlier Python versions? Should it advertise a
>>> requirement for a specific version of xml.etree.cElementTree? Also,
>>> could ElementTree be used if cElementTree is unavailable?
>>>
>
> I used a function named rpartition which was labeled as 2.5-only. It just
> splits a string on a separator so I'll see if I can find a replacement for
> it. That's the only 2.5-ism I'm aware of in the code itself. However, the
> documentation for ElementTree and cElementTree says that they didn't get
> bundled with the default Python install until 2.5.
>
> ElementTree and cElementTree are basically interchangeable. The code doesn't
> use any fringe features so it probably works with any release of either
> library.
>
>>> (When baked, the XSLT file xcb.xsd should also be deleted, or make it
>>> a build option whether to use Python or XSLT.)
>>>
>
> xcb.xsd is the schema description which should not be removed. c-client.xsl
> is the stylesheet, which can be deleted.
>
>>> (Also, has anyone measured the difference in build speed between the
>>> XSLT and Python code generation?)
>>>
>
> No, but the current Makefile.am in libxcb/src runs the Python script twice
> (once for .c and once for .h) even though it generates both files. Don't know
> how to express in the Makefile.am the notion of "this generates both .c and
> .h files."
>
>>> Ian
>>>
>>
>> Also, I thought the Python generator was adding some new constructs for
>> the Xinput or XSELinux protocol descriptions, but I haven't seen any
>> recent changes to xcb/proto/doc/xml-xcb.txt
>>
>
> Haven't done this yet. XSELinux doesn't need any new constructs. XInput does
> and I'm aware of its semantics (I described them in a previous mail to the
> XCB list). But my primary reason for writing this is so I can provide XCB
> Python bindings to an SELinux project that needs them. I had the "xpyb" repo
> created last week to hold this work.
>
>
We'll need to be able to handle the documention tags in the XML. Where do
I stick those (see my previous email a few days ago that shows an example
of the tags)?
> --
> Eamon Walsh <ewalsh at tycho.nsa.gov>
> National Security Agency
>
More information about the Xcb
mailing list