rust-rpm-sequoia/rust-rpm-sequoia.spec
Jakub Jelen a771b39b5e Pull PQC crypto to rpm-sequoia
Fixes also the support for the OpenPGP v6 signatures altogether

Resolves: RHEL-101952
2025-07-04 17:48:37 +02:00

110 lines
3.2 KiB
RPMSpec

# Generated by rust2rpm 27
%bcond check 1
%global crate rpm-sequoia
Name: rust-rpm-sequoia
Version: 1.9.0.1
Release: %autorelease
Summary: Implementation of the RPM PGP interface using Sequoia
License: LGPL-2.0-or-later
URL: https://crates.io/crates/rpm-sequoia
Source: %{crate}-%{version}.tar.gz
# Generated using cargo-vendor-filterer:
# cargo vendor-filterer --platform x86_64-unknown-linux-gnu \
# --platform powerpc64le-unknown-linux-gnu \
# --platform aarch64-unknown-linux-gnu \
# --platform i686-unknown-linux-gnu \
# --platform s390x-unknown-linux-gnu \
# --all-features
# tar -czf ../%%{crate}-vendor-%%{version}.tar.gz vendor
Source1: %{crate}-vendor-%{version}.tar.gz
Source2: vendor.toml
# Manually created patch for downstream crate metadata changes
# * default to the OpenSSL crypto backend of sequoia-openpgp
Patch: rpm-sequoia-fix-metadata.diff
%if 0%{?rhel}
BuildRequires: rust-toolset
%else
BuildRequires: cargo-rpm-macros >= 24
%endif
# vendored openssl-sys
BuildRequires: openssl-devel
%global _description %{expand:
An implementation of the RPM PGP interface using Sequoia.}
%description %{_description}
%package -n %{crate}
Summary: %{summary}
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
# Apache-2.0
# Apache-2.0 OR MIT
# BSL-1.0
# LGPL-2.0-or-later
# MIT
# MIT OR Apache-2.0
# MIT OR Apache-2.0 OR Zlib
# Unlicense OR MIT
# Zlib OR Apache-2.0 OR MIT
License: LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND MIT AND Unicode-DFS-2016 AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
# LICENSE.dependencies contains a full license breakdown
%description -n %{crate} %{_description}
%files -n %{crate}
%license LICENSE.txt
%license LICENSE.dependencies
%license cargo-vendor.txt
%doc README.md
%{_libdir}/librpm_sequoia.so.1
%package -n %{crate}-devel
Summary: %{summary}
Requires: %{crate}%{?_isa} = %{version}-%{release}
%description -n %{crate}-devel %{_description}
%files -n %{crate}-devel
%{_libdir}/librpm_sequoia.so
%{_libdir}/pkgconfig/rpm-sequoia.pc
%prep
%autosetup -n %{crate}-%{version} -N -a1
%autopatch -M 99 -p1
%cargo_prep -N
# include full configuration for vendored dependencies
cat %{SOURCE2} >> .cargo/config.toml
%build
# build script uses environment variables to populate the pkgconfig file
export PREFIX="%{_prefix}"
export LIBDIR="%{_libdir}"
%cargo_build
%{cargo_license_summary}
%{cargo_license} > LICENSE.dependencies
%{cargo_vendor_manifest}
# replace un-parseable git snapshot dependency information
sed 's/\(.*\) (.*#\(.*\))/\1+git\2/' -i cargo-vendor.txt
%install
# install shared library
mkdir -p %{buildroot}/%{_libdir}
cp -pav target/release/librpm_sequoia.so %{buildroot}/%{_libdir}/librpm_sequoia.so.1
# create unversioned symlink
ln -s librpm_sequoia.so.1 %{buildroot}/%{_libdir}/librpm_sequoia.so
# install pkg-config file
mkdir -p %{buildroot}/%{_libdir}/pkgconfig
cp -pav target/release/rpm-sequoia.pc %{buildroot}/%{_libdir}/pkgconfig/
%if %{with check}
%check
%cargo_test
%endif
%changelog
%autochangelog