#! /usr/bin/perl use warnings; use strict; use MLDBM qw(DB_File Storable); use Fcntl; $MLDBM::DumpMeth=q(portable); my (%srcbin, %binsrc); tie %srcbin, 'MLDBM', '/org/bugs.debian.org/versions/indices/srcbin.idx', O_CREAT|O_RDWR, 0644 or die "tie srcbin.idx: $!"; tie %binsrc, 'MLDBM', '/org/bugs.debian.org/versions/indices/binsrc.idx', O_CREAT|O_RDWR, 0644 or die "tie binsrc.idx: $!"; my @files = @ARGV; for my $file (@files) { my $fh = IO::File->new($file,'r') or die "Unable to open $file for reading: $!"; while (<$fh>) { chomp; next unless length $_; my ($binname, $binver, $binarch, $srcname, $srcver) = split; # if $srcver is not defined, this is probably a broken # .debinfo file [they were causing #686106, see commit # 49c85ab8 in dak.] Basically, $binarch didn't get put into # the file, so we'll fudge it from the filename. if (not defined $srcver) { ($srcname,$srcver) = ($binarch,$srcname); ($binarch) = $file =~ /_([^\.]+)\.debinfo/; } print STDERR "$binname/$binver/$binarch => $srcname/$srcver\n"; # see MLDBM(3pm)/BUGS my $tmp = $srcbin{$srcname}; push @{$tmp->{$srcver}}, [$binname, $binver, $binarch]; $srcbin{$srcname} = $tmp; $tmp = $binsrc{$binname}; $tmp->{$binver}{$binarch} = [$srcname, $srcver]; $binsrc{$binname} = $tmp; } }