]> err.no Git - dpkg/commitdiff
Add new module Dpkg::Fields replacing parts of controllib.pl
authorRaphael Hertzog <hertzog@debian.org>
Wed, 21 Nov 2007 16:00:41 +0000 (17:00 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Wed, 21 Nov 2007 16:40:22 +0000 (17:40 +0100)
New module containing 3 functions moved out of controllib.pl (capit(),
set_field_importance(), sort_by_field_importance()). Adapt all the scripts
accordingly.

ChangeLog
debian/changelog
debian/dpkg-dev.install
scripts/Dpkg/Fields.pm [new file with mode: 0644]
scripts/Makefile.am
scripts/changelog/debian.pl
scripts/controllib.pl
scripts/dpkg-genchanges.pl
scripts/dpkg-gencontrol.pl
scripts/dpkg-shlibdeps.pl
scripts/dpkg-source.pl

index 8ec8c2545ff275895d6f78820c55e7978ef3bb4e..684e269e4c5f5f359b5c5d22d89551932405052a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,15 @@
        empty dependency fields are correctly handled.
        * scripts/Makefile.am: Include the new data files required by the
        tests above.
+       * scrips/Dpkg/Fields.pm: New module containing 3 functions moved
+       out of controllib.pl (capit(), set_field_importance(),
+       sort_by_field_importance()).
+       * scripts/controllib.pl: Removed the 3 functions above.
+       * scripts/dpkg-shlibdeps.pl: Use Dpkg::Fields for capit().
+       * scripts/dpkg-genchanges.pl: Use Dpkg::Fields for capit() and
+       set_field_importance().
+       * scripts/dpkg-gencontrol.pl: Likewise.
+       * scripts/dpkg-source.pl: Likewise.
 
 2007-11-20  Guillem Jover  <guillem@debian.org>
 
index 63e2cdd04638dc01a09fc6321c08fffe9d3d07e2..70832f5f1255185e9dce8abcd594e429e9a03b65 100644 (file)
@@ -3,6 +3,8 @@ dpkg (1.14.10) UNRELEASED; urgency=low
   [ Raphael Hertzog ]
   * dpkg-shlibdeps now correctly identify private libraries (avoid many
     warnings with perl/python modules).
+  * Move capit() to a Dpkg::Fields module and use it in dpkg-shlibdeps.
+    Closes: #452262
 
   [ Updated man pages translations ]
   * Swedish (Peter Karlsson)
index 8124ae59a115a79bb1d213ef0ee5bbc88a355509..8d2a612368ea32387d515c0db625e78da112897f 100644 (file)
@@ -64,6 +64,7 @@ usr/share/perl5/Dpkg/Arch.pm
 usr/share/perl5/Dpkg/BuildOptions.pm
 usr/share/perl5/Dpkg/ErrorHandling.pm
 usr/share/perl5/Dpkg/Deps.pm
+usr/share/perl5/Dpkg/Fields.pm
 usr/share/perl5/Dpkg/Path.pm
 usr/share/perl5/Dpkg/Shlibs
 usr/share/perl5/Dpkg/Shlibs.pm
diff --git a/scripts/Dpkg/Fields.pm b/scripts/Dpkg/Fields.pm
new file mode 100644 (file)
index 0000000..7602ac1
--- /dev/null
@@ -0,0 +1,40 @@
+package Dpkg::Fields;
+
+use strict;
+use warnings;
+
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(capit set_field_importance sort_field_by_importance);
+
+sub capit {
+    my @pieces = map { ucfirst(lc) } split /-/, $_[0];
+    return join '-', @pieces;
+}
+
+our %fieldimps;
+
+sub set_field_importance(@)
+{
+    my @fields = @_;
+    my $i = 1;
+
+    grep($fieldimps{$_} = $i++, @fields);
+}
+
+sub sort_field_by_importance($$)
+{
+    my ($a, $b) = @_;
+
+    if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
+       $fieldimps{$a} <=> $fieldimps{$b};
+    } elsif (defined($fieldimps{$a})) {
+       -1;
+    } elsif (defined($fieldimps{$b})) {
+       1;
+    } else {
+       $a cmp $b;
+    }
+}
+
+1;
index 1e161a0765c0f97df944804dd5b9f51aa6a78b66..30ce4059b1ec2c15c94b3975214c618f187b0d8e 100644 (file)
@@ -78,6 +78,7 @@ nobase_dist_perllib_DATA = \
        Dpkg/BuildOptions.pm \
        Dpkg/ErrorHandling.pm \
        Dpkg/Deps.pm \
+       Dpkg/Fields.pm \
        Dpkg/Gettext.pm \
        Dpkg/Path.pm \
        Dpkg/Shlibs.pm \
index 85a0b2e33717a6588177bfa5e9354e68e860089e..2760c14736a5bb1d19cafc3dd94a10229a4eae87 100755 (executable)
@@ -6,6 +6,7 @@ use warnings;
 use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(error internerr usageerr);
+use Dpkg::Fields qw(set_field_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
index 8c54fbeb35176b7c9f270efe334a1f00629eba0d..6e2a4b40f3cd7bfd2ececf93db381f2783377984 100755 (executable)
@@ -9,6 +9,7 @@ use Dpkg;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(warning error failure internerr syserr subprocerr);
 use Dpkg::Arch qw(get_host_arch debarch_is);
+use Dpkg::Fields qw(capit sort_field_by_importance);
 
 textdomain("dpkg-dev");
 
@@ -74,11 +75,6 @@ sub getfowner
     return @fowner;
 }
 
-sub capit {
-    my @pieces = map { ucfirst(lc) } split /-/, $_[0];
-    return join '-', @pieces;
-}
-
 sub substvars {
     my ($v) = @_;
     my $lhs;
@@ -105,31 +101,6 @@ sub substvars {
     return $v;
 }
 
-my %fieldimps;
-
-sub set_field_importance(@)
-{
-    my @fields = @_;
-    my $i = 1;
-
-    grep($fieldimps{$_} = $i++, @fields);
-}
-
-sub sort_field_by_importance($$)
-{
-    my ($a, $b) = @_;
-
-    if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
-       $fieldimps{$a} <=> $fieldimps{$b};
-    } elsif (defined($fieldimps{$a})) {
-       -1;
-    } elsif (defined($fieldimps{$b})) {
-       1;
-    } else {
-       $a cmp $b;
-    }
-}
-
 sub outputclose {
     my ($varlistfile) = @_;
 
index 5cc61e4897aa085534bbf3b5a40e2a94d1c02462..c2dbb7d7e8a7e6533dd711bc9f1b45d2207734b6 100755 (executable)
@@ -10,6 +10,7 @@ use Dpkg::Gettext;
 use Dpkg::ErrorHandling qw(warning error failure unknown internerr syserr
                            subprocerr usageerr);
 use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
+use Dpkg::Fields qw(capit set_field_importance sort_field_by_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
index 623809fcc143a43e9972fa0ea956bb3dd099a254..d7493604bf95e3e3ffac66ae59113ee5aa943e7a 100755 (executable)
@@ -11,6 +11,7 @@ use Dpkg::ErrorHandling qw(warning error failure unknown internerr syserr
                            subprocerr usageerr);
 use Dpkg::Arch qw(get_host_arch debarch_eq debarch_is);
 use Dpkg::Deps qw(@pkg_dep_fields %dep_field_type);
+use Dpkg::Fields qw(capit set_field_importance);
 
 push(@INC,$dpkglibdir);
 require 'controllib.pl';
index 1599aa6d96b9daeb095141a3288e8be4c8613b37..8902b94856496a5f8716fb377bcc627542d7bd3a 100755 (executable)
@@ -14,6 +14,7 @@ use Dpkg::Shlibs qw(find_library);
 use Dpkg::Shlibs::Objdump;
 use Dpkg::Shlibs::SymbolFile;
 use Dpkg::Arch qw(get_host_arch);
+use Dpkg::Fields qw(capit);
 
 our $host_arch= get_host_arch();
 
index d9542a917f90839b41a0ad13de5aedc6beb2913b..b82b9d140af6ad9a425c555b5dc9770bd2b6b02e 100755 (executable)
@@ -10,6 +10,7 @@ use Dpkg::ErrorHandling qw(warning warnerror error failure unknown
                            $warnable_error $quiet_warnings);
 use Dpkg::Arch qw(debarch_eq);
 use Dpkg::Deps qw(@src_dep_fields %dep_field_type);
+use Dpkg::Fields qw(capit set_field_importance);
 
 my @filesinarchive;
 my %dirincluded;