Package: devscripts
Version: 2.10.25
Severity: normal
Tags: patch

  Hi,

  I use mergechanges to merge a _sources.changes file (only
orig.tar.gz, diff.gz and dsc files) with an _i386.changes file (only
i386 and all arch files, no sources) before my uploads.
  With the current mergechanges, the resulting changes file only
contains the Checksums-Sha* fields of the _sources.changes (the ones
from the _i386.changes file are discarded).

  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...

  Best regards,
    Vincent

-- Package-specific info:

--- /etc/devscripts.conf ---

--- ~/.devscripts ---
DEBCHANGE_RELEASE_HEURISTIC=changelog

-- 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.25-rc8-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.4     Miscellaneous utilities specific t
ii  dpkg-dev                      1.14.18    package building tools for Debian
ii  libc6                         2.7-10     GNU C Library: Shared libraries
ii  perl                          5.8.8-12   Larry Wall's Practical Extraction 
ii  sed                           4.1.5-7    The GNU sed stream editor

Versions of packages devscripts recommends:
ii  at                 3.1.10.1              Delayed job execution and batch pr
ii  bsd-mailx [mailx]  8.1.2-0.20071201cvs-2 A simple mail user agent
ii  build-essential    11.3                  informational list of build-essent
ii  bzr                1.3-1                 easy to use distributed version co
ii  curl               7.18.0-1              Get a file from an HTTP, HTTPS or 
ii  cvs                1:1.12.13-10          Concurrent Versions System
ii  cvs-buildpackage   5.21                  A set of Debian package scripts fo
ii  dctrl-tools        2.12                  Command-line tools to process Debi
ii  debian-keyring     2007.12.04            GnuPG (and obsolete PGP) keys of D
ii  debian-maintainers 1.27                  GPG keys of Debian maintainers
ii  dput               0.9.2.30              Debian package upload tool
ii  dupload            2.6.3.3               utility to upload Debian packages
ii  epiphany-gecko [ww 2.20.3-1.1            Intuitive GNOME web browser - Geck
ii  equivs             2.0.7-0.1             Circumvent Debian package dependen
ii  fakeroot           1.9.4                 Gives a fake root environment
ii  git-core           1:1.5.5-1             fast, scalable, distributed revisi
ii  gnupg              1.4.6-2.1             GNU privacy guard - a free PGP rep
ii  gnuplot            4.2.2-1               A command-line driven interactive 
ii  iceape-browser [ww 1.1.9-1               Iceape Navigator (Internet browser
ii  iceweasel [www-bro 3.0~b5-1              lightweight web browser based on M
ii  konqueror [www-bro 4:3.5.9.dfsg.1-2+b1   KDE's advanced file manager, web b
ii  libauthen-sasl-per 2.10-1.1              Authen::SASL - SASL Authentication
ii  libcrypt-ssleay-pe 0.57-1                Support for https protocol in LWP
ii  libfile-desktopent 0.04-0.1              Perl module to handle freedesktop 
ii  libparse-debcontro 2.005-2               Easy OO parsing of Debian control-
ii  libsoap-lite-perl  0.71-2                Client and server side SOAP implem
ii  libterm-size-perl  0.2-4                 Perl extension for retrieving term
ii  libtimedate-perl   1.1600-9              Time and date functions for Perl
ii  liburi-perl        1.35.dfsg.1-1         Manipulates and accesses URI strin
ii  libwww-perl        5.808-1               WWW client/server library for Perl
ii  lintian            1.23.46               Debian package checker
ii  lsb-release        3.2-7                 Linux Standard Base version report
ii  lynx [www-browser] 2.8.6-2               Text-mode WWW Browser
ii  mailx              1:20071201-2          Transitional package for mailx ren
ii  man-db             2.5.1-3               on-line manual pager
ii  mercurial          1.0-1                 Scalable distributed version contr
ii  openssh-client [ss 1:4.7p1-8             secure shell client, an rlogin/rsh
ii  patch              2.5.9-4               Apply a diff file to an original
ii  patchutils         0.2.31-4              Utilities to work with patches
ii  perl [libdigest-md 5.8.8-12              Larry Wall's Practical Extraction 
ii  strace             4.5.15-1.2            A system call tracer
ii  subversion         1.4.6dfsg1-2          Advanced version control system
ii  svk                2.0.1-1               A Distributed Version Control Syst
ii  unzip              5.52-11               De-archiver for .zip files
ii  w3m [www-browser]  0.5.1-5.1+b1          WWW browsable pager with excellent
ii  wdiff              0.5-17                Compares two files word by word
ii  wget               1.11.1-1              retrieves files from the web

-- no debconf information
--- /tmp/mergechanges.orig      2008-04-14 09:25:47.000000000 +0200
+++ /usr/bin/mergechanges       2008-04-14 09:40:07.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-Sha1: ' ${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