Selaa lähdekoodia

Do not quote simple identifier hash keys in initializations

Do not quote the keys for any hash which will always use simple
identifiers, as that is taken care of by the => operator. So this does
not apply to overload pragmas, version operators, field names, substvars,
command line options or filenames.

Addresses ValuesAndExpressions::ProhibitInterpolationOfLiterals.

Warned-by: perlcritic
Guillem Jover 13 vuotta sitten
vanhempi
commit
d6851023a9

+ 6 - 6
scripts/Dpkg/Changelog/Entry.pm

@@ -57,12 +57,12 @@ sub new {
     my $class = ref($this) || $this;
 
     my $self = {
-	'header' => undef,
-	'changes' => [],
-	'trailer' => undef,
-	'blank_after_header' => [],
-	'blank_after_changes' => [],
-	'blank_after_trailer' => [],
+	header => undef,
+	changes => [],
+	trailer => undef,
+	blank_after_header => [],
+	blank_after_changes => [],
+	blank_after_trailer => [],
     };
     bless $self, $class;
     return $self;

+ 10 - 10
scripts/Dpkg/Checksums.pm

@@ -49,17 +49,17 @@ about supported checksums.
 =cut
 
 my $CHECKSUMS = {
-    "md5" => {
-	"program" => [ "md5sum" ],
-	"regex" => qr/[0-9a-f]{32}/,
+    md5 => {
+	program => [ "md5sum" ],
+	regex => qr/[0-9a-f]{32}/,
     },
-    "sha1" => {
-	"program" => [ "sha1sum" ],
-	"regex" => qr/[0-9a-f]{40}/,
+    sha1 => {
+	program => [ "sha1sum" ],
+	regex => qr/[0-9a-f]{40}/,
     },
-    "sha256" => {
-	"program" => [ "sha256sum" ],
-	"regex" => qr/[0-9a-f]{64}/,
+    sha256 => {
+	program => [ "sha256sum" ],
+	regex => qr/[0-9a-f]{64}/,
     },
 };
 
@@ -179,7 +179,7 @@ sub add_from_file {
 	my @exec = (@{$CHECKSUMS->{$alg}{"program"}}, $file);
 	my $regex = $CHECKSUMS->{$alg}{"regex"};
 	my $output;
-	spawn('exec' => \@exec, to_string => \$output);
+	spawn(exec => \@exec, to_string => \$output);
 	if ($output =~ /^($regex)(\s|$)/m) {
 	    my $newsum = $1;
 	    if (exists $self->{checksums}{$key}{$alg} and

+ 20 - 20
scripts/Dpkg/Compression.pm

@@ -50,29 +50,29 @@ interact with the set of supported compression methods.
 =cut
 
 my $COMP = {
-    "gzip" => {
-	"file_ext" => "gz",
-	"comp_prog" => [ "gzip", "--no-name", "--rsyncable" ],
-	"decomp_prog" => [ "gunzip" ],
-	"default_level" => 9,
+    gzip => {
+	file_ext => "gz",
+	comp_prog => [ "gzip", "--no-name", "--rsyncable" ],
+	decomp_prog => [ "gunzip" ],
+	default_level => 9,
     },
-    "bzip2" => {
-	"file_ext" => "bz2",
-	"comp_prog" => [ "bzip2" ],
-	"decomp_prog" => [ "bunzip2" ],
-	"default_level" => 9,
+    bzip2 => {
+	file_ext => "bz2",
+	comp_prog => [ "bzip2" ],
+	decomp_prog => [ "bunzip2" ],
+	default_level => 9,
     },
-    "lzma" => {
-	"file_ext" => "lzma",
-	"comp_prog" => [ 'xz', '--format=lzma' ],
-	"decomp_prog" => [ 'unxz', '--format=lzma' ],
-	"default_level" => 6,
+    lzma => {
+	file_ext => "lzma",
+	comp_prog => [ 'xz', '--format=lzma' ],
+	decomp_prog => [ 'unxz', '--format=lzma' ],
+	default_level => 6,
     },
-    "xz" => {
-	"file_ext" => "xz",
-	"comp_prog" => [ "xz" ],
-	"decomp_prog" => [ "unxz" ],
-	"default_level" => 6,
+    xz => {
+	file_ext => "xz",
+	comp_prog => [ "xz" ],
+	decomp_prog => [ "unxz" ],
+	default_level => 6,
     },
 };
 

+ 5 - 5
scripts/Dpkg/Control/Hash.pm

@@ -103,11 +103,11 @@ sub new {
     # Object is a scalar reference and not a hash ref to avoid
     # infinite recursion due to overloading hash-derefencing
     my $self = \{
-        'in_order' => [],
-        'out_order' => [],
-        'allow_pgp' => 0,
-        'allow_duplicate' => 0,
-        'drop_empty' => 0,
+        in_order => [],
+        out_order => [],
+        allow_pgp => 0,
+        allow_duplicate => 0,
+        drop_empty => 0,
     };
     bless $self, $class;
 

+ 2 - 2
scripts/Dpkg/Control/Info.pm

@@ -55,8 +55,8 @@ sub new {
     my ($this, $arg) = @_;
     my $class = ref($this) || $this;
     my $self = {
-	'source' => undef,
-	'packages' => [],
+	source => undef,
+	packages => [],
     };
     bless $self, $class;
     if ($arg) {

+ 10 - 7
scripts/Dpkg/Deps.pm

@@ -361,7 +361,7 @@ This function is mainly used to implement the sort() method.
 =cut
 
 our %relation_ordering = (
-	'undef' => 0,
+	undef => 0,
 	REL_GE() => 1,
 	REL_GT() => 2,
 	REL_EQ() => 3,
@@ -839,7 +839,7 @@ use base qw(Dpkg::Interface::Storable);
 sub new {
     my $this = shift;
     my $class = ref($this) || $this;
-    my $self = { 'list' => [ @_ ] };
+    my $self = { list => [ @_ ] };
     bless $self, $class;
     return $self;
 }
@@ -1196,7 +1196,10 @@ use Dpkg::Version;
 sub new {
     my $this = shift;
     my $class = ref($this) || $this;
-    my $self = { 'pkg' => {}, 'virtualpkg' => {} };
+    my $self = {
+	pkg => {},
+	virtualpkg => {},
+    };
     bless $self, $class;
     return $self;
 }
@@ -1216,10 +1219,10 @@ Note that $multiarch is only used if $arch is provided.
 sub add_installed_package {
     my ($self, $pkg, $ver, $arch, $multiarch) = @_;
     my $p = {
-	"package" => $pkg,
-	"version" => $ver,
-	"architecture" => $arch,
-	"multiarch" => $multiarch || "no",
+	package => $pkg,
+	version => $ver,
+	architecture => $arch,
+	multiarch => $multiarch || "no",
     };
     $self->{pkg}{"$pkg:$arch"} = $p if defined $arch;
     push @{$self->{pkg}{$pkg}}, $p;

+ 3 - 3
scripts/Dpkg/Shlibs/Cppfilt.pm

@@ -95,9 +95,9 @@ sub terminate_cppfilts {
 	next if not defined $cppfilts{$_}{pid};
 	close $cppfilts{$_}{from};
 	close $cppfilts{$_}{to};
-	wait_child($cppfilts{$_}{pid}, "cmdline" => "c++filt",
-	                               "nocheck" => 1,
-	                               "timeout" => 5);
+	wait_child($cppfilts{$_}{pid}, cmdline => "c++filt",
+	                               nocheck => 1,
+	                               timeout => 5);
 	delete $cppfilts{$_};
     }
 }

+ 2 - 2
scripts/Dpkg/Shlibs/Objdump.pm

@@ -37,7 +37,7 @@ if (get_build_arch() ne get_host_arch()) {
 sub new {
     my $this = shift;
     my $class = ref($this) || $this;
-    my $self = { 'objects' => {} };
+    my $self = { objects => {} };
     bless $self, $class;
     return $self;
 }
@@ -95,7 +95,7 @@ sub has_object {
 		$opts{"error_to_file"} = "/dev/null";
 	    }
 	    $pid = spawn(exec => [ $OBJDUMP, "-a", "--", $file ],
-			 env => { "LC_ALL" => "C" },
+			 env => { LC_ALL => "C" },
 			 to_pipe => \$output, %opts);
 	    while (<$output>) {
 		chomp;

+ 27 - 27
scripts/Dpkg/Shlibs/SymbolFile.pm

@@ -31,33 +31,33 @@ use Dpkg::Arch qw(get_host_arch);
 use base qw(Dpkg::Interface::Storable);
 
 my %blacklist = (
-    '__bss_end__' => 1,		# arm
-    '__bss_end' => 1,		# arm
-    '_bss_end__' => 1,		# arm
-    '__bss_start' => 1,		# ALL
-    '__bss_start__' => 1,	# arm
-    '__data_start' => 1,	# arm
-    '__do_global_ctors_aux' => 1,   # ia64
-    '__do_global_dtors_aux' => 1,   # ia64
-    '__do_jv_register_classes' => 1,# ia64
-    '_DYNAMIC' => 1,		# ALL
-    '_edata' => 1,		# ALL
-    '_end' => 1,		# ALL
-    '__end__' => 1,		# arm
-    '__exidx_end' => 1,		# armel
-    '__exidx_start' => 1,	# armel
-    '_fbss' => 1,		# mips, mipsel
-    '_fdata' => 1,		# mips, mipsel
-    '_fini' => 1,		# ALL
-    '_ftext' => 1,		# mips, mipsel
-    '_GLOBAL_OFFSET_TABLE_' => 1,   # hppa, mips, mipsel
-    '__gmon_start__' => 1,	# hppa
-    '__gnu_local_gp' => 1,      # mips, mipsel
-    '_gp' => 1,			# mips, mipsel
-    '_init' => 1,		# ALL
-    '_PROCEDURE_LINKAGE_TABLE_' => 1, # sparc, alpha
-    '_SDA2_BASE_' => 1,		# powerpc
-    '_SDA_BASE_' => 1,		# powerpc
+    __bss_end__ => 1,			# arm
+    __bss_end => 1,			# arm
+    _bss_end__ => 1,			# arm
+    __bss_start => 1,			# ALL
+    __bss_start__ => 1,			# arm
+    __data_start => 1,			# arm
+    __do_global_ctors_aux => 1,		# ia64
+    __do_global_dtors_aux => 1,		# ia64
+    __do_jv_register_classes => 1,	# ia64
+    _DYNAMIC => 1,			# ALL
+    _edata => 1,			# ALL
+    _end => 1,				# ALL
+    __end__ => 1,			# arm
+    __exidx_end => 1,			# armel
+    __exidx_start => 1,			# armel
+    _fbss => 1,				# mips, mipsel
+    _fdata => 1,			# mips, mipsel
+    _fini => 1,				# ALL
+    _ftext => 1,			# mips, mipsel
+    _GLOBAL_OFFSET_TABLE_ => 1,		# hppa, mips, mipsel
+    __gmon_start__ => 1,		# hppa
+    __gnu_local_gp => 1,		# mips, mipsel
+    _gp => 1,				# mips, mipsel
+    _init => 1,				# ALL
+    _PROCEDURE_LINKAGE_TABLE_ => 1,	# sparc, alpha
+    _SDA2_BASE_ => 1,			# powerpc
+    _SDA_BASE_ => 1,			# powerpc
 );
 
 for (my $i = 14; $i <= 31; $i++) {

+ 3 - 3
scripts/Dpkg/Source/Functions.pm

@@ -97,9 +97,9 @@ sub is_binary($) {
     # Use diff to check if it's a binary file
     my $diffgen;
     my $diff_pid = spawn(
-        'exec' => [ 'diff', '-u', '--', '/dev/null', $file ],
-        'env' => { LC_ALL => 'C', LANG => 'C', TZ => 'UTC0' },
-        'to_pipe' => \$diffgen
+        exec => [ 'diff', '-u', '--', '/dev/null', $file ],
+        env => { LC_ALL => 'C', LANG => 'C', TZ => 'UTC0' },
+        to_pipe => \$diffgen,
     );
     my $result = 0;
     local $_;

+ 4 - 4
scripts/Dpkg/Source/Package.pm

@@ -148,9 +148,9 @@ sub new {
     my ($this, %args) = @_;
     my $class = ref($this) || $this;
     my $self = {
-        'fields' => Dpkg::Control->new(type => CTRL_PKG_SRC),
-        'options' => {},
-	'checksums' => Dpkg::Checksums->new(),
+        fields => Dpkg::Control->new(type => CTRL_PKG_SRC),
+        options => {},
+        checksums => Dpkg::Checksums->new(),
     };
     bless $self, $class;
     if (exists $args{'options'}) {
@@ -360,7 +360,7 @@ sub check_signature {
         push @exec, $dsc;
 
         my ($stdout, $stderr);
-        spawn('exec' => \@exec, wait_child => 1, nocheck => 1,
+        spawn(exec => \@exec, wait_child => 1, nocheck => 1,
               to_string => \$stdout, error_to_string => \$stderr,
               timeout => 10);
         if (WIFEXITED($?)) {

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

@@ -307,7 +307,7 @@ sub do_build {
 	my $tar = Dpkg::Source::Archive->new(filename => $newtar,
 		    compression => compression_guess_from_filename($tarname),
 		    compression_level => $self->{'options'}{'comp_level'});
-	$tar->create(options => \@tar_ignore, 'chdir' => $tardirbase);
+	$tar->create(options => \@tar_ignore, chdir => $tardirbase);
 	$tar->add_directory($tardirname);
 	$tar->finish();
         rename($newtar, $tarname) ||

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

@@ -530,7 +530,7 @@ sub do_build {
     my $debianfile = "$basenamerev.debian.tar." . $self->{'options'}{'comp_ext'};
     info(_g("building %s in %s"), $sourcepackage, $debianfile);
     my $tar = Dpkg::Source::Archive->new(filename => $debianfile);
-    $tar->create(options => \@tar_ignore, 'chdir' => $dir);
+    $tar->create(options => \@tar_ignore, chdir => $dir);
     $tar->add_directory("debian");
     foreach my $binary ($binaryfiles->get_seen_binaries()) {
         $tar->add_file($binary) unless $binary =~ m{^debian/};

+ 1 - 1
scripts/Dpkg/Source/Package/V3/bzr.pm

@@ -155,7 +155,7 @@ sub do_build {
     my $tar = Dpkg::Source::Archive->new(filename => $debianfile,
                                          compression => $self->{'options'}{'compression'},
                                          compression_level => $self->{'options'}{'comp_level'});
-    $tar->create('chdir' => $tmp);
+    $tar->create(chdir => $tmp);
     $tar->add_directory($dirname);
     $tar->finish();
 

+ 1 - 1
scripts/Dpkg/Source/Package/V3/native.pm

@@ -91,7 +91,7 @@ sub do_build {
     my $tar = Dpkg::Source::Archive->new(filename => $newtar,
                 compression => compression_guess_from_filename($tarname),
                 compression_level => $self->{'options'}{'comp_level'});
-    $tar->create(options => \@tar_ignore, 'chdir' => $dirbase);
+    $tar->create(options => \@tar_ignore, chdir => $dirbase);
     $tar->add_directory($dirname);
     $tar->finish();
     rename($newtar, $tarname) ||

+ 19 - 19
scripts/Dpkg/Source/Patch.pm

@@ -100,9 +100,9 @@ sub add_diff_file {
     # Generate diff
     my $diffgen;
     my $diff_pid = spawn(
-        'exec' => [ 'diff', '-u', @options, '--', $old, $new ],
-        'env' => { LC_ALL => 'C', LANG => 'C', TZ => 'UTC0' },
-        'to_pipe' => \$diffgen
+        exec => [ 'diff', '-u', @options, '--', $old, $new ],
+        env => { LC_ALL => 'C', LANG => 'C', TZ => 'UTC0' },
+        to_pipe => \$diffgen,
     );
     # Check diff and write it in patch file
     my $difflinefound = 0;
@@ -538,15 +538,15 @@ sub apply {
     $self->ensure_open("r");
     my ($stdout, $stderr) = ('', '');
     spawn(
-	'exec' => [ 'patch', @{$opts{"options"}} ],
-	'chdir' => $destdir,
-	'env' => { LC_ALL => 'C', LANG => 'C' },
-	'delete_env' => [ 'POSIXLY_CORRECT' ], # ensure expected patch behaviour
-	'wait_child' => 1,
-	'nocheck' => 1,
-	'from_handle' => $self->get_filehandle(),
-	'to_string' => \$stdout,
-	'error_to_string' => \$stderr,
+	exec => [ 'patch', @{$opts{"options"}} ],
+	chdir => $destdir,
+	env => { LC_ALL => 'C', LANG => 'C' },
+	delete_env => [ 'POSIXLY_CORRECT' ], # ensure expected patch behaviour
+	wait_child => 1,
+	nocheck => 1,
+	from_handle => $self->get_filehandle(),
+	to_string => \$stdout,
+	error_to_string => \$stderr,
     );
     if ($?) {
 	print STDOUT $stdout;
@@ -589,13 +589,13 @@ sub check_apply {
     $self->ensure_open("r");
     my $error;
     my $patch_pid = spawn(
-	'exec' => [ 'patch', @{$opts{"options"}} ],
-	'chdir' => $destdir,
-	'env' => { LC_ALL => 'C', LANG => 'C' },
-	'delete_env' => [ 'POSIXLY_CORRECT' ], # ensure expected patch behaviour
-	'from_handle' => $self->get_filehandle(),
-        'to_file' => '/dev/null',
-        'error_to_file' => '/dev/null',
+	exec => [ 'patch', @{$opts{"options"}} ],
+	chdir => $destdir,
+	env => { LC_ALL => 'C', LANG => 'C' },
+	delete_env => [ 'POSIXLY_CORRECT' ], # ensure expected patch behaviour
+	from_handle => $self->get_filehandle(),
+	to_file => '/dev/null',
+	error_to_file => '/dev/null',
     );
     wait_child($patch_pid, nocheck => 1);
     my $exit = WEXITSTATUS($?);

+ 1 - 1
scripts/Dpkg/Source/Quilt.pm

@@ -37,7 +37,7 @@ sub new {
     my $class = ref($this) || $this;
 
     my $self = {
-        'dir' => $dir,
+        dir => $dir,
     };
     bless $self, $class;
 

+ 6 - 6
scripts/Dpkg/Vendor/Debian.pm

@@ -85,12 +85,12 @@ sub add_hardening_flags {
 
     # Features enabled by default for all builds.
     my %use_feature = (
-	"pie" => 0,
-	"stackprotector" => 1,
-	"fortify" => 1,
-	"format" => 1,
-	"relro" => 1,
-	"bindnow" => 0
+	pie => 0,
+	stackprotector => 1,
+	fortify => 1,
+	format => 1,
+	relro => 1,
+	bindnow => 0,
     );
 
     # Adjust features based on Maintainer's desires.

+ 18 - 18
scripts/dpkg-architecture.pl

@@ -86,24 +86,24 @@ use constant DEB_ALL => DEB_BUILD | DEB_HOST | DEB_ARCH_INFO | DEB_ARCH_ATTR |
                         DEB_MULTIARCH | DEB_GNU_INFO;
 
 my %arch_vars = (
-    "DEB_BUILD_ARCH" => DEB_BUILD,
-    "DEB_BUILD_ARCH_OS" => DEB_BUILD | DEB_ARCH_INFO,
-    "DEB_BUILD_ARCH_CPU" => DEB_BUILD | DEB_ARCH_INFO,
-    "DEB_BUILD_ARCH_BITS" => DEB_BUILD | DEB_ARCH_ATTR,
-    "DEB_BUILD_ARCH_ENDIAN" => DEB_BUILD | DEB_ARCH_ATTR,
-    "DEB_BUILD_MULTIARCH" => DEB_BUILD | DEB_MULTIARCH,
-    "DEB_BUILD_GNU_CPU" => DEB_BUILD | DEB_GNU_INFO,
-    "DEB_BUILD_GNU_SYSTEM" => DEB_BUILD | DEB_GNU_INFO,
-    "DEB_BUILD_GNU_TYPE" => DEB_BUILD | DEB_GNU_INFO,
-    "DEB_HOST_ARCH" => DEB_HOST,
-    "DEB_HOST_ARCH_OS" => DEB_HOST | DEB_ARCH_INFO,
-    "DEB_HOST_ARCH_CPU" => DEB_HOST | DEB_ARCH_INFO,
-    "DEB_HOST_ARCH_BITS" => DEB_HOST | DEB_ARCH_ATTR,
-    "DEB_HOST_ARCH_ENDIAN" => DEB_HOST | DEB_ARCH_ATTR,
-    "DEB_HOST_MULTIARCH" => DEB_HOST | DEB_MULTIARCH,
-    "DEB_HOST_GNU_CPU" => DEB_HOST | DEB_GNU_INFO,
-    "DEB_HOST_GNU_SYSTEM" => DEB_HOST | DEB_GNU_INFO,
-    "DEB_HOST_GNU_TYPE" => DEB_HOST | DEB_GNU_INFO,
+    DEB_BUILD_ARCH => DEB_BUILD,
+    DEB_BUILD_ARCH_OS => DEB_BUILD | DEB_ARCH_INFO,
+    DEB_BUILD_ARCH_CPU => DEB_BUILD | DEB_ARCH_INFO,
+    DEB_BUILD_ARCH_BITS => DEB_BUILD | DEB_ARCH_ATTR,
+    DEB_BUILD_ARCH_ENDIAN => DEB_BUILD | DEB_ARCH_ATTR,
+    DEB_BUILD_MULTIARCH => DEB_BUILD | DEB_MULTIARCH,
+    DEB_BUILD_GNU_CPU => DEB_BUILD | DEB_GNU_INFO,
+    DEB_BUILD_GNU_SYSTEM => DEB_BUILD | DEB_GNU_INFO,
+    DEB_BUILD_GNU_TYPE => DEB_BUILD | DEB_GNU_INFO,
+    DEB_HOST_ARCH => DEB_HOST,
+    DEB_HOST_ARCH_OS => DEB_HOST | DEB_ARCH_INFO,
+    DEB_HOST_ARCH_CPU => DEB_HOST | DEB_ARCH_INFO,
+    DEB_HOST_ARCH_BITS => DEB_HOST | DEB_ARCH_ATTR,
+    DEB_HOST_ARCH_ENDIAN => DEB_HOST | DEB_ARCH_ATTR,
+    DEB_HOST_MULTIARCH => DEB_HOST | DEB_MULTIARCH,
+    DEB_HOST_GNU_CPU => DEB_HOST | DEB_GNU_INFO,
+    DEB_HOST_GNU_SYSTEM => DEB_HOST | DEB_GNU_INFO,
+    DEB_HOST_GNU_TYPE => DEB_HOST | DEB_GNU_INFO,
 );
 
 my $req_vars = DEB_ALL;

+ 2 - 2
scripts/dpkg-scanpackages.pl

@@ -180,8 +180,8 @@ FILE:
 	chomp;
 	my $fn = $_;
 	my $output;
-	my $pid = spawn('exec' => [ "dpkg-deb", "-I", $fn, "control" ],
-			'to_pipe' => \$output);
+	my $pid = spawn(exec => [ "dpkg-deb", "-I", $fn, "control" ],
+	                to_pipe => \$output);
 	my $fields = Dpkg::Control->new(type => CTRL_INDEX_PKG);
 	$fields->parse($output, $fn)
 	    or error(_g("couldn't parse control information from %s"), $fn);

+ 61 - 48
scripts/t/200_Dpkg_Shlibs.t

@@ -146,9 +146,9 @@ is( $sym_file_old->lookup_symbol('__bss_start@Base', ['libc.so.6']),
 
 %tmp = $sym_file->lookup_symbol('_errno@GLIBC_2.0', ['libc.so.6'], 1);
 isa_ok($tmp{symbol}, 'Dpkg::Shlibs::Symbol');
-is_deeply(\%tmp, { symbol => Dpkg::Shlibs::Symbol->new( 'symbol' => '_errno@GLIBC_2.0',
-		  'minver' => '2.3.6.ds1-13', 'dep_id' => 0,
-		  'deprecated' => '2.6-1'), 'soname' => 'libc.so.6' },
+is_deeply(\%tmp, { symbol => Dpkg::Shlibs::Symbol->new(symbol => '_errno@GLIBC_2.0',
+		  minver => '2.3.6.ds1-13', dep_id => 0,
+		  deprecated => '2.6-1'), soname => 'libc.so.6' },
 		  'deprecated symbol');
 
 # Wildcard test
@@ -156,10 +156,11 @@ my $pat = $sym_file_old->create_symbol('*@GLIBC_PRIVATE 2.3.6.wildcard');
 $sym_file_old->add_symbol($pat, 'libc.so.6');
 $sym_file_old->merge_symbols($obj, "2.6-1");
 $sym = $sym_file_old->lookup_symbol('__nss_services_lookup@GLIBC_PRIVATE', 'libc.so.6');
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => '__nss_services_lookup@GLIBC_PRIVATE',
-		  'minver' => '2.3.6.wildcard', 'dep_id' => 0, 'deprecated' => 0,
-		  'tags' => { 'symver' => undef,  optional => undef }, 'tagorder' => [ 'symver', 'optional' ],
-		  'matching_pattern' => $pat ), 'wildcarded symbol');
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => '__nss_services_lookup@GLIBC_PRIVATE',
+		  minver => '2.3.6.wildcard', dep_id => 0, deprecated => 0,
+		  tags => { symver => undef,  optional => undef },
+		  tagorder => [ 'symver', 'optional' ],
+		  matching_pattern => $pat ), 'wildcarded symbol');
 
 # Save -> Load test
 use File::Temp;
@@ -188,38 +189,38 @@ save_load_test( $sym_file, 'save -> load' );
 $sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-1");
 
 $sym = $sym_file->lookup_symbol('symbol_before@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol_before@Base',
-		  'minver' => '0.9', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_before@Base',
+		  minver => '0.9', dep_id => 0, deprecated => 0),
 	    'symbol before include not lost');
 
 $sym = $sym_file->lookup_symbol('symbol_after@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol_after@Base',
-		  'minver' => '1.1', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_after@Base',
+		  minver => '1.1', dep_id => 0, deprecated => 0),
 	    'symbol after include not lost');
 
 $sym = $sym_file->lookup_symbol('symbol1_fake1@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol1_fake1@Base',
-		  'minver' => '1.0', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol1_fake1@Base',
+		  minver => '1.0', dep_id => 0, deprecated => 0),
 	    'overrides order with #include');
 
 $sym = $sym_file->lookup_symbol('symbol3_fake1@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new ( 'symbol' => 'symbol3_fake1@Base',
-		  'minver' => '0', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol3_fake1@Base',
+		  minver => '0', dep_id => 0, deprecated => 0),
 	    'overrides order with #include');
 
 is($sym_file->get_smallest_version('libfake.so.1'), "0",
    'get_smallest_version with null version');
 
 $sym = $sym_file->lookup_symbol('symbol_in_libdivert@Base', ['libdivert.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new ( 'symbol' => 'symbol_in_libdivert@Base',
-		  'minver' => '1.0~beta1', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol_in_libdivert@Base',
+		  minver => '1.0~beta1', dep_id => 0, deprecated => 0),
 	    '#include can change current object');
 
 $sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-2");
 
 $sym = $sym_file->lookup_symbol('symbol1_fake2@Base', ['libfake.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new ( 'symbol' => 'symbol1_fake2@Base',
-		  'minver' => '1.0', 'dep_id' => 1, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol1_fake2@Base',
+		  minver => '1.0', dep_id => 1, deprecated => 0),
 	    'overrides order with circular #include');
 
 is($sym_file->get_smallest_version('libfake.so.1'), "1.0",
@@ -315,16 +316,18 @@ delete $tags_obj_i386->{dynsyms}{'symbol11_optional@Base'};
 $sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
 
 $sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol11_optional@Base', 'symbol_templ' => 'symbol11_optional@Base',
-		  'minver' => '1.1', 'dep_id' => 1, 'deprecated' => '100.MISSING',
-		  'tags' => { 'optional' => undef }, 'tagorder' => [ 'optional' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
+		  symbol_templ => 'symbol11_optional@Base',
+		  minver => '1.1', dep_id => 1, deprecated => '100.MISSING',
+		  tags => { optional => undef }, tagorder => [ 'optional' ]),
 	    'disappered optional symbol gets deprecated');
 
 $sym_file->merge_symbols($tags_obj_i386, '101.MISSING');
 $sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol11_optional@Base', 'symbol_templ' => 'symbol11_optional@Base',
-		  'minver' => '1.1', 'dep_id' => 1, 'deprecated' => '101.MISSING',
-		  'tags' => { 'optional' => undef }, 'tagorder' => [ 'optional' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
+		  symbol_templ => 'symbol11_optional@Base',
+		  minver => '1.1', dep_id => 1, deprecated => '101.MISSING',
+		  tags => { optional => undef }, tagorder => [ 'optional' ]),
 	    'deprecated text of MISSING optional symbol gets rebumped each merge');
 
 is( scalar($sym_file->get_lost_symbols($sym_file_dup)), 0, "missing optional symbol is not LOST");
@@ -333,9 +336,10 @@ is( scalar($sym_file->get_lost_symbols($sym_file_dup)), 0, "missing optional sym
 $tags_obj_i386->add_dynamic_symbol($symbol11);
 $sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
 $sym = $sym_file->lookup_symbol('symbol11_optional@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol11_optional@Base', 'symbol_templ' => 'symbol11_optional@Base',
-		  'minver' => '1.1', 'dep_id' => 1, 'deprecated' => 0,
-		  'tags' => { 'optional' => undef }, 'tagorder' => [ 'optional' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol11_optional@Base',
+		  symbol_templ => 'symbol11_optional@Base',
+		  minver => '1.1', dep_id => 1, deprecated => 0,
+		  tags => { optional => undef }, tagorder => [ 'optional' ]),
 	    'reappered optional symbol gets undeprecated + minver');
 is( scalar($sym_file->get_lost_symbols($sym_file_dup) +
            $sym_file->get_new_symbols($sym_file_dup)), 0, "reappeared optional symbol: neither NEW nor LOST");
@@ -346,8 +350,9 @@ my $symbol21 = $tags_obj_amd64->get_symbol('symbol21_amd64@Base');
 $tags_obj_i386->add_dynamic_symbol($symbol21);
 $sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
 $sym = $sym_file->lookup_symbol('symbol21_amd64@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol21_amd64@Base', 'symbol_templ' => 'symbol21_amd64@Base',
-		  'symbol_quoted' => "'", 'minver' => '2.1', 'dep_id' => 0, 'deprecated' => 0 ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol21_amd64@Base',
+		  symbol_templ => 'symbol21_amd64@Base', symbol_quoted => "'",
+		  minver => '2.1', dep_id => 0, deprecated => 0),
 	    'symbol appears on foreign arch, arch tag should be removed');
 @tmp = map { $_->{symbol}->get_symbolname() } $sym_file->get_new_symbols($sym_file_dup);
 is_deeply( \@tmp, [ 'symbol21_amd64@Base' ], "symbol from foreign arch is NEW");
@@ -359,15 +364,19 @@ delete $tags_obj_i386->{dynsyms}{'symbol41_i386_and_optional@Base'};
 $sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
 
 $sym = $sym_file->lookup_symbol('symbol22_i386@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol22_i386@Base', 'symbol_templ' => 'symbol22_i386@Base',
-		  'minver' => '2.2', 'dep_id' => 0, 'deprecated' => '100.MISSING',
-		  'tags' => { 'arch' => '!amd64 !ia64 !alpha' }, 'tagorder' => [ 'arch' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol22_i386@Base',
+		  symbol_templ => 'symbol22_i386@Base',
+		  minver => '2.2', dep_id => 0, deprecated => '100.MISSING',
+		  tags => { arch => '!amd64 !ia64 !alpha' },
+		  tagorder => [ 'arch' ]),
 	    'disappeared arch specific symbol gets deprecated');
 $sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libbasictags.so.1'], 1);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol41_i386_and_optional@Base',
-		  'symbol_templ' => 'symbol41_i386_and_optional@Base', 'symbol_quoted' => '"',
-		  'minver' => '4.1', 'dep_id' => 0, 'deprecated' => '100.MISSING',
-		  'tags' => { 'arch' => 'i386', 'optional' => 'reason' }, 'tagorder' => [ 'arch', 'optional' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol41_i386_and_optional@Base',
+		  symbol_templ => 'symbol41_i386_and_optional@Base',
+		  symbol_quoted => '"',
+		  minver => '4.1', dep_id => 0, deprecated => '100.MISSING',
+		  tags => { arch => 'i386', optional => 'reason' },
+		  tagorder => [ 'arch', 'optional' ]),
 	    'disappeared optional arch specific symbol gets deprecated');
 @tmp = map { $_->{symbol}->get_symbolname() } $sym_file->get_lost_symbols($sym_file_dup);
 is_deeply( \@tmp, [ 'symbol22_i386@Base' ], "missing arch specific is LOST, but optional arch specific isn't");
@@ -375,24 +384,28 @@ is_deeply( \@tmp, [ 'symbol22_i386@Base' ], "missing arch specific is LOST, but
 # Tests for tagged #includes
 $sym_file = Dpkg::Shlibs::SymbolFile->new(file => "$datadir/symbols.include-3", arch => 'i386');
 $sym = $sym_file->lookup_symbol('symbol2_fake1@Base', ['libbasictags.so.2']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol2_fake1@Base',
-		  'minver' => '1.0', 'tags' => { 'optional' => undef, 'random tag' => 'random value' },
-		  'tagorder' => [ 'optional', 'random tag' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol2_fake1@Base',
+		  minver => '1.0',
+		  tags => { optional => undef, 'random tag' => 'random value' },
+		  tagorder => [ 'optional', 'random tag' ] ),
 	    'symbols from #included file inherits tags');
 $sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol41_i386_and_optional@Base',
-		  'symbol_templ' => 'symbol41_i386_and_optional@Base', symbol_quoted => '"',
-		  'minver' => '4.1', 'tags' => { 'optional' => 'reason', 't' => 'v', 'arch' => 'i386' },
-		  'tagorder' => [ 'optional', 't', 'arch' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol41_i386_and_optional@Base',
+		  symbol_templ => 'symbol41_i386_and_optional@Base',
+		  symbol_quoted => '"',
+		  minver => '4.1',
+		  tags => { optional => 'reason', t => 'v', arch => 'i386' },
+		  tagorder => [ 'optional', 't', 'arch' ]),
 	    'symbols in #included file can override tag values');
 $sym = $sym_file->lookup_symbol('symbol51_untagged@Base', ['libbasictags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol51_untagged@Base',
-		  'minver' => '5.1', 'tags' => { 'optional' => 'from parent', 't' => 'v' },
-		  'tagorder' => [ 'optional', 't' ] ),
+is_deeply($sym, Dpkg::Shlibs::Symbol->new(symbol => 'symbol51_untagged@Base',
+		  minver => '5.1',
+		  tags => { optional => 'from parent', t => 'v' },
+		  tagorder => [ 'optional', 't' ]),
 	    'symbols are properly cloned when #including');
 
 # Test Symbol::clone()
-$sym = Dpkg::Shlibs::Symbol->new(symbol => 'foobar', testfield => 1, teststruct => { 'foo' => 1 });
+$sym = Dpkg::Shlibs::Symbol->new(symbol => 'foobar', testfield => 1, teststruct => { foo => 1 });
 $tmp = $sym->clone();
 $tmp->{teststruct}{foo} = 3;
 $tmp->{testfield} = 3;

+ 6 - 6
utils/t/100_update_alternatives.t

@@ -51,22 +51,22 @@ my @choices = (
 	priority => 20,
 	slaves => [
 	    {
-		"link" => "$bindir/slave2",
+		link => "$bindir/slave2",
 		name => "slave2",
 		path => $paths{cat},
 	    },
 	    {
-		"link" => "$bindir/slave3",
+		link => "$bindir/slave3",
 		name => "slave3",
 		path => $paths{cat},
 	    },
 	    {
-		"link" => "$bindir/slave1",
+		link => "$bindir/slave1",
 		name => "slave1",
 		path => $paths{yes},
 	    },
 	    {
-		"link" => "$bindir/slave4",
+		link => "$bindir/slave4",
 		name => "slave4",
 		path => $paths{cat},
 	    },
@@ -77,7 +77,7 @@ my @choices = (
         priority => 10,
         slaves => [
 	    {
-		"link" => "$bindir/slave1",
+		link => "$bindir/slave1",
 		name => "slave1",
 		path => $paths{date},
 	    },
@@ -100,7 +100,7 @@ sub cleanup {
 
 sub call_ua {
     my ($params, %opts) = @_;
-    spawn("exec" => [ @ua, @$params ], nocheck => 1,
+    spawn(exec => [ @ua, @$params ], nocheck => 1,
 	  wait_child => 1, env => { LC_ALL => "C" }, %opts);
     my $test_id = "";
     $test_id = "$opts{test_id}: " if defined $opts{test_id};