This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new bd30652d01e [chore](thirdparty) upgrade HADOOP_LIBS_3_4 to
hadoop-3.4.2.3-for-doris and build macOS CI on JDK 17 (#66783)
bd30652d01e is described below
commit bd30652d01ec626bda554afb16a9768479f887af
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Sat Aug 15 08:28:04 2026 +0800
[chore](thirdparty) upgrade HADOOP_LIBS_3_4 to hadoop-3.4.2.3-for-doris and
build macOS CI on JDK 17 (#66783)
## Proposed changes
Two commits, both small.
### 1. `HADOOP_LIBS_3_4` → `hadoop-3.4.2.3-for-doris`
Picks up
[apache/doris-thirdparty#407](https://github.com/apache/doris-thirdparty/pull/407),
which makes hadoop's native build work on macOS. Until now
`build_hadoop_libs_3_4` was Linux-only (`build-thirdparty.sh` adds it to
the package list under `uname -s == Linux`), because the build could not
complete on a Mac at all. Two things stopped it, both platform
differences rather than defects:
- **`find_package(ZLIB REQUIRED)` could not succeed.**
`hadoop_set_find_shared_library_version("1")` pins the search to
`libz.1.dylib`, which modern macOS keeps only in the dyld shared cache —
the SDK carries a `libz.1.tbd` stub instead — so configure aborted with
`Could NOT find ZLIB (missing: ZLIB_LIBRARY)`. zlib is never linked into
libhadoop; `ZlibCompressor.c` `dlopen()`s it by basename at run time,
and `dlopen("libz.1.dylib")` does resolve against the shared cache. The
lookup now takes the plain search for headers and names the runtime
library outright.
- **`libhdfspp.dylib` failed to link**, leaving 22 `gss_*` symbols
undefined through a static libsasl2. Linux' `ld` tolerates undefined
symbols in a `.so`; macOS' `ld` does not, and the failure took the whole
`make` down with it — `libhdfs.a` included. SASL is used by libhdfspp
alone, so it is turned off there.
Both fixes sit inside `if(APPLE)` / `if(NOT APPLE)` branches in the
fork, so the Linux build is byte for byte unchanged and produces the
same artifacts.
### 2. macOS thirdparty CI jobs: `openjdk@11` → `openjdk@17`
Doris builds on JDK 17, and hadoop 3.4.2 — the only thirdparty package
whose build needs a JDK — compiles cleanly against it. Declaring 11 no
longer reflects anything we build or test against. The Linux job stays
on openjdk-8, which it also pins through `JAVA_HOME`.
## Verification
The new tag was built on macOS 26.5 / arm64 (llvm@20, JDK 17), driven
through `thirdparty/build-thirdparty.sh hadoop_libs_3_4` with
dependencies resolved from a Doris thirdparty prefix — no extra Homebrew
packages. Tested with both cmake 3.25.3 (the version this workflow pins)
and cmake 4.4.
`build-thirdparty.sh hadoop_libs_3_4` exits 0 and installs:
```
installed/lib/hadoop_hdfs_3_4/native/ libhdfs.a 1.4M arm64
libhadoop.dylib 160K arm64
libhdfs.dylib 135K arm64
libhdfspp.dylib 8.9M arm64
installed/include/hadoop_hdfs_3_4/ hdfs.h
installed/lib/hadoop_hdfs_3_4/ common/ (5 jars) hdfs/ (10 jars)
```
`libhdfs.a` exports everything BE's `USE_HADOOP_HDFS` /
`USE_DORIS_HADOOP_HDFS` paths call, including the fork's
`hdfsSetLogger`, plus `hdfsGetLastExceptionRootCause`,
`hdfsBuilderSetKerb5Conf`, `hdfsBuilderSetKeyTabFile`,
`hdfsUnbufferFile`, `hdfsFileGetReadStatistics`, `hdfsHSync` and
`hdfsHFlush`.
The tarball MD5 was checked across three separate downloads of the
GitHub tag archive and is stable.
## Scope
This PR only bumps the source and the declared CI JDK. It deliberately
does **not** add `hadoop_libs_3_4` to the macOS branch of
`build-thirdparty.sh`'s package list, nor touch `be/CMakeLists.txt`,
which still selects libhdfs3 on macOS. Making the BE actually link
hadoop's libhdfs there is a separate change.
---
.github/workflows/build-thirdparty.yml | 4 ++--
thirdparty/CHANGELOG.md | 4 ++++
thirdparty/vars.sh | 8 ++++----
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/build-thirdparty.yml
b/.github/workflows/build-thirdparty.yml
index d5a6fe2b2bd..1fe25b781e8 100644
--- a/.github/workflows/build-thirdparty.yml
+++ b/.github/workflows/build-thirdparty.yml
@@ -227,7 +227,7 @@ jobs:
'gettext'
'wget'
'pcre'
- 'openjdk@11'
+ 'openjdk@17'
'maven'
'node'
'llvm@20'
@@ -292,7 +292,7 @@ jobs:
'gettext'
'wget'
'pcre'
- 'openjdk@11'
+ 'openjdk@17'
'maven'
'node'
'llvm@20'
diff --git a/thirdparty/CHANGELOG.md b/thirdparty/CHANGELOG.md
index eda6d280f5e..1cb2e96a53b 100644
--- a/thirdparty/CHANGELOG.md
+++ b/thirdparty/CHANGELOG.md
@@ -2,6 +2,10 @@
This file contains version of the third-party dependency libraries in the
build-env image. The docker build-env image is apache/doris, and the tag is
`build-env-${version}`
+## 20260814
+
+- Modified: hadoop-libs 3.4.2.2 -> 3.4.2.3
+
## 20260206
- Modified: jindofs 6.8.2 -> 6.10.4
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index da4913b78e7..211954c27a8 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -504,10 +504,10 @@
HADOOP_LIBS_SOURCE="doris-thirdparty-hadoop-3.3.6.6-for-doris"
HADOOP_LIBS_MD5SUM="13b66d5f2abffd1740e692b65df5962e"
# libhdfs 3.4
-HADOOP_LIBS_3_4_DOWNLOAD="https://github.com/apache/doris-thirdparty/archive/refs/tags/hadoop-3.4.2.2-for-doris.tar.gz"
-HADOOP_LIBS_3_4_NAME="hadoop-3.4.2.2-for-doris.tar.gz"
-HADOOP_LIBS_3_4_SOURCE="doris-thirdparty-hadoop-3.4.2.2-for-doris"
-HADOOP_LIBS_3_4_MD5SUM="b649508cdff5c8603abd659b754a2796"
+HADOOP_LIBS_3_4_DOWNLOAD="https://github.com/apache/doris-thirdparty/archive/refs/tags/hadoop-3.4.2.3-for-doris.tar.gz"
+HADOOP_LIBS_3_4_NAME="hadoop-3.4.2.3-for-doris.tar.gz"
+HADOOP_LIBS_3_4_SOURCE="doris-thirdparty-hadoop-3.4.2.3-for-doris"
+HADOOP_LIBS_3_4_MD5SUM="a751a42f3a927c4a272a99d4e3788648"
# AvxToNeon
AVX2NEON_DOWNLOAD="https://github.com/kunpengcompute/AvxToNeon/archive/refs/tags/v1.0.0.tar.gz"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]