[staging-next] apache-orc: 2.2.1 -> 2.3.0, fix build with protobuf 34#499475
[staging-next] apache-orc: 2.2.1 -> 2.3.0, fix build with protobuf 34#499475dotlambda merged 4 commits intoNixOS:staging-nextfrom
Conversation
|
Are there upstream issues we can link to for the two patches? |
Orc's CMake declarations do not correctly attempt to link in abseil, so we add the relevant library they need. Without these, we get errors like: ``` <store path>/bin/ld: <store path>/lib/libabsl_raw_hash-set.so.2601.0.0: error adding symbols: DSO missing from command line ```
Protobuf 34 adds `[[nodiscard]]` to several serialization functions. In order to avoid these warnings causing build failures, we add handling for this failure case
The CMake declarations for apache-orc expect the presence of `PROTOBUF_HOME` in order to consider the library found, in addition to the currently specified zstd and lz4 locations. We add it accordingly.
a804dc7 to
c89e51f
Compare
Not yet. I couldn't find any pre-existing ones, and I haven't done it yet. I plan to write up issues, as well as a PR for the Protobuf fix, but that's going to be a task for another day as I don't presently have the capacity for that. |
1a58c70
|
It looks like this fixed the build on Linux, but not on Darwin. I can't fix this because I don't have access to a Darwin machine, but here are the logs in case someone can: https://hydra.nixos.org/build/324063460 If we don't want to play this cat-and-mouse game of squashing Protobuf (Note: I've just mentioned the Protobuf issue on the upstream upgrade PR: apache/orc#2564 (comment). I don't expect it to turn into a fix immediately, though.) |
|
I honestly believe that this kind of warnings should not stop distro builds. They should be hard errors only in upstream builds. |
|
With f228261 it builds on aarch64-darwin for me again. |
Changelog: https://github.com/apache/orc/releases/tag/v2.3.0
In order to make this update, we have to update Orc's CMake declarations in order to correctly link abseil libraries. I'm not a CMake expert or even knower, but I think this is reasonably correct.
The build is also currently failing on staging-next due to Protobuf 34 adding
[[nodiscard]]to many serialization functions, to which we handle the error in the place where it occurs. (I'll see if I can upstream this change later.)We also added the
PROTOBUF_HOMEvariable to arrow-cpp, the in-tree dependent for apache-orc, as it needs it in order to find the orc libraries and correctly pass the CMake configure step. I'm not familiar enough with CMake to figure out how the error messages it emits correspond to this fix, but it leads to a successful build.Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.