I can confirm this on Feisty. The linux 2.0.0.3 binary downloaded from mozilla.org works fine, so it seems to be a Ubuntu-specific issue (non-standard build flags?). This will be a show-stopper for many SVG-based applications.

I can confirm that rebuilding the package with the embedded cairo fixes this. The embedded cairo version is cairo 1.0.2, while the current version on feisty is 1.4.2. That's a rather big difference for tracking the potential issues which happened between these versions. I'm wondering if the same issues is also affecting Fedora, it would be interesting to test this on core 7 (they are also using --enable-system-cairo).

On Thu, May 24, 2007 at 01:29:38PM -0000, Sylvain Pasche wrote:
> I can confirm that rebuilding the package with the embedded cairo fixes
> this. The embedded cairo version is cairo 1.0.2, while the current
> version on feisty is 1.4.2. That's a rather big difference for tracking
> the potential issues which happened between these versions. I'm
> wondering if the same issues is also affecting Fedora, it would be
> interesting to test this on core 7 (they are also using --enable-system-
> cairo).
>
> What are the arguments against using the embedded cairo version?
>

If you want to track this down, ask thebes devs on #cairo (or however
the freenode channel is called). They may have an idea as they
probably fixed it for ffox trunk already.

< cworth> If you can verify that a system-cairo of 1.0.2 works and a system-cairo of 1.4.2 doesn't, then it should be an easy process to use git-bisect to find the problem.
< tor_> offhand that looks possibly to be the change when cairo fixed an extents bug the 1.8-branch svg depended on
< tor_> a8ca155f83098c02fb8d3acc57b0492d5b753d54 is the likely suspect, if you're set up to experiment that way
< tor_> if that is the problem, changing moz to work with the current fixed behavior is relatively simple

Since linux distributors can't seem to understand "--enable-system-cairo is unsupported", we need to change the branch SVG code to handle both the old and new API behavior of cairo_{fill,stroke}_extent.

Linux distributors have been ignoring our advice that --enable-system-cairo is unsupported and are running Firefox against newer versions of cairo than what's in the tree. The branch svg code relied on a bug in one of the cairo APIs that has since been fixed. This patch moves similar fixes that were made to the trunk about half a year ago, and makes the code work with both old and new behavior.