[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