]> code.ossystems Code Review - openembedded-core.git/commitdiff
scripts/convert-srcuri: Update SRC_URI conversion script to handle github url changes
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 2 Nov 2021 11:34:21 +0000 (11:34 +0000)
committerAnuj Mittal <anuj.mittal@intel.com>
Tue, 9 Nov 2021 03:28:53 +0000 (11:28 +0800)
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>
(cherry picked from commit e59fe8279b209f67ff79b9d6dbb69389a64db236)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
scripts/contrib/convert-srcuri.py

index 4bf9e3013d3e796f601668f40bfd0ef08c84c595..5b362ea2e847c525264886728222422ed1fdffe4 100755 (executable)
@@ -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)