[OE-core] [PATCH 6/6] patch.bbclass: do_patch: unset TMPDIR from environment

Robert Yang liezhi.yang at windriver.com
Fri Mar 14 10:17:04 UTC 2014



On 03/14/2014 12:54 AM, Burton, Ross wrote:
> On 13 March 2014 16:46, Burton, Ross <ross.burton at intel.com> wrote:
>> On 11 March 2014 17:08, Robert Yang <liezhi.yang at windriver.com> wrote:
>>> We need unset it after we use it, otherwise it would affect the env
>>> after we run "bb.build.exec_func('do_patch', d)", and will cause
>>> unexpected errors.
>>
>> This assignment has been there since October 2012, so what are the
>> problems that this causes?
>
> So what bothers me about this (and the original patch) is that TMPDIR
> has special meaning to bitbake and the conflict with patch's temporary
> directory is unfortunate.  Maybe a better solution is to change
> meta/lib/oe/patch.py to set TMPDIR when invoking patch so the changed
> TMPDIR is constrained to the patch process and nothing else.
>

Hi Ross,

The problem is that:
1) do_patch set "TMPDIR" in env, it would remove the directory but didn't
    unset the "TMPDIR".

2) autoconf will use the "TMPDIR" from the env:
autoconf/Autom4te/General.pm:  my $TMPDIR = $ENV{'TMPDIR'} || '/tmp';

And if the dir doesn't exist, there would be errors.

I had met this problem because I used the do_patch and do_configure
in one task:

bb.build.exec_func('do_patch', d)
bb.build.exec_func('do_configure', d)

I had split them into 2 tasks, so the "TMPDIR" doesn't affact the
archiver.bbclass any more.

I've tried to set the TMPDIR in meta/lib/oe/patch.py, but met more
problems, the PATCHTOOL = "patch" doesn't work (Seems only on
OpenSuse 12.2), I've filed a bug for it:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=5968

I think that we can fix it in another thread since it doesn't affect
the archiver.bbclass, as we have talked, we may drop the
PATCHTOOL = "patch"

// Robert

> Ross
>
>



More information about the Openembedded-core mailing list