-
Notifications
You must be signed in to change notification settings - Fork 5
/
acorns.spec
64 lines (54 loc) · 1.93 KB
/
acorns.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Name: acorns
Summary: Generate an AsciiDoc release notes document from tracking tickets.
Version: 1.0.0
Release: 1%{?dist}
License: GPLv3+
URL: https://github.com/redhat-documentation/acorns
Group: Applications/Text
Obsoletes: cizrna
#Source0: https://static.crates.io/crates/%{name}/%{name}-%{version}.crate
Source0: https://github.com/redhat-documentation/%{name}/archive/refs/tags/v%{version}.tar.gz
# This works fine with Fedora and RHEL, but breaks the SUSE build:
ExclusiveArch: %{rust_arches}
# Build dependencies of acorns:
BuildRequires: openssl-devel
# Dependencies of the Rust compiler:
BuildRequires: make
BuildRequires: gcc
BuildRequires: llvm
Requires: openssl-libs
%description
%{summary}
# Disable debugging packages. RPM looks for them even though none are created,
# and that breaks the build if you don't set this option.
%global debug_package %{nil}
%prep
# Unpack the sources.
%setup -q
%build
# Install the latest Rust compiler.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --component cargo rust-std rustc
# Build the binary.
~/.cargo/bin/cargo build --release
%install
# Clean up previous artifacts.
rm -rf %{buildroot}
# Prepare the target directories.
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_mandir}/man1
# Install the binary into the chroot environment.
install -m 0755 target/release/%{name} %{buildroot}%{_bindir}/%{name}
# An alternative way to install the binary using cargo.
# cargo install --path . --root %{buildroot}/usr
# Compress the man page.
gzip -c target/release/build/%{name}-*/out/%{name}.1 > %{name}.1.gz
# Install the man page into the chroot environment.
install -m 0644 %{name}.1.gz %{buildroot}%{_mandir}/man1/%{name}.1.gz
%files
# Pick documentation and license files from the source directory.
%doc README.md
%doc CHANGELOG.md
%license LICENSE
%{_mandir}/man1/%{name}.1.gz
# Pick the binary from the virtual, chroot system.
%{_bindir}/%{name}