diff --git a/.gitignore b/.gitignore index 056547e..b90a349 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libdeflate-sys-0.7.5.crate /libdeflate-sys-1.19.0.crate /libdeflate-sys-1.19.2.crate +/libdeflate-sys-1.19.3.crate diff --git a/libdeflate-sys-1.19.3-unconditional-pkg-config.patch b/libdeflate-sys-1.19.3-unconditional-pkg-config.patch new file mode 100644 index 0000000..1a17160 --- /dev/null +++ b/libdeflate-sys-1.19.3-unconditional-pkg-config.patch @@ -0,0 +1,15 @@ +diff -Naur libdeflate-sys-1.19.3-original/build.rs libdeflate-sys-1.19.3/build.rs +--- libdeflate-sys-1.19.3-original/build.rs 2006-07-23 21:21:28.000000000 -0400 ++++ libdeflate-sys-1.19.3/build.rs 2024-02-28 11:39:40.715923702 -0500 +@@ -5,11 +5,9 @@ + fn main() { + let dst = PathBuf::from(env::var_os("OUT_DIR").unwrap()); + +- #[cfg(feature = "dynamic")] + if pkg_config::Config::new() + .print_system_libs(false) + .cargo_metadata(true) +- .exactly_version("1.19") + .probe("libdeflate") + .is_ok() + { diff --git a/libdeflate-sys-fix-metadata.diff b/libdeflate-sys-fix-metadata.diff new file mode 100644 index 0000000..d2e7a95 --- /dev/null +++ b/libdeflate-sys-fix-metadata.diff @@ -0,0 +1,12 @@ +--- libdeflate-sys-1.19.3/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ libdeflate-sys-1.19.3/Cargo.toml 2024-02-28T16:35:41.917707+00:00 +@@ -40,8 +40,7 @@ + + [build-dependencies.pkg-config] + version = "0.3.9" +-optional = true + + [features] +-dynamic = ["pkg-config"] ++dynamic = [] + freestanding = [] diff --git a/rust-libdeflate-sys.spec b/rust-libdeflate-sys.spec index 99d007b..7abab7e 100644 --- a/rust-libdeflate-sys.spec +++ b/rust-libdeflate-sys.spec @@ -5,13 +5,27 @@ %global crate libdeflate-sys Name: rust-libdeflate-sys -Version: 1.19.2 +Version: 1.19.3 Release: %autorelease Summary: Bindings to libdeflate for DEFLATE License: Apache-2.0 URL: https://crates.io/crates/libdeflate-sys Source: %{crates_source} +# Manually created patch for downstream crate metadata changes +# - Make the dependency on crate(pkg-config) non-optional instead of +# associating it with the “dynamic” feature, since we patch the crate to +# always link dynamically with the system libdeflate, regardless of the +# selected features. +Patch: libdeflate-sys-fix-metadata.diff +# Downstream-only: always link dynamically with the system libdeflate, +# regardless of the selected features, and do not pin an exact version of +# libdeflate. +# +# Together with libdeflate-sys-fix-metadata.diff, this effectively reverts: +# Dynamic Linking Constraints +# https://github.com/adamkewley/libdeflater/pull/32 +Patch: libdeflate-sys-1.19.3-unconditional-pkg-config.patch BuildRequires: cargo-rpm-macros >= 24 @@ -49,6 +63,18 @@ use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+dynamic-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+dynamic-devel %{_description} + +This package contains library source intended for building other packages which +use the "dynamic" feature of the "%{crate}" crate. + +%files -n %{name}+dynamic-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+freestanding-devel Summary: %{summary} BuildArch: noarch diff --git a/sources b/sources index cdfe4cb..f4122f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libdeflate-sys-1.19.2.crate) = 15dc085dd1943b402158dadf3438253e9e3ae444d848b64b5c377b43f40d4f6dc33555434c4e437bd845bf7c41222b69c34f9e9aa1fde4543a0008e85608d626 +SHA512 (libdeflate-sys-1.19.3.crate) = c1b708672f6ce85579e5dda2537fe6804e73d92053a08387b2ec09388f0697fa3230298931116f482ae4242a0bf7afda9d8f309a13222ef5dee94f56a009890e