Blame SOURCES/0004-github-coreos-rpm-ostree-pr2872.patch

cfef07
From eca59b67b3350d3b49db5844eb143b428c95ca37 Mon Sep 17 00:00:00 2001
cfef07
From: Luca BRUNO <luca.bruno@coreos.com>
cfef07
Date: Wed, 2 Jun 2021 12:40:44 +0000
cfef07
Subject: [PATCH 1/2] libdnf-sys/build: gracefully handle older gpgme versions
cfef07
cfef07
This tries to gracefully handle environments where gpgme
cfef07
library cannot be directly discovered via pkg-config.
cfef07
Older gpgme versions (including 1.13) do not provide a
cfef07
.pc file, so in that case the build-script attempts to
cfef07
fallback to hardcoded library flags.
cfef07
---
cfef07
 rust/libdnf-sys/Cargo.toml | 3 ++-
cfef07
 rust/libdnf-sys/build.rs   | 5 +++++
cfef07
 2 files changed, 7 insertions(+), 1 deletion(-)
cfef07
cfef07
diff --git a/rust/libdnf-sys/Cargo.toml b/rust/libdnf-sys/Cargo.toml
cfef07
index 8695ad8c08..e20f04d0c8 100644
cfef07
--- a/rust/libdnf-sys/Cargo.toml
cfef07
+++ b/rust/libdnf-sys/Cargo.toml
cfef07
@@ -26,7 +26,8 @@ rpm = "4"
cfef07
 librepo = "1"
cfef07
 libsolv = "0.7"
cfef07
 libsolvext = "0.7"
cfef07
-gpgme = "1"
cfef07
+# Older libgpgme did not provide a pkg-config file
cfef07
+gpgme = { version = "1", optional = true }
cfef07
 openssl = "1"
cfef07
 libcurl = "7"
cfef07
 sqlite3 = "3"
cfef07
diff --git a/rust/libdnf-sys/build.rs b/rust/libdnf-sys/build.rs
cfef07
index 43f61a3544..ec86ca6a6f 100644
cfef07
--- a/rust/libdnf-sys/build.rs
cfef07
+++ b/rust/libdnf-sys/build.rs
cfef07
@@ -3,6 +3,7 @@ use anyhow::Result;
cfef07
 
cfef07
 fn main() -> Result<()> {
cfef07
     let libs = system_deps::Config::new().probe()?;
cfef07
+    let has_gpgme_pkgconfig = libs.get_by_name("gpgme").is_some();
cfef07
 
cfef07
     // first, the submodule proper
cfef07
     let libdnf = cmake::Config::new("../../libdnf")
cfef07
@@ -31,6 +32,10 @@ fn main() -> Result<()> {
cfef07
         .always_configure(false)
cfef07
         .build_target("all")
cfef07
         .build();
cfef07
+    // NOTE(lucab): consider using `gpgme-config` it this stops working.
cfef07
+    if !has_gpgme_pkgconfig {
cfef07
+        println!("cargo:rustc-link-lib=gpgme");
cfef07
+    }
cfef07
     println!(
cfef07
         "cargo:rustc-link-search=native={}/build/libdnf",
cfef07
         libdnf.display()
cfef07
cfef07
From d874de293c27f2ed762f212ab65fb054a8006fc3 Mon Sep 17 00:00:00 2001
cfef07
From: Luca BRUNO <luca.bruno@coreos.com>
cfef07
Date: Wed, 2 Jun 2021 13:10:24 +0000
cfef07
Subject: [PATCH 2/2] libdnf-sys/build: auto-enable zchunk if present
cfef07
cfef07
This adds an optional dependencies on the `zck` library (zchunk),
cfef07
and automatically forwards it to libdnf configuration.
cfef07
It allows to gracefully degrade in older environments where zchunk
cfef07
is not present, and also matches autoconf behavior.
cfef07
---
cfef07
 rust/libdnf-sys/Cargo.toml | 1 +
cfef07
 rust/libdnf-sys/build.rs   | 3 +++
cfef07
 2 files changed, 4 insertions(+)
cfef07
cfef07
diff --git a/rust/libdnf-sys/Cargo.toml b/rust/libdnf-sys/Cargo.toml
cfef07
index e20f04d0c8..13e0eca318 100644
cfef07
--- a/rust/libdnf-sys/Cargo.toml
cfef07
+++ b/rust/libdnf-sys/Cargo.toml
cfef07
@@ -34,3 +34,4 @@ sqlite3 = "3"
cfef07
 modulemd = { name = "modulemd-2.0", version = "2" }
cfef07
 jsonc = { name = "json-c", version = "0" }
cfef07
 glib = { name = "glib-2.0", version = "2" }
cfef07
+zck = { version = "0.9", optional = true }
cfef07
diff --git a/rust/libdnf-sys/build.rs b/rust/libdnf-sys/build.rs
cfef07
index ec86ca6a6f..df07cc7cb7 100644
cfef07
--- a/rust/libdnf-sys/build.rs
cfef07
+++ b/rust/libdnf-sys/build.rs
cfef07
@@ -4,6 +4,7 @@ use anyhow::Result;
cfef07
 fn main() -> Result<()> {
cfef07
     let libs = system_deps::Config::new().probe()?;
cfef07
     let has_gpgme_pkgconfig = libs.get_by_name("gpgme").is_some();
cfef07
+    let with_zck: u8 = libs.get_by_name("zck").is_some().into();
cfef07
 
cfef07
     // first, the submodule proper
cfef07
     let libdnf = cmake::Config::new("../../libdnf")
cfef07
@@ -24,6 +25,8 @@ fn main() -> Result<()> {
cfef07
         // We don't need docs
cfef07
         .define("WITH_HTML:BOOL", "0")
cfef07
         .define("WITH_MAN:BOOL", "0")
cfef07
+        // Auto-enable zchunk, if present
cfef07
+        .define("WITH_ZCHUNK:BOOL", format!("{}", with_zck))
cfef07
         // Don't need bindings
cfef07
         .define("WITH_BINDINGS:BOOL", "0")
cfef07
         // Needed in Koji at least because timestamps(?)