Bug#507346: /usr/bin/dpkg-shlibdeps: combines all dependency templates when Build-Depends-Package is set

2008-12-05 Thread Raphael Hertzog
On Sun, 30 Nov 2008, Modestas Vainius wrote:
 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.

Thanks for the patch and the bugreport. I committed it in the lenny
branch.

I also remember you started optimizing dpkg-shlibdeps's memory usage, but
I haven't seen any followup since my initial answer, are you still
interested in working on that?

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#507346: /usr/bin/dpkg-shlibdeps: combines all dependency templates when Build-Depends-Package is set

2008-11-30 Thread Modestas Vainius
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.