If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Can't build firefox with SVG cairo backend




12 years ago
12 years ago


(Reporter: Trevin Beattie, Unassigned)


1.0 Branch

Firefox Tracking Flags

(Not tracked)




12 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050801 Firefox/1.0.6
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050801 Firefox/1.0.6

Your project page should really list which version(s) of cairo the SVG renderer
should be built with.  I tried cairo-0.6.0, which is the most recent snapshot
available on http://cairographics.org/snapshots/, but the build failed with
"error: `cairo_matrix_create_DEPRECATED_BY_cairo_matrix_t' undeclared".

Next I installed cairo-0.4.0, which is the latest snapshot in which
cairo_matrix_create was *not* deprecated, but again the build failed with
"error: `cairo_set_target_drawable' undeclared".  cairo_set_target_drawable did
not exist in version 0.4.0 ... but in 0.5.0, it was already marked

It's as if the SVG renderer was written for some customized version of cairo
that was never released.

Reproducible: Always

Steps to Reproduce:
1. Download any version of cairo from http://cairographics.org/snapshots/,
build, and install.  (My most recent attempt was with cairo-0.4.0.tar.gz.)
2. Add the following entries to .mozconfig:
   ac_add_options --enable-svg
   ac_add_options --enable-svg-renderer-cairo
3. Build.  I'm running an rpm build based (loosely) on Fedora's build, which 
runs the following commands:
   export BUILD_OFFICIAL=1
   MAKE="gmake -j2" make -f client.mk build

Actual Results:  
c++ -o nsSVGCairoRegion.o -c -DOSTYPE=\"Linux2.4.21-32\" -DOSARCH=\"Linux\"
-I../../../../../gfx/src -I../../../../../gfx/src/gtk 
-I../../../../../dist/include/xpcom -I../../../../../dist/include/widget
-I../../../../../dist/include/pref -I../../../../../dist/include/gfx
-I../../../../../dist/include/imglib2 -I../../../../../dist/include/string
-I../../../../../dist/include/dom -I../../../../../dist/include/content
-I../../../../../dist/include/necko -I../../../../../dist/include/util
-I../../../../../dist/include/uconv -I../../../../../dist/include/windowwatcher
-I../../../../../dist/include/layout -I../../../../../dist/include
-I/usr/src/redhat/BUILD/mozilla/dist/include/nspr     -I/usr/X11R6/include  
-fPIC  -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion
-Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy
-Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe 
-DNDEBUG -DTRIMMED -O2 -g -pipe -m32 -march=athlon -I/usr/include/freetype2
-I/usr/include/cairo -I/usr/X11R6/include -I/usr/include/libpng12   
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include
-I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -I/usr/X11R6/include
-DMOZILLA_CLIENT -include ../../../../../mozilla-config.h
-Wp,-MD,.deps/nsSVGCairoRegion.pp nsSVGCairoRegion.cpp
nsSVGCairoCanvas.cpp: In member function `nsresult
nsSVGCairoCanvas::Init(nsIRenderingContext*, nsIPresContext*, const nsRect&)':
nsSVGCairoCanvas.cpp:121: error: `cairo_set_target_drawable' undeclared (first
use this function)
nsSVGCairoCanvas.cpp:121: error: (Each undeclared identifier is reported only
once for each function it appears in.)
gmake[7]: *** [nsSVGCairoCanvas.o] Error 1

Expected Results:  
Finish building the executable.


Comment 1

12 years ago
You try to build FF 1.0.6?
Assignee: nobody → general
Component: Build Config → SVG
Product: Firefox → Core
QA Contact: build.config → ian
Version: unspecified → 1.0 Branch

Comment 2

12 years ago
Yes; I downloaded the source tarball from

Comment 3

12 years ago
The cairo-using code in Firefox 1.0.x was experimental and worked with the
current cvs cairo of the time (about a year and a half ago).
Last Resolved: 12 years ago
Resolution: --- → WONTFIX

Comment 4

12 years ago
As I've said, you should document that version (or cvs checkout date, whatever)
in the build instructions at http://www.mozilla.org/projects/svg/build.html. 
Since the cairo backend is built by default, it makes it seem that cairo is
actually supported.  The first link in the notice on top of the instruction page
goes to a message which states:

"Cairo has been checked into the tree and should build when that renderer is used.

"If you see errors building svg with these changes, please file a build config
bug against me."

In addition, bugs #286422 and #292160 suggest that cairo builds were working a
couple of months ago.

Comment 5

12 years ago
Cairo being checked into the tree and being the default svg renderer on
linux/mac are things that happened on the trunk only.  As I said before, the
cairo svg renderer in the Firefox 1.0.x was experimental code, which even at the
time should only have been used by the developers of said code.
You need to log in before you can comment on or make changes to this bug.