[SCM] Debian Qt/KDE packaging tools branch, improved-gensymbols, updated. debian/0.5.3-32-g51b0e54

Modestas Vainius modax at alioth.debian.org
Sun Jan 17 22:16:59 UTC 2010


The following commit has been merged in the improved-gensymbols branch:
commit c88cb2ba6c6eb9128d7f6f7a3abbd260932370d3
Author: Modestas Vainius <modestas at vainius.eu>
Date:   Sun Jan 17 22:50:28 2010 +0200

    Fix loading of pkgkde-gensymbols and pkgkde-symbolshelper when they are installled.
---
 symbolshelper/pkgkde-gensymbols    |   39 ++++++++++++++++++-----------------
 symbolshelper/pkgkde-symbolshelper |   26 +++++++++++++++++++++--
 2 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/symbolshelper/pkgkde-gensymbols b/symbolshelper/pkgkde-gensymbols
index 9d64c4d..467b534 100755
--- a/symbolshelper/pkgkde-gensymbols
+++ b/symbolshelper/pkgkde-gensymbols
@@ -18,9 +18,6 @@
 use strict;
 use warnings;
 
-use Dpkg::Shlibs::SymbolFile;
-use Debian::PkgKde::SymbolsHelper::Symbol;
-
 use constant DATADIR => '/usr/share/pkg-kde-tools';
 
 sub find_dpkg_gensymbols {
@@ -38,31 +35,35 @@ sub find_dpkg_gensymbols {
     }
 
     if (-f "$dir/dpkg-gensymbols.pl") {
-	return ("$dir/dpkg-gensymbols.pl",$dir);
+	return ("$dir/dpkg-gensymbols.pl", $dir);
     }
     return (undef, undef);
 }
 
-# Replace Dpkg::Shlibs::SymbolFile::load with a custom version
-# which uses Debian::PkgKde::SymbolsHelper::Symbol rather than
-# Dpkg::Shlibs::Symbol
-my $old_symbolfile_load = *Dpkg::Shlibs::SymbolFile::load;
-sub new_symbolfile_load {
-    # Use Debian::PkgKde::SymbolsHelper::Symbol as base symbol
-    my ($self, $file, $seen, $obj_ref, $base_symbol) = @_;
-    unless (defined $base_symbol) {
-	$base_symbol = 'Debian::PkgKde::SymbolsHelper::Symbol';
-    }
-    return &$old_symbolfile_load($self, $file, $seen, $obj_ref, $base_symbol);
-}
-*Dpkg::Shlibs::SymbolFile::load = *new_symbolfile_load;
-
 # Finally, run stock dpkg-gensymbols
 my ($exe, $dir) = find_dpkg_gensymbols();
 
 if (defined $exe) {
     unshift @INC, $dir;
-    do "$dir/dpkg-gensymbols.pl";
+
+    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
+    my $old_symbolfile_load = *Dpkg::Shlibs::SymbolFile::load;
+    sub new_symbolfile_load {
+	# Use Debian::PkgKde::SymbolsHelper::Symbol as base symbol
+	my ($self, $file, $seen, $obj_ref, $base_symbol) = @_;
+	unless (defined $base_symbol) {
+	    $base_symbol = 'Debian::PkgKde::SymbolsHelper::Symbol';
+	}
+	return &$old_symbolfile_load($self, $file, $seen, $obj_ref, $base_symbol);
+    }
+    *Dpkg::Shlibs::SymbolFile::load = *new_symbolfile_load;
+
+    do "$exe";
 } else {
     print STDERR "pkgkde-gensymbols: unable to determine execution context.", "\n";
     exit 1;
diff --git a/symbolshelper/pkgkde-symbolshelper b/symbolshelper/pkgkde-symbolshelper
index 4e1eb39..90ec81e 100755
--- a/symbolshelper/pkgkde-symbolshelper
+++ b/symbolshelper/pkgkde-symbolshelper
@@ -52,11 +52,31 @@ use warnings;
 use File::Spec;
 use Getopt::Long;
 
+use constant DATADIR => '/usr/share/pkg-kde-tools';
+
+# Setup environment
+my $datadir;
+if ($0 =~ m@^(.+)/[^/]+$@) {
+    $datadir = $1;
+    unless ($datadir && -f "$datadir/Dpkg/Shlibs/SymbolFile.pm") {
+	$datadir = undef;
+    }
+}
+unless ($datadir) {
+    $datadir = DATADIR;
+}
+unshift @INC, $datadir;
+
+sub _use {
+    my $module = shift;
+    eval "use $module";
+}
+
 use Dpkg::ErrorHandling;
 use Dpkg::Arch qw(get_host_arch get_valid_arches);
-use Debian::PkgKde::SymbolsHelper::SymbolFile;
-use Debian::PkgKde::SymbolsHelper::SymbolFileCollection;
-use Debian::PkgKde::SymbolsHelper::Patch;
+_use "Debian::PkgKde::SymbolsHelper::SymbolFile";
+_use "Debian::PkgKde::SymbolsHelper::SymbolFileCollection";
+_use "Debian::PkgKde::SymbolsHelper::Patch";
 
 ######## Option processing ##################
 my $opt_out;

-- 
Debian Qt/KDE packaging tools



More information about the pkg-kde-commits mailing list