[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