1
0
mirror of https://github.com/projectatomic/rpm-ostree.git synced 2026-02-05 09:45:27 +01:00
Files
rpm-ostree/Cargo.toml
Joseph Marrero Corchado eb32af0dd3 Cargo: update ostree-ext to b76d75d6
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
2026-01-15 18:55:46 -05:00

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"