-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
protobuf: Bump version/add depends on abseil-cpp #25566
base: master
Are you sure you want to change the base?
Conversation
7c1321d
to
385334f
Compare
Found this message deep in the protobuf commits. @BKPepe seems like Python bindings should be built from PyPI sources. I will remove the Python bindings from this change for now. I've not seen examples of other packages that bundle a cmake package an a pypi package in the same Makefile. I'd imagine the python bindings will need to be split up into it's own package? |
385334f
to
e3f4d58
Compare
a9eec0a
to
4cbf179
Compare
How you would overcome the Node compilation issue with abesil-cpp. [EDIT]
Linking error fixed by :
The issue is with CMAKE_CXX_STANDARD, taken from Microsoft vcpkg. [EDIT3]
|
This seems like a wise move, so that protobuf-c isn't broken. Thanks for linking that discussion!
I drew inspiration from OpenEmbedded and buildroot for the Wouldn't setting the CXXSTD to 17 preclude any targets that don't support C++17 (but do support 14)? Seems Microsoft is addressing that concern with some conditional logic, from your example. set(ABSL_USE_CXX17_OPTION "")
if("cxx17" IN_LIST FEATURES)
set(ABSL_USE_CXX17_OPTION "-DCMAKE_CXX_STANDARD=17")
endif() A similar approach may be warranted here. |
Sorry about my previous info, protobuf-c seems compile with protobuf 29.1, but I am not sure either package which are depend on protobuf and protobuf-c will also compile. For example netdata.
Yes, nodejs is tough one to fix. My temp workaround is move back with version 20.18.1 LTS which doesn't use abseil-cpp at all.
In my build environment (glibc, targeting x86_64), compilation will still succeed without :
The question is, is it default into 17 or 14. More likely or probably into 17 by default as with 14 I am getting those linking errors. |
Signed-off-by: Austin Lane <[email protected]>
4cbf179
to
231bf6c
Compare
Really weird, now node (version 22.12.0 LTS) doesn't segmentation fault anymore when compiling node-yarn!. Patch for node still needed for compilation. Is there any reason on why you don't use absl_DIR?
[EDIT] |
+# PROPERTY INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}") | ||
elseif (APPLE) | ||
set_property(TARGET ${binary} | ||
PROPERTY INSTALL_RPATH "@loader_path/../lib") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can this patch be cleaned up?
or upstreamed?
maybe it's fine, but i'm a bit lazy (right now) to try to understand it :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added that. IIRC it causes linking to OS libraries instead of OpenWrt ones.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, as of d24229e this should not be needed.
This is not compiling on my side with the folloing error:
|
You could try my finding above. |
no dice @vortexilation, the error states: EDIT Nvm it works, now I'm battling another error:
|
@tiagogaspar8
|
Damn, you always know how to fix stuff @vortexilation ahahah I can now compile everything and I tested netdata's claim and it works, I'll update my PR, yet it needs abseil and protobuf fixed, curious to see the outcome of this PR. |
@tiagogaspar8 protobuf-c need a PR also, perhaps someone might wanted to open a PR?.
Based on gentoo's commit from here , libprotobuf-c also needs this patch,
Tested with compiling frr package with this PR + my changes. |
I think the next steps would be:
Now, regarding Abseil, is the fix you provided the correct fix for this issue @vortexilation? |
Good idea about the steps. I am sure for libprotobuf-c is the correct one, even though it's from test branch. I am not sure if using test branch is allowed in OpenWrt ?. Also there are no other choice other than using test branch. Perhaps @neheb & @vidplace7 may comment on my proposed fixes. Also please be warned, mostly I am only compile tested not run-tested or testing thoroughly the functionalities of aforementioned compilation result. |
Maintainer: @neheb, adding myself as a maintainer as well.
Compile tested:
Description:
Update
protobuf
and add Python bindings (this can be split into another PR if necessary).Note that
protobuf
versions >= v22 requireabseil-cpp
.https://protobuf.dev/support/migration/#abseil
Depends on:
Marking as draft for now, pending
abseil-cpp
review.