morningman opened a new pull request, #66908:
URL: https://github.com/apache/doris/pull/66908
### What problem does this PR solve?
Issue Number: close #xxx
Related PR: #66842
Problem Summary:
**Second half of a two-PR split. Do not merge before #66842 has landed *and*
the
prebuilt third-party archives have been rebuilt from it** - see "Merge
order" at the
bottom. #66842 carries the third-party build changes; this PR carries the
consumers.
## 1. Move the remaining `hadoop_hdfs/` consumers onto `hadoop_hdfs_3_4/`
The tree carried two libhdfs builds - 3.3.6.6 under
`installed/{include,lib}/hadoop_hdfs/`
and 3.4.2.4 under `.../hadoop_hdfs_3_4/` - and the two prefixes were mixed
up on the
consumer side:
| consumer | header | library |
|---|---|---|
| `be/src/io/fs/hdfs.h` | `hadoop_hdfs_3_4/hdfs.h` (3.4.2.4) | — |
| `be/src/io/hdfs_builder.cpp` | `hadoop_hdfs/hdfs.h` (**3.3.6.6**) | — |
| `be/CMakeLists.txt` | — | `hadoop_hdfs_3_4/native/libhdfs.a` (3.4.2.4) |
| `cloud/src/recycler/hdfs_accessor.{h,cpp}` | `hadoop_hdfs/hdfs.h`
(**3.3.6.6**) | — |
| `cloud/CMakeLists.txt` | — | `hadoop_hdfs/native/libhdfs.a` (**3.3.6.6**) |
Both headers share the `LIBHDFS_HDFS_H` include guard, so `hdfs_builder.cpp`
compiled
against the 3.3.6.6 header (it came first) while BE linked the 3.4.2.4
archive.
So `cloud/`, `build.sh`'s `LAST_THIRDPARTY_LIB` sentinel, `run-be-ut.sh`,
`run-cloud-ut.sh` and the thirdparty lifecycle test move to
`hadoop_hdfs_3_4/`, and
`be/src/io/hdfs_builder.cpp` drops its 3.3.6.6 include - `io/fs/hdfs.h`, two
lines
below it, already re-exports the 3.4.2.4 one. The unit-test runners still
stage the
jars at `lib/hadoop_hdfs/`, so the classpath loops below them are unchanged.
Both prefixes exist in every third-party archive built before #66842, so
this half is
safe against the images in use today. It is #66842 - which stops building
3.3.6.6 at
all - that makes it mandatory.
## 2. Link azure on aarch64 and macOS
`env.sh` forced `DISABLE_BUILD_AZURE=ON` on aarch64 and macOS, so BE and the
cloud
meta-service lost `+AZURE_BLOB` and `+AZURE_STORAGE_VAULT` there. #66842
made the
third-party recipe portable (`-ldl` does not exist on Apple; vcpkg ships no
prebuilt
tools for aarch64 Linux) and now builds azure on every platform. This drops
the
platform test so the consumers link it. `DISABLE_BUILD_AZURE=ON` still opts
out.
## Merge order
1. #66842 lands.
2. The apache/doris-thirdparty automation rebuilds the prebuilt archives -
it triggers
on `^thirdparty/` and takes ~3h - and the aarch64 build-env image is
rebuilt.
3. This PR lands.
Landing this one first fails at the BE link with
`ninja: error: '.../installed/lib/libazure-core.a' ... missing and no known
rule to
make it`, which is exactly what the BE UT (macOS) job of the un-split PR hit.
### Release note
Azure Blob Storage support (`+AZURE_BLOB`, `+AZURE_STORAGE_VAULT`) is now
built on
aarch64 and macOS, not just x86_64 Linux.
### Check List (For Author)
- Test
- [x] Manual test (add detailed scripts or steps below)
`thirdparty/test/arrow-paimon-lifecycle-test.sh` covers the `build.sh`
sentinel
move; it is what the Arrow/Paimon Lifecycle Test job runs. The azure
half is
exercised by every BE/cloud build in this PR's own CI, against a
prebuilt that
by then carries the libraries.
- Behavior changed:
- [x] Yes.
- Azure is now built and linked on aarch64 and macOS. **The
third-party prebuilt
has to be rebuilt from #66842 before this lands**: BE/cloud on those
platforms
will pass `-DBUILD_AZURE=ON` and fail to link against an older
archive that has
no azure libraries. `DISABLE_BUILD_AZURE=ON` still opts out.
- Anything outside this repository reading the `hadoop_hdfs/` prefix
needs
updating; only `hadoop_hdfs_3_4/` remains after #66842.
- Does this need documentation?
- [x] No.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]