Without this, OpenScanHub fails to run the install step as it injects
clippy build into the process, which creates different configuration and
therefore different build directory.
Taken from Fedora change
1bcf609430
Related: RHEL-84033
180 lines
4.7 KiB
RPMSpec
180 lines
4.7 KiB
RPMSpec
# Generated by rust2rpm 27
|
|
%bcond check 1
|
|
|
|
%global crate sequoia-sq
|
|
|
|
%if 0%{?rhel}
|
|
# RHEL: Use bundled deps as it doesn't ship Rust libraries
|
|
%global bundled_rust_deps 1
|
|
%global __brp_mangle_shebangs_exclude_from ^/usr/src/debug/.*$
|
|
%bcond_without bundled_capnproto
|
|
%else
|
|
# Fedora: Use only system Rust libraries
|
|
%global bundled_rust_deps 0
|
|
%bcond_with bundled_capnproto
|
|
%endif
|
|
|
|
Name: rust-sequoia-sq
|
|
Version: 1.3.0
|
|
Release: %autorelease
|
|
Summary: Command-line frontends for Sequoia
|
|
|
|
License: LGPL-2.0-or-later
|
|
URL: https://crates.io/crates/sequoia-sq
|
|
Source0: %{crates_source}
|
|
|
|
# Generated using cargo-vendor-filterer:
|
|
# cargo download %%{crate}==%%{version} > %%{crate}-%%{version}.crate
|
|
# tar xf %%{crate}-%%{version}.crate
|
|
# cargo update ... # optional, if you want to update specific dependencies
|
|
# pushd %%{crate}-%%{version}
|
|
# 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 -cJf ../rust-%%{crate}-%%{version}-vendor.tar.xz vendor
|
|
Source1: %{name}-%{version}-vendor.tar.xz
|
|
Source2: capnproto-c++-1.0.1.tar.gz
|
|
# Manually created patch for downstream crate metadata changes
|
|
# * switch crypto backend from Nettle to OpenSSL
|
|
# * exclude files that are only useful for upstream development
|
|
# * drop automated generation of upstream integration tests
|
|
# * drop features for unsupported crypto backends
|
|
Patch: sequoia-sq-fix-metadata.diff
|
|
|
|
%if 0%{?bundled_rust_deps}
|
|
BuildRequires: rust-toolset
|
|
# vendored openssl-sys
|
|
BuildRequires: openssl-devel
|
|
# vendored rustqlite
|
|
BuildRequires: sqlite-devel
|
|
%else
|
|
BuildRequires: cargo-rpm-macros >= 24
|
|
%endif
|
|
|
|
%if %{with bundled_capnproto}
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: cmake >= 3.1
|
|
%endif
|
|
|
|
%global _description %{expand:
|
|
Command-line frontends for Sequoia.}
|
|
|
|
%description %{_description}
|
|
|
|
%package -n %{crate}
|
|
Summary: %{summary}
|
|
# (Apache-2.0 OR MIT) AND BSD-3-Clause
|
|
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
|
|
# 0BSD OR MIT OR Apache-2.0
|
|
# Apache-2.0
|
|
# Apache-2.0 AND MIT
|
|
# Apache-2.0 OR BSL-1.0
|
|
# Apache-2.0 OR ISC OR MIT
|
|
# Apache-2.0 OR MIT
|
|
# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
|
|
# BSD-2-Clause OR Apache-2.0 OR MIT
|
|
# BSD-3-Clause
|
|
# BSL-1.0
|
|
# LGPL-2.0-or-later
|
|
# MIT
|
|
# MIT OR Apache-2.0
|
|
# MIT OR Apache-2.0 OR Zlib
|
|
# MIT OR Zlib OR Apache-2.0
|
|
# MPL-2.0
|
|
# Unlicense OR MIT
|
|
# Zlib OR Apache-2.0 OR MIT
|
|
License: %{shrink:
|
|
LGPL-2.0-or-later AND
|
|
Apache-2.0 AND
|
|
BSL-1.0 AND
|
|
BSD-3-Clause AND
|
|
MIT AND
|
|
MPL-2.0 AND
|
|
Unicode-DFS-2016 AND
|
|
(0BSD OR MIT OR Apache-2.0) AND
|
|
(Apache-2.0 OR BSL-1.0) AND
|
|
(Apache-2.0 OR ISC OR MIT) AND
|
|
(Apache-2.0 OR MIT) AND
|
|
(Apache-2.0 WITH LLVM-exception OR 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
|
|
%doc README.md
|
|
%{_bindir}/sq
|
|
%{_mandir}/man1/sq*
|
|
%{bash_completions_dir}/sq.bash
|
|
%{fish_completions_dir}/sq.fish
|
|
%{zsh_completions_dir}/_sq
|
|
|
|
%prep
|
|
%autosetup -n %{crate}-%{version} -N %{?bundled_rust_deps:-a1}
|
|
%autopatch -M 99 -p1
|
|
%if 0%{?bundled_rust_deps}
|
|
%cargo_prep -v vendor
|
|
|
|
# drop broken integration tests
|
|
rm -vr subplot/
|
|
rm -v tests/sq-subplot.rs
|
|
# don't lock the dependencies
|
|
rm -f Cargo.lock
|
|
%else
|
|
%cargo_prep
|
|
# drop broken integration tests
|
|
rm -vr subplot/
|
|
rm -v tests/sq-subplot.rs
|
|
|
|
%generate_buildrequires
|
|
%cargo_generate_buildrequires
|
|
%endif
|
|
|
|
%if %{with bundled_capnproto}
|
|
mkdir -p bundled_capnproto
|
|
pushd bundled_capnproto
|
|
tar --strip-components=1 -xf %{SOURCE2}
|
|
popd
|
|
%endif
|
|
|
|
%build
|
|
export ASSET_OUT_DIR=target/assets
|
|
%if %{with bundled_capnproto}
|
|
pushd bundled_capnproto
|
|
%cmake -DBUILD_TESTING=OFF
|
|
%cmake_build
|
|
export PATH="$PWD/%{__cmake_builddir}/src/capnp:$PATH"
|
|
popd
|
|
%endif
|
|
%cargo_build
|
|
%{cargo_license_summary}
|
|
%{cargo_license} > LICENSE.dependencies
|
|
|
|
%install
|
|
%cargo_install
|
|
# install manual pages
|
|
mkdir -p %{buildroot}/%{_mandir}/man1
|
|
cp -pav target/assets/man-pages/sq*.1 %{buildroot}/%{_mandir}/man1/
|
|
# install shell completions
|
|
install -Dpm 0644 target/assets/shell-completions/sq.bash \
|
|
%{buildroot}/%{bash_completions_dir}/sq.bash
|
|
install -Dpm 0644 target/assets/shell-completions/sq.fish \
|
|
%{buildroot}/%{fish_completions_dir}/sq.fish
|
|
install -Dpm 0644 target/assets/shell-completions/_sq \
|
|
%{buildroot}/%{zsh_completions_dir}/_sq
|
|
|
|
%if %{with check}
|
|
%check
|
|
%cargo_test
|
|
%endif
|
|
|
|
%changelog
|
|
%autochangelog
|