-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
rust: new recipe with pre-built binaries #20991
Conversation
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit f8ec7c9rust/1.73.0@#8f7fd451fbaf94e8b2ee3487daa6b1f5
|
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit add4eferust/1.73.0@#961f0595afad29dbb1cc22cd8482bda7
|
This comment has been minimized.
This comment has been minimized.
9313bd3
to
154fe97
Compare
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit 154fe97rust/1.73.0@#751ae503c2fb008806562267d1074ce5
|
Are you sure? The C portion of the library is just a wrapper around the Rust library, as far as I can tell. See also the related librsvg PR: #21005 I don't have any immediate need for Rust besides librsvg, but I think it's a common and important enough library to warrant Rust support in CCI. As a build tool dependency, Rust is very well-behaved and comparable to CMake or Ninja. Binaries produced by Rust link statically against Rust's libstd by default. The only minor issues I can think of are (1) the size of the Rust package (300 MB) which can become a nuisance if multiple different versions are kept in the cache, (2) Rust caches its Cargo packages inside the home directory, which can be unexpected and unwanted, (3) cross-compiling might be difficult. |
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.
Thank you for submitting your pull request. After discussing it with the Conan team, we have reservations about accepting it in the short to medium term. This hesitation stems from potential issues arising after the implementation is integrated into the Conan Center.
The Rust toolkit provides libraries that may have runtime dependencies, and these dependencies are currently not adequately tracked by the package settings due to the existing design. This fragility could lead to misconfigurations with the package ID, posing challenges to the overall stability and reliability of the users.
@uilianries That's a valid concern, for sure, but shouldn't the potential runtime dependency issues be looked at the consuming recipes case-by-case, instead? As I mentioned, the default in Rust is to link its dependencies statically, after all. |
And these packages will fail in As I mentioned earlier, Rust is one of the easier cases thanks to static linking being the default. Not that it's any excuse to be sloppy here, but for contrast, the far more common @uilianries @franramirez688 @jcar87 Don't let the perfect be the enemy of good. I suggest we add a disclaimer to the package description that the Rust package is experimental and should only be used to build C/C++-ABI shared libraries with a statically-linked stdlib and not for packaging any Rust libraries. |
154fe97
to
f363725
Compare
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit 88c363crust/1.77.1@#c5a16d00c5a7c605d29934fb908e9d37
|
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit a45d789rust/1.77.1@#c5a16d00c5a7c605d29934fb908e9d37
|
Conan v1 pipeline ✔️All green in build 6 (
Conan v2 pipeline ✔️
All green in build 6 ( |
Hooks produced the following warnings for commit 3481f3frust/1.72.1@#2625f5f1b7c6d8f59067a59862f983a8
rust/1.77.1@#c5a16d00c5a7c605d29934fb908e9d37
|
Closing echoing @uilianries message. This is not something we are prioritising right now. I would suggest to open an issue so that other uses can articulate their needs for a rust recipe, which we may consider in the future. |
@jcar87 This is a fully functional recipe and a perfectly fine location for discussion you suggested, I think. Could you please keep it open for the time being until external toolchain support is on you radar? |
Adds Rust toolchain. Mostly for
librsvg
.Rust is quite straightforward to build from sources, but due to being based on LLVM, the memory consumption in C3I will almost certainly exceed its limits. It also builds slowly: 20+ minutes locally and probably 1.5 h or more in CI.