I forgot to say that Robert sent almost exactly this patch last year
but I nacked it because the TMPDIR assignment should happen when patch
is exec'd.  I'm not so sure now as that would cause an unnecessary
overhead to patching.

Ross

On 26 June 2014 15:16, Ross Burton <ross.bur...@intel.com> wrote:
> GNU Patch < 2.6.1 has a race condition so we create a per-instance TMPDIR to
> avoid this.  This was implemented by setting os.environ[TMPDIR] but at the end
> of do_patch the temporary directory is deleted but TMPDIR is not unset.
>
> In general this doesn't cause a problem but if do_patch is embedded in a 
> larger
> function then TMPDIR is set to a directory that doesn't exist.  Avoid this by
> removing TMPDIR from os.environ when the directory is deleted.
>
> Signed-off-by: Ross Burton <ross.bur...@intel.com>
> ---
>  meta/classes/patch.bbclass |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
> index 86c65b3..1e2aab0 100644
> --- a/meta/classes/patch.bbclass
> +++ b/meta/classes/patch.bbclass
> @@ -177,6 +177,7 @@ python patch_do_patch() {
>              bb.fatal(str(e))
>
>      bb.utils.remove(process_tmpdir, True)
> +    del os.environ['TMPDIR']
>  }
>  patch_do_patch[vardepsexclude] = "PATCHRESOLVE"
>
> --
> 1.7.10.4
>
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to