Comment 6 for bug 524148

Revision history for this message
marmuta (marmuta) wrote :

An automated test-case for the CDLL-calls sounds like a good idea, if I new how to do this, I would add it to trunk too.

I should have mentioned that in this case I am part of the upstream, the ctypes piece in question was actually my (troublesome) contribution. You found quite correctly that my initial intention was to stay independent of library versions, but in hindsight that looks more like wishful thinking on my part. API as well as ABI of libX11 and libXi are more or less hard coded in X11.py since it relies on pure python with ctypes. ABI at least in form of fixed struct order and sizes and rigid function parameters. There isn't really any guarantee this would still work with the next major versions, whenever that may happen with X11 anyway. There is no way to take advantage of updated header files like in a C application. Last but not least, I missed before that the python ctypes documentation also uses sonames in it's sample.

Consequently today I have modified X11.py to use sonames libX11.so.6 and libXi.6 in onboard trunk. I've also changed onboard to fail more gracefully next time. Instead of coming down crashing only a small part of the functionality would be disabled, namely the two new mouse click buttons, which aren't even immediately visible in the default keyboard layout.

Looking at your patch it should be compatible, since clean:: removes the versioning before it is readded, but if you agree with the above it may not be necessary anymore once Francesco decides to create a new minor release. In any case this was a very necessary and rapidly done fix, so thank you very much for it :).