diff options
author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2022-04-14 22:37:27 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-04-19 14:15:09 +0100 |
commit | 51ed090de1a82b01904742401edb06724f9c8177 (patch) | |
tree | a518e87ad45b8cb59ff6b9669172b55f0b5aa16c /bitbake/lib/bb/fetch2/git.py | |
parent | 57b11d17247c626e97c5eabc4343dd89b0765c87 (diff) | |
download | poky-51ed090de1a82b01904742401edb06724f9c8177.tar.gz |
bitbake: fetch2/git: Simplify the validation of SHA-1 revisions
Also correct two comments, and move slash_re from _revision_key() to
the module top level (together with the new sha1_re).
(Bitbake rev: 98cad8636e9c82bc40a033bb83633ec994758eb0)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index b3eb8248d0..bdcfa4978c 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
@@ -74,6 +74,9 @@ from bb.fetch2 import runfetchcmd | |||
74 | from bb.fetch2 import logger | 74 | from bb.fetch2 import logger |
75 | 75 | ||
76 | 76 | ||
77 | sha1_re = re.compile(r'^[0-9a-f]{40}$') | ||
78 | slash_re = re.compile(r"/+") | ||
79 | |||
77 | class GitProgressHandler(bb.progress.LineFilterProgressHandler): | 80 | class GitProgressHandler(bb.progress.LineFilterProgressHandler): |
78 | """Extract progress information from git output""" | 81 | """Extract progress information from git output""" |
79 | def __init__(self, d): | 82 | def __init__(self, d): |
@@ -249,8 +252,8 @@ class Git(FetchMethod): | |||
249 | ud.setup_revisions(d) | 252 | ud.setup_revisions(d) |
250 | 253 | ||
251 | for name in ud.names: | 254 | for name in ud.names: |
252 | # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one | 255 | # Ensure any revision that doesn't look like a SHA-1 is translated into one |
253 | if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): | 256 | if not sha1_re.match(ud.revisions[name] or ''): |
254 | if ud.revisions[name]: | 257 | if ud.revisions[name]: |
255 | ud.unresolvedrev[name] = ud.revisions[name] | 258 | ud.unresolvedrev[name] = ud.revisions[name] |
256 | ud.revisions[name] = self.latest_revision(ud, d, name) | 259 | ud.revisions[name] = self.latest_revision(ud, d, name) |
@@ -259,10 +262,10 @@ class Git(FetchMethod): | |||
259 | if gitsrcname.startswith('.'): | 262 | if gitsrcname.startswith('.'): |
260 | gitsrcname = gitsrcname[1:] | 263 | gitsrcname = gitsrcname[1:] |
261 | 264 | ||
262 | # for rebaseable git repo, it is necessary to keep mirror tar ball | 265 | # For a rebaseable git repo, it is necessary to keep a mirror tar ball |
263 | # per revision, so that even the revision disappears from the | 266 | # per revision, so that even if the revision disappears from the |
264 | # upstream repo in the future, the mirror will remain intact and still | 267 | # upstream repo in the future, the mirror will remain intact and still |
265 | # contains the revision | 268 | # contain the revision |
266 | if ud.rebaseable: | 269 | if ud.rebaseable: |
267 | for name in ud.names: | 270 | for name in ud.names: |
268 | gitsrcname = gitsrcname + '_' + ud.revisions[name] | 271 | gitsrcname = gitsrcname + '_' + ud.revisions[name] |
@@ -697,7 +700,6 @@ class Git(FetchMethod): | |||
697 | Return a unique key for the url | 700 | Return a unique key for the url |
698 | """ | 701 | """ |
699 | # Collapse adjacent slashes | 702 | # Collapse adjacent slashes |
700 | slash_re = re.compile(r"/+") | ||
701 | return "git:" + ud.host + slash_re.sub(".", ud.path) + ud.unresolvedrev[name] | 703 | return "git:" + ud.host + slash_re.sub(".", ud.path) + ud.unresolvedrev[name] |
702 | 704 | ||
703 | def _lsremote(self, ud, d, search): | 705 | def _lsremote(self, ud, d, search): |