[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