[PATCH 3/3] scripts: Allow overriding Git URLs in build-many-glibcs.py

Yury Khrustalev yury.khrustalev@arm.com
Wed Nov 12 11:45:16 GMT 2025


Use environment variables to provide mirror URLs to checkout
sources from Git.
---
 scripts/build-many-glibcs.py | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 811b23ecdf..e0e902f4f0 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -104,6 +104,23 @@ except:
 
     subprocess.run = _run
 
+def get_git_url(component):
+    """Return Git URL for the given component. Allow overrides via env var."""
+    git_urls = {
+        'binutils': 'https://sourceware.org/git/binutils-gdb.git',
+        'glibc': 'https://sourceware.org/git/glibc.git',
+        'gcc': 'https://gcc.gnu.org/git/gcc.git',
+        'gnumach': 'git://git.savannah.gnu.org/hurd/gnumach.git',
+        'mig': 'git://git.savannah.gnu.org/hurd/mig.git',
+        'hurd': 'git://git.savannah.gnu.org/hurd/hurd.git',
+    }
+    env_var = '%s_GIT_MIRROR' % component.upper()
+    if env_var in os.environ:
+        return os.environ[env_var]
+    if component in git_urls:
+        return git_urls[component]
+    else:
+        raise RuntimeError('unknown component')
 
 class Context(object):
     """The global state associated with builds in a given directory."""
@@ -901,7 +918,7 @@ class Context(object):
         """Check out the given version of the given component from version
         control.  Return a revision identifier."""
         if component == 'binutils':
-            git_url = 'https://sourceware.org/git/binutils-gdb.git'
+            git_url = get_git_url(component)
             if version == 'mainline':
                 git_branch = 'master'
             else:
@@ -915,7 +932,7 @@ class Context(object):
                 branch = 'releases/gcc-%s' % version
             return self.gcc_checkout(branch, update)
         elif component == 'glibc':
-            git_url = 'https://sourceware.org/git/glibc.git'
+            git_url = get_git_url(component)
             if version == 'mainline':
                 git_branch = 'master'
             else:
@@ -924,21 +941,21 @@ class Context(object):
             self.fix_glibc_timestamps()
             return r
         elif component == 'gnumach':
-            git_url = 'git://git.savannah.gnu.org/hurd/gnumach.git'
+            git_url = get_git_url(component)
             git_branch = 'master'
             r = self.git_checkout(component, git_url, git_branch, update)
             subprocess.run(['autoreconf', '-i'],
                            cwd=self.component_srcdir(component), check=True)
             return r
         elif component == 'mig':
-            git_url = 'git://git.savannah.gnu.org/hurd/mig.git'
+            git_url = get_git_url(component)
             git_branch = 'master'
             r = self.git_checkout(component, git_url, git_branch, update)
             subprocess.run(['autoreconf', '-i'],
                            cwd=self.component_srcdir(component), check=True)
             return r
         elif component == 'hurd':
-            git_url = 'git://git.savannah.gnu.org/hurd/hurd.git'
+            git_url = get_git_url(component)
             git_branch = 'master'
             r = self.git_checkout(component, git_url, git_branch, update)
             subprocess.run(['autoconf'],
@@ -1004,7 +1021,7 @@ class Context(object):
             shutil.rmtree(self.component_srcdir('gcc'))
             update = False
         if not update:
-            self.git_checkout('gcc', 'https://gcc.gnu.org/git/gcc.git',
+            self.git_checkout('gcc', get_git_url('gcc'),
                               branch, update)
         subprocess.run(['contrib/gcc_update', '--silent'],
                        cwd=self.component_srcdir('gcc'), check=True)
-- 
2.47.3



More information about the Libc-alpha mailing list