[packages/delta] add support for reusing crates from older package version

atler atler at pld-linux.org
Fri Feb 5 19:14:10 CET 2021


commit 4a2626ba692d170ac1c95ca04b25ef9734379952
Author: Jan Palus <atler at pld-linux.org>
Date:   Fri Feb 5 17:55:46 2021 +0100

    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/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"
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}
 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/delta.git/commitdiff/c42db62c7ca11678b3e98a3815eb3ed86e064a93



More information about the pld-cvs-commit mailing list