File hsflowd.spec of Package hsflowd
#
# spec file for package hsflowd
#
# Copyright (c) 2019 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 https://bugs.opensuse.org/
#
%define realver 2.1.15-1
Name: hsflowd
Version: 2.1.15.1
Release: 0
Summary: Host sFlow daemon
# License: https://inmon.com/technology/sflowlicense.txt
License: SUSE-Freeware
Group: System/Monitoring
URL: https://sflow.net/
Source0: https://github.com/sflow/host-sflow/archive/v%{realver}.tar.gz#/host-sflow-%{realver}.tar.gz
Source99: hsflowd-rpmlintrc
Patch0: hsflowd-fix-setgroups.diff
#Patch1: hsflowd-obey-cflags.diff
Patch2: hsflowd-libnfnetlink.patch
BuildRequires: clang
BuildRequires: libnfnetlink-devel
BuildRequires: libopenssl-devel
BuildRequires: libpcap-devel
BuildRequires: pkgconfig
BuildRequires: xen-devel
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(libvirt)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%description
This program implements the host sFlow(R) standard - sending
key performance metrics to an sFlow collector to enable
highly-scalable monitoring of all critical resources in
the network. If Open VSwitch is present, will also control
the Open VSwitch sFlow configuration.
%package mod_dbus
Summary: DBUS support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_dbus
This packages provides dbus support for hsflowd
%package mod_dent
Summary: DENT support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_dent
This packages provides dent support for hsflowd
%package mod_dnssd
Summary: DNS-SD support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_dnssd
This packages provides dnssd support for hsflowd
%package mod_docker
Summary: Docker support for the Host sFlow daemon
Requires: %{name} = %{version}
Requires: docker
Requires: iproute2
%description mod_docker
This packages provides docker support for hsflowd
%package mod_dropmon
Summary: DROPMON support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_dropmon
This packages provides dropmon support for hsflowd
%package mod_eapi
Summary: Eapi support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_eapi
This packages provides eapi support for hsflowd
%package mod_json
Summary: JSON support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_json
This packages provides json support for hsflowd
%package mod_kvm
Summary: KVM support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_kvm
This packages provides kvm support for hsflowd
%package mod_nflog
Summary: NFLOG support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_nflog
This packages provides nflog support for hsflowd
%package mod_nlroute
Summary: NLROUTE support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_nlroute
This packages provides NLROUTE support for hsflowd
%package mod_ovs
Summary: OpenvSwitch support for the Host sFlow daemon
Requires: %{name} = %{version}
Provides: openvswitch
%description mod_ovs
This packages provides openvswitch support for hsflowd
%package mod_pcap
Summary: PCAP support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_pcap
This packages provides pcap support for hsflowd
%package mod_psample
Summary: PSAMPLE support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_psample
This packages provides psample support for hsflowd
%package mod_systemd
Summary: Systemd support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_systemd
This packages provides systemd support for hsflowd
%package mod_tcp
Summary: TCP support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_tcp
This packages provides tcp support for hsflowd
%package mod_xen
Summary: XEN support for the Host sFlow daemon
Requires: %{name} = %{version}
%description mod_xen
This packages provides xen support for hsflowd
%prep
%autosetup -p1 -n host-sflow-%{realver}
%build
# parallel build is broken
export RPM_BUILD_NCPUS=1
%make_build \
MODDIR=%{_libdir}/%{name} \
EXTRA_FLAGS="%{optflags}" \
FEATURES="HOST PCAP TCP DOCKER KVM XEN OVS DBUS SYSTEMD EAPI DENT DROPMON NFLOG NLROUTE PSAMPLE" \
%{?_smp_mflags}
%install
make \
INSTROOT=%{buildroot} \
BINDIR=%{_sbindir} \
INITDIR=%{_initddir} \
CONFDIR=%{_sysconfdir} \
MODDIR=%{_libdir}/%{name} \
SYSTEMDDIR=%{_unitdir} \
DBUSDIR=%{_sysconfdir}/dbus-1/system.d \
install
# remove old init script as we now ship systemd service file
rm %{buildroot}%{_initddir}/hsflowd
%pre
%service_add_pre hsflowd.service
%post
%service_add_post hsflowd.service
%preun
%service_del_preun hsflowd.service
%postun
%service_del_postun hsflowd.service
%files
%license LICENSE
%doc README INSTALL.Linux
%license LICENSE
%config %{_sysconfdir}/hsflowd.conf
%config %{_sysconfdir}/dbus-1/system.d/net.sflow.hsflowd.conf
%{_sbindir}/hsflowd
%{_unitdir}/hsflowd.service
%dir %{_libdir}/%{name}
%files mod_xen
%{_libdir}/%{name}/mod_xen.so
%files mod_dbus
%{_libdir}/%{name}/mod_dbus.so
%files mod_dent
%{_libdir}/%{name}/mod_dent.so
%files mod_dnssd
%{_libdir}/%{name}/mod_dnssd.so
%files mod_docker
%{_libdir}/%{name}/mod_docker.so
%files mod_dropmon
%{_libdir}/%{name}/mod_dropmon.so
%files mod_eapi
%{_libdir}/%{name}/mod_eapi.so
%files mod_json
%{_libdir}/%{name}/mod_json.so
%files mod_kvm
%{_libdir}/%{name}/mod_kvm.so
%files mod_nflog
%{_libdir}/%{name}/mod_nflog.so
%files mod_nlroute
%{_libdir}/%{name}/mod_nlroute.so
%files mod_ovs
%{_libdir}/%{name}/mod_ovs.so
%files mod_pcap
%{_libdir}/%{name}/mod_pcap.so
%files mod_psample
%{_libdir}/%{name}/mod_psample.so
%files mod_systemd
%{_libdir}/%{name}/mod_systemd.so
%files mod_tcp
%{_libdir}/%{name}/mod_tcp.so
%changelog