From 4a2626ba692d170ac1c95ca04b25ef9734379952 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Fri, 5 Feb 2021 17:55:46 +0100 Subject: [PATCH] add support for reusing crates from older package version providing dependencies did not change in which case cargo will throw error --- create-crates.sh | 8 +++++++- delta.spec | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/create-crates.sh b/create-crates.sh index 414c80c..0ce9d8a 100755 --- a/create-crates.sh +++ b/create-crates.sh @@ -1,6 +1,8 @@ #!/bin/sh -for cmd in bsdtar rpm-specdump cargo; do +force_cargo_package="git-delta" + +for cmd in bsdtar rpm-specdump cargo perl; do if ! command -v $cmd > /dev/null 2> /dev/null; then not_installed="$not_installed$cmd " fi @@ -23,6 +25,7 @@ spec_dump=$(rpm-specdump "$pkg_dir/$pkg_name.spec") pkg_version=$(echo "$spec_dump" | grep PACKAGE_VERSION | cut -f3 -d' ') pkg_src=$(basename $(echo "$spec_dump" | grep SOURCEURL0 | cut -f3- -d' ')) crates_file="$pkg_name-crates-$pkg_version.tar.xz" +cargo_package=${force_cargo_package:-$pkg_name} if [ -e "$pkg_dir/$crates_file" ]; then echo "ERROR: crates file $crates_file already exists" >&2 @@ -59,6 +62,9 @@ if [ $? -ne 0 ]; then exit 1 fi +# replace cargo package version with @@VERSION@@ +perl -pi -e 'BEGIN { undef $/;} s/(\[\[package\]\]\nname\s*=\s*"'"$cargo_package"'"\nversion\s*=\s*")[^"]+/$1\@\@VERSION\@\@/m' Cargo.lock + cd .. tar cJf "$pkg_dir/$crates_file" "$src_dir"/{Cargo.lock,vendor} diff --git a/delta.spec b/delta.spec index bb6abeb..d252575 100644 --- a/delta.spec +++ b/delta.spec @@ -1,3 +1,5 @@ +%define crates_ver 0.5.0 + Summary: A viewer for git and diff output Name: delta Version: 0.5.0 @@ -7,7 +9,7 @@ Group: Applications Source0: https://github.com/dandavison/delta/archive/%{version}/%{name}-%{version}.tar.gz # Source0-md5: d75f73bc71407b86489eff88f837274d # ./create-crates.sh -Source1: %{name}-crates-%{version}.tar.xz +Source1: %{name}-crates-%{crates_ver}.tar.xz # Source1-md5: 55f896f9511f16f17d8d209d903904f1 URL: https://github.com/dandavison/delta BuildRequires: cargo @@ -40,7 +42,10 @@ Delta's main features are: diff output. %prep -%setup -q -b1 +%setup -q -a1 + +%{__mv} delta-%{crates_ver}/* . +sed -i -e 's/@@VERSION@@/%{version}/' Cargo.lock # use our offline registry export CARGO_HOME="$(pwd)/.cargo" -- 2.43.0