[SCM] Debian Qt/KDE packaging tools branch, master, updated. debian/0.6.0

Modestas Vainius modax at alioth.debian.org
Mon Feb 1 18:14:16 UTC 2010


The following commit has been merged in the master branch:
commit 75024910f7872c36658771f5225e6b3851875e24
Author: Modestas Vainius <modestas at vainius.eu>
Date:   Mon Feb 1 19:47:58 2010 +0200

    pkgkde-gensymbols: verify dpkg version before doing injection hack.
---
 symbolshelper/pkgkde-gensymbols |   57 ++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 16 deletions(-)

diff --git a/symbolshelper/pkgkde-gensymbols b/symbolshelper/pkgkde-gensymbols
index 1c9125b..a48461b 100755
--- a/symbolshelper/pkgkde-gensymbols
+++ b/symbolshelper/pkgkde-gensymbols
@@ -18,6 +18,8 @@
 use strict;
 use warnings;
 
+use Dpkg;
+
 use constant DATADIR => '/usr/share/pkg-kde-tools';
 
 sub find_dpkg_gensymbols {
@@ -47,25 +49,48 @@ sub new_symbolfile_load {
     return &$old_symbolfile_load($self, $file, $seen, $obj_ref, $base_symbol);
 }
 
-# Finally, run stock dpkg-gensymbols
-my ($exe, $dir) = find_dpkg_gensymbols();
-
-if (defined $exe) {
-    if (defined $dir && $dir eq DATADIR) {
-	unshift @INC, DATADIR;
+sub check_dpkg_version {
+    my @need = @_;
+    my @ver = split(/[.]/, $Dpkg::version);
+    my $ok = 0;
+    for (my $i = 0; ! $ok && $i < @need && $i < @ver; $i++) {
+	if ($ver[$i] > $need[$i]) {
+	    $ok = 1;
+	} elsif ($ver[$i] == $need[$i]) {
+	    if ($i == $#need) {
+		$ok = 1;
+	    }
+	} else {
+	    # Less
+	    last;
+	}
     }
+    return $ok;
+}
 
-    eval "use Dpkg::Shlibs::SymbolFile";
-    eval "use Debian::PkgKde::SymbolsHelper::Symbol";
+if (check_dpkg_version(1, 15, 5)) {
+    # Finally, run stock dpkg-gensymbols
+    my ($exe, $dir) = find_dpkg_gensymbols();
 
-    # Replace Dpkg::Shlibs::SymbolFile::load with a custom version
-    # which uses Debian::PkgKde::SymbolsHelper::Symbol rather than
-    # Dpkg::Shlibs::Symbol
-    $old_symbolfile_load = *Dpkg::Shlibs::SymbolFile::load;
-    *Dpkg::Shlibs::SymbolFile::load = *new_symbolfile_load;
+    if (defined $exe) {
+	if (defined $dir && $dir eq DATADIR) {
+	    unshift @INC, DATADIR;
+	}
 
-    do "$exe";
+	eval "use Dpkg::Shlibs::SymbolFile";
+	eval "use Debian::PkgKde::SymbolsHelper::Symbol";
+
+	# Replace Dpkg::Shlibs::SymbolFile::load with a custom version
+	# which uses Debian::PkgKde::SymbolsHelper::Symbol rather than
+	# Dpkg::Shlibs::Symbol
+	$old_symbolfile_load = *Dpkg::Shlibs::SymbolFile::load;
+	*Dpkg::Shlibs::SymbolFile::load = *new_symbolfile_load;
+
+	do "$exe";
+    } else {
+	print STDERR "pkgkde-gensymbols: unable to determine execution context.", "\n";
+	exit 1;
+    }
 } else {
-    print STDERR "pkgkde-gensymbols: unable to determine execution context.", "\n";
-    exit 1;
+    exec '/usr/bin/dpkg-gensymbols', @ARGV;
 }

-- 
Debian Qt/KDE packaging tools



More information about the pkg-kde-commits mailing list