From fb300431429d3d2daa46cb8da04a0facbcf96051f411f087e39c7dfbd8f51a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 4 Jan 2018 14:13:31 +0000 Subject: [PATCH 1/2] Accepting request 561648 from openSUSE:Factory:Staging:O - build bindings for Python 3 instead of Python 2 - Only move the lua bindings from /usr/local when needed: this was generally only a hack as our lua.pc 'forgot' to expose the variables INSTALL_CMOD. As lua is now being fixed, this hack is no longer needed (for compatibility with older/broken lua packages we keep it in place, but don't abort if the move failed). - Cleanup bit with spec-cleaner - Move all BR to the top so it is obvious what is needed for which part - Build with latest lua not 5.1 - Version update to 1.7.0: * Many coverity scan bugfixes * For full detailed log see CHANGES file - Add dependency on python-setuptools for python building - Implement shared library packaging guideline - Reduce %serivce_* calls, speed up find by using {}+ instead, rectify RPM groups, trim descriptions. - Abort package installation when user/group cannot be created. - Update to 1.6.0 Features * librrd is now fully thread-safe. librrd_th is gone * make lua bindings work with lua 5.1 * configure option to disable doc building --enable-docs=no * new CDEF function SMIN: a,b,c,3,SMIN -> min(a,b,c) * new CDEF function SMAX: a,b,c,3,SMAX -> max(a,b,c) * new CDEF function STDEV: a,b,c,3,STDEV -> stdev(a,b,c) * new CDEF function POW: a,b,POW -> a**b * new CDEF function PERCENT: a,b,c,95,3,PERCENT -> find 95percentile of a,b,c * re-introducted --showtime option on rrdxport * be more careful in determining the locales idea of first day of the week * lots of spelling fixes all around - Removed rrdtool-1.5.4-lua-5.2.patch as upstream already supports lua 5.2 since https://github.com/oetiker/rrdtool-1.x/commit/7af5f76227330504d4d16234488c1118d4409621 However, spec still requires explicitily lua51-devel (but lua52-devel also works) - librrd_th* references are gone - Patches refreshed - Update to 1.5.5 Bugfixes * fix JSON output in xport with legend and gprint blocks * fix parse_time mutex unlocking in the error case * don't crash on invalid variable names in CDEF * add mutex locking in rrdc_fetch * fix buffer overflow in rrd_restore * shorten test precision to 7 digits ... * never exit from a library function * buffer overflow in rrd_restore.c fixed #669 - Added rrdtool-1.5.4-lua-5.2.patch: lua >= 5.2 uses lua_callk - Update to 1.5.4 Bug Fixes * parse floating point numbers according to C locale in rrdtool create arguments, regardless of the systems locale setting. * include missing rrd_rados.h into distribution archive * make rrdtool work on ARM again * make rrdtool test suit pass on 32bit OSs * fix --grid-dash option regression in graph * fix systemd support * fix link dependency for libpng since we are using functions directly * fix python module name * fix rrdtool tune to accept U in minimum and maximum options * fi * rrd_parsetime now uses a mutex lock to become thread safe * rrd_xport is now thread safe * stop using MAX_PATH and make everything dynamic and make rrdtool work on Gnu HURD ... thanks nirgal! Features * new RPN operators: STEPWIDTH, NEWDAY, NEWWEEK, NEWMONTH and NEWWEEK together they allow to draw graphs where a rate is converted back to absolute numbers and accumulated over a period.. - Changelog 1.5.3 Bug Fixes * Brought commmand-line options and documentation back into sync. * Make LINE dashes option work again - Changelog 1.5.2 Bug Fixes * paramters in VDEF are vnames and not data source names, hence they can be 255 chars long and not only 20 - Changelog 1.5.1 Bug Fixes * parse numbers up to 40 characters long .. * fix install rules for Python and Lua * include missing VERSION and LICENSE file * unlink before rename in rrd_create when running on WIN32 - Changelog 1.5.0 New Features * automatic x-axis labels that work from 1s to 30y on a single chart * librados integration * new datasource types: DCOUNTER and DDERIVE (they work the same as the original DS, except that they can deal with floatingpoint numbers). * compile without graphics libraries: ./configure --disable-rrd_graph * updated windows port (see WIN32-BUILD-TIPS.txt) * single step RRAs for MIN,MAX,LAST are generated virtually from an AVERAGE RRA * ignore updates in the past with rrdtool update --skip-past-updates * ignore a LINE when scaling a chart using the skipscale option * detect 32bit timeoverflows * massive performance boost for charts with more than 100 DEF line by switching form a linear search to a HASH when searching for data * improved cross compilation support * .Net bindings * allow rrdtool graph to silently skip non-existing source files using the --use-nan-for-all-missing-data option * restore from a pipe (rrdtool restore - y.rrd) * in rrdtool create, row count and step can be defined in absolute time * all new "create on steroids" can pull both data and configuration from existing rrd files * use rrdtool graph to chart arbitrary data via a callback function for data fetching support is integrated in the perl bindings. * re-written parser for rrdtool graph commands. It now follows a simple key value pattern, compatible with the previous syntax. * MEDIAN op for CDEF expressions * DEPTH,INDEX,COPY,ROL ops for CDEF (as seen in PostScript) * gradient AREA backgrounds * no more locale magic while reading numeric data. Bugfixes * all the bugs fixed in 1.4.x during 1.5 development - Changelog 1.4.9 New Features * allows rrdrestore to read input from stdin * add documentation for RRDs::xport * RPN operators MINNAN and MAXNAN * --left-axis-format option to rrd_graph Bugfixes * properly verify validity of user suplied format strings * remove graph functions from python module when compiled without graphing support * verify that only short integers are used in COMPUTE rpn expressions * eliminate duplicate setlocale calls * fixed endless loop and double frees in rrd_restore * fixed missing variable initializations in rrd_graph * fixed JSON output format to actually be valid JSON * detect failing fallocate and fall back to seeking * fixed format string in ruby bindings - Changelog 1.4.8 Highlights * rrd_graph now uses a map to lookup variable names causing graphs with many items to be drawn magnitudes faster as the linear search of the variable tables is gone now. * the optional argument :skipscale allows for a LINE or AREA instruction to be excluded from having an effect on the scaling of the graph * TRENDNAN is now working properly and als not crashing anymore * Added a no-op string positioning combo "\." this allows to write COMMENT:OS\2\. which would otherwise not be possible. * JSON output of xport is now actually json compilant by its keys being properly quoted now. * The label positioner in rrd_graph is now properly ignoring the current state of DST. * fixes and enhancements for Python, Ruby, TCL and Perl bindings * improved error reporting in rrd_graph * portability and cross compilation * code and bugtracker moved to https://github.com/oetiker/rrdtool-1.x - Dropped patches (included upstream): - rrdtool-1.4.7-CVE-2013-2131-imginfo_format_check.patch - Dropped patches (resolved otherwise): - rrdtool-lua-ruby_lib64.patch - rrdtool-tclversion.patch - Dropped cgilib-0.7.tar.gz + cgilib-fix_automake.patch (no references to cgilib or cgi.h found, so benefit unclear) - Spec cleanup + Added new perl-rrdtool subpackage containing the perl bindings + Added new -doc subpackge * bcond_without for lua, python, ruby and tcl * bcond_without for libdbi, libwrap (tcpd) * bcond_with for rados (ceph) - Dropped BuildRequires: autoconf + automake (was needed for cgilib) - Dropped BuildRequires: libart_lgpl-devel (replaced by cairo/pango in earlier releases) - Do not hard-depend on systemd, the macros support soft fails. - Ignore errors from useradd/groupadd - Update RPM groups - Ignore absence of systemd-tmpfiles, it won't be present in the build env. - add rddtool.changes to sources list - modify a %prep phase to replace all timestamps in *.c and *.h with the date and time obtained from the last changelog entry bnc#915946 - add rrdtool-1.4.7-CVE-2013-2131-imginfo_format_check.patch that adds check to the imginfo format to prevent crash or exploit bnc#828003, CVE-2013-2131. - fix bashisms in rrdcached-systemd-pre script - Replace systemd BuildRequires with pkgconfig(systemd): we do not require the full installation / dep chain of systemd. - again fix PIDfile handling for rrdcached in systemd file (ugly now: because of removal of declaration in sysconfig file; it has to be declared twice in service file) - add PIDfile directory using tmpfiles now - don't require ruby, the package but the right version of the abi - fix build for ruby 2.1 - Fix bnc#793636 almost undistinguishable wheter there is "no data" or "zero valued data" on the rendered graph - rrdtool-zero_vs_nothing.patch - I did this to prepare rrdtool for SLE12 - bnc#831773 - [openSUSE goes SLE12]: rrdtool: Change and/or patches may have been lost - Remove PIDfile definition of sysconfig file and add it in systemd service file - Fix PIDfile location to /run instead of var/lib/rccached - fix rrdcached service file (type=forking), add pid file variable - Build is disable for SLE; remove sysvinit support - CLean obsolete conditionnal macros - Fix devel package Group; it have to be Development/Libraries - add systemd service for rrdcached - rename rrdtool-lua_lib64.patch to rrdtool-lua-ruby_lib64.patch since it sets libdir for ruby as well - Package ruby bindings into ruby-rrdtool package - Work around makefile dependencies on installed ruby headers during installation - Avoid running autoreconf, remove rrdtool-automake.patch - Fix the hack from previous entry to work everywhere - Fix build failure: make looks for ruby.h in wrong place. - Add Source URL, see https://en.opensuse.org/SourceUrls - remove suse_update_config - add explicit buildrequire on groff for man pages - Fix build with new automake - Only require lua51-devel on openSUSE_12.2 or later - update to 1.4.7 * check in /usr/lib64 for tclConfig.sh too * remove perl 5.004 compatibility hack and make RRDs compile with newer perls. * added support for rrdgraph to use the yotta, zetta, zepto, yocto prefixes. * configure option to disable building rrd_graph: --disable-rrd_graph With support from Ulf Zimmermann (OpenLane) * fixed segfault in rrdtool (xport, fetch, graph) when handling error conditions. -- James Brown * fix uninitialized variable in rrd_graph (#322) * improved data reduction algorithm in graph: after fetching, data must be reduced to at least chart resolution, else some data will not get plotted. fix for #298 * plug memory leak in lua bindings #301 * improve cross compiling -- Michael Olbrich - require lua51-devel - Fix two segfaults in the Tcl binding. - Move the Tcl bindings into a separate subpackage. - Remove the superfluous call to (bnc#693085). - Adopt the current practice of packaging Tcl extensions. - build lua bindings (new subpackage lua-rrdtool) - update to 1.4.5: * rrdcached: print \n at the end of log messages when running rrdcached in the foreground * rrdcached: Let the -s, -m and -P options affect the default socket as well * rrdgraph: font related memory leaks fixed #208 * rrdgraph-libdbi: print error message instead of dumping core on sql problem * rrdgraph-libdbi: properly allocated response buffer * rrdtool: in remote mode, make argument count for remote commmands strict * rrdgraph: fix problems with second %s in right-axis format * everywhere: fix locale handling. locales were not properly reset after calling set locale * rrdgraph: fix use of %s in strftime (G)PRINT commands #277 * ruby: fix bindings to be compatible with curent ruby implementations #279 * rrdcached: Ensure that response_read() always calls fflush() or fclose() #278 * rrd_client: free addrinfo list after use ... * rrdupdate: follow the normal code path for exiting rrd_update if there is a problem with rrdc, plugging a memory leak on the way * rrdgraph: make sure we do not try to draw points all that far outside the drawing area since some versions of cairo seem to go unstable when this happens * rrdgraph: fix an endles loop near 2^31 timestamp (32bit platform problem) * rrdcached: fix permissions of the default socket * rrdgraph-libdbi: Fix sigma calculation * rrdcreate: better checks for RRA arguments * rrdgraph: if there is no right label, do not reserve any space for it * Enhancements: + rrdcached: add hosts_access support + rrdfetch/graph: introduce "epoch" as a new base time reference, meaning timestamp 0: you can now write epoch+11111111s or epoch+19711205s * update in-tree cgilib to 0.7: + allow cookies without regular CGI POST/GET variables + support for ';' as delimiter + support for multipart/form-data + support for file upload + decode variable names and data - fix perl file list on factory - update to 1.4.4 * legal: Relicense the RRDCacheD client interface under the MIT license * legal: Updted FLOSS Exception for latest PHP license * rrd_cached: better help output * bugfixes - remove last patch, fixed in upstream - disable calling autoreconf (needs too new gettext) - fixed bnc#594981 (-double.diff) - update to 1.4.3 * rrdcached: Log to stderr (in addition to syslog) when running in foreground. * rrdcached: Added -m command line option. * rrdcached: Added -s option so set group permissions of the UNIX domain socket. * rrd_create: added --no-overwrite option. It prevents rrdtool from clobbering existing rrd files. * ruby bindings: rb_rrd_xport function * use locale settings and _NL_TIME_WEEK_1STDAY to determine the first day of the week. Works on Linux at least * rrd_graph: \u to backup one line for special legend placement tricks * rrd_update: new (better) checker for incoming COUNTER or DERIVED data. - update to 1.4.2 * RRD Caching Daemon (rrdcached) See rrdcached documentation. * The output of rrdtool dump has been adjusted to be simpler to parse by existing xml parsers. * RRD Graphing functions (rrdtool graph) + VDEF PERCENTNAN (a PRECENT that ignores NAN) + CDEF PREDICT and PREDICTSIGMA functions for on-the-fly data prediction without the need to modify existing rrd files as it is required for HoltWinters. + LibDBI integration provides a path to read data directly of a supported SQL database into rrdtool graph. See rrdgraph_libdbi documentation. * quite some more - see NEWS and CHANGES - use --disable-static instead of removing static libraries - update to 1.3.7 * many small updates to the POD documents. * improved win32 source * OSX compilation fixes * rrd_fetch: fix memory leak * rrd_cgi: fix segfault in error reporting routine * rrd_graph: fix TICK for negative numbers * rrd_graph: fix image size reporting for LP64BE architectures * rrd_resize: fix GROW for mmap (it was totally broken) - bnc#467362: use --with-rrd-default-font="monospace" instead of --with-rrd-default-font=/usr/share/fonts/truetype/DejaVuSansMono.ttf, rrdtools uses fontconfig now, not only freetype and the latter is not a correct font name for fontconfig. - update to 1.3.6 * bugfixes, documentation improvements - update to 1.3.4 * detect short/truncated files on open (rrdtool used to crash later on some platforms) * stop rrd_resize from altering the original file (mmap side effect) * fix VDEF and SHIFT use. Now it returns correct data and does not crash anymore. * fix rrd_xport when used on datasources with different resolutions. This has been broken from day 1 of this tools exsitance. * fixed default prefix for ruby install * added rpath for perl bindings on bsd * do not [fm]advise past the end of the file since this causes crashes on sparc. - update to 1.3.2 * fix for data corruption bug: http://oss.oetiker.ch/rrdtool-trac/ticket/178 - remove la files and static libs (to fix depending packages) - Fix configure script and use of libtool. - update to 1.3.0 * Multiplicative Holt-Winters Forecasting * MMAP IO * Graphing with Cairo/Pango * New graphv Interface * many more changes - major release - update to 1.2.27 * bindings/ruby/main.c: be more helpful when raising rb_eTypeError in string_arr string_arr_new(VALUE rb_strings). * src/rrd_update.c: dropping cache after update does not help (in this implementation) * bindings/Makefile.am, bindings/python/setup.py: yet another attempt to make the python build environment REALY cool * bindings/Makefile.am, bindings/python/setup.py: make sure the python extension gets the final resting place of the rrdlibrary compiled in ... * src/rrd_graph.c: don't use round since it is c99 ... use floor(x+0.5) for positive numbers instead. * src/rrd_graph.c: added some more rounding for int to float comparisons * src/rrd_graph.c: Testing an double and an integer for equality is bound to produce odd results on times. Don't do it! -- * bugfixes, documentation fixes - remove python patch (fixed in upstream) - make dejavu font requirement unversioned again, as there was no released openSUSE distro with the wrongly named font - dejavu font was renamed back, adjust - fix default font after dejavu font update - add dejavu to the package requires - build parallel - apply python requires only to python-rrdtool subpackage - split off python and -devel package to reduce size and make the python dependency optional (needed for 1 CD installer) - added ldconfig to post scripts - fix rpath in python module - update to 2.1.23 * many bugfixes (mostly python) - remove stderr.diff and buffer.diff (fixed in upstream) - update to 1.2.18 * many bugfixes * DoS in rrd_graph.c fixed [#231212] - fix overflow in rrd_tool.c - fix librrd_th.la - remove packaged fonts and use system fonts instead - fix last patch - fix memory allocation bug when graphing logarithmic data with upstream patch [#231212] - use %py_requires [#207920] - store value returned with PyTuple_Size in Py_ssize_t instead of int - update to 1.2.15 * vnames can be up to MAX_VNAME_LEN long * bugfixes, documentation fixes - converted neededforbuild to BuildRequires - update to 1.2.12 - Fixed installation of the Tcl bindings. - fix build - return proper value from strerror_r - fix build - moved pkgIndex.tcl to /usr/share/tcl/tclrrd - update to 1.2.11 - update to 1.2.10 - drop no longer neccessary rrdtool-tcl.patch - update to 1.2.8 - reneabled tcl (copilation fixed by rrdtool-tcl.patch) - added python bindings - update to 1.2.6 - dropped tcl for now, it's somewhat broken - include correct config.h - update to 1.0.49 - update to 1.0.48 - do not use its own (and old) libpng and libz - update to version 1.0.46 - build as user - require the perl version we build with - removed %{vendor_perl}/auto from filelist - update to version 1.0.45 - fixed file list - require perl - install perl files to vendor location - fix build with current libtool - update to 1.0.40 - run full autoreconf and extend configure.in for that - use sitearch macro - update to version 1.0.39 - fix build on lib64 platforms - omitted prefix i386-suse-linux from names of binaries and example scripts (bug #16105) - added rrdtool-1.0.33-zlib-zfree.dif against duplicate free() in zlib - fix for new autoconf (add libtoolize --force) - updated to version 1.0.33 - fixed call of suse_update_config - package created OBS-URL: https://build.opensuse.org/request/show/561648 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/rrdtool?expand=0&rev=81 --- python3.patch | 18 ++++++++++++++++++ rrdtool.changes | 5 +++++ rrdtool.spec | 19 ++++++++++++------- 3 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 python3.patch diff --git a/python3.patch b/python3.patch new file mode 100644 index 0000000..c1c3b1c --- /dev/null +++ b/python3.patch @@ -0,0 +1,18 @@ +Index: rrdtool-1.7.0/m4/acinclude.m4 +=================================================================== +--- rrdtool-1.7.0.orig/m4/acinclude.m4 ++++ rrdtool-1.7.0/m4/acinclude.m4 +@@ -426,12 +426,7 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS], + [AC_REQUIRE([AM_PATH_PYTHON]) + AC_MSG_CHECKING(for headers required to compile python extensions) + dnl deduce PYTHON_INCLUDES +-py_prefix=`$PYTHON -c "import sys; print(sys.prefix)"` +-py_exec_prefix=`$PYTHON -c "import sys; print(sys.exec_prefix)"` +-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +-if test "$py_prefix" != "$py_exec_prefix"; then +- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +-fi ++PYTHON_INCLUDES="-I"`$PYTHON -c "import sysconfig; print(sysconfig.get_path('include'))"` + AC_SUBST(PYTHON_INCLUDES) + dnl check if the headers exist: + save_CPPFLAGS="$CPPFLAGS" diff --git a/rrdtool.changes b/rrdtool.changes index 96e3add..5af6341 100644 --- a/rrdtool.changes +++ b/rrdtool.changes @@ -4,6 +4,11 @@ Thu Nov 23 13:53:48 UTC 2017 - rbrown@suse.com - Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468) +------------------------------------------------------------------- +Fri Nov 10 18:20:19 UTC 2017 - jmatejek@suse.com + +- build bindings for Python 3 instead of Python 2 + ------------------------------------------------------------------- Mon Jul 24 12:14:04 UTC 2017 - dimstar@opensuse.org diff --git a/rrdtool.spec b/rrdtool.spec index 9ff4f76..ae51cf6 100644 --- a/rrdtool.spec +++ b/rrdtool.spec @@ -44,6 +44,7 @@ Source99: %{name}.changes Patch3: rrdtool-tclsegfault.patch # PATCH-FIX-UPSTREAM -- bnc#793636 Patch12: rrdtool-zero_vs_nothing.patch +Patch13: python3.patch # Needed for tests BuildRequires: bc BuildRequires: cairo-devel >= 1.2 @@ -62,8 +63,8 @@ BuildRequires: systemd-rpm-macros BuildRequires: zlib-devel Requires: dejavu %if %{with python} -BuildRequires: python-devel -BuildRequires: python-setuptools +BuildRequires: python3-devel +BuildRequires: python3-setuptools %endif %if %{with lua} BuildRequires: lua-devel @@ -149,13 +150,13 @@ This package contains the Lua bindings. %endif %if %{with python} -%package -n python-%{name} +%package -n python3-%{name} Summary: Python bindings for RRDtool Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} -Requires: python +Requires: python3 -%description -n python-%{name} +%description -n python3-%{name} Python RRDtool bindings. %endif @@ -209,6 +210,7 @@ daemon was written to alleviate these problems. %setup -q %patch3 %patch12 -p1 +%patch13 -p1 # rrd_tool/rrd_cgi: use the date of the last change modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")" @@ -217,6 +219,9 @@ TIME="\"$(date -d "${modified}" "+%%R")\"" find . -name '*.c' -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" "{}" "+" %build +# we are patching configure, we need to reconf +autoreconf -fi + # --disable-nls: there is only partial hungarian translation, does not make %{?_smp_mflags} # much sense to ship package for it %configure \ @@ -363,9 +368,9 @@ getent passwd %{rrdcached_user} >/dev/null || useradd -s /sbin/nologin -g %{rrdc %endif %if %{with python} -%files -n python-%{name} +%files -n python3-%{name} %doc bindings/python/COPYING bindings/python/README.md -%{py_sitedir}/* +%{python3_sitearch}/* %endif %if %{with ruby} From 8b6eac3711d927aaebfee6eeac87e008ce76faa08180575a7533239686582600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 4 Jan 2018 14:29:24 +0000 Subject: [PATCH 2/2] * python3.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/rrdtool?expand=0&rev=82 --- rrdtool.changes | 1 + rrdtool.spec | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rrdtool.changes b/rrdtool.changes index 5af6341..28d4690 100644 --- a/rrdtool.changes +++ b/rrdtool.changes @@ -8,6 +8,7 @@ Thu Nov 23 13:53:48 UTC 2017 - rbrown@suse.com Fri Nov 10 18:20:19 UTC 2017 - jmatejek@suse.com - build bindings for Python 3 instead of Python 2 + * python3.patch ------------------------------------------------------------------- Mon Jul 24 12:14:04 UTC 2017 - dimstar@opensuse.org diff --git a/rrdtool.spec b/rrdtool.spec index ae51cf6..7ec28f8 100644 --- a/rrdtool.spec +++ b/rrdtool.spec @@ -1,7 +1,7 @@ # # spec file for package rrdtool # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed