]>
Commit | Line | Data |
---|---|---|
90d6d73c ER |
1 | Summary: Template to show how to vendor crates |
2 | Name: rust-crate-template | |
3 | Version: 1.0 | |
4 | Release: 0.1 | |
5 | License: Apache v2.0 | |
6 | Group: Applications | |
7 | Source0: https://github.com/NAME/NAME/archive/v%{version}/%{name}-%{version}.tar.gz | |
8 | # Source0-md5: 959298871877c4a50e8e2789d23530c7 | |
9 | # cd NAME-%{version} | |
10 | # cargo vendor | |
11 | # cd .. | |
12 | # tar cJf NAME-crates-%{version}.tar.xz NAME-%{version}/{vendor,Cargo.lock} | |
13 | Source1: %{name}-crates-%{version}.tar.xz | |
14 | # Source1-md5: - | |
15 | URL: - | |
16 | BuildRequires: cargo | |
17 | BuildRequires: rust | |
26ddd9b2 ER |
18 | BuildRequires: tar >= 1:1.22 |
19 | BuildRequires: xz | |
90d6d73c ER |
20 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
21 | ||
22 | %description | |
23 | ||
24 | %prep | |
25 | %setup -q | |
26 | ||
27 | # Use our offline registry | |
28 | export CARGO_HOME="$(pwd)/.cargo" | |
29 | ||
30 | mkdir -p "$CARGO_HOME" | |
31 | cat >.cargo/config <<EOF | |
32 | [source.crates-io] | |
33 | registry = 'https://github.com/rust-lang/crates.io-index' | |
34 | replace-with = 'vendored-sources' | |
35 | ||
36 | [source.vendored-sources] | |
37 | directory = '$PWD/vendor' | |
38 | EOF | |
39 | ||
40 | %build | |
41 | export CARGO_HOME="$(pwd)/.cargo" | |
42 | ||
43 | cargo -v build \ | |
44 | %ifarch x32 | |
45 | --target x86_64-unknown-linux-gnux32 \ | |
46 | %endif | |
47 | --release \ | |
48 | --frozen | |
49 | ||
50 | %install | |
51 | rm -rf $RPM_BUILD_ROOT | |
52 | install -d $RPM_BUILD_ROOT%{_bindir} | |
53 | cp -p target/release/* $RPM_BUILD_ROOT%{_bindir} | |
54 | ||
55 | %clean | |
56 | rm -rf $RPM_BUILD_ROOT | |
57 | ||
58 | %files | |
59 | %defattr(644,root,root,755) | |
60 | %attr(755,root,root) %{_bindir}/* |