-
Notifications
You must be signed in to change notification settings - Fork 3.8k
GH-47052: [CI] Use Alpine Linux 3.20 instead of 3.18 #47148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
This is failing locally, it seems link flags (lz4) are not correctly propagated when using the system Orc? Orc is linked statically here:
@kou any idea what might be the issue? to be honest I am unsure whether this is a problem with the built orc package on alpine or on our Third Party Toolchain. |
It seems that apache-orc-dev 2.0.3 on Alpine Linux 3.20 and 3.21 don't provide How about the following as workaround? diff --git a/cpp/cmake_modules/FindorcAlt.cmake b/cpp/cmake_modules/FindorcAlt.cmake
index ce8cd11b4c..406f186a48 100644
--- a/cpp/cmake_modules/FindorcAlt.cmake
+++ b/cpp/cmake_modules/FindorcAlt.cmake
@@ -66,10 +66,25 @@ find_package_handle_standard_args(
if(orcAlt_FOUND)
if(NOT TARGET orc::orc)
+ # For old Apache Orc. For example, apache-orc 2.0.3 on Alpine
+ # Linux 3.20 and 3.21.
add_library(orc::orc STATIC IMPORTED)
set_target_properties(orc::orc
PROPERTIES IMPORTED_LOCATION "${ORC_STATIC_LIB}"
INTERFACE_INCLUDE_DIRECTORIES "${ORC_INCLUDE_DIR}")
+ if(ARROW_WITH_LZ4 AND TARGET LZ4::lz4)
+ target_link_libraries(orc::orc INTERFACE LZ4::lz4)
+ endif()
+ if(ARROW_WITH_SNAPPY AND TARGET Snappy::snappy)
+ target_link_libraries(orc::orc INTERFACE Snappy::snappy)
+ endif()
+ if(ARROW_WITH_ZSTD)
+ if(TARGET zstd::libzstd_shared)
+ target_link_libraries(orc::orc INTERFACE zstd::libzstd_shared)
+ elseif(TARGET zstd::libzstd_static)
+ target_link_libraries(orc::orc INTERFACE zstd::libzstd_static)
+ endif()
+ endif()
endif()
set(orcAlt_VERSION ${ORC_VERSION})
endif() |
Thanks @kou ! I had to add Zlib too to your snippet and with that we were able to build. The job is still failing but now with some core dump and failures around ORC tests, it will require some more investigation. The same tests are successful if I build ORC |
Python failures are unrelated, they are failing on other PRs, I opened: |
https://github.com/apache/arrow/actions/runs/16442827719/job/46467431083#step:6:4162
It seems that ORC was loaded multiple times. Let's check the link command line for the test file. |
I've tested with
|
Ah, we may not need diff --git a/cpp/src/arrow/dataset/CMakeLists.txt b/cpp/src/arrow/dataset/CMakeLists.txt
index d87afdf5bd..fa6875527d 100644
--- a/cpp/src/arrow/dataset/CMakeLists.txt
+++ b/cpp/src/arrow/dataset/CMakeLists.txt
@@ -191,8 +191,7 @@ if(ARROW_JSON)
endif()
if(ARROW_ORC)
- add_arrow_dataset_test(file_orc_test EXTRA_LINK_LIBS ${ARROW_DATASET_TEST_LINK_LIBS}
- orc::orc)
+ add_arrow_dataset_test(file_orc_test EXTRA_LINK_LIBS ${ARROW_DATASET_TEST_LINK_LIBS})
endif()
if(ARROW_PARQUET) |
Rationale for this change
Alpine Linux 3.18 is currently deprecated.
What changes are included in this PR?
Update version of Alpine Linux.
Are these changes tested?
Via CI