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 "DEPRECATED_BY_cairo_xlib_surface_create"!! 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: autoconf-2.13 export MOZILLA_OFFICIAL=1 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: *** [nsSVGCairoCanvas.o] Error 1 Expected Results: Finish building the executable. libpixman-0.1.6 glitz-0.4.3
You try to build FF 1.0.6?
Yes; I downloaded the source tarball from http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.0.6/source/firefox-1.0.6-source.tar.bz2.
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).
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.
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.