[SCM] Debian Qt/KDE packaging tools branch, master, updated. debian/0.6.1
Modestas Vainius
modax at alioth.debian.org
Sun Feb 7 08:22:31 UTC 2010
The following commit has been merged in the master branch:
commit 3f356a9f9f04dea8582df9e458d0074ba414d6d5
Author: Modestas Vainius <modestas at vainius.eu>
Date: Thu Feb 4 01:21:41 2010 +0200
Port SymbolsHelper to newer Dpkg::Shlibs::* API.
---
.../Debian/PkgKde/SymbolsHelper/SymbolFile.pm | 86 ++++---------------
.../PkgKde/SymbolsHelper/SymbolFileCollection.pm | 29 +++----
symbolshelper/pkgkde-symbolshelper | 20 ++---
3 files changed, 37 insertions(+), 98 deletions(-)
diff --git a/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFile.pm b/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFile.pm
index 6d92bdc..fa7d8d0 100644
--- a/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFile.pm
+++ b/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFile.pm
@@ -49,12 +49,6 @@ sub load {
return $self->SUPER::load($file, $seen, $obj_ref, $base_symbol);
}
-# TODO: Add to Dpkg::Shlibs::SymbolFile
-sub get_arch {
- my $self = shift;
- return $self->{arch};
-}
-
sub set_confirmed {
my ($self, $version, @arches) = @_;
$self->{h_confirmed_version} = $version;
@@ -73,42 +67,20 @@ sub get_confirmed_arches {
}
sub create_symbol {
- my ($self, $spec, $symbol) = @_;
- $symbol = Debian::PkgKde::SymbolsHelper::Symbol->new() unless defined $symbol;
- return $self->SUPER::create_symbol($spec, $symbol);
+ my ($self, $spec, %opts) = @_;
+ $opts{base} = Debian::PkgKde::SymbolsHelper::Symbol->new()
+ unless exists $opts{base};
+ return $self->SUPER::create_symbol($spec, %opts);
}
sub fork_symbol {
my ($self, $sym, $arch) = @_;
$arch = $self->get_arch() unless $arch;
- my $nsym = $sym->dclone(symbol => $sym->get_symboltempl());
+ my $nsym = $sym->clone(symbol => $sym->get_symboltempl());
$nsym->initialize(arch => $arch);
return $nsym;
}
-# Get symbol object reference either by symbol *name* or by reference object.
-sub get_symbol_object {
- my ($self, $refsym, $soname) = @_;
- my $name = (ref $refsym) ? $refsym->get_symbolname() : $refsym;
- my $sonameobj = (ref $soname) ? $soname : $self->{objects}{$soname};
-
- if (exists $sonameobj->{syms}{$name}) {
- return $sonameobj->{syms}{$name};
- } else {
- if (!ref($refsym)) {
- # If by name, we need to create a dummy ref symbol. Append a dummy
- # version to the name to make it valid spec.
- $refsym = $self->create_symbol($refsym.' 1');
- }
- if (defined $refsym) {
- return $self->lookup_pattern($refsym, [ $sonameobj ], 1);
- } else {
- internerr("invalid symbol name (%s) supplied to get_symbol_object()",
- $name);
- }
- }
-}
-
sub dump {
my ($self, $fh, %opts) = @_;
$opts{with_confirmed} = 1 unless exists $opts{with_confirmed};
@@ -123,25 +95,6 @@ sub dump {
return $self->SUPER::dump($fh, %opts);
}
-sub get_symbols {
- my ($self, $soname) = @_;
- if (defined $soname) {
- my $obj = (ref $soname) ? $soname : $self->{objects}{$soname};
- return values %{$obj->{syms}};
- } else {
- my @syms;
- foreach my $soname (keys %{$self->{objects}}) {
- push @syms, $self->get_symbols($soname);
- }
- return @syms;
- }
-}
-
-sub get_sonames {
- my $self = shift;
- return keys %{$self->{objects}};
-}
-
sub _resync_symbol_cache {
my ($self, $soname, $cache) = @_;
my %rename;
@@ -160,13 +113,13 @@ sub _resync_symbol_cache {
$rename{$newname}->get_symbolspec(1),
$e->get_symbolspec(1));
}
- $self->add_symbol($soname, $rename{$newname});
+ $self->add_symbol($rename{$newname}, $soname);
}
}
sub resync_soname_symbol_caches {
my ($self, $soname) = @_;
- my $obj = (ref $soname) ? $soname : $self->{objects}{$soname};
+ my $obj = $self->get_object($soname);
# We need this to avoid removal of symbols which names clash when renaming
$self->_resync_symbol_cache($obj, $obj->{syms});
@@ -179,7 +132,7 @@ sub resync_soname_symbol_caches {
sub resync_soname_with_h_name {
my ($self, $soname) = @_;
- my $obj = (ref $soname) ? $soname : $self->{objects}{$soname};
+ my $obj = $self->get_object($soname);
sub _resync_with_h_name {
my $cache = shift;
@@ -309,10 +262,10 @@ sub fork_empty {
my $symfile = _dclone_exclude($self, qw(objects));
$symfile->clear();
- foreach my $soname (keys %{$self->{objects}}) {
+ foreach my $soname ($self->get_sonames()) {
$symfile->create_object($soname);
- my $obj = $symfile->{objects}{$soname};
- my $cloned = _dclone_exclude($self->{objects}{$soname},
+ my $obj = $symfile->get_object($soname);
+ my $cloned = _dclone_exclude($self->get_object($soname),
qw(syms patterns minver_cache));
$obj->{$_} = $cloned->{$_} foreach keys %$cloned;
}
@@ -335,12 +288,12 @@ sub fork {
# Fork symbols
foreach my $soname ($self->get_sonames()) {
foreach my $sym ($self->get_symbols($soname),
- $self->get_soname_patterns($soname))
+ $self->get_patterns($soname))
{
foreach my $symfile (@symfiles) {
my $nsym = $self->fork_symbol($sym, $symfile->get_arch());
$nsym->{h_origin_symbol} = $sym;
- $symfile->add_symbol($soname, $nsym);
+ $symfile->add_symbol($nsym, $soname);
}
}
}
@@ -352,15 +305,12 @@ sub get_highest_version {
my $self = shift;
my $maxver;
- foreach my $soname ($self->get_sonames()) {
- foreach my $sym ($self->get_symbols($soname),
- $self->get_soname_patterns($soname))
+ foreach my $sym ($self->get_symbols(),
+ $self->get_patterns()) {
+ if (!$sym->{deprecated} &&
+ (!defined $maxver || version_compare($sym->{minver}, $maxver) > 0))
{
- if (!$sym->{deprecated} &&
- (!defined $maxver || version_compare($sym->{minver}, $maxver) > 0))
- {
- $maxver = $sym->{minver};
- }
+ $maxver = $sym->{minver};
}
}
diff --git a/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFileCollection.pm b/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFileCollection.pm
index 8706d48..94e6e96 100644
--- a/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFileCollection.pm
+++ b/symbolshelper/Debian/PkgKde/SymbolsHelper/SymbolFileCollection.pm
@@ -237,13 +237,9 @@ sub create_template {
my @new = $nsymfile->get_new_symbols($osymfile, with_optional => 1);
foreach my $n (@new) {
my $soname = $n->{soname};
- # Get real references
- my $nsym = $nsymfile->get_symbol_object($n, $soname);
- my $osym = $osymfile->get_symbol_object($n, $soname);
-
- unless (defined $nsym) {
- internerr("get_symbol_object() was unable to lookup new symbol");
- }
+ my $nsym = $n->{symbol};
+ # Get a reference in the orig symfile if any
+ my $osym = $osymfile->get_symbol_object($nsym, $soname);
my $group = $self->select_group($nsym, $soname, $arch, \%gsubsts, \%gother);
@@ -261,10 +257,7 @@ sub create_template {
my @lost = $nsymfile->get_lost_symbols($osymfile, with_optional => 1);
foreach my $l (@lost) {
my $soname = $l->{soname};
- my $sym = $osymfile->get_symbol_object($l, $soname);
- unless (defined $sym) {
- internerr("get_symbol_object() was unable to lookup lost symbol");
- }
+ my $sym = $l->{symbol};
my $origin = $sym->{h_origin_symbol};
my $group = $self->select_group($sym, $soname, $arch, \%gsubsts, \%gother);
@@ -290,10 +283,10 @@ sub create_template {
# Readd all untouched symbols in $orig back to the $template
foreach my $soname ($orig->get_sonames()) {
foreach my $sym ($orig->get_symbols($soname),
- $orig->get_soname_patterns($soname))
+ $orig->get_patterns($soname))
{
if (!exists $sym->{h_touched}) {
- $template->add_symbol($soname, $sym);
+ $template->add_symbol($sym, $soname);
}
}
}
@@ -310,7 +303,7 @@ sub create_template {
# Take care of ambiguous groups
if ($group->is_ambiguous()) {
if (my @byname = $self->get_symbols_regrouped_by_name($group)) {
- $template->add_symbol($soname, $_) foreach @byname;
+ $template->add_symbol($_, $soname) foreach @byname;
info("ambiguous symbols for subst detection (%s). Processed by name:\n" .
" %s", "$groupname/$soname",
join("\n ", map { $_->get_symbolspec(1) } @byname));
@@ -336,14 +329,14 @@ sub create_template {
if ($substs_ok) {
# Finally add to template
- $template->add_symbol($soname, $sym);
+ $template->add_symbol($sym, $soname);
} else {
# Substitutions do not verify. Regroup by name what remains
foreach my $sym ($group->get_symbols()) {
$sym->resync_name_with_h_name();
}
if (my @byname = $self->get_symbols_regrouped_by_name($group)) {
- $template->add_symbol($soname, $_) foreach @byname;
+ $template->add_symbol($_, $soname) foreach @byname;
info("possible incomplete subst detection (%s). Processed by name:\n" .
" %s", "$groupname/$soname",
join("\n ", map { $_->get_symbolspec(1) } @byname));
@@ -360,7 +353,7 @@ sub create_template {
foreach my $groupname (keys %$groups) {
my $group = $groups->{$groupname};
if (my $sym = $group->calc_properties($self)) {
- $template->add_symbol($soname, $sym);
+ $template->add_symbol($sym, $soname);
}
}
}
@@ -411,7 +404,7 @@ sub get_result {
sub init_result {
my ($self, $based_on_arch) = @_;
- $self->{result} = $self->get_symbol($based_on_arch)->dclone();
+ $self->{result} = $self->get_symbol($based_on_arch)->clone();
return $self->{result};
}
diff --git a/symbolshelper/pkgkde-symbolshelper b/symbolshelper/pkgkde-symbolshelper
index e02693d..aaf6281 100755
--- a/symbolshelper/pkgkde-symbolshelper
+++ b/symbolshelper/pkgkde-symbolshelper
@@ -246,12 +246,10 @@ sub subcommand_create {
$template->set_confirmed($symfiles->get_latest_version(),
$symfiles->get_latest_arches());
- foreach my $soname ($template->get_sonames()) {
- foreach my $sym ($template->get_symbols($soname),
- $template->get_soname_patterns($soname))
- {
- tweak_symbol($sym);
- }
+ foreach my $sym ($template->get_symbols(),
+ $template->get_patterns())
+ {
+ tweak_symbol($sym);
}
return out_symfile($template);
@@ -407,7 +405,7 @@ sub subcommand_patch {
push @changes_arch, $soname;
foreach my $sym (sort { $a->get_symboltempl() cmp $b->get_symboltempl() }
$template->get_symbols($soname),
- $template->get_soname_patterns($soname))
+ $template->get_patterns($soname))
{
my $osym = $symfile->get_symbol_object($sym, $soname);
if (defined $osym) {
@@ -534,11 +532,9 @@ sub subcommand_rewrite {
);
if ($opt_convert) {
- foreach my $soname ($symfile->get_sonames()) {
- foreach my $sym ($symfile->get_symbols($soname)) {
- $sym->upgrade_virtual_table_symbol($opt_arch);
- tweak_symbol($sym);
- }
+ foreach my $sym ($symfile->get_symbols()) {
+ $sym->upgrade_virtual_table_symbol($opt_arch);
+ tweak_symbol($sym);
}
}
--
Debian Qt/KDE packaging tools
More information about the pkg-kde-commits
mailing list