-
Notifications
You must be signed in to change notification settings - Fork 9
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
Dynamic dependencies from build scripts are missed #71
Comments
change errno from 0.2 to 0.3 work around the dependency issue found in cargo-vendor-filterer coreos/cargo-vendor-filterer#71
change errno's version range from 0.2 to 0.3 work around the dependency issue found coreos/cargo-vendor-filterer#71 which is effecting afterburn's vender tarball and consequently RCOS/C9s releases
change errno's version range from 0.2^ to 0.3^ work around the dependency issue found coreos/cargo-vendor-filterer#71 which is effecting afterburn's vender tarball and consequently RCOS/C9s releases
change errno's version range from 0.2^ to 0.3^ work around the dependency issue found coreos/cargo-vendor-filterer#71 which is effecting afterburn's vender tarball and consequently RCOS/C9s releases
coreos/afterburn#934 appears to work around this issue. |
I'm still digging into this a bit, but it's not looking like a bug in vendor-filterer. Before that PR, afterburn was just specifying x86_64-unknown-linux-gnu. But what I've narrowed things down to is that actually changing it to
does correctly bring back in (The reason then that coreos/afterburn#934 fixes this is because it has the effect of adding all linux, including |
For reference exactly where and how did the build fail? Seeing the string |
I didn't fully verify this but I'm pretty sure this is because of What most likely changed here is that afterburn indirectly picked up a new rustix somewhere along the way. Anyways, the real fix for this is the |
This is failing on x86_64: $ cd afterburn
$ git checkout v5.4.2
$ cargo vendor base
$ cargo build --config 'source.crates-io.replace-with="vv"' --config 'source.vv.directory="base"'
[...]
Finished dev [unoptimized + debuginfo] target(s) in 51.23s
$ cargo vendor-filterer filtered
[...]
Filtered to target platforms: ["x86_64-unknown-linux-gnu"]
Generated: filtered
$ cargo clean
$ cargo build --config 'source.crates-io.replace-with="vv"' --config 'source.vv.directory="filtered"'
[...]
error[E0425]: cannot find function `errno` in crate `errno`
--> /home/bgilbert/coreos/afterburn/filtered/vmw_backdoor/src/backdoor.rs:103:35
|
103 | let err_code = errno::errno();
| ^^^^^ not found in `errno`
For more information about this error, try `rustc --explain E0425`.
error: could not compile `vmw_backdoor` due to previous error
warning: build failed, waiting for other jobs to finish...
$ uname -mo
x86_64 GNU/Linux I agree that |
Ah, right OK. I think the root of the problem here is still rustix; if I add this patch
Then we do build in that scenario. I think it's that Another twist here is that just for this project, we're getting [email protected] just from
Whereas in other projects for which I use Ahh wait I think I'm understanding the root problem. And yes it is the build script in rustix . It's all very twisted because historically, rustix went to quite some effort to avoid depending on libc by default on e.g. {x86_64,aarch64}-unknown-linux-gnu. Then much more recently, bytecodealliance/rustix@a2c6c7a happened and we end up basically depending on libc by default - except this is only enabled by the build script indirectly! Ultimately the way cargo vendor-filterer works is by just using In theory, we could, but there's a lot of obvious downsides to that. Going to leave this open, but it may be a wontfix. |
(Original issue below; this text written by @cgwalters )
Today some crates like
rustix
end up dynamically enabling features and dependencies viabuild.rs
, and these are missed by us because we just usecargo metadata
which doesn't run build scripts.In the latest release afterburn 5.4.2 we have found that afterburn tarball's
errno 0.2.8
seems to be filtered of any real content.This broke the active release for afterburn 5.4.2 resulting in the dependency
vmw_backdoor
failing with the following error:The vendor tarball includes two versions of errno, 0.3.0 and 0.2.8, and the 0.3.0 bundle appears to be complete.
Cargo vender filter does return all the required contents in
errno 0.3.0
.The text was updated successfully, but these errors were encountered: