[bitbake-devel] [PATCH] fetch2: save/restore cwd for mirror URL downloads

Matt Madison matt at madison.systems
Wed Aug 10 12:25:41 UTC 2016


On Wed, Aug 10, 2016 at 3:40 AM, Richard Purdie
<richard.purdie at linuxfoundation.org> wrote:
> On Mon, 2016-08-08 at 15:43 -0700, Matt Madison wrote:
>> Fixes "changed cwd" warnings from setscene tasks when the
>> packages are downloaded from a shared-state mirror.
>>
>> Signed-off-by: Matt Madison <matt at madison.systems>
>> ---
>>  lib/bb/fetch2/__init__.py | 5 +++++
>>  1 file changed, 5 insertions(+)
>
> bitbake-selftest doesn't seem to like this change:
>
> https://autobuilder.yoctoproject.org/main/builders/nightly/builds/973/steps/BitbakeSelftest/logs/stdio
>
> I do wonder if we need to fix the individual fetcher modules...

I could at least rework the patch to put the getcwd call into a
try/except block.  I'll
take a closer look.

Thanks,
-Matt

>
> Cheers,
>
> Richard
>
>> diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
>> index 9054b2e..c0017a8 100644
>> --- a/lib/bb/fetch2/__init__.py
>> +++ b/lib/bb/fetch2/__init__.py
>> @@ -928,6 +928,8 @@ def try_mirror_url(fetch, origud, ud, ld, check =
>> False):
>>      if ud.lockfile and ud.lockfile != origud.lockfile:
>>          lf = bb.utils.lockfile(ud.lockfile)
>>
>> +    save_cwd = os.getcwd()
>> +
>>      try:
>>          if check:
>>              found = ud.method.checkstatus(fetch, ud, ld)
>> @@ -995,6 +997,7 @@ def try_mirror_url(fetch, origud, ud, ld, check =
>> False):
>>              pass
>>          return False
>>      finally:
>> +        os.chdir(save_cwd)
>>          if ud.lockfile and ud.lockfile != origud.lockfile:
>>              bb.utils.unlockfile(lf)
>>
>> @@ -1558,6 +1561,7 @@ class Fetch(object):
>>
>>          network = self.d.getVar("BB_NO_NETWORK", True)
>>          premirroronly = (self.d.getVar("BB_FETCH_PREMIRRORONLY",
>> True) == "1")
>> +        save_cwd = os.getcwd()
>>
>>          for u in urls:
>>              ud = self.ud[u]
>> @@ -1635,6 +1639,7 @@ class Fetch(object):
>>              finally:
>>                  if ud.lockfile:
>>                      bb.utils.unlockfile(lf)
>> +        os.chdir(save_cwd)
>>
>>      def checkstatus(self, urls=None):
>>          """
>> --
>> 2.7.4
>>



More information about the bitbake-devel mailing list