diff --git a/build-binary.py b/build-binary.py
index 60c8fadbfc71ddba5ab66e0289911ddf4fd81be6..38db13eab3728af61f5e86cc2ae438ea8dfa34c6 100755
--- a/build-binary.py
+++ b/build-binary.py
@@ -36,9 +36,9 @@ def main():
     package_windows(tool, versions)
 
 
-def get_repo_dir(tool):
+def get_repo_dir(versions):
     # This needs to be always the same path, otherwise it breaks reproducibility
-    return '/tmp/%s' % tool
+    return '/tmp/%s' % versions['repo_dir']
 
 
 def install_go(tool, tool_version, versions):
@@ -56,7 +56,7 @@ def install_android_ndk(tool, tool_version):
 
 
 def checkout_source_repo(tool, versions):
-    repo_dir = get_repo_dir(tool)
+    repo_dir = get_repo_dir(versions)
     if os.path.isdir(repo_dir):
         # get latest commits and tags from remote
         check_call(['git', 'fetch', 'origin'], cwd=repo_dir)
@@ -113,7 +113,7 @@ def build_android_arch(tool, versions, env, clang_arch, ndk_arch):
 
     output_file = os.path.abspath(os.path.join(os.path.curdir, tool))
     go_flags = ['-asmflags', '-trimpath', '-o', output_file]
-    repo_dir = get_repo_dir(tool)
+    repo_dir = get_repo_dir(versions)
     ex(['go', 'build', '-buildmode=%s' % build_mode, '-ldflags', '-w -s' + extldflags] + go_flags +
        [os.path.join('.', versions['build_path'])], env=env, cwd=repo_dir)
 
@@ -142,7 +142,7 @@ def build_desktop_arch(tool, versions, goos, arch, goarch, goarm=None):
     print("Building %s" % filename)
     output_file = os.path.abspath(os.path.join(os.path.curdir, tool))
     go_flags = ['-asmflags', '-trimpath', '-o', output_file]
-    repo_dir = get_repo_dir(tool)
+    repo_dir = get_repo_dir(versions)
     ex(['go', 'build', '-ldflags', '-w -s'] + go_flags + [build_path], env=env, cwd=repo_dir)
     zip_files([tool], filename, versions)
     os.remove(tool)
@@ -186,7 +186,7 @@ def package(tool, versions, file_list, platform):
 
 
 def create_sources_jar(tool, versions, platform):
-    repo_dir = get_repo_dir(tool)
+    repo_dir = get_repo_dir(versions)
     # clean all untracked files and directories (-d) from repo
     check_call(['git', 'clean', '-dffx'], cwd=repo_dir)
     # vendorize dependencies
diff --git a/versions.json b/versions.json
index 44d7ca400e4888dc962801f9a6347782e848fd25..1b012845be1fd9e422a525030fc003f13f07df7f 100644
--- a/versions.json
+++ b/versions.json
@@ -4,6 +4,7 @@
       "repo_url": "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/obfs4.git",
       "revision": "ed46c23917b55c4b274d6986daeaf6bec7963115",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.16",
         "sha256": "7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a"
@@ -19,6 +20,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "336a71d6e4cfd2d33e9c57797828007ad74975e9",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.16",
         "sha256": "7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a"
@@ -34,6 +36,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "a564bc3840bc788605e1a8155f4b95ce0d70c6db",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.16",
         "sha256": "7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a"
@@ -49,6 +52,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "40245c4a",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.13.1",
         "sha256": "81f154e69544b9fa92b1475ff5f11e64270260d46e7e36c34aafc8bc96209358"
@@ -64,6 +68,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "obfs4proxy-0.0.11",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.13.1",
         "sha256": "81f154e69544b9fa92b1475ff5f11e64270260d46e7e36c34aafc8bc96209358"
@@ -79,6 +84,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "obfs4proxy-0.0.11",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.13.1",
         "sha256": "81f154e69544b9fa92b1475ff5f11e64270260d46e7e36c34aafc8bc96209358"
@@ -93,6 +99,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/obfs4.git",
       "revision": "obfs4proxy-0.0.9",
       "build_path": "obfs4proxy",
+      "repo_dir": "obfs4",
       "go": {
         "version": "go1.11.5",
         "sha256": "bc1ef02bb1668835db1390a2e478dcbccb5dd16911691af9d75184bbe5aa943e"
@@ -109,6 +116,7 @@
       "repo_url": "https://git.torproject.org/pluggable-transports/snowflake.git",
       "revision": "36f03dfd4483922b3e7400dedc71df9cf2f30b6b",
       "build_path": "client",
+      "repo_dir": "snowflake",
       "go": {
         "version": "go1.16",
         "sha256": "7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a"