diff options
author | Sven Ebenfeld <sven.ebenfeld@gmail.com> | 2015-02-23 20:39:41 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-24 23:33:33 +0000 |
commit | 818c94f5b9882c2028ef9f056714a0a3c9045551 (patch) | |
tree | 61e5aa4c33864bb72d8999322fb201a55959bc1f /meta/lib/oe | |
parent | c8a9d74ee78266893497a6b60329f6ae79c0394d (diff) | |
download | openembedded-core-818c94f5b9882c2028ef9f056714a0a3c9045551.tar.gz openembedded-core-818c94f5b9882c2028ef9f056714a0a3c9045551.tar.bz2 openembedded-core-818c94f5b9882c2028ef9f056714a0a3c9045551.zip |
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')
-rw-r--r-- | meta/lib/oe/terminal.py | 30 |
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: |