[packages/rpm-pld-macros] add %update_cargo_checksum; 2.051

atler atler at pld-linux.org
Wed Jan 28 16:20:28 CET 2026


commit 8aeb6e95c1222689e23a8d933165517d6d43cdff
Author: Jan Palus <atler at pld-linux.org>
Date:   Wed Jan 28 14:27:22 2026 +0100

    add %update_cargo_checksum; 2.051

 macros.rust         | 31 +++++++++++++++++++++++++++++++
 rpm-pld-macros.spec |  4 ++--
 2 files changed, 33 insertions(+), 2 deletions(-)
---
diff --git a/rpm-pld-macros.spec b/rpm-pld-macros.spec
index 0a3a0c2..9aeb834 100644
--- a/rpm-pld-macros.spec
+++ b/rpm-pld-macros.spec
@@ -1,4 +1,4 @@
-%define		rpm_macros_rev	2.050
+%define		rpm_macros_rev	2.051
 %define		find_lang_rev	1.42
 # split into individual X_prov_ver if there is a reason to desync
 %define		prov_ver	4.15
@@ -6,7 +6,7 @@ Summary:	PLD Linux RPM macros
 Summary(pl.UTF-8):	Makra RPM dla Linuksa PLD
 Name:		rpm-pld-macros
 Version:	%{rpm_macros_rev}
-Release:	2
+Release:	1
 License:	GPL v2+
 Group:		Development/Building
 Source0:	macros.pld
diff --git a/macros.rust b/macros.rust
index ca49aa4..a8a9657 100644
--- a/macros.rust
+++ b/macros.rust
@@ -109,3 +109,34 @@ Requires:	glibc >= 1:2.23\
 Requires:	uname(release) >= 4.4\
 %endif\
 %{nil}
+
+%update_cargo_checksum() %{!?1:%{error:%%%0 macro requires an argument}} { \
+__update_cargo_checksum() { \
+local file cksum_dir cksum_path cksum_filename cksum cksum_key;\
+cksum_filename=.cargo-checksum.json;\
+for file in "$@"; do \
+if [ ! -f "$file" ]; then \
+echo "ERROR: file '$file' does not exist" >&2;\
+exit 1;\
+fi;\
+unset cksum_path;\
+cksum_dir=$(dirname $(readlink -f "$file"));\
+while [ "$cksum_dir" != "%{_builddir}" ] && [ "$cksum_dir" != / ]; do \
+test -f "$cksum_dir/$cksum_filename" && cksum_path="$cksum_dir/$cksum_filename" && break;\
+cksum_dir=$(dirname "$cksum_dir");\
+done;\
+if [ -z "$cksum_path" ]; then \
+echo "ERROR: cannot find $cksum_filename file for '$file'" >&2;\
+exit 1;\
+fi;\
+cksum_key=$(realpath --relative-to="$cksum_dir" "$file");\
+if ! grep -q "\\"$cksum_key\\"[[:space:]]*:" "$cksum_path"; then \
+echo "ERROR: no entry found for '$cksum_key' in '$cksum_path'" >&2;\
+exit 1;\
+fi;\
+cksum=$(sha256sum "$file"|cut -f1 -d' ');\
+sed -i -re "s;(\\"$cksum_key\\"\\\\s*:\\\\s*)\\"[^\\"]*\\";\\\\1\\"$cksum\\";" "$cksum_path";\
+done;\
+}; __update_cargo_checksum %* \
+}\
+%{nil}
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm-pld-macros.git/commitdiff/8aeb6e95c1222689e23a8d933165517d6d43cdff



More information about the pld-cvs-commit mailing list