465e6b
%if 0%{?fedora} > 27
465e6b
%global py2_prefix python2
465e6b
%else
465e6b
%global py2_prefix python
465e6b
%endif
465e6b
cf68a0
Name: criu
465e6b
Version: 3.5
cf68a0
Release: 4%{?dist}
cf68a0
Provides: crtools = %{version}-%{release}
cf68a0
Obsoletes: crtools <= 1.0-2
cf68a0
Summary: Tool for Checkpoint/Restore in User-space
cf68a0
Group: System Environment/Base
cf68a0
License: GPLv2
cf68a0
URL: http://criu.org/
cf68a0
Source0: http://download.openvz.org/criu/criu-%{version}.tar.bz2
465e6b
Patch0: 0001-fix-building-on-newest-glibc-and-kernel.patch
cf68a0
465e6b
%if ! 0%{?fedora}
465e6b
BuildRequires: perl
465e6b
# RHEL has no asciidoc; take man-page from Fedora 26
cf68a0
# zcat /usr/share/man/man8/criu.8.gz > criu.8
cf68a0
Source1: criu.8
cf68a0
Source2: crit.1
465e6b
# The patch aio-fix.patch is needed as RHEL7
465e6b
# doesn't do "nr_events *= 2" in ioctx_alloc().
465e6b
Patch100: aio-fix.patch
cf68a0
%endif
cf68a0
465e6b
Source3: criu-tmpfiles.conf
465e6b
465e6b
BuildRequires: systemd
cf68a0
BuildRequires: libnet-devel
cf68a0
BuildRequires: protobuf-devel protobuf-c-devel python2-devel libnl3-devel libcap-devel
cf68a0
%if 0%{?fedora}
cf68a0
BuildRequires: asciidoc xmlto
465e6b
BuildRequires: perl-interpreter
cf68a0
%endif
cf68a0
465e6b
# user-space and kernel changes are only available for x86_64, arm,
465e6b
# ppc64le, aarch64 and s390x
cf68a0
# https://bugzilla.redhat.com/show_bug.cgi?id=902875
465e6b
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
cf68a0
cf68a0
%description
cf68a0
criu is the user-space part of Checkpoint/Restore in User-space
cf68a0
(CRIU), a project to implement checkpoint/restore functionality for
cf68a0
Linux in user-space.
cf68a0
cf68a0
%if 0%{?fedora}
cf68a0
%package devel
cf68a0
Summary: Header files and libraries for %{name}
cf68a0
Group: Development/Libraries
cf68a0
Requires: %{name} = %{version}-%{release}
cf68a0
cf68a0
%description devel
cf68a0
This package contains header files and libraries for %{name}.
cf68a0
%endif
cf68a0
465e6b
%package -n %{py2_prefix}-%{name}
465e6b
%{?python_provide:%python_provide %{py2_prefix}-%{name}}
cf68a0
Summary: Python bindings for %{name}
cf68a0
Group: Development/Languages
cf68a0
Requires: %{name} = %{version}-%{release} python-ipaddr protobuf-python
cf68a0
465e6b
%description -n %{py2_prefix}-%{name}
cf68a0
python-%{name} contains Python bindings for %{name}.
cf68a0
cf68a0
%package -n crit
cf68a0
Summary: CRIU image tool
465e6b
Requires: %{py2_prefix}-%{name} = %{version}-%{release}
cf68a0
cf68a0
%description -n crit
cf68a0
crit is a tool designed to decode CRIU binary dump files and show
cf68a0
their content in human-readable form.
cf68a0
cf68a0
cf68a0
%prep
cf68a0
%setup -q
465e6b
%patch0 -p1
cf68a0
cf68a0
%build
cf68a0
# %{?_smp_mflags} does not work
cf68a0
# -fstack-protector breaks build
465e6b
CFLAGS+=`echo %{optflags} | sed -e 's,-fstack-protector\S*,,g'` make V=1 WERROR=0 PREFIX=%{_prefix} RUNDIR=/run/criu
cf68a0
%if 0%{?fedora}
cf68a0
make docs V=1
cf68a0
%endif
cf68a0
cf68a0
cf68a0
%install
cf68a0
make install-criu DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir}
cf68a0
make install-lib DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir}
cf68a0
%if 0%{?fedora}
465e6b
# only install documentation on Fedora as it requires asciidoc,
cf68a0
# which is not available on RHEL7
cf68a0
make install-man DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir}
cf68a0
%else
cf68a0
install -p -m 644  -D %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man8/%{name}.8
cf68a0
install -p -m 644  -D %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1/crit.1
cf68a0
%endif
cf68a0
465e6b
mkdir -p %{buildroot}%{_tmpfilesdir}
465e6b
install -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf
465e6b
install -d -m 0755 %{buildroot}/run/%{name}/
465e6b
465e6b
%if ! 0%{?fedora}
cf68a0
# remove devel package
cf68a0
rm -rf $RPM_BUILD_ROOT%{_includedir}/criu
cf68a0
rm $RPM_BUILD_ROOT%{_libdir}/*.so*
cf68a0
rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig
cf68a0
rm -rf $RPM_BUILD_ROOT%{_libexecdir}/%{name}
cf68a0
%endif
cf68a0
cf68a0
%post -p /sbin/ldconfig
cf68a0
%postun -p /sbin/ldconfig
cf68a0
cf68a0
%files
cf68a0
%{_sbindir}/%{name}
cf68a0
%doc %{_mandir}/man8/criu.8*
cf68a0
%if 0%{?fedora}
cf68a0
%{_libdir}/*.so.*
cf68a0
%{_libexecdir}/%{name}
cf68a0
%endif
465e6b
%dir /run/%{name}
465e6b
%{_tmpfilesdir}/%{name}.conf
cf68a0
%doc README.md COPYING
cf68a0
cf68a0
%if 0%{?fedora}
cf68a0
%files devel
cf68a0
%{_includedir}/criu
cf68a0
%{_libdir}/*.so
cf68a0
%{_libdir}/pkgconfig/*.pc
cf68a0
%endif
cf68a0
465e6b
%files -n %{py2_prefix}-%{name}
cf68a0
%{python2_sitelib}/pycriu/*
cf68a0
%{python2_sitelib}/*egg-info
cf68a0
cf68a0
%files -n crit
cf68a0
%{_bindir}/crit
cf68a0
%doc %{_mandir}/man1/crit.1*
cf68a0
cf68a0
cf68a0
%changelog
465e6b
* Tue Oct 10 2017 Adrian Reber <areber@redhat.com> - 3.5-4
465e6b
- Upgrade imported manpages to 3.5
465e6b
465e6b
* Mon Oct 09 2017 Adrian Reber <areber@redhat.com> - 3.5-3
465e6b
- Fix ExclusiveArch on RHEL
465e6b
465e6b
* Mon Oct 02 2017 Adrian Reber <adrian@lisas.de> - 3.5-2
465e6b
- Merge RHEL and Fedora spec file
cf68a0
465e6b
* Thu Sep 28 2017 Adrian Reber <adrian@lisas.de> - 3.5-1
465e6b
- Update to 3.5 (#1496614)
465e6b
465e6b
* Sun Aug 27 2017 Adrian Reber <adrian@lisas.de> - 3.4-1
465e6b
- Update to 3.4 (#1483774)
465e6b
- Removed upstreamed patches
465e6b
- Added s390x (#1475719)
465e6b
465e6b
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.3-5
465e6b
- Python 2 binary package renamed to python2-criu
465e6b
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
465e6b
465e6b
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-4
465e6b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
465e6b
465e6b
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-3
465e6b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
465e6b
465e6b
* Thu Jul 20 2017 Adrian Reber <adrian@lisas.de> - 3.3-2
465e6b
- Added patches to handle changes in glibc
465e6b
465e6b
* Wed Jul 19 2017 Adrian Reber <adrian@lisas.de> - 3.3-1
465e6b
- Update to 3.3
465e6b
465e6b
* Fri Jun 30 2017 Adrian Reber <adrian@lisas.de> - 3.2.1-2
465e6b
- Added patches to handle unified hierarchy and new glibc
465e6b
465e6b
* Wed Jun 28 2017 Adrian Reber <adrian@lisas.de> - 3.2.1-1
465e6b
- Update to 3.2.1-1
cf68a0
cf68a0
* Wed Jun 28 2017 Adrian Reber <areber@redhat.com> - 2.12-2
cf68a0
- Added patches for guard page kernel fixes
cf68a0
465e6b
* Thu Mar 09 2017 Adrian Reber <adrian@lisas.de> - 2.12-1
cf68a0
- Update to 2.12
cf68a0
465e6b
* Fri Feb 17 2017 Adrian Reber <adrian@lisas.de> - 2.11.1-1
465e6b
- Update to 2.11.1
465e6b
465e6b
* Thu Feb 16 2017 Adrian Reber <adrian@lisas.de> - 2.11-1
465e6b
- Update to 2.11
465e6b
465e6b
* Mon Feb 13 2017 Adrian Reber <adrian@lisas.de> - 2.10-4
465e6b
- Added patch to fix build on ppc64le
465e6b
465e6b
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.10-3
465e6b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
465e6b
465e6b
* Mon Jan 23 2017 Orion Poplawski <orion@cora.nwra.com> - 2.10-2
465e6b
- Rebuild for protobuf 3.2.0
465e6b
465e6b
* Mon Jan 16 2017 Adrian Reber <adrian@lisas.de> - 2.10-1
465e6b
- Update to 2.10
465e6b
465e6b
* Mon Dec 12 2016 Adrian Reber <adrian@lisas.de> - 2.9-1
465e6b
- Update to 2.9
465e6b
- Added crit manpage to crit subpackage
465e6b
cf68a0
* Tue Jun 14 2016 Adrian Reber <areber@redhat.com> - 2.3-2
cf68a0
- Added patches to handle in-flight TCP connections
cf68a0
cf68a0
* Tue Jun 14 2016 Adrian Reber <areber@redhat.com> - 2.3-1
cf68a0
- Update to 2.3
cf68a0
- Copy man-page from Fedora 24 for RHEL
cf68a0
cf68a0
* Mon May 23 2016 Adrian Reber <adrian@lisas.de> - 2.2-1
cf68a0
- Update to 2.2
cf68a0
cf68a0
* Tue Apr 12 2016 Adrian Reber <adrian@lisas.de> - 2.1-2
cf68a0
- Remove crtools symbolic link
cf68a0
cf68a0
* Mon Apr 11 2016 Adrian Reber <adrian@lisas.de> - 2.1-1
cf68a0
- Update to 2.1
cf68a0
cf68a0
* Fri Apr 08 2016 Adrian Reber <areber@redhat.com> - 2.0-3
cf68a0
- Exclude arm and aarch64 from build
cf68a0
cf68a0
* Wed Apr 06 2016 Adrian Reber <areber@redhat.com> - 2.0-2
cf68a0
- Merge changes from Fedora
cf68a0
cf68a0
* Thu Mar 10 2016 Andrey Vagin <avagin@openvz.org> - 2.0-1
cf68a0
- Update to 2.0
cf68a0
cf68a0
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-2
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
cf68a0
cf68a0
* Mon Dec 07 2015 Adrian Reber <adrian@lisas.de> - 1.8-1
cf68a0
- Update to 1.8
cf68a0
cf68a0
* Mon Nov 02 2015 Adrian Reber <adrian@lisas.de> - 1.7.2-1
cf68a0
- Update to 1.7.2
cf68a0
cf68a0
* Mon Sep 7 2015 Andrey Vagin <avagin@openvz.org> - 1.7-1
cf68a0
- Update to 1.7
cf68a0
cf68a0
* Mon Aug 31 2015 Adrian Reber <areber@redhat.com> - 1.6.1-3
cf68a0
- added patch to fix broken docker checkpoint/restore (#1258539)
cf68a0
cf68a0
* Fri Aug 28 2015 Adrian Reber <areber@redhat.com> - 1.6.1-2
cf68a0
- removed criu.service (CVE-2015-5228, CVE-2015-5231)
cf68a0
- removed devel sub-package (related to above CVEs)
cf68a0
cf68a0
* Wed Aug 19 2015 Adrian Reber <areber@redhat.com> - 1.6.1-1.1
cf68a0
- fix release version number
cf68a0
cf68a0
* Thu Aug 13 2015 Adrian Reber <adrian@lisas.de> - 1.6.1-1
cf68a0
- Update to 1.6.1
cf68a0
- Merge changes for RHEL packaging
cf68a0
cf68a0
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6-2
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
cf68a0
cf68a0
* Tue Jun 09 2015 Adrian Reber <areber@redhat.com> - 1.6-1.1
cf68a0
- adapt to RHEL7
cf68a0
cf68a0
* Mon Jun 01 2015 Andrew Vagin <avagin@openvz.org> - 1.6-1
cf68a0
- Update to 1.6
cf68a0
cf68a0
* Thu Apr 30 2015 Andrew Vagin <avagin@openvz.org> - 1.5.2-2
cf68a0
- Require protobuf-python and python-ipaddr for python-criu
cf68a0
cf68a0
* Tue Apr 28 2015 Andrew Vagin <avagin@openvz.org> - 1.5.2
cf68a0
- Update to 1.5.2
cf68a0
cf68a0
* Sun Apr 19 2015 Nikita Spiridonov <nspiridonov@odin.com> - 1.5.1-2
cf68a0
- Create python-criu and crit subpackages
cf68a0
cf68a0
* Tue Mar 31 2015 Andrew Vagin <avagin@openvz.org> - 1.5.1
cf68a0
- Update to 1.5.1
cf68a0
cf68a0
* Sat Dec 06 2014 Adrian Reber <adrian@lisas.de> - 1.4-1
cf68a0
- Update to 1.4
cf68a0
cf68a0
* Tue Sep 23 2014 Adrian Reber <adrian@lisas.de> - 1.3.1-1
cf68a0
- Update to 1.3.1 (#1142896)
cf68a0
cf68a0
* Tue Sep 02 2014 Adrian Reber <adrian@lisas.de> - 1.3-1
cf68a0
- Update to 1.3
cf68a0
- Dropped all upstreamed patches
cf68a0
- included pkgconfig file in -devel
cf68a0
cf68a0
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-5
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
cf68a0
cf68a0
* Thu Aug 07 2014 Andrew Vagin <avagin@openvz.org> - 1.2-4
cf68a0
- Include inttypes.h for PRI helpers
cf68a0
cf68a0
* Thu Aug 07 2014 Andrew Vagin <avagin@openvz.org> - 1.2-3
cf68a0
- Rebuilt for https://bugzilla.redhat.com/show_bug.cgi?id=1126751
cf68a0
cf68a0
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-2
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
cf68a0
cf68a0
* Fri Feb 28 2014 Adrian Reber <adrian@lisas.de> - 1.2-1
cf68a0
- Update to 1.2
cf68a0
- Dropped all upstreamed patches
cf68a0
cf68a0
* Tue Feb 04 2014 Adrian Reber <adrian@lisas.de> - 1.1-4
cf68a0
- Create -devel subpackage
cf68a0
cf68a0
* Wed Dec 11 2013 Andrew Vagin <avagin@openvz.org> - 1.0-3
cf68a0
- Fix the epoch of crtools
cf68a0
cf68a0
* Tue Dec 10 2013 Andrew Vagin <avagin@openvz.org> - 1.0-2
cf68a0
- Rename crtools to criu #1034677
cf68a0
cf68a0
* Wed Nov 27 2013 Andrew Vagin <avagin@openvz.org> - 1.0-1
cf68a0
- Update to 1.0
cf68a0
cf68a0
* Thu Oct 24 2013 Andrew Vagin <avagin@openvz.org> - 0.8-1
cf68a0
- Update to 0.8
cf68a0
cf68a0
* Tue Sep 10 2013 Andrew Vagin <avagin@openvz.org> - 0.7-1
cf68a0
- Update to 0.7
cf68a0
cf68a0
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-5
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
cf68a0
cf68a0
* Wed Jul 24 2013 Andrew Vagin <avagin@openvz.org> - 0.6-3
cf68a0
- Delete all kind of -fstack-protector gcc options
cf68a0
cf68a0
* Wed Jul 24 2013 Andrew Vagin <avagin@openvz.org> - 0.6-3
cf68a0
- Added arm macro to ExclusiveArch
cf68a0
cf68a0
* Wed Jul 03 2013 Andrew Vagin <avagin@openvz.org> - 0.6-2
cf68a0
- fix building on ARM
cf68a0
- fix null pointer dereference
cf68a0
cf68a0
* Tue Jul 02 2013 Adrian Reber <adrian@lisas.de> - 0.6-1
cf68a0
- updated to 0.6
cf68a0
- upstream moved binaries to sbin
cf68a0
- using upstream's make install
cf68a0
cf68a0
* Tue May 14 2013 Adrian Reber <adrian@lisas.de> - 0.5-1
cf68a0
- updated to 0.5
cf68a0
cf68a0
* Fri Feb 22 2013 Adrian Reber <adrian@lisas.de> - 0.4-1
cf68a0
- updated to 0.4
cf68a0
cf68a0
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-4
cf68a0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
cf68a0
cf68a0
* Tue Jan 22 2013 Adrian Reber <adrian@lisas.de> - 0.3-3
cf68a0
- added ExclusiveArch blocker bug
cf68a0
cf68a0
* Fri Jan 18 2013 Adrian Reber <adrian@lisas.de> - 0.3-2
cf68a0
- improved Summary and Description
cf68a0
cf68a0
* Mon Jan 14 2013 Adrian Reber <adrian@lisas.de> - 0.3-1
cf68a0
- updated to 0.3
cf68a0
- fix building Documentation/
cf68a0
cf68a0
* Tue Aug 21 2012 Adrian Reber <adrian@lisas.de> - 0.2-2
cf68a0
- remove macros like %%{__mkdir_p} and %%{__install}
cf68a0
- add comment why it is only x86_64
cf68a0
cf68a0
* Tue Aug 21 2012 Adrian Reber <adrian@lisas.de> - 0.2-1
cf68a0
- initial release