Vincent Danjean wrote:
>   I made a patch to correct this on my system. You may want to apply it
> upstream (or rewrite it). As for the other parts of the mergechanges
> script, it makes assumptions about the order in the changes files...

Of course, my patch had a typo (twice the Checksum-Sha1: entry...)
Here is a corrected patch.

  Best regards
    Vincent

-- 
Vincent Danjean       GPG key ID 0x9D025E87         [EMAIL PROTECTED]
GPG key fingerprint: FC95 08A6 854D DB48 4B9A  8A94 0BF7 7867 9D02 5E87
Unofficial pacakges: http://www-id.imag.fr/~danjean/deb.html#package
APT repo:  deb http://perso.debian.org/~vdanjean/debian unstable main

--- /tmp/mergechanges.orig      2008-04-14 09:25:47.000000000 +0200
+++ /usr/bin/mergechanges       2008-04-14 11:11:17.000000000 +0200
@@ -96,6 +96,10 @@
 SOURCE=$(grep -h "^Source: " "$@" | sed -e "s,^Source: ,," | sort -u)
 # Extract & merge the files from all files
 FILES=$(egrep -h "^ [0-9a-f]{32} [0-9]+" "$@" | sort -u)
+# Extract & merge the Sha1 from all files
+SHA1=$(egrep -h "^ [0-9a-f]{40} [0-9]+" "$@" | sort -u)
+# Extract & merge the Sha256 from all files
+SHA256=$(egrep -h "^ [0-9a-f]{64} [0-9]+" "$@" | sort -u)
 # Extract & merge the description from all files
 DESCRIPTIONS=$(sed '/^Description:/,/^[^ ]/{/^ /p;d};d' "$@" | sort -u)
 
@@ -143,14 +147,28 @@
     cp "$1" ${OUTPUT}
 fi
 
-# Replace the Architecture: field, nuke the value of Files:, and insert
-# the Description: field before the Changes: field
-eval "sed -e 's,^Architecture: .*,Architecture: ${ARCHS},; /^Files: /q' \
+# Replace the Architecture: field, nuke the value of Files:, Checksums-Sha1:
+# and/or Checksums-Sha256:, and insert the Description: field before the
+# Changes: field
+eval "sed -e 's,^Architecture: .*,Architecture: ${ARCHS},; 
/^\(Files\|Checksums-Sha\(1\|256\)\): /Q' \
     -e '/^Description:/,/^[^ ]/{/^Description:/d;/^[ ]/d}' \
     -e '/^Changes:/{r '${DESCFILE} -e ';aChanges:' -e ';d}' \
     ${OUTPUT} ${REDIR1}"
 
+# Voodoo magic to get the merged Checksums-Sha1 into the output (if any)
+if test $(echo "${SHA1}" | wc -l) -ge 1; then
+  eval "echo 'Checksums-Sha1: ' ${REDIR2}"
+  eval "echo '${SHA1}' ${REDIR2}"
+fi
+
+# Voodoo magic to get the merged Checksums-Sha256 into the output (if any)
+if test $(echo "${SHA256}" | wc -l) -ge 1; then
+  eval "echo 'Checksums-Sha256: ' ${REDIR2}"
+  eval "echo '${SHA256}' ${REDIR2}"
+fi
+
 # Voodoo magic to get the merged filelist into the output
+eval "echo 'Files: ' ${REDIR2}"
 eval "echo '${FILES}' ${REDIR2}"
 
 exit 0

Reply via email to