Package: dpkg-dev
Version: 1.14.23
Severity: important
File: /usr/bin/dpkg-shlibdeps
Tags: patch
Hello,
when Build-Depends-Package is set in the symbols file, dpkg-shlibdeps always
combines main and all alternative dependency templates into resulting shlibs
substvar. It is done regardless which symbols with what dependency templates
actually matched. I'm marking this bug as important as it violates
deb-symbols(5) specification and causes unexpected end result. The fix
(attached) is very trivial 3-line fix though, it could even go to lenny.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.27-1-amd64 (SMP w/1 CPU core)
Locale: LANG=lt_LT.UTF-8, LC_CTYPE=lt_LT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages dpkg-dev depends on:
ii binutils2.18.1~cvs20080103-7 The GNU assembler, linker and bina
ii bzip2 1.0.5-1 high-quality block-sorting file co
ii cpio2.9-14 GNU cpio -- a program to manage ar
ii dpkg1.14.23 Debian package management system
ii libtimedate-perl1.1600-9 Time and date functions for Perl
ii lzma4.43-14 Compression method of 7z format in
ii make3.81-5 The GNU version of the make util
ii patch 2.5.9-5 Apply a diff file to an original
ii perl [perl5]5.10.0-18Larry Wall's Practical Extraction
ii perl-modules5.10.0-18Core Perl modules
Versions of packages dpkg-dev recommends:
ii build-essential 11.4 Informational list of build-essent
ii gcc [c-compiler] 4:4.3.2-2 The GNU C compiler
ii gcc-4.1 [c-compiler] 4.1.2-23 The GNU C compiler
ii gcc-4.3 [c-compiler] 4.3.2-1The GNU C compiler
Versions of packages dpkg-dev suggests:
pn debian-keyringnone (no description available)
ii gnupg 1.4.9-3GNU privacy guard - a free PGP rep
-- no debconf information
From 7a158372f1d19d5414525b72af2346f0a8d605ee Mon Sep 17 00:00:00 2001
From: Modestas Vainius [EMAIL PROTECTED]
Date: Sun, 30 Nov 2008 11:57:59 +0200
Subject: [PATCH] shlibdeps: do not combine all dependency templates when
Build-Depends-Package is set.
Do not combine dependencies from main and all alternative templates
when Build-Depends-Package is set in the symbols file. The correct
behaviour is to update only existing dependencies with proper minver.
Signed-off-by: Modestas Vainius [EMAIL PROTECTED]
---
scripts/dpkg-shlibdeps.pl |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index 82a9a01..e9e7a75 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -328,7 +328,7 @@ foreach my $file (keys %exec) {
my $minver = get_min_version_from_deps($build_deps, $dev_pkg);
if (defined $minver) {
foreach my $dep ($symfile-get_dependencies($soname)) {
- update_dependency_version($dep, $minver);
+ update_dependency_version($dep, $minver, 1);
}
}
}
@@ -526,7 +526,7 @@ sub get_min_version_from_deps {
}
sub update_dependency_version {
-my ($dep, $minver) = @_;
+my ($dep, $minver, $existing_only) = @_;
return if not defined($minver);
foreach my $subdep (split /\s*,\s*/, $dep) {
if (exists $dependencies{$cur_field}{$subdep} and
@@ -538,7 +538,7 @@ sub update_dependency_version {
{
$dependencies{$cur_field}{$subdep} = $minver;
}
- } else {
+ } elsif (!$existing_only) {
$dependencies{$cur_field}{$subdep} = $minver;
}
}
--
1.5.6.5
signature.asc
Description: This is a digitally signed message part.