mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-02-14 15:17:30 -08:00
77 lines
2.8 KiB
Diff
77 lines
2.8 KiB
Diff
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):
|