-
Notifications
You must be signed in to change notification settings - Fork 196
/
Cargo.toml
131 lines (119 loc) · 3.99 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# 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 <[email protected]>",
"Jonathan Lebon <[email protected]>",
]
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.90"
binread = "2.2.0"
bitflags = "2.6"
camino = "1.1.9"
cap-std-ext = "4"
cap-primitives = "3"
cap-std = { version = "3", features = ["fs_utf8"] }
# Explicitly force on libc
rustix = { version = "0.38", features = ["use-libc", "process", "fs"] }
chrono = { version = "0.4.38", features = ["serde"] }
clap = { version = "4.5", features = ["derive"] }
cxx = "1.0.130"
envsubst = "0.2.1"
either = "1.13.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.5"
indicatif = "0.17.9"
is-terminal = "0.4"
libc = "0.2.161"
libdnf-sys = { path = "rust/libdnf-sys", version = "0.1.0" }
maplit = "1.0"
nix = { version = "0.29.0", features = ["fs", "mount", "signal", "user"] }
openssl = "0.10.68"
once_cell = "1.20.2"
os-release = "0.1.0"
ostree-ext = "0.15"
paste = "1.0"
phf = { version = "0.11", features = ["macros"] }
rand = "0.8.5"
rayon = "1.10.0"
regex = "1.10"
reqwest = { version = "0.12", features = ["native-tls", "blocking", "gzip"] }
rpmostree-client = { path = "rust/rpmostree-client", version = "0.1.0" }
rust-ini = "0.21.1"
serde = { version = "1.0.210", features = ["derive"] }
serde_derive = "1.0.118"
serde_json = "1.0.133"
serde_yaml = "0.9.34"
systemd = "0.10.0"
tempfile = "3.13.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tokio = { version = "1.41.1", features = ["time", "process", "rt", "net"] }
xmlrpc = "0.15.1"
termcolor = "1.4.1"
shlex = "1.3.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 = []