Blob Blame History Raw
# Generated by rust2rpm 22
# * tests fail with OOM problems on 32-bit architectures:
#   https://github.com/dropbox/rust-brotli/issues/42
%if 0%{?__isa_bits} == 32
%bcond_with check
%else
%bcond_without check
%endif
%global debug_package %{nil}

%global crate brotli

Name:           rust-brotli
Version:        3.3.4
Release:        %autorelease
Summary:        Brotli compressor and decompressor with no_std support

License:        BSD-3-Clause
URL:            https://crates.io/crates/brotli
Source:         %{crates_source}
# Manually created patch for downstream crate metadata changes
# * fix license in crate metadata:
#   https://github.com/dropbox/rust-brotli/issues/41
# * bump sha2 dependency from 0.8 to 0.9
# * drop unwanted brotli and catbrotli binaries
# * drop simd feature (missing packed_simd2 dependency)
# * exclude files that are only useful for upstream development:
#   https://github.com/dropbox/rust-brotli/pull/43
Patch:          brotli-fix-metadata.diff

ExclusiveArch:  %{rust_arches}

BuildRequires:  rust-packaging >= 21

%global _description %{expand:
Brotli compressor and decompressor with an interface avoiding the rust
stdlib. This makes it suitable for embedded devices and kernels. It is designed
with a pluggable allocator so that the standard lib's allocator may be
employed. The default build also includes a stdlib allocator and stream
interface. Disable this with --features=no-stdlib. All included code is safe.}

%description %{_description}

%package        devel
Summary:        %{summary}
BuildArch:      noarch

%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}+alloc-stdlib-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+alloc-stdlib-devel %{_description}

This package contains library source intended for building other packages which
use the "alloc-stdlib" feature of the "%{crate}" crate.

%files       -n %{name}+alloc-stdlib-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+benchmark-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+benchmark-devel %{_description}

This package contains library source intended for building other packages which
use the "benchmark" feature of the "%{crate}" crate.

%files       -n %{name}+benchmark-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+disable-timer-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+disable-timer-devel %{_description}

This package contains library source intended for building other packages which
use the "disable-timer" feature of the "%{crate}" crate.

%files       -n %{name}+disable-timer-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+external-literal-probability-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+external-literal-probability-devel %{_description}

This package contains library source intended for building other packages which
use the "external-literal-probability" feature of the "%{crate}" crate.

%files       -n %{name}+external-literal-probability-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+ffi-api-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+ffi-api-devel %{_description}

This package contains library source intended for building other packages which
use the "ffi-api" feature of the "%{crate}" crate.

%files       -n %{name}+ffi-api-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+pass-through-ffi-panics-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+pass-through-ffi-panics-devel %{_description}

This package contains library source intended for building other packages which
use the "pass-through-ffi-panics" feature of the "%{crate}" crate.

%files       -n %{name}+pass-through-ffi-panics-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+seccomp-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+seccomp-devel %{_description}

This package contains library source intended for building other packages which
use the "seccomp" feature of the "%{crate}" crate.

%files       -n %{name}+seccomp-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+sha2-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+sha2-devel %{_description}

This package contains library source intended for building other packages which
use the "sha2" feature of the "%{crate}" crate.

%files       -n %{name}+sha2-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+std-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+std-devel %{_description}

This package contains library source intended for building other packages which
use the "std" feature of the "%{crate}" crate.

%files       -n %{name}+std-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+validation-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+validation-devel %{_description}

This package contains library source intended for building other packages which
use the "validation" feature of the "%{crate}" crate.

%files       -n %{name}+validation-devel
%ghost %{crate_instdir}/Cargo.toml

%package     -n %{name}+vector_scratch_space-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+vector_scratch_space-devel %{_description}

This package contains library source intended for building other packages which
use the "vector_scratch_space" feature of the "%{crate}" crate.

%files       -n %{name}+vector_scratch_space-devel
%ghost %{crate_instdir}/Cargo.toml

%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
# * remove executable bits from Rust source files:
#   https://github.com/dropbox/rust-brotli/pull/40
find -type f -name '*.rs' -executable -exec chmod -x '{}' +
%cargo_prep

%generate_buildrequires
%cargo_generate_buildrequires

%build
%cargo_build

%install
%cargo_install

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

%changelog
%autochangelog