1 Summary: Template to show how to vendor crates
2 Name: rust-crate-template
7 Source0: https://github.com/NAME/NAME/archive/v%{version}/%{name}-%{version}.tar.gz
8 # Source0-md5: 959298871877c4a50e8e2789d23530c7
12 # tar cJf NAME-crates-%{version}.tar.xz NAME-%{version}/{vendor,Cargo.lock}
13 Source1: %{name}-crates-%{version}.tar.xz
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)
29 # Use our offline registry
30 export CARGO_HOME="$(pwd)/.cargo"
32 mkdir -p "$CARGO_HOME"
33 cat >.cargo/config <<EOF
35 registry = 'https://github.com/rust-lang/crates.io-index'
36 replace-with = 'vendored-sources'
38 [source.vendored-sources]
39 directory = '$PWD/vendor'
43 export CARGO_HOME="$(pwd)/.cargo"
48 rm -rf $RPM_BUILD_ROOT
49 export CARGO_HOME="$(pwd)/.cargo"
54 --root $RPM_BUILD_ROOT%{_prefix}
56 %{__rm} $RPM_BUILD_ROOT%{_prefix}/.crates.toml
57 %{__rm} $RPM_BUILD_ROOT%{_prefix}/.crates2.json
60 rm -rf $RPM_BUILD_ROOT
63 %defattr(644,root,root,755)
64 %attr(755,root,root) %{_bindir}/*