aboutsummaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/terminal.py
diff options
context:
space:
mode:
authorSven Ebenfeld <sven.ebenfeld@gmail.com>2015-02-23 20:39:41 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-02-24 23:33:33 +0000
commit818c94f5b9882c2028ef9f056714a0a3c9045551 (patch)
tree61e5aa4c33864bb72d8999322fb201a55959bc1f /meta/lib/oe/terminal.py
parentc8a9d74ee78266893497a6b60329f6ae79c0394d (diff)
downloadopenembedded-core-818c94f5b9882c2028ef9f056714a0a3c9045551.tar.gz
terminal.py: No --disable-factory for gnome-terminal >= 3.10
--disable-factory has been disabled in earlier versions of gnome-terminal but from version 3.10 it raises an error and quits. This makes devshell unusable with gnome-terminal >= 3.10. This patch checks for the version and removes --disable-factory if you have the terminal version 3.10 or higher. Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/terminal.py')
-rw-r--r--meta/lib/oe/terminal.py30
1 files changed, 22 insertions, 8 deletions
diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
index 54e3ffc1e8..01c0ccc334 100644
--- a/meta/lib/oe/terminal.py
+++ b/meta/lib/oe/terminal.py
@@ -55,6 +55,14 @@ class Gnome(XTerminal):
command = 'gnome-terminal -t "{title}" --disable-factory -x {command}'
priority = 2
+ def __init__(self, sh_cmd, title=None, env=None, d=None):
+ # Check version
+ (major, minor) = check_terminal_version("gnome-terminal")
+ if major >= 3 and minor >= 10:
+ logger.warn(1, 'Gnome-Terminal >3.10 does not support --disable-factory')
+ self.command = 'gnome-terminal -t "{title}" -x {command}'
+ XTerminal.__init__(self, sh_cmd, title, env, d)
+
class Mate(XTerminal):
command = 'mate-terminal -t "{title}" -x {command}'
priority = 2
@@ -73,11 +81,10 @@ class Konsole(XTerminal):
def __init__(self, sh_cmd, title=None, env=None, d=None):
# Check version
- vernum = check_konsole_version("konsole")
- if vernum:
- if vernum.split('.')[0] == "2":
- logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping')
- raise UnsupportedTerminal(self.name)
+ (major, minor) = check_terminal_version("konsole")
+ if major == 2:
+ logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping')
+ raise UnsupportedTerminal(self.name)
XTerminal.__init__(self, sh_cmd, title, env, d)
class XTerm(XTerminal):
@@ -219,10 +226,10 @@ def check_tmux_pane_size(tmux):
return True
return False
-def check_konsole_version(konsole):
+def check_terminal_version(terminalName):
import subprocess as sub
try:
- p = sub.Popen(['sh', '-c', '%s --version' % konsole],stdout=sub.PIPE,stderr=sub.PIPE)
+ p = sub.Popen(['sh', '-c', '%s --version' % terminalName],stdout=sub.PIPE,stderr=sub.PIPE)
out, err = p.communicate()
ver_info = out.rstrip().split('\n')
except OSError as exc:
@@ -232,10 +239,17 @@ def check_konsole_version(konsole):
else:
raise
vernum = None
+ major = int(0)
+ minor = int(0)
for ver in ver_info:
if ver.startswith('Konsole'):
vernum = ver.split(' ')[-1]
- return vernum
+ if ver.startswith('GNOME Terminal'):
+ vernum = ver.split(' ')[-1]
+ if vernum:
+ major = int(vernum.split('.')[0])
+ minor = int(vernum.split('.')[1])
+ return major, minor
def distro_name():
try: