# 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 ", "Jonathan Lebon "] edition = "2018" # 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" # 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.40" c_utf8 = "0.1.0" chrono = { version = "0.4.19", features = ["serde"] } clap = "2.33.3" curl = "0.4.35" cxx = "1.0.45" envsubst = "0.2.0" fn-error-context = "0.1.1" gio = "0.9.1" gio-sys = "0.10.1" gobject-sys = "0.10.0" glib = "0.10.3" glib-sys = "0.10.1" indoc = "1.0.3" indicatif = "0.15.0" lazy_static = "1.4.0" libc = "0.2.93" libdnf-sys = { path = "rust/libdnf-sys", version = "0.1.0" } maplit = "1.0" memfd = "0.4.0" nix = "0.20.0" openat = "0.1.21" openat-ext = "^0.2.0" os-release = "0.1.0" ostree = { version = "0.9.1", features = ["v2020_4"] } ostree-sys = "0.7.2" ostree-host = { path = "rust/ostree-host" } paste = "1.0" phf = { version = "0.8", features = ["macros"] } rand = "0.8.3" rayon = "1.5.0" rpmostree-client = { path = "rust/rpmostree-client", version = "0.1.0" } rust-ini = "0.17.0" serde = { version = "1.0.125", features = ["derive"] } serde_derive = "1.0.118" serde_json = "1.0.64" serde_yaml = "0.8.17" structopt = "0.3.21" subprocess = "0.2.6" systemd = "0.8.2" tempfile = "3.2.0" [build-dependencies] anyhow = "1.0" system-deps = "3.1" [lib] name = "rpmostree_rust" path = "rust/src/lib.rs" [[bin]] name = "rpm-ostree" path = "rust/src/main.rs" [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 # We need this to avoid leaking symbols, see # https://internals.rust-lang.org/t/rust-staticlibs-and-optimizing-for-size/5746 lto = true [features] sqlite-rpmdb-default = [] fedora-integration = [] # ASAN+UBSAN sanitizers = [] default = []