diff --git a/.gitignore b/.gitignore
index 6de2f40..a0ff6d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/libvirt-python-3.9.0.tar.gz
+SOURCES/libvirt-python-4.5.0.tar.gz
diff --git a/.libvirt-python.metadata b/.libvirt-python.metadata
index 8d82342..31136ec 100644
--- a/.libvirt-python.metadata
+++ b/.libvirt-python.metadata
@@ -1 +1 @@
-fc77082f30852b8d45c90960616acdde64f41507 SOURCES/libvirt-python-3.9.0.tar.gz
+9183f6d27215bcac2be5584f42a55701647ce870 SOURCES/libvirt-python-4.5.0.tar.gz
diff --git a/SPECS/libvirt-python.spec b/SPECS/libvirt-python.spec
index 5cd31ac..751bdce 100644
--- a/SPECS/libvirt-python.spec
+++ b/SPECS/libvirt-python.spec
@@ -1,22 +1,57 @@
+# -*- rpm-spec -*-
+
+# This spec file assumes you are building on a Fedora or RHEL version
+# that's still supported by the vendor. It may work on other distros
+# or versions, but no effort will be made to ensure that going forward
+%define min_rhel 6
+%define min_fedora 25
+
+%if (0%{?fedora} && 0%{?fedora} >= %{min_fedora}) || (0%{?rhel} && 0%{?rhel} >= %{min_rhel})
+    %define supported_platform 1
+%else
+    %define supported_platform 0
+%endif
+
+%define _with_python2 1
+%if 0%{?fedora} > 29 || 0%{?rhel} > 7
+%define _with_python2 0
+%endif
+
+%define _with_python3 0
+%if 0%{?fedora} || 0%{?rhel} > 7
+%define _with_python3 1
+%endif
 
-%define with_python3 0
-%if 0%{?fedora}
-%define with_python3 1
+# Whether py2 packages are assumed to have python2- name prefix
+%define py2_versioned_deps 0
+%if 0%{?fedora} || 0%{?rhel} > 7
+%define py2_versioned_deps 1
 %endif
 
+%{!?with_python2: %define with_python2 %{_with_python2}}
+%{!?with_python3: %define with_python3 %{_with_python3}}
+
 Summary: The libvirt virtualization API python2 binding
 Name: libvirt-python
-Version: 3.9.0
+Version: 4.5.0
 Release: 1%{?dist}%{?extra_release}
 Source0: http://libvirt.org/sources/python/%{name}-%{version}.tar.gz
 Url: http://libvirt.org
 License: LGPLv2+
 Group: Development/Libraries
 BuildRequires: git
-BuildRequires: libvirt-devel >= 3.9.0-1%{?dist}
+BuildRequires: libvirt-devel >= 4.5.0-1%{?dist}
+%if %{with_python2}
+%if %{py2_versioned_deps}
+BuildRequires: python2-devel
+BuildRequires: python2-nose
+BuildRequires: python2-lxml
+%else
 BuildRequires: python-devel
 BuildRequires: python-nose
 BuildRequires: python-lxml
+%endif
+%endif
 %if %{with_python3}
 BuildRequires: python3-devel
 BuildRequires: python3-nose
@@ -24,7 +59,12 @@ BuildRequires: python3-lxml
 %endif
 
 # Don't want provides for python shared objects
+%if %{with_python2}
 %{?filter_provides_in: %filter_provides_in %{python_sitearch}/.*\.so}
+%endif
+%if %{with_python3}
+%{?filter_provides_in: %filter_provides_in %{python3_sitearch}/.*\.so}
+%endif
 %{?filter_setup}
 
 %description
@@ -56,19 +96,30 @@ of recent versions of Linux (and other OSes).
 find examples -type f -exec chmod 0644 \{\} \;
 
 %build
+%if ! %{supported_platform}
+echo "This RPM requires either Fedora >= %{min_fedora} or RHEL >= %{min_rhel}"
+exit 1
+%endif
+
+%if %{with_python2}
 CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
+%endif
 %if %{with_python3}
 CFLAGS="$RPM_OPT_FLAGS" %{__python3} setup.py build
 %endif
 
 %install
+%if %{with_python2}
 %{__python} setup.py install --skip-build --root=%{buildroot}
+%endif
 %if %{with_python3}
 %{__python3} setup.py install --skip-build --root=%{buildroot}
 %endif
 
 %check
+%if %{with_python2}
 %{__python} setup.py test
+%endif
 %if %{with_python3}
 %{__python3} setup.py test
 %endif
@@ -76,29 +127,37 @@ CFLAGS="$RPM_OPT_FLAGS" %{__python3} setup.py build
 %files
 %defattr(-,root,root)
 %doc ChangeLog AUTHORS NEWS README COPYING COPYING.LESSER examples/
-%{_libdir}/python2*/site-packages/libvirt.py*
-%{_libdir}/python2*/site-packages/libvirt_qemu.py*
-%{_libdir}/python2*/site-packages/libvirt_lxc.py*
-%{_libdir}/python2*/site-packages/libvirtmod*
-%{_libdir}/python2*/site-packages/*egg-info
+%{python_sitearch}/libvirt.py*
+%{python_sitearch}/libvirt_qemu.py*
+%{python_sitearch}/libvirt_lxc.py*
+%{python_sitearch}/libvirtmod*
+%{python_sitearch}/*egg-info
 
 %if %{with_python3}
 %files -n libvirt-python3
 %defattr(-,root,root)
 %doc ChangeLog AUTHORS NEWS README COPYING COPYING.LESSER examples/
-%{_libdir}/python3*/site-packages/libvirt.py*
-%{_libdir}/python3*/site-packages/libvirtaio.py*
-%{_libdir}/python3*/site-packages/libvirt_qemu.py*
-%{_libdir}/python3*/site-packages/libvirt_lxc.py*
-%{_libdir}/python3*/site-packages/__pycache__/libvirt.cpython-*.py*
-%{_libdir}/python3*/site-packages/__pycache__/libvirt_qemu.cpython-*.py*
-%{_libdir}/python3*/site-packages/__pycache__/libvirt_lxc.cpython-*.py*
-%{_libdir}/python3*/site-packages/__pycache__/libvirtaio.cpython-*.py*
-%{_libdir}/python3*/site-packages/libvirtmod*
-%{_libdir}/python3*/site-packages/*egg-info
+%{python3_sitearch}/libvirt.py*
+%{python3_sitearch}/libvirtaio.py*
+%{python3_sitearch}/libvirt_qemu.py*
+%{python3_sitearch}/libvirt_lxc.py*
+%{python3_sitearch}/__pycache__/libvirt.cpython-*.py*
+%{python3_sitearch}/__pycache__/libvirt_qemu.cpython-*.py*
+%{python3_sitearch}/__pycache__/libvirt_lxc.cpython-*.py*
+%{python3_sitearch}/__pycache__/libvirtaio.cpython-*.py*
+%{python3_sitearch}/libvirtmod*
+%{python3_sitearch}/*egg-info
 %endif
 
 %changelog
+* Tue Jul  3 2018 Jiri Denemark <jdenemar@redhat.com> - 4.5.0-1
+- Rebased to libvirt-python-4.5.0 (rhbz#1563171)
+
+* Fri Jun 15 2018 Jiri Denemark <jdenemar@redhat.com> - 4.4.0-1
+- Rebased to libvirt-python-4.4.0 (rhbz#1563171)
+- The rebase also fixes the following bugs:
+    rhbz#1542358, rhbz#1578337
+
 * Fri Nov  3 2017 Jiri Denemark <jdenemar@redhat.com> - 3.9.0-1
 - Rebased to libvirt-python-3.9.0 (rhbz#1472265)
 - The rebase also fixes the following bugs: