[Momonga-devel.ja:02953] SHA1 support for %No{Source,Patch}


小松です。あけましておめでとうございます。

さて、%No{Source,Patch} に書く checksum ですが、
MD5 だけでなく SHA1 も使えるようにして欲しいという
要望があったので、macros.momonga への patch を書いてみました。
中身を実際に見ていただければわかるのですが、

・ checksum が 32byte だったら MD5
・ checksum が 40byte だったら SHA1 
・ それ以外だったらエラー

という ad hoc なやり方をしているので、
何か問題があったらお知らせ下さい。

-- 
┏━━━━━━━━━━━━━━━━━━━━━━┓
                小松  晋一朗            
            koma2@xxxxxxxxxxxxxxxx
            koma2@xxxxxxxxxxxxxxxxx
     http://straycat.ms.u-tokyo.ac.jp/~koma2/
┗━━━━━━━━━━━━━━━━━━━━━━┛
--- macros.momonga.orig	2004-08-04 16:37:10.000000000 +0900
+++ macros.momonga	2005-01-02 01:10:53.000000000 +0900
@@ -162,8 +171,10 @@
 #------------------------------------------------------------------------
 # check checksums defined by %NoSource() and %NoPatch()
 #------------------------------------------------------------------------
-%_checksum_cmd		/usr/bin/md5sum
-%_checksum_cmd_args	--check
+%_checksum_cmd			/usr/bin/md5sum
+%_checksum_cmd_args		--check
+%_checksum_sha1_cmd		/usr/bin/sha1sum
+%_checksum_sha1_cmd_args	--check
 
 %__spec_prep_checksum \
 %{?__nosource:\
@@ -182,7 +193,14 @@
 } \
 set -- $checksum $patch_checksum; \
 while [ $# -gt 0 ]; do \
-  echo "$1  $2" | %{_checksum_cmd} %{_checksum_cmd_args}; \
+  if [ `echo -n "$1" | wc -c` = 32 ]; then \
+    echo "$1  $2" | %{_checksum_cmd} %{_checksum_cmd_args}; \
+  elif [ `echo -n "$1" | wc -c` = 40 ]; then \
+    echo "$1  $2" | %{_checksum_sha1_cmd} %{_checksum_sha1_cmd_args}; \
+  else \
+    echo "Unsupported checksum" 1>&2; \
+    exit 1; \
+  fi \
   shift 2; \
 done \
 %{nil}