Cairo currently uses the Vendor String to determine a workaround necessary for bug #3566, a work around that does not work in Gentoo. As commented on in http://bugzilla.gnome.org/show_bug.cgi?id=306216. However if you look at this it is incorrect to do this. The Vendor string is a property that's modifiable by the end user/distro/packager so the proper value should be the Xorg version value. Which will remain constant and contain the exact version of the Xorg server.
It seems a little odd to be trying a version number out of a string when there's already at least two places where you can get just the number, in different forms: For example, xdpyinfo output includes: vendor release number: 60899015 X.Org version: 6.8.99.15
We don't get the version number out of the vendor string. We use the vendor string to *INTERPRET* the vendor release number. vendor release number: 60899007 Or whatever means *nothing* unless you know what vendor it is; compare the check for XFree86 version. This bug cannot be detected with a run-time test; whether it occurs depends on whether a pixmap is allocated into video ram or system ram, which isn't controllable. We'll take a patch so that the Gentoo modified vendor string gets recognized (I think they just prepend something), but that's all we can do.
Created attachment 2868 [details] [review] Proposed patch for cairo-0.9.2 dealing with vendor string change
I originally reported this bug. My original comments are missing as am I missing as the reporter...
That patch is exactly what I was thinking, if we needed to use the vendor string.
2005-08-21 Owen Taylor <otaylor@redhat.com> * src/cairo-xlib-surface.c (_cairo_xlib_surface_create_internal): Recognize gentoo's (and maybe other distro's) modified server vendor string, where extra text is added to the upstream value. (#4068, reported by Doug Goldstein, others. Patch from Mart Raudsepp)
Thanks much, Owen!
Move bugs against "cvs" version to "0.9.3" so we can remove the "cvs" version.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.