diff --git a/4.0.2.tar.gz b/4.0.2.tar.gz
new file mode 100644
index 0000000..013e572
--- /dev/null
+++ b/4.0.2.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee30d02bce834fc9abc481c47865d82ce2ba6249addfa83927e6122dcc0c286b
+size 544446
diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..fcc7b97
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,3 @@
+
+ test
+
diff --git a/python-rpyc.changes b/python-rpyc.changes
index cc581f0..b6f4509 100644
--- a/python-rpyc.changes
+++ b/python-rpyc.changes
@@ -1,3 +1,40 @@
+-------------------------------------------------------------------
+Fri May 24 10:59:46 UTC 2019 - Marketa Calabkova
+
+- update to 4.0.2
+ * fix default hostname for ipv6 in rpyc_classic.py
+ * fix ThreadPoolServer not working
+ 4.0.1
+ * fix ValueError during install due to absolute PATH in SOURCES.txt
+ 4.0.0 (see upstream Release Change Log for more)
+ * classic.teleport_function now executes the function in the
+ connection’s namespace by default
+ * Changed signature of Service.on_connect and on_disconnect,
+ adding the connection as argument.
+ * Changed signature of Service.__init__, removing the connection
+ argument
+ * no longer store connection as self._conn.
+ * SlaveService is now split into two asymetric classes:
+ SlaveService and MasterService. If you want old SlaveService
+ behaviour, use ClassicService
+ * Removed modules rpyc.experimental.splitbrain and rpyc.experimental.retunnel.
+ * bin/rpyc_classic.py will bind to 127.0.0.1 instead of 0.0.0.0 by default
+ * Exposed attributes no longer hide plain attributes if one
+ otherwise has the required permissions to access the plain attribute.
+ * teleported functions will now be defined by default in the
+ globals dict
+ * fix deadlock with connections talking to each other multithreadedly
+ * handle timeouts cumulatively
+ * fix __hash__ for netrefs
+ * add gevent Server. For now, this requires using gevent.monkey.patch_all()
+ before importing for rpyc. Client connections can already be made
+ without further changes to rpyc, just using gevent’s monkey patching.
+ * fix problem with MongoDB, or more generally any remote objects
+ that have a catch-all __getattr__
+ * service can now easily override protocol handlers, by updating
+ conn._HANDLERS in _connect or on_connect.
+- implement multibuild to fix some tests, skip some other failing tests
+
-------------------------------------------------------------------
Tue Dec 4 12:53:57 UTC 2018 - Matej Cepl
diff --git a/python-rpyc.spec b/python-rpyc.spec
index 78bebd2..e6b4617 100644
--- a/python-rpyc.spec
+++ b/python-rpyc.spec
@@ -1,7 +1,7 @@
#
# spec file for package python-rpyc
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# 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
@@ -17,20 +17,33 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-Name: python-rpyc
-Version: 3.4.4
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+Name: python-rpyc%{psuffix}
+Version: 4.0.2
Release: 0
Summary: Remote Python Call (RPyC), a RPC library
License: MIT
Group: Development/Languages/Python
Url: https://github.com/tomerfiliba/rpyc
-Source: https://files.pythonhosted.org/packages/source/r/rpyc/rpyc-%{version}.tar.gz
+#Source: https://files.pythonhosted.org/packages/source/r/rpyc/rpyc-%%{version}.tar.gz
+Source: https://github.com/tomerfiliba/rpyc/archive/%{version}.tar.gz
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# SECTION test requirements
+%if %{with test}
+BuildRequires: %{python_module gevent}
BuildRequires: %{python_module nose}
BuildRequires: %{python_module plumbum}
+BuildRequires: %{python_module rpyc = %{version}}
+%endif
# /SECTION
Requires: python-plumbum
BuildArch: noarch
@@ -54,6 +67,7 @@ that remote objects can be manipulated as if they were local.
%python_build
%install
+%if !%{with test}
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
@@ -62,7 +76,14 @@ mv %{buildroot}%{_bindir}/rpyc_registry.py %{buildroot}%{_bindir}/rpyc_registry
%python_clone -a %{buildroot}%{_bindir}/rpyc_classic
%python_clone -a %{buildroot}%{_bindir}/rpyc_registry
+%endif
+%if %{with test}
+%check
+nosetests -vv -I test_deploy -I test_gevent_server -I test_ssh -I test_registry
+%endif
+
+%if !%{with test}
%post
%{python_install_alternative rpyc_classic rpyc_registry}
@@ -75,5 +96,6 @@ mv %{buildroot}%{_bindir}/rpyc_registry.py %{buildroot}%{_bindir}/rpyc_registry
%python_alternative %{_bindir}/rpyc_classic
%python_alternative %{_bindir}/rpyc_registry
%{python_sitelib}/*
+%endif
%changelog
diff --git a/rpyc-3.4.4.tar.gz b/rpyc-3.4.4.tar.gz
deleted file mode 100644
index ae9c3d6..0000000
--- a/rpyc-3.4.4.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a8991d0412a67d7299d105b4889b2b0b0d18e9b99404ea14eea56404fdb481c7
-size 56199