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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Generated by rust2rpm 26
%bcond_without check
%global debug_package %{nil}
%global crate libdeflate-sys
Name: rust-libdeflate-sys
Version: 1.21.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