bdb0eb
Name:		fence-virt
bdb0eb
Version:	0.3.2
79092b
Release:	16%{?dist}
bdb0eb
Summary:	A pluggable fencing framework for virtual machines
bdb0eb
Group:		System Environment/Base
bdb0eb
License:	GPLv2+
bdb0eb
bdb0eb
%if 0%{?rhel}
bdb0eb
ExclusiveArch: i686 x86_64 ppc64le
bdb0eb
%endif
bdb0eb
bdb0eb
URL:		http://fence-virt.sourceforge.net
bdb0eb
Source0:	http://people.redhat.com/rmccabe/fence-virt/%{name}-%{version}.tar.bz2
bdb0eb
bdb0eb
Patch0: bz1207422-client_do_not_truncate_vm_domains_in_list_output.patch
bdb0eb
Patch1: bz1078197-fix_broken_restrictions_on_the_port_ranges.patch
bdb0eb
Patch2: bz1204873-fix_delay_parameter_checking_copy_paste.patch
bdb0eb
Patch3: bz1204877-remove_delay_from_the_status,_monitor_and_list.patch
bdb0eb
Patch4: bz1334170-allow_fence_virtd_to_run_as_non_root.patch
bdb0eb
Patch5: bz1334170-2-fix_use_of_undefined_#define.patch
bdb0eb
Patch6: bz1291522-Install_firewalld_unit_file.patch
bdb0eb
Patch7: bz1393958-cleanup_numeric_argument_parsing.patch
bdb0eb
Patch8: bz1411910-fence_virtd_drop_legacy_sysvstartpriority_from_service.patch
bdb0eb
Patch9: bz1334170-cleanup_documentation_of_the_tcp_listener.patch
bdb0eb
Patch10: bz1092531-enable_hardening.patch
bdb0eb
Patch11: bz1447700-virt_add_support_for_the_validate_all_status.patch
bdb0eb
Patch12: bz1384181-make_the_libvirt_backend_survive_libvirtd.patch
bdb0eb
Patch13: bz1600566-fence_virt-dont-report-success-incorrect-parameter.patch
79092b
Patch14: bz1766995-fence_virtd-1-fix-segfault-no-domains.patch
79092b
Patch15: bz1766995-fence_virtd-2-fix-select-logic.patch
79092b
Patch16: bz1766995-fence_virtd-3-return-mainloop-on-interrupt.patch
bdb0eb
bdb0eb
BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
bdb0eb
bdb0eb
BuildRequires:	corosynclib-devel libvirt-devel
bdb0eb
BuildRequires:	automake autoconf libxml2-devel nss-devel nspr-devel
bdb0eb
BuildRequires:	flex bison libuuid-devel
bdb0eb
bdb0eb
BuildRequires: systemd-units
bdb0eb
Requires(post):	systemd-sysv systemd-units firewalld-filesystem
bdb0eb
Requires(preun):	systemd-units
bdb0eb
Requires(postun):	systemd-units
bdb0eb
bdb0eb
Conflicts:	fence-agents < 3.0.5-2
bdb0eb
bdb0eb
bdb0eb
%description
bdb0eb
Fencing agent for virtual machines.
bdb0eb
bdb0eb
%global _hardened_build 1
bdb0eb
bdb0eb
%package -n fence-virtd
bdb0eb
Summary:	Daemon which handles requests from fence-virt
bdb0eb
Group:		System Environment/Base
bdb0eb
bdb0eb
%description -n fence-virtd
bdb0eb
This package provides the host server framework, fence_virtd,
bdb0eb
for fence_virt.  The fence_virtd host daemon is resposible for
bdb0eb
processing fencing requests from virtual machines and routing
bdb0eb
the requests to the appropriate physical machine for action.
bdb0eb
bdb0eb
bdb0eb
%package -n fence-virtd-multicast
bdb0eb
Summary:	Multicast listener for fence-virtd
bdb0eb
Group:		System Environment/Base
bdb0eb
Requires:	fence-virtd
bdb0eb
bdb0eb
%description -n fence-virtd-multicast
bdb0eb
Provides multicast listener capability for fence-virtd.
bdb0eb
bdb0eb
bdb0eb
%package -n fence-virtd-serial
bdb0eb
Summary:	Serial VMChannel listener for fence-virtd
bdb0eb
Group:		System Environment/Base
bdb0eb
Requires:	libvirt >= 0.6.2
bdb0eb
Requires:	fence-virtd
bdb0eb
bdb0eb
%description -n fence-virtd-serial
bdb0eb
Provides serial VMChannel listener capability for fence-virtd.
bdb0eb
bdb0eb
%package -n fence-virtd-tcp
79092b
Summary:	TCP listener for fence-virtd
79092b
Group:		System Environment/Base
bdb0eb
Requires:	fence-virtd
bdb0eb
bdb0eb
%description -n fence-virtd-tcp
bdb0eb
Provides TCP listener capability for fence-virtd.
bdb0eb
bdb0eb
%package -n fence-virtd-libvirt
bdb0eb
Summary:	Libvirt backend for fence-virtd
bdb0eb
Group:		System Environment/Base
bdb0eb
Requires:	libvirt >= 0.6.0
bdb0eb
Requires:	fence-virtd
bdb0eb
bdb0eb
%description -n fence-virtd-libvirt
bdb0eb
Provides fence_virtd with a connection to libvirt to fence
bdb0eb
virtual machines.  Useful for running a cluster of virtual
bdb0eb
machines on a desktop.
bdb0eb
bdb0eb
bdb0eb
%prep
bdb0eb
%setup -q
bdb0eb
bdb0eb
%patch0 -p1 -b .bz1207422
bdb0eb
%patch1 -p1 -b .bz1078197.1
bdb0eb
%patch2 -p1 -b .bz1204873.1
bdb0eb
%patch3 -p1 -b .bz1204877.1
bdb0eb
%patch4 -p1 -b .bz1334170.1
bdb0eb
%patch5 -p1 -b .bz1334170.2
bdb0eb
%patch6 -p1 -b .bz1291522.1
bdb0eb
%patch7 -p1 -b .bz1393958.1
bdb0eb
%patch8 -p1 -b .bz1411910.1
bdb0eb
%patch9 -p1 -b .bz1334170.1
bdb0eb
%patch10 -p1 -b .bz1092531.1
bdb0eb
%patch11 -p1 -b .bz1447700.1
bdb0eb
%patch12 -p1 -b .bz1384181.1
bdb0eb
%patch13 -p1 -F1
79092b
%patch14 -p1
79092b
%patch15 -p1
79092b
%patch16 -p1
bdb0eb
bdb0eb
%build
bdb0eb
%ifarch s390 s390x sparcv9 sparc64
bdb0eb
export PIECFLAGS="-fPIE"
bdb0eb
%else
bdb0eb
export PIECFLAGS="-fpie"
bdb0eb
%endif
bdb0eb
bdb0eb
export RELRO="-Wl,-z,relro,-z,now"
bdb0eb
export CFLAGS="$RPM_OPT_FLAGS $CPPFLAGS $PIECFLAGS $RELRO"
bdb0eb
export CXXFLAGS="$RPM_OPT_FLAGS $CPPFLAGS $PIECFLAGS $RELRO"
bdb0eb
export LDFLAGS="$LDFLAGS -pie"
bdb0eb
bdb0eb
./autogen.sh
bdb0eb
%{configure} --disable-libvirt-qmf-plugin --enable-tcp-plugin
bdb0eb
make %{?_smp_mflags}
bdb0eb
bdb0eb
bdb0eb
%install
bdb0eb
rm -rf %{buildroot}
bdb0eb
make install DESTDIR=%{buildroot}
bdb0eb
bdb0eb
# Systemd unit file
bdb0eb
mkdir -p %{buildroot}/%{_unitdir}/
bdb0eb
install -m 0644 fence_virtd.service %{buildroot}/%{_unitdir}/
bdb0eb
bdb0eb
# firewalld service file
bdb0eb
mkdir -p %{buildroot}/%{_prefix}/lib/firewalld/services/
bdb0eb
install -m 0644 fence_virt.xml %{buildroot}/%{_prefix}/lib/firewalld/services/
bdb0eb
bdb0eb
%clean
bdb0eb
rm -rf %{buildroot}
bdb0eb
bdb0eb
bdb0eb
%files
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%doc COPYING TODO README
bdb0eb
%{_sbindir}/fence_virt
bdb0eb
%{_sbindir}/fence_xvm
bdb0eb
%{_mandir}/man8/fence_virt.*
bdb0eb
%{_mandir}/man8/fence_xvm.*
bdb0eb
bdb0eb
bdb0eb
%post
bdb0eb
ccs_update_schema > /dev/null 2>&1 ||:
bdb0eb
# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
bdb0eb
if [ $1 -eq 1 ] ; then 
bdb0eb
    # Initial installation 
bdb0eb
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
bdb0eb
fi
bdb0eb
bdb0eb
%preun
bdb0eb
# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
bdb0eb
if [ $1 -eq 0 ] ; then
bdb0eb
    # Package removal, not upgrade
bdb0eb
    /bin/systemctl --no-reload disable fence_virtd.service &> /dev/null || :
bdb0eb
    /bin/systemctl stop fence_virtd.service &> /dev/null || :
bdb0eb
fi
bdb0eb
bdb0eb
%postun
bdb0eb
# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
bdb0eb
/bin/systemctl daemon-reload &> /dev/null || :
bdb0eb
if [ $1 -ge 1 ] ; then
bdb0eb
    # Package upgrade, not uninstall
bdb0eb
    /bin/systemctl try-restart fence_virtd.service &> /dev/null || :
bdb0eb
fi
bdb0eb
bdb0eb
bdb0eb
%triggerun -- fence_virtd < 0.3.0-1
bdb0eb
# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript
bdb0eb
/usr/bin/systemd-sysv-convert --save fence_virtd &> /dev/null || :
bdb0eb
/sbin/chkconfig --del fence_virtd &> /dev/null || :
bdb0eb
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
bdb0eb
/bin/systemctl try-restart fence_virtd.service &> /dev/null || :
bdb0eb
bdb0eb
bdb0eb
%files -n fence-virtd
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%{_sbindir}/fence_virtd
bdb0eb
%{_unitdir}/fence_virtd.service
bdb0eb
%{_prefix}/lib/firewalld/services/fence_virt.xml
bdb0eb
%config(noreplace) %{_sysconfdir}/fence_virt.conf
bdb0eb
%dir %{_libdir}/%{name}
bdb0eb
%{_mandir}/man5/fence_virt.conf.*
bdb0eb
%{_mandir}/man8/fence_virtd.*
bdb0eb
bdb0eb
%files -n fence-virtd-multicast
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%{_libdir}/%{name}/multicast.so
bdb0eb
bdb0eb
%files -n fence-virtd-serial
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%{_libdir}/%{name}/serial.so
bdb0eb
bdb0eb
%files -n fence-virtd-tcp
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%{_libdir}/%{name}/tcp.so
bdb0eb
bdb0eb
%files -n fence-virtd-libvirt
bdb0eb
%defattr(-,root,root,-)
bdb0eb
%{_libdir}/%{name}/libvirt.so
bdb0eb
bdb0eb
%changelog
79092b
* Thu Jan 30 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.3.2-16
79092b
- fence_virtd: fix segfault when no domains are found
79092b
  Resolves: rhbz#1766995
79092b
bdb0eb
* Tue Jan 22 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.3.2-14
bdb0eb
- fence_xvm/fence_virt: dont report success incorrect parameter
bdb0eb
  Resolves: rhbz#1600566
bdb0eb
bdb0eb
* Wed Aug 09 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-13
bdb0eb
- fence_virtd: Make the libvirt backend survive libvirtd restarts
bdb0eb
  Resolves: rhbz#1384181
bdb0eb
- fence_xvm/fence_virt: Add support for the validate-all status
bdb0eb
  Resolves: rhbz#1447700
bdb0eb
bdb0eb
* Wed Jun 14 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-12
bdb0eb
- fence-virt: Rebuild to restore debuginfo
bdb0eb
  Resolves: rhbz#1092531
bdb0eb
bdb0eb
* Mon May 22 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-11
bdb0eb
- fence-virt: Enable PIE and full RELRO
bdb0eb
  Resolves: rhbz#1092531
bdb0eb
bdb0eb
* Mon May 22 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-10
bdb0eb
- fence-virt: Enable PIE and RELRO
bdb0eb
  Resolves: rhbz#1092531
bdb0eb
bdb0eb
* Wed May 17 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-9
bdb0eb
- fence-virtd: Cleanup documentation of the TCP listener
bdb0eb
  Resolves: rhbz#1334170
bdb0eb
bdb0eb
* Wed Mar 15 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-8
bdb0eb
- fence-virt: Build for ppc64le
bdb0eb
  Resolves: rhbz#1402572
bdb0eb
bdb0eb
* Mon Mar 13 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-7
bdb0eb
- fence_virtd: drop legacy SysVStartPriority from service
bdb0eb
  Resolves: rhbz#1411910
bdb0eb
bdb0eb
* Mon Mar 13 2017 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-6
bdb0eb
- fence-virt: Cleanup numeric argument parsing
bdb0eb
  Resolves: rhbz#1393958
bdb0eb
bdb0eb
* Tue Jun 28 2016 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-5
bdb0eb
- fence-virt: Add firewalld service file.
bdb0eb
  Resolves: rhbz#1291522
bdb0eb
bdb0eb
* Mon Jun 27 2016 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-4
bdb0eb
- fence-virt: Enable the TCP listener plugin
bdb0eb
  Resolves: rhbz#1334170
bdb0eb
- Allow fence_virtd to run as non-root
bdb0eb
  Fix use of undefined define
bdb0eb
  Resolves: rhbz#1334170
bdb0eb
bdb0eb
* Mon Jun 27 2016 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-3
bdb0eb
- fence-virt: Fix broken restrictions on the port ranges
bdb0eb
  Resolves: rhbz#1214301
bdb0eb
- client: Fix "delay" parameter checking
bdb0eb
  Resolves: rhbz#1204877
bdb0eb
- Remove delay from the status, monitor and list
bdb0eb
  Resolves: rhbz#1204877
bdb0eb
bdb0eb
* Fri Jul 17 2015 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-2
bdb0eb
- Do not truncate VM domains in the output of the list command.
bdb0eb
  Resolves: rhbz#1207422
bdb0eb
bdb0eb
* Mon Sep 08 2014 Ryan McCabe <rmccabe@redhat.com> - 0.3.2-1
bdb0eb
- Rebase to the 0.3.2 release.
bdb0eb
  Resolves: rhbz#1111384
bdb0eb
bdb0eb
* Wed Feb 19 2014 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-16
bdb0eb
- Fail cleanly when unable to bind the TCP listener socket
bdb0eb
bdb0eb
* Tue Feb 18 2014 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-15
bdb0eb
- Remove references to syslog.target from the fence_virtd systemd unit file
bdb0eb
bdb0eb
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.3.0-14
bdb0eb
- Mass rebuild 2013-12-27
bdb0eb
bdb0eb
* Tue May 07 2013 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-13
bdb0eb
- Rebuild
bdb0eb
bdb0eb
* Tue May 07 2013 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-12
bdb0eb
- Drop libvirt-qmf-plugin
bdb0eb
bdb0eb
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.0-11
bdb0eb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
bdb0eb
bdb0eb
* Fri Nov 02 2012 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-10
bdb0eb
- bswap fix for big endian
bdb0eb
bdb0eb
* Fri Nov 02 2012 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-9
bdb0eb
- Return success if a domain exists but is already off.
bdb0eb
bdb0eb
* Thu Oct 25 2012 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-8
bdb0eb
- Version bump
bdb0eb
bdb0eb
* Thu Oct 25 2012 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-7
bdb0eb
- Fix uninitialized variable for the -w option.
bdb0eb
bdb0eb
* Mon Oct 15 2012 Ryan McCabe <rmccabe@redhat.com> - 0.3.0-6
bdb0eb
- Add a -w (delay) option.
bdb0eb
- Return failure when attempting to fence a nonexistent domain
bdb0eb
- Improve man pages
bdb0eb
bdb0eb
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.0-5
bdb0eb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
bdb0eb
bdb0eb
* Tue Mar 27 2012 Ryan McCabe <rmccabe@fedoraproject.org> 0.3.0-4
bdb0eb
- Add QPid build fix patch from upstream.
bdb0eb
bdb0eb
* Fri Feb 10 2012 Lon Hohberger <lon@fedoraproject.org> 0.3.0-2
bdb0eb
- Fix URL / Source0 lines
bdb0eb
  Resolves: Fedora#706560
bdb0eb
bdb0eb
* Tue Feb 07 2012 Lon Hohberger <lhh@redhat.com> 0.3.0-1
bdb0eb
- Rebase from upstream to 0.3.0
bdb0eb
- Systemd unit file integration
bdb0eb
- Pacemaker backend
bdb0eb
- Various fixes for startup
bdb0eb
- Rename libvirt-qpid to libvirt-qmf backend
bdb0eb
- Updated default configuration for easier deployment on
bdb0eb
  Fedora systems
bdb0eb
bdb0eb
* Tue Feb 07 2012 Lon Hohberger <lhh@redhat.com> - 0.2.3-6
bdb0eb
- Bump and rebuild
bdb0eb
bdb0eb
* Tue Feb 07 2012 Lon Hohberger <lhh@redhat.com> - 0.2.3-5
bdb0eb
- Fixup changelog
bdb0eb
bdb0eb
* Mon Feb 06 2012 Lon Hohberger <lhh@redhat.com> - 0.2.3-4
bdb0eb
- Drop checkpoint backend since cman and openais are gone
bdb0eb
bdb0eb
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.3-3
bdb0eb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
bdb0eb
bdb0eb
* Fri Jul  8 2011 Fabio M. Di Nitto <fdinitto@redhat.com> - 0.2.3-2
bdb0eb
- add post call to fence-virt to integrate with cluster 3.1.4
bdb0eb
bdb0eb
* Wed Jun 29 2011 Fabio M. Di Nitto <fdinitto@redhat.com> 0.2.3-1
bdb0eb
- new upstream release fix compat regression
bdb0eb
bdb0eb
* Mon Jun 27 2011 Fabio M. Di Nitto <fdinitto@redhat.com> 0.2.2-1
bdb0eb
- new upstream release
bdb0eb
bdb0eb
* Mon May 09 2011 Fabio M. Di Nitto <fdinitto@redhat.com> 0.2.1-5
bdb0eb
- Rebuilt for libqmfconsole soname change
bdb0eb
bdb0eb
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.1-4
bdb0eb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
bdb0eb
bdb0eb
* Thu Apr 01 2010 Lon Hohberger <lhh@redhat.com> 0.2.1-3
bdb0eb
- Update specfile to require correct qpid/qmf libraries
bdb0eb
- Resolves: bz#565111
bdb0eb
bdb0eb
* Tue Feb 23 2010 Fabio M. Di Nitto <fdinitto@redhat.com> 0.2.1-2
bdb0eb
- Update spec file to handle correctly versioned Requires
bdb0eb
bdb0eb
* Fri Jan 15 2010 Lon Hohberger <lhh@redhat.com> 0.2.1-1
bdb0eb
- Update to latest upstream version
bdb0eb
- Fix bug around status return codes for VMs which are 'off'
bdb0eb
bdb0eb
* Thu Jan 14 2010 Lon Hohberger <lhh@redhat.com> 0.2-1
bdb0eb
- Update to latest upstream version
bdb0eb
- Serial & VMChannel listener support
bdb0eb
- Static permission map support
bdb0eb
- Man pages
bdb0eb
- Init script
bdb0eb
- Various bugfixes
bdb0eb
bdb0eb
* Mon Sep 21 2009 Lon Hohberger <lhh@redhat.com> 0.1.3-1
bdb0eb
- Update to latest upstream version
bdb0eb
- Adds libvirt-qpid backend support
bdb0eb
- Fixes UUID operation with libvirt backend
bdb0eb
- Adds man page for fence_xvm and fence_virt
bdb0eb
- Provides fence_xvm compatibility for cluster 3.0.6
bdb0eb
bdb0eb
* Mon Sep 21 2009 Lon Hohberger <lhh@redhat.com> 0.1.2-1
bdb0eb
- Update to latest upstream version
bdb0eb
- Fix build issue on i686
bdb0eb
bdb0eb
* Mon Sep 21 2009 Lon Hohberger <lhh@redhat.com> 0.1.1-1
bdb0eb
- Update to latest upstream version
bdb0eb
- Clean up spec file
bdb0eb
bdb0eb
* Mon Sep 21 2009 Lon Hohberger <lhh@redhat.com> 0.1-2
bdb0eb
- Spec file cleanup
bdb0eb
bdb0eb
* Thu Sep 17 2009 Lon Hohberger <lhh@redhat.com> 0.1-1
bdb0eb
- Initial build for rawhide