Blob Blame History Raw
# Generated by rust2rpm 26
%bcond_without check

%global crate add-determinism
%global __cargo_is_lib() 0

Name:           rust-add-determinism
Version:        0.2.0
Release:        %autorelease
Summary:        RPM buildroot helper to strip nondeterministic bits in files

License:        GPL-3.0-or-later
URL:            https://crates.io/crates/add-determinism
Source:         %{crates_source}

Patch:          0001-Make-pyo3-dependency-optional.patch
Patch:          0002-rpm-call-.nopython-variant-if-full-is-not-installed.patch

BuildRequires:  cargo-rpm-macros >= 24


%global _description %{expand:
RPM buildroot helper to strip nondeterministic bits in files.}

%description %{_description}

%package     -n %{crate}
Summary:     %{summary}
License:     GPL-3.0-or-later AND (Apache-2.0 OR MIT) AND MIT AND (MIT OR Apache-2.0) AND (Unlicense OR MIT)
Recommends:  python3dist(marshalparser)
Conflicts:   %{crate}-nopython < %{version}-%{release}

%description -n %{crate} %{_description}

This is the full version that needs python3-libs.

%files       -n %{crate}
%license LICENSE.GPL3
%license LICENSE.dependencies
%doc README.md
%{_bindir}/add-determinism

%package     -n %{crate}-nopython
Summary:     Build of add-determinism without the dependency on libpython
Conflicts:   %{crate} < %{version}-%{release}

%description -n %{crate}-nopython %{_description}

This is the basic variant that doesn't need python3-libs.

%files       -n %{crate}-nopython
%license LICENSE.GPL3
%license LICENSE.dependencies
%doc README.md
%{_bindir}/add-determinism.nopython

%package     -n build-reproducibility-srpm-macros
Summary:     Configuration to integrate add-determinism in package builds
BuildArch:   noarch
Requires:    add-determinism-nopython = %{version}-%{release}
Requires:    (add-determinism = %{version}-%{release} if python3-libs)

%description -n build-reproducibility-srpm-macros
%{summary}.

This package is intended to be pulled in by redhat-rpm-config.

%files       -n build-reproducibility-srpm-macros
%{rpmmacrodir}/macros.build-reproducibility

%prep
# Work-around to let the patch apply cleanly, drop after patch is integrated upstream
%setup -q -n %{crate}-%{version}
mv Cargo.toml{.orig,}
%patch 0 -p1
%patch 1 -p1

%cargo_prep

%generate_buildrequires
%cargo_generate_buildrequires
echo 'python3dist(marshalparser)'

%build
%cargo_build
%{cargo_license_summary}
%{cargo_license} >LICENSE.dependencies

%cargo_build -n -- --target-dir=target/nopython

%install
%cargo_install

install -D target/nopython/rpm/add-determinism %{buildroot}%{_bindir}/add-determinism.nopython

install -m0644 -Dt %{buildroot}%{rpmmacrodir} rpm/macros.build-reproducibility

%if %{with check}
%check
%cargo_test
%endif

%changelog
%autochangelog