From 9c87e0204bde784cf9f03a5cff6432569edcb276 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 2 Nov 2021 11:34:21 +0000 Subject: scripts/convert-srcuri: Update SRC_URI conversion script to handle github url changes Github are dropping support for git:// protocol fetching. Update the script to learn about corner cases found in the previous conversion and support remapping the github urls as needed too. (From OE-Core rev: fc9209fa892b31b2226008bdaf474750c3b61f38) Signed-off-by: Richard Purdie (cherry picked from commit e59fe8279b209f67ff79b9d6dbb69389a64db236) Signed-off-by: Anuj Mittal Signed-off-by: Richard Purdie --- scripts/contrib/convert-srcuri.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/contrib/convert-srcuri.py b/scripts/contrib/convert-srcuri.py index 4bf9e3013d..5b362ea2e8 100755 --- a/scripts/contrib/convert-srcuri.py +++ b/scripts/contrib/convert-srcuri.py @@ -19,19 +19,33 @@ if len(sys.argv) < 2: sys.exit(1) def processfile(fn): + def matchline(line): + if "MIRROR" in line or ".*" in line or "GNOME_GIT" in line: + return False + return True print("processing file '%s'" % fn) try: + if "distro_alias.inc" in fn or "linux-yocto-custom.bb" in fn: + return fh, abs_path = tempfile.mkstemp() modified = False with os.fdopen(fh, 'w') as new_file: with open(fn, "r") as old_file: for line in old_file: - if ("git://" in line or "gitsm://" in line) and "branch=" not in line and "MIRROR" not in line and ".*" not in line: + if ("git://" in line or "gitsm://" in line) and "branch=" not in line and matchline(line): if line.endswith('"\n'): line = line.replace('"\n', ';branch=master"\n') elif line.endswith(" \\\n"): line = line.replace(' \\\n', ';branch=master \\\n') modified = True + if ("git://" in line or "gitsm://" in line) and "github.com" in line and "protocol=https" not in line and matchline(line): + if "protocol=git" in line: + line = line.replace('protocol=git', 'protocol=https') + elif line.endswith('"\n'): + line = line.replace('"\n', ';protocol=https"\n') + elif line.endswith(" \\\n"): + line = line.replace(' \\\n', ';protocol=https \\\n') + modified = True new_file.write(line) if modified: shutil.copymode(fn, abs_path) -- cgit v1.2.3-54-g00ecf