Patchwork [meta-oe] rrdtool: update to 1.4.8

login
register
mail settings
Submitter Peter Bigot
Date Aug. 5, 2014, 2:29 p.m.
Message ID <1407248974-17940-1-git-send-email-pab@pabigot.com>
Download mbox | patch
Permalink /patch/77313/
State Accepted, archived
Headers show

Comments

Peter Bigot - Aug. 5, 2014, 2:29 p.m.
* Upstream now uses git, so retrieve releases from the reference
  repository.

* The previous patch to remove tcl support does not apply cleanly to
  this release.  Eliminate it and disable tcl via configure instead.

* Backport a patch to remove a never-shoulda-been-there file that was
  installed but not packaged.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
 .../rrdtool/0001-removing-testing-leftovers.patch  |   39 +
 .../0001-rrdtool-eradicate-tcl-support.patch       | 1733 --------------------
 .../rrdtool/{rrdtool_1.4.7.bb => rrdtool_1.4.8.bb} |   15 +-
 3 files changed, 48 insertions(+), 1739 deletions(-)
 create mode 100644 meta-oe/recipes-extended/rrdtool/rrdtool/0001-removing-testing-leftovers.patch
 delete mode 100644 meta-oe/recipes-extended/rrdtool/rrdtool/0001-rrdtool-eradicate-tcl-support.patch
 rename meta-oe/recipes-extended/rrdtool/{rrdtool_1.4.7.bb => rrdtool_1.4.8.bb} (91%)

Patch

diff --git a/meta-oe/recipes-extended/rrdtool/rrdtool/0001-removing-testing-leftovers.patch b/meta-oe/recipes-extended/rrdtool/rrdtool/0001-removing-testing-leftovers.patch
new file mode 100644
index 0000000..cf5d775
--- /dev/null
+++ b/meta-oe/recipes-extended/rrdtool/rrdtool/0001-removing-testing-leftovers.patch
@@ -0,0 +1,39 @@ 
+From c581b02d074f5a109074bc190f373f5ba4320468 Mon Sep 17 00:00:00 2001
+From: Tobias Oetiker <tobi@oetiker.ch>
+Date: Thu, 3 Oct 2013 15:51:00 +0200
+Subject: [PATCH] removing testing leftovers
+
+Upstream-Status: Backport
+
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+
+---
+ bindings/perl-piped/leaktest.pl | 16 ----------------
+ 1 file changed, 16 deletions(-)
+ delete mode 100644 bindings/perl-piped/leaktest.pl
+
+diff --git a/bindings/perl-piped/leaktest.pl b/bindings/perl-piped/leaktest.pl
+deleted file mode 100644
+index cebf1c7..0000000
+--- a/bindings/perl-piped/leaktest.pl
++++ /dev/null
+@@ -1,16 +0,0 @@
+-#!/bin/perl -w
+-$ENV{PATH}="/usr/ucb";
+-use strict;   
+-use RRDp;     
+-my $rrdfile='/tmp/test.rrd';
+-RRDp::start '/home/oetiker/data/projects/AABN-rrdtool/src/rrdtool';
+-print grep /rrdtool/,`ps au`;
+-print grep /rrdtool/,`ps au`;
+-my $i=0;
+-while ($i<1000) {
+- RRDp::cmd 'info /tmp/test.rrd';
+- $_ = RRDp::read;
+- $i++;
+-}
+-$_ = RRDp::end;
+-print grep /rrdtool/,`ps au`;
+-- 
+1.8.5.5
+
diff --git a/meta-oe/recipes-extended/rrdtool/rrdtool/0001-rrdtool-eradicate-tcl-support.patch b/meta-oe/recipes-extended/rrdtool/rrdtool/0001-rrdtool-eradicate-tcl-support.patch
deleted file mode 100644
index 1157dc7..0000000
--- a/meta-oe/recipes-extended/rrdtool/rrdtool/0001-rrdtool-eradicate-tcl-support.patch
+++ /dev/null
@@ -1,1733 +0,0 @@ 
-From 2dcb4bb8aadfead3e77bdb78b96ec8022e605a0d Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 12 May 2012 20:41:35 +0200
-Subject: [PATCH] rrdtool: eradicate tcl support
-
-TCL breaks autoreconf
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
- Makefile.am                  |    3 -
- bindings/Makefile.am         |    5 +-
- bindings/tcl/Makefile.am     |   58 ----
- bindings/tcl/Makefile.in     |  668 ------------------------------------
- bindings/tcl/README          |   31 --
- bindings/tcl/ifOctets.tcl.in |   45 ---
- bindings/tcl/tclrrd.c        |  762 ------------------------------------------
- configure.ac                 |   54 ---
- 8 files changed, 1 insertion(+), 1625 deletions(-)
- delete mode 100644 bindings/tcl/Makefile.am
- delete mode 100644 bindings/tcl/Makefile.in
- delete mode 100644 bindings/tcl/README
- delete mode 100644 bindings/tcl/ifOctets.tcl.in
- delete mode 100644 bindings/tcl/tclrrd.c
-
-diff --git a/Makefile.am b/Makefile.am
-index 2003373..969e36b 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -36,9 +36,6 @@ site-perl-install: all bindings/perl-piped/Makefile bindings/perl-shared/Makefil
- 	cd bindings/perl-piped && $(MAKE) install
- 	cd bindings/perl-shared && $(MAKE) install
- 
--site-tcl-install: all
--	cd bindings/tcl && $(MAKE) tcl-install
--
- site-python-install: all
- 	cd bindings/python && $(PYTHON) setup.py install $(if $(DESTDIR),--root=$(DESTDIR))
- 
-diff --git a/bindings/Makefile.am b/bindings/Makefile.am
-index c4fdc10..3574a60 100644
---- a/bindings/Makefile.am
-+++ b/bindings/Makefile.am
-@@ -1,13 +1,10 @@
- .PHONY: python ruby
- 
--if BUILD_TCL
--SUB_tcl = tcl
--endif
- if BUILD_LUA
- SUB_lua = lua
- endif
- 
--SUBDIRS = $(SUB_tcl) $(SUB_lua)
-+SUBDIRS = $(SUB_lua)
- 
- # the following files are not mentioned in any other Makefile
- EXTRA_DIST = perl-piped/MANIFEST perl-piped/README perl-piped/Makefile.PL perl-piped/RRDp.pm perl-piped/t/base.t \
-diff --git a/bindings/tcl/Makefile.am b/bindings/tcl/Makefile.am
-deleted file mode 100644
-index c0e8b0f..0000000
---- a/bindings/tcl/Makefile.am
-+++ /dev/null
-@@ -1,58 +0,0 @@
--
--EXTRA_DIST = README tclrrd.c
--
--VERSION = @VERSION@
--
--AM_CFLAGS = @CFLAGS@
--### no including this by default @WERROR@
--
--TCL_PREFIX = @TCL_PREFIX@
--TCL_SHLIB_LD = @TCL_SHLIB_LD@
--TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
--TCL_SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
--TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
--TCL_LD_SEARCH_FLAGS = @TCL_LD_SEARCH_FLAGS@
--TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
--TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
--
--CLEANFILES = tclrrd.o tclrrd.so
--
--SRC_DIR            = $(top_srcdir)/src
--AM_CPPFLAGS        = $(TCL_INCLUDE_SPEC) -I$(SRC_DIR) -DUSE_TCL_STUBS
--LIBDIRS            = -L$(top_builddir)/src/.libs -L$(top_builddir)/src -L$(libdir)
--LIB_RUNTIME_DIR    = $(libdir)
--
--if BUILD_TCL_SITE
--tclpkgdir = @TCL_PACKAGE_DIR@
--tclpkg_DATA = pkgIndex.tcl
--tclpkg_SCRIPTS = ifOctets.tcl
--else
--pkglib_DATA = pkgIndex.tcl
--pkglib_SCRIPTS = ifOctets.tcl
--endif
--
--# Automake doen't like `tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)' as
--# library name. So we build and install this library `by hand'.
--#
--# We do, however, specify a lib_LIBRARIES target such that
--# automake creates the directory (if neecessary).
--#
--TCL_RRD_LIB = tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)
--
--lib_LIBRARIES =
--
--all-local: $(TCL_RRD_LIB)
--
--$(TCL_RRD_LIB): tclrrd.o
--	$(TCL_SHLIB_LD) $(TCL_LD_SEARCH_FLAGS) $(LIBDIRS) $< -o $@ -lrrd_th -lm $(TCL_STUB_LIB_SPEC) $(LDFLAGS) $(LIBS)
--
--tclrrd.o: tclrrd.c
--	$(CC) $(AM_CFLAGS) $(CFLAGS) $(TCL_SHLIB_CFLAGS) $(AM_CPPFLAGS) -c tclrrd.c -DVERSION=\"$(VERSION)\"
--
--pkgIndex.tcl:
--	echo "package ifneeded Rrd $(VERSION) \"load $(libdir)/tclrrd$(VERSION)[info sharedlibextension]\"" > $@
--
--install-exec-local: $(TCL_RRD_LIB)
--	@$(NORMAL_INSTALL)
--	$(INSTALL_PROGRAM) $(TCL_RRD_LIB) $(DESTDIR)$(libdir)/$(TCL_RRD_LIB)
--
-diff --git a/bindings/tcl/Makefile.in b/bindings/tcl/Makefile.in
-deleted file mode 100644
-index 0a36517..0000000
---- a/bindings/tcl/Makefile.in
-+++ /dev/null
-@@ -1,668 +0,0 @@
--# Makefile.in generated by automake 1.11 from Makefile.am.
--# @configure_input@
--
--# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
--# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
--# Inc.
--# This Makefile.in is free software; the Free Software Foundation
--# gives unlimited permission to copy and/or distribute it,
--# with or without modifications, as long as this notice is preserved.
--
--# This program is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
--# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
--# PARTICULAR PURPOSE.
--
--@SET_MAKE@
--
--
--
--VPATH = @srcdir@
--pkgdatadir = $(datadir)/@PACKAGE@
--pkgincludedir = $(includedir)/@PACKAGE@
--pkglibdir = $(libdir)/@PACKAGE@
--pkglibexecdir = $(libexecdir)/@PACKAGE@
--am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
--install_sh_DATA = $(install_sh) -c -m 644
--install_sh_PROGRAM = $(install_sh) -c
--install_sh_SCRIPT = $(install_sh) -c
--INSTALL_HEADER = $(INSTALL_DATA)
--transform = $(program_transform_name)
--NORMAL_INSTALL = :
--PRE_INSTALL = :
--POST_INSTALL = :
--NORMAL_UNINSTALL = :
--PRE_UNINSTALL = :
--POST_UNINSTALL = :
--build_triplet = @build@
--host_triplet = @host@
--target_triplet = @target@
--subdir = bindings/tcl
--DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
--	$(srcdir)/ifOctets.tcl.in
--ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
--am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \
--	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
--	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
--	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
--	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
--	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
--	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
--	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
--	$(top_srcdir)/configure.ac
--am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
--	$(ACLOCAL_M4)
--mkinstalldirs = $(install_sh) -d
--CONFIG_HEADER = $(top_builddir)/rrd_config.h
--CONFIG_CLEAN_FILES = ifOctets.tcl
--CONFIG_CLEAN_VPATH_FILES =
--am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
--am__vpath_adj = case $$p in \
--    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
--    *) f=$$p;; \
--  esac;
--am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
--am__install_max = 40
--am__nobase_strip_setup = \
--  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
--am__nobase_strip = \
--  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
--am__nobase_list = $(am__nobase_strip_setup); \
--  for p in $$list; do echo "$$p $$p"; done | \
--  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
--  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
--    if (++n[$$2] == $(am__install_max)) \
--      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
--    END { for (dir in files) print dir, files[dir] }'
--am__base_list = \
--  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
--  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
--am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" \
--	"$(DESTDIR)$(tclpkgdir)" "$(DESTDIR)$(pkglibdir)" \
--	"$(DESTDIR)$(tclpkgdir)"
--LIBRARIES = $(lib_LIBRARIES)
--SCRIPTS = $(pkglib_SCRIPTS) $(tclpkg_SCRIPTS)
--AM_V_GEN = $(am__v_GEN_$(V))
--am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
--am__v_GEN_0 = @echo "  GEN   " $@;
--AM_V_at = $(am__v_at_$(V))
--am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
--am__v_at_0 = @
--SOURCES =
--DIST_SOURCES =
--DATA = $(pkglib_DATA) $(tclpkg_DATA)
--DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
--ACLOCAL = @ACLOCAL@
--ALL_LIBS = @ALL_LIBS@
--AMTAR = @AMTAR@
--AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
--AR = @AR@
--AUTOCONF = @AUTOCONF@
--AUTOHEADER = @AUTOHEADER@
--AUTOMAKE = @AUTOMAKE@
--AWK = @AWK@
--CC = @CC@
--CCDEPMODE = @CCDEPMODE@
--CFLAGS = @CFLAGS@
--COMP_LUA = @COMP_LUA@
--COMP_PERL = @COMP_PERL@
--COMP_PYTHON = @COMP_PYTHON@
--COMP_RUBY = @COMP_RUBY@
--CORE_LIBS = @CORE_LIBS@
--CPP = @CPP@
--CPPFLAGS = @CPPFLAGS@
--CYGPATH_W = @CYGPATH_W@
--DEFS = @DEFS@
--DEPDIR = @DEPDIR@
--DSYMUTIL = @DSYMUTIL@
--DUMPBIN = @DUMPBIN@
--ECHO_C = @ECHO_C@
--ECHO_N = @ECHO_N@
--ECHO_T = @ECHO_T@
--EGREP = @EGREP@
--EXEEXT = @EXEEXT@
--FGREP = @FGREP@
--GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
--GMSGFMT = @GMSGFMT@
--GMSGFMT_015 = @GMSGFMT_015@
--GREP = @GREP@
--INSTALL = @INSTALL@
--INSTALL_DATA = @INSTALL_DATA@
--INSTALL_PROGRAM = @INSTALL_PROGRAM@
--INSTALL_SCRIPT = @INSTALL_SCRIPT@
--INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
--INTLLIBS = @INTLLIBS@
--INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
--LD = @LD@
--LDFLAGS = @LDFLAGS@
--LIBICONV = @LIBICONV@
--LIBINTL = @LIBINTL@
--LIBOBJS = @LIBOBJS@
--LIBS = @LIBS@
--LIBTOOL = @LIBTOOL@
--LIBVERS = @LIBVERS@
--LIPO = @LIPO@
--LN_S = @LN_S@
--LTLIBICONV = @LTLIBICONV@
--LTLIBINTL = @LTLIBINTL@
--LTLIBOBJS = @LTLIBOBJS@
--LUA = @LUA@
--LUA_CFLAGS = @LUA_CFLAGS@
--LUA_DEFINES = @LUA_DEFINES@
--LUA_INSTALL_CMOD = @LUA_INSTALL_CMOD@
--LUA_INSTALL_LMOD = @LUA_INSTALL_LMOD@
--LUA_LFLAGS = @LUA_LFLAGS@
--MAINT = @MAINT@
--MAKEINFO = @MAKEINFO@
--MKDIR_P = @MKDIR_P@
--MSGFMT = @MSGFMT@
--MSGFMT_015 = @MSGFMT_015@
--MSGMERGE = @MSGMERGE@
--MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
--MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
--NM = @NM@
--NMEDIT = @NMEDIT@
--NROFF = @NROFF@
--NUMVERS = @NUMVERS@
--OBJDUMP = @OBJDUMP@
--OBJEXT = @OBJEXT@
--OTOOL = @OTOOL@
--OTOOL64 = @OTOOL64@
--PACKAGE = @PACKAGE@
--PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
--PACKAGE_NAME = @PACKAGE_NAME@
--PACKAGE_STRING = @PACKAGE_STRING@
--PACKAGE_TARNAME = @PACKAGE_TARNAME@
--PACKAGE_VERSION = @PACKAGE_VERSION@
--PATH_SEPARATOR = @PATH_SEPARATOR@
--PERL = @PERL@
--PERLCC = @PERLCC@
--PERLCCFLAGS = @PERLCCFLAGS@
--PERLFLAGS = @PERLFLAGS@
--PERLLD = @PERLLD@
--PERLLDFLAGS = @PERLLDFLAGS@
--PERL_CC = @PERL_CC@
--PERL_MAKE_OPTIONS = @PERL_MAKE_OPTIONS@
--PERL_VERSION = @PERL_VERSION@
--PKGCONFIG = @PKGCONFIG@
--POD2HTML = @POD2HTML@
--POD2MAN = @POD2MAN@
--POSUB = @POSUB@
--PTHREAD_CC = @PTHREAD_CC@
--PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
--PTHREAD_LIBS = @PTHREAD_LIBS@
--PYTHON = @PYTHON@
--PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
--PYTHON_INCLUDES = @PYTHON_INCLUDES@
--PYTHON_PLATFORM = @PYTHON_PLATFORM@
--PYTHON_PREFIX = @PYTHON_PREFIX@
--PYTHON_VERSION = @PYTHON_VERSION@
--RANLIB = @RANLIB@
--RRDDOCDIR = @RRDDOCDIR@
--RRDGRAPH_YLEGEND_ANGLE = @RRDGRAPH_YLEGEND_ANGLE@
--RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
--RRD_GETOPT_LONG = @RRD_GETOPT_LONG@
--RUBY = @RUBY@
--RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
--SED = @SED@
--SET_MAKE = @SET_MAKE@
--SHELL = @SHELL@
--STRIP = @STRIP@
--TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
--TCL_LD_SEARCH_FLAGS = @TCL_LD_SEARCH_FLAGS@
--TCL_PACKAGE_DIR = @TCL_PACKAGE_DIR@
--TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
--### no including this by default @WERROR@
--TCL_PREFIX = @TCL_PREFIX@
--TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
--TCL_SHLIB_LD = @TCL_SHLIB_LD@
--TCL_SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
--TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
--TCL_VERSION = @TCL_VERSION@
--TROFF = @TROFF@
--USE_NLS = @USE_NLS@
--VERSION = @VERSION@
--WERROR = @WERROR@
--XGETTEXT = @XGETTEXT@
--XGETTEXT_015 = @XGETTEXT_015@
--XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
--abs_builddir = @abs_builddir@
--abs_srcdir = @abs_srcdir@
--abs_top_builddir = @abs_top_builddir@
--abs_top_srcdir = @abs_top_srcdir@
--ac_ct_CC = @ac_ct_CC@
--ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
--acx_pthread_config = @acx_pthread_config@
--am__include = @am__include@
--am__leading_dot = @am__leading_dot@
--am__quote = @am__quote@
--am__tar = @am__tar@
--am__untar = @am__untar@
--bindir = @bindir@
--build = @build@
--build_alias = @build_alias@
--build_cpu = @build_cpu@
--build_os = @build_os@
--build_vendor = @build_vendor@
--builddir = @builddir@
--datadir = @datadir@
--datarootdir = @datarootdir@
--docdir = @docdir@
--dvidir = @dvidir@
--exec_prefix = @exec_prefix@
--host = @host@
--host_alias = @host_alias@
--host_cpu = @host_cpu@
--host_os = @host_os@
--host_vendor = @host_vendor@
--htmldir = @htmldir@
--includedir = @includedir@
--infodir = @infodir@
--install_sh = @install_sh@
--libdir = @libdir@
--libexecdir = @libexecdir@
--localedir = @localedir@
--localstatedir = @localstatedir@
--lt_ECHO = @lt_ECHO@
--mandir = @mandir@
--mkdir_p = @mkdir_p@
--oldincludedir = @oldincludedir@
--pdfdir = @pdfdir@
--pkgpyexecdir = @pkgpyexecdir@
--pkgpythondir = @pkgpythondir@
--prefix = @prefix@
--program_transform_name = @program_transform_name@
--psdir = @psdir@
--pyexecdir = @pyexecdir@
--pythondir = @pythondir@
--sbindir = @sbindir@
--sharedstatedir = @sharedstatedir@
--srcdir = @srcdir@
--sysconfdir = @sysconfdir@
--target = @target@
--target_alias = @target_alias@
--target_cpu = @target_cpu@
--target_os = @target_os@
--target_vendor = @target_vendor@
--top_build_prefix = @top_build_prefix@
--top_builddir = @top_builddir@
--top_srcdir = @top_srcdir@
--EXTRA_DIST = README tclrrd.c
--AM_CFLAGS = @CFLAGS@
--CLEANFILES = tclrrd.o tclrrd.so
--SRC_DIR = $(top_srcdir)/src
--AM_CPPFLAGS = $(TCL_INCLUDE_SPEC) -I$(SRC_DIR) -DUSE_TCL_STUBS
--LIBDIRS = -L$(top_builddir)/src/.libs -L$(top_builddir)/src -L$(libdir)
--LIB_RUNTIME_DIR = $(libdir)
--@BUILD_TCL_SITE_TRUE@tclpkgdir = @TCL_PACKAGE_DIR@
--@BUILD_TCL_SITE_TRUE@tclpkg_DATA = pkgIndex.tcl
--@BUILD_TCL_SITE_TRUE@tclpkg_SCRIPTS = ifOctets.tcl
--@BUILD_TCL_SITE_FALSE@pkglib_DATA = pkgIndex.tcl
--@BUILD_TCL_SITE_FALSE@pkglib_SCRIPTS = ifOctets.tcl
--
--# Automake doen't like `tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)' as
--# library name. So we build and install this library `by hand'.
--#
--# We do, however, specify a lib_LIBRARIES target such that
--# automake creates the directory (if neecessary).
--#
--TCL_RRD_LIB = tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)
--lib_LIBRARIES = 
--all: all-am
--
--.SUFFIXES:
--$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
--	@for dep in $?; do \
--	  case '$(am__configure_deps)' in \
--	    *$$dep*) \
--	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
--	        && { if test -f $@; then exit 0; else break; fi; }; \
--	      exit 1;; \
--	  esac; \
--	done; \
--	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/tcl/Makefile'; \
--	$(am__cd) $(top_srcdir) && \
--	  $(AUTOMAKE) --gnu bindings/tcl/Makefile
--.PRECIOUS: Makefile
--Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
--	@case '$?' in \
--	  *config.status*) \
--	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
--	  *) \
--	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
--	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
--	esac;
--
--$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
--	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
--
--$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
--	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
--$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
--	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
--$(am__aclocal_m4_deps):
--ifOctets.tcl: $(top_builddir)/config.status $(srcdir)/ifOctets.tcl.in
--	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
--install-libLIBRARIES: $(lib_LIBRARIES)
--	@$(NORMAL_INSTALL)
--	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
--	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
--	list2=; for p in $$list; do \
--	  if test -f $$p; then \
--	    list2="$$list2 $$p"; \
--	  else :; fi; \
--	done; \
--	test -z "$$list2" || { \
--	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
--	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
--	@$(POST_INSTALL)
--	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
--	for p in $$list; do \
--	  if test -f $$p; then \
--	    $(am__strip_dir) \
--	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
--	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
--	  else :; fi; \
--	done
--
--uninstall-libLIBRARIES:
--	@$(NORMAL_UNINSTALL)
--	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
--	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
--	test -n "$$files" || exit 0; \
--	echo " ( cd '$(DESTDIR)$(libdir)' && rm -f "$$files" )"; \
--	cd "$(DESTDIR)$(libdir)" && rm -f $$files
--
--clean-libLIBRARIES:
--	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
--install-pkglibSCRIPTS: $(pkglib_SCRIPTS)
--	@$(NORMAL_INSTALL)
--	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
--	@list='$(pkglib_SCRIPTS)'; test -n "$(pkglibdir)" || list=; \
--	for p in $$list; do \
--	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
--	done | \
--	sed -e 'p;s,.*/,,;n' \
--	    -e 'h;s|.*|.|' \
--	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
--	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
--	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
--	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
--	      if (++n[d] == $(am__install_max)) { \
--		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
--	    else { print "f", d "/" $$4, $$1 } } \
--	  END { for (d in files) print "f", d, files[d] }' | \
--	while read type dir files; do \
--	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
--	     test -z "$$files" || { \
--	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \
--	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \
--	     } \
--	; done
--
--uninstall-pkglibSCRIPTS:
--	@$(NORMAL_UNINSTALL)
--	@list='$(pkglib_SCRIPTS)'; test -n "$(pkglibdir)" || exit 0; \
--	files=`for p in $$list; do echo "$$p"; done | \
--	       sed -e 's,.*/,,;$(transform)'`; \
--	test -n "$$list" || exit 0; \
--	echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \
--	cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files
--install-tclpkgSCRIPTS: $(tclpkg_SCRIPTS)
--	@$(NORMAL_INSTALL)
--	test -z "$(tclpkgdir)" || $(MKDIR_P) "$(DESTDIR)$(tclpkgdir)"
--	@list='$(tclpkg_SCRIPTS)'; test -n "$(tclpkgdir)" || list=; \
--	for p in $$list; do \
--	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
--	done | \
--	sed -e 'p;s,.*/,,;n' \
--	    -e 'h;s|.*|.|' \
--	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
--	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
--	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
--	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
--	      if (++n[d] == $(am__install_max)) { \
--		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
--	    else { print "f", d "/" $$4, $$1 } } \
--	  END { for (d in files) print "f", d, files[d] }' | \
--	while read type dir files; do \
--	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
--	     test -z "$$files" || { \
--	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(tclpkgdir)$$dir'"; \
--	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(tclpkgdir)$$dir" || exit $$?; \
--	     } \
--	; done
--
--uninstall-tclpkgSCRIPTS:
--	@$(NORMAL_UNINSTALL)
--	@list='$(tclpkg_SCRIPTS)'; test -n "$(tclpkgdir)" || exit 0; \
--	files=`for p in $$list; do echo "$$p"; done | \
--	       sed -e 's,.*/,,;$(transform)'`; \
--	test -n "$$list" || exit 0; \
--	echo " ( cd '$(DESTDIR)$(tclpkgdir)' && rm -f" $$files ")"; \
--	cd "$(DESTDIR)$(tclpkgdir)" && rm -f $$files
--
--mostlyclean-libtool:
--	-rm -f *.lo
--
--clean-libtool:
--	-rm -rf .libs _libs
--install-pkglibDATA: $(pkglib_DATA)
--	@$(NORMAL_INSTALL)
--	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
--	@list='$(pkglib_DATA)'; test -n "$(pkglibdir)" || list=; \
--	for p in $$list; do \
--	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--	  echo "$$d$$p"; \
--	done | $(am__base_list) | \
--	while read files; do \
--	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkglibdir)'"; \
--	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkglibdir)" || exit $$?; \
--	done
--
--uninstall-pkglibDATA:
--	@$(NORMAL_UNINSTALL)
--	@list='$(pkglib_DATA)'; test -n "$(pkglibdir)" || list=; \
--	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
--	test -n "$$files" || exit 0; \
--	echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \
--	cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files
--install-tclpkgDATA: $(tclpkg_DATA)
--	@$(NORMAL_INSTALL)
--	test -z "$(tclpkgdir)" || $(MKDIR_P) "$(DESTDIR)$(tclpkgdir)"
--	@list='$(tclpkg_DATA)'; test -n "$(tclpkgdir)" || list=; \
--	for p in $$list; do \
--	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--	  echo "$$d$$p"; \
--	done | $(am__base_list) | \
--	while read files; do \
--	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tclpkgdir)'"; \
--	  $(INSTALL_DATA) $$files "$(DESTDIR)$(tclpkgdir)" || exit $$?; \
--	done
--
--uninstall-tclpkgDATA:
--	@$(NORMAL_UNINSTALL)
--	@list='$(tclpkg_DATA)'; test -n "$(tclpkgdir)" || list=; \
--	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
--	test -n "$$files" || exit 0; \
--	echo " ( cd '$(DESTDIR)$(tclpkgdir)' && rm -f" $$files ")"; \
--	cd "$(DESTDIR)$(tclpkgdir)" && rm -f $$files
--tags: TAGS
--TAGS:
--
--ctags: CTAGS
--CTAGS:
--
--
--distdir: $(DISTFILES)
--	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
--	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
--	list='$(DISTFILES)'; \
--	  dist_files=`for file in $$list; do echo $$file; done | \
--	  sed -e "s|^$$srcdirstrip/||;t" \
--	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
--	case $$dist_files in \
--	  */*) $(MKDIR_P) `echo "$$dist_files" | \
--			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
--			   sort -u` ;; \
--	esac; \
--	for file in $$dist_files; do \
--	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
--	  if test -d $$d/$$file; then \
--	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
--	    if test -d "$(distdir)/$$file"; then \
--	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
--	    fi; \
--	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
--	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
--	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
--	    fi; \
--	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
--	  else \
--	    test -f "$(distdir)/$$file" \
--	    || cp -p $$d/$$file "$(distdir)/$$file" \
--	    || exit 1; \
--	  fi; \
--	done
--check-am: all-am
--check: check-am
--all-am: Makefile $(LIBRARIES) $(SCRIPTS) $(DATA) all-local
--installdirs:
--	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(tclpkgdir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(tclpkgdir)"; do \
--	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
--	done
--install: install-am
--install-exec: install-exec-am
--install-data: install-data-am
--uninstall: uninstall-am
--
--install-am: all-am
--	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
--
--installcheck: installcheck-am
--install-strip:
--	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
--	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
--	  `test -z '$(STRIP)' || \
--	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
--mostlyclean-generic:
--
--clean-generic:
--	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
--
--distclean-generic:
--	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
--	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
--
--maintainer-clean-generic:
--	@echo "This command is intended for maintainers to use"
--	@echo "it deletes files that may require special tools to rebuild."
--clean: clean-am
--
--clean-am: clean-generic clean-libLIBRARIES clean-libtool \
--	mostlyclean-am
--
--distclean: distclean-am
--	-rm -f Makefile
--distclean-am: clean-am distclean-generic
--
--dvi: dvi-am
--
--dvi-am:
--
--html: html-am
--
--html-am:
--
--info: info-am
--
--info-am:
--
--install-data-am: install-tclpkgDATA install-tclpkgSCRIPTS
--
--install-dvi: install-dvi-am
--
--install-dvi-am:
--
--install-exec-am: install-exec-local install-libLIBRARIES \
--	install-pkglibDATA install-pkglibSCRIPTS
--
--install-html: install-html-am
--
--install-html-am:
--
--install-info: install-info-am
--
--install-info-am:
--
--install-man:
--
--install-pdf: install-pdf-am
--
--install-pdf-am:
--
--install-ps: install-ps-am
--
--install-ps-am:
--
--installcheck-am:
--
--maintainer-clean: maintainer-clean-am
--	-rm -f Makefile
--maintainer-clean-am: distclean-am maintainer-clean-generic
--
--mostlyclean: mostlyclean-am
--
--mostlyclean-am: mostlyclean-generic mostlyclean-libtool
--
--pdf: pdf-am
--
--pdf-am:
--
--ps: ps-am
--
--ps-am:
--
--uninstall-am: uninstall-libLIBRARIES uninstall-pkglibDATA \
--	uninstall-pkglibSCRIPTS uninstall-tclpkgDATA \
--	uninstall-tclpkgSCRIPTS
--
--.MAKE: install-am install-strip
--
--.PHONY: all all-am all-local check check-am clean clean-generic \
--	clean-libLIBRARIES clean-libtool distclean distclean-generic \
--	distclean-libtool distdir dvi dvi-am html html-am info info-am \
--	install install-am install-data install-data-am install-dvi \
--	install-dvi-am install-exec install-exec-am install-exec-local \
--	install-html install-html-am install-info install-info-am \
--	install-libLIBRARIES install-man install-pdf install-pdf-am \
--	install-pkglibDATA install-pkglibSCRIPTS install-ps \
--	install-ps-am install-strip install-tclpkgDATA \
--	install-tclpkgSCRIPTS installcheck installcheck-am installdirs \
--	maintainer-clean maintainer-clean-generic mostlyclean \
--	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
--	uninstall uninstall-am uninstall-libLIBRARIES \
--	uninstall-pkglibDATA uninstall-pkglibSCRIPTS \
--	uninstall-tclpkgDATA uninstall-tclpkgSCRIPTS
--
--
--all-local: $(TCL_RRD_LIB)
--
--$(TCL_RRD_LIB): tclrrd.o
--	$(TCL_SHLIB_LD) $(TCL_LD_SEARCH_FLAGS) $(LIBDIRS) $< -o $@ -lrrd_th -lm $(TCL_STUB_LIB_SPEC) $(LDFLAGS) $(LIBS)
--
--tclrrd.o: tclrrd.c
--	$(CC) $(AM_CFLAGS) $(CFLAGS) $(TCL_SHLIB_CFLAGS) $(AM_CPPFLAGS) -c tclrrd.c -DVERSION=\"$(VERSION)\"
--
--pkgIndex.tcl:
--	echo "package ifneeded Rrd $(VERSION) \"load $(libdir)/tclrrd$(VERSION)[info sharedlibextension]\"" > $@
--
--install-exec-local: $(TCL_RRD_LIB)
--	@$(NORMAL_INSTALL)
--	$(INSTALL_PROGRAM) $(TCL_RRD_LIB) $(DESTDIR)$(libdir)/$(TCL_RRD_LIB)
--
--# Tell versions [3.59,3.63) of GNU make to not export all variables.
--# Otherwise a system limit (for SysV at least) may be exceeded.
--.NOEXPORT:
-diff --git a/bindings/tcl/README b/bindings/tcl/README
-deleted file mode 100644
-index 065a03a..0000000
---- a/bindings/tcl/README
-+++ /dev/null
-@@ -1,31 +0,0 @@
--TCLRRD -- A TCL interpreter extension to access the RRD library,
--	  contributed to Tobias Oetiker's RRD tools.
--
--Copyright (c) 1999,2000 Frank Strauss, Technical University of Braunschweig.
--
--See the file "COPYING" for information on usage and redistribution
--of this file, and for a DISCLAIMER OF ALL WARRANTIES.
--
--TCLRRD adds a dynamically loadable package to the Tcl 8.x interpreter
--to access all RRD functions as of RRDtool 1.0.13. All command names
--and arguments are equal to those of RRDtool. They are assigned to the
--namespace `Rrd', e.g.  `Rrd::create'. Return values are a bit
--different from plain RRDtool behavior to enable more native Tcl
--usage. Errors are mapped to the TCL_ERROR return code together with
--the RRD error strings.
--
--TCLRRD makes it easy to combine RRD use with advanced SNMP functionality
--of scotty (http://wwwsnmp.cs.utwente.nl/~schoenw/scotty/). E.g., it's easy
--to use some scotty code to get the counters of some interfaces by their
--interface name and then use Rrd::update to store the values. Furthermore,
--data source types (see RRD::create documentation) and integer value ranges
--could be easily retrieved from MIB information.
--
--TCLRRD has been written on a Linux system for use with Tcl 8.x. It should
--work on many other platforms, although it has not been tested. There are
--no fool proof installation procedures. Take a look at Makefile.am and
--adapt it, if required.
--
--TCLRRD has been written for RRD 1.0.13.
--
--	Frank Strauss <strauss@ibr.cs.tu-bs.de>, 09-Mar-2000
-diff --git a/bindings/tcl/ifOctets.tcl.in b/bindings/tcl/ifOctets.tcl.in
-deleted file mode 100644
-index 7a36397..0000000
---- a/bindings/tcl/ifOctets.tcl.in
-+++ /dev/null
-@@ -1,45 +0,0 @@
--#!/bin/sh
--# the next line restarts using tclsh -*- tcl -*- \
--exec tclsh@TCL_VERSION@ "$0" "$@"
--
--#package require Tnm 3.0
--package require Rrd @VERSION@
--
--set rrdfile "[lindex $argv 0]-[lindex $argv 1].rrd"
--
--# create rrdfile if not yet existent
--if {[file exists $rrdfile] == 0} {
--    Rrd::create $rrdfile --step 5 \
--	    DS:inOctets:COUNTER:10:U:U DS:outOctets:COUNTER:10:U:U \
--	    RRA:AVERAGE:0.5:1:12
--}
--
--# get an snmp session context
--set session [Tnm::snmp generator -address [lindex $argv 0]]
--
--# walk through the ifDescr column to find the right interface
--$session walk descr IF-MIB!ifDescr {
--
--    # is this the right interface?
--    if {"[Tnm::snmp value $descr 0]" == "[lindex $argv 1]"} {
--
--	# get the instance part of this table row
--	set inst [lindex [Tnm::mib split [Tnm::snmp oid $descr 0]] 1]
--
--	# get the two interface's octet counter values
--	set in [lindex [lindex [$session get IF-MIB!ifInOctets.$inst] 0] 2]
--	set out [lindex [lindex [$session get IF-MIB!ifOutOctets.$inst] 0] 2]
--
--	# write the values to the rrd
--	puts "$in $out"
--	Rrd::update $rrdfile --template inOctets:outOctets N:$in:$out
--
--	Rrd::graph gaga.png --title "gaga" \
--		DEF:in=$rrdfile:inOctets:AVERAGE \
--		DEF:out=$rrdfile:outOctets:AVERAGE \
--		AREA:in#0000FF:inOctets \
--		LINE2:out#00C000:outOctets
--
--	#puts [Rrd::fetch $rrdfile AVERAGE]
--    }
--}
-diff --git a/bindings/tcl/tclrrd.c b/bindings/tcl/tclrrd.c
-deleted file mode 100644
-index f1f0234..0000000
---- a/bindings/tcl/tclrrd.c
-+++ /dev/null
-@@ -1,762 +0,0 @@
--/*
-- * tclrrd.c -- A TCL interpreter extension to access the RRD library.
-- *
-- * Copyright (c) 1999,2000 Frank Strauss, Technical University of Braunschweig.
-- *
-- * Thread-safe code copyright (c) 2005 Oleg Derevenetz, CenterTelecom Voronezh ISP.
-- *
-- * See the file "COPYING" for information on usage and redistribution
-- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-- *
-- * $Id: tclrrd.c 1854 2009-06-07 14:46:21Z oetiker $
-- */
--
--
--
--#include <errno.h>
--#include <string.h>
--#include <time.h>
--#include <unistd.h>
--#include <tcl.h>
--#include <stdlib.h>
--#include "../../src/rrd_tool.h"
--#include "../../src/rrd_format.h"
--
--/* support pre-8.4 tcl */
--
--#ifndef CONST84
--#   define CONST84
--#endif
--
--extern int Tclrrd_Init(
--    Tcl_Interp *interp);
--extern int Tclrrd_SafeInit(
--    Tcl_Interp *interp);
--
--
--/*
-- * some rrd_XXX() and new thread-safe versions of Rrd_XXX()
-- * functions might modify the argv strings passed to it.
-- * Hence, we need to do some preparation before
-- * calling the rrd library functions.
-- */
--static char **getopt_init(
--    int argc,
--    CONST84 char *argv[])
--{
--    char    **argv2;
--    int       i;
--
--    argv2 = calloc(argc, sizeof(char *));
--    for (i = 0; i < argc; i++) {
--        argv2[i] = strdup(argv[i]);
--    }
--    return argv2;
--}
--
--static void getopt_cleanup(
--    int argc,
--    char **argv2)
--{
--    int       i;
--
--    for (i = 0; i < argc; i++) {
--        if (argv2[i] != NULL) {
--            free(argv2[i]);
--        }
--    }
--    free(argv2);
--}
--
--static void getopt_free_element(
--    char *argv2[],
--    int argn)
--{
--    if (argv2[argn] != NULL) {
--        free(argv2[argn]);
--        argv2[argn] = NULL;
--    }
--}
--
--static void getopt_squieeze(
--    int *argc,
--    char *argv2[])
--{
--    int       i, null_i = 0, argc_tmp = *argc;
--
--    for (i = 0; i < argc_tmp; i++) {
--        if (argv2[i] == NULL) {
--            (*argc)--;
--        } else {
--            argv2[null_i++] = argv2[i];
--        }
--    }
--}
--
--
--
--/* Thread-safe version */
--static int Rrd_Create(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    int       argv_i;
--    char    **argv2;
--    char     *parsetime_error = NULL;
--    time_t    last_up = time(NULL) - 10;
--    long int  long_tmp;
--    unsigned long int pdp_step = 300;
--    rrd_time_value_t last_up_tv;
--
--    argv2 = getopt_init(argc, argv);
--
--    for (argv_i = 1; argv_i < argc; argv_i++) {
--        if (!strcmp(argv2[argv_i], "--start") || !strcmp(argv2[argv_i], "-b")) {
--            if (argv_i++ >= argc) {
--                Tcl_AppendResult(interp, "RRD Error: option '",
--                                 argv2[argv_i - 1], "' needs an argument",
--                                 (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            if ((parsetime_error = rrd_parsetime(argv2[argv_i], &last_up_tv))) {
--                Tcl_AppendResult(interp, "RRD Error: invalid time format: '",
--                                 argv2[argv_i], "'", (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            if (last_up_tv.type == RELATIVE_TO_END_TIME ||
--                last_up_tv.type == RELATIVE_TO_START_TIME) {
--                Tcl_AppendResult(interp,
--                                 "RRD Error: specifying time relative to the 'start' ",
--                                 "or 'end' makes no sense here",
--                                 (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            last_up = mktime(&last_up_tv.tm) +last_up_tv.offset;
--            if (last_up < 3600 * 24 * 365 * 10) {
--                Tcl_AppendResult(interp,
--                                 "RRD Error: the first entry to the RRD should be after 1980",
--                                 (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            getopt_free_element(argv2, argv_i - 1);
--            getopt_free_element(argv2, argv_i);
--        } else if (!strcmp(argv2[argv_i], "--step")
--                   || !strcmp(argv2[argv_i], "-s")) {
--            if (argv_i++ >= argc) {
--                Tcl_AppendResult(interp, "RRD Error: option '",
--                                 argv2[argv_i - 1], "' needs an argument",
--                                 (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            long_tmp = atol(argv2[argv_i]);
--            if (long_tmp < 1) {
--                Tcl_AppendResult(interp,
--                                 "RRD Error: step size should be no less than one second",
--                                 (char *) NULL);
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            pdp_step = long_tmp;
--            getopt_free_element(argv2, argv_i - 1);
--            getopt_free_element(argv2, argv_i);
--        } else if (!strcmp(argv2[argv_i], "--")) {
--            getopt_free_element(argv2, argv_i);
--            break;
--        } else if (argv2[argv_i][0] == '-') {
--            Tcl_AppendResult(interp, "RRD Error: unknown option '",
--                             argv2[argv_i], "'", (char *) NULL);
--            getopt_cleanup(argc, argv2);
--            return TCL_ERROR;
--        }
--    }
--
--    getopt_squieeze(&argc, argv2);
--
--    if (argc < 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
--                         (char *) NULL);
--        getopt_cleanup(argc, argv2);
--        return TCL_ERROR;
--    }
--
--    rrd_create_r(argv2[1], pdp_step, last_up, argc - 2,
--                 (const char **)argv2 + 2);
--
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--/* Thread-safe version */
--static int Rrd_Dump(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    if (argc < 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
--                         (char *) NULL);
--        return TCL_ERROR;
--    }
--
--    rrd_dump_r(argv[1], NULL);
--
--    /* NOTE: rrd_dump() writes to stdout. No interaction with TCL. */
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--/* Thread-safe version */
--static int Rrd_Flushcached(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    if (argc < 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
--                         (char *) NULL);
--        return TCL_ERROR;
--    }
--
--    rrd_flushcached(argc, (char**)argv);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--/* Thread-safe version */
--static int Rrd_Last(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    time_t    t;
--
--    if (argc < 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
--                         (char *) NULL);
--        return TCL_ERROR;
--    }
--
--    t = rrd_last_r(argv[1]);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    Tcl_SetIntObj(Tcl_GetObjResult(interp), t);
--
--    return TCL_OK;
--}
--
--
--
--/* Thread-safe version */
--static int Rrd_Update(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    int       argv_i;
--    char    **argv2, *template = NULL;
--
--    argv2 = getopt_init(argc, argv);
--
--    for (argv_i = 1; argv_i < argc; argv_i++) {
--        if (!strcmp(argv2[argv_i], "--template")
--            || !strcmp(argv2[argv_i], "-t")) {
--            if (argv_i++ >= argc) {
--                Tcl_AppendResult(interp, "RRD Error: option '",
--                                 argv2[argv_i - 1], "' needs an argument",
--                                 (char *) NULL);
--                if (template != NULL) {
--                    free(template);
--                }
--                getopt_cleanup(argc, argv2);
--                return TCL_ERROR;
--            }
--            if (template != NULL) {
--                free(template);
--            }
--            template = strdup(argv2[argv_i]);
--            getopt_free_element(argv2, argv_i - 1);
--            getopt_free_element(argv2, argv_i);
--        } else if (!strcmp(argv2[argv_i], "--")) {
--            getopt_free_element(argv2, argv_i);
--            break;
--        } else if (argv2[argv_i][0] == '-') {
--            Tcl_AppendResult(interp, "RRD Error: unknown option '",
--                             argv2[argv_i], "'", (char *) NULL);
--            if (template != NULL) {
--                free(template);
--            }
--            getopt_cleanup(argc, argv2);
--            return TCL_ERROR;
--        }
--    }
--
--    getopt_squieeze(&argc, argv2);
--
--    if (argc < 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
--                         (char *) NULL);
--        if (template != NULL) {
--            free(template);
--        }
--        getopt_cleanup(argc, argv2);
--        return TCL_ERROR;
--    }
--
--    rrd_update_r(argv2[1], template, argc - 2, (const char **)argv2 + 2);
--
--    if (template != NULL) {
--        free(template);
--    }
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--static int Rrd_Lastupdate(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    time_t    last_update;
--    char    **argv2;
--    char    **ds_namv;
--    char    **last_ds;
--    char      s[30];
--    Tcl_Obj  *listPtr;
--    unsigned long ds_cnt, i;
--
--    /* TODO: support for rrdcached */
--    if (argc != 2) {
--        Tcl_AppendResult(interp, "RRD Error: needs a single rrd filename",
--                         (char *) NULL);
--        return TCL_ERROR;
--    }
--
--    argv2 = getopt_init(argc, argv);
--    if (rrd_lastupdate_r(argv2[1], &last_update,
--                       &ds_cnt, &ds_namv, &last_ds) == 0) {
--        listPtr = Tcl_GetObjResult(interp);
--        for (i = 0; i < ds_cnt; i++) {
--            sprintf(s, " %28s", ds_namv[i]);
--            Tcl_ListObjAppendElement(interp, listPtr,
--                                     Tcl_NewStringObj(s, -1));
--            sprintf(s, "\n\n%10lu:", last_update);
--            Tcl_ListObjAppendElement(interp, listPtr,
--                                     Tcl_NewStringObj(s, -1));
--            for (i = 0; i < ds_cnt; i++) {
--                sprintf(s, " %s", last_ds[i]);
--                Tcl_ListObjAppendElement(interp, listPtr,
--                                         Tcl_NewStringObj(s, -1));
--                free(last_ds[i]);
--                free(ds_namv[i]);
--            }
--            sprintf(s, "\n");
--            Tcl_ListObjAppendElement(interp, listPtr,
--                                     Tcl_NewStringObj(s, -1));
--            free(last_ds);
--            free(ds_namv);
--        }
--    }
--    return TCL_OK;
--}
--
--static int Rrd_Fetch(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    time_t    start, end, j;
--    unsigned long step, ds_cnt, i, ii;
--    rrd_value_t *data, *datai;
--    char    **ds_namv;
--    Tcl_Obj  *listPtr;
--    char      s[30];
--    char    **argv2;
--
--    argv2 = getopt_init(argc, argv);
--    if (rrd_fetch(argc, argv2, &start, &end, &step,
--                  &ds_cnt, &ds_namv, &data) != -1) {
--        datai = data;
--        listPtr = Tcl_GetObjResult(interp);
--        for (j = start; j <= end; j += step) {
--            for (ii = 0; ii < ds_cnt; ii++) {
--                sprintf(s, "%.2f", *(datai++));
--                Tcl_ListObjAppendElement(interp, listPtr,
--                                         Tcl_NewStringObj(s, -1));
--            }
--        }
--        for (i = 0; i < ds_cnt; i++)
--            free(ds_namv[i]);
--        free(ds_namv);
--        free(data);
--    }
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--static int Rrd_Graph(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    Tcl_Channel channel;
--    int       mode, fd2;
--    ClientData fd1;
--    FILE     *stream = NULL;
--    char    **calcpr = NULL;
--    int       rc, xsize, ysize;
--    double    ymin, ymax;
--    char      dimensions[50];
--    char    **argv2;
--    CONST84 char *save;
--
--    /*
--     * If the "filename" is a Tcl fileID, then arrange for rrd_graph() to write to
--     * that file descriptor.  Will this work with windoze?  I have no idea.
--     */
--    if ((channel = Tcl_GetChannel(interp, argv[1], &mode)) != NULL) {
--        /*
--         * It >is< a Tcl fileID
--         */
--        if (!(mode & TCL_WRITABLE)) {
--            Tcl_AppendResult(interp, "channel \"", argv[1],
--                             "\" wasn't opened for writing", (char *) NULL);
--            return TCL_ERROR;
--        }
--        /*
--         * Must flush channel to make sure any buffered data is written before
--         * rrd_graph() writes to the stream
--         */
--        if (Tcl_Flush(channel) != TCL_OK) {
--            Tcl_AppendResult(interp, "flush failed for \"", argv[1], "\": ",
--                             strerror(Tcl_GetErrno()), (char *) NULL);
--            return TCL_ERROR;
--        }
--        if (Tcl_GetChannelHandle(channel, TCL_WRITABLE, &fd1) != TCL_OK) {
--            Tcl_AppendResult(interp,
--                             "cannot get file descriptor associated with \"",
--                             argv[1], "\"", (char *) NULL);
--            return TCL_ERROR;
--        }
--        /*
--         * Must dup() file descriptor so we can fclose(stream), otherwise the fclose()
--         * would close Tcl's file descriptor
--         */
--        if ((fd2 = dup((int)fd1)) == -1) {
--            Tcl_AppendResult(interp,
--                             "dup() failed for file descriptor associated with \"",
--                             argv[1], "\": ", strerror(errno), (char *) NULL);
--            return TCL_ERROR;
--        }
--        /*
--         * rrd_graph() wants a FILE*
--         */
--        if ((stream = fdopen(fd2, "wb")) == NULL) {
--            Tcl_AppendResult(interp,
--                             "fdopen() failed for file descriptor associated with \"",
--                             argv[1], "\": ", strerror(errno), (char *) NULL);
--            close(fd2); /* plug potential file descriptor leak */
--            return TCL_ERROR;
--        }
--
--        save = argv[1];
--        argv[1] = "-";
--        argv2 = getopt_init(argc, argv);
--        argv[1] = save;
--    } else {
--        Tcl_ResetResult(interp);    /* clear error from Tcl_GetChannel() */
--        argv2 = getopt_init(argc, argv);
--    }
--
--    rc = rrd_graph(argc, argv2, &calcpr, &xsize, &ysize, stream, &ymin,
--                   &ymax);
--    getopt_cleanup(argc, argv2);
--
--    if (stream != NULL)
--        fclose(stream); /* plug potential malloc & file descriptor leak */
--
--    if (rc != -1) {
--        sprintf(dimensions, "%d %d", xsize, ysize);
--        Tcl_AppendResult(interp, dimensions, (char *) NULL);
--        if (calcpr) {
--#if 0
--            int       i;
--
--            for (i = 0; calcpr[i]; i++) {
--                printf("%s\n", calcpr[i]);
--                free(calcpr[i]);
--            }
--#endif
--            free(calcpr);
--        }
--    }
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--static int Rrd_Tune(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    char    **argv2;
--
--    argv2 = getopt_init(argc, argv);
--    rrd_tune(argc, argv2);
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--static int Rrd_Resize(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    char    **argv2;
--
--    argv2 = getopt_init(argc, argv);
--    rrd_resize(argc, argv2);
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--static int Rrd_Restore(
--    ClientData __attribute__((unused)) clientData,
--    Tcl_Interp *interp,
--    int argc,
--    CONST84 char *argv[])
--{
--    char    **argv2;
--
--    argv2 = getopt_init(argc, argv);
--    rrd_restore(argc, argv2);
--    getopt_cleanup(argc, argv2);
--
--    if (rrd_test_error()) {
--        Tcl_AppendResult(interp, "RRD Error: ",
--                         rrd_get_error(), (char *) NULL);
--        rrd_clear_error();
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--
--
--/*
-- * The following structure defines the commands in the Rrd extension.
-- */
--
--typedef struct {
--    char     *name;     /* Name of the command. */
--    Tcl_CmdProc *proc;  /* Procedure for command. */
--    int       hide;     /* Hide if safe interpreter */
--} CmdInfo;
--
--static CmdInfo rrdCmds[] = {
--    {"Rrd::create", Rrd_Create, 1}, /* Thread-safe version */
--    {"Rrd::dump", Rrd_Dump, 0}, /* Thread-safe version */
--    {"Rrd::flushcached", Rrd_Flushcached, 0},
--    {"Rrd::last", Rrd_Last, 0}, /* Thread-safe version */
--    {"Rrd::lastupdate", Rrd_Lastupdate, 0}, /* Thread-safe version */
--    {"Rrd::update", Rrd_Update, 1}, /* Thread-safe version */
--    {"Rrd::fetch", Rrd_Fetch, 0},
--    {"Rrd::graph", Rrd_Graph, 1},   /* Due to RRD's API, a safe
--                                       interpreter cannot create
--                                       a graph since it writes to
--                                       a filename supplied by the
--                                       caller */
--    {"Rrd::tune", Rrd_Tune, 1},
--    {"Rrd::resize", Rrd_Resize, 1},
--    {"Rrd::restore", Rrd_Restore, 1},
--    {(char *) NULL, (Tcl_CmdProc *) NULL, 0}
--};
--
--
--
--static int init(
--    Tcl_Interp *interp,
--    int safe)
--{
--    CmdInfo  *cmdInfoPtr;
--    Tcl_CmdInfo info;
--
--    if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL)
--        return TCL_ERROR;
--
--    if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 1) == NULL) {
--        return TCL_ERROR;
--    }
--
--    /*
--     * Why a global array?  In keeping with the Rrd:: namespace, why
--     * not simply create a normal variable Rrd::version and set it?
--     */
--    Tcl_SetVar2(interp, "rrd", "version", VERSION, TCL_GLOBAL_ONLY);
--
--    for (cmdInfoPtr = rrdCmds; cmdInfoPtr->name != NULL; cmdInfoPtr++) {
--        /*
--         * Check if the command already exists and return an error
--         * to ensure we detect name clashes while loading the Rrd
--         * extension.
--         */
--        if (Tcl_GetCommandInfo(interp, cmdInfoPtr->name, &info)) {
--            Tcl_AppendResult(interp, "command \"", cmdInfoPtr->name,
--                             "\" already exists", (char *) NULL);
--            return TCL_ERROR;
--        }
--        if (safe && cmdInfoPtr->hide) {
--#if 0
--            /*
--             * Turns out the one cannot hide a command in a namespace
--             * due to a limitation of Tcl, one can only hide global
--             * commands.  Thus, if we created the commands without
--             * the Rrd:: namespace in a safe interpreter, then the
--             * "unsafe" commands could be hidden -- which would allow
--             * an owning interpreter either un-hiding them or doing
--             * an "interp invokehidden".  If the Rrd:: namespace is
--             * used, then it's still possible for the owning interpreter
--             * to fake out the missing commands:
--             *
--             *   # Make all Rrd::* commands available in master interperter
--             *   package require Rrd
--             *   set safe [interp create -safe]
--             *   # Make safe Rrd::* commands available in safe interperter
--             *   interp invokehidden $safe -global load ./tclrrd1.2.11.so
--             *   # Provide the safe interpreter with the missing commands
--             *   $safe alias Rrd::update do_update $safe
--             *   proc do_update {which_interp $args} {
--             *     # Do some checking maybe...
--             *       :
--             *     return [eval Rrd::update $args]
--             *   }
--             *
--             * Our solution for now is to just not create the "unsafe"
--             * commands in a safe interpreter.
--             */
--            if (Tcl_HideCommand(interp, cmdInfoPtr->name, cmdInfoPtr->name) !=
--                TCL_OK)
--                return TCL_ERROR;
--#endif
--        } else
--            Tcl_CreateCommand(interp, cmdInfoPtr->name, cmdInfoPtr->proc,
--                              (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
--    }
--
--    if (Tcl_PkgProvide(interp, "Rrd", VERSION) != TCL_OK) {
--        return TCL_ERROR;
--    }
--
--    return TCL_OK;
--}
--
--int Tclrrd_Init(
--    Tcl_Interp *interp)
--{
--    return init(interp, 0);
--}
--
--/*
-- * See the comments above and note how few commands are considered "safe"...
-- * Using rrdtool in a safe interpreter has very limited functionality.  It's
-- * tempting to just return TCL_ERROR and forget about it.
-- */
--int Tclrrd_SafeInit(
--    Tcl_Interp *interp)
--{
--    return init(interp, 1);
--}
-diff --git a/configure.ac b/configure.ac
-index 73ef4ec..acd74e8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -830,57 +830,6 @@ AM_CONDITIONAL(LUA_SITE_LINSTALL, [test "$LUA_INSTALL_LMOD" != "$LUA_RRD_LIBDIR"
- AM_CONDITIONAL(LUA50, [test "$lua_vndot" = "50"])
- AM_CONDITIONAL(BUILD_LUA, [test "$enable_lua" = "yes"])
- 
--enable_tcl_site=no
--
--AC_ARG_ENABLE(tcl,AS_HELP_STRING([--disable-tcl],[do not build the tcl modules]),
--[],[enable_tcl=yes])
--
--if test  "$enable_tcl" = "yes"; then
--  dnl Check for Tcl.
--  withval=""
--  AC_ARG_WITH(tcllib,[  --with-tcllib=DIR       location of the tclConfig.sh])
--  enable_tcl=no
--  for dir in $withval /usr/lib /usr/lib64 /usr/local/lib /usr/lib/tcl8.4 /usr/lib/tcl8.3 ; do
--    AC_MSG_CHECKING(for tclConfig.sh in $dir)
--    if test -f "$dir/tclConfig.sh" ; then
--    	tcl_config=$dir/tclConfig.sh
--        enable_tcl=yes
--        AC_MSG_RESULT(yes)
--        break
--    else
--        AC_MSG_RESULT(no)
--    fi
--  done
--
--  if test "$enable_tcl" = "no"; then
--        AC_MSG_WARN([tclConfig.sh not found - Tcl interface will not be built])
--  else
--	. $tcl_config
--	TCL_PACKAGE_DIR="$TCL_PACKAGE_PATH/tclrrd$VERSION"
--	if test -n "$TCL_INC_DIR"; then
--	  TCL_INCLUDE_SPEC="$TCL_INCLUDE_SPEC -I$TCL_INC_DIR"
--	fi
--  fi
--  AC_ARG_ENABLE(tcl-site,AS_HELP_STRING([--enable-tcl-site],[install the tcl extension in the tcl tree]),
--  [],[enable_tcl_site=yes])
--
--fi
--
--AM_CONDITIONAL(BUILD_TCL, test "$enable_tcl" = "yes" )
--AM_CONDITIONAL(BUILD_TCL_SITE, test "$enable_tcl_site" = "yes" )
--
--
--AC_SUBST(TCL_PREFIX)
--AC_SUBST(TCL_SHLIB_CFLAGS)
--AC_SUBST(TCL_SHLIB_LD)
--AC_SUBST(TCL_SHLIB_SUFFIX)
--AC_SUBST(TCL_PACKAGE_PATH)
--AC_SUBST(TCL_LD_SEARCH_FLAGS)
--AC_SUBST(TCL_STUB_LIB_SPEC)
--AC_SUBST(TCL_VERSION)
--AC_SUBST(TCL_PACKAGE_DIR)
--AC_SUBST(TCL_INCLUDE_SPEC)
--
- AC_ARG_ENABLE(python,AS_HELP_STRING([--disable-python],[do not build the python modules]),
- [],[enable_python=yes])
- 
-@@ -932,8 +881,6 @@ AC_CONFIG_FILES([src/Makefile])
- AC_CONFIG_FILES([src/librrd.sym.in])
- AC_CONFIG_FILES([src/librrd.pc])
- AC_CONFIG_FILES([bindings/Makefile])
--AC_CONFIG_FILES([bindings/tcl/Makefile])
--AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl])
- AC_CONFIG_FILES([Makefile])          
- AC_CONFIG_FILES([bindings/lua/Makefile])
- 
-@@ -982,7 +929,6 @@ if test "$lua_need_compat51" = "1"; then
- echo "   Lua Lua-modules dir: $LUA_INSTALL_LMOD"
- fi
- fi
--echo "    Build Tcl Bindings: $enable_tcl"
- echo " Build Python Bindings: $enable_python"
- echo "          Build rrdcgi: $enable_rrdcgi"
- echo "       Build librrd MT: $enable_pthread"
--- 
-1.7.10
-
diff --git a/meta-oe/recipes-extended/rrdtool/rrdtool_1.4.7.bb b/meta-oe/recipes-extended/rrdtool/rrdtool_1.4.8.bb
similarity index 91%
rename from meta-oe/recipes-extended/rrdtool/rrdtool_1.4.7.bb
rename to meta-oe/recipes-extended/rrdtool/rrdtool_1.4.8.bb
index df3dc8a..c3d3b7c 100644
--- a/meta-oe/recipes-extended/rrdtool/rrdtool_1.4.7.bb
+++ b/meta-oe/recipes-extended/rrdtool/rrdtool_1.4.8.bb
@@ -6,14 +6,16 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
 
 DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2"
 
-PR = "r2"
+SRCREV = "1850e00a17e25e93c39e608f4e2da50f29c5c712"
+PV = "1.4.8"
 
-SRC_URI = "http://oss.oetiker.ch/rrdtool/pub/rrdtool-${PV}.tar.gz \
-           file://0001-rrdtool-eradicate-tcl-support.patch \
-           file://remove_hardcoded_xml_include.patch \
+SRC_URI = "\
+    git://github.com/oetiker/rrdtool-1.x.git;branch=1.4 \
+    file://remove_hardcoded_xml_include.patch \
+    file://0001-removing-testing-leftovers.patch \
 "
-SRC_URI[md5sum] = "ffe369d8921b4dfdeaaf43812100c38f"
-SRC_URI[sha256sum] = "956aaf431c955ba88dd7d98920ade3a8c4bad04adb1f9431377950a813a7af11"
+
+S = "${WORKDIR}/git"
 
 inherit autotools-brokensep gettext pythonnative perlnative python-dir
 
@@ -40,6 +42,7 @@  EXTRA_OECONF = " \
     rd_cv_ieee_works=yes \
     --disable-ruby \
     --disable-lua \
+    --disable-tcl \
     --disable-rpath \
 "