bitbake: fetch2/git: prevent access to non-existing fullshallow tarball

(Bitbake rev: b7f00a8c11672a2ee0408e210fb174cda3384e3f)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Urs Fässler 2018-10-03 12:04:06 +00:00 committed by Richard Purdie
parent 073c62cb56
commit b907303b92
2 changed files with 15 additions and 1 deletions

View File

@ -476,7 +476,7 @@ class Git(FetchMethod):
if os.path.exists(destdir): if os.path.exists(destdir):
bb.utils.prunedir(destdir) bb.utils.prunedir(destdir)
if ud.shallow and self.need_update(ud, d): if ud.shallow and os.path.exists(ud.fullshallow) and self.need_update(ud, d):
bb.utils.mkdirhier(destdir) bb.utils.mkdirhier(destdir)
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir)
else: else:

View File

@ -1580,3 +1580,17 @@ class GitShallowTest(FetcherTest):
self.assertNotEqual(orig_revs, revs) self.assertNotEqual(orig_revs, revs)
self.assertRefs(['master', 'origin/master']) self.assertRefs(['master', 'origin/master'])
self.assertRevCount(orig_revs - 1758) self.assertRevCount(orig_revs - 1758)
@skipIfNoNetwork()
def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not_available(self):
self.d.setVar('SRCREV', 'e5939ff608b95cdd4d0ab0e1935781ab9a276ac0')
self.d.setVar('BB_GIT_SHALLOW', '1')
self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
fetcher = bb.fetch.Fetch(["git://git.yoctoproject.org/fstests"], self.d)
fetcher.download()
bb.utils.remove(self.dldir + "/*.tar.gz")
fetcher.unpack(self.unpackdir)
dir = os.listdir(self.unpackdir + "/git/")
self.assertIn("fstests.doap", dir)