summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/tests/fetch.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-07 13:16:39 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-17 17:51:03 +0000
commitebfa1700f41b3411aec040144605166c35b8dd14 (patch)
tree37e9b4aba5a8c07e677bf1b982091ad835479821 /bitbake/lib/bb/tests/fetch.py
parentd09e2e05a0391ad4d718214516d92a160f89767e (diff)
downloadpoky-ebfa1700f41b3411aec040144605166c35b8dd14.tar.gz
bitbake: fetch2/cooker: Fix source revision handling with floating upstreams
Where a git url uses a tag instead of a full source revision, breakage can currently occur in builds. Issues include: * the revision being looked up in multiple tasks (fetch and unpack) * the risk a different revision may be obtained in those tasks * that some tasks may not be allowed to access the network * that a revision may not be consistent throughout a given build * rerunning a specific task may given inconsistent results To fix this, stop the workers from cleaning out the source revision store. This should only be done in the cooker itself (based on current policy). Also, where the code "sees" an upstream access, mark the recipe as not to be cached. The reparse re-triggers the upstream lookup by the server. Add a test to ensure that if get_srcrev isn't called, the user is told they're using a configuration that is known to break. (Bitbake rev: 4b5eed1626709ef3dc06b32fd55d40a2a6edd179) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tests/fetch.py')
-rw-r--r--bitbake/lib/bb/tests/fetch.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index f368cd02b0..f0d417a50d 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -728,6 +728,7 @@ class FetcherLocalTest(FetcherTest):
728 728
729 # Fetch and check revision 729 # Fetch and check revision
730 self.d.setVar("SRCREV", "AUTOINC") 730 self.d.setVar("SRCREV", "AUTOINC")
731 self.d.setVar("__BBSEENSRCREV", "1")
731 url = "git://" + self.gitdir + ";branch=master;protocol=file;" + suffix 732 url = "git://" + self.gitdir + ";branch=master;protocol=file;" + suffix
732 fetcher = bb.fetch.Fetch([url], self.d) 733 fetcher = bb.fetch.Fetch([url], self.d)
733 fetcher.download() 734 fetcher.download()
@@ -1581,6 +1582,7 @@ class GitShallowTest(FetcherTest):
1581 self.d.setVar('BB_GIT_SHALLOW', '1') 1582 self.d.setVar('BB_GIT_SHALLOW', '1')
1582 self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '0') 1583 self.d.setVar('BB_GENERATE_MIRROR_TARBALLS', '0')
1583 self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1') 1584 self.d.setVar('BB_GENERATE_SHALLOW_TARBALLS', '1')
1585 self.d.setVar("__BBSEENSRCREV", "1")
1584 1586
1585 def assertRefs(self, expected_refs, cwd=None): 1587 def assertRefs(self, expected_refs, cwd=None):
1586 if cwd is None: 1588 if cwd is None:
@@ -2138,6 +2140,7 @@ class GitLfsTest(FetcherTest):
2138 2140
2139 self.d.setVar('SRCREV', '${AUTOREV}') 2141 self.d.setVar('SRCREV', '${AUTOREV}')
2140 self.d.setVar('AUTOREV', '${@bb.fetch2.get_autorev(d)}') 2142 self.d.setVar('AUTOREV', '${@bb.fetch2.get_autorev(d)}')
2143 self.d.setVar("__BBSEENSRCREV", "1")
2141 2144
2142 bb.utils.mkdirhier(self.srcdir) 2145 bb.utils.mkdirhier(self.srcdir)
2143 self.git_init(cwd=self.srcdir) 2146 self.git_init(cwd=self.srcdir)
@@ -2746,6 +2749,7 @@ class GitSharedTest(FetcherTest):
2746 super(GitSharedTest, self).setUp() 2749 super(GitSharedTest, self).setUp()
2747 self.recipe_url = "git://git.openembedded.org/bitbake;branch=master" 2750 self.recipe_url = "git://git.openembedded.org/bitbake;branch=master"
2748 self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40') 2751 self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
2752 self.d.setVar("__BBSEENSRCREV", "1")
2749 2753
2750 @skipIfNoNetwork() 2754 @skipIfNoNetwork()
2751 def test_shared_unpack(self): 2755 def test_shared_unpack(self):