Patchwork terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variable

login
register
mail settings
Submitter Jason Wessel
Date May 3, 2012, 11:27 a.m.
Message ID <1336044432-28854-1-git-send-email-jason.wessel@windriver.com>
Download mbox | patch
Permalink /patch/26957/
State Accepted
Commit 5568a8f5a1c65bae021b2e36d735d3153acc6d72
Headers show

Comments

Jason Wessel - May 3, 2012, 11:27 a.m.
Some versions of the screen utility provided from the host OS vendor
write the socket directory to $HOME/.screen.  When using a shared home
directory across many servers, one sets the SCREENDIR environment
variable to avoid collisions in the shared home directory.  This
results in problems launching a devshell where it is not entirely
obvious what happened because the SCREENDIR environment variable
got stripped from the environment prior to setting up the screen
in detached mode.

Example:
   % bitbake -c devshell busybox
   # ...Please connect in another terminal with "screen -r devshell"

   % screen -r devshell
   There is no screen to be resumed matching devshell.

The temporary work around was to do something like:
   sh -c "unset SCREENDIR; screen -r devshell"

This patch adds SCREENDIR to the white list to ensure screen
works properly on systems where a developer needs to use
the SCREENDIR with shared home directories.
---
 meta/classes/terminal.bbclass |    2 +-
 scripts/oe-buildenv-internal  |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Saul Wold - May 10, 2012, 4:15 a.m.
On 05/03/2012 04:27 AM, Jason Wessel wrote:
> Some versions of the screen utility provided from the host OS vendor
> write the socket directory to $HOME/.screen.  When using a shared home
> directory across many servers, one sets the SCREENDIR environment
> variable to avoid collisions in the shared home directory.  This
> results in problems launching a devshell where it is not entirely
> obvious what happened because the SCREENDIR environment variable
> got stripped from the environment prior to setting up the screen
> in detached mode.
>
> Example:
>     % bitbake -c devshell busybox
>     # ...Please connect in another terminal with "screen -r devshell"
>
>     % screen -r devshell
>     There is no screen to be resumed matching devshell.
>
> The temporary work around was to do something like:
>     sh -c "unset SCREENDIR; screen -r devshell"
>
> This patch adds SCREENDIR to the white list to ensure screen
> works properly on systems where a developer needs to use
> the SCREENDIR with shared home directories.
> ---
>   meta/classes/terminal.bbclass |    2 +-
>   scripts/oe-buildenv-internal  |    2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/terminal.bbclass b/meta/classes/terminal.bbclass
> index ca28bd2..3cfc84b 100644
> --- a/meta/classes/terminal.bbclass
> +++ b/meta/classes/terminal.bbclass
> @@ -4,7 +4,7 @@ OE_TERMINAL[choices] = 'auto none \
>                           ${@" ".join(o.name \
>                                       for o in oe.terminal.prioritized())}'
>
> -OE_TERMINAL_EXPORTS = 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE'
> +OE_TERMINAL_EXPORTS = 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE SCREENDIR'
>   OE_TERMINAL_EXPORTS[type] = 'list'
>
>   XAUTHORITY ?= "${HOME}/.Xauthority"
> diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
> index 14e728d..9de7b05 100755
> --- a/scripts/oe-buildenv-internal
> +++ b/scripts/oe-buildenv-internal
> @@ -70,4 +70,4 @@ unset BITBAKEDIR
>   # Used by the runqemu script
>   export BUILDDIR
>   export PATH
> -export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER"
> +export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER SCREENDIR"

Merged into OE-Core

Thanks
	Sau!

(a little late I know).

Patch

diff --git a/meta/classes/terminal.bbclass b/meta/classes/terminal.bbclass
index ca28bd2..3cfc84b 100644
--- a/meta/classes/terminal.bbclass
+++ b/meta/classes/terminal.bbclass
@@ -4,7 +4,7 @@  OE_TERMINAL[choices] = 'auto none \
                         ${@" ".join(o.name \
                                     for o in oe.terminal.prioritized())}'
 
-OE_TERMINAL_EXPORTS = 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE'
+OE_TERMINAL_EXPORTS = 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE SCREENDIR'
 OE_TERMINAL_EXPORTS[type] = 'list'
 
 XAUTHORITY ?= "${HOME}/.Xauthority"
diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
index 14e728d..9de7b05 100755
--- a/scripts/oe-buildenv-internal
+++ b/scripts/oe-buildenv-internal
@@ -70,4 +70,4 @@  unset BITBAKEDIR
 # Used by the runqemu script
 export BUILDDIR
 export PATH
-export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER"
+export BB_ENV_EXTRAWHITE="MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER SCREENDIR"