Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-12-08 18:54:17 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-12-08 18:54:17 (GMT)
commitcbd01b3fe4ecee048fed73586a8d0898e7ec4fb0 (patch)
treecb75b412e3d3e8a0d72453ff14bc35e753072f40
parente1e17b4a5895852f23b7dd9a2d98be3cdd1c6272 (diff)
Use xdpyinfo to find a free display
We cannot use SugarRunner in check-sytem, too early.
-rw-r--r--config/deps/prerequisites.json5
-rw-r--r--config/packages/deps.json11
-rw-r--r--devbot/xvfb.py13
3 files changed, 26 insertions, 3 deletions
diff --git a/config/deps/prerequisites.json b/config/deps/prerequisites.json
index b055a68..da1844d 100644
--- a/config/deps/prerequisites.json
+++ b/config/deps/prerequisites.json
@@ -5,6 +5,11 @@
"name": "Xvfb"
},
{
+ "check": "xdpyinfo",
+ "checker": "binary",
+ "name": "Xvfb"
+ },
+ {
"check": "pkg-config",
"checker": "binary",
"name": "pkg-config"
diff --git a/config/packages/deps.json b/config/packages/deps.json
index 67f0772..f07182b 100644
--- a/config/packages/deps.json
+++ b/config/packages/deps.json
@@ -846,6 +846,17 @@
"x11-apps"
]
},
+ "xdpyinfo": {
+ "debian": [
+ "x11-utils"
+ ],
+ "fedora": [
+ "xorg-x11-utils"
+ ],
+ "ubuntu": [
+ "x11-utils"
+ ]
+ },
"xinit": {
"debian": [
"xinit"
diff --git a/devbot/xvfb.py b/devbot/xvfb.py
index eed1468..a70b4c8 100644
--- a/devbot/xvfb.py
+++ b/devbot/xvfb.py
@@ -1,12 +1,19 @@
import os
import subprocess
-from gi.repository import SugarRunner
-
from devbot import utils
+def _find_free_display():
+ for i in range (100, 1000):
+ display = ":%s" % i
+ result = subprocess.call(args=["xdpyinfo", "--display", display],
+ stdout=utils.devnull,
+ stderr=subprocess.STDOUT)
+ if result > 0:
+ return display
+
def start():
- xvfb_display = SugarRunner.find_free_display()
+ xvfb_display = _find_free_display()
xvfb_proc = subprocess.Popen(args=["Xvfb", xvfb_display],
stdout=utils.devnull,
stderr=subprocess.STDOUT)