rpm-ostree/Cargo.toml
Colin Walters 29d051e895 Add fedora-integration: Support override replace https://bodhi/...
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.
2021-01-11 13:03:04 -05:00

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 = []