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 binutils 2.18.1~cvs20080103-7 The GNU assembler, linker and bina ii bzip2 1.0.5-1 high-quality block-sorting file co ii cpio 2.9-14 GNU cpio -- a program to manage ar ii dpkg 1.14.23 Debian package management system ii libtimedate-perl 1.1600-9 Time and date functions for Perl ii lzma 4.43-14 Compression method of 7z format in ii make 3.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-18 Larry Wall's Practical Extraction ii perl-modules 5.10.0-18 Core 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-1 The GNU C compiler Versions of packages dpkg-dev suggests: pn debian-keyring <none> (no description available) ii gnupg 1.4.9-3 GNU 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.