[cairo] Continued support for Mac OS X v10.4 Tiger (was: Cairo 1.14 error on OS X 10.10.3 Yosemite)

Daven Quinn dev at davenquinn.com
Sun May 10 00:25:24 PDT 2015


Hi Ryan,

That sheds some light on the issue, which appears when the error message
doesn't (i.e. on 1.14.2). I have no issue with the error message, which is
fine. However, something about the fix in 1.14.2 is breaking glyph
rendering through CairoSVG on the latest OS X. So it seems that the new
APIs were not implemented quite correctly.

As a side note, the lectures about maintaining compatibility have no
bearing on this bug. And, in general, while it is important to keep users
of older hardware in mind, it seems like upgrading to newer APIs where
applicable forestalls a lot of brittleness on new systems related to
eventual removal of old functionality (which will occur without warning),
and that seems like a worthy goal in most cases, as well.

Daven

On Sat, May 9, 2015 at 1:58 PM, Ryan Schmidt <cairo-2015 at ryandesign.com>
wrote:

>
> On May 8, 2015, at 5:58 PM, Daven Quinn wrote:
> >
> > I recently upgraded to Cairo 1.14.2 (installed via Homebrew) on my Mac
> OS X (latest) system. I am using it via CairoSVG to create PDF graphics.
> The upgrade broke the glyph rendering of CairoSVG, resulting in grossly
> too-large font glyphs (with the same baseline/spacing as prior, leading to
> compressed text). I have tried building from source and relinking. An
> example of the output is shown below.
> >
> > Downgrading to cairo 1.12.16 fixes the issue (see attached), although
> the following warning is raised (which does not appear in 1.14):
> >
> > May  4 18:37:47 Daven-Quinn python2.7[993] <Error>: The function
> ‘CGFontGetGlyphPaths’ is obsolete and will be removed in an upcoming
> update. Unfortunately, this application, or a library it uses, is using
> this obsolete function, and is thereby contributing to an overall
> degradation of system performance.
> >
> > Any insights on a possible fix?
>
> I do not have insight on your issue. I only want to explain that it is
> true that cairo 1.14.0 and earlier used CGFontGetGlyphPaths and other
> related now-obsolete functions, because these are the only available
> functions for implementing Quartz support on Mac OS X v10.4 Tiger. In cairo
> 1.14.2 more modern replacement functions were used instead, at the expense
> of Tiger support; cairo 1.14.2 with Quartz now requires Mac OS X v10.5
> Leopard or newer. Whether this change in cairo is permanent or might yet be
> reversed is, as far as I know, still up for discussion. Homebrew probably
> doesn't care, as they have themselves required Leopard or newer for some
> time already, but I represent MacPorts, which still runs on Tiger and
> newer, so I still care about cairo supporting Tiger. Apple sold a lot of
> PowerPC machines that can run Tiger that cannot run Leopard.
>
> I understand that Apple wants developers to move to the most modern APIs
> available, but I do not understand how the use of this old API could be
> "contributing to an overall degradation of system performance". As a user,
> I would not worry about this message. As a developer, I would look for a
> way to use the new function when available, and otherwise continue to use
> the old function.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20150510/b4b140cd/attachment.html>


More information about the cairo mailing list