Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); ARROW-15417: [Python][Packaging] Use vcpkg manifest to install wheel dependencies; downgrade AWS SDK by building the bundled version by kszucs · Pull Request #12227 · apache/arrow · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
40a78dd
[Python][Packaging] Fail on any import errors in the windows wheel tests
kszucs Jan 21, 2022
8834fb5
Swtich to manifest file
kszucs Jan 22, 2022
858dd1c
Update windows image
kszucs Jan 22, 2022
262db71
Use vcpkg manifest and bump vcpkg's version
kszucs Jan 22, 2022
907136c
Uncomment dockerfile
kszucs Jan 22, 2022
5daa05a
Remove 'remove orc' from jni script
kszucs Jan 22, 2022
9217bae
Install in vcpkg manifest mode but compile arrow in classic vcpkg mode
kszucs Jan 22, 2022
b47538a
Ignore whitespace in vcpkg patch
kszucs Jan 22, 2022
d3da8b2
Escape path in windows docker img
kszucs Jan 22, 2022
e07e07b
Switch to use vcpkg manifest features
kszucs Jan 22, 2022
a7ebec0
Parquet to default features
kszucs Jan 22, 2022
aad6b99
Parquet to default features
kszucs Jan 22, 2022
c01a5fb
E
kszucs Jan 22, 2022
b3e33c9
Use bundled aws-sdk-cpp
kszucs Jan 23, 2022
b993f23
Unconditional push from travis
kszucs Jan 23, 2022
58c41cc
Update M1 template
kszucs Jan 23, 2022
5bd889f
Other way to specific libcurl's location
kszucs Jan 23, 2022
ae13041
Vcpkg manifest and bundled S3
kszucs Jan 23, 2022
979825b
Restore vcpkg version
kszucs Jan 23, 2022
29936c6
Restore vcpkg patch
kszucs Jan 23, 2022
2cac951
Move boost deps to the appropiate extras
kszucs Jan 23, 2022
9a94a76
boost-filesystem
kszucs Jan 23, 2022
d881102
Windows docker image updates
kszucs Jan 23, 2022
5331bd9
Fix Windows newline
kszucs Jan 23, 2022
ba20833
Multiprec
kszucs Jan 23, 2022
3908b95
Boost libs only on windows
kszucs Jan 23, 2022
ed303a7
Filesystem mandatory
kszucs Jan 23, 2022
f4fba4d
Remove vcpkg.json from dockerignore
kszucs Jan 24, 2022
3b5eb40
Remove unconditional image push
kszucs Jan 24, 2022
678c672
Update the JNI dockerfile to use the vcpkg manifest
kszucs Jan 24, 2022
8d81adc
Need to list additional features for java-jars
kszucs Jan 24, 2022
a9f4c1d
Missing windows libraries for bundled AWS SDK
kszucs Jan 24, 2022
f272079
Missing boost multiprecision for gandiva
kszucs Jan 24, 2022
92b41d5
Sort
kszucs Jan 24, 2022
f5d9139
Use ubuntu-latest in java-jars template
kszucs Jan 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions ci/docker/java-jni-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,19 +19,16 @@ ARG base
FROM ${base}

# Install the libaries required by the Gandiva to run
RUN vcpkg install --clean-after-build \
boost-algorithm \
boost-crc \
boost-date-time \
boost-format \
boost-locale \
boost-multiprecision \
boost-predef \
boost-regex \
boost-system \
boost-variant \
# Use enable rtti to avoid link problems in Gandiva
llvm[clang,default-options,default-targets,lld,tools,enable-rtti]
# Use enable llvm[enable-rtti] in the vcpkg.json to avoid link problems in Gandiva
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet \
--x-feature=gandiva

# Install Java
ARG java=1.8.0
Expand Down
54 changes: 20 additions & 34 deletions ci/docker/python-wheel-manylinux-201x.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -53,49 +53,35 @@ COPY ci/vcpkg/*.patch \
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
RUN arrow/ci/scripts/install_vcpkg.sh /opt/vcpkg ${vcpkg} && \
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg} && \
if [ "${manylinux}" == "2010" ]; then \
arrow/ci/scripts/install_glibc.sh ${glibc} /opt/glibc-${glibc} && \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /opt/vcpkg/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/vcpkg/vcpkg; \
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 ${VCPKG_ROOT}/vcpkg && \
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 ${VCPKG_ROOT}/vcpkg; \
fi
ENV PATH="/opt/vcpkg:${PATH}"
ENV PATH="${PATH}:${VCPKG_ROOT}"

ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_FORCE_SYSTEM_BINARIES=1 \
VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
VCPKG_DEFAULT_TRIPLET=${arch_short}-linux-static-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

# Need to install the boost-build prior installing the boost packages, otherwise
# vcpkg will raise an error.
# TODO(kszucs): factor out the package enumeration to a text file and reuse it
# from the windows image and potentially in a future macos wheel build
RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=${VCPKG_ROOT}/installed \
--x-manifest-root=/arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

ARG python=3.8
ENV PYTHON_VERSION=${python}
Expand Down
66 changes: 27 additions & 39 deletions ci/docker/python-wheel-windows-vs2017.dockerfile
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,8 +36,9 @@ COPY ci/vcpkg/*.patch \
ci/vcpkg/*windows*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh arrow/ci/scripts/
ENV VCPKG_ROOT=C:\\vcpkg
RUN bash arrow/ci/scripts/install_vcpkg.sh /c/vcpkg %vcpkg% && \
setx PATH "%PATH%;C:\vcpkg"
setx PATH "%PATH%;%VCPKG_ROOT%"

# Configure vcpkg and install dependencies
# NOTE: use windows batch environment notation for build arguments in RUN
Expand All@@ -48,34 +49,21 @@ ARG build_type=release
ENV CMAKE_BUILD_TYPE=${build_type} \
VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
VCPKG_DEFAULT_TRIPLET=amd64-windows-static-md-${build_type} \
VCPKG_FEATURE_FLAGS=-manifests

RUN vcpkg install --clean-after-build \
abseil \
aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
boost-filesystem \
boost-multiprecision \
boost-system \
brotli \
bzip2 \
c-ares \
curl \
flatbuffers \
gflags \
glog \
google-cloud-cpp[core,storage] \
grpc \
lz4 \
openssl \
orc \
protobuf \
rapidjson \
re2 \
snappy \
thrift \
utf8proc \
zlib \
zstd
VCPKG_FEATURE_FLAGS="manifests"
COPY ci/vcpkg/vcpkg.json arrow/ci/vcpkg/
# cannot use the S3 feature here because while aws-sdk-cpp=1.9.160 contains
# ssl related fixies as well as we can patch the vcpkg portfile to support
# arm machines it hits ARROW-15141 where we would need to fall back to 1.8.186
# but we cannot patch those portfiles since vcpkg-tool handles the checkout of
# previous versions => use bundled S3 build
RUN vcpkg install \
--clean-after-build \
--x-install-root=%VCPKG_ROOT%\installed \
--x-manifest-root=arrow/ci/vcpkg \
--x-feature=flight \
--x-feature=gcs \
--x-feature=json \
--x-feature=parquet

# Remove previous installations of python from the base image
# NOTE: a more recent base image (tried with 2.12.1) comes with python 3.9.7
Expand All@@ -87,20 +75,20 @@ RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \

# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
ARG python=3.8
RUN (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.12) & \
(if "%python%"=="3.8" setx PYTHON_VERSION 3.8.11) & \
(if "%python%"=="3.9" setx PYTHON_VERSION 3.9.9) & \
(if "%python%"=="3.10" setx PYTHON_VERSION 3.10.1)
RUN (if "%python%"=="3.7" setx PYTHON_VERSION "3.7.9" && setx PATH "%PATH%;C:\Python37;C:\Python37\Scripts") & \
(if "%python%"=="3.8" setx PYTHON_VERSION "3.8.10" && setx PATH "%PATH%;C:\Python38;C:\Python38\Scripts") & \
(if "%python%"=="3.9" setx PYTHON_VERSION "3.9.7" && setx PATH "%PATH%;C:\Python39;C:\Python39\Scripts") & \
(if "%python%"=="3.10" setx PYTHON_VERSION "3.10.2" && setx PATH "%PATH%;C:\Python310;C:\Python310\Scripts")
RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
RUN pip install -U pip
RUN python -m pip install -U pip setuptools

COPY python/requirements-wheel-build.txt arrow/python/
RUN pip install -r arrow/python/requirements-wheel-build.txt
RUN python -m pip install -r arrow/python/requirements-wheel-build.txt

ENV CLCACHE_DIR="C:\clcache"
ENV CLCACHE_COMPRESS=1
ENV CLCACHE_COMPRESSLEVEL=6
RUN pip install git+https://github.com/Nuitka/clcache.git
# ENV CLCACHE_DIR="C:\clcache"
# ENV CLCACHE_COMPRESS=1
# ENV CLCACHE_COMPRESSLEVEL=6
# RUN pip install git+https://github.com/Nuitka/clcache.git

# For debugging purposes
# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
Expand Down
3 changes: 0 additions & 3 deletions ci/scripts/java_jni_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -55,9 +55,6 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p "${build_dir}"
pushd "${build_dir}"

Expand Down
10 changes: 4 additions & 6 deletions ci/scripts/python_wheel_macos_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -87,16 +87,11 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${VCPKG_FEATURE_FLAGS:=-manifests}
: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir -p ${build_dir}/build
pushd ${build_dir}/build

cmake \
-DARROW_BUILD_SHARED=ON \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_DATASET=${ARROW_DATASET} \
Expand DownExpand Up@@ -124,13 +119,16 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
-G ${CMAKE_GENERATOR} \
Expand Down
7 changes: 3 additions & 4 deletions ci/scripts/python_wheel_manylinux_build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then
export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16"
fi

# NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir /tmp/arrow-build
pushd /tmp/arrow-build

cmake \
-DARROW_BROTLI_USE_SHARED=OFF \
-DARROW_BUILD_SHARED=ON \
Expand DownExpand Up@@ -115,13 +113,14 @@ cmake \
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
-DAWSSDK_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DOPENSSL_USE_STATIC_LIBS=ON \
-DORC_SOURCE=BUNDLED \
-DORC_PROTOBUF_EXECUTABLE=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc \
-DORC_SOURCE=BUNDLED \
-DVCPKG_MANIFEST_MODE=OFF \
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
${ARROW_EXTRA_CMAKE_FLAGS} \
Expand Down
6 changes: 1 addition & 5 deletions ci/scripts/python_wheel_windows_build.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -51,9 +51,6 @@ set VCPKG_ROOT=C:\vcpkg
set VCPKG_FEATURE_FLAGS=-manifests
set VCGPK_TARGET_TRIPLET=amd64-windows-static-md-%CMAKE_BUILD_TYPE%

@rem NOTE(kszucs): workaround for ARROW-15403 along with the ORC_* cmake variables
vcpkg remove orc

mkdir C:\arrow-build
pushd C:\arrow-build
cmake ^
Expand All@@ -80,13 +77,12 @@ cmake ^
-DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
-DAWSSDK_SOURCE=BUNDLED ^
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
-DCMAKE_CXX_COMPILER=clcache ^
-DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
-DMSVC_LINK_VERBOSE=ON ^
-DORC_SOURCE=BUNDLED ^
-DORC_PROTOBUF_EXECUTABLE=%VCPKG_ROOT%\installed\%VCGPK_TARGET_TRIPLET%\tools\protobuf\protoc.exe ^
-DVCPKG_MANIFEST_MODE=OFF ^
-DVCPKG_TARGET_TRIPLET=%VCGPK_TARGET_TRIPLET% ^
-G "%CMAKE_GENERATOR%" ^
Expand Down
18 changes: 9 additions & 9 deletions ci/scripts/python_wheel_windows_test.bat
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,15 +41,15 @@ pip install -r C:\arrow\python\requirements-wheel-test.txt || exit /B
python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B

@REM Test that the modules are importable
python -c "import pyarrow"
python -c "import pyarrow._hdfs"
python -c "import pyarrow._s3fs"
python -c "import pyarrow.csv"
python -c "import pyarrow.dataset"
python -c "import pyarrow.flight"
python -c "import pyarrow.fs"
python -c "import pyarrow.json"
python -c "import pyarrow.parquet"
python -c "import pyarrow" || exit /B
python -c "import pyarrow._hdfs" || exit /B
python -c "import pyarrow._s3fs" || exit /B
python -c "import pyarrow.csv" || exit /B
python -c "import pyarrow.dataset" || exit /B
python -c "import pyarrow.flight" || exit /B
python -c "import pyarrow.fs" || exit /B
python -c "import pyarrow.json" || exit /B
python -c "import pyarrow.parquet" || exit /B

@REM Execute unittest
pytest -r s --pyargs pyarrow || exit /B
20 changes: 10 additions & 10 deletions ci/vcpkg/ports.patch
Original file line numberDiff line numberDiff line change
Expand Up@@ -164,20 +164,20 @@ index 00000000..4566cc66
+- " set(LibCrypto_SHARED_LIBRARY ${OPENSSL_CRYPTO_LIBRARY} CACHE INTERNAL \"The OpenSSL crypto shared library\")\n"
+- "endif()\n"
+ )
+
+
+ if (NOT SIMPLE_INSTALL)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index 2d6bba4d..0ac47887 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
PATCHES
patch-relocatable-rpath.patch
fix-aws-root.patch
+ fix-find-crypto.patch
)

string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT)
diff --git a/ports/aws-sdk-cpp/vcpkg.json b/ports/aws-sdk-cpp/vcpkg.json
index 3836e2b6..cd88ef07 100644
--- a/ports/aws-sdk-cpp/vcpkg.json
Expand DownExpand Up@@ -216,7 +216,7 @@ index 45b8c706..b409d8a7 100644
HEAD_REF master
+ PATCHES "snappy-disable-bmi.patch"
)

vcpkg_cmake_configure(
diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
new file mode 100644
Expand All@@ -241,5 +241,5 @@ index 00000000..a57ce0c2
+ return v & ~(mask << (8 * n));
+-#endif
+ }
+
+
+ static inline bool LeftShiftOverflows(uint8_t value, uint32_t shift) {
Loading