--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1
+
+MY_PN="python-${PN}"
+MY_P="${MY_PN}-${PV}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Easily create mock objects on D-Bus for software testing"
+HOMEPAGE="https://github.com/martinpitt/python-dbusmock"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc"
+IUSE="test"
+
+RDEPEND="
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-17.1[${PYTHON_USEDEP}]
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/0.16.9-disable-style-tests.patch
+ "${FILESDIR}"/0.16.9-replace-dbus-launch.patch
+)
+
+python_test() {
+ nosetests --verbose || die "tests fail under ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( NEWS README.rst )
+
+ distutils-r1_python_install_all
+}
--- /dev/null
+From 9470c54a2836795974e83e55ea859e4653b20b37 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin@piware.de>
+Date: Mon, 19 Jun 2017 16:31:28 +0200
+Subject: [PATCH] Call dbus-daemon directly instead of dbus-launch
+
+dbus-launch is X11 specific and being deprecated.
+
+Adjust documentation to use dbus-run-session instead.
+
+https://bugs.debian.org/836053
+---
+ NEWS | 4 ++++
+ README.rst | 6 +++---
+ dbusmock/testcase.py | 18 ++++++++++--------
+ 3 files changed, 17 insertions(+), 11 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index c1250ea..181a4df 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,3 +1,7 @@
++0.17 (UNRELEASED)
++-----------------
++ - Call dbus-daemon directly instead of dbus-launch. (Debian #836053)
++
+ 0.16.9 (2017-06-19)
+ -------------------
+ - NetworkManager template: Fix type of 'State' property in AddActiveConnection()
+diff --git a/README.rst b/README.rst
+index 3dc4552..310e1ac 100644
+--- a/README.rst
++++ b/README.rst
+@@ -118,9 +118,9 @@ Let's walk through:
+ Simple example from shell
+ -------------------------
+
+-We use the actual session bus for this example. You can use ``dbus-launch`` to
+-start a private one as well if you want, but that is not part of the actual
+-mocking.
++We use the actual session bus for this example. You can use
++``dbus-run-session`` to start a private one as well if you want, but that is
++not part of the actual mocking.
+
+ So let's start a mock at the D-Bus name ``com.example.Foo`` with an initial
+ "main" object on path /, with the main D-Bus interface
+diff --git a/dbusmock/testcase.py b/dbusmock/testcase.py
+index 825c61f..49787e2 100644
+--- a/dbusmock/testcase.py
++++ b/dbusmock/testcase.py
+@@ -97,16 +97,18 @@ def start_dbus(klass, conf=None):
+ Normally you do not need to call this directly. Use start_system_bus()
+ and start_session_bus() instead.
+ '''
+- argv = ['dbus-launch']
++ argv = ['dbus-daemon', '--fork', '--print-address=1', '--print-pid=1']
+ if conf:
+ argv.append('--config-file=' + conf)
+- out = subprocess.check_output(argv, universal_newlines=True)
+- variables = {}
+- for line in out.splitlines():
+- (k, v) = line.split('=', 1)
+- variables[k] = v
+- return (int(variables['DBUS_SESSION_BUS_PID']),
+- variables['DBUS_SESSION_BUS_ADDRESS'])
++ else:
++ argv.append('--session')
++ lines = subprocess.check_output(argv, universal_newlines=True).strip().splitlines()
++ assert len(lines) == 2, 'expected exactly 2 lines of output from dbus-daemon'
++ # usually the first line is the address, but be lenient and accept any order
++ try:
++ return (int(lines[1]), lines[0])
++ except ValueError:
++ return (int(lines[0]), lines[1])
+
+ @classmethod
+ def stop_dbus(klass, pid):