Ping!
Attaching a version of the patch that works with current master; without the fix, oe-init-build-env simply doesn't work with zsh.

It really isn't a big patch, so if you need me to correct anything, please don't hesitate to point me to it; I'm totally new to openembedded, so if my contribution doesn't meet OE expectations, I won't object to any criticism :)

Best regards,
Marcus

On Wed, Sep 23, 2015 at 11:06 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Hello Lee,

wow, thanks for clearing testing this; actually, to trigger my personal need for a patch, variant # A was used.

Cheers,
Marcus


On 22.09.2015 22:25, Lee Nipper wrote:
On Tue, Sep 22, 2015 at 1:45 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Hello,
> If I understand correctly it allows a user prepared $TEMPLATECONF
> directory
> to be used by oe-setup-builddir.
Indeed; the point is that oe-setup-builddir was definitely meant to be
used with a TEMPLATECONF set by the user; in bash, the TEMPLATECONF
local variable is automatically passed on from oe-init-build-env to
oe-setup-builddir¹, but in zsh, this doesn't work without explicitely
declaring that should happen (which is the only thing my patch does).

Best regards,
Marcus

¹ not quite sure how; it's a local to the calling script and shouldn't
be a local or env variable to the callee, IMHO.


Hello Marcus,

FWIW, I did some test cases to understand the differences.

With bash 4.3.11, and the examples below,
cases A and B will pass along TEMPLATECONF, but case C does not.
Your patch makes case C work as well.

# A:

TEMPLATECONF=$HOME/my-template-dir source ~/openembedded-core/oe-init-build-env $HOME/my-build-dir

# B:
export TEMPLATECONF=$HOME/my-template-dir; source ~/openembedded-core/oe-init-build-env $HOME/my-build-dir

# C:
TEMPLATECONF=$HOME/my-template-dir; source ~/openembedded-core/oe-init-build-env $HOME/my-build-dir


And with zsh 5.0.2, case B will pass along TEMPLATECONF, but cases A and C do not.
Your patch makes cases A and C work as well with zsh.

I did not expect case A to be different than case C for bash, but it apparently works differently than I thought.

Best regards,
Lee