summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-11-02 11:34:21 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-11-03 10:11:26 +0000
commite59fe8279b209f67ff79b9d6dbb69389a64db236 (patch)
tree28a4a33950df21a91dc70f8a75f4bfde50f73420 /scripts
parenta16dd60fb058ec2257eb1c6c0baa86e11e78cb42 (diff)
downloadopenembedded-core-contrib-e59fe8279b209f67ff79b9d6dbb69389a64db236.tar.gz
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/contrib/convert-srcuri.py16
1 files changed, 15 insertions, 1 deletions
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)