mirror of
https://github.com/facebook/rocksdb.git
synced 2026-07-07 14:47:40 +08:00
Fix autoconf download failure in folly build (#14226)
Summary: Folly download dependencies directly from external source. Sometimes, this could fail due to external website instability. To solve this, we added github cache to cache the dependencies. We also added a python script to try different sources during download to reduce the chance of failure. Pull Request resolved: https://github.com/facebook/rocksdb/pull/14226 Test Plan: github CI Reviewed By: krhancoc, archang19 Differential Revision: D90343051 Pulled By: xingbowang fbshipit-source-id: 3faad6aaa6c1bfd361b9e405c298856cd64bf457
This commit is contained in:
committed by
meta-codesync[bot]
parent
4bf2bcdbb3
commit
4bcec5ae89
@@ -116,10 +116,27 @@ checkout_folly:
|
||||
perl -pi -e 's/(#include <atomic>)/$$1\n#include <cstring>/' third-party/folly/folly/lang/Exception.h
|
||||
@# const mismatch
|
||||
perl -pi -e 's/: environ/: (const char**)(environ)/' third-party/folly/folly/Subprocess.cpp
|
||||
@# Use gnu.org mirrors to improve download speed (ftp.gnu.org is often super slow)
|
||||
cd third-party/folly && perl -pi -e 's/ftp.gnu.org/ftpmirror.gnu.org/' `git grep -l ftp.gnu.org` README.md
|
||||
@# Restore cached downloads and handle unreliable mirrors with fallback
|
||||
@cd third-party/folly && \
|
||||
DOWNLOAD_DIR=`$(PYTHON) build/fbcode_builder/getdeps.py show-inst-dir | sed 's|/installed/.*|/downloads|'` && \
|
||||
mkdir -p "$$DOWNLOAD_DIR" && \
|
||||
CACHE_DIR="/tmp/rocksdb-getdeps-cache" && \
|
||||
mkdir -p "$$CACHE_DIR" && \
|
||||
echo "Restoring cached downloads..." && \
|
||||
if ls "$$CACHE_DIR"/*.tar.gz "$$CACHE_DIR"/*.tar.xz "$$CACHE_DIR"/*.zip >/dev/null 2>&1; then \
|
||||
cp -n "$$CACHE_DIR"/*.tar.gz "$$CACHE_DIR"/*.tar.xz "$$CACHE_DIR"/*.zip "$$DOWNLOAD_DIR/" 2>/dev/null || true; \
|
||||
fi && \
|
||||
echo "Handling known unreliable downloads with fallback mirrors..." && \
|
||||
$(PYTHON) ../../build_tools/getdeps_fallback_mirror.py "$$DOWNLOAD_DIR" "$$CACHE_DIR" build/fbcode_builder/manifests
|
||||
@# NOTE: boost and fmt source will be needed for any build including `USE_FOLLY_LITE` builds as those depend on those headers
|
||||
cd third-party/folly && GETDEPS_USE_WGET=1 $(PYTHON) build/fbcode_builder/getdeps.py fetch boost && GETDEPS_USE_WGET=1 $(PYTHON) build/fbcode_builder/getdeps.py fetch fmt
|
||||
@# Update cache with any new downloads
|
||||
@cd third-party/folly && \
|
||||
DOWNLOAD_DIR=`$(PYTHON) build/fbcode_builder/getdeps.py show-inst-dir | sed 's|/installed/.*|/downloads|'` && \
|
||||
CACHE_DIR="/tmp/rocksdb-getdeps-cache" && \
|
||||
if ls "$$DOWNLOAD_DIR"/*.tar.gz "$$DOWNLOAD_DIR"/*.tar.xz "$$DOWNLOAD_DIR"/*.zip >/dev/null 2>&1; then \
|
||||
cp -n "$$DOWNLOAD_DIR"/*.tar.gz "$$DOWNLOAD_DIR"/*.tar.xz "$$DOWNLOAD_DIR"/*.zip "$$CACHE_DIR/" 2>/dev/null || true; \
|
||||
fi
|
||||
|
||||
CXX_M_FLAGS = $(filter -m%, $(CXXFLAGS))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user