Package: devscripts
Version: 2.10.15
Followup-For: Bug #442972

  Here is a patch for this bug (I need it for myself as I always merge
a source-only build with a pbuilder-binary build for my upload)
  Can you consider integrate it ?

  Best regards,
    Vincent

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages devscripts depends on:
ii  debianutils                   2.28.3     Miscellaneous utilities specific t
ii  dpkg-dev                      1.14.16.6  package building tools for Debian
ii  libc6                         2.7-6      GNU C Library: Shared libraries
ii  perl                          5.8.8-12   Larry Wall's Practical Extraction 
ii  sed                           4.1.5-5    The GNU sed stream editor

Versions of packages devscripts recommends:
ii  fakeroot                      1.9.3      Gives a fake root environment

-- no debconf information
--- mergechanges.orig   2008-02-13 12:22:07.000000000 +0100
+++ mergechanges        2008-02-13 14:29:05.000000000 +0100
@@ -96,6 +96,8 @@
 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 description from all files
+DESCRIPTIONS=$(sed '/^Description:/,/^[^ ]/{/^ /p;d};d' "$@" | sort -u)
 
 # Sanity check #2: Versions must match
 if test $(echo "${VERSION}" | wc -l) -ne 1; then
@@ -111,6 +113,13 @@
     exit 1
 fi
 
+# Sanity check #4: Description for same binary must match
+if test $(echo "${DESCRIPTIONS}" | sed -e 's/ \+- .*$//' | uniq -d | wc -l) 
-ne 0; then
+    echo "Error: Descriptions do not match:"
+    echo "${DESCRIPTIONS}"
+    exit 1
+fi
+
 if test ${FILE} = 1; then
     DIR=`dirname "$1"`
     REDIR1="> '${DIR}/${SOURCE}_${SVERSION}_multi.changes'"
@@ -119,7 +128,13 @@
 
 # Temporary output
 OUTPUT=`tempfile`
-trap "rm -f '${OUTPUT}'" 0 1 2 3 7 10 13 15
+DESCFILE=`tempfile`
+trap "rm -f '${OUTPUT}' '${DESCFILE}'" 0 1 2 3 7 10 13 15
+
+if test $(echo "${DESCRIPTIONS}" | wc -l) -ne 0; then
+    echo "Description:" > "${DESCFILE}"
+    echo "${DESCRIPTIONS}" >> "${DESCFILE}"
+fi
 
 # Copy one of the files to ${OUTPUT}, nuking any PGP signature
 if $(grep -q "BEGIN PGP SIGNED MESSAGE" "$1"); then
@@ -128,8 +143,11 @@
     cp "$1" ${OUTPUT}
 fi
 
-# Replace the Architecture: field, and nuke the value of Files:
+# 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' \
+    -e '/^Description:/,/^[^ ]/{/^Description:/d;/^[ ]/d}' \
+    -e '/^Changes:/{r '${DESCFILE} -e ';aChanges:' -e ';d}' \
     ${OUTPUT} ${REDIR1}"
 
 # Voodoo magic to get the merged filelist into the output

Reply via email to