You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2019/07/23 10:20:17 UTC

[arrow] branch master updated: ARROW-6012: [C++] Fall back on known Apache mirror for Thrift downloads

This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new d4414f6  ARROW-6012: [C++] Fall back on known Apache mirror for Thrift downloads
d4414f6 is described below

commit d4414f605bf9b095ff4bcd99efaf3640c34b7f78
Author: Antoine Pitrou <an...@python.org>
AuthorDate: Tue Jul 23 12:20:02 2019 +0200

    ARROW-6012: [C++] Fall back on known Apache mirror for Thrift downloads
    
    Needed to fix AppVeyor builds
    
    Closes #4924 from pitrou/ARROW-6012-apache-mirror and squashes the following commits:
    
    cc7f20b7f <Antoine Pitrou> ARROW-6012:  Fall back on known Apache mirror for Thrift downloads
    
    Authored-by: Antoine Pitrou <an...@python.org>
    Signed-off-by: Antoine Pitrou <an...@python.org>
---
 cpp/build-support/get_apache_mirror.py      | 16 +++++++++++++---
 cpp/cmake_modules/ThirdpartyToolchain.cmake |  9 ++++-----
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/cpp/build-support/get_apache_mirror.py b/cpp/build-support/get_apache_mirror.py
index 38ea6f4..ac55aba 100755
--- a/cpp/build-support/get_apache_mirror.py
+++ b/cpp/build-support/get_apache_mirror.py
@@ -20,6 +20,8 @@
 # mirror for downloading dependencies, e.g. in CMake
 
 import json
+import warnings
+
 try:
     import requests
 
@@ -35,6 +37,14 @@ except ImportError:
     def get_url(url):
         return urlopen(url).read()
 
-suggested_mirror = get_url('https://www.apache.org/dyn/'
-                           'closer.cgi?as_json=1')
-print(json.loads(suggested_mirror.decode('utf-8'))['preferred'])
+url = 'https://www.apache.org/dyn/closer.cgi?as_json=1'
+
+try:
+    suggested_mirror = get_url(url)
+except Exception as e:
+    warnings.warn("Failed loading {url!r}: {e}".format(**locals()),
+                  RuntimeWarning)
+    # Well-known mirror, in case the URL above fails loading
+    print("http://apache.osuosl.org/")
+else:
+    print(json.loads(suggested_mirror.decode('utf-8'))['preferred'])
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index aa1e557..15c8b6e 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -40,11 +40,10 @@ set(APACHE_MIRROR "")
 
 macro(get_apache_mirror)
   if(APACHE_MIRROR STREQUAL "")
-    exec_program(${PYTHON_EXECUTABLE}
-                 ARGS
-                 ${CMAKE_SOURCE_DIR}/build-support/get_apache_mirror.py
-                 OUTPUT_VARIABLE
-                 APACHE_MIRROR)
+    execute_process(COMMAND ${PYTHON_EXECUTABLE}
+                            ${CMAKE_SOURCE_DIR}/build-support/get_apache_mirror.py
+                    OUTPUT_VARIABLE APACHE_MIRROR
+                    OUTPUT_STRIP_TRAILING_WHITESPACE)
   endif()
 endmacro()