From: Sebastian Harl Date: Sat, 20 Dec 2008 12:40:16 +0000 (+0100) Subject: Merge branch 'upstream' into experimental X-Git-Tag: debian/1.3.7-1~32 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=91345775ebb70f3899781018f95d78076f1e6f23;hp=be3cca08c4031f46d4e2b872ab0eb825c5b69b4e;p=pkg-rrdtool.git Merge branch 'upstream' into experimental --- diff --git a/debian/NEWS b/debian/NEWS new file mode 100644 index 0000000..2e41c87 --- /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 Fri, 26 Sep 2008 00:07:32 +0200 + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..d05956b --- /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 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 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 Wed, 30 Jul 2008 11:44:53 +0200 + +rrdtool (1.3.1-1) experimental; urgency=low + + * New upstream release. + + -- Sebastian Harl 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 24 Jul 2004 23:57:17 -0700 + +rrdtool (1.0.48-1) unstable; urgency=low + + * New upstream release (Closes: #256795) + + -- Matt Zimmerman 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 in rrd.h (Closes: #238849) + * Only link rrdcgi with -lcgi, not librrd + + -- Matt Zimmerman Fri, 19 Mar 2004 11:38:39 -0800 + +rrdtool (1.0.46-2) unstable; urgency=medium + + * Fix tcl module installation (Closes: #231171) + + -- Matt Zimmerman Wed, 4 Feb 2004 15:35:46 -0800 + +rrdtool (1.0.46-1) unstable; urgency=low + + * New upstream release + + -- Matt Zimmerman 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 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 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 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 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 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 Sun, 25 Aug 2002 17:29:41 -0400 + +rrdtool (1.0.39-1) unstable; urgency=low + + * New upstream release + + -- Matt Zimmerman Wed, 31 Jul 2002 00:40:00 -0400 + +rrdtool (1.0.38-1) unstable; urgency=low + + * New upstream release (Closes: #148486) + + -- Matt Zimmerman 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 Tue, 26 Mar 2002 17:15:01 -0500 + +rrdtool (1.0.35-1) unstable; urgency=low + + * New upstream release. + + -- Matt Zimmerman 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Wed, 1 Nov 2000 22:44:41 -0500 + +rrdtool (1.0.27-1) unstable; urgency=low + + * New upstream version. + + -- Matt Zimmerman Wed, 13 Sep 2000 13:10:14 -0400 + +rrdtool (1.0.26-1) unstable; urgency=low + + * New upstream version. + + -- Matt Zimmerman Sun, 10 Sep 2000 16:34:08 -0400 + +rrdtool (1.0.25-1) unstable; urgency=low + + * New upstream version. + + -- Matt Zimmerman 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 Fri, 7 Jul 2000 19:33:29 -0400 + +rrdtool (1.0.24-1) unstable; urgency=low + + * New upstream version (Closes: #61997). + + -- Matt Zimmerman 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 Wed, 26 Apr 2000 13:16:24 -0700 + +rrdtool (1.0.16-1) unstable; urgency=low + + * New upstream version. + * Not released. + + -- Matt Zimmerman 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 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 Thu, 23 Mar 2000 15:55:37 -0800 + +rrdtool (1.0.10-1) unstable; urgency=low + + * New upstream version. + + -- Matt Zimmerman Mon, 10 Jan 2000 16:46:33 -0800 + +rrdtool (1.0.7-3) unstable; urgency=low + + * Non-i386 fixes, thanks to Christopher C Chimelis : + * 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 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 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 Sat, 11 Sep 1999 13:29:29 -0700 + + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..1bcdd15 --- /dev/null +++ b/debian/control @@ -0,0 +1,186 @@ +Source: rrdtool +Section: utils +Priority: optional +Maintainer: Debian RRDtool Team +Uploaders: Sebastian Harl , Alexander Wirt , Bernd Zeimetz +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 new file mode 100644 index 0000000..15a1c69 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,297 @@ +Originally this package was debianized by Matt Zimmerman 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 on Wed, 06 Feb 2008 19:14:48 +0100 for the +RRDtool packaging team . + + +The upstream source was downloaded from: + http://oss.oetiker.ch/rrdtool/pub/ + +Upstream author: Tobias Oetiker + +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 + Contributors: Matthew W. Samsonoff + Brian E. Gallew + + 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 + + * 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 + + * doc/rpntutorial.pod: + + Author: Steve Rader + + * doc/rrdfirst.pod: + + Author: Burton Strauss + + * doc/rrdlast.pod: + + Author: Russ Wright + + * doc/rrdlastupdate.pod: + + Author: Andy Riebs + + * doc/rrdthreads.pod: + + Author: Peter Stamfest + + * doc/rrd-beginners.pod: + + Author: Ketan Patel + + + * 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 /\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 + + * 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 new file mode 100644 index 0000000..dccee1a --- /dev/null +++ b/debian/librrd-dev.install @@ -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 new file mode 100644 index 0000000..de5d277 --- /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 new file mode 100644 index 0000000..a0ef644 --- /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 new file mode 100644 index 0000000..873c61f --- /dev/null +++ b/debian/librrdp-perl.install @@ -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 new file mode 100644 index 0000000..ee9db42 --- /dev/null +++ b/debian/librrds-perl.install @@ -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 new file mode 100644 index 0000000..e03890b --- /dev/null +++ b/debian/patches/bts428778-floating-point-exception @@ -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 new file mode 100644 index 0000000..f016688 --- /dev/null +++ b/debian/patches/bts493553-pango-utf-8 @@ -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 new file mode 100644 index 0000000..34fc0c2 --- /dev/null +++ b/debian/patches/bts496847-error-handling @@ -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 new file mode 100644 index 0000000..b0697bf --- /dev/null +++ b/debian/patches/bts498183-segfault-madvise @@ -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 new file mode 100644 index 0000000..6b5bd77 --- /dev/null +++ b/debian/patches/bts499349-memleaks @@ -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 new file mode 100644 index 0000000..a2425e4 --- /dev/null +++ b/debian/patches/bts499350-data-corruption @@ -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 new file mode 100644 index 0000000..fc3d53b --- /dev/null +++ b/debian/patches/implicit-decl-fix @@ -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 ++ + #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 new file mode 100644 index 0000000..98eb989 --- /dev/null +++ b/debian/patches/no-rpath-for-perl @@ -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 new file mode 100644 index 0000000..3d98ba7 --- /dev/null +++ b/debian/patches/no-rpath-for-ruby @@ -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 new file mode 100644 index 0000000..9d1b116 --- /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 new file mode 100644 index 0000000..21e5398 --- /dev/null +++ b/debian/patches/setup.py-module-name @@ -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 new file mode 100644 index 0000000..d307248 --- /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 new file mode 100644 index 0000000..57a7586 --- /dev/null +++ b/debian/pyversions @@ -0,0 +1 @@ +2.3- diff --git a/debian/rrdtool-tcl.dirs b/debian/rrdtool-tcl.dirs new file mode 100644 index 0000000..c9b3824 --- /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 new file mode 100644 index 0000000..bdee4cb --- /dev/null +++ b/debian/rrdtool-tcl.install @@ -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 new file mode 100644 index 0000000..f28d0b2 --- /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 new file mode 100644 index 0000000..3af7d1e --- /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 new file mode 100755 index 0000000..d642464 --- /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,.*\.*,\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 new file mode 100644 index 0000000..c410628 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=2 +http://oss.oetiker.ch/rrdtool/pub/rrdtool-([\d\.]*)\.tar\.gz