[rrd-users] rrdtool 1.4.x without graphing support?

Tobias Oetiker tobi at oetiker.ch
Thu Nov 5 23:56:10 CET 2009


Hi Sebastian,

Today Sebastian Harl wrote:

> Hi,
>
> On Thu, Nov 05, 2009 at 05:53:20AM +0100, Tobias Oetiker wrote:
> > Yesterday Ulf Zimmermann wrote:
> > > Anyone got an idea how much work would be involved to build/patch
> > > rrdtool 1.4.x to remove graphing support? Library dependency for
> > > EL4 is just hell at this point. And as I need librrd, I am not
> > > sure how far I can work with a static build to work with collectd
> > > together.
> >
> > you may want to try the appended patch.
>
> > +if BUILD_RRDGRAPH
> > +RRD_C_FILES += rrd_graph.c	\
> > +	rrd_graph_helper.c	\
> > +	rrd_xport.c	\
> > +	rrd_gfx.c \
> > +	pngsize.c
> > +endif
> [?]
>
> NB: RRD_C_FILES is later used to specify the source files for librrd.
>
> In case this patch is supposed to be included in RRDtool, please note
> that it provides an easy way to build RRDtool with a different API /
> ABI. Hence, it requires a different SONAME version (or even better: a
> different SONAME -- which would be easier to implement as well).

this patch is not the library split or anything like this ... it
is simply an attempt to help ulf ...

note that there are already similar configure options for libdbi
which enable/disable functionality without changeing the library
version ...

after doing this initial version, and thinking about it I think
adding stub versions of the public graph functions which set
rrd_error when called would be a nicer variant ... leaving the
library interface in place ...

> Anyway, rather than including this (imho) somewhat hackish way, I'd
> rather go for splitting the library as discussed before (librrd /
> librrdgraph). I'm willing to provide a patch for that targeted at
> RRDtool 1.5 (it will probably require a SONAME version bump, thus, it
> should imho not be included in 1.4 -- I'd also provide patches for
> reverse dependencies known to be affected by that).

yes, a split of the library for 1.5 would be cool ... I would
propose the following split:

  librrdclient - access to rrdcached functions - no deps
  librrdcore - core rrdtool functions (create/update) - no deps
  librrdcached - rrdcached  - glib
  librrdgraph - graphing - cairo pango

  librrd - compat layer - librrdclient librrdcore librrdcached librrdgraph

configure could then automatically disable the bits of rrdtool
which can not be built due to libraries missing

cheers
tobi

-- 
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900



More information about the rrd-users mailing list