Package: devscripts Version: 2.12.6+deb7u2 Severity: wishlist Tags: d-i patch
Hi, please find attach a tiny patch series to add support for udebs. There's also an extra patch for the manpage. I didn't refresh the translations since po4a seems to fancy redoing line wrapping, generating an amazing amount of noise; so I thought a patch for that wouldn't be too useful. Mraw, KiBi.
>From f60a8e2be04e2027ef25fa8b9d323355f09f914a Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <k...@debian.org> Date: Tue, 18 Feb 2014 20:11:02 +0300 Subject: [PATCH 1/4] deb-reversion: amd64 has been an official port for a while. --- scripts/deb-reversion.dbk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deb-reversion.dbk b/scripts/deb-reversion.dbk index 97c1483..942f4e9 100644 --- a/scripts/deb-reversion.dbk +++ b/scripts/deb-reversion.dbk @@ -264,7 +264,7 @@ and docbook-xsl in your Build-Depends control field. <refsect1> <title>DISCLAIMER</title> <para> - &dhpackage; is a tool intended to help porters (e.g. amd64) with + &dhpackage; is a tool intended to help porters with modifying packages for other architectures, and to augment deb-repack, which creates modified packages with identical version numbers as the official packages. Chaos will ensue! With &dhpackage;, a proper version -- 1.7.10.4
>From e8a417d3d088aa22f57eec39422159972d0bfcc3 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <k...@debian.org> Date: Tue, 18 Feb 2014 20:17:44 +0300 Subject: [PATCH 2/4] deb-reversion: Stop rejecting .udeb files. --- scripts/deb-reversion.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/deb-reversion.sh b/scripts/deb-reversion.sh index 16b7f4d..2a17e56 100755 --- a/scripts/deb-reversion.sh +++ b/scripts/deb-reversion.sh @@ -97,8 +97,8 @@ for opt in "$@"; do exit 1 else case "$opt" in - /*.deb) DEB="$opt";; - *.deb) DEB="${CURDIR}/$opt";; + /*.deb|/*.udeb) DEB="$opt";; + *.deb| *.udeb) DEB="${CURDIR}/$opt";; *) err "not a .deb file: $opt"; exit 2 -- 1.7.10.4
>From 54840b1e36887d894a41f7e8c9ee6a0f7bcefd40 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <k...@debian.org> Date: Tue, 18 Feb 2014 20:20:27 +0300 Subject: [PATCH 3/4] deb-reversion: Mention when a changelog file is expected and missing. A very common case is udeb packages. --- scripts/deb-reversion.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deb-reversion.sh b/scripts/deb-reversion.sh index 2a17e56..2ef7edd 100755 --- a/scripts/deb-reversion.sh +++ b/scripts/deb-reversion.sh @@ -173,7 +173,7 @@ change_version() [ -f usr/share/doc/${PACKAGE}/$i ] \ && LOGFILE=usr/share/doc/${PACKAGE}/$i done - [ -z "$LOGFILE" ] && return 1 + [ -z "$LOGFILE" ] && { echo "changelog file not found"; return 1; } mkdir -p debian zcat $LOGFILE > debian/changelog shift -- 1.7.10.4
>From 12274448c17bad9f77ac7255680c5b559f91606e Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <k...@debian.org> Date: Tue, 18 Feb 2014 20:23:29 +0300 Subject: [PATCH 4/4] deb-reversion: Deal with deb/udeb specific cases. Two things here: - Only massage changelog file in the deb case. - Make sure to generate a .udeb file in the udeb case, which is slightly tricky since "Package-Type: udeb" can be absent, and dpkg-name would then default to the .deb extension. (Best viewed with git diff/log's -b flag.) --- scripts/deb-reversion.sh | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/scripts/deb-reversion.sh b/scripts/deb-reversion.sh index 2ef7edd..de5af74 100755 --- a/scripts/deb-reversion.sh +++ b/scripts/deb-reversion.sh @@ -168,18 +168,23 @@ change_version() { PACKAGE=$(sed -ne 's,^Package: ,,p' DEBIAN/control) VERSION=$1 - LOGFILE= - for i in changelog{,.Debian}.gz; do - [ -f usr/share/doc/${PACKAGE}/$i ] \ - && LOGFILE=usr/share/doc/${PACKAGE}/$i - done - [ -z "$LOGFILE" ] && { echo "changelog file not found"; return 1; } - mkdir -p debian - zcat $LOGFILE > debian/changelog - shift - dch $DCH_OPTIONS -v $VERSION -- $@ - call_hook - gzip -9 -c debian/changelog >| $LOGFILE + + # changelog massaging is only needed in the deb (not-udeb) case: + if [ "$DEB_TYPE" = "deb" ]; then + LOGFILE= + for i in changelog{,.Debian}.gz; do + [ -f usr/share/doc/${PACKAGE}/$i ] \ + && LOGFILE=usr/share/doc/${PACKAGE}/$i + done + [ -z "$LOGFILE" ] && { echo "changelog file not found"; return 1; } + mkdir -p debian + zcat $LOGFILE > debian/changelog + shift + dch $DCH_OPTIONS -v $VERSION -- $@ + call_hook + gzip -9 -c debian/changelog >| $LOGFILE + fi + sed -i -e "s,^Version: .*,Version: $VERSION," DEBIAN/control rm -rf debian } @@ -188,7 +193,16 @@ repack_file() { cd .. dpkg-deb -b package >/dev/null - dpkg-name package.deb | sed -e "s,.*['\`]\(.*\).,\1," + debfile=$(dpkg-name package.deb | sed -e "s,.*['\`]\(.*\).,\1,") + # if Package-Type: udeb is absent, dpkg-name can't rename into *.udeb, + # so we're left to an extra rename afterwards: + if [ "$DEB_TYPE" = udeb ]; then + udebfile=${debfile%%.deb}.udeb + mv $debfile $udebfile + echo $udebfile + else + echo $debfile + fi } [ -z "${OLD_VERSION:-}" ] && OLD_VERSION="$(get_version $DEB)" @@ -207,6 +221,7 @@ fi make_temp_dir cd "$TMPDIR" +DEB_TYPE=$(echo "$DEB"|sed 's/.*[.]//') extract_deb_file "$DEB" change_version "$NEW_VERSION" "${LOG:-Bumped version with $PROGNAME}" FILE="$(repack_file)" -- 1.7.10.4