1 %define crates_ver 0.5.12
3 Summary: Tool to `cargo vendor` with filtering
4 Name: cargo-vendor-filterer
9 Source0: https://github.com/coreos/cargo-vendor-filterer/archive/v%{version}/%{name}-%{version}.tar.gz
10 # Source0-md5: c0add10b6eea99e1d97b77554e558c3b
11 Source1: %{name}-crates-%{crates_ver}.tar.xz
12 # Source1-md5: da2a0fffd6c801e08954b79498f4dd70
13 Patch0: tier2-platforms-without-host-tools.patch
14 URL: https://github.com/coreos/cargo-vendor-filterer
16 BuildRequires: openssl-devel
17 BuildRequires: rpmbuild(macros) >= 2.004
19 BuildRequires: tar >= 1:1.22
21 ExclusiveArch: %{rust_arches}
22 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
25 The core cargo vendor tool is useful to save all dependencies.
26 However, it doesn't offer any filtering; today cargo includes all
27 platforms, but some projects only care about Linux for example.
33 %{__mv} %{name}-%{crates_ver}/* .
34 sed -i -e 's/@@VERSION@@/%{version}/' Cargo.lock
36 # use our offline registry
37 export CARGO_HOME="$(pwd)/.cargo"
39 mkdir -p "$CARGO_HOME"
40 cat >.cargo/config <<EOF
42 registry = 'https://github.com/rust-lang/crates.io-index'
43 replace-with = 'vendored-sources'
45 [source.vendored-sources]
46 directory = '$PWD/vendor'
50 export CARGO_HOME="$(pwd)/.cargo"
55 rm -rf $RPM_BUILD_ROOT
56 export CARGO_HOME="$(pwd)/.cargo"
58 %cargo_install --frozen --root $RPM_BUILD_ROOT%{_prefix} --path $PWD
59 %{__rm} $RPM_BUILD_ROOT%{_prefix}/.crates*
62 rm -rf $RPM_BUILD_ROOT
65 %defattr(644,root,root,755)
67 %attr(755,root,root) %{_bindir}/cargo-vendor-filterer