Package: devscripts
Version: 2.10.61
Severity: wishlist
Tags: patch
Please consider adding an option to update versioned dependencies to
match the new version in case the package depends on another package
with exactly the same version. It would be useful for preserving strict
versioned dependencies between binary packages generated from the same
source.
The attached patch adds such an option and accompanying documentation.
-- Package-specific info:
--- /etc/devscripts.conf ---
--- ~/.devscripts ---
Not present
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing'), (400, 'unstable'), (300, 'experimental')
Architecture: i386 (x86_64)
Kernel: Linux 2.6.32 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages devscripts depends on:
ii dpkg-dev 1.15.3.1 Debian package development tools
ii libc6 2.10.2-2 GNU C Library: Shared libraries
ii perl 5.10.1-8 Larry Wall's Practical Extraction
Versions of packages devscripts recommends:
ii at 3.1.12-1 Delayed job execution and batch pr
ii bsd-mailx [mailx] 8.1.2-0.20090911cvs-2 simple mail user agent
ii bzr 2.0.3-1 easy to use distributed version co
ii curl 7.19.7-1 Get a file from an HTTP, HTTPS or
ii cvs 1:1.12.13-12 Concurrent Versions System
ii dctrl-tools 2.14 Command-line tools to process Debi
ii debian-keyring [de 2009.11.04 GnuPG (and obsolete PGP) keys of D
pn dput | dupload <none> (no description available)
ii elinks [www-browse 0.12~pre5-1+b1 advanced text-mode WWW browser
ii epiphany-browser [ 2.29.3-1 Intuitive GNOME web browser
pn equivs <none> (no description available)
ii fakeroot 1.14.4-1 Gives a fake root environment
ii git-core 1:1.6.5-1 fast, scalable, distributed revisi
ii gnupg 1.4.10-2 GNU privacy guard - a free PGP rep
ii iceweasel [www-bro 3.5.6-1 lightweight web browser based on M
pn libauthen-sasl-per <none> (no description available)
pn libcrypt-ssleay-pe <none> (no description available)
ii libparse-debcontro 2.005-2 Easy OO parsing of Debian control-
pn libsoap-lite-perl <none> (no description available)
ii libterm-size-perl 0.2-4+b1 Perl extension for retrieving term
ii libtimedate-perl 1.1900-1 Time and date functions for Perl
ii liburi-perl 1.50-1 module to manipulate and access UR
ii libwww-perl 5.834-1 Perl HTTP/WWW client/server librar
pn libyaml-syck-perl <none> (no description available)
ii links [www-browser 2.2-1+b1 Web browser running in text mode
ii links2 [www-browse 2.2-1+b1 Web browser running in both graphi
ii lintian 2.2.18 Debian package checker
ii lsb-release 3.2-23 Linux Standard Base version report
ii lynx-cur [www-brow 2.8.8dev.2-1 Text-mode WWW Browser with NLS sup
ii lzma 4.43-14 Compression method of 7z format in
ii man-db 2.5.6-5 on-line manual pager
ii mercurial 1.4.1-1 scalable distributed version contr
ii openssh-client [ss 1:5.1p1-8 secure shell client, an rlogin/rsh
ii opera [www-browser 10.10.4742.gcc4.qt3 The Opera Web Browser
ii patch 2.6-2 Apply a diff file to an original
ii patchutils 0.3.1-2 Utilities to work with patches
ii sensible-utils 0.0.2 Utilities for sensible alternative
ii strace 4.5.19-1 A system call tracer
ii subversion 1.6.3dfsg-1 Advanced version control system
ii unzip 6.0-1 De-archiver for .zip files
ii w3m [www-browser] 0.5.2-2.1 WWW browsable pager with excellent
ii wdiff 0.5-19 Compares two files word by word
ii wget 1.12-1.1 retrieves files from the web
Versions of packages devscripts suggests:
ii build-essential 11.4 Informational list of build-essent
pn cvs-buildpackage <none> (no description available)
pn devscripts-el <none> (no description available)
ii gnuplot 4.2.6-1 A command-line driven interactive
ii libfile-desktopentry-perl 0.04-2 Perl module to handle freedesktop
pn libnet-smtp-ssl-perl <none> (no description available)
pn mutt <none> (no description available)
pn svn-buildpackage <none> (no description available)
ii w3m 0.5.2-2.1 WWW browsable pager with excellent
-- no debconf information
diff -ur devscripts-2.10.61/scripts/deb-reversion.dbk devscripts/scripts/deb-reversion.dbk
--- devscripts-2.10.61/scripts/deb-reversion.dbk 2010-01-03 04:20:42.000000000 +0100
+++ devscripts/scripts/deb-reversion.dbk 2010-01-12 18:44:23.618261523 +0100
@@ -166,6 +166,18 @@
</varlistentry>
<varlistentry>
+ <term><option>-d</option></term>
+ <term><option>--update-dependencies</option></term>
+ <listitem>
+ <para>
+ If the package depends on another package with exactly the
+ same version, update the dependency to match the new
+ version number.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><option>-s</option> <replaceable class="parameter">string</replaceable></term>
<term><option>--string</option> <replaceable class="parameter">string</replaceable></term>
<listitem>
@@ -277,7 +289,8 @@
it works fine in most cases, it may just not in yours. Especially,
please consider that it changes binary packages (only!) and hence can
break strict versioned dependencies between binary packages generated
- from the same source. </para>
+ from the same source (in which case <option>-d</option> may help).
+ </para>
<para>
You are using this tool at your own risk and I shall not shed a tear if
diff -ur devscripts-2.10.61/scripts/deb-reversion.sh devscripts/scripts/deb-reversion.sh
--- devscripts-2.10.61/scripts/deb-reversion.sh 2010-01-03 04:20:42.000000000 +0100
+++ devscripts/scripts/deb-reversion.sh 2010-01-12 18:19:54.628811670 +0100
@@ -39,6 +39,7 @@
-v ver|--new-version=ver & use this as new version number
-o old|--old-version=ver & calculate new version number based on this old one
-c|--calculate-only & only calculate (and print) the augmented version
+ -d|--update-dependencies & update strict versioned dependencies
-s str|--string=str & append this string instead of '$VERSTR' to
& calculate new version number
-k script|--hook=script & call this script before repacking
@@ -61,11 +62,12 @@
}
CURDIR="$(pwd)"
-SHORTOPTS=hVo:v:ck:Ds:b
-LONGOPTS=help,version,old-version:new-version:,calculate-only,hook:,debug,string:,force-bad-version
+SHORTOPTS=hVo:v:cdk:Ds:b
+LONGOPTS=help,version,old-version:new-version:,calculate-only,update-dependencies,hook:,debug,string:,force-bad-version
set -- $(getopt -s bash -o $SHORTOPTS -l $LONGOPTS --n $PROGNAME -- "$@")
CALCULATE=0
+DEPENDENCIES=0
DPKGDEB_DEBUG=
DEB=
DCH_OPTIONS=
@@ -83,6 +85,7 @@
-v|--new-version) OPT_STATE=SET_NEW_VERSION;;
-o|--old-version) OPT_STATE=SET_OLD_VERSION;;
-c|--calculate-only|--print-only) CALCULATE=1;;
+ -d|--update-dependencies) DEPENDENCIES=1;;
-s|--string) OPT_STATE=SET_STRING;;
-k|--hook) OPT_STATE=SET_HOOK;;
-D|--debug) DPKGDEB_DEBUG=--debug;;
@@ -181,6 +184,10 @@
call_hook
gzip -9 -c debian/changelog >| $LOGFILE
sed -i -e "s,^Version: .*,Version: $VERSION," DEBIAN/control
+ if [ $DEPENDENCIES -eq 1 ]; then
+ ESC_OLD_VERSION=$(echo "$OLD_VERSION" | sed -e 's,\.,\\&,g')
+ sed -i -e "/^Depends: / s,(= $ESC_OLD_VERSION),(= $VERSION),g" DEBIAN/control
+ fi
rm -rf debian
}