author | Sebastian Harl <sh@tokkee.org> | |
Sat, 20 Dec 2008 12:40:16 +0000 (13:40 +0100) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Sat, 20 Dec 2008 12:40:16 +0000 (13:40 +0100) |
29 files changed:
diff --git a/debian/NEWS b/debian/NEWS
--- /dev/null
+++ b/debian/NEWS
@@ -0,0 +1,16 @@
+rrdtool (1.3.1-4) unstable; urgency=high
+
+ Starting with version 1.3, RRDtool uses libpango for handling text in
+ graphs. When specifying fonts (e.g. using the --font option of rrdgraph(1))
+ a Pango font description (e.g. "Times 20") has to be used instead of
+ specifying truetype font files as in version 1.2. See the rrdgraph(1)
+ manpage for details.
+
+ Also, Pango expects strings to be encoded in UTF-8. RRDtool tries to take
+ care of that but for it to work correctly the string's encoding has to match
+ the locale settings or has to be UTF-8 encoded already. E.g. this might be a
+ problem if rrdtool is called from a script whose encoding does not match the
+ local settings.
+
+ -- Sebastian Harl <sh@tokkee.org> Fri, 26 Sep 2008 00:07:32 +0200
+
diff --git a/debian/changelog b/debian/changelog
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,694 @@
+rrdtool (1.3.1-4) unstable; urgency=high
+
+ * Urgency set to high because of the fix for #499350.
+ * debian/patches:
+ - Added upstream patch bts499350-data-corruption (upstream SVN r1480) to
+ fix data corruption when updating multiple values in one go
+ (Closes: #499350).
+ (upstream bug #178 - http://oss.oetiker.ch/rrdtool-trac/ticket/178)
+ - Added bts498183-segfault-madvise to fix a segfault on sparc caused by a
+ wrong argument passed to madvise(2) - thanks to Jurij Smakov for
+ valuable debugging information (Closes: #498183).
+ - Added upstream patch bts496847-error-handling (upstream SVN r1471) to
+ fix error handling of syscalls in rrdtool(1) (Closes: #496847).
+ - Added upstream patch bts499349-memleaks (upstream SVN r1465, r1467,
+ r1468, r1469, r1470, r1473) to fix a couple of memory leaks in rrdtool,
+ librrd and the Perl and Ruby bindings (Closes: #499349).
+ - Added trivial upstream patch typo-ruby (upstream SVN r1462) to fix a
+ typo in the Ruby bindings.
+ * debian/NEWS:
+ - Added. Documented the changes required by the switch to libpango
+ (Closes: #493575, #493594).
+
+ -- Sebastian Harl <sh@tokkee.org> Fri, 26 Sep 2008 01:41:05 +0200
+
+rrdtool (1.3.1-3) unstable; urgency=low
+
+ * Added "libxml2-dev" to librrd-dev's dependencies (Closes: #493342).
+ * debian/patches:
+ - Added bts493553-pango-utf-8 to try to make sure an UTF-8 string is
+ passed to pango_layout_set_{text,markup}() as required by libpango
+ (Closes: #493553).
+
+ -- Sebastian Harl <sh@tokkee.org> Mon, 04 Aug 2008 15:57:26 +0200
+
+rrdtool (1.3.1-2) unstable; urgency=low
+
+ * Reupload to unstable - thanks to Marc 'HE' Brockschmidt for the approval.
+ * debian/patches:
+ - Removed bts428780-validate-row-count - this is included in upstream
+ version 1.3.
+ * debian/control:
+ - librrd-dev provides and replaces librrd2-dev to ease the transition.
+
+ -- Sebastian Harl <sh@tokkee.org> Wed, 30 Jul 2008 11:44:53 +0200
+
+rrdtool (1.3.1-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Sebastian Harl <sh@tokkee.org> Wed, 23 Jul 2008 21:44:45 +0200
+
+rrdtool (1.3.0-1) experimental; urgency=low
+
+ [ Sebastian Harl ]
+ * New upstream release.
+ - Fixes a buffer overflow in librrd's error handling (Closes: #450578).
+ - Validate RRA row count in rrdcreate (Closes: #428780).
+ * Upload to experimental because of the required transition which has not
+ yet been granted for Lenny by the release team.
+ * debian/patches:
+ - Updated patches to apply on 1.3.0.
+ - "implicit-decl-fix" partly applied upstream
+ - "typos" removed, has been applied upstream
+ * debian/control:
+ - Replaced librrd2 / librrd2-dev with librrd4 / librrd-dev.
+ - Removed SONAME version from the -dev package name.
+ - Added "ttf-dejavu | ttf-bitstream-vera" recommendation to librrd4 -
+ upstream no longer ships DejaVuSansMono-Roman.ttf.
+ - Replaced "libart-2.0-dev" with "libcairo2-dev, libpango1.0-dev" in the
+ build dependencies and librrd-dev's dependencies following the switch
+ made by upstream.
+ - Added "libxml2-dev" to the build dependencies.
+ - Updated standards-version to 3.8.0 - no changes.
+ - No longer conflict / replace librrd0 and librrd0-dev - librrd0 is no
+ longer available since Etch.
+ - Added libc6-dev | libc-dev to librrd-dev's dependencies.
+ * debian/librrd4.symbols:
+ - Added symbols file for the new SONAME version number replacing
+ librrd2.symbols.
+ * debian/rules:
+ - Install "NEWS" and "CHANGES" into all packages.
+ - No longer set TCL_INC_DIR manually - has been fixed upstream.
+
+ [ Bernd Zeimetz ]
+ * debian/rules:
+ - Adding an option to point configure to the right path to tcl. This is
+ not needed for Lenny, but we also add it here to make coming backports
+ more simple.
+
+ -- Sebastian Harl <sh@tokkee.org> Sun, 15 Jun 2008 14:09:47 +0200
+
+rrdtool (1.2.28-1) unstable; urgency=low
+
+ [ Sebastian Harl ]
+ * New upstream release.
+ - Fixes a buffer overflow in librrd's error handling (Closes: #450578).
+ * debian/control:
+ - Updated standards-version to 3.8.0 - no changes.
+ - No longer conflict / replace librrd0 and librrd0-dev - librrd0 is no
+ longer available since Etch.
+ - Added libc6-dev | libc-dev to librrd2-dev's dependencies.
+ * debian/patches:
+ - Added backported upstream patch bts428780-validate-row-count to validate
+ the RRA row count in rrdcreate (Closes: #428780).
+ * debian/librrd2.symbols:
+ - Added the private symbol "rra_random_row@Base 1.2.28-1".
+ * debian/rules:
+ - Install "NEWS" and "CHANGES" into all packages.
+
+ [ Bernd Zeimetz ]
+ * debian/rules:
+ - Adding an option to point configure to the right path to tcl. This is
+ not needed for Lenny, but we also add it here to make coming backports
+ more simple.
+ * debian/patches/implicit-decl-fix:
+ - Patching the implicit declaration in rrd_update.c in a nicer way.
+
+ -- Sebastian Harl <sh@tokkee.org> Wed, 23 Jul 2008 21:01:04 +0200
+
+rrdtool (1.2.27-2) unstable; urgency=low
+
+ * Renamed global definition of LDFLAGS to LINKER_FLAGS in debian/rules to
+ work around a broken behavior of dpkg which would use those flags
+ unconditionally whenever invoking the linker, which is not wanted e.g.
+ when compiling the python bindings (Closes: #476022).
+ * Actually pass the linker flags to configure.
+
+ -- Sebastian Harl <sh@tokkee.org> Wed, 16 Apr 2008 15:50:54 +0200
+
+rrdtool (1.2.27-1) unstable; urgency=low
+
+ [ Bernd Zeimetz ]
+ * New upstream release.
+ - Finally allows + as leading characters in the input (Closes: #283935).
+ * debian/rules, debian/librrd2.install:
+ - Install rrdtool's ttf and configure rrd to use it.
+ * debian/patches:
+ - Updating patches to apply on 1.2.27.
+ - Adding debian/patches/bts428778-floating-point-exception to fix a corner
+ case that produces a SIGFPE (Closes: #428778). Patch created by
+ David Martínez Moreno.
+ * debian/control:
+ - Removing the ttf-dejavu dependency from librrd2 (Closes: #390617).
+ - Builds with -O2 segfault on arm, so disable it on arm for now until the
+ bug is properly debugged, which will take some time (Closes: #447041).
+
+ [ Sebastian Harl ]
+ * Adding debian/patches/typo by David Martínez Moreno to fix some typos
+ (Closes: #432340).
+
+ -- Bernd Zeimetz <bzed@debian.org> Sun, 24 Feb 2008 23:48:24 +0100
+
+rrdtool (1.2.26-1) unstable; urgency=low
+
+ [ Bernd Zeimetz ]
+ * New upstream version (Closes: #431060).
+ * Package hijacked as announced on debian-devel@lists.debian.org
+ (Message-ID: <47A7A2A4.3020106@bzed.de>) due to the old maintainer
+ being MIA.
+ * Complete overhaul of the packaging:
+ - debian/rules completely rewritten
+ - debian/copyright redone as it didn't even list upstream's copyright
+ correctly.
+ - debian/post{inst,rm}: removed, debhelper takes care of this.
+ - debian/control:
+ * Update of Maintainer, Standards-Version, Uploaders
+ * Building ruby modules now (Closes: #453304).
+ * Change the Python binary package to conform with the Python policy,
+ using python-support. Also renaming the package to follow the Python
+ policy.
+ * Make rrdtool-tcl compliant with policy
+ * Bump Standards Version to 3.7.3.
+ * Using and depending on quilt to handle patches.
+ * Adding Provides: librrd-dev to librrd2-dev.
+ - debian/watch:
+ * File redone to meet version 3 of uscan and to work again, using the
+ new location of the upstream source.
+
+ [ Alexander Wirt ]
+ * Removed rpath from perl and tcl modules
+ * Let rrdtool-tcl depend on tcl 8.4
+
+ -- Bernd Zeimetz <bzed@debian.org> Mon, 11 Feb 2008 12:14:19 +0100
+
+rrdtool (1.2.19-1) unstable; urgency=low
+
+ * New maintainer (closes: #409518).
+ * New upstream release:
+ - Logarithmic graphs don't consume all available memory (closes: #402782).
+ - This version at least does no longer have such rrdexplorer example
+ (closes: #239565).
+ - Patch for PREV(cname) was included long ago (closes: #160485).
+ - I am no longer able to reproduce a segfault with PREV(name). Closes:
+ #180284.
+ * Acknowledge NMU uploads (closes: #323975, #324497, #326653, #373379,
+ #323771, #325708, #323611, #240369, #323969).
+ * bindings/python/Makefile.in: Added -lpython2.4 in order to fix build
+ failure.
+
+ -- David Martínez Moreno <ender@debian.org> Mon, 12 Feb 2007 02:18:22 +0100
+
+rrdtool (1.2.15-0.3) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Fix high memory consumption by extracting r881 und r887 from upstream.
+ Closes: #397691, #398111
+
+ -- Andreas Barth <aba@not.so.argh.org> Thu, 14 Dec 2006 18:25:02 +0000
+
+rrdtool (1.2.15-0.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fixed the python module based on the patch supplied by Brian Warner,
+ thank you, closes: #397781.
+ * Updated upstream URL in the copyright file.
+
+ -- Josip Rodin <joy-packages@debian.org> Mon, 27 Nov 2006 00:25:41 +0100
+
+rrdtool (1.2.15-0.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * New upstream version, closes: #364948.
+ + Dropped our patches for #323771, it's now fixed upstream.
+ + Seems to fix the crashes in RRDs::graph, closes: #392937.
+ * Fixed up the package descriptions a little bit.
+ * Updated package list in README.Debian.
+ * Tidied up the copyright file.
+
+ -- Josip Rodin <joy-packages@debian.org> Mon, 6 Nov 2006 21:09:04 +0100
+
+rrdtool (1.2.11-0.6) unstable; urgency=low
+
+ * Convert to updated Python policy. Closes: #373379.
+
+ -- Matthias Klose <doko@debian.org> Sun, 18 Jun 2006 03:07:38 +0000
+
+rrdtool (1.2.11-0.5) unstable; urgency=low
+
+ * NMU.
+ * Fix the path to the ttf-deja font and version librrd2 dependance on
+ ttf-dejavu.
+
+ -- Laurent Fousse <laurent@komite.net> Mon, 9 Jan 2006 17:57:20 +0100
+
+rrdtool (1.2.11-0.4) unstable; urgency=low
+
+ * NMU.
+ * Tighten the dependency of the binary packages on librrd2 to assert the use
+ of a recent version depending on ttf-dejavu.
+ * Fix 'rrdtool restore', replace the workaround from 1.2.11-0.3 with a patch
+ from the upstream repository. Closes: #323771.
+ * Set the priority of the language bindings, which only depend on librrd2,
+ to optional, as aleady done for python-rrd (rrdtool-tcl, librrds-perl).
+ Closes: #240369.
+
+ -- Matthias Klose <doko@debian.org> Sun, 18 Sep 2005 06:04:13 +0000
+
+rrdtool (1.2.11-0.3) unstable; urgency=low
+
+ * NMU.
+ * Don't include own copy of ttf-dejavu font file, depend on ttf-dejavu.
+ Patch by Jeremy Bobbio. Closes: #323975.
+ * README.Debian: Add link to upstream contrib directory (closes: #323969).
+ * NEWS: Install into librrd2{,-dev} as well (closes: #325708).
+ * librrd[ps]-perl: Add README to locate the example files (closes: #323611).
+
+ -- Matthias Klose <doko@debian.org> Tue, 13 Sep 2005 11:03:47 +0000
+
+rrdtool (1.2.11-0.2) unstable; urgency=low
+
+ * librrd2-dev: Add conflict/replaces to librrd0 (.la) file.
+ Closes: #323355.
+
+ -- Matthias Klose <doko@debian.org> Tue, 16 Aug 2005 11:42:00 +0200
+
+rrdtool (1.2.11-0.1) unstable; urgency=low
+
+ * NMU.
+ * New upstream version.
+ - Fix FTBFS on amd64 (closes: #294623).
+ - Fix rrdcgi not handling quotes (closes: #243794).
+ - Fix rrdcgi concatenation problem (closes: #232556).
+ - New soname for the librrd library (closes: #309346).
+ * Use debhelper V4.
+ * Build-depend on libart2.0-dev, libfreetype6-dev.
+ * Remove build dependencies on gd2 libs. (closes: #261752, #289003).
+ * Build python bindings from this source, add Matthias Urlichs as uploader.
+ * debian/copyright: Remove the paragraph "Modifications to upstream source",
+ no modifications with this upload.
+ * Remove empty files from examples directory (closes: #281194).
+ * Build-depend on fixed cgilib (>= 0.5-4.1).
+
+ -- Matthias Klose <doko@debian.org> Sun, 14 Aug 2005 17:30:00 +0200
+
+rrdtool (1.0.49-1) unstable; urgency=low
+
+ * New upstream release
+ * librrd0 conflicts with older rrdtool, librrds-perl due to libpng
+ incompatibility (Closes: #252271)
+ * Change depends on librrd0-dev to -noxpm variant as well
+ * Update depends on rrdtool-tcl to tcl8.4
+
+ -- Matt Zimmerman <mdz@debian.org> Thu, 4 Nov 2004 17:48:45 -0800
+
+rrdtool (1.0.48-3) unstable; urgency=low
+
+ * Placate disk space fascists by building with the -noxpm variant of libgd2
+ (Closes: #261752)
+ * Require a version of libgd which has GIF support restored (2.0.28)
+ (Closes: #265660)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 9 Oct 2004 11:43:06 -0700
+
+rrdtool (1.0.48-2) unstable; urgency=low
+
+ * Build against libgd2, since it now provides gif support as libgd-gif1
+ did, and avoids a conflict with programs which link against both
+ librrd and libgd2, such as php4-rrdtool (Closes: #261323)
+ - Build-Depends: s/libgd-gif1-dev/libgd2-xpm-dev/
+ - librrd0-dev Depends: likewise
+ * Add libc-dev as an alternative in librrd0-dev's libc6-dev dependency
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 24 Jul 2004 23:57:17 -0700
+
+rrdtool (1.0.48-1) unstable; urgency=low
+
+ * New upstream release (Closes: #256795)
+
+ -- Matt Zimmerman <mdz@debian.org> Sun, 4 Jul 2004 01:40:30 -0700
+
+rrdtool (1.0.46-3) unstable; urgency=low
+
+ * Add dependencies to librrd0-dev to ensure that static linking is
+ possible: libgd-gif1-dev, zlib1g-dev
+ * #include <stdio.h> in rrd.h (Closes: #238849)
+ * Only link rrdcgi with -lcgi, not librrd
+
+ -- Matt Zimmerman <mdz@debian.org> Fri, 19 Mar 2004 11:38:39 -0800
+
+rrdtool (1.0.46-2) unstable; urgency=medium
+
+ * Fix tcl module installation (Closes: #231171)
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 4 Feb 2004 15:35:46 -0800
+
+rrdtool (1.0.46-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Matt Zimmerman <mdz@debian.org> Mon, 12 Jan 2004 23:22:09 -0800
+
+rrdtool (1.0.45-1) unstable; urgency=low
+
+ * New upstream release
+ * Deal with changed tclrrd naming scheme
+ * Build with tcl8.4
+ * Remove old dpkg-dev build-dependency; even woody is new enough
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 17 Dec 2003 14:09:11 -0800
+
+rrdtool (1.0.42-2) unstable; urgency=low
+
+ * Build-Depends: libpng12-dev instead of libpng3-dev (when will the madness end?)
+ (Closes: #195224
+ I hope this will also fix weird version mismatch problems (Closes: #194900)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 31 May 2003 15:06:42 -0400
+
+rrdtool (1.0.42-1) unstable; urgency=low
+
+ * New upstream release
+ * librrd0-dev Section: libdevel
+ * librrd[sp]-perl Section: perl
+ * Build with libpng3 (Closes: #189493)
+
+ -- Matt Zimmerman <mdz@debian.org> Thu, 15 May 2003 19:44:37 -0400
+
+rrdtool (1.0.40-2) unstable; urgency=low
+
+ * Correctly suppress non-image output when writing image to stdout
+ (Closes: #182217)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 1 Mar 2003 16:59:39 -0500
+
+rrdtool (1.0.40-1) unstable; urgency=low
+
+ * New upstream release
+ * Remove unnecessary rrd_free to avoid crash on invalid option
+ (Closes: #166156)
+ * Clean example source code; some libtool cruft was getting installed in
+ /usr/share/doc/examples
+
+ -- Matt Zimmerman <mdz@debian.org> Tue, 17 Dec 2002 22:11:46 -0500
+
+rrdtool (1.0.39-2) unstable; urgency=low
+
+ * Rebuild for perl 5.8 (Closes: #158728)
+
+ -- Matt Zimmerman <mdz@debian.org> Sun, 25 Aug 2002 17:29:41 -0400
+
+rrdtool (1.0.39-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 31 Jul 2002 00:40:00 -0400
+
+rrdtool (1.0.38-1) unstable; urgency=low
+
+ * New upstream release (Closes: #148486)
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 29 May 2002 12:28:28 -0400
+
+rrdtool (1.0.35-2) unstable; urgency=low
+
+ * Remove CVS directories with rm -rf. This broke autobuilds entirely.
+ (Closes: #140075)
+
+ -- Matt Zimmerman <mdz@debian.org> Tue, 26 Mar 2002 17:15:01 -0500
+
+rrdtool (1.0.35-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Matt Zimmerman <mdz@debian.org> Sun, 24 Mar 2002 11:29:10 -0500
+
+rrdtool (1.0.33-9) unstable; urgency=low
+
+ * Call dh_shlibdeps with -l to allow it to find dependencies correctly
+ (Closes: #118629)
+ * Add call to ldconfig in postrm of librrd0
+ * Remove .cvsignore files from installed examples
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 10 Nov 2001 14:14:51 -0500
+
+rrdtool (1.0.33-8) unstable; urgency=low
+
+ * Use AM_MAINTAINER_MODE to keep the makefiles from trying to rebuild
+ autoconf/automake stuff during the build (Closes: #117599)
+ * Regenerated everything AGAIN.
+ * Use DESTDIR instead of prefix= during "make install"
+
+ -- Matt Zimmerman <mdz@debian.org> Mon, 29 Oct 2001 22:22:07 -0500
+
+rrdtool (1.0.33-7) unstable; urgency=low
+
+ * Add an example to the rrddump documentation showing what is necessary
+ to transfer an RRD from one architecture to another. (Closes: #117147)
+ * Regenerated autoconf/automake configs
+
+ -- Matt Zimmerman <mdz@debian.org> Mon, 29 Oct 2001 02:28:16 -0500
+
+rrdtool (1.0.33-6) unstable; urgency=low
+
+ * Spelling corrections from Martin Schulze (Closes: #110784)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 8 Sep 2001 13:13:22 -0400
+
+rrdtool (1.0.33-5) unstable; urgency=low
+
+ * Ship with pre-generated files from autoconf2.50/automake, rather than
+ pulling them in at build-time, in order to work around the current
+ libtool mess. This makes the diff less manageable, but should make
+ the build more stable.
+ * debian/control: remove build-dependencies on autoconf/automake/libtool
+ * debian/rules: don't call autoconf/automake
+ * Fix shlibs file (it was trying to use a substitution)
+ * configure.in: remove makefiles that no longer exist from AC_OUTPUT.
+ Apparently this is an error in autoconf 2.50.
+ * configure.in: Remove wacky logic to pull PIC flags out of libtool, and
+ let libtool do the right thing.
+ * debian/rules: shlibs.local hackery is no longer necessary, removed
+
+ -- Matt Zimmerman <mdz@debian.org> Fri, 3 Aug 2001 17:36:43 -0400
+
+rrdtool (1.0.33-4) unstable; urgency=low
+
+ * Add build-dependencies on libtool and autoconf (Closes: #105655)
+
+ -- Matt Zimmerman <mdz@debian.org> Tue, 17 Jul 2001 15:44:25 -0400
+
+rrdtool (1.0.33-3) unstable; urgency=low
+
+ * Update config.{sub,guess} from autotools-dev 20010702.1
+ (Closes: #105037)
+ * Update ltmain.sh for good measure, from libtool 1.4-1
+ * Build-Depend on autoconf, and run autoconf and aclocal from
+ debian/rules (in addition to automake)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 14 Jul 2001 03:19:22 -0400
+
+rrdtool (1.0.33-2) unstable; urgency=low
+
+ * Rebuild with latest tcl8.3-dev, to fix shared object extension
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 3 Mar 2001 17:28:24 -0500
+
+rrdtool (1.0.33-1) unstable; urgency=low
+
+ * New upstream version.
+ * This is yet another patch release to fix some distribution/compilation
+ problems. There should be no visible changes for Debian users from
+ 1.0.32-3.
+
+ -- Matt Zimmerman <mdz@debian.org> Thu, 1 Mar 2001 02:27:53 -0500
+
+rrdtool (1.0.32-3) unstable; urgency=low
+
+ * Fix the tcl extension module to build against tcl8.3, rather than
+ tcl8.0 (Closes: #87357)
+ * debian/control: Build-depend on tcl8.3-dev
+ * debian/rules: tclconfigdir = /usr/lib/tcl8.3
+ * tcl/Makefile.am: (upstream) -I/usr/include/tcl@TCL_VERSION@
+ * configure.in: (upstream) AC_SUBST(TCL_VERSION)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 24 Feb 2001 02:25:46 -0500
+
+rrdtool (1.0.32-2) unstable; urgency=low
+
+ * List changes to upstream source in the copyright file (as well as the
+ changelog)
+ * Link against libgd-gif instead of libgd, to restore GIF support
+
+ -- Matt Zimmerman <mdz@debian.org> Fri, 23 Feb 2001 15:27:37 -0500
+
+rrdtool (1.0.32-1) unstable; urgency=low
+
+ * New upstream version. Hopefully this one will last more than 24
+ hours (Closes: #75771)
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 21 Feb 2001 20:13:09 -0500
+
+rrdtool (1.0.27-7) unstable; urgency=low
+
+ * debian/rules: Updated for new Perl policy
+ * debian/rules: Don't use install-stamp; it causes more problems than it
+ prevents
+ * debian/rules: Don't call dh_suidregister; we didn't use it anyway
+ * debian/control: Build-depend on the new debhelper for dh_perl
+ * debian/control: rrdtool-tcl only seems to work with 8.0, so depend on
+ tcl8.0
+ * debian/control: Build-depend on perl 5.6.0+
+ * debian/librrd?-perl: Updated for new Perl filesystem layout
+
+ -- Matt Zimmerman <mdz@debian.org> Thu, 15 Feb 2001 19:04:11 -0500
+
+rrdtool (1.0.27-6) unstable; urgency=low
+
+ * debian/rules: Handle DEB_BUILD_OPTIONS debug, nostrip
+ * debian/rules: Separate out "configure" target
+ * debian/rules: Miscellaneous cleanup
+ * Recompile librrds-perl against perl-5.6
+
+ -- Matt Zimmerman <mdz@debian.org> Tue, 19 Dec 2000 21:23:55 -0500
+
+rrdtool (1.0.27-5) unstable; urgency=low
+
+ * Fix Build-Depends to reflect our dependency on dpkg-dev >= 1.7.0 |
+ librrd0. The old dpkg can only calculate our dependencies correctly
+ if the runtime library is installed on the system, so potato users
+ must either install the potato librrd0 or the new dpkg-dev
+ (Closes: #77479)
+
+ -- Matt Zimmerman <mdz@debian.org> Mon, 20 Nov 2000 20:39:55 -0500
+
+rrdtool (1.0.27-4) unstable; urgency=low
+
+ * Updated to comply with policy 3.2.1.0:
+ - Don't build with -g by default
+ * Build-Depend on tcl8.0-dev (not tcl-dev), since that is the only
+ version we currently work with.
+ * Added automake to Build-Depends (oops)
+
+ -- Matt Zimmerman <mdz@debian.org> Sat, 18 Nov 2000 22:29:02 -0500
+
+rrdtool (1.0.27-3) unstable; urgency=low
+
+ * Big packaging cleanup release.
+ * Fixed perl module compilation to link with the shared library, rather
+ than including a copy of the static library inside the .so (also fixes
+ a lintian error, shlib-with-non-pic-code in librrds-perl)
+ * Fixed tcl module compilation to link with the shared library, rather
+ than including a copy of the static library inside the .so (also fixes
+ a lintian error, shlib-with-non-pic-code in rrdtool-tcl)
+ * The above shrunk the size of the perl and tcl library packages from
+ 60k each to about 20k (perl) and 16k (tcl)
+ * We can now use shlibdeps to calculate the dependencies for
+ librrds-perl, so those will be more correct now
+ * Rather than include Makefile.in changes in the .diff.gz, just keep our
+ modifications to Makefile.am and run automake in debian/rules. This
+ makes the .diff.gz much smaller and cleaner
+ * Fixed shared library dependencies all around to be smarter
+ * rrdtool package now Suggests librrds-perl (rather than depending on
+ perl), as it is only needed for an auxiliary script for converting
+ mrtg data
+
+ -- Matt Zimmerman <mdz@debian.org> Fri, 10 Nov 2000 19:34:05 -0500
+
+rrdtool (1.0.27-2) unstable; urgency=low
+
+ * Updated maintainer email address (now official maintainer)
+
+ -- Matt Zimmerman <mdz@debian.org> Wed, 1 Nov 2000 22:44:41 -0500
+
+rrdtool (1.0.27-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Wed, 13 Sep 2000 13:10:14 -0400
+
+rrdtool (1.0.26-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Sun, 10 Sep 2000 16:34:08 -0400
+
+rrdtool (1.0.25-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Sun, 23 Jul 2000 02:23:53 -0400
+
+rrdtool (1.0.24-2) unstable; urgency=low
+
+ * Updated for libgd 1.8.3 (build depends, recompile)
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Fri, 7 Jul 2000 19:33:29 -0400
+
+rrdtool (1.0.24-1) unstable; urgency=low
+
+ * New upstream version (Closes: #61997).
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Fri, 30 Jun 2000 13:53:27 -0400
+
+rrdtool (1.0.17-1) unstable; urgency=low
+
+ * New upstream version.
+ * Now creates rrdtool-tcl, containing tcl bindings.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Wed, 26 Apr 2000 13:16:24 -0700
+
+rrdtool (1.0.16-1) unstable; urgency=low
+
+ * New upstream version.
+ * Not released.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Wed, 26 Apr 2000 10:53:36 -0700
+
+rrdtool (1.0.13-2) unstable; urgency=low
+
+ * Build-Depends: cgilib, zlib1g-dev, libpng2-dev, libgd1g-dev, groff,
+ debhelper. Hopefully that's everything.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Fri, 7 Apr 2000 14:16:55 -0700
+
+rrdtool (1.0.13-1) unstable; urgency=low
+
+ * New upstream version (Closes: #58583)
+ * Added Build-Depends for cgilib (Closes: #55270)
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Thu, 23 Mar 2000 15:55:37 -0800
+
+rrdtool (1.0.10-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Mon, 10 Jan 2000 16:46:33 -0800
+
+rrdtool (1.0.7-3) unstable; urgency=low
+
+ * Non-i386 fixes, thanks to Christopher C Chimelis <chris@debian.org>:
+ * Changed 'clean' target in debian/rules to remove the auto-generated
+ Makefiles for the Perl modules
+ * Changed Depends: for librrds-perl to use shlibdeps
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Mon, 22 Nov 1999 10:47:13 -0800
+
+rrdtool (1.0.7-2) unstable; urgency=low
+
+ * Linked RRDs.so against libpng, closes: #49701
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Tue, 9 Nov 1999 15:02:40 -0800
+
+rrdtool (1.0.7-1) unstable; urgency=low
+
+ * Initial Release.
+ * Upstream source ships with cgilib-0.4, gd-1.3, libpng-1.0.3, and
+ zlib-1.3.3 (!). Build process is modified to skip building these, and
+ instead link with the Debian versions.
+ * Modifications for gd 1.6.1 included removal of GIF support (no longer
+ included with gd as of 1.6)
+
+ -- Matt Zimmerman <mdz@csh.rit.edu> Sat, 11 Sep 1999 13:29:29 -0700
+
+
diff --git a/debian/control b/debian/control
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,186 @@
+Source: rrdtool
+Section: utils
+Priority: optional
+Maintainer: Debian RRDtool Team <rrdtool@ml.snow-crash.org>
+Uploaders: Sebastian Harl <sh@tokkee.org>, Alexander Wirt <formorer@debian.org>, Bernd Zeimetz <bzed@debian.org>
+Standards-Version: 3.8.0
+Build-Depends: debhelper (>= 5.0.38), groff, autotools-dev, quilt,
+ zlib1g-dev, libpng12-dev, libcairo2-dev, libpango1.0-dev, libfreetype6-dev,
+ libxml2-dev,
+ tcl-dev,
+ perl (>= 5.8.0),
+ python-all-dev (>= 2.3.5-10), python-support (>= 0.4),
+ ruby1.8, ruby1.8-dev, ruby1.9, ruby1.9-dev
+Homepage: http://oss.oetiker.ch/rrdtool/
+Vcs-Browser: http://git.snow-crash.org/?p=pkg-rrdtool.git;a=summary
+Vcs-Git: git://git.snow-crash.org/pkg-rrdtool.git/
+
+Package: rrdtool
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: librrds-perl
+Description: Time-series data storage and display system (programs)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ RRDtool is often used via various wrappers that can poll data from devices
+ and feed data into RRDs, as well as provide a friendlier user interface and
+ customized graphs.
+ .
+ This package contains command-line programs used to access and manipulate
+ RRDs.
+
+Package: librrd4
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: ttf-dejavu | ttf-bitstream-vera
+Conflicts: rrdtool (<< 1.0.42-1), librrds-perl (<< 1.0.42-1)
+Description: Time-series data storage and display system (runtime library)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains shared libraries used to access and manipulate RRDs.
+
+Package: librrd-dev
+Architecture: any
+Section: libdevel
+Depends: libc6-dev | libc-dev, librrd4 (= ${binary:Version}), libpng12-dev, zlib1g-dev, libcairo2-dev, libpango1.0-dev, libfreetype6-dev, libxml2-dev, ${misc:Depends}
+Provides: librrd2-dev
+Conflicts: librrd2-dev
+Replaces: librrd2-dev
+Description: Time-series data storage and display system (development)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains header files and libraries used to develop software
+ that uses RRDs.
+
+Package: librrds-perl
+Architecture: any
+Section: perl
+Depends: ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}
+Description: Time-series data storage and display system (Perl interface, shared)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Perl interface to RRDs using a shared library.
+
+Package: librrdp-perl
+Architecture: all
+Section: perl
+Depends: ${perl:Depends}, rrdtool, ${misc:Depends}
+Description: Time-series data storage and display system (Perl interface, piped)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Perl interface to RRDs using command pipes.
+
+Package: rrdtool-tcl
+Architecture: any
+Section: utils
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${tcl:Depends}
+Description: Time-series data storage and display system (Tcl interface)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Tcl interface to RRDs.
+
+Package: python-rrdtool
+Architecture: any
+Section: python
+Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}
+Conflicts: python2.3-rrd, python2.4-rrd, python-rrd (<< 1.2.26)
+Replaces: python2.3-rrd, python2.4-rrd, python-rrd (<< 1.2.26)
+Provides: ${python:Provides}, python-rrd
+Description: Time-series data storage and display system (Python interface)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Python interface to RRDs.
+
+Package: python-rrd
+Architecture: all
+Section: python
+Depends: python-rrdtool
+Description: Transitional dummy package
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package is a transitional dummy package to rename the package to
+ python-rrdtool as required by the Python policy. It can be safely removed.
+
+Package: librrd-ruby
+Architecture: all
+Section: interpreters
+Depends: ${rubydefault:Depends}
+Description: Time-series data storage and display system (Ruby interface)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This is a dummy package which depends on the package for Debian's default
+ Ruby version.
+
+Package: librrd-ruby1.8
+Architecture: any
+Section: interpreters
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Time-series data storage and display system (Ruby 1.8 interface)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Ruby 1.8 interface to RRDs.
+
+Package: librrd-ruby1.9
+Architecture: any
+Section: interpreters
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Time-series data storage and display system (Ruby 1.9 interface)
+ The Round Robin Database Tool (RRDtool) is a system to store and display
+ time-series data (e.g. network bandwidth, machine-room temperature,
+ server load average). It stores the data in Round Robin Databases (RRDs),
+ a very compact way that will not expand over time. RRDtool processes the
+ extracted data to enforce a certain data density, allowing for useful
+ graphical representation of data values.
+ .
+ This package contains a Ruby 1.9 interface to RRDs.
diff --git a/debian/copyright b/debian/copyright
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,297 @@
+Originally this package was debianized by Matt Zimmerman <mdz@debian.org> on
+Fri, 10 Sep 1999 10:53:19 -0700. The packaging was overhauled and all parts,
+except debian/control and debian/changelog, were droppend and redone by
+Bernd Zeimetz <bzed@debian.org> on Wed, 06 Feb 2008 19:14:48 +0100 for the
+RRDtool packaging team <rrdtool@ml.snow-crash.org>.
+
+
+The upstream source was downloaded from:
+ http://oss.oetiker.ch/rrdtool/pub/
+
+Upstream author: Tobias Oetiker <tobi@oetiker.ch>
+
+See CONTRIBUTORS for a list of contributors.
+
+Copyright:
+
+ RRDTOOL - Round Robin Database Tool
+ A tool for fast logging of numerical data graphical display
+ of this data.
+
+ Copyright (c) 1998-2008 Tobias Oetiker
+ All rights reserved.
+
+ GNU GPL License
+ ===============
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ FLOSS License Exception
+ =======================
+ (Adapted from http://www.mysql.com/company/legal/licensing/foss-exception.html)
+
+ I want specified Free/Libre and Open Source Software ("FLOSS")
+ applications to be able to use specified GPL-licensed RRDtool
+ libraries (the "Program") despite the fact that not all FLOSS licenses are
+ compatible with version 2 of the GNU General Public License (the "GPL").
+
+ As a special exception to the terms and conditions of version 2.0 of the GPL:
+
+ You are free to distribute a Derivative Work that is formed entirely from
+ the Program and one or more works (each, a "FLOSS Work") licensed under one
+ or more of the licenses listed below, as long as:
+
+ 1. You obey the GPL in all respects for the Program and the Derivative
+ Work, except for identifiable sections of the Derivative Work which are
+ not derived from the Program, and which can reasonably be considered
+ independent and separate works in themselves,
+
+ 2. all identifiable sections of the Derivative Work which are not derived
+ from the Program, and which can reasonably be considered independent and
+ separate works in themselves,
+
+ 1. are distributed subject to one of the FLOSS licenses listed
+ below, and
+
+ 2. the object code or executable form of those sections are
+ accompanied by the complete corresponding machine-readable source
+ code for those sections on the same medium and under the same FLOSS
+ license as the corresponding object code or executable forms of
+ those sections, and
+
+ 3. any works which are aggregated with the Program or with a Derivative
+ Work on a volume of a storage or distribution medium in accordance with
+ the GPL, can reasonably be considered independent and separate works in
+ themselves which are not derivatives of either the Program, a Derivative
+ Work or a FLOSS Work.
+
+ If the above conditions are not met, then the Program may only be copied,
+ modified, distributed or used under the terms and conditions of the GPL.
+
+ FLOSS License List
+ ==================
+ License name Version(s)/Copyright Date
+ Academic Free License 2.0
+ Apache Software License 1.0/1.1/2.0
+ Apple Public Source License 2.0
+ Artistic license From Perl 5.8.0
+ BSD license "July 22 1999"
+ Common Public License 1.0
+ GNU Library or "Lesser" General Public License (LGPL) 2.0/2.1
+ IBM Public License, Version 1.0
+ Jabber Open Source License 1.0
+ MIT License (As listed in file MIT-License.txt) -
+ Mozilla Public License (MPL) 1.0/1.1
+ Open Software License 2.0
+ OpenSSL license (with original SSLeay license) "2003" ("1998")
+ PHP License 3.0
+ Python license (CNRI Python License) -
+ Python Software Foundation License 2.1.1
+ Sleepycat License "1999"
+ W3C License "2001"
+ X11 License "2001"
+ Zlib/libpng License -
+ Zope Public License 2.0
+
+
+The overhauled Debian packaging, which was started by Bernd Zeimetz on
+Wed, 06 Feb 2008 19:14:48 +0100, is copyrighted under the same license
+as RRDtool, see above.
+
+On Debian systems, a copy of the GNU General Public License, version 2,
+can be found in the file /usr/share/common-licenses/GPL-2. The symlink
+/usr/share/common-licenses/GPL points to the latest version of the GPL.
+
+
+Files with different copyrights/licenses:
+
+ * bindings/python/* (except rrd_extra.h):
+
+ Author: Hye-Shik Chang <perky@fallin.lv>
+ Contributors: Matthew W. Samsonoff <mws@rochester.rr.com>
+ Brian E. Gallew <geek+python@cmu.edu>
+
+ py-rrdtool is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ py-rrdtool is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with Foobar; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ On Debian systems, a copy of the GNU Lesser General Public License,
+ version 2, can be found in the file /usr/share/common-licenses/LGPL-2
+ The symlink /usr/share/common-licenses/LGPL points to the latest version
+ of the LGPL.
+
+ * bindings/ruby/:
+
+ Author: Miles Egan <miles@caddr.com>
+
+ * bindings/tcl/{ifOctets.tcl.in,tclrrd.c}:
+
+ Copyright:
+ Copyright (c) 1999,2000 Frank Strauss
+ Technical University of Braunschweig.
+ Thread-safe code in tclrrd.c:
+ Copyright (c) 2005 Oleg Derevenetz, CenterTelecom Voronezh ISP.
+
+ * doc/bin_dec_hex.pod, doc/cdeftutorial.pod, doc/rrdgraph.pod,
+ doc/rrdgraph_data.pod, doc/rrdgraph_examples.pod, doc/rrdgraph_graph.pod,
+ doc/rrdgraph_rpn.pod, doc/rrdresize.pod, doc/rrdtutorial.pod:
+
+ Author: Alex van den Bogaerdt <alex@ergens.op.het.net>
+
+ * doc/rpntutorial.pod:
+
+ Author: Steve Rader <rader@wiscnet.net>
+
+ * doc/rrdfirst.pod:
+
+ Author: Burton Strauss <Burton@ntopSupport.com>
+
+ * doc/rrdlast.pod:
+
+ Author: Russ Wright <rwwright@home.com>
+
+ * doc/rrdlastupdate.pod:
+
+ Author: Andy Riebs <andy.riebs@hp.com>
+
+ * doc/rrdthreads.pod:
+
+ Author: Peter Stamfest <peter@stamfest.at>
+
+ * doc/rrd-beginners.pod:
+
+ Author: Ketan Patel <k2pattu@yahoo.com>
+
+
+ * src/{fnv.h,hash_32.c}:
+
+ Please do not copyright this code. This code is in the public domain.
+
+ LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+ EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+ USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+ By:
+ chongo <Landon Curt Noll> /\oo/\
+ http://reality.sgi.com/chongo/
+ EMail: chongo_fnv at prime dot engr dot sgi dot com
+
+
+ * src/parsetime.c:
+
+ parsetime.c - parse time for at(1)
+
+ Copyright (C) 1993, 1994 Thomas Koenig
+
+ modifications for English-language times
+ Copyright (C) 1993 David Parsons
+
+ A lot of modifications and extensions
+ (including the new syntax being useful for RRDB)
+ Copyright (C) 1999 Oleg Cherevko (aka Olwi Deer)
+
+ severe structural damage inflicted by Tobi Oetiker in 1999
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. The name of the author(s) may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ * src/rrd_getopt.{c,h}, src/rrd_getopt1.c:
+
+ Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
+ Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library. Its master source is NOT part of
+ the C library, however. The master source lives in /gd/gnu/lib.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc.,
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ * src/rrd_hw.c:
+
+ Copyright (C) 1997-2008 Tobias Oetiker
+ Initial version by Jake Brutlag, WebTV Networks, 5/1/00
+
+ * src/rrd_i18n.h
+
+ Copyright (C) 2008 Takao Fujiwara
+
+ * src/rrd_is_thread_safe.h, src/rrd_not_thread_safe.c, src/rrd_thread_safe.c,
+ src/rrd_thread_safe_nt.c:
+
+ Copyright 1997-2008 Tobias Oetiker
+ Copyright 2003 Peter Stamfest <peter@stamfest.at>
+
+ * src/rrd_last.c:
+
+ Copyright (C) 1997-2008 Tobias Oetiker
+ Initial version by Russ Wright, @Home Network, 9/28/98
+
+ * src/rrd_restore.c
+
+ Copyright (C) 1997-2008 Tobias Oetiker
+ Copyright (C) 2008 Florian Forster
+
+ * src/strftime.c:
+
+ Written 6 september 1989 by Jim Nutt.
+ Released into the public domain by Jim Nutt.
+
+ Modified 21 october 1989 by Rob Duff.
+ Modified 08 december 2004 by Tobias Oetiker.
+
diff --git a/debian/librrd-dev.install b/debian/librrd-dev.install
--- /dev/null
@@ -0,0 +1,7 @@
+usr/include
+usr/lib/librrd.a
+usr/lib/librrd_th.a
+usr/lib/librrd.la
+usr/lib/librrd_th.la
+usr/lib/librrd.so
+usr/lib/librrd_th.so
diff --git a/debian/librrd4.install b/debian/librrd4.install
--- /dev/null
+++ b/debian/librrd4.install
@@ -0,0 +1,2 @@
+usr/lib/librrd.so.*
+usr/lib/librrd_th.so.*
diff --git a/debian/librrd4.symbols b/debian/librrd4.symbols
--- /dev/null
+++ b/debian/librrd4.symbols
@@ -0,0 +1,102 @@
+librrd.so.4 librrd4 #MINVER#
+ rrd_clear_error@Base 1.3.0
+ rrd_close@Base 1.3.0
+ rrd_create@Base 1.3.0
+ rrd_create_r@Base 1.3.0
+ rrd_dontneed@Base 1.3.0
+ rrd_dump@Base 1.3.0
+ rrd_dump_r@Base 1.3.0
+ rrd_fetch@Base 1.3.0
+ rrd_fetch_r@Base 1.3.0
+ rrd_first@Base 1.3.0
+ rrd_first_r@Base 1.3.0
+ rrd_flush@Base 1.3.0
+ rrd_free@Base 1.3.0
+ rrd_free_context@Base 1.3.0
+ rrd_freemem@Base 1.3.0
+ rrd_get_context@Base 1.3.0
+ rrd_get_error@Base 1.3.0
+ rrd_graph@Base 1.3.0
+ rrd_graph_v@Base 1.3.0
+ rrd_info@Base 1.3.0
+ rrd_info_free@Base 1.3.0
+ rrd_info_print@Base 1.3.0
+ rrd_info_push@Base 1.3.0
+ rrd_init@Base 1.3.0
+ rrd_last@Base 1.3.0
+ rrd_last_r@Base 1.3.0
+ rrd_lastupdate@Base 1.3.0
+ rrd_lock@Base 1.3.0
+ rrd_new_context@Base 1.3.0
+ rrd_open@Base 1.3.0
+ rrd_parsetime@Base 1.3.0
+ rrd_proc_start_end@Base 1.3.0
+ rrd_read@Base 1.3.0
+ rrd_resize@Base 1.3.0
+ rrd_restore@Base 1.3.0
+ rrd_seek@Base 1.3.0
+ rrd_set_error@Base 1.3.0
+ rrd_set_to_DINF@Base 1.3.0
+ rrd_set_to_DNAN@Base 1.3.0
+ rrd_strerror@Base 1.3.0
+ rrd_strversion@Base 1.3.0
+ rrd_tell@Base 1.3.0
+ rrd_test_error@Base 1.3.0
+ rrd_tune@Base 1.3.0
+ rrd_update@Base 1.3.0
+ rrd_update_r@Base 1.3.0
+ rrd_update_v@Base 1.3.0
+ rrd_version@Base 1.3.0
+ rrd_write@Base 1.3.0
+ rrd_xport@Base 1.3.0
+librrd_th.so.4 librrd4 #MINVER#
+ rrd_clear_error@Base 1.3.0
+ rrd_close@Base 1.3.0
+ rrd_create@Base 1.3.0
+ rrd_create_r@Base 1.3.0
+ rrd_dontneed@Base 1.3.0
+ rrd_dump@Base 1.3.0
+ rrd_dump_r@Base 1.3.0
+ rrd_fetch@Base 1.3.0
+ rrd_fetch_r@Base 1.3.0
+ rrd_first@Base 1.3.0
+ rrd_first_r@Base 1.3.0
+ rrd_flush@Base 1.3.0
+ rrd_free@Base 1.3.0
+ rrd_free_context@Base 1.3.0
+ rrd_freemem@Base 1.3.0
+ rrd_get_context@Base 1.3.0
+ rrd_get_error@Base 1.3.0
+ rrd_graph@Base 1.3.0
+ rrd_graph_v@Base 1.3.0
+ rrd_info@Base 1.3.0
+ rrd_info_free@Base 1.3.0
+ rrd_info_print@Base 1.3.0
+ rrd_info_push@Base 1.3.0
+ rrd_init@Base 1.3.0
+ rrd_last@Base 1.3.0
+ rrd_last_r@Base 1.3.0
+ rrd_lastupdate@Base 1.3.0
+ rrd_lock@Base 1.3.0
+ rrd_new_context@Base 1.3.0
+ rrd_open@Base 1.3.0
+ rrd_parsetime@Base 1.3.0
+ rrd_proc_start_end@Base 1.3.0
+ rrd_read@Base 1.3.0
+ rrd_resize@Base 1.3.0
+ rrd_restore@Base 1.3.0
+ rrd_seek@Base 1.3.0
+ rrd_set_error@Base 1.3.0
+ rrd_set_to_DINF@Base 1.3.0
+ rrd_set_to_DNAN@Base 1.3.0
+ rrd_strerror@Base 1.3.0
+ rrd_strversion@Base 1.3.0
+ rrd_tell@Base 1.3.0
+ rrd_test_error@Base 1.3.0
+ rrd_tune@Base 1.3.0
+ rrd_update@Base 1.3.0
+ rrd_update_r@Base 1.3.0
+ rrd_update_v@Base 1.3.0
+ rrd_version@Base 1.3.0
+ rrd_write@Base 1.3.0
+ rrd_xport@Base 1.3.0
diff --git a/debian/librrdp-perl.install b/debian/librrdp-perl.install
--- /dev/null
@@ -0,0 +1,2 @@
+usr/share/perl5/RRDp.pm
+usr/share/man/man3/RRDp.3pm
diff --git a/debian/librrds-perl.install b/debian/librrds-perl.install
--- /dev/null
@@ -0,0 +1,3 @@
+usr/lib/perl5/auto/RRDs
+usr/lib/perl5/RRDs.pm
+usr/share/man/man3/RRDs.3pm
diff --git a/debian/patches/bts428778-floating-point-exception b/debian/patches/bts428778-floating-point-exception
--- /dev/null
@@ -0,0 +1,19 @@
+diff a/src/rrd_create.c b/src/rrd_create.c
+--- a/src/rrd_create.c
++++ b/src/rrd_create.c
+@@ -740,6 +740,15 @@ int rrd_create_fn(
+ default:
+ /* can not be zero because we don't know anything ... */
+ rrd->cdp_prep->scratch[CDP_val].u_val = DNAN;
++ /* If the step is 0, we're going to have a BIG Floating Point Exception (i.e. SIGFPE). */
++ /* Example: (( 1202705167 - 67 ) % ( 300 * 0 )) / 300 */
++ if (rrd->rra_def[i].pdp_cnt == 0)
++ {
++ rrd_set_error("Invalid step: must be greater than 0.");
++ rrd_free(rrd);
++ fclose(rrd_file);
++ return(-1);
++ }
+ /* startup missing pdp count */
+ rrd->cdp_prep->scratch[CDP_unkn_pdp_cnt].u_cnt =
+ ((rrd->live_head->last_up -
diff --git a/debian/patches/bts493553-pango-utf-8 b/debian/patches/bts493553-pango-utf-8
--- /dev/null
@@ -0,0 +1,34 @@
+diff a/src/rrd_gfx.c b/src/rrd_gfx.c
+--- a/src/rrd_gfx.c
++++ b/src/rrd_gfx.c
+@@ -133,6 +133,8 @@ static PangoLayout *gfx_prep_text(
+ long tab_shift = fmod(x, tabwidth);
+ int border = im->text_prop[TEXT_PROP_LEGEND].size * 2.0;
+
++ gchar *utf8_text;
++
+ PangoTabArray *tab_array;
+ PangoContext *pango_context;
+
+@@ -156,10 +158,19 @@ static PangoLayout *gfx_prep_text(
+ font_desc = pango_font_description_from_string(font);
+ pango_font_description_set_size(font_desc, size * PANGO_SCALE);
+ pango_layout_set_font_description(layout, font_desc);
++
++ /* pango expects the string to be utf-8 encoded */
++ utf8_text = g_locale_to_utf8((const gchar *)text, -1, NULL, NULL, NULL);
++
++ /* In case of an error, i.e. utf8_text == NULL (locale settings messed
++ * up?), we fall back to a possible "invalid UTF-8 string" warning instead
++ * of provoking a failed assertion in libpango. */
+ if (im->with_markup)
+- pango_layout_set_markup(layout, text, -1);
++ pango_layout_set_markup(layout, utf8_text ? utf8_text : text, -1);
+ else
+- pango_layout_set_text(layout, text, -1);
++ pango_layout_set_text(layout, utf8_text ? utf8_text : text, -1);
++
++ g_free(utf8_text);
+ return layout;
+ }
+
diff --git a/debian/patches/bts496847-error-handling b/debian/patches/bts496847-error-handling
--- /dev/null
@@ -0,0 +1,79 @@
+diff a/src/rrd_tool.c b/src/rrd_tool.c
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -424,11 +424,8 @@ int main(
+ == 0) {
+
+ #ifdef HAVE_CHROOT
+- chroot(argv[2]);
+- if (errno != 0) {
+- fprintf(stderr,
+- "ERROR: can't change root to '%s' errno=%d\n",
+- argv[2], errno);
++ if (chroot(argv[2]) != 0){
++ fprintf(stderr, "ERROR: chroot %s: %s\n", argv[2],rrd_strerror(errno));
+ exit(errno);
+ }
+ ChangeRoot = 1;
+@@ -444,9 +441,8 @@ int main(
+ }
+ }
+ if (strcmp(firstdir, "")) {
+- chdir(firstdir);
+- if (errno != 0) {
+- fprintf(stderr, "ERROR: %s\n", rrd_strerror(errno));
++ if (chdir(firstdir) != 0){
++ fprintf(stderr, "ERROR: chdir %s %s\n", firstdir,rrd_strerror(errno));
+ exit(errno);
+ }
+ }
+@@ -520,7 +516,6 @@ int HandleInputLine(
+
+ /* Reset errno to 0 before we start.
+ */
+- errno = 0;
+ if (RemoteMode) {
+ if (argc > 1 && strcmp("quit", argv[1]) == 0) {
+ if (argc > 2) {
+@@ -543,9 +538,8 @@ int HandleInputLine(
+ return (1);
+ }
+ #endif
+- chdir(argv[2]);
+- if (errno != 0) {
+- printf("ERROR: %s\n", rrd_strerror(errno));
++ if (chdir(argv[2]) != 0){
++ printf("ERROR: chdir %s %s\n", argv[2], rrd_strerror(errno));
+ return (1);
+ }
+ return (0);
+@@ -557,7 +551,7 @@ int HandleInputLine(
+ }
+ cwd = getcwd(NULL, MAXPATH);
+ if (cwd == NULL) {
+- printf("ERROR: %s\n", rrd_strerror(errno));
++ printf("ERROR: getcwd %s\n", rrd_strerror(errno));
+ return (1);
+ }
+ printf("%s\n", cwd);
+@@ -577,9 +571,8 @@ int HandleInputLine(
+ return (1);
+ }
+ #endif
+- mkdir(argv[2], 0777);
+- if (errno != 0) {
+- printf("ERROR: %s\n", rrd_strerror(errno));
++ if(mkdir(argv[2], 0777)!=0){
++ printf("ERROR: mkdir %s: %s\n", argv[2],rrd_strerror(errno));
+ return (1);
+ }
+ return (0);
+@@ -607,7 +600,7 @@ int HandleInputLine(
+ }
+ closedir(curdir);
+ } else {
+- printf("ERROR: %s\n", rrd_strerror(errno));
++ printf("ERROR: opendir .: %s\n", rrd_strerror(errno));
+ return (errno);
+ }
+ return (0);
diff --git a/debian/patches/bts498183-segfault-madvise b/debian/patches/bts498183-segfault-madvise
--- /dev/null
@@ -0,0 +1,21 @@
+diff a/src/rrd_open.c b/src/rrd_open.c
+--- a/src/rrd_open.c
++++ b/src/rrd_open.c
+@@ -363,6 +363,8 @@ void rrd_dontneed(
+ rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
+ sizeof(rrd_value_t);
+ }
++
++ if (dontneed_start < rrd_file->file_len) {
+ #ifdef USE_MADVISE
+ madvise(rrd_file->file_start + dontneed_start,
+ rrd_file->file_len - dontneed_start, MADV_DONTNEED);
+@@ -371,6 +373,8 @@ void rrd_dontneed(
+ posix_fadvise(rrd_file->fd, dontneed_start,
+ rrd_file->file_len - dontneed_start, POSIX_FADV_DONTNEED);
+ #endif
++ }
++
+ #if defined DEBUG && DEBUG > 1
+ mincore_print(rrd_file, "after");
+ #endif
diff --git a/debian/patches/bts499349-memleaks b/debian/patches/bts499349-memleaks
--- /dev/null
@@ -0,0 +1,369 @@
+diff a/src/rrd_create.c b/src/rrd_create.c
+--- a/src/rrd_create.c
++++ b/src/rrd_create.c
+@@ -27,6 +27,9 @@ void parseGENERIC_DS(
+ long int rra_random_row(
+ rra_def_t *);
+
++static void rrd_free2(
++ rrd_t *rrd); /* our onwn copy, immmune to mmap */
++
+ int rrd_create(
+ int argc,
+ char **argv)
+@@ -125,15 +128,14 @@ int rrd_create_r(
+ /* static header */
+ if ((rrd.stat_head = calloc(1, sizeof(stat_head_t))) == NULL) {
+ rrd_set_error("allocating rrd.stat_head");
+- free(rrd.stat_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+
+ /* live header */
+ if ((rrd.live_head = calloc(1, sizeof(live_head_t))) == NULL) {
+ rrd_set_error("allocating rrd.live_head");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+
+@@ -166,8 +168,7 @@ int rrd_create_r(
+ old_size + sizeof(ds_def_t))) ==
+ NULL) {
+ rrd_set_error("allocating rrd.ds_def");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+ memset(&rrd.ds_def[rrd.stat_head->ds_cnt], 0, sizeof(ds_def_t));
+@@ -199,8 +200,7 @@ int rrd_create_r(
+ rrd_set_error("invalid DS format");
+ }
+ if (rrd_test_error()) {
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return -1;
+ }
+
+@@ -223,8 +223,7 @@ int rrd_create_r(
+ }
+
+ if (rrd_test_error()) {
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return -1;
+ }
+ rrd.stat_head->ds_cnt++;
+@@ -238,8 +237,7 @@ int rrd_create_r(
+ old_size + sizeof(rra_def_t))) ==
+ NULL) {
+ rrd_set_error("allocating rrd.rra_def");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+ memset(&rrd.rra_def[rrd.stat_head->rra_cnt], 0,
+@@ -496,8 +494,7 @@ int rrd_create_r(
+ if (rrd_test_error()) {
+ /* all errors are unrecoverable */
+ free(argvcopy);
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+ token = strtok_r(NULL, ":", &tokptr);
+@@ -524,16 +521,14 @@ int rrd_create_r(
+ if (create_hw_contingent_rras(&rrd, period, hashed_name) ==
+ -1) {
+ rrd_set_error("creating contingent RRA");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return -1;
+ }
+ }
+ rrd.stat_head->rra_cnt++;
+ } else {
+ rrd_set_error("can't parse argument '%s'", argv[i]);
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return -1;
+ }
+ }
+@@ -541,15 +536,13 @@ int rrd_create_r(
+
+ if (rrd.stat_head->rra_cnt < 1) {
+ rrd_set_error("you must define at least one Round Robin Archive");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+
+ if (rrd.stat_head->ds_cnt < 1) {
+ rrd_set_error("you must define at least one Data Source");
+- free(rrd.stat_head);
+- free(rrd.live_head);
++ rrd_free2(&rrd);
+ return (-1);
+ }
+ return rrd_create_fn(filename, &rrd);
+@@ -618,6 +611,7 @@ int create_hw_contingent_rras(
+ if ((rrd->rra_def = rrd_realloc(rrd->rra_def,
+ old_size + 4 * sizeof(rra_def_t))) ==
+ NULL) {
++ rrd_free2(rrd);
+ rrd_set_error("allocating rrd.rra_def");
+ return (-1);
+ }
+@@ -682,15 +676,15 @@ int rrd_create_fn(
+ int unkn_cnt;
+ rrd_file_t *rrd_file_dn;
+ rrd_t rrd_dn;
+- unsigned flags = O_WRONLY | O_CREAT | O_TRUNC;
++ unsigned flags = O_WRONLY | O_CREAT | O_TRUNC;
++
+ #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
+ flags |= O_BINARY;
+ #endif
+
+ if ((rrd_file = open(file_name, flags, 0666)) < 0) {
+ rrd_set_error("creating '%s': %s", file_name, rrd_strerror(errno));
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ return (-1);
+ }
+
+@@ -705,8 +699,7 @@ int rrd_create_fn(
+
+ if ((rrd->pdp_prep = calloc(1, sizeof(pdp_prep_t))) == NULL) {
+ rrd_set_error("allocating pdp_prep");
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ close(rrd_file);
+ return (-1);
+ }
+@@ -722,8 +715,7 @@ int rrd_create_fn(
+
+ if ((rrd->cdp_prep = calloc(1, sizeof(cdp_prep_t))) == NULL) {
+ rrd_set_error("allocating cdp_prep");
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ close(rrd_file);
+ return (-1);
+ }
+@@ -770,8 +762,7 @@ int rrd_create_fn(
+
+ if ((rrd->rra_ptr = calloc(1, sizeof(rra_ptr_t))) == NULL) {
+ rrd_set_error("allocating rra_ptr");
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ close(rrd_file);
+ return (-1);
+ }
+@@ -788,8 +779,7 @@ int rrd_create_fn(
+ /* write the empty data area */
+ if ((unknown = (rrd_value_t *) malloc(512 * sizeof(rrd_value_t))) == NULL) {
+ rrd_set_error("allocating unknown");
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ close(rrd_file);
+ return (-1);
+ }
+@@ -807,8 +797,7 @@ int rrd_create_fn(
+ }
+ free(unknown);
+ fdatasync(rrd_file);
+- free(rrd->stat_head);
+- free(rrd->live_head);
++ rrd_free2(rrd);
+ if (close(rrd_file) == -1) {
+ rrd_set_error("creating rrd: %s", rrd_strerror(errno));
+ return -1;
+@@ -821,6 +810,20 @@ int rrd_create_fn(
+ return (0);
+ }
+
++
++static void rrd_free2(
++ rrd_t *rrd)
++{
++ free(rrd->live_head);
++ free(rrd->stat_head);
++ free(rrd->ds_def);
++ free(rrd->rra_def);
++ free(rrd->rra_ptr);
++ free(rrd->pdp_prep);
++ free(rrd->cdp_prep);
++ free(rrd->rrd_value);
++}
++
+ static int rand_init = 0;
+
+ long int rra_random_row(
+diff a/src/rrd_tool.c b/src/rrd_tool.c
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -364,6 +364,7 @@ static char *fgetslong(
+ return *aLinePtr = linebuf;
+ bufsize += MAX_LENGTH;
+ if (!(linebuf = realloc(linebuf, bufsize))) {
++ free(linebuf);
+ perror("fgetslong: realloc");
+ exit(1);
+ }
+@@ -448,6 +449,7 @@ int main(
+
+ while (fgetslong(&aLine, stdin)) {
+ if ((argc = CountArgs(aLine)) == 0) {
++ free(aLine);
+ printf("ERROR: not enough arguments\n");
+ }
+ if ((myargv = (char **) malloc((argc + 1) *
+@@ -456,6 +458,8 @@ int main(
+ exit(1);
+ }
+ if ((argc = CreateArgs(argv[0], aLine, argc, myargv)) < 0) {
++ free(aLine);
++ free(myargv);
+ printf("ERROR: creating arguments\n");
+ } else {
+ int ret = HandleInputLine(argc, myargv, stdout);
+diff a/src/rrd_graph.c b/src/rrd_graph.c
+--- a/src/rrd_graph.c
++++ b/src/rrd_graph.c
+@@ -3059,6 +3059,7 @@ int graph_paint(
+ (im->surface, CAIRO_SVG_VERSION_1_1);
+ break;
+ };
++ cairo_destroy(im->cr);
+ im->cr = cairo_create(im->surface);
+ cairo_set_antialias(im->cr, im->graph_antialias);
+ cairo_scale(im->cr, im->zoom, im->zoom);
+diff a/src/rrd_gfx.c b/src/rrd_gfx.c
+--- a/src/rrd_gfx.c
++++ b/src/rrd_gfx.c
+@@ -158,10 +158,11 @@ static PangoLayout *gfx_prep_text(
+ /* pango_cairo_update_context(cr, pango_context); */
+
+ pango_layout_set_tabs(layout, tab_array);
++ pango_tab_array_free(tab_array);
+ font_desc = pango_font_description_from_string(font);
+ pango_font_description_set_size(font_desc, size * PANGO_SCALE);
+ pango_layout_set_font_description(layout, font_desc);
+-
++ pango_font_description_free(font_desc);
+ /* pango expects the string to be utf-8 encoded */
+ utf8_text = g_locale_to_utf8((const gchar *) text, -1, NULL, NULL, NULL);
+
+@@ -191,7 +192,6 @@ double gfx_get_text_width(
+ gfx_color_t color = { 0, 0, 0, 0 };
+ layout = gfx_prep_text(im, start, color, font, size, tabwidth, text);
+ pango_layout_get_pixel_extents(layout, NULL, &log_rect);
+- pango_tab_array_free(pango_layout_get_tabs(layout));
+ g_object_unref(layout);
+ return log_rect.width;
+ }
+@@ -252,7 +252,6 @@ void gfx_text(
+ pango_cairo_update_layout(cr, layout);
+ cairo_move_to(cr, sx, sy);
+ pango_cairo_show_layout(cr, layout);
+- pango_tab_array_free(pango_layout_get_tabs(layout));
+ g_object_unref(layout);
+ cairo_restore(cr);
+
+diff a/src/rrd_tool.c b/src/rrd_tool.c
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -369,7 +369,11 @@ static char *fgetslong(
+ exit(1);
+ }
+ }
+- return *aLinePtr = linebuf[0] ? linebuf : 0;
++ if (linebuf[0]){
++ return *aLinePtr = linebuf;
++ }
++ free(linebuf);
++ return *aLinePtr = 0;
+ }
+
+ int main(
+diff a/bindings/perl-shared/RRDs.xs b/bindings/perl-shared/RRDs.xs
+--- a/bindings/perl-shared/RRDs.xs
++++ b/bindings/perl-shared/RRDs.xs
+@@ -78,8 +78,8 @@ extern "C" {
+ free(argv); \
+ if (rrd_test_error()) XSRETURN_UNDEF; \
+ hash = newHV(); \
++ save=data; \
+ while (data) { \
+- save=data; \
+ /* the newSV will get copied by hv so we create it as a mortal \
+ to make sure it does not keep hanging round after the fact */ \
+ switch (data->type) { \
+@@ -97,18 +97,14 @@ extern "C" {
+ break; \
+ case RD_I_STR: \
+ hvs(newSVpv(data->value.u_str,0)); \
+- rrd_freemem(data->value.u_str); \
+ break; \
+ case RD_I_BLO: \
+ hvs(newSVpv(data->value.u_blo.ptr,data->value.u_blo.size)); \
+- rrd_freemem(data->value.u_blo.ptr); \
+ break; \
+ } \
+- rrd_freemem(data->key); \
+ data = data->next; \
+- rrd_freemem(save); \
+- } \
+- rrd_freemem(data); \
++ } \
++ rrd_info_free(save); \
+ RETVAL = newRV_noinc((SV*)hash);
+
+ /*
+diff a/bindings/ruby/main.c b/bindings/ruby/main.c
+--- a/bindings/ruby/main.c
++++ b/bindings/ruby/main.c
+@@ -155,6 +155,7 @@ VALUE rb_rrd_infocall(
+
+ RRD_CHECK_ERROR result = rb_hash_new();
+
++ p = data;
+ while (data) {
+ VALUE key = rb_str_new2(data->key);
+
+@@ -171,19 +172,16 @@ VALUE rb_rrd_infocall(
+ break;
+ case RD_I_STR:
+ rb_hash_aset(result, key, rb_str_new2(data->value.u_str));
+- rrd_freemem(data->value.u_str);
+ break;
+ case RD_I_BLO:
+ rb_hash_aset(result, key,
+ rb_str_new(data->value.u_blo.ptr,
+ data->value.u_blo.size));
+- rrd_freemem(data->value.u_blo.ptr);
+ break;
+ }
+- p = data;
+ data = data->next;
+- rrd_freemem(p);
+ }
++ rrd_info_free(p);
+ return result;
+ }
+
diff --git a/debian/patches/bts499350-data-corruption b/debian/patches/bts499350-data-corruption
--- /dev/null
@@ -0,0 +1,158 @@
+diff a/src/rrd_update.c b/src/rrd_update.c
+--- a/src/rrd_update.c
++++ b/src/rrd_update.c
+@@ -780,12 +780,10 @@ static int process_arg(
+ }
+ /* seek to the beginning of the rra's */
+ if (*rra_current != rra_begin) {
+-#ifndef HAVE_MMAP
+ if (rrd_seek(rrd_file, rra_begin, SEEK_SET) != 0) {
+ rrd_set_error("seek error in rrd");
+ return -1;
+ }
+-#endif
+ *rra_current = rra_begin;
+ }
+ rra_start = rra_begin;
+@@ -1868,95 +1866,70 @@ static int write_to_rras(
+ {
+ unsigned long rra_idx;
+ unsigned long rra_start;
+- unsigned long rra_pos_tmp; /* temporary byte pointer. */
+ time_t rra_time = 0; /* time of update for a RRA */
+
++ unsigned long ds_cnt = rrd->stat_head->ds_cnt;
++
+ /* Ready to write to disk */
+ rra_start = rra_begin;
++
+ for (rra_idx = 0; rra_idx < rrd->stat_head->rra_cnt; rra_idx++) {
+- /* skip unless there's something to write */
+- if (rra_step_cnt[rra_idx]) {
+- /* write the first row */
++ rra_def_t *rra_def = &rrd->rra_def[rra_idx];
++ rra_ptr_t *rra_ptr = &rrd->rra_ptr[rra_idx];
++
++ /* for cdp_prep */
++ unsigned short scratch_idx;
++ unsigned long step_subtract;
++
++ for (scratch_idx = CDP_primary_val,
++ step_subtract = 1;
++ rra_step_cnt[rra_idx] > 0;
++ rra_step_cnt[rra_idx]--,
++ scratch_idx = CDP_secondary_val,
++ step_subtract = 2) {
++
++ unsigned long rra_pos_new;
+ #ifdef DEBUG
+ fprintf(stderr, " -- RRA Preseek %ld\n", rrd_file->pos);
+ #endif
+- rrd->rra_ptr[rra_idx].cur_row++;
+- if (rrd->rra_ptr[rra_idx].cur_row >=
+- rrd->rra_def[rra_idx].row_cnt)
+- rrd->rra_ptr[rra_idx].cur_row = 0; /* wrap around */
+- /* position on the first row */
+- rra_pos_tmp = rra_start +
+- (rrd->stat_head->ds_cnt) * (rrd->rra_ptr[rra_idx].cur_row) *
+- sizeof(rrd_value_t);
+- if (rra_pos_tmp != *rra_current) {
+- if (rrd_seek(rrd_file, rra_pos_tmp, SEEK_SET) != 0) {
++ /* increment, with wrap-around */
++ if (++rra_ptr->cur_row >= rra_def->row_cnt)
++ rra_ptr->cur_row = 0;
++
++ /* we know what our position should be */
++ rra_pos_new = rra_start
++ + ds_cnt * rra_ptr->cur_row * sizeof(rrd_value_t);
++
++ /* re-seek if the position is wrong or we wrapped around */
++ if (rra_pos_new != *rra_current || rra_ptr->cur_row == 0) {
++ if (rrd_seek(rrd_file, rra_pos_new, SEEK_SET) != 0) {
+ rrd_set_error("seek error in rrd");
+ return -1;
+ }
+- *rra_current = rra_pos_tmp;
++ *rra_current = rra_pos_new;
+ }
+ #ifdef DEBUG
+ fprintf(stderr, " -- RRA Postseek %ld\n", rrd_file->pos);
+ #endif
+- if (!skip_update[rra_idx]) {
+- if (*pcdp_summary != NULL) {
+- rra_time = (current_time - current_time
+- % (rrd->rra_def[rra_idx].pdp_cnt *
+- rrd->stat_head->pdp_step))
+- -
+- ((rra_step_cnt[rra_idx] -
+- 1) * rrd->rra_def[rra_idx].pdp_cnt *
+- rrd->stat_head->pdp_step);
+- }
+- if (write_RRA_row
+- (rrd_file, rrd, rra_idx, rra_current, CDP_primary_val,
+- pcdp_summary, rra_time) == -1)
+- return -1;
+- }
+
+- /* write other rows of the bulk update, if any */
+- for (; rra_step_cnt[rra_idx] > 1; rra_step_cnt[rra_idx]--) {
+- if (++rrd->rra_ptr[rra_idx].cur_row ==
+- rrd->rra_def[rra_idx].row_cnt) {
+-#ifdef DEBUG
+- fprintf(stderr,
+- "Wraparound for RRA %s, %lu updates left\n",
+- rrd->rra_def[rra_idx].cf_nam,
+- rra_step_cnt[rra_idx] - 1);
+-#endif
+- /* wrap */
+- rrd->rra_ptr[rra_idx].cur_row = 0;
+- /* seek back to beginning of current rra */
+- if (rrd_seek(rrd_file, rra_start, SEEK_SET) != 0) {
+- rrd_set_error("seek error in rrd");
+- return -1;
+- }
+-#ifdef DEBUG
+- fprintf(stderr, " -- Wraparound Postseek %ld\n",
+- rrd_file->pos);
+-#endif
+- *rra_current = rra_start;
+- }
+- if (!skip_update[rra_idx]) {
+- if (*pcdp_summary != NULL) {
+- rra_time = (current_time - current_time
+- % (rrd->rra_def[rra_idx].pdp_cnt *
+- rrd->stat_head->pdp_step))
+- -
+- ((rra_step_cnt[rra_idx] -
+- 2) * rrd->rra_def[rra_idx].pdp_cnt *
+- rrd->stat_head->pdp_step);
+- }
+- if (write_RRA_row(rrd_file, rrd, rra_idx, rra_current,
+- CDP_secondary_val, pcdp_summary,
+- rra_time) == -1)
+- return -1;
+- }
++ if (skip_update[rra_idx])
++ continue;
++
++ if (*pcdp_summary != NULL) {
++ unsigned long step_time = rra_def->pdp_cnt * rrd->stat_head->pdp_step;
++
++ rra_time = (current_time - current_time % step_time)
++ - ((rra_step_cnt[rra_idx] - step_subtract) * step_time);
+ }
++
++ if (write_RRA_row
++ (rrd_file, rrd, rra_idx, rra_current, scratch_idx,
++ pcdp_summary, rra_time) == -1)
++ return -1;
+ }
+- rra_start += rrd->rra_def[rra_idx].row_cnt * rrd->stat_head->ds_cnt *
+- sizeof(rrd_value_t);
+- } /* RRA LOOP */
++
++ rra_start += rra_def->row_cnt * ds_cnt * sizeof(rrd_value_t);
++ } /* RRA LOOP */
+
+ return 0;
+ }
diff --git a/debian/patches/implicit-decl-fix b/debian/patches/implicit-decl-fix
--- /dev/null
@@ -0,0 +1,12 @@
+diff a/src/rrd_tool.c b/src/rrd_tool.c
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -12,6 +12,8 @@
+ #endif
+ #endif
+
++#include <unistd.h>
++
+ #include "rrd_tool.h"
+ #include "rrd_xport.h"
+ #include "rrd_i18n.h"
diff --git a/debian/patches/no-rpath-for-perl b/debian/patches/no-rpath-for-perl
--- /dev/null
@@ -0,0 +1,31 @@
+Index: pkg-rrdtool/bindings/perl-shared/Makefile.PL
+===================================================================
+--- pkg-rrdtool.orig/bindings/perl-shared/Makefile.PL 2008-02-10 15:31:58.000000000 +0100
++++ pkg-rrdtool/bindings/perl-shared/Makefile.PL 2008-02-10 15:34:16.000000000 +0100
+@@ -3,26 +3,7 @@
+ # See lib/ExtUtils/MakeMaker.pm for details of how to influence
+ # the contents of the Makefile that is written.
+
+-# if the last argument when calling Makefile.PL is RPATH=/... and ... is the
+-# path to librrd.so then the Makefile will be written such that RRDs.so knows
+-# where to find librrd.so later on ...
+ my $R="";
+-if ($ARGV[-1] =~ /RPATH=(\S+)/){
+- pop @ARGV;
+- my $rp = $1;
+- for ($^O){
+- /linux/ && do{ $R = "-Wl,--rpath -Wl,$rp"};
+- /hpux/ && do{ $R = "+b$rp"};
+- /solaris/ && do{ $R = "-R$rp"};
+- /aix/ && do{ $R = "-Wl,-blibpath:$rp"};
+- }
+-}
+-
+-# darwin works without this because librrd contains its
+-# install_name which will includes the final location of the
+-# library after it is installed. This install_name gets transfered
+-# to the perl shared object.
+-
+ my $librrd = "-L../../src/.libs/ $R -lrrd";
+
+ WriteMakefile(
diff --git a/debian/patches/no-rpath-for-ruby b/debian/patches/no-rpath-for-ruby
--- /dev/null
@@ -0,0 +1,15 @@
+Index: rrdtool/bindings/ruby/extconf.rb
+===================================================================
+--- rrdtool.orig/bindings/ruby/extconf.rb 2008-02-10 14:43:00.000000000 +0100
++++ rrdtool/bindings/ruby/extconf.rb 2008-02-10 14:43:08.000000000 +0100
+@@ -3,9 +3,7 @@
+
+ require 'mkmf'
+
+-if /linux/ =~ RUBY_PLATFORM
+- $LDFLAGS += '-Wl,--rpath -Wl,$(EPREFIX)/lib'
+-elsif /solaris/ =~ RUBY_PLATFORM
++if /solaris/ =~ RUBY_PLATFORM
+ $LDFLAGS += '-R$(EPREFIX)/lib'
+ elsif /hpux/ =~ RUBY_PLATFORM
+ $LDFLAGS += '+b$(EPREFIX)/lib'
diff --git a/debian/patches/series b/debian/patches/series
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,11 @@
+bts428778-floating-point-exception
+bts493553-pango-utf-8
+setup.py-module-name
+no-rpath-for-ruby
+no-rpath-for-perl
+implicit-decl-fix
+bts499350-data-corruption
+bts498183-segfault-madvise
+bts496847-error-handling
+bts499349-memleaks
+typo-ruby
diff --git a/debian/patches/setup.py-module-name b/debian/patches/setup.py-module-name
--- /dev/null
@@ -0,0 +1,13 @@
+Index: rrdtool/bindings/python/setup.py
+===================================================================
+--- rrdtool.orig/bindings/python/setup.py 2008-02-09 22:23:06.000000000 +0100
++++ rrdtool/bindings/python/setup.py 2008-02-09 22:23:47.000000000 +0100
+@@ -45,7 +45,7 @@
+ #packages = ['rrdtool'],
+ ext_modules = [
+ Extension(
+- "rrdtoolmodule",
++ "rrdtool",
+ ["rrdtoolmodule.c"],
+ libraries=['rrd'],
+ library_dirs=[library_dir],
diff --git a/debian/patches/typo-ruby b/debian/patches/typo-ruby
--- /dev/null
+++ b/debian/patches/typo-ruby
@@ -0,0 +1,28 @@
+diff a/bindings/ruby/main.c b/bindings/ruby/main.c
+--- a/bindings/ruby/main.c
++++ b/bindings/ruby/main.c
+@@ -191,21 +191,21 @@ VALUE rb_rrd_info(
+ VALUE self,
+ VALUE args)
+ {
+- return rrd_infocall(rrd_info, args);
++ return rb_rrd_infocall(rrd_info, args);
+ }
+
+ VALUE rb_rrd_updatev(
+ VALUE self,
+ VALUE args)
+ {
+- return rrd_infocall(rrd_update_v, args);
++ return rb_rrd_infocall(rrd_update_v, args);
+ }
+
+ VALUE rb_rrd_graphv(
+ VALUE self,
+ VALUE args)
+ {
+- return rrd_infocall(rrd_graph_v, args);
++ return rb_rrd_infocall(rrd_graph_v, args);
+ }
+
+
diff --git a/debian/pyversions b/debian/pyversions
--- /dev/null
+++ b/debian/pyversions
@@ -0,0 +1 @@
+2.3-
diff --git a/debian/rrdtool-tcl.dirs b/debian/rrdtool-tcl.dirs
--- /dev/null
+++ b/debian/rrdtool-tcl.dirs
@@ -0,0 +1 @@
+usr/lib/tcltk/rrdtool-tcl/
diff --git a/debian/rrdtool-tcl.install b/debian/rrdtool-tcl.install
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/tcl* usr/lib/tcltk/rrdtool-tcl/
+usr/lib/rrdtool/pkgIndex.tcl usr/lib/tcltk/rrdtool-tcl/
diff --git a/debian/rrdtool.examples b/debian/rrdtool.examples
--- /dev/null
+++ b/debian/rrdtool.examples
@@ -0,0 +1,3 @@
+debian/tmp/usr/share/rrdtool/examples/*
+bindings/ruby/test.rb
+bindings/tcl/ifOctets.tcl
diff --git a/debian/rrdtool.install b/debian/rrdtool.install
--- /dev/null
+++ b/debian/rrdtool.install
@@ -0,0 +1,3 @@
+usr/share/doc/rrdtool
+usr/bin
+usr/share/man/man1
diff --git a/debian/rules b/debian/rules
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,214 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+#we use quilt
+include /usr/share/quilt/quilt.make
+
+
+#Ruby versions to build for
+RUBY_VERS := 1.8 1.9
+RUBY_DEFAULT_VERS := 1.8
+
+#Python versions to build for. The work-around-doko way.
+PY_VERS := $(shell set -e; \
+ for py in `pysupport-parseversions debian/pyversions`; do \
+ if [ -x /usr/bin/python$$py ]; then echo $$py; fi; \
+ done)
+
+#tcl version we're building for
+TCL_VERS := $(shell dpkg -s tcl-dev | grep '^Depends' \
+ | sed 's,.*\<tcl\([0-9.]*\)-dev\>.*,\1,')
+
+
+#let's help configure to figure out our host/build system
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+ CONFFLAGS += --build $(DEB_HOST_GNU_TYPE)
+else
+ CONFFLAGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
+endif
+
+#we build the bindings manually from debian/rules
+CONFFLAGS += --disable-python --disable-ruby
+
+#set the right paths
+CONFFLAGS += --prefix=/usr --docdir=/usr/share/doc/rrdtool
+
+#install perl libs in vendor mode
+CONFFLAGS += --with-perl-options=INSTALLDIRS=vendor
+
+#path to tcl
+CONFFLAGS += --with-tcllib=/usr/lib/tcl$(TCL_VERS)
+
+#let's take care of optimization + debug builds
+CFLAGS += -Wall -g
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+#don't optimize on arm for now - #447041
+ifneq ($(DEB_HOST_GNU_TYPE), arm)
+ CFLAGS += -O2
+endif
+endif
+
+# work-around for a broken dpkg - do not rename this to LDFLAGS :-/
+LINKER_FLAGS=-Wl,-z,defs
+
+configure: config.status
+config.status: $(QUILT_STAMPFN)
+
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+
+ LDFLAGS="$(LINKER_FLAGS)" \
+ CFLAGS="$(CFLAGS)" \
+ RRDDOCDIR=/usr/share/doc/rrdtool \
+ ./configure $(CONFFLAGS)
+
+build: build-arch build-indep
+
+build-arch: build-arch-stamp $(PY_VERS:%=build-python%)
+build-arch-stamp: config.status
+ make
+ #Fix library path to tcl bindings
+ sed -i -e 's|lib/|lib/tcltk/rrdtool-tcl/|' bindings/tcl/pkgIndex.tcl
+ #sanity check if debian/control lists the right package name
+ LIB_major=`grep '^dlname=' src/librrd.la \
+ | sed -e "s/^dlname='librrd\.so\.\\([0-9]\+\\)'\$$/\\1/"` \
+ && test -n "$$LIB_major" \
+ && grep -q "^Package: librrd$$LIB_major\\>" debian/control
+ touch $@
+
+build-python%: build-arch-stamp
+ set -e ;\
+ cd bindings/python ;\
+ BUILDLIBDIR=../../src/.libs LIBDIR=../../src/.libs python$* setup.py build
+ touch $@
+
+build-indep: build-arch-stamp
+ #indep stuff is built in build-arch-stamp, too.
+
+clean: clean-patched
+clean-patched: unpatch $(PY_VERS:%=clean-python%)
+ dh_testdir
+ dh_testroot
+
+ [ ! -f Makefile ] || make distclean
+
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ rm -f config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ rm -f config.guess
+endif
+ rm -f build-arch-stamp build-indep-stamp config.status install-common-stamp
+ find . -name \*.pyc | xargs rm -f
+ rm -rf bindings/python/build
+
+ #clean what the Makefiles do not clean....
+ rm -rf bindings/perl-piped/blib bindings/perl-shared/blib \
+ bindings/perl-piped/Makefile.old bindings/perl-shared/Makefile.old
+ rm -f bindings/tcl/pkgIndex.tcl bindings/tcl/tclrrd*.so
+ rm -f examples/cgi-demo.cgi
+ rm -rf src/.libs src/.deps doc/*.html doc/*.1 doc/*.txt
+ rm -f intltool-extract intltool-merge intltool-update
+
+ dh_clean
+
+clean-python%: unpatch
+ set -e ;\
+ cd bindings/python ;\
+ python$* setup.py clean
+ rm -f build-python$*
+
+
+install: install-arch install-indep
+
+install-indep: build-indep install-common-stamp
+ #nothing to do
+
+install-common-stamp: build-arch-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+
+ make install DESTDIR=$(CURDIR)/debian/tmp
+ dh_install --sourcedir=$(CURDIR)/debian/tmp --list-missing
+
+ touch $@
+
+install-arch: install-common-stamp $(PY_VERS:%=install-python%)
+ #build and install ruby
+ set -e; \
+ cd bindings/ruby ;\
+ for rbv in $(RUBY_VERS); do \
+ ruby$$rbv extconf.rb ;\
+ make ;\
+ make install sitelibdir=$(CURDIR)/debian/librrd-ruby$$rbv`ruby$$rbv -r rbconfig -e 'print Config::CONFIG["rubylibdir"]'` \
+ sitearchdir=$(CURDIR)/debian/librrd-ruby$$rbv`ruby$$rbv -r rbconfig -e 'print Config::CONFIG["archdir"]'` ;\
+ make distclean ;\
+ done
+
+ dh_installexamples -s
+
+install-python%: install-common-stamp
+ dh_testdir
+ dh_testroot
+ set -e ;\
+ cd bindings/python ;\
+ python$* setup.py install --root=$(CURDIR)/debian/python-rrdtool
+
+
+binary-indep: build-indep install-indep
+ dh_testdir
+ dh_testroot
+ dh_link -plibrrd-ruby /usr/share/doc/librrd-ruby$(RUBY_DEFAULT_VERS) /usr/share/doc/librrd-ruby
+ dh_link -ppython-rrd /usr/share/doc/python-rrdtool /usr/share/doc/python-rrd
+ dh_installchangelogs -i -Nlibrrd-ruby -Npython-rrd CHANGES
+ dh_installdocs -i -Nlibrrd-ruby -Npython-rrd -A CONTRIBUTORS NEWS
+ dh_link -i -Nlibrrd-ruby -Npython-rrd
+ echo 'rubydefault:Depends=librrd-ruby$(RUBY_DEFAULT_VERS)' >> debian/librrd-ruby.substvars
+ dh_perl -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+
+binary-arch: build-arch install-arch
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -a CHANGES
+ dh_installdocs -a -A CONTRIBUTORS NEWS
+ dh_installdocs -a
+ echo 'tcl:Depends=tcl$(TCL_VERS) | tclsh' >> debian/rrdtool-tcl.substvars
+ dh_pysupport -ppython-rrdtool
+ dh_perl -a
+ dh_installman -a
+ dh_link -a
+ dh_strip -a
+ dh_compress -a
+ dh_fixperms -a
+ dh_makeshlibs -a
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+
+binary: binary-arch binary-indep
+.PHONY: build clean configure \
+ binary-indep binary-arch binary \
+ install install-arch \
+ install-python% clean-python% unpatch
diff --git a/debian/watch b/debian/watch
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=2
+http://oss.oetiker.ch/rrdtool/pub/rrdtool-([\d\.]*)\.tar\.gz