Package: dpkg-dev
Version: 1.14.5
Severity: wishlist
Tags: patch
Hi,
when backporting, the version number needs to be adapted to sort lower
than the current version, and ideally, to encode information on the
targetted distribution; however, the source version should point to the
actual source package used.
If multiple backports (for different target distributions) can be built
from the same source version, it would be preferrable to only keep one
copy of the sources, for that to work, the binary packages need to point
to an explicit source version number that cannot be deduced from the
changelog.
The attached patches add support for an environment variable
DEB_SOURCE_VERSION that specifies the version that should be encoded in
the binary package, and forbid "dpkg-source -b" to be run with this
variable set (that would be nonsensical).
Simon
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.22-1-amd64 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages dpkg-dev depends on:
ii binutils 2.18~cvs20070812-1 The GNU assembler, linker and bina
ii cpio 2.9-3 GNU cpio -- a program to manage ar
ii dpkg 1.14.5 package maintenance system for Deb
ii make 3.81-3 The GNU version of the "make" util
ii patch 2.5.9-4 Apply a diff file to an original
ii perl [perl5] 5.8.8-7 Larry Wall's Practical Extraction
ii perl-modules 5.8.8-7 Core Perl modules
Versions of packages dpkg-dev recommends:
ii bzip2 1.0.3-7 high-quality block-sorting file co
ii gcc [c-compiler] 4:4.1.2-3 The GNU C compiler
ii gcc-4.1 [c-compiler] 4.1.2-15 The GNU C compiler
-- no debconf information
--- dpkg-1.14.5/scripts/controllib.pl.orig 2007-08-29 18:48:01.955126739
+0200
+++ dpkg-1.14.5/scripts/controllib.pl 2007-08-29 18:53:56.411326046 +0200
@@ -543,14 +543,24 @@
$substvar{'Space'} = " ";
$substvar{'Tab'} = "\t";
- # XXX: Source-Version is now deprecated, remove in the future.
- $substvar{'Source-Version'}= $fi{"L Version"};
$substvar{'binary:Version'} = $fi{"L Version"};
- $substvar{'source:Version'} = $fi{"L Version"};
- $substvar{'source:Version'} =~ s/\+b[0-9]+$//;
- $substvar{'source:Upstream-Version'} = $fi{"L Version"};
+
+ if(defined($ENV{'DEB_SOURCE_VERSION'}))
+ {
+ $substvar{'source:Version'} = $ENV{'DEB_SOURCE_VERSION'};
+ }
+ else
+ {
+ $substvar{'source:Version'} = $substvar{'binary:Version'};
+ $substvar{'source:Version'} =~ s/\+b[0-9]+$//;
+ }
+
+ $substvar{'source:Upstream-Version'} = $substvar{'source:Version'};
$substvar{'source:Upstream-Version'} =~ s/-[^-]*$//;
+ # XXX: Source-Version is now deprecated, remove in the future.
+ $substvar{'Source-Version'}= $substvar{'source:Version'};
+
# FIXME: this needs all progs using controllib to set $version as 'our'.
# We expect the calling program to set $version.
$substvar{"dpkg:Version"} = $version;
--- dpkg-1.14.5/scripts/dpkg-source.pl.orig 2007-08-29 19:29:53.806268977
+0200
+++ dpkg-1.14.5/scripts/dpkg-source.pl 2007-08-29 19:29:10.683811568 +0200
@@ -210,6 +210,11 @@
if ($opmode eq 'build') {
+ if(defined($ENV{'DEB_SOURCE_VERSION'}))
+ {
+ &error(_g("DEB_SOURCE_VERSION cannot be used when building source
packages"));
+ }
+
$sourcestyle =~ y/X/A/;
$sourcestyle =~ m/[akpursnAKPUR]/ ||
&usageerr(sprintf(_g("source handling style -s%s not allowed with
-b"), $sourcestyle));