The ruby-rrd ebuild is badly out of date. The ebuild was submitted on 10/11/2004 and hasn't been updated since: # etcat -c ruby-rrd [ Results for search key : ruby-rrd ] [ Candidate applications found : 1 ] * ruby-rrd-1.1 (11 Oct 2004) : 11 Oct 2004; Michael Kohl <citizen428@gentoo.org> +metadata.xml, +ruby-rrd-1.1.ebuild: Initial import. Ebuild submitted by pyon <gentoo@pyon.net>, closing bug #67003 The new rrdtool api is not source-compatible with ruby-rrd. This breakage appears to have started with the 1.2.x series of rrdtool. Since rrdtool-1.2.6 is the latest stable, ruby-rrd can't compile against it. Here is the error message: i686-pc-linux-gnu-gcc -fPIC -O3 -march=pentium3 -funroll-loops -pipe -fPIC -I. -I/usr/lib/ruby/1.8/i686-linux -I/usr/lib/ruby/1.8/i686-linux -I. -c main.c main.c: In function `rb_rrd_graph': main.c:149: error: too few arguments to function `rrd_graph' make: *** [main.o] Error 1 Grepping the main.c file for rrd_graph obtains: # grep rrd_graph * main.c:VALUE rb_rrd_graph(VALUE self, VALUE args) main.c: rrd_graph(a.len, a.strings, &calcpr, &xsize, &ysize); main.c: rb_define_module_function(mRRD, "graph", rb_rrd_graph, -2); Grepping /usr/include/rrd.h for rrd_graph obtains: # grep rrd_graph /usr/include/rrd.h * let rrd_graph return the actual value range it picked ... * allow to pass an open filehandle into rrd_graph as an extra argument int rrd_graph(int, char **, char ***, int *, int *, FILE *, double *, double *); etcat -v of rrdtool yields: # etcat -v rrdtool [ Results for search key : rrdtool ] [ Candidate applications found : 6 ] Only printing found installed programs. * net-analyzer/rrdtool : [ ] 1.0.49 (0) [M~ ] 1.0.50 (0) [ ] 1.2.6 (0) [ I] 1.2.6-r1 (0) [M~ ] 1.2.9 (0) [M~ ] 1.2.10 (0) # epm -q ruby-rrd rrdtool ruby-rrd-1.1 rrdtool-1.2.6-r1 Reproducible: Always Steps to Reproduce: 1. 2. 3.
I can reproduce this with the raw tarball. That is, it's upstream and not a problem in the ebuild. So ... if there's an (ancient) rrdtool where this does work, perhaps the ebuild should require it. Meanwhile, it doesn't look to me like a Ruby problem or an rrdtool problem. The upstream author is listed in the README in the tarball. The email address given there is # author: Miles Egan <miles@caddr.com> I'll send him an email and see if he's still around.
I got a response from the upstream developer. He has a fix for this issue, but the code isn't passing it's internal tests at run time yet. So we are closer. I don't know either Ruby or rrdtool well enough yet to fix this on my own, but I'm guessing it will only be a day or so before a viable update is available. The upstream source is from http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/contrib/ so it may need to go through Tobias (the creator of rrdtool) before it gets released. I'll keep you all posted; a Ruby interface to rrdtool is something I need for a Rails project I'm building, so I'm going to get this fixed. :)
Any news?
(In reply to comment #3) > Any news? Not a single new. :) Time for me to pulse upstream again, I guess.
*** Bug 117436 has been marked as a duplicate of this bug. ***
Created attachment 77305 [details, diff] ruby-rrd-1.1.ebuild.diff Ruby: You might want to DEPEND on <rrdtool-1.2 until this is fixed upstream.
I have found another version of binding, that should be working with rrdtools 1.2 http://rubyforge.org/projects/rubyrrdtool/
This was solved with the patch in bug #132570 , now ruby-rrd applies a compatibility patch when building against 1.2. *** This bug has been marked as a duplicate of 132570 ***