7fb7559166
- Ignore absence of systemd-tmpfiles, it won't be present in the build env. Fixes build with systemd 222 OBS-URL: https://build.opensuse.org/request/show/319729 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/rrdtool?expand=0&rev=65
333 lines
10 KiB
RPMSpec
333 lines
10 KiB
RPMSpec
#
|
|
# spec file for package rrdtool
|
|
#
|
|
# Copyright (c) 2015 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
|
|
# 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/
|
|
#
|
|
|
|
|
|
%{!?_tmpfilesdir:%global _tmpfilesdir /usr/lib/tmpfiles.d}
|
|
|
|
Name: rrdtool
|
|
BuildRequires: autoconf
|
|
BuildRequires: automake
|
|
BuildRequires: cairo-devel
|
|
BuildRequires: freetype2-devel
|
|
BuildRequires: gettext-tools
|
|
BuildRequires: glib2-devel
|
|
BuildRequires: groff
|
|
BuildRequires: intltool
|
|
BuildRequires: libart_lgpl-devel
|
|
BuildRequires: libpng-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: lua51-devel
|
|
BuildRequires: pango-devel
|
|
BuildRequires: python-devel
|
|
BuildRequires: ruby-devel
|
|
BuildRequires: tcl-devel
|
|
BuildRequires: tcpd-devel
|
|
BuildRequires: pkgconfig(systemd)
|
|
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
|
|
# PATCH-FIX-UPSTREAM bnc#828003 kstreitova@suse.com -- adds check to the imginfo format to prevent crash or exploit
|
|
Patch4: rrdtool-1.4.7-CVE-2013-2131-imginfo_format_check.patch
|
|
Source1: http://www.infodrom.org/projects/cgilib/download/cgilib-%{cgilib_version}.tar.gz
|
|
Patch11: cgilib-fix_automake.patch
|
|
#PATCH FIX UPSTREAM BNC#793636
|
|
Patch12: rrdtool-zero_vs_nothing.patch
|
|
Source2: sysconfig.rrdcached
|
|
Source4: rrdcached-systemd-pre
|
|
Source5: rrdcached.service
|
|
Source99: %{name}.changes
|
|
Url: http://oss.oetiker.ch/rrdtool/
|
|
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.
|
|
|
|
%package devel
|
|
Summary: A tool for data logging and analysis - Development files
|
|
Group: Development/Libraries/Other
|
|
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.
|
|
|
|
%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
|
|
|
|
|
|
%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
|
|
|
|
%package -n ruby-rrdtool
|
|
Summary: Ruby bindings for rrdtool
|
|
Group: Productivity/Scientific/Math
|
|
Requires: ruby(abi) >= %{rb_ver}
|
|
|
|
%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
|
|
|
|
%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
|
|
|
|
%package cached
|
|
Summary: Data caching daemon for RRDtool
|
|
Group: Productivity/Scientific/Math
|
|
Requires: %{name} = %{version}
|
|
Requires(pre): %fillup_prereq
|
|
%{?systemd_requires}
|
|
%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.
|
|
|
|
%prep
|
|
%setup -q -a1
|
|
%if %{_lib}==lib64
|
|
%patch1
|
|
%endif
|
|
%patch2
|
|
%patch3
|
|
%patch4 -p1
|
|
pushd "cgilib-%{cgilib_version}"
|
|
%patch11
|
|
popd #cgilib
|
|
%patch12 -p1
|
|
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
|
|
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
|
|
TIME="\"$(date -d "${modified}" "+%%R")\""
|
|
find . -name '*.[ch]' | xargs sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g"
|
|
|
|
%build
|
|
# first prepare cgilib
|
|
pushd cgilib-%{cgilib_version}
|
|
echo -n > NEWS
|
|
aclocal --force
|
|
autoreconf -fiv
|
|
CGILIB_CFLAGS="%{optflags} -fPIC -I."
|
|
CGILIB_CFLAGS="$CGILIB_CFLAGS -fexcess-precision=fast"
|
|
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
|
|
mkdir -p %{buildroot}/%{rb_sitearchdir}
|
|
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 systemd specific files
|
|
install -Dm755 %{SOURCE4} %{buildroot}%{_datadir}/rrdcached/rrdcached-systemd-pre
|
|
install -Dm644 %{SOURCE5} %{buildroot}%{_unitdir}/rrdcached.service
|
|
install -d -m 0755 %{buildroot}/%{_tmpfilesdir}
|
|
echo "d /run/rrdcached 0755 %{rrdcached_user} %{rrdcached_group}" > %{buildroot}/%{_tmpfilesdir}/rrdcached.conf
|
|
chmod 644 %{buildroot}/%{_tmpfilesdir}/rrdcached.conf
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%files
|
|
%defattr(-, root, root)
|
|
%doc %{_docdir}/rrdtool
|
|
%doc %{_mandir}/*/*
|
|
%{_bindir}/*
|
|
%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/*
|
|
#%{_datadir}/%{name}
|
|
|
|
%files devel
|
|
%defattr(-, root, root)
|
|
%{_includedir}/*
|
|
%{_libdir}/librrd_th.so
|
|
%{_libdir}/librrd.so
|
|
%{_libdir}/pkgconfig/librrd.pc
|
|
|
|
%files -n python-rrdtool
|
|
%defattr(-, root, root)
|
|
%{py_sitedir}/*
|
|
|
|
%files -n lua-rrdtool
|
|
%defattr(-, root, root)
|
|
%dir %{_libdir}/lua
|
|
%dir %{_libdir}/lua/*
|
|
%{_libdir}/lua/*/rrd.so
|
|
%{_libdir}/lua/*/rrd.so.*
|
|
|
|
%files -n tcl-rrdtool
|
|
%defattr(-, root, root)
|
|
%{tcl_archdir}/*
|
|
%{_libdir}/tclrrd*.so
|
|
|
|
#%{!?rb_sitearchdir: %define rb_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]')}
|
|
|
|
%files -n ruby-rrdtool
|
|
%defattr(-, root, root)
|
|
%{rb_sitearchdir}/RRD.so
|
|
|
|
%files cached
|
|
%defattr(-, root, root)
|
|
%{_bindir}/rrdcached
|
|
%{_localstatedir}/adm/fillup-templates/sysconfig.rrdcached
|
|
%{_datadir}/rrdcached
|
|
%{_datadir}/rrdcached/rrdcached-systemd-pre
|
|
%{_unitdir}/rrdcached.service
|
|
%{_tmpfilesdir}/rrdcached.conf
|
|
|
|
%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
|
|
%service_add_pre rrdcached.service
|
|
|
|
%post cached
|
|
%service_add_post rrdcached.service
|
|
%fillup_only rrdcached
|
|
systemd-tmpfiles --create %{_tmpfilesdir}/rrdcached.conf || :
|
|
|
|
%preun cached
|
|
%service_del_preun rrdcached.service
|
|
|
|
%postun cached
|
|
%service_del_postun rrdcached.service
|
|
|
|
%changelog
|