Просмотр исходного кода

Dpkg::Source::Package: Deprecate public package variables

Replace direct usage of $diff_ignore_default_regexp and
@tar_ignore_default_pattern with accessor functions.

Addresses Variables::ProhibitPackageVars.

Warned-by: perlcritic
Guillem Jover лет назад: 12
Родитель
Сommit
1919e88f19
3 измененных файлов с 43 добавлено и 6 удалено
  1. 2 0
      debian/changelog
  2. 35 1
      scripts/Dpkg/Source/Package.pm
  3. 6 5
      scripts/dpkg-source.pl

+ 2 - 0
debian/changelog

@@ -93,6 +93,8 @@ dpkg (1.17.2) UNRELEASED; urgency=low
     - Dpkg::Compression: Deprecate $default_compression_level,
     - Dpkg::Compression: Deprecate $default_compression_level,
       $default_compression and $compression_re_file_ext package variables.
       $default_compression and $compression_re_file_ext package variables.
     - Dpkg::Exit: Deprecate @handlers package variable.
     - Dpkg::Exit: Deprecate @handlers package variable.
+    - Dpkg::Source::Package: Deprecate $diff_ignore_default_regexp and
+      @tar_ignore_default_pattern package variables.
 
 
   [ Updated programs translations ]
   [ Updated programs translations ]
   * German (Sven Joachim).
   * German (Sven Joachim).

+ 35 - 1
scripts/Dpkg/Source/Package.pm

@@ -35,7 +35,7 @@ is the one that supports the extraction of the source package.
 use strict;
 use strict;
 use warnings;
 use warnings;
 
 
-our $VERSION = '1.0';
+our $VERSION = '1.01';
 
 
 use Dpkg::Gettext;
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling;
 use Dpkg::ErrorHandling;
@@ -51,6 +51,10 @@ use Dpkg::Vendor qw(run_vendor_hook);
 use POSIX qw(:errno_h :sys_wait_h);
 use POSIX qw(:errno_h :sys_wait_h);
 use File::Basename;
 use File::Basename;
 
 
+use Exporter qw(import);
+our @EXPORT_OK = qw(get_default_diff_ignore_regex
+                    get_default_tar_ignore_pattern);
+
 my $diff_ignore_default_regex = '
 my $diff_ignore_default_regex = '
 # Ignore general backup files
 # Ignore general backup files
 (?:^|/).*~$|
 (?:^|/).*~$|
@@ -72,6 +76,8 @@ $diff_ignore_default_regex =~ s/^#.*$//mg;
 $diff_ignore_default_regex =~ s/\n//sg;
 $diff_ignore_default_regex =~ s/\n//sg;
 
 
 # Public variables
 # Public variables
+# XXX: Backwards compatibility, stop exporting on VERSION 2.00.
+## no critic (Variables::ProhibitPackageVars)
 our $diff_ignore_default_regexp = $diff_ignore_default_regex;
 our $diff_ignore_default_regexp = $diff_ignore_default_regex;
 
 
 no warnings 'qw'; ## no critic (TestingAndDebugging::ProhibitNoWarnings)
 no warnings 'qw'; ## no critic (TestingAndDebugging::ProhibitNoWarnings)
@@ -110,9 +116,30 @@ _MTN
 _darcs
 _darcs
 {arch}
 {arch}
 );
 );
+## use critic
 
 
 =over 4
 =over 4
 
 
+=item my $string = get_default_diff_ignore_regex()
+
+Returns the default diff ignore regex.
+
+=cut
+
+sub get_default_diff_ignore_regex {
+    return $diff_ignore_default_regex;
+}
+
+=item my @array = get_default_tar_ignore_pattern()
+
+Returns the default tar ignore pattern, as an array.
+
+=cut
+
+sub get_default_tar_ignore_pattern {
+    return @tar_ignore_default_pattern;
+}
+
 =item $p = Dpkg::Source::Package->new(filename => $dscfile, options => {})
 =item $p = Dpkg::Source::Package->new(filename => $dscfile, options => {})
 
 
 Creates a new object corresponding to the source package described
 Creates a new object corresponding to the source package described
@@ -565,6 +592,13 @@ sub write_dsc {
 
 
 =back
 =back
 
 
+=head1 CHANGES
+
+=head2 Version 1.01
+
+New functions: get_default_diff_ignore_regex(), get_default_tar_ignore_pattern()
+Deprecated variables: $diff_ignore_default_regexp, @tar_ignore_default_pattern
+
 =head1 AUTHOR
 =head1 AUTHOR
 
 
 Raphaël Hertzog, E<lt>hertzog@debian.orgE<gt>
 Raphaël Hertzog, E<lt>hertzog@debian.orgE<gt>

+ 6 - 5
scripts/dpkg-source.pl

@@ -42,7 +42,8 @@ use Dpkg::Substvars;
 use Dpkg::Version;
 use Dpkg::Version;
 use Dpkg::Vars;
 use Dpkg::Vars;
 use Dpkg::Changelog::Parse;
 use Dpkg::Changelog::Parse;
-use Dpkg::Source::Package;
+use Dpkg::Source::Package qw(get_default_diff_ignore_regex
+                             get_default_tar_ignore_pattern);
 use Dpkg::Vendor qw(run_vendor_hook);
 use Dpkg::Vendor qw(run_vendor_hook);
 
 
 use Cwd;
 use Cwd;
@@ -76,7 +77,7 @@ my %override;
 
 
 my $substvars = Dpkg::Substvars->new();
 my $substvars = Dpkg::Substvars->new();
 my $tar_ignore_default_pattern_done;
 my $tar_ignore_default_pattern_done;
-my $diff_ignore_regex = $Dpkg::Source::Package::diff_ignore_default_regexp;
+my $diff_ignore_regex = get_default_diff_ignore_regex();
 
 
 my @options;
 my @options;
 my @cmdline_options;
 my @cmdline_options;
@@ -178,7 +179,7 @@ while (@options) {
         push @{$options{tar_ignore}}, $1;
         push @{$options{tar_ignore}}, $1;
     } elsif (m/^-(?:I|-tar-ignore)$/) {
     } elsif (m/^-(?:I|-tar-ignore)$/) {
         unless ($tar_ignore_default_pattern_done) {
         unless ($tar_ignore_default_pattern_done) {
-            push @{$options{tar_ignore}}, @Dpkg::Source::Package::tar_ignore_default_pattern;
+            push @{$options{tar_ignore}}, get_default_tar_ignore_pattern();
             # Prevent adding multiple times
             # Prevent adding multiple times
             $tar_ignore_default_pattern_done = 1;
             $tar_ignore_default_pattern_done = 1;
         }
         }
@@ -517,8 +518,8 @@ sub usage {
 'More options are available but they depend on the source package format.
 'More options are available but they depend on the source package format.
 See dpkg-source(1) for more info.') . "\n",
 See dpkg-source(1) for more info.') . "\n",
     $Dpkg::PROGNAME,
     $Dpkg::PROGNAME,
-    $Dpkg::Source::Package::diff_ignore_default_regexp,
-    join(' ', map { "-I$_" } @Dpkg::Source::Package::tar_ignore_default_pattern),
+    get_default_diff_ignore_regex(),
+    join(' ', map { "-I$_" } get_default_tar_ignore_pattern()),
     compression_get_default(),
     compression_get_default(),
     join(' ', compression_get_list()),
     join(' ', compression_get_list()),
     compression_get_default_level();
     compression_get_default_level();