Re: cairo release 1.12.4 now available

Reinhard Tartler <siretart <at> tauware.de>
2012-12-07 22:16:14 GMT

The following message is a courtesy copy of an article
that has been posted to gmane.comp.lib.cairo as well.
On Sa, Okt 06, 2012 at 11:56:13 (CEST), Chris Wilson wrote:
> On Sat, 6 Oct 2012 11:31:14 +0200, Andreas Radke <andyrtr <at> archlinux.org> wrote:
>> I've packaged the new release and it works well in ArchLinux with my
>> local Awesome WM setup.
>>
>> Remote connections using OpenNX are broken when used with Xfce.
>> Xfce-panel and menu keep crashing instantly until I downgrade to 1.12.2
>> on the server.
>
> There is not enough information here to begin to access the cause. A
> stack trace would be a good start.
It seems that cairo unconditionally assumes that the xserver does
support the latest version of the Xrender extension:
http://cgit.freedesktop.org/cairo/tree/src/cairo-xlib-display.c?id=1.12.2#n217
This assumption does not hold for many non-Xorg Xservers, including
nxagent, which is used by NX and derivatives like OpenNX, FreeNX or
X2Go:
http://code.x2go.org/gitweb?p=nx-libs.git;a=blob;f=nx-X11/include/extensions/render.h;h=691c63fdecfcbc29c3625fd2b85ae1400a7b64e6;hb=HEAD#l109
Note that the defines for Operators only available in version 0.11 in
Xorg are *not* included:
/*
* Operators only available in version 0.11
*/
#define PictOpBlendMinimum 0x30
#define PictOpMultiply 0x30
#define PictOpScreen 0x31
#define PictOpOverlay 0x32
#define PictOpDarken 0x33
#define PictOpLighten 0x34
#define PictOpColorDodge 0x35
#define PictOpColorBurn 0x36
#define PictOpHardLight 0x37
#define PictOpSoftLight 0x38
#define PictOpDifference 0x39
#define PictOpExclusion 0x3a
#define PictOpHSLHue 0x3b
#define PictOpHSLSaturation 0x3c
#define PictOpHSLColor 0x3d
#define PictOpHSLLuminosity 0x3e
#define PictOpBlendMaximum 0x3e
Also, note that nxagent does not use pixman (which is the software
implementation that Xorg uses nowadays), but the old, previous
implementation of low-level pixel rendering, AFAIUI for example:
http://code.x2go.org/gitweb?p=nx-libs.git;a=blob;f=nx-X11/programs/Xserver/fb/fbcompose.c;h=f8169995fdb39b83dd71f978e28e00e87abf1572;hb=HEAD#l3395
I would assume that there are still a number of other non-Xorg X11
servers (most of them commercial) that do not support these
operations.
Chris, is there any chance to fix/change cairo to work also without
operators that are only available in version 0.11?
--
--
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4