On 2018年09月01日 08:14, Alejandro Enedino Hernandez Samaniego wrote:
Hey Hongxu,
On 08/24/2018 01:54 AM, Hongxu Jia wrote:
The devshell.bbclass set var-SHELL to var-DEVSHELL, and terminal.bbclass
initial var-SHELL with `bash'. Keep sync with it, use var-SHELL rather
than hardcoded `/bin/sh' as the shebang of wrapper script.
On Ubuntu host, default shell is dash (/bin/sh -> dash), even though
we assign var-SHELL with `/bin/bash', the wrapper script is still
dashism.
Signed-off-by: Hongxu Jia <[email protected]>
---
meta/classes/terminal.bbclass | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta/classes/terminal.bbclass
b/meta/classes/terminal.bbclass
index a27e10c..73e765d 100644
--- a/meta/classes/terminal.bbclass
+++ b/meta/classes/terminal.bbclass
@@ -25,7 +25,8 @@ def emit_terminal_func(command, envdata, d):
bb.utils.mkdirhier(os.path.dirname(runfile))
with open(runfile, 'w') as script:
- script.write('#!/bin/sh -e\n')
+ script.write('#!/usr/bin/env %s\n' % d.getVar('SHELL'))
+ script.write('set -e\n')
This is causing a bug on several systems, I believe that it is because
the way our systems are set up,
basically, our running shell isn't necessarily $SHELL, so it is
causing the process to exit immediately,
anything thats using this class is affected, devshell, menuconfig, etc.
$ echo $SHELL
/bin/csh
$ echo $0
/bin/bash
The csh does not support `export', in you case, you should correct
var-SHELL to align with $0,
Such as:
$ usermod <username> -s $0
But the script should be more robust, it should
work well in this situation. I will try to fix it.
//Hongxu
Sadly we are unable to set $SHELL correctly.
I wonder if there is another way of doing this that wouldn't cause
this behavior.
Cheers,
Alejandro
bb.data.emit_func(cmd_func, script, envdata)
script.write(cmd_func)
script.write("\n")
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core