@@ -138,19 +138,19 @@ def make_build_python(context):
138138 run (["make" , "-j" , str (os .cpu_count ())])
139139
140140
141- def unpack_deps (host ):
141+ def unpack_deps (host , prefix_dir ):
142142 deps_url = "https://github.com/beeware/cpython-android-source-deps/releases/download"
143143 for name_ver in ["bzip2-1.0.8-2" , "libffi-3.4.4-3" , "openssl-3.0.15-4" ,
144144 "sqlite-3.49.1-0" , "xz-5.4.6-1" ]:
145145 filename = f"{ name_ver } -{ host } .tar.gz"
146146 download (f"{ deps_url } /{ name_ver } /{ filename } " )
147- run ([ "tar" , "-xf" , filename ] )
147+ shutil . unpack_archive ( filename , prefix_dir )
148148 os .remove (filename )
149149
150150
151151def download (url , target_dir = "." ):
152152 out_path = f"{ target_dir } /{ basename (url )} "
153- run (["curl" , "-Lf" , "-o" , out_path , url ])
153+ run (["curl" , "-Lf" , "--retry" , "5" , "--retry-all-errors" , "- o" , out_path , url ])
154154 return out_path
155155
156156
@@ -162,8 +162,7 @@ def configure_host_python(context):
162162 prefix_dir = host_dir / "prefix"
163163 if not prefix_dir .exists ():
164164 prefix_dir .mkdir ()
165- os .chdir (prefix_dir )
166- unpack_deps (context .host )
165+ unpack_deps (context .host , prefix_dir )
167166
168167 os .chdir (host_dir )
169168 command = [
@@ -241,16 +240,15 @@ def setup_sdk():
241240# the Gradle wrapper is not included in the CPython repository. Instead, we
242241# extract it from the Gradle GitHub repository.
243242def setup_testbed ():
244- # The Gradle version used for the build is specified in
245- # testbed/gradle/wrapper/gradle-wrapper.properties. This wrapper version
246- # doesn't need to match, as any version of the wrapper can download any
247- # version of Gradle.
248- version = "8.9.0"
249243 paths = ["gradlew" , "gradlew.bat" , "gradle/wrapper/gradle-wrapper.jar" ]
250-
251244 if all ((TESTBED_DIR / path ).exists () for path in paths ):
252245 return
253246
247+ # The wrapper version isn't important, as any version of the wrapper can
248+ # download any version of Gradle. The Gradle version actually used for the
249+ # build is specified in testbed/gradle/wrapper/gradle-wrapper.properties.
250+ version = "8.9.0"
251+
254252 for path in paths :
255253 out_path = TESTBED_DIR / path
256254 out_path .parent .mkdir (exist_ok = True )
0 commit comments