# # spec file for package rrdtool # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: rrdtool BuildRequires: cairo-devel BuildRequires: freetype2-devel BuildRequires: glib2-devel BuildRequires: groff BuildRequires: intltool BuildRequires: libart_lgpl-devel BuildRequires: libpng-devel BuildRequires: libxml2-devel BuildRequires: pango-devel BuildRequires: python-devel BuildRequires: tcl-devel %if 0%{?suse_version} >= 1100 BuildRequires: gettext-tools %else BuildRequires: gettext %endif BuildRequires: ruby-devel %if 0%{?suse_version} > 1210 BuildRequires: lua51-devel %else BuildRequires: lua-devel %endif BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: tcpd-devel %if 0%{?suse_version} >= 1210 BuildRequires: systemd %endif Requires: perl = %{perl_version} Version: 1.4.7 Release: 0 %define cgilib_version 0.7 Source: http://oss.oetiker.ch/rrdtool/pub/rrdtool-%{version}.tar.gz Patch1: rrdtool-lua-ruby_lib64.patch Patch2: rrdtool-tclversion.patch Patch3: rrdtool-tclsegfault.patch Source1: http://www.infodrom.org/projects/cgilib/download/cgilib-%{cgilib_version}.tar.gz Patch11: cgilib-fix_automake.patch Source2: sysconfig.rrdcached Source3: rrdcached.init Source4: rrdcached-systemd-pre Source5: rrdcached.service Url: http://oss.oetiker.ch/rrdtool/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: A tool for data logging and analysis License: GPL-2.0+ Group: Productivity/Scientific/Math Requires: dejavu Requires(pre): pwdutils %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. %prep %setup -q -a1 %if %{_lib}==lib64 %patch1 %endif %patch2 %patch3 pushd "cgilib-%{cgilib_version}" %patch11 popd #cgilib %build # first prepare cgilib pushd cgilib-%{cgilib_version} echo -n > NEWS aclocal --force autoreconf -fiv CGILIB_CFLAGS="%{optflags} -fPIC -I." %if 0%{?suse_version} >= 1130 CGILIB_CFLAGS="$CGILIB_CFLAGS -fexcess-precision=fast" %endif CFLAGS="$CGILIB_CFLAGS" \ %configure make %{?jobs:-j %jobs} %__mkdir_p ../lb/include %__cp *.h ../lb/include/ %__mkdir_p ../lb/lib/ %__cp -a .libs/libcgi.so* ../lb/lib/ popd #cgilib # build rrdtool if [ ! -d m4 ]; then mkdir m4; fi # we need getext 0.18 #autoreconf -i -f export LDFLAGS="-L`pwd`/lb/lib" CPPFLAGS="-I`pwd`/lb/include" \ %configure --disable-static --with-pic --enable-shared \ --enable-tcl-site \ --with-tcllib=%{_libdir} \ --with-gnu-ld \ --enable-python \ --enable-ruby \ --enable-ruby-site-install \ --disable-rpath \ --with-rrd-default-font="monospace" make %{?jobs:-j %jobs} V=1 %install #eval `perl -V:installarchlib` # Override hdrdir and rubyhdrdir to avoid makefile dependencies on # installed ruby headers to be prefixed with %{buildroot} make \ DESTDIR=$RPM_BUILD_ROOT \ idocdir=%{_docdir}/%{name}/txt/ \ ihtmldir=%{_docdir}/%{name}/html/ \ examplesdir=%{_docdir}/%{name}/examples/ \ libdir=%{_libdir} \ pkglibdir=%tcl_archdir/tclrrd%version \ install # we install this later again rm -r $RPM_BUILD_ROOT%{_prefix}/lib/perl # do not install fonts (use system fonts instead) rm -rf $RPM_BUILD_ROOT%_datadir/rrdtool/fonts # install correctly perl modules pushd bindings/perl-piped perl Makefile.PL make DESTDIR=$RPM_BUILD_ROOT install_vendor popd pushd bindings/perl-shared perl Makefile.PL make DESTDIR=$RPM_BUILD_ROOT install_vendor popd %perl_process_packlist #fix build (it would be better to split cgilib) #sed 's/[[:space:]]*-L\/usr\/src\/packages\/BUILD\/%{name}-%{version}\/lb\/lib[[:space:]]*/ /' $RPM_BUILD_ROOT/%{_libdir}/librrd.la > tmp #mv tmp $RPM_BUILD_ROOT/%{_libdir}/librrd.la #sed 's/[[:space:]]*-L\/usr\/src\/packages\/BUILD\/%{name}-%{version}\/lb\/lib[[:space:]]*/ /' $RPM_BUILD_ROOT/%{_libdir}/librrd_th.la > tmp #mv tmp $RPM_BUILD_ROOT/%{_libdir}/librrd_th.la find "%{buildroot}" -type f -name '*.la' -exec %__rm {} \; # install ruby bindings pushd bindings/ruby make DESTDIR=%{buildroot} install popd # documentation install -m 644 CHANGES CONTRIBUTORS COPYING COPYRIGHT README TODO $RPM_BUILD_ROOT/%{_docdir}/%{name} pushd doc mkdir txt mkdir html mv *.txt txt/ mv *.html html/ popd rm examples/rrdcached/Makefile* chmod -x examples/* chmod +x examples/rrdcached # install rrdcached specials install -Dm644 %{SOURCE2} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.rrdcached install -Dm755 %{SOURCE3} %{buildroot}%{_sysconfdir}/init.d/rrdcached %if 0%{?suse_version} >= 1210 # install systemd specific files install -Dm755 %{SOURCE4} %{buildroot}%{_datadir}/rrdcached/rrdcached-systemd-pre install -Dm644 %{SOURCE5} %{buildroot}%{_unitdir}/rrdcached.service %endif mkdir -p %{buildroot}%{_sbindir} ln -s %{_sysconfdir}/init.d/rrdcached %{buildroot}%{_sbindir}/rcrrdcached mkdir -p %{buildroot}%{_localstatedir}/lib/rrdtool/rrdcached %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-, root, root) %doc %{_docdir}/rrdtool %doc %{_mandir}/*/* /usr/bin/* %exclude %{_bindir}/rrdcached %{_libdir}/librrd.so.* %{_libdir}/librrd_th.so.* %{perl_vendorlib}/RRDp.pm %{perl_vendorarch}/RRDs.pm #%{perl_vendorarch}/ntmake.pl %{perl_vendorarch}/auto/* %if %suse_version < 1140 /var/adm/perl-modules/rrdtool %endif #%{_datadir}/%{name} %package devel Summary: A tool for data logging and analysis - Development files Group: Productivity/Scientific/Math Requires: %name = %version %description devel 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. %files devel %defattr(-, root, root) /usr/include/* %{_libdir}/librrd_th.so %{_libdir}/librrd.so %{_libdir}/pkgconfig/librrd.pc %package -n python-rrdtool Summary: Python bindings for rrdtool Group: Productivity/Scientific/Math Requires: %name = %version %py_requires %description -n python-rrdtool 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. This package contains the Python bindings %files -n python-rrdtool %defattr(-, root, root) %{py_sitedir}/* %package -n lua-rrdtool Summary: Lua bindings for rrdtool Group: Productivity/Scientific/Math Requires: %name = %version %description -n lua-rrdtool 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. This package contains the Lua bindings %files -n lua-rrdtool %defattr(-, root, root) %dir %{_libdir}/lua %dir %{_libdir}/lua/* %{_libdir}/lua/*/rrd.so %{_libdir}/lua/*/rrd.so.* %package -n tcl-rrdtool Summary: Tcl bindings for rrdtool Group: Productivity/Scientific/Math Requires: tcl %description -n tcl-rrdtool 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. This package contains the Tcl bindings %files -n tcl-rrdtool %defattr(-, root, root) %{tcl_archdir}/* %{_libdir}/tclrrd*.so #%{!?rb_sitearchdir: %define rb_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]')} %package -n ruby-rrdtool Summary: Ruby bindings for rrdtool Group: Productivity/Scientific/Math Requires: ruby %description -n ruby-rrdtool 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. This package contains the Ruby bindings %files -n ruby-rrdtool %defattr(-, root, root) %{rb_sitearchdir}/RRD.so %package cached Summary: Data caching daemon for RRDtool Group: Productivity/Scientific/Math Requires: %{name} = %{version} Requires(pre): %insserv_prereq Requires(pre): %fillup_prereq %define rrdcached_user rrdcached %define rrdcached_group rrdcached %description cached rrdcached is a daemon that receives updates to existing RRD files, accumulates them and, if enough have been received or a defined time has passed, writes the updates to the RRD file. The daemon was written with big setups in mind which usually runs into I/O related problems. This daemon was written to alleviate these problems. %files cached %defattr(-, root, root) %{_bindir}/rrdcached %{_sysconfdir}/init.d/rrdcached %{_sbindir}/rcrrdcached %{_localstatedir}/adm/fillup-templates/sysconfig.rrdcached %dir %{_localstatedir}/lib/rrdtool %attr(-,%rrdcached_user,%rrdcached_group) %dir %{_localstatedir}/lib/rrdtool/rrdcached %if 0%{?suse_version} >= 1210 %{_datadir}/rrdcached %{_datadir}/rrdcached/rrdcached-systemd-pre %{_unitdir}/rrdcached.service %endif %pre cached getent group %rrdcached_group >/dev/null || groupadd %rrdcached_group getent passwd %rrdcached_user >/dev/null || useradd -s /sbin/nologin -g %rrdcached_group -c %rrdcached_user -d %{_localstatedir}/lib %rrdcached_user %if 0%{?suse_version} >= 1210 %service_add_pre rrdcached.service %endif %post cached %fillup_and_insserv rrdcached %restart_on_update rrdcached %if 0%{?suse_version} >= 1210 %service_add_post rrdcached.service %endif %preun cached %stop_on_removal rrdcached %if 0%{?suse_version} >= 1210 %service_del_preun rrdcached.service %endif %postun cached %restart_on_update %insserv_cleanup %if 0%{?suse_version} >= 1210 %service_del_postun rrdcached.service %endif %changelog