29d051e895
This adds support for e.g.: ``` $ rpm-ostree override replace https://bodhi.fedoraproject.org/updates/FEDORA-2020-2908628031 ``` This will find the Koji builds from the listed update, download all the RPMs (that aren't debuginfo) and pass them for overrides in the same way we support `override replace http://somewebserver/foo.rpm` now. We also support directly linking a Koji build: ``` $ rpm-ostree override replace https://koji.fedoraproject.org/koji/buildinfo?buildID=1625029 ``` Bodhi has a modern HTTP+JSON API, and the lack of a Koji equivalent drove me to create https://github.com/cgwalters/koji-sane-json-api and we currently depend on an instance set up in the OpenShift CI cluster. I hope it shouldn't take long to deploy this in Fedora Infra, but I don't want to block on it. Also notably this still downloads *all* the other RPMs even ones that aren't installed. Handling that truly correctly would require moving this logic to the daemon and core. All of this functionality is keyed off a `cfg(feature = "fedora-integration")` that is detected by a Rust `build.rs` which parses the build environment's `/etc/os-release` for now.
65 lines
1.5 KiB
TOML
65 lines
1.5 KiB
TOML
[package]
|
|
name = "rpmostree-rust"
|
|
version = "0.1.0"
|
|
authors = ["Colin Walters <walters@verbum.org>", "Jonathan Lebon <jonathan@jlebon.com>"]
|
|
edition = "2018"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.35"
|
|
paste = "1.0"
|
|
serde = "1.0.118"
|
|
serde_derive = "1.0.118"
|
|
serde_json = "1.0.60"
|
|
serde_yaml = "0.8.14"
|
|
libc = "0.2.81"
|
|
cxx = "1.0.18"
|
|
nix = "0.19.1"
|
|
glib-sys = "0.10.1"
|
|
glib = "0.10.3"
|
|
gio-sys = "0.10.1"
|
|
gio = "0.9.1"
|
|
ostree = { version = "0.9.1", features = ["v2020_4"] }
|
|
ostree-sys = "0.7.1"
|
|
tempfile = "3.1.0"
|
|
clap = "2.33.3"
|
|
structopt = "0.3.21"
|
|
openat = "0.1.19"
|
|
openat-ext = "^0.1.9"
|
|
curl = "0.4.34"
|
|
rayon = "1.5.0"
|
|
c_utf8 = "0.1.0"
|
|
rand = "0.7.3"
|
|
phf = { version = "0.8", features = ["macros"] }
|
|
systemd = "0.8.1"
|
|
indicatif = "0.15.0"
|
|
lazy_static = "1.4.0"
|
|
envsubst = "0.2.0"
|
|
subprocess = "0.2.6"
|
|
chrono = { version = "0.4.19", features = ["serde"] }
|
|
libdnf-sys = { path = "rust/libdnf-sys", version = "0.1.0" }
|
|
|
|
[build-dependencies]
|
|
cbindgen = "0.16.0"
|
|
anyhow = "1.0"
|
|
|
|
[lib]
|
|
name = "rpmostree_rust"
|
|
path = "rust/src/lib.rs"
|
|
crate-type = ["staticlib"]
|
|
|
|
[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 = []
|
|
|
|
default = []
|