mirror of
https://github.com/projectatomic/rpm-ostree.git
synced 2026-02-05 09:45:27 +01:00
This updates ostree-ext and related dependencies (composefs-rs, bootc-internal-utils) to address an issue where G_MESSAGES_DEBUG=all causes packages to be incorrectly shown as "Removed" during rebase operations. The root cause was that GLib debug output was being written to stdout instead of stderr, corrupting the ostree commit hash parsing in ostree-ext's container layer import. When the subprocess output is polluted with debug messages, the merge commit ends up missing content from derived layers. Fixes: OCPBUGS-64692 Fixes: RHEL-130454 See: https://github.com/bootc-dev/bootc/pull/1917
162 lines
4.9 KiB
TOML
162 lines
4.9 KiB
TOML
# Explicitly create a workspace since we have libdnf-sys as a path
|
|
# dependency, and in the future we may use other sub-crates.
|
|
[workspace]
|
|
|
|
[package]
|
|
name = "rpmostree-rust"
|
|
version = "0.1.0"
|
|
authors = [
|
|
"Colin Walters <walters@verbum.org>",
|
|
"Jonathan Lebon <jonathan@jlebon.com>",
|
|
]
|
|
edition = "2021"
|
|
# See https://rust-lang.github.io/rfcs/2495-min-rust-version.html
|
|
# Usually, we try to keep this to no newer than current RHEL8 rust-toolset version.
|
|
# You can find the current versions from here:
|
|
# https://access.redhat.com/documentation/en-us/red_hat_developer_tools/1/
|
|
# However, right now we are bumping to 1.48 so we can use https://cxx.rs
|
|
#rust = "1.48"
|
|
links = "rpmostreeinternals"
|
|
publish = false
|
|
|
|
# See https://github.com/cgwalters/cargo-vendor-filterer
|
|
[package.metadata.vendor-filter]
|
|
platforms = ["*-unknown-linux-gnu"]
|
|
tier = "2"
|
|
all-features = true
|
|
exclude-crate-paths = [ { name = "libz-sys", exclude = "src/zlib" },
|
|
{ name = "libz-sys", exclude = "src/zlib-ng" },
|
|
# rustix includes pre-generated assembly for linux_raw, which we don't use
|
|
{ name = "rustix", exclude = "src/imp/linux_raw" },
|
|
# Test files that include binaries
|
|
{ name = "system-deps", exclude = "src/tests" },
|
|
# Test files that include invalid Unicode code points
|
|
{ name = "idna", exclude = "tests" },
|
|
]
|
|
|
|
# This currently needs to duplicate the libraries in configure.ac
|
|
# until we unify on Cargo as our build system
|
|
[package.metadata.system-deps]
|
|
jsonglib = { name = "json-glib-1.0", version = "1" }
|
|
libarchive = "3.0"
|
|
libcurl = "7"
|
|
polkitgobject = { name = "polkit-gobject-1", version = "0" }
|
|
rpm = "4"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.98"
|
|
binread = "2.2.0"
|
|
bitflags = "2.9"
|
|
camino = "1.1.10"
|
|
cap-std-ext = "4"
|
|
cap-primitives = "3"
|
|
cap-std = { version = "3", features = ["fs_utf8"] }
|
|
# Explicitly force on libc
|
|
rustix = { version = "1.0", features = ["use-libc", "process", "fs", "thread"] }
|
|
chrono = { version = "0.4.41", features = ["serde"] }
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
cxx = "1.0.158"
|
|
envsubst = "0.2.1"
|
|
either = "1.15.0"
|
|
env_logger = "0.11.5"
|
|
fail = { version = "0.5", features = ["failpoints"] }
|
|
fn-error-context = "0.2.0"
|
|
futures = "0.3.31"
|
|
indoc = "2.0.6"
|
|
indicatif = "0.17.11"
|
|
is-terminal = "0.4"
|
|
libc = "0.2.174"
|
|
libdnf-sys = { path = "rust/libdnf-sys", version = "0.1.0" }
|
|
maplit = "1.0"
|
|
nix = { version = "0.30.1", features = ["fs", "mount", "signal", "user"] }
|
|
openssl = "0.10.73"
|
|
once_cell = "1.21.3"
|
|
os-release = "0.1.0"
|
|
# We pull this one from git, as the project is no longer published as an external crate.
|
|
ostree-ext = { git = "https://github.com/containers/bootc", rev = "b76d75d6024bd0aa0f270ff181807aff4209f9c9" }
|
|
pastey = "0.1.1"
|
|
phf = { version = "0.12", features = ["macros"] }
|
|
rand = "0.9.1"
|
|
rayon = "1.10.0"
|
|
regex = "1.10"
|
|
rusqlite = "0.37.0"
|
|
reqwest = { version = "0.12", features = ["native-tls", "blocking", "gzip"] }
|
|
rpmostree-client = { path = "rust/rpmostree-client", version = "0.1.0" }
|
|
rust-ini = "0.21.2"
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
serde_derive = "1.0.118"
|
|
serde_json = "1.0.140"
|
|
serde_yaml = "0.9.34"
|
|
systemd = "0.10.0"
|
|
tempfile = "3.20.0"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
tokio = { version = "1.46.1", features = ["time", "process", "rt", "net"] }
|
|
xmlrpc = "0.15.1"
|
|
termcolor = "1.4.1"
|
|
shlex = "1.3.0"
|
|
|
|
[dev-dependencies]
|
|
similar-asserts = "1.7.0"
|
|
|
|
[build-dependencies]
|
|
anyhow = "1.0"
|
|
system-deps = "7.0"
|
|
|
|
[lib]
|
|
name = "rpmostree_rust"
|
|
path = "rust/src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "rpm-ostree"
|
|
path = "rust/src/main.rs"
|
|
|
|
[profile.dev]
|
|
opt-level = 1 # No optimizations are too slow for us.
|
|
|
|
[profile.release]
|
|
# Unwinding across FFI boundaries is undefined behavior, and anyways, we're
|
|
# [crash-only](https://en.wikipedia.org/wiki/Crash-only_software)
|
|
panic = "abort"
|
|
# We assume we're being delivered via e.g. RPM which supports split debuginfo
|
|
debug = true
|
|
|
|
[profile.releaselto]
|
|
inherits = "release"
|
|
lto = "thin"
|
|
|
|
[features]
|
|
# Note: If you add a feature here, you also probably want to update utils.rs:get_features()
|
|
fedora-integration = []
|
|
rhsm = ["libdnf-sys/rhsm"]
|
|
bin-unit-tests = []
|
|
# ASAN+UBSAN
|
|
sanitizers = []
|
|
|
|
default = []
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[workspace.lints.rust]
|
|
# Absolutely must handle errors
|
|
unused_must_use = "forbid"
|
|
missing_debug_implementations = "deny"
|
|
# Feel free to comment this one out locally during development of a patch.
|
|
dead_code = "deny"
|
|
|
|
# We aren't using these yet
|
|
# [workspace.lints.rust]
|
|
# unsafe_code = "deny"
|
|
# missing_docs = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
disallowed_methods = "deny"
|
|
# These should only be in local code
|
|
dbg_macro = "deny"
|
|
todo = "deny"
|
|
# These two are in my experience the lints which are most likely
|
|
# to trigger, and among the least valuable to fix.
|
|
needless_borrow = "allow"
|
|
needless_borrows_for_generic_args = "allow"
|