rev 12927 - in branches/kde4.2/packages/pkg-kde-tools/trunk: debian symbolshelper symbolshelper/Debian/PkgKde/SymHelper symbolshelper/Debian/PkgKde/SymHelper/Handler

Modestas Vainius modax-guest at alioth.debian.org
Sat Dec 13 00:04:19 UTC 2008


Author: modax-guest
Date: 2008-12-13 00:04:19 +0000 (Sat, 13 Dec 2008)
New Revision: 12927

Added:
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler.pm
Removed:
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/Base.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/qreal.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/size_t.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/ssize_t.pm
Modified:
   branches/kde4.2/packages/pkg-kde-tools/trunk/debian/changelog
   branches/kde4.2/packages/pkg-kde-tools/trunk/debian/rules
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/SimpleTypeDiff.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/VirtTable.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handlers.pm
   branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/pkgkde-symbolshelper
Log:
Some pkgkde-symbolshelper changes

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/debian/changelog
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/debian/changelog	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/debian/changelog	2008-12-13 00:04:19 UTC (rev 12927)
@@ -1,9 +1,15 @@
-pkg-kde-tools (0.3.1~pre1) UNRELEASED; urgency=low
+pkg-kde-tools (0.3.1~pre3) UNRELEASED; urgency=low
 
-  * Improve `pkgkde-symbolshelper patch` processing of patches which patch
-    multiple files. Use the first patch partion that applies properly.
+  * pkgkde-symbolshelper/patch: improve processing of patches which patch
+    multiple files. Use the first patch portion that applies properly.
+  * pkgkde-symbolshelper/patch: rename -p parameter to -d (diff), support -p
+    (package) option.
+  * pkgkde-symbolshelper: rework module stucture a bit, merge small handlers
+    into one file.
+  * debian/rules: disable .svn check. It is wrong and useless since does not
+    check the tarball itself but the directory the tarball gets built from.
 
- -- Modestas Vainius <modestas at vainius.eu>  Fri, 05 Dec 2008 02:46:09 +0200
+ -- Modestas Vainius <modestas at vainius.eu>  Sat, 13 Dec 2008 01:58:28 +0200
 
 pkg-kde-tools (0.3) experimental; urgency=low
 

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/debian/rules
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/debian/rules	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/debian/rules	2008-12-13 00:04:19 UTC (rev 12927)
@@ -18,9 +18,6 @@
 	dh_installdocs
 	dh_installexamples
 	dh_install
-	#make sure we didn't accidentally add svn files
-	#if triggered, please build source package with -I
-	test ! -e $(CURDIR)/debian/pkg-kde-tools/usr/share/pkg-kde-tools/makefiles/1/.svn/
 	dh_link
 	dh_perl
 	dh_strip

Deleted: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/Base.pm

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/SimpleTypeDiff.pm
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/SimpleTypeDiff.pm	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/SimpleTypeDiff.pm	2008-12-13 00:04:19 UTC (rev 12927)
@@ -1,12 +1,12 @@
 package Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff;
-our @ISA = qw( Debian::PkgKde::SymHelper::Handler::Base );
+our @ISA = qw( Debian::PkgKde::SymHelper::Handler );
 
 use strict;
 use warnings;
-use Debian::PkgKde::SymHelper::Handler::Base;
+use Debian::PkgKde::SymHelper::Handler;
 
 sub new {
-    return Debian::PkgKde::SymHelper::Handler::Base::new(@_);
+    return Debian::PkgKde::SymHelper::Handler::new(@_);
 }
 
 sub clean {
@@ -61,3 +61,74 @@
 }
 
 1;
+package Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::size_t;
+our @ISA = qw( Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff );
+
+use strict;
+use warnings;
+
+sub new {
+    my $self = Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::new(@_);
+    $self->{substvar} = "{size_t}";
+    $self->{main_type} = "j"; # unsigned int
+    $self->{type_re} = "[jm]";
+    return $self;
+}
+
+sub get_predef_arch_params {
+    my ($self, $arch) = @_;
+
+    # Mult should be 1 on 32bit arches and 2 on 64bit arches and so on
+    my $params = { type => "j" }; # unsigned int
+    $params->{type} = "m" if ($arch =~ /amd64|ia64|alpha|s390/); # unsigned long
+    return $params;
+}
+
+package Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::ssize_t;
+our @ISA = qw( Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff );
+
+use strict;
+use warnings;
+
+sub new {
+    my $self = Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::new(@_);
+    $self->{substvar} = "{ssize_t}";
+    $self->{main_type} = "i"; # unsigned int
+    $self->{type_re} = "[il]";
+    return $self;
+}
+
+sub get_predef_arch_params {
+    my ($self, $arch) = @_;
+
+    # Mult should be 1 on 32bit arches and 2 on 64bit arches and so on
+    my $params = { type => "i" }; # int
+    $params->{type} = "l" if ($arch =~ /amd64|ia64|alpha|s390/); # unsigned long
+    return $params;
+}
+
+1;
+package Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::qreal;
+our @ISA = qw( Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff );
+
+use strict;
+use warnings;
+
+sub new {
+    my $self = Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::new(@_);
+    $self->{substvar} = "{qreal}";
+    $self->{main_type} = "d"; # unsigned int
+    $self->{type_re} = "[fd]";
+    return $self;
+}
+
+sub get_predef_arch_params {
+    my ($self, $arch) = @_;
+
+    # Mult should be 1 on 32bit arches and 2 on 64bit arches and so on
+    my $params = { type => "d" }; # int
+    $params->{type} = "f" if ($arch =~ /arm/); # unsigned long
+    return $params;
+}
+
+1;

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/VirtTable.pm
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/VirtTable.pm	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/VirtTable.pm	2008-12-13 00:04:19 UTC (rev 12927)
@@ -1,8 +1,9 @@
 package Debian::PkgKde::SymHelper::Handler::VirtTable;
-our @ISA = qw( Debian::PkgKde::SymHelper::Handler::Base );
+our @ISA = qw( Debian::PkgKde::SymHelper::Handler );
 
 use Debian::PkgKde::SymHelper::CompileTest;
 use Debian::PkgKde::SymHelper qw(error);
+use Debian::PkgKde::SymHelper::Handler;
 
 sub get_host_arch_params {
     my $params = {};

Deleted: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/qreal.pm

Deleted: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/size_t.pm

Deleted: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/ssize_t.pm

Copied: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler.pm (from rev 12920, branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler/Base.pm)
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler.pm	                        (rev 0)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler.pm	2008-12-13 00:04:19 UTC (rev 12927)
@@ -0,0 +1,86 @@
+package Debian::PkgKde::SymHelper::Handler;
+
+use strict;
+use warnings;
+use Debian::PkgKde::SymHelper qw(error warning);
+
+sub new {
+    my ($cls, $arch) = @_;
+    my $self = bless {
+        arch => undef,
+    }, $cls;
+    $self->set_arch($arch);
+    return $self;
+}
+
+sub get_host_arch {
+    my $arch = `dpkg-architecture -qDEB_HOST_ARCH_CPU`;
+    chomp $arch;
+    return $arch;
+}
+
+sub set_arch {
+    my ($self, $arch) = @_;
+    $arch = get_host_arch() unless defined $arch;
+
+    error("Unknown architecture: $arch") unless grep($arch, @Debian::PkgKde::SymHelper::ARCHES);
+
+    my $arch_params;
+    $self->{"${arch}_params"} = $arch_params
+        if ($arch_params = $self->get_predef_arch_params($arch));
+    $self->{arch} = $arch;
+}
+
+sub _preload_arch_params {
+    my $self = shift;
+    foreach my $arch (@_) {
+        $self->{"${arch}_params"} = $self->get_predef_arch_params($arch);
+    }
+}
+
+sub get_arch_param {
+    my ($self, $name, $arch) = @_;
+    $arch = $self->{arch} unless defined $arch;
+
+    $self->_preload_arch_params($arch) unless (exists $self->{"${arch}_params"});
+    return $self->{"${arch}_params"}{$name};
+}
+
+sub dump_arch_params {
+    my ($self, $arch) = @_;
+    $arch = $self->{arch} unless defined $arch;
+
+    if (exists $self->{"${arch}_params"}) {
+        print "Arch: $arch", "\n";
+        foreach my $key (keys %{$self->{"${arch}_params"}}) {
+           print "$key: ", $self->get_arch_param($key, $arch), "\n";
+        }
+    }
+}
+
+sub get_host_arch_params {
+    my $self = shift;
+    return undef;
+}
+
+sub get_predef_arch_params {
+    my ($self, $arch) = @_;
+    return undef;
+}
+
+sub clean {
+    my ($self, $sym) = @_;
+    return $sym;
+}
+
+sub detect {
+    my ($self, $symversions) = @_;
+    return undef;
+}
+
+sub replace {
+    my ($self, $substvar, $sym) = @_;
+    return undef;
+}
+
+1;


Property changes on: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handler.pm
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handlers.pm
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handlers.pm	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/Debian/PkgKde/SymHelper/Handlers.pm	2008-12-13 00:04:19 UTC (rev 12927)
@@ -4,9 +4,7 @@
 use warnings;
 use File::Temp qw(tempfile);
 use Debian::PkgKde::SymHelper::Handler::VirtTable;
-use Debian::PkgKde::SymHelper::Handler::size_t;
-use Debian::PkgKde::SymHelper::Handler::ssize_t;
-use Debian::PkgKde::SymHelper::Handler::qreal;
+use Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff;
 use Debian::PkgKde::SymHelper::Symbol;
 use Debian::PkgKde::SymHelper::Symbol2;
 use Debian::PkgKde::SymHelper qw(info error warning);
@@ -17,9 +15,9 @@
         new Debian::PkgKde::SymHelper::Handler::VirtTable,
     );
     my @multiple_substitution = (
-        new Debian::PkgKde::SymHelper::Handler::size_t,
-        new Debian::PkgKde::SymHelper::Handler::ssize_t,
-        new Debian::PkgKde::SymHelper::Handler::qreal,
+        new Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::size_t,
+        new Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::ssize_t,
+        new Debian::PkgKde::SymHelper::Handler::SimpleTypeDiff::qreal,
     );
     my @substitution = (
         @standalone_substitution,
@@ -48,7 +46,7 @@
 
 sub add_symbol_file {
     my ($self, $symfile, $arch) = @_;
-    $arch = Debian::PkgKde::SymHelper::Handler::Base::get_host_arch() unless (defined $arch);
+    $arch = Debian::PkgKde::SymHelper::Handler::get_host_arch() unless (defined $arch);
 
     $self->{symfiles}{$arch} = $symfile;
     $self->{main_arch} = $arch unless ($self->{main_arch});
@@ -61,7 +59,7 @@
 
 sub set_main_arch {
     my ($self, $arch) = @_;
-    $arch = Debian::PkgKde::SymHelper::Handler::Base::get_host_arch() unless defined $arch;
+    $arch = Debian::PkgKde::SymHelper::Handler::get_host_arch() unless defined $arch;
     $self->{main_arch} = $arch if ($self->get_symfile($arch));
 }
 
@@ -390,14 +388,14 @@
         # Process lost symbols
         $insymfile->merge_lost_symbols_to_template($archsymfile, $newsymfile);
 
-        # Now process new symbols. We need to a create template from them
+        # Now process new symbols. We need to create a template from them
         if (my $dummysymfile = $newsymfile->get_new_symbols_as_symbfile($archsymfile)) {
-            $dummysymfile->dump(*STDOUT);
             $self->add_symbol_file($dummysymfile, $arch);
             $self->preprocess();
 
             # Handle min version
             $dummysymfile->handle_min_version($newminver);
+            $dummysymfile->dump(*STDOUT);
 
             # Create a symbols template for our dummy file
             $dummysymfile = $self->create_template_standalone();

Modified: branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/pkgkde-symbolshelper
===================================================================
--- branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/pkgkde-symbolshelper	2008-12-13 00:01:47 UTC (rev 12926)
+++ branches/kde4.2/packages/pkg-kde-tools/trunk/symbolshelper/pkgkde-symbolshelper	2008-12-13 00:04:19 UTC (rev 12927)
@@ -53,7 +53,7 @@
 use Getopt::Long;
 
 use Debian::PkgKde::SymHelper qw(info error warning);
-use Debian::PkgKde::SymHelper::Handler::Base;
+use Debian::PkgKde::SymHelper::Handler;
 use Debian::PkgKde::SymHelper::SymbFile;
 use Debian::PkgKde::SymHelper::Handlers;
 
@@ -62,7 +62,8 @@
 ######## Option processing ##################
 my $opt_out;
 my $opt_in;
-my $opt_arch = Debian::PkgKde::SymHelper::Handler::Base::get_host_arch();
+my $opt_package;
+my $opt_arch = Debian::PkgKde::SymHelper::Handler::get_host_arch();
 my $opt_version;
 
 sub verify_opt_arch {
@@ -86,6 +87,7 @@
     map { $args{$_} = 1 } split(//, $args);
     $res{"output|o=s"} = \$opt_out if ($args{o});
     $res{"input|i=s"} = \&verify_opt_in if ($args{i});
+    $res{"package|p=s"} = \$opt_package if ($args{p});
     $res{"architecture|a=s"} = \&verify_opt_arch if ($args{a});
     $res{"version|v:s"} = \$opt_version if ($args{v});
 
@@ -94,13 +96,16 @@
 
 sub check_mandatory_options {
     my $args = shift;
+    my $msg = shift;
     my %args;
-
+    
+    $msg = "" if (!defined $msg);
     map { $args{$_} = 1 } split(//, $args);
-    error("input file option (-i) is mandatory") if (!$opt_in && $args{i});
-    error("output file option (-o) is mandatory") if (!$opt_out && $args{o});
-    error("architecture option (-a) is mandatory") if (!$opt_arch && $args{a});
-    error("version option (-v) is mandatory") if (!$opt_version && $args{v});
+    error("input file option (-i) is mandatory $msg") if (!$opt_in && $args{i});
+    error("output file option (-o) is mandatory $msg") if (!$opt_out && $args{o});
+    error("package name option (-p) is mandatory $msg") if (!$opt_package && $args{p});
+    error("architecture option (-a) is mandatory $msg") if (!$opt_arch && $args{a});
+    error("version option (-v) is mandatory $msg") if (!$opt_version && $args{v});
 
     while (@_) {
         my $val = shift;
@@ -127,13 +132,14 @@
 
 sub out_symfile {
     my $symfile = shift;
-    return unless $symfile;
+    return 1 unless $symfile;
 
     if ($opt_out) {
         $symfile->save($opt_out, 2);
     } else {
         $symfile->dump(*STDOUT, 2);
     }
+    return 0;
 }
 
 sub print_symbol_list($$) {
@@ -181,7 +187,7 @@
                 $template = $handlers->create_template();
             }
             $template->handle_min_version($opt_version, 1);
-            out_symfile($template);
+            return out_symfile($template);
         } else {
             error("no properly named symbol files found in $opt_dir");
         }
@@ -191,46 +197,48 @@
 }
 
 sub subcommand_symbolfile {
-    my $opt_package;
     my %opts = (
-        get_common_options("oia"),
-        "package|p=s" => \$opt_package,
+        get_common_options("oipa"),
     );
     if (GetOptions(%opts)) {
+        check_mandatory_options("i", "when package (-p) is not specified") unless ($opt_package);
         unless ($opt_in) {
             $opt_in = "debian/$opt_package.symbols.in";
             error("symbol template file '$opt_in' was not found for package '$opt_package'") unless (-r $opt_in);
         }
-        out_symfile($handlers->substitute($opt_in, $opt_arch));
-        return 0;
+        return out_symfile($handlers->substitute($opt_in, $opt_arch));
     }
     return 1;
 }
 
 sub subcommand_patch {
-    my $opt_patch;
+    my $opt_diff;
     my %opts = (
-        get_common_options("oiav"),
-        "patch|p=s" => \$opt_patch,
+        get_common_options("oipav"),
+        "diff|d=s" => \$opt_diff,
     );
     if (GetOptions(%opts)) {
-        check_mandatory_options("i");
+        check_mandatory_options("i", "when package (-p) is not specified") unless ($opt_package);
+        unless ($opt_in) {
+            $opt_in = "debian/$opt_package.symbols.in";
+            error("symbol template file '$opt_in' was not found for package '$opt_package'") unless (-r $opt_in);
+        }
+        $opt_out = $opt_in if (!$opt_out && -w $opt_in);
 
-        $opt_patch = "-" unless ($opt_patch);
+        $opt_diff = "-" unless ($opt_diff);
         # Open patch
-        open(PATCHINPUT, $opt_patch) or error("unable to open patch '$opt_patch' for reading");
-        out_symfile($handlers->apply_patch_to_template(*PATCHINPUT, $opt_in, $opt_arch, $opt_version));
-        close(PATCHINPUT);
-        return 0;
+        open(DIFFINPUT, $opt_diff) or error("unable to open patch '$opt_diff' for reading");
+        my $ret = out_symfile($handlers->apply_patch_to_template(*DIFFINPUT, $opt_in, $opt_arch, $opt_version));
+        close(DIFFINPUT);
+        return $ret;
     }
     return 1;
 }
 
 sub subcommand_postgensymbols {
-    my ($infile, $outfile, $opt_package);
+    my ($infile, $outfile);
     my %opts = (
-        get_common_options("oiav"),
-        "package|p=s" => \$opt_package,
+        get_common_options("oipav"),
     );
     if (GetOptions(%opts)) {
         error("specify either package name or input template and output symbol files")
@@ -282,11 +290,10 @@
 # Boilerplate for the common subcommand handler
 sub subcommand_boilerplate {
     my %opts = (
-        get_common_options("oiav"),
+        get_common_options("oipav"),
     );
     if (GetOptions(%opts)) {
-#        check_mandatory_options("o",
-#            $opt_dir, "symbol file directory option (-d) is mandatory");
+#        check_mandatory_options("o");
         return 0;
     }
     return 1;




More information about the pkg-kde-commits mailing list