From 29932a770bbcb1355296afc72c91f70c56eddae1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20=27Wolvverine=27=20Panasiewicz?= Date: Mon, 19 Jun 2006 06:42:17 +0000 Subject: [PATCH] patch level 2 Changed files: backuppc-2.1.2pl2.patch -> 1.1 --- backuppc-2.1.2pl2.patch | 161 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 backuppc-2.1.2pl2.patch diff --git a/backuppc-2.1.2pl2.patch b/backuppc-2.1.2pl2.patch new file mode 100644 index 0000000..fe79228 --- /dev/null +++ b/backuppc-2.1.2pl2.patch @@ -0,0 +1,161 @@ +--- BackupPC-2.1.2.orig/bin/BackupPC_tarExtract 2005-09-05 16:21:21.000000000 -0700 ++++ BackupPC-2.1.2/bin/BackupPC_tarExtract 2006-06-18 19:36:31.995945464 -0700 +@@ -58,7 +58,7 @@ + exit(1); + } + my $client = $1; +-if ( $ARGV[1] !~ /^([\w\s\.\/\$-]+)$/ ) { ++if ( $ARGV[1] !~ /^([\w\s.\/$(){}[\]-]+)$/ ) { + print("$0: bad share name '$ARGV[1]'\n"); + exit(1); + } +@@ -101,7 +101,7 @@ + # Copyright 1998 Stephen Zander. All rights reserved. + # + my $tar_unpack_header +- = 'Z100 A8 A8 A8 A12 A12 A8 A1 Z100 A6 A2 Z32 Z32 A8 A8 A155 x12'; ++ = 'Z100 A8 A8 A8 a12 A12 A8 A1 Z100 A6 A2 Z32 Z32 A8 A8 A155 x12'; + my $tar_header_length = 512; + + my $BufSize = 1048576; # 1MB or 2^20 +@@ -251,7 +251,7 @@ + $name = $longName if ( defined($longName) ); + $linkname = $longLink if ( defined($longLink) ); + $name =~ s{^\./+}{}; +- $name =~ s{/+$}{}; ++ $name =~ s{/+\.?$}{}; + $name =~ s{//+}{/}g; + return { + name => $name, +@@ -313,7 +313,7 @@ + # + my($nRead); + #print("Reading $f->{name}, $f->{size} bytes, type $f->{type}\n"); +- pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $file, $f); ++ pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $f); + my $poolWrite = BackupPC::PoolWrite->new($bpc, + "$OutDir/$ShareName/$f->{mangleName}", + $f->{size}, $Compress); +@@ -351,7 +351,7 @@ + # a plain file. + # + $f->{size} = length($f->{linkname}); +- pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $file, $f); ++ pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $f); + my $poolWrite = BackupPC::PoolWrite->new($bpc, + "$OutDir/$ShareName/$f->{mangleName}", + $f->{size}, $Compress); +@@ -369,7 +369,7 @@ + # contents. + # + $f->{size} = length($f->{linkname}); +- pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $file, $f); ++ pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $f); + my $poolWrite = BackupPC::PoolWrite->new($bpc, + "$OutDir/$ShareName/$f->{mangleName}", + $f->{size}, $Compress); +@@ -393,7 +393,7 @@ + } else { + $data = "$f->{devmajor},$f->{devminor}"; + } +- pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $file, $f); ++ pathCreate($dir, "$OutDir/$ShareName/$f->{mangleName}", $f); + my $poolWrite = BackupPC::PoolWrite->new($bpc, + "$OutDir/$ShareName/$f->{mangleName}", + length($data), $Compress); +@@ -487,17 +487,21 @@ + # + sub pathCreate + { +- my($dir, $fullPath, $file, $f) = @_; ++ my($dir, $fullPath, $f) = @_; + + # + # Get parent directory of each of $dir and $fullPath + # +- $dir =~ s{/[^/]*$}{}; ++ # print("pathCreate: dir = $dir, fullPath = $fullPath\n"); ++ $dir =~ s{/([^/]*)$}{}; ++ my $file = $bpc->fileNameUnmangle($1); + $fullPath =~ s{/[^/]*$}{}; +- return if ( -d $fullPath ); ++ return if ( -d $fullPath || $file eq "" ); ++ unlink($fullPath) if ( -e $fullPath ); + mkpath($fullPath, 0, 0777); + $Attrib{$dir} = BackupPC::Attrib->new({ compress => $Compress }) + if ( !defined($Attrib{$dir}) ); ++ # print("pathCreate: adding file = $file to dir = $dir\n"); + $Attrib{$dir}->set($file, { + type => BPC_FTYPE_DIR, + mode => 0755, +--- BackupPC-2.1.2.orig/lib/BackupPC/Lib.pm 2005-09-05 16:21:21.000000000 -0700 ++++ BackupPC-2.1.2/lib/BackupPC/Lib.pm 2006-06-18 19:36:32.035939384 -0700 +@@ -59,7 +59,7 @@ + TopDir => $topDir || '__TOPDIR__', + BinDir => $installDir || '__INSTALLDIR__', + LibDir => $installDir || '__INSTALLDIR__', +- Version => '2.1.2', ++ Version => '2.1.2pl2', + BackupFields => [qw( + num type startTime endTime + nFiles size nFilesExist sizeExist nFilesNew sizeNew +--- BackupPC-2.1.2.orig/lib/BackupPC/Xfer/RsyncFileIO.pm 2005-09-05 16:21:21.000000000 -0700 ++++ BackupPC-2.1.2/lib/BackupPC/Xfer/RsyncFileIO.pm 2006-06-18 19:36:32.120926464 -0700 +@@ -405,6 +405,11 @@ + my($fio, $d) = @_; + my($poolWrite); + ++ # ++ # Don't write attributes on 2nd phase - they're already ++ # taken care of during the first phase. ++ # ++ return if ( $fio->{phase} > 0 ); + if ( !defined($d) ) { + # + # flush all entries (in reverse order) +@@ -932,6 +937,7 @@ + + close($fio->{rxInFd}) if ( defined($fio->{rxInFd}) ); + unlink("$fio->{outDirSh}RStmp") if ( -f "$fio->{outDirSh}RStmp" ); ++ $fio->{phase} = $phase; + + # + # Check the final md4 digest +--- BackupPC-2.1.2.orig/lib/BackupPC/Xfer/Tar.pm 2005-09-05 16:21:21.000000000 -0700 ++++ BackupPC-2.1.2/lib/BackupPC/Xfer/Tar.pm 2006-06-18 19:36:32.110927984 -0700 +@@ -221,8 +221,13 @@ + $t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 2 ); + $t->{fileCnt}++; + } else { +- $t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 0 ); +- $t->{xferErrCnt}++; ++ # ++ # Ignore annoying log message on incremental for tar 1.15.x ++ # ++ if ( !/: file is unchanged; not dumped$/ ) { ++ $t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 0 ); ++ $t->{xferErrCnt}++; ++ } + # + # If tar encounters a minor error, it will exit with a non-zero + # status. We still consider that ok. Remember if tar prints +--- BackupPC-2.1.2.orig/conf/config.pl 2005-09-05 16:21:22.000000000 -0700 ++++ BackupPC-2.1.2/conf/config.pl 2006-06-18 19:36:31.968949568 -0700 +@@ -1052,7 +1052,7 @@ + '--perms', + '--owner', + '--group', +- '--devices', ++ '-D', + '--links', + '--times', + '--block-size=2048', +@@ -1086,7 +1086,7 @@ + '--perms', + '--owner', + '--group', +- '--devices', ++ '-D', + '--links', + '--times', + '--block-size=2048', -- 2.44.0