Replying to [comment:1 glynn]:
> Replying to [ticket:419 neteler]:
> > Draw_bitmap.c:36: error: implicit declaration of function
'cairo_format_stride_for_width'
...
> I'd rather work around the requirement.
That would be appreciated since I don't get Cairo 1.6 compiled on the
oldish FC4 (and no way to update that).
Replying to [comment:1 glynn]:
> Replying to [ticket:419 neteler]:
>
> > Trying to compile GRASS trunk on grass.osgeo.org (FC4 with cairo
1.4.4), I get
>
> > Draw_bitmap.c:36: error: implicit declaration of function
'cairo_format_stride_for_width'
>
> > What's the minimum version of cairo needed here?
>
> That function needs 1.6.
Replying to [comment:4 glynn]:
> Replying to [comment:3 mlennert]:
>
> > > > What's the minimum version of cairo needed here?
>
> > Looks like 1.5.8 would be enough:
>
> I'll update the test accordingly.
>
> > I have the same problem with
> >
> > cairo_xlib_surface_get_xrender_format
>
> That should be conditionalised upon CAIRO_HAS_XLIB_XRENDER_SURFACE. The
function should be defined in cairo-xlib-xrender.h.
>
> Can you provide more details?
svn update and recompile now gives only one error:
{{{
mlennert@geog-pc40:~/SRC/GRASS/grass_trunk/general/g.cairocomp$ export
LANG=C; make
gcc -L/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-gnu/lib -Wl,
--export-dynamic -Wl,-rpath-
link,/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-gnu/lib -o
/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-
gnu/bin/g.cairocomp OBJ.i486-pc-linux-gnu/main.o -lgrass_gis
-lgrass_datetime -lz -lXrender -lcairo -lX11 -lm -lz
OBJ.i486-pc-linux-gnu/main.o: In function `init_xlib':
/home/mlennert/SRC/GRASS/grass_trunk/general/g.cairocomp/main.c:118:
undefined reference to `cairo_xlib_surface_get_xrender_format'
collect2: ld returned 1 exit status
make: *** [/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-
gnu/bin/g.cairocomp] Error 1
}}}
> svn update and recompile now gives only one error:
>
>
{{{
/home/mlennert/SRC/GRASS/grass_trunk/general/g.cairocomp/main.c:118:
undefined reference to `cairo_xlib_surface_get_xrender_format'
make: *** [/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-
gnu/bin/g.cairocomp] Error 1
}}}
>
> Using cairo 1.4.14 on Debian stable.
Right; I can only fix this in the sense of adding a configure check for
cairo_xlib_surface_get_xrender_format() and not building g.cairocomp if
it's missing. g.cairocomp can't work without that function, but the cairo
driver can.
Replying to [comment:6 glynn]:
> Replying to [comment:5 mlennert]:
>
> > svn update and recompile now gives only one error:
> >
> >
> {{{
> /home/mlennert/SRC/GRASS/grass_trunk/general/g.cairocomp/main.c:118:
undefined reference to `cairo_xlib_surface_get_xrender_format'
>
> make: *** [/home/mlennert/SRC/GRASS/grass_trunk/dist.i486-pc-linux-
gnu/bin/g.cairocomp] Error 1
> }}}
> >
> > Using cairo 1.4.14 on Debian stable.
>
> Right; I can only fix this in the sense of adding a configure check for
cairo_xlib_surface_get_xrender_format() and not building g.cairocomp if
it's missing. g.cairocomp can't work without that function, but the cairo
driver can.
And do I understand correctly that g.cairocomp is need to use the GUI, at
least when using the default cairo driver ?
I guess it's time to compile a more recent version of cairo, then...
> And do I understand correctly that g.cairocomp is need to use the GUI,
at least when using the default cairo driver ?
No. At present, g.cairocomp isn't used.
Using the cairo driver to generate X pixmaps which can be composited by
g.cairocomp offers a faster alternative to using PNM files, but it
requires X, the XRender extension, and a recent version of cairo built
with X and XRender support. Even if/when the GUI does use g.cairocomp, the
use of PNM files will still need to be retained as a fallback.
Replying to [comment:4 glynn]:
> That should be conditionalised upon CAIRO_HAS_XLIB_XRENDER_SURFACE. The
function should be defined in cairo-xlib-xrender.h.