<div dir="ltr"><div>Hi Ryan,<br></div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Daven</div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Sat, May 9, 2015 at 1:58 PM, Ryan Schmidt <span dir="ltr"><<a href="mailto:cairo-2015@ryandesign.com" target="_blank">cairo-2015@ryandesign.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On May 8, 2015, at 5:58 PM, Daven Quinn wrote:<br>
><br>
> 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.<br>
><br>
> Downgrading to cairo 1.12.16 fixes the issue (see attached), although the following warning is raised (which does not appear in 1.14):<br>
><br>
> 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.<br>
><br>
> Any insights on a possible fix?<br>
<br>
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.<br>
<br>
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.<br>
<br>
<br>
</blockquote></div><br></div></div>