You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rust-libdeflate-sys/rust-libdeflate-sys.spec

115 lines
3.3 KiB

2 months ago
# Generated by rust2rpm 27
%bcond check 1
%global debug_package %{nil}
%global crate libdeflate-sys
Name: rust-libdeflate-sys
2 months ago
Version: 1.23.0
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
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: pkgconfig(libdeflate)
%global _description %{expand:
Bindings to libdeflate for DEFLATE (de)compression exposed as non-
streaming buffer operations. Contains bindings for raw deflate, zlib,
and gzip data.}
%description %{_description}
%package devel
Summary: %{summary}
BuildArch: noarch
Requires: pkgconfig(libdeflate)
%description devel %{_description}
This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
%license %{crate_instdir}/LICENSE
%doc %{crate_instdir}/README.md
%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
BuildArch: noarch
%description -n %{name}+default-devel %{_description}
This package contains library source intended for building other packages which
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
%description -n %{name}+freestanding-devel %{_description}
This package contains library source intended for building other packages which
use the "freestanding" feature of the "%{crate}" crate.
%files -n %{name}+freestanding-devel
%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version} -p1
# Remove the bundled copy of libdeflate.
rm -rv libdeflate
# Make libdeflate detection with pkg-config unconditional.
sed -r -i 's@^([[:blank:]]*)(#\[cfg\(feature *= *"dynamic"\)\])@\1// \2@' build.rs
# Dont require an exact version match. We would *like* the versions to stay
# aligned, but we dont *need* to update libdeflate and
# rust-libdeflate-sys/rust-libdeflater concurrently.
sed -r -i 's@^([[:blank:]]*)(\.exactly_version\()@\1// \2@' build.rs
# The above two sed-patches effectively revert “Dynamic Linking Constraints”,
# https://github.com/adamkewley/libdeflater/pull/32. Using sed instead of a
# patch file keeps us from having to update the patch every time the version
# number changes.
%cargo_prep
%generate_buildrequires
%cargo_generate_buildrequires
%build
%cargo_build
%install
%cargo_install
%if %{with check}
%check
%cargo_test
%endif
%changelog
%autochangelog