diff --git a/SWIM/DB.pm b/SWIM/DB.pm index 4380dc2..083bfd5 100644 --- a/SWIM/DB.pm +++ b/SWIM/DB.pm @@ -31,7 +31,7 @@ use Exporter; # --db --rebuildflatdb db() rebuildflatdb() # The goal here is to save some time by just updating the database rather -# than rebuilding it. Generally, though, swim -i would be the +# than rebuilding it. Generally, though, swim -i would be the # favorable way of doing this, and ultimately may become the primary way of # setting up the databases after the required packages for this program are # set-up. This is because --db has to check the status file, whereas -i @@ -107,19 +107,23 @@ sub db { elsif (/^Status:/) { chomp; $status = substr($_,8); - # a test - #if ($status eq "purge ok not-installed") { - # if (defined $db{$package[1]}) { - # print "$db{$package[1]}\n"; - # } - #} - } + # a test and now a solution + if ($status eq "purge ok not-installed") { + ########## + # PURGED # + ########## + if (defined $db{$package[1]}) { + #push(@gone,"$db{$package[1]}"); + print "$db{$package[1]}\n"; + } + } + } # hold ok not-installed - may want to change this just to # non-installed. ########### # VERSION # ########### - elsif (/^Version:/ && $status !~ /not-installed/) { + elsif ( /^Version:/ && $status !~ /not-installed/ ) { my $version = $_; chomp $version; my $ver = m,Version:\s(.*),; my $statusname; if (defined $sb{$package[1]}) { @@ -131,8 +135,8 @@ sub db { ######## if (defined $db{$package[1]}) { push(@gone,"$package[1]_$1"); - if ("$package[1]_$1" ne $db{$package[1]}) { - $compare{$package[1]} = "$package[1]_$1"; + if ( "$package[1]_$1" ne $db{$package[1]} ) { + $compare{$package[1]} = "$package[1]_$1"; } # Version remained the same, but status changed # even though $statusname may be undefined..this @@ -162,7 +166,7 @@ sub db { # taken care of beforehand, because this ignores those here. Some time # may have been saved by using a separate database rather than /., but, # this keeps things clean. - if ($ib{$rootsky}){ + if ($ib{$rootsky}){ @before = split(/\s/,$ib{$rootsky}); my %tracker; grep($tracker{$_}++,@gone); @@ -221,6 +225,7 @@ sub db { untie %ib; undef %ib; + # Going to be adding some stuff to nsearchindex.deb and ndirindex.deb # so better remove any compressed versions if they exist if (@GONE || @NEW) { @@ -329,8 +334,8 @@ sub db { # files for *.list are in ./info/backup/*.list.bk. We will also have to # deal with those rare cases that forget /. (smail 2.0v). We should remove # this file as well as the packagename-conf.md5sums file below. - my $file = "$parent$base/info/backup/$_.list.bk"; - my $md5sum_file = "$parent$base/info/$_-conf.md5sums"; + my $file = "$main::home$parent$base/info/backup/$_.list.bk"; + my $md5sum_file = "$main::home$parent$base/info/$_-conf.md5sums"; open(LIST,"$file"); while () { chomp; @@ -355,7 +360,7 @@ sub db { ####################### my $yit = (split(/\s/,$sb{$orig_argument}))[3]; if ($yit eq "deinstall:ok:config-files" || - $yit eq "purge:ok:config-files") { + $yit eq "purge:ok:config-files" ) { if (defined $ib{"/."}) { my $status = ($ib{"/."} =~ s,$packname_version ,,); if ($status eq "") { @@ -797,26 +802,28 @@ sub db { # made, might as well use this. There is a possibility this can be # used instead of fastswim for initial fileindex.deb. my $package_name; - if (!-d "$parent$base/info/backup") { - mkdir("$parent$base/info/backup",0666); + if (!-d "$main::home$parent$base/info/backup") { + mkdir("$main::home$parent$base/info/backup",0666); } print STDERR "\n" if $#NEW != -1; $x = 1; foreach $package_name (@NEW) { - open(FILENAME,"$parent$base/info/$package_name.list"); - open(CP,">$parent$base/info/backup/$package_name.list.bk"); - while () { - print CP $_; - } - close(FILENAME); - close(CP); + open(FILENAME,"$main::home$parent$base/info/$package_name.list"); + open(CP,">$main::home$parent$base/info/backup/$package_name.list.bk"); + if ( -e "$main::home$parent$base/info/$package_name.list" ) { + while () { + print CP $_; + } + } + close(FILENAME); + close(CP); - my $file = "$parent$base/info/backup/$package_name.list.bk"; - print STDERR "#$x"; print STDERR " N|C $package_name.list \r"; - $x++; - open(LIST,"$file"); - while () { - chomp; + my $file = "$main::home$parent$base/info/backup/$package_name.list.bk"; + print STDERR "#$x"; print STDERR " N|C $package_name.list \r"; + $x++; + open(LIST,"$file"); + while () { + chomp; # Better add the new stuff to the flat files first if (!defined $ib{$_}) { @@ -865,7 +872,7 @@ sub db { my $zit; my ($nit,$yit) = (split(/\s/,$sb{$package_name}))[0,3]; if ($yit eq "deinstall:ok:config-files" || - $yit eq "purge:ok:config-files") { + $yit eq "purge:ok:config-files" ) { ($zit = $nit) =~ s,\+,\\\+,; if ($ib{"/."} !~ m,$zit,) { $ib{"/."} = $ib{"/."} . " $zit"; diff --git a/pkg/dpkg/changelog b/pkg/dpkg/changelog index 4467ea0..814e757 100644 --- a/pkg/dpkg/changelog +++ b/pkg/dpkg/changelog @@ -1,9 +1,19 @@ +dswim (0.4.3-1) unstable; urgency=low + + * Stricter checking in Perl 5.8 caused the db not to be built if + fastswim noticed non-existent files because this is considered a + fatal error. Removed the die function and now check for non- + existent files in fastswim, imswim also produced some related error + output that was fixed. + + -- Jonathan Rosenbaum Wed, 5 Jan 2005 22:48:34 -0500 + dswim (0.4.2-1) unstable; urgency=low * Fixes error output caused by repetitive opts found by the recent Getopt::Long. Rebuild db if you've updated to the newest DB_File. - -- Jonathan Rosenbaum Wed, 6 Nov 2002 08:16:49 -0500 + -- Jonathan Rosenbaum Wed, 6 Nov 2002 08:16:49 -0500 dswim (0.4.1-1) unstable; urgency=low