mirror of
https://github.com/uutils/coreutils.git
synced 2025-07-07 21:45:01 +00:00

Summary: Partial fix for https://github.com/uutils/coreutils/issues/6591 The current code declare libstdbuf as a build-dependency of stdbuf as a workaround to enforce that libstdbuf is compiled before stdbuf. This breaks cross-compilation, because build-dependencies were compiled for the host architecture, and not for the target architecture. The reason this workaround is necessary is that bindeps is available only in nightly at the moment: https://rust-lang.github.io/rfcs/3028-cargo-binary-dependencies.html This commit replaces the "build-dependency" workaround with another workaround: calling cargo manually to build libstdbuf in the build.rs of stdbuf, in order to ensure that libstdbuf is built before stdbuf. Changes: - Removed cpp/cpp_build dependencies: The cpp, cpp_build, and related dependencies were removed because they made cross-compilation in a build.rs file very complex, since you need to pass proper CXX env variables for cross-compilation, whereas cross-compiling rust code using cargo is quite simple. Provided Rust implementations for getting stdin, stdout, and stderr pointers. Switched from C++/cpp macro-based initialization to using the Rust ctor crate for library initialization. - Remove "feat_require_crate_cpp" which is not needed any more, since stdbuf was the only utility using the cpp crate. Tests: This commit fixes e.g. this test: cross test --target aarch64-unknown-linux-gnu --features stdbuf test_stdbuf::test_libstdbuf_preload -- --nocapture - The "i686" build of stdbuf was also broken (stdbuf 32 bits, but libstdbuf 64 bits) and test_stdbuf::test_libstdbuf_preload of the i686 builds in github CI serves as regression test for this issue, no need to add a cross-rs test for aarch64. - The x86_64 musl build of stdbuf was also broken and was passing tests in CI only because it was compiled with the wrong libc (glibc instead of musl) Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
134 lines
4.4 KiB
TOML
134 lines
4.4 KiB
TOML
# spell-checker:ignore SSLeay RUSTSEC
|
|
|
|
# This section is considered when running `cargo deny check advisories`
|
|
# More documentation for the advisories section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
|
|
[advisories]
|
|
db-path = "~/.cargo/advisory-db"
|
|
db-urls = ["https://github.com/rustsec/advisory-db"]
|
|
version = 2
|
|
yanked = "warn"
|
|
ignore = [
|
|
#"RUSTSEC-0000-0000",
|
|
]
|
|
|
|
# This section is considered when running `cargo deny check licenses`
|
|
# More documentation for the licenses section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
|
|
[licenses]
|
|
version = 2
|
|
allow = [
|
|
"MIT",
|
|
"Apache-2.0",
|
|
"ISC",
|
|
"BSD-2-Clause",
|
|
"BSD-3-Clause",
|
|
"BSL-1.0",
|
|
"CC0-1.0",
|
|
"Unicode-3.0",
|
|
"Zlib",
|
|
]
|
|
confidence-threshold = 0.8
|
|
|
|
[[licenses.clarify]]
|
|
name = "ring"
|
|
# SPDX considers OpenSSL to encompass both the OpenSSL and SSLeay licenses
|
|
# https://spdx.org/licenses/OpenSSL.html
|
|
# ISC - Both BoringSSL and ring use this for their new files
|
|
# MIT - "Files in third_party/ have their own licenses, as described therein. The MIT
|
|
# license, for third_party/fiat, which, unlike other third_party directories, is
|
|
# compiled into non-test libraries, is included below."
|
|
# OpenSSL - Obviously
|
|
expression = "ISC AND MIT AND OpenSSL"
|
|
license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }]
|
|
|
|
# This section is considered when running `cargo deny check bans`.
|
|
# More documentation about the 'bans' section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
|
|
[bans]
|
|
multiple-versions = "deny"
|
|
wildcards = "allow"
|
|
highlight = "all"
|
|
|
|
# For each duplicate dependency, indicate the name of the dependency which
|
|
# introduces it.
|
|
# spell-checker: disable
|
|
skip = [
|
|
# dns-lookup
|
|
{ name = "windows-sys", version = "0.48.0" },
|
|
# mio, nu-ansi-term, socket2
|
|
{ name = "windows-sys", version = "0.52.0" },
|
|
# anstyle-query
|
|
{ name = "windows-sys", version = "0.59.0" },
|
|
# windows-sys
|
|
{ name = "windows-targets", version = "0.48.5" },
|
|
# parking_lot_core
|
|
{ name = "windows-targets", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_aarch64_gnullvm", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_aarch64_gnullvm", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_aarch64_msvc", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_aarch64_msvc", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_i686_gnu", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_i686_gnu", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_i686_gnullvm", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_i686_msvc", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_i686_msvc", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_gnu", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_gnu", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_gnullvm", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_gnullvm", version = "0.52.6" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_msvc", version = "0.48.5" },
|
|
# windows-targets
|
|
{ name = "windows_x86_64_msvc", version = "0.52.6" },
|
|
# kqueue-sys, onig
|
|
{ name = "bitflags", version = "1.3.2" },
|
|
# ansi-width
|
|
{ name = "unicode-width", version = "0.1.13" },
|
|
# filedescriptor, utmp-classic
|
|
{ name = "thiserror", version = "1.0.69" },
|
|
# thiserror
|
|
{ name = "thiserror-impl", version = "1.0.69" },
|
|
# bindgen
|
|
{ name = "itertools", version = "0.13.0" },
|
|
# ordered-multimap
|
|
{ name = "hashbrown", version = "0.14.5" },
|
|
# cexpr (via bindgen)
|
|
{ name = "nom", version = "7.1.3" },
|
|
# const-random-macro, rand_core
|
|
{ name = "getrandom", version = "0.2.15" },
|
|
# getrandom, mio
|
|
{ name = "wasi", version = "0.11.0+wasi-snapshot-preview1" },
|
|
# num-bigint, num-prime, phf_generator
|
|
{ name = "rand", version = "0.8.5" },
|
|
# rand
|
|
{ name = "rand_chacha", version = "0.3.1" },
|
|
# rand
|
|
{ name = "rand_core", version = "0.6.4" },
|
|
# utmp-classic
|
|
{ name = "zerocopy", version = "0.7.35" },
|
|
]
|
|
# spell-checker: enable
|
|
|
|
# This section is considered when running `cargo deny check sources`.
|
|
# More documentation about the 'sources' section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
|
|
|
|
[sources]
|
|
unknown-registry = "warn"
|
|
unknown-git = "warn"
|
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|
|
allow-git = []
|