Maxime Devos schreef op za 02-04-2022 om 17:18 [+0200]: >   * makes a few assumptions on the source layout (can be fixed >     by using more info from Cargo.toml) This has now been partially resolved. It now looks in Cargo.toml to determine where Rusts's equivalent of 'configure' (build.rs) is located, and the Cargo.toml can now override the default src/lib.rs. Some other improvements that weren't announced previously: * The code now automatically detects cycles and reports which packages are involved in the cycle. * --edition (cf. -std=c11/c99/...) is set appropriately, depending on Cargo.toml, fixing some build failures. * All default 'features' (in Cargo.toml) are now enabled by default. * Package definitions can request non-default features to be built anyway. A difference from cargo-build-system: features are set in the package of the rust crate, not the package using the rust crate. * build.rs is now run, which reduces the number of features that need to be set manually. * proc-macro crates are now named .so instead of .rlib, apparently naming them .rlib even though they aren't .rlibs confuses rustc or something. * #[deny(warnings)] (rust's equivalent of -Werrors) is now ignored (FWIW this is done by cargo as well). * Conversion from cargo-build-system to antioxidate-build-system is now automated by a recursive 'vitaminate/auto' procedure and some ad-hoc cycle breaking. Some things that could perhaps be moved to (upstream) Guix: * Sometimes test and build.rs dependencies are listed in #:cargo-inputs and #:cargo-development-inputs (e.g. rust-quickcheck, rust-cc). I deleted the test dependencies (because they contribute to cycles and for now running tests isn't supported anyways). Maybe they can be moved to #:cargo-development-inputs upstream (untested)? Extending 'check-inputs-should-be-native' would also be nice too ... * There's a cycle between rust-backtrace-sys and rust-cc can be eliminated by deleting build.rs and tweaking Cargo.toml, at cost of losing some support for Android (which is not supported by Guix except in the sense that Linux is supported). Greetings, Maxime