vhostmd/vhostmd.spec
tanyulong2021 dce218aeaa update changelog date
(cherry picked from commit 198ba5421e7da582d2642fba333930049c6db224)
2022-06-16 10:25:54 +08:00

124 lines
4.5 KiB
RPMSpec

%global have_xen 0
Summary: Virtualization host metrics daemon
Name: vhostmd
Version: 1.1
Release: 1
License: GPLv2+
URL: https://github.com/vhostmd/vhostmd
Source0: https://github.com/vhostmd/vhostmd/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: vhostmd.conf
Patch0001: 0001-Relax-virtio-requirement-in-config-file.patch
Patch0002: 0002-libmetrics-Set-pointer-NULL-after-free.patch
Patch0003: 0003-libmetrics-Initialize-local-variable-ret-to-failure.patch
Patch0004: 0004-libmetrics-Check-return-value-of-asprintf.patch
Patch0005: 0005-libmetrics-Remove-unsafe-XML_PARSE_NOENT-option.patch
Patch0006: 0006-libmetrics-Ensure-libmetrics-mutex-is-unlocked-in-er.patch
Patch0007: 0007-libmetrics-Fix-potential-memory-leak.patch
Patch0008: 0008-libmetrics-Use-proper-conversion-specifier-when-call.patch
Patch0009: 0009-libmetrics-Fix-potential-leak-of-FILE-pointer.patch
Patch0010: 0010-util-Add-missing-call-to-va_end.patch
Patch0011: 0011-util-Fix-potential-memory-leak.patch
Patch0012: 0012-util-Check-return-value-of-strstr.patch
Patch0013: 0013-Check-return-value-of-asprintf.patch
Patch0014: 0014-vhostmd-Fix-memory-leak-in-parse_transports.patch
Patch0015: 0015-vhostmd-Remove-unsafe-XML_PARSE_NOENT-option.patch
Patch0016: 0016-vhostmd-Check-return-value-of-file-functions.patch
Patch0017: 0017-vhostmd-Check-for-valide-file-handle-before-calling-.patch
Patch0018: 0018-vhostmd-Fix-memory-leak-in-vhostmd_run.patch
Patch0019: 0019-virtio-Fix-strncpy-length-parameter.patch
BuildRequires: make
BuildRequires: gcc
BuildRequires: chrpath
BuildRequires: perl-generators
BuildRequires: pkgconfig
BuildRequires: libxml2-devel
BuildRequires: libvirt-devel
BuildRequires: autoconf, automake, libtool
BuildRequires: git
%{?systemd_requires}
BuildRequires: systemd
%if %{have_xen}
BuildRequires: xen-devel
%endif
Requires: libvirt
%description
vhostmd provides a "metrics communication channel" between a host and
its hosted virtual machines, allowing limited introspection of host
resource usage from within virtual machines.
%package -n vm-dump-metrics
Summary: Virtualization host metrics dump
%description -n vm-dump-metrics
Executable to dump all available virtualization host metrics to stdout
or a file.
%package -n vm-dump-metrics-devel
Summary: Virtualization host metrics dump development
Requires: vm-dump-metrics = %{version}-%{release}
Requires: pkgconfig
%description -n vm-dump-metrics-devel
Header and libraries necessary for metrics gathering development
%prep
%autosetup -S git
%build
autoreconf -i
%configure \
%if %{have_xen} == 0
--without-xenstore \
%endif
--with-init-script=systemd \
--enable-shared --disable-static
make %{_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
rm $RPM_BUILD_ROOT%{_libdir}/libmetrics.la
chrpath --delete $RPM_BUILD_ROOT%{_sbindir}/vm-dump-metrics
# Remove docdir - we'll make a proper one ourselves.
rm -r $RPM_BUILD_ROOT%{_docdir}/vhostmd
# Remove metric.dtd from /etc.
rm $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/metric.dtd
# The default configuration file is great for Xen, not so great
# for anyone else. Replace it with one which is better for libvirt
# users.
rm $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/vhostmd.conf
cp %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/vhostmd.conf
%pre
getent group vhostmd >/dev/null || groupadd -g 112 -r vhostmd
getent passwd vhostmd >/dev/null || \
useradd -u 112 -r -g vhostmd -d %{_datadir}/vhostmd -s /sbin/nologin \
-c "Virtual Host Metrics Daemon" vhostmd
exit 0
%post
%systemd_post vhostmd.service
%preun
%systemd_preun vhostmd.service
%postun
%systemd_postun_with_restart vhostmd.service
%files
%doc AUTHORS ChangeLog COPYING README
%doc mdisk.xml metric.dtd vhostmd.dtd vhostmd.xml
%{_sbindir}/vhostmd
%dir %{_sysconfdir}/vhostmd
%config(noreplace) %{_sysconfdir}/vhostmd/vhostmd.conf
%config %{_sysconfdir}/vhostmd/vhostmd.dtd
%{_unitdir}/vhostmd.service
%dir %{_datadir}/vhostmd
%dir %{_datadir}/vhostmd/scripts
%{_datadir}/vhostmd/scripts/pagerate.pl
%{_mandir}/man8/vhostmd.8.gz
%files -n vm-dump-metrics
%doc COPYING
%{_sbindir}/vm-dump-metrics
%{_libdir}/libmetrics.so.0
%{_libdir}/libmetrics.so.0.0.0
%{_mandir}/man1/vm-dump-metrics.1.gz
%files -n vm-dump-metrics-devel
%doc README
%{_libdir}/libmetrics.so
%dir %{_includedir}/vhostmd
%{_includedir}/vhostmd/libmetrics.h
%changelog
* Tue Aug 31 2021 shenhongyi <shenhongyi2@huawei.com> - 1.1-1
- Package init