-
Notifications
You must be signed in to change notification settings - Fork 290
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
0.21.0 breaks build on Rust Docker image #126
Comments
I also encountered this, on my Linux machine (macOS was fine). I suspect that anyone using docker to build a project will also see it and scratch their head. A pre-install check or at least a README would be great. Also sounds like other rust projects suffer from this (from googling). |
|
I've been spending a bunch of time at getting things to compile because of this today. I see how generating the bindings is easier for the release process, but for users of the crate it's quite a lot of hassle. Think this might even hold back adoption because it's not apparent why you can't build. I think we should consider rolling this back. |
Did anybody get this to work with the CircleCI Rust image? Even after installing the packages I get:
|
Ping, still don't have a working build on CircleCI. I will open a pull request to revert the bindgen change. |
I am also unable to get 0.21.0 to compile on Gentoo Linux with llvm/clang 8 without setting |
Note that this completely breaks 0.21 for platforms that have Rust but no Clang, as far as I can tell... It would be nice to continue to support platforms that don't have clang... |
Hi, sorry for the pain that PR caused. Unfortunately I don't have easy access to a FreeBSD machine, so checking in the bindings meant that I couldn't bump the version of librdkafka, since I couldn't regenerate the bindings on FreeBSD. (And this is a cost that must be paid whenever there's a new librdkafka version, which is often.) One thing we could consider is bundling the bindings on Linux only, I suppose. Note that there's an upstream issue for bindgen to bundle libclang that may be of interest: rust-lang/rust-bindgen#918 |
Would it be possible to, I dunno, collect money to run an EC2 instance once a quarter when a new release happens? This is a breaking change for me because there's no straightforward way to get an appropriate build of libclang for my platform. |
What platform do you use, @Roguelazer? |
RHEL6
…--
James Brown,
currently mobile
On Oct 22, 2019, at 11:52, Nikhil Benesch ***@***.***> wrote:
What platform do you use, @Roguelazer?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Automatically generating bindings as part of the build process caused some user complaints, since installing clang/libclang can be a hassle. The rdkafka bindings are not particularly platform-dependent, and with a bit of work we can generate bindings that depend on platform-dependent types, like libc::FILE, so that we only need to run bindgen once. Fix fede1024#126.
I came up with a solution here that I think will satisfy everyone. Bindings are again checked into version control, so bindgen/libclang/clang are no longer build time dependencies. This time, however, the bindings are not platform-specific (they depend on platform-specific types like libc::FILE as necessary), so they don't need to be regenerated once per platform like before. |
Problem
Using the official Rust docker image, I am unable to build version
0.21.0
, whereas0.20.0
worked without issue. The error I see is:Solution
I am able to build successfully after installing some additional dependencies in the image (copied from the Dockerfile in this repo):
apt-get install -y llvm-3.9-dev libclang-3.9-dev clang-3.9
Based on the description in d9321f2, it looks like the new dependencies are intended. Perhaps the new dependencies could be mentioned in the changelog to help anyone with broken builds?
Let me know if there is additional information I can provide.
Thanks!
The text was updated successfully, but these errors were encountered: