diff --git a/php4-r1190.tar.gz b/php4-r1190.tar.gz new file mode 100644 index 0000000..b31bab4 Binary files /dev/null and b/php4-r1190.tar.gz differ diff --git a/rrdtool-1.4.4-php54.patch b/rrdtool-1.4.4-php54.patch new file mode 100644 index 0000000..bf92011 --- /dev/null +++ b/rrdtool-1.4.4-php54.patch @@ -0,0 +1,100 @@ +diff -up rrdtool-1.4.4/php4/rrdtool.c.php54 rrdtool-1.4.4/php4/rrdtool.c +--- rrdtool-1.4.4/php4/rrdtool.c.php54 2011-12-29 08:57:00.790784347 +0100 ++++ rrdtool-1.4.4/php4/rrdtool.c 2011-12-29 09:00:55.960794927 +0100 +@@ -39,7 +39,7 @@ + ZEND_DECLARE_MODULE_GLOBALS(rrdtool) + */ + +-function_entry rrdtool_functions[] = { ++zend_function_entry rrdtool_functions[] = { + PHP_FE(rrd_graph, NULL) + PHP_FE(rrd_fetch, NULL) + PHP_FE(rrd_error, NULL) +@@ -119,8 +119,8 @@ PHP_MINFO_FUNCTION(rrdtool) + Creates a graph based on options passed via an array */ + PHP_FUNCTION(rrd_graph) + { +- pval *file, *args, *p_argc; +- pval *entry; ++ zval *file, *args, *p_argc; ++ zval *entry; + zval *p_calcpr; + HashTable *args_arr; + int i, xsize, ysize, argc; +@@ -155,7 +155,7 @@ PHP_FUNCTION(rrd_graph) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; +@@ -216,9 +216,8 @@ PHP_FUNCTION(rrd_graph) + Fetch info from an RRD file */ + PHP_FUNCTION(rrd_fetch) + { +- pval *file, *args, *p_argc; +- pval *entry; +- pval *p_start, *p_end, *p_step, *p_ds_cnt; ++ zval *file, *args, *p_argc; ++ zval *entry; + HashTable *args_arr; + zval *p_ds_namv, *p_data; + int i, j, argc; +@@ -254,7 +253,7 @@ PHP_FUNCTION(rrd_fetch) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; +@@ -361,7 +360,7 @@ PHP_FUNCTION(rrd_clear_error) + Update an RRD file with values specified */ + PHP_FUNCTION(rrd_update) + { +- pval *file, *opt; ++ zval *file, *opt; + char **argv; + + if ( rrd_test_error() ) +@@ -404,7 +403,7 @@ PHP_FUNCTION(rrd_update) + Gets last update time of an RRD file */ + PHP_FUNCTION(rrd_last) + { +- pval *file; ++ zval *file; + unsigned long retval; + + char **argv = (char **) emalloc(3 * sizeof(char *)); +@@ -439,8 +438,8 @@ PHP_FUNCTION(rrd_last) + Create an RRD file with the options passed (passed via array) */ + PHP_FUNCTION(rrd_create) + { +- pval *file, *args, *p_argc; +- pval *entry; ++ zval *file, *args, *p_argc; ++ zval *entry; + char **argv; + HashTable *args_arr; + int argc, i; +@@ -449,7 +448,7 @@ PHP_FUNCTION(rrd_create) + rrd_clear_error(); + + if ( ZEND_NUM_ARGS() == 3 && +- getParameters(ht, 3, &file, &args, &p_argc) == SUCCESS ) ++ zend_get_parameters(ht, 3, &file, &args, &p_argc) == SUCCESS ) + { + if ( args->type != IS_ARRAY ) + { +@@ -473,7 +472,7 @@ PHP_FUNCTION(rrd_create) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; diff --git a/rrdtool-1.4.7-php55.patch b/rrdtool-1.4.7-php55.patch new file mode 100644 index 0000000..44fc451 --- /dev/null +++ b/rrdtool-1.4.7-php55.patch @@ -0,0 +1,83 @@ +--- rrdtool-1.4.7/php4/rrdtool.c.orig 2013-03-22 14:54:18.520877577 +0100 ++++ rrdtool-1.4.7/php4/rrdtool.c 2013-03-22 14:59:23.056303502 +0100 +@@ -20,13 +20,11 @@ + + /* PHP Includes */ + #include "php.h" +-#include "php_logos.h" + #include "ext/standard/info.h" + #include "SAPI.h" + + /* rrdtool includes */ + #include "php_rrdtool.h" +-#include "rrdtool_logo.h" + #include + + #ifdef HAVE_CONFIG_H +@@ -48,7 +46,6 @@ + PHP_FE(rrd_last, NULL) + PHP_FE(rrd_create, NULL) + PHP_FE(rrdtool_info, NULL) +- PHP_FE(rrdtool_logo_guid, NULL) + {NULL, NULL, NULL} + }; + +@@ -83,8 +80,6 @@ + /* {{{ PHP_MINIT_FUNCTION */ + PHP_MINIT_FUNCTION(rrdtool) + { +- php_register_info_logo(RRDTOOL_LOGO_GUID , "image/gif", rrdtool_logo , sizeof(rrdtool_logo)); +- + return SUCCESS; + } + /* }}} */ +@@ -92,8 +87,6 @@ + /* {{{ PHP_MSHUTDOWN_FUNCTION */ + PHP_MSHUTDOWN_FUNCTION(rrdtool) + { +- php_unregister_info_logo(RRDTOOL_LOGO_GUID); +- + return SUCCESS; + } + /* }}} */ +@@ -102,11 +95,6 @@ + PHP_MINFO_FUNCTION(rrdtool) + { + php_info_print_box_start(1); +- PUTS("\"ClamAV\n"); + php_printf("

rrdtool Version %s

\n", PHP_RRD_VERSION_STRING); + php_info_print_box_end(); + php_info_print_table_start(); +@@ -548,11 +536,6 @@ + PUTS("
\n"); + + php_info_print_box_start(1); +- PUTS("\"ClamAV\n"); + php_printf("

rrdtool Version %s

\n", PHP_RRD_VERSION_STRING); + php_info_print_box_end(); + php_info_print_table_start(); +@@ -590,16 +573,6 @@ + } + /* }}} */ + +-PHP_FUNCTION(rrdtool_logo_guid) +-{ +- if (ZEND_NUM_ARGS() != 0) { +- WRONG_PARAM_COUNT; +- } +- +- RETURN_STRINGL(RRDTOOL_LOGO_GUID, sizeof(RRDTOOL_LOGO_GUID)-1, 1); +-} +-/* }}} */ +- + #endif /* HAVE_RRDTOOL */ + + /* diff --git a/rrdtool-1.4.8-php-ppc-fix.patch b/rrdtool-1.4.8-php-ppc-fix.patch new file mode 100644 index 0000000..23c22aa --- /dev/null +++ b/rrdtool-1.4.8-php-ppc-fix.patch @@ -0,0 +1,11 @@ +--- a/php4/ltconfig 2014-08-11 13:01:13.020065855 +0000 ++++ a/php4/ltconfig 2014-08-11 13:01:23.870060274 +0000 +@@ -1939,7 +1939,7 @@ + else + # Only the GNU ld.so supports shared libraries on MkLinux. + case "$host_cpu" in +- powerpc*) dynamic_linker=no ;; ++# powerpc*) dynamic_linker=no ;; + *) dynamic_linker='Linux ld.so' ;; + esac + fi diff --git a/rrdtool-1.6.0-ruby-2-fix.patch b/rrdtool-1.6.0-ruby-2-fix.patch new file mode 100644 index 0000000..5f80630 --- /dev/null +++ b/rrdtool-1.6.0-ruby-2-fix.patch @@ -0,0 +1,26 @@ +diff --git a/bindings/Makefile.am b/bindings/Makefile.am +index 54f5c23..ee85c23 100644 +--- a/bindings/Makefile.am ++++ b/bindings/Makefile.am +@@ -35,8 +35,9 @@ install-data-local: + && $(MAKE) install ) \ + || true + $(AM_V_GEN)test -f ${builddir}/ruby/Makefile \ +- && ( cd ${builddir}/ruby \ +- && $(MAKE) EPREFIX=$(DESTDIR)$(exec_prefix) $(RUBY_MAKE_OPTIONS) install ) \ ++ && ( $(MKDIR_P) $(DESTDIR)$(libdir)/ruby/vendor_ruby && cd ${builddir}/ruby \ ++ && $(MAKE) EPREFIX=$(DESTDIR)$(exec_prefix) $(RUBY_MAKE_OPTIONS) \ ++ hdrdir="$(includedir)" rubyhdrdir="$(includedir)" includedir="$(includedir)" install ) \ + || true + $(AM_V_GEN)test -d ${builddir}/python/build \ + && ( cd ${builddir}/python \ +@@ -57,7 +58,8 @@ ruby: + EPREFIX=$(exec_prefix) \ + ABS_TOP_SRCDIR=${abs_top_srcdir} \ + ABS_TOP_BUILDDIR=${abs_top_builddir} \ +- $(RUBY_MAKE_OPTIONS) RUBYARCHDIR= ) ++ $(RUBY_MAKE_OPTIONS) hdrdir="$(includedir)" \ ++ rubyhdrdir="$(includedir)" includedir="$(includedir)" RUBYARCHDIR= ) + + # rules for building the python module + python: diff --git a/rrdtool-1.7.0-fix-configure-parameters.patch b/rrdtool-1.7.0-fix-configure-parameters.patch new file mode 100644 index 0000000..97747f7 --- /dev/null +++ b/rrdtool-1.7.0-fix-configure-parameters.patch @@ -0,0 +1,49 @@ +--- ./configure.ac.orig 2017-05-16 10:32:11.000000000 +0200 ++++ ./configure.ac 2018-01-05 14:00:09.261806009 +0100 +@@ -512,7 +512,11 @@ + + have_libdbi=no + +-AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),[],[ ++AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]), ++[], ++[enable_libdbi=yes]) ++ ++AS_IF([test "x$enable_libdbi" != xno], [ + AC_CHECK_HEADER(dbi/dbi.h, [ + AC_CHECK_LIB(dbi, dbi_initialize, [ + AC_DEFINE(HAVE_LIBDBI,[1],[have got libdbi installed]) +@@ -526,7 +530,11 @@ + + have_librados=no + +-AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]),[],[ ++AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]), ++[], ++[enable_librados=yes]) ++ ++AS_IF([test "x$enable_librados" != xno], [ + AC_CHECK_HEADER(rados/librados.h, [ + AC_DEFINE(HAVE_LIBRADOS,[1],[have got librados installed]) + LIBS="${LIBS} -lrados" +@@ -538,7 +546,11 @@ + + have_libwrap=no + +-AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]),[],[ ++AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]), ++[], ++[enable_libwrap=yes]) ++ ++AS_IF([test "x$enable_libwrap" != xno], [ + AC_CHECK_HEADER(tcpd.h,[ + AC_CHECK_FUNCS(hosts_access, [ + AC_DEFINE(HAVE_LIBWRAP,[1],[have got libwrap installed]) +@@ -554,7 +566,6 @@ + ]) + ]) + +- + AM_CONDITIONAL(BUILD_LIBWRAP,[test $have_libwrap != no]) + + AM_CONDITIONAL(BUILD_RRDGRAPH,[test $enable_rrd_graph != no]) diff --git a/rrdtool-1.7.0.tar.gz b/rrdtool-1.7.0.tar.gz new file mode 100644 index 0000000..df63374 Binary files /dev/null and b/rrdtool-1.7.0.tar.gz differ diff --git a/rrdtool.spec b/rrdtool.spec new file mode 100644 index 0000000..d4ebeff --- /dev/null +++ b/rrdtool.spec @@ -0,0 +1,218 @@ +Name: rrdtool +Version: 1.7.0 +Release: 18 +Summary: RA tool for data logging and analysis +License: GPLv2+ with exceptions +URL: http://oss.oetiker.ch/rrdtool/ +Source0: http://oss.oetiker.ch/%{name}/pub/%{name}-%{version}.tar.gz +Source1: php4-r1190.tar.gz +Patch0001: rrdtool-1.6.0-ruby-2-fix.patch +Patch0002: rrdtool-1.4.8-php-ppc-fix.patch +Patch0003: rrdtool-1.7.0-fix-configure-parameters.patch + +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +BuildRequires: gcc-c++ openssl-devel freetype-devel libpng-devel zlib-devel +BuildRequires: intltool >= 0.35.0 cairo-devel >= 1.4.6, pango-devel >= 1.17 +BuildRequires: libtool groff gettext libxml2-devel systemd automake autoconf +BuildRequires: perl-ExtUtils-MakeMaker perl-generators perl-Pod-Html perl-devel +BuildRequires: libdbi-devel +Requires: dejavu-sans-mono-fonts + +%description +A tool to log and analyze data gathered from all kinds of data sources. +The data analysis part of RRDtool is based on the ability to quickly +generate graphical representations of the data values collected over a +definable time period. + +%package devel +Summary: RRDtool header files +Requires: %{name} = %{version}-%{release} pkgconfig + +%description devel +RRD stands for Round Robin Database. RRD is a system to store and +display time-series data (i.e. network bandwidth, machine-room temperature, +server load average). This package allow you to build programs making +use of the library. + +%package help +Summary: Help document files for %{name} +Provides: %{name}-doc = %{version}-%{release} +Obsoletes: %{name}-doc < %{version}-%{release} + +%description help +Help document files for %{name}. + +%package perl +Summary: Perl RRDtool bindings module +Requires: %{name} = %{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Provides: perl-%{name} = %{version}-%{release} +Obsoletes: perl-%{name} < %{version}-%{release} + +%description perl +The Perl RRDtool bindings module. + +%{!?rrd_python3_version: %global rrd_python3_version %(%{__python3} -c 'import sys; print(sys.version.split(" ")[0])' || echo "3.14")} + +%package -n python3-rrdtool +Summary: Python RRDtool bindings module +BuildRequires: python3-devel python3-setuptools +Requires: python3 >= %{rrd_python3_version} %{name} = %{version}-%{release} +%{?python_provide:%python_provide python3-rrdtool} + +%description -n python3-rrdtool +Python RRDtool bindings module. + +%package tcl +Summary: Tcl RRDtool bindings module +BuildRequires: tcl-devel >= 8.0 +Requires: tcl >= 8.0 %{name} = %{version}-%{release} +Provides: tcl-%{name} = %{version}-%{release} +Obsoletes: tcl-%{name} < %{version}-%{release} + +%description tcl +The %{name}-tcl package includes RRDtool bindings for Tcl. + +%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e 'puts Config::CONFIG["vendorarchdir"]')} + +%package ruby +Summary: Ruby RRDtool bindings module +BuildRequires: ruby ruby-devel +Requires: %{name} = %{version}-%{release} + +%description ruby +The %{name}-ruby package includes RRDtool bindings for Ruby. + +%{!?luaver: %global luaver %(lua -e "print(string.sub(_VERSION, 5))")} +%global luapkgdir %{_datadir}/lua/%{luaver} + +%package lua +Summary: Lua RRDtool bindings module +BuildRequires: lua lua-devel +Requires: lua(abi) = %{luaver} +Requires: %{name} = %{version}-%{release} + +%description lua +The %{name}-lua package includes RRDtool bindings for Lua. + +%prep +%autosetup -n %{name}-%{version} -a 1 -p1 + +perl -pi -e 's|get_python_lib\(0,0,prefix|get_python_lib\(1,0,prefix|g' configure +perl -pi.orig -e 's|/lib\b|/%{_lib}|g' configure Makefile.in php4/configure php4/ltconfig* +perl -pi.orig -e 's|1.299907080300|1.29990708|' bindings/perl-shared/RRDs.pm bindings/perl-piped/RRDp.pm +cp -p /usr/lib/rpm/config.{guess,sub} php4/ + +%build +./bootstrap +%configure --with-perl-options='INSTALLDIRS="vendor"' --disable-rpath \ + --enable-tcl-site --with-tcllib=%{_libdir} --enable-python \ + --enable-ruby --enable-libdbi --disable-static --with-pic + +perl -pi.orig -e 's|-Wl,--rpath -Wl,\$rp||g' bindings/perl-shared/Makefile.PL +perl -pi.orig -e 's|-Wl,--rpath -Wl,\$\(EPREFIX\)/lib||g' bindings/ruby/extconf.rb +sed -i 's|extconf.rb \\|extconf.rb --vendor \\|' bindings/Makefile + +cd bindings/perl-piped/ +perl Makefile.PL INSTALLDIRS=vendor +perl -pi.orig -e 's|/lib/perl|/%{_lib}/perl|g' Makefile +cd - + +make + +find examples/ -type f -exec perl -pi -e 's|^#! \@perl\@|#!%{__perl}|gi' {} \; +find examples/ -name "*.pl" -exec perl -pi -e 's|\015||gi' {} \; + +cd bindings/python +%py3_build +cd - + +%install +export PYTHON=%{__python3} +%make_install PYTHON="%{__python3}" + +mv $RPM_BUILD_ROOT%{perl_vendorlib}/RRDp.pm $RPM_BUILD_ROOT%{perl_vendorarch}/ +install -d doc2/html doc2/txt +cp -a doc/*.txt doc2/txt/ +cp -a doc/*.html doc2/html/ + +install -d doc3/html +mv doc2/html/RRD*.html doc3/html/ +rm -f examples/Makefile* examples/*.in +find examples/ -type f -exec chmod 0644 {} \; + +cd bindings/python +%py3_install +cd - + +%find_lang %{name} + +%check + +%post +/sbin/ldconfig +%systemd_post rrdcached.service rrdcached.socket + +%preun +%systemd_post rrdcached.service rrdcached.socket + +%postun +/sbin/ldconfig +%systemd_post rrdcached.service rrdcached.socket + +%files -f %{name}.lang +%license LICENSE +%doc CONTRIBUTORS COPYRIGHT TODO NEWS CHANGES THREADS +%{_bindir}/* +%{_libdir}/*.so.* +%{_unitdir}/rrdcached.service +%{_unitdir}/rrdcached.socket +%{_datadir}/%{name} + +%files tcl +%doc bindings/tcl/README +%{_libdir}/tclrrd*.so +%{_libdir}/rrdtool/*.tcl + +%files devel +%{_includedir}/*.h +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/*.pc +%exclude %{_libdir}/*.la +%exclude %{perl_vendorlib}/leaktest.pl +%exclude %{_docdir}/%{name}-* +%exclude %{perl_vendorarch}/ntmake.pl +%exclude %{perl_archlib}/perllocal.pod +%exclude %{_datadir}/%{name}/examples +%exclude %{perl_vendorarch}/auto/*/{.packlist,*.bs} + +%files ruby +%doc bindings/ruby/README +%{ruby_vendorarchdir}/RRD.so + +%files perl +%doc doc3/html +%{perl_vendorarch}/*.pm +%attr(0755,root,root) %{perl_vendorarch}/auto/RRDs/ + +%files lua +%doc bindings/lua/README +%exclude %{_libdir}/lua/%{luaver}/*.la +%{_libdir}/lua/%{luaver}/* + +%files -n python3-rrdtool +%doc bindings/python/COPYING bindings/python/README.md +%{python3_sitearch}/rrdtool*.so +%{python3_sitearch}/rrdtool-*.egg-info + +%files help +%doc examples doc2/html doc2/txt +%{_mandir}/man1/* +%{_mandir}/man3/* + +%changelog +* Mon Dec 23 2019 wangzhishun - 1.7.0-18 +- Package init +