From 700c18495a3a44469d392338a60c7de6eb26354f Mon Sep 17 00:00:00 2001 From: Davide Cavalca Date: Fri, 22 Oct 2021 10:28:04 -0700 Subject: [PATCH] Build for epel8 --- .gitignore | 1 + rust-resctl-bench.spec | 17 +++++++++++++++++ sources | 1 + update-vendor-tarball.sh | 25 +++++++++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100755 update-vendor-tarball.sh diff --git a/.gitignore b/.gitignore index 2829c5e..f4d7de6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /resctl-bench-2.1.2.crate +/resctl-bench-2.1.2-vendor.tar.gz diff --git a/rust-resctl-bench.spec b/rust-resctl-bench.spec index 549de84..9f7a40a 100644 --- a/rust-resctl-bench.spec +++ b/rust-resctl-bench.spec @@ -4,6 +4,13 @@ %global crate resctl-bench +%if 0%{?el8} +# el8 doesn't have these macros +%global __crates_url https://crates.io/api/v1/crates/ +%global crates_source %{__crates_url}%{crate}/%{version}/download#/%{crate}-%{version}.crate +%global version_no_tilde %{version} +%endif + Name: rust-%{crate} Version: 2.1.2 Release: %autorelease @@ -13,10 +20,16 @@ Summary: Whole system resource control benchmarks with realistic scenario License: ASL 2.0 and BSD and MIT and zlib URL: https://crates.io/crates/resctl-bench Source: %{crates_source} +# Vendored dependencies for EPEL, update with ./update-vendor-tarball.sh +Source1: %{crate}-%{version}-vendor.tar.gz ExclusiveArch: %{rust_arches} +%if 0%{?el8} +BuildRequires: rust-toolset +%else BuildRequires: rust-packaging +%endif %global _description %{expand: resctl-bench is a collection of whole-system benchmarks to evaluate resource @@ -52,10 +65,14 @@ Requires: rd-hashd = %{version} %prep %autosetup -n %{crate}-%{version_no_tilde} -p1 +%if 0%{?el8} +%cargo_prep -V 1 +%else %cargo_prep %generate_buildrequires %cargo_generate_buildrequires +%endif %build %cargo_build diff --git a/sources b/sources index 8e71d81..78f2783 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (resctl-bench-2.1.2.crate) = 55e56c9bf5d6c2d1c944291ad8908cff5a5e37e51bb8b4baa98dca5515773d22f509a14e9e85cd11066d5011a6390fbaec5d65c029b9ab253493004c937840eb +SHA512 (resctl-bench-2.1.2-vendor.tar.gz) = 5797a8d3c1524df6c78463d067bbb97e22a68c65f1a50b039636280c07f1a9f878d3f0483dede30070f5909294afa5473c6f5776bccff39bf4fb872b4bee2115 diff --git a/update-vendor-tarball.sh b/update-vendor-tarball.sh new file mode 100755 index 0000000..34c64dd --- /dev/null +++ b/update-vendor-tarball.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +name='resctl-bench' +specfile="rust-${name}.spec" +version=$(rpm -q --qf '%{VERSION}\n' --specfile "$specfile" | head -1) +nv="${name}-${version}" +crate="${nv}.crate" +vendor_tarball="${nv}-vendor.tar.gz" + +if [ -f "$vendor_tarball" ]; then + echo "${vendor_tarball} already exists, aborting" + exit 1 +fi + +[ -f "$crate" ] || spectool -g "$specfile" +tardir="$PWD" +workdir=$(mktemp -d) +trap 'rm -rf "$workdir"' EXIT + +tar xvzf "$tardir/$crate" -C "$workdir" +(cd "${workdir}/${nv}" && \ + cargo vendor && \ + tar cvzf "${tardir}/${vendor_tarball}" vendor/) + +exit 0