chiark / gitweb /
nailing-cargo: Properly handle renamed packages
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 17 Aug 2021 16:26:41 +0000 (17:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 17 Aug 2021 16:26:41 +0000 (17:26 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
nailing-cargo

index e04c6a585f8755a2c56ad6008b30cb8ba7f81f8f..9724783b2f8460d85caae8a66e5e3f602be5e7db 100755 (executable)
@@ -542,11 +542,12 @@ sub calculate () {
     my ($toml, $mf_org_subdir) = @{ $manifests{$mf} };
     foreach my $deps (get_dependency_tables $toml) {
       next unless $deps;
-      foreach my $p (keys %packagemap) {
-       my $info = $deps->{$p};
-       next unless defined $info;
+      foreach my $dep_key (keys %$deps) {
+       my $info = $deps->{$dep_key};
+       my $p = (ref $info ? $info->{package} : undef) // $dep_key;
+       next unless defined $packagemap{$p};
        next if $packagemap{$p}[1] eq $mf_org_subdir;
-       $deps->{$p} = $info = { } unless ref $info; # was just version
+       $deps->{$dep_key} = $info = { } unless ref $info; # was just version
        my $oldpath = $info->{path};
        delete $info->{version};
        my $newpath = $worksphere.'/'.$packagemap{$p}[0];