This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/orc.git
The following commit(s) were added to refs/heads/main by this push:
new 82be78e ORC-1036: Support dynamic download of the latest tzdata based
on sha512.sum file (#948)
82be78e is described below
commit 82be78eb22c68c6c2528fc22659bbccde5b84aee
Author: Guiyanakaung <[email protected]>
AuthorDate: Tue Oct 26 14:23:54 2021 +0800
ORC-1036: Support dynamic download of the latest tzdata based on sha512.sum
file (#948)
### What changes were proposed in this pull request?
Due to tzdata upgrade, the fixed download links in CI are often not working.
This pr is aimed at supporting dynamic downloads of the latest tzdata based
on the sha512.sum file.
### Why are the changes needed?
Avoid CI not working when tzdata releases a new version.
### How was this patch tested?
Pass the CIs.
---
cmake_modules/ThirdpartyToolchain.cmake | 37 ++++++++++++++++++++++++++-------
1 file changed, 29 insertions(+), 8 deletions(-)
diff --git a/cmake_modules/ThirdpartyToolchain.cmake
b/cmake_modules/ThirdpartyToolchain.cmake
index 1616852..5ec18af 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -274,14 +274,35 @@ endif ()
# IANA - Time Zone Database
if (WIN32)
- ExternalProject_Add(tzdata_ep
- URL
"ftp://cygwin.osuosl.org/pub/cygwin/noarch/release/tzdata/tzdata-2021b-1.tar.xz"
- URL_HASH MD5=d0de6f00f5a37ee211cfabeae9eb0937
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND "")
- ExternalProject_Get_Property(tzdata_ep SOURCE_DIR)
- set(TZDATA_DIR ${SOURCE_DIR}/share/zoneinfo)
+ SET(CURRENT_TZDATA_FILE "")
+ SET(CURRENT_TZDATA_SHA512 "")
+ File(DOWNLOAD
"http://ftp.osuosl.org/pub/cygwin/noarch/release/tzdata/sha512.sum"
${CMAKE_CURRENT_BINARY_DIR}/sha512.sum)
+ File(READ ${CMAKE_CURRENT_BINARY_DIR}/sha512.sum TZDATA_SHA512_CONTENT)
+ string(REPLACE "\n" ";" TZDATA_SHA512_LINE ${TZDATA_SHA512_CONTENT})
+ foreach (LINE IN LISTS TZDATA_SHA512_LINE)
+ if (LINE MATCHES ".tar.xz$" AND (NOT LINE MATCHES "src.tar.xz$"))
+ string(REPLACE " " ";" FILE_ARGS ${LINE})
+ list (GET FILE_ARGS 0 FILE_SHA512)
+ list (GET FILE_ARGS 2 FILE_NAME)
+ if (FILE_NAME STRGREATER CURRENT_TZDATA_FILE)
+ SET(CURRENT_TZDATA_FILE ${FILE_NAME})
+ SET(CURRENT_TZDATA_SHA512 ${FILE_SHA512})
+ endif()
+ endif()
+ endforeach()
+
+ if (NOT "${CURRENT_TZDATA_FILE}" STREQUAL "")
+ ExternalProject_Add(tzdata_ep
+ URL
"ftp://cygwin.osuosl.org/pub/cygwin/noarch/release/tzdata/${CURRENT_TZDATA_FILE}"
+ URL_HASH SHA512=${CURRENT_TZDATA_SHA512}
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND "")
+ ExternalProject_Get_Property(tzdata_ep SOURCE_DIR)
+ set(TZDATA_DIR ${SOURCE_DIR}/share/zoneinfo)
+ else()
+ message(STATUS "WARNING: tzdata were not found")
+ endif()
endif ()
# ----------------------------------------------------------------------