Patchwork [dylan] classes/terminal: fix pseudo exiting when launching devshell

login
register
mail settings
Submitter Paul Eggleton
Date Aug. 14, 2013, 3:46 p.m.
Message ID <1376495198-23621-1-git-send-email-paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/55617/
State New
Headers show

Comments

Paul Eggleton - Aug. 14, 2013, 3:46 p.m.
In dylan, since the entire bitbake process is run under pseudo,
LD_PRELOAD is set when we collect BB_ORIGENV and thus when we construct
the devshell environment from the latter, LD_PRELOAD is included.
However, for a fakeroot task we explicitly run the devshell under pseudo
(e.g. "pseudo /bin/bash"), and if LD_PRELOAD is set to preload
libpseudo.so when pseudo is run, it seems to exit immediately without
error. Since LD_PRELOAD shouldn't be exported anyway, exclude this from
the environment so it doesn't prevent running the shell.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 meta/classes/terminal.bbclass | 4 ++++
 1 file changed, 4 insertions(+)
Nicolas Dechesne - Aug. 14, 2013, 4:55 p.m.
On Wed, Aug 14, 2013 at 5:46 PM, Paul Eggleton <
paul.eggleton@linux.intel.com> wrote:

> In dylan, since the entire bitbake process is run under pseudo,
> LD_PRELOAD is set when we collect BB_ORIGENV and thus when we construct
> the devshell environment from the latter, LD_PRELOAD is included.
> However, for a fakeroot task we explicitly run the devshell under pseudo
> (e.g. "pseudo /bin/bash"), and if LD_PRELOAD is set to preload
> libpseudo.so when pseudo is run, it seems to exit immediately without
> error. Since LD_PRELOAD shouldn't be exported anyway, exclude this from
> the environment so it doesn't prevent running the shell.
>
> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
>

thanks for fixing quickly. I have tested with gnome-terminal and screen,
and it works fine.

Tested-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>

Patch

diff --git a/meta/classes/terminal.bbclass b/meta/classes/terminal.bbclass
index ae338e9..96d2d2a 100644
--- a/meta/classes/terminal.bbclass
+++ b/meta/classes/terminal.bbclass
@@ -62,6 +62,10 @@  def oe_terminal(command, title, d):
             envdata.setVar(key, str(value))
             envdata.setVarFlag(key, 'export', 1)
 
+    # LD_PRELOAD of pseudo will cause problems if this is a fakeroot task
+    # and we shouldn't be exporting it anyway
+    envdata.delVar('LD_PRELOAD')
+
     # Replace command with an executable wrapper script
     command = emit_terminal_func(command, envdata, d)