[OE-core] devshell problems after distro upgrade openSUSE Leap 42.3 -> 15.0 (tmux only)

Mike Crowe mac at mcrowe.com
Tue Nov 6 19:06:45 UTC 2018


On Monday 16 July 2018 at 08:19:11 +0200, Steffen Sledz wrote:
> On 04.07.2018 13:37, Steffen Sledz wrote:
> > On 03.07.2018 08:04, Steffen Sledz wrote:
> >> On 02.07.2018 20:25, Khem Raj wrote:
> >>> On Sun, Jul 1, 2018 at 11:39 PM Steffen Sledz <sledz at dresearch-fe.de> wrote:
> >>>>
> >>>> After upgrading my build system from openSUSE Leap 42.3 to openSUSE Leap 15.0 a
> >>>>
> >>>>   bitbake foo -c devshell
> >>>>
> >>>> no longer switches to the related work directory. The devshell is opened in the original directory without any error or warning instead.
> >>>>
> >>>> Any hints what's wrong here or how I can debug this behaviour?
> >>>>
> >>>
> >>> which terminal are you using, probably some default behavior changes there ?
> >>
> >> Main terminal is xterm. No special settings for the devshell terminal, so tmux is started like before.
> > 
> > 
> > After some more tests I can limit the problem to OE_TERMINAL="tmux". Other terminals like screen or xterm work well.
> > ...
> 
> 
> Ping!

The same problem happens with Debian Buster (currently "testing".) I was
unable to reproduce the problem when running

 (cd subdirectory && tmux split-window)

from a shell prompt.

However, I managed to fix it with the following patch. I'm not sure whether
this means there's a bug in tmux though. Since I can't reproduce the
problem outside OE, it's rather difficult to report it.

Mike.

diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
index 94afe394ed..291238b6cb 100644
--- a/meta/lib/oe/terminal.py
+++ b/meta/lib/oe/terminal.py
@@ -117,10 +117,11 @@ class Screen(Terminal):
 class TmuxRunning(Terminal):
     """Open a new pane in the current running tmux window"""
     name = 'tmux-running'
-    command = 'tmux split-window "{command}"'
+    command = 'not-ready-yet'
     priority = 2.75

     def __init__(self, sh_cmd, title=None, env=None, d=None):
+        self.command = 'tmux split-window -c "%s" "{command}"' % os.getcwd()
         if not bb.utils.which(os.getenv('PATH'), 'tmux'):
             raise UnsupportedTerminal('tmux is not installed')



More information about the Openembedded-core mailing list