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

Reply via email to