You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
7.6 KiB
203 lines
7.6 KiB
#
|
|
# BackupPC-2.1.2pl2.diff: BackupPC patch file generated
|
|
# on Sun Jun 18 19:36:32 2006.
|
|
#
|
|
# This patch file should be applied to a cleanly unpacked BackupPC
|
|
# version 2.1.2. Do not apply any old patch files; each
|
|
# patch file accumulates all previous changes.
|
|
#
|
|
# Example:
|
|
#
|
|
# # fetch BackupPC-2.1.2.tar.gz
|
|
# # fetch BackupPC-2.1.2pl2.diff
|
|
# tar zxvf BackupPC-2.1.2.tar.gz
|
|
# cd BackupPC-2.1.2
|
|
# patch -p0 < ../BackupPC-2.1.2pl2.diff
|
|
# perl configure.pl
|
|
#
|
|
# ChangeLog:
|
|
#
|
|
# - In conf/config.pl, changed --devices to -D in $Conf{RsyncArgs}
|
|
# and $Conf{RsyncRestoreArgs} to fix "fileListReceive failed" and
|
|
# "Can't open .../f%2f for empty output" errors with rsync 2.6.7+.
|
|
# Fix proposed by Justin Pessa and Vincent Ho, and confirmed by
|
|
# Dan Niles.
|
|
#
|
|
# - Added patch from Michael (mna.news) to ignore "file is unchanged"
|
|
# message from tar 1.15.x during incremental backups.
|
|
#
|
|
# - Fixed creation of .rsrc directories in bin/BackupPC_tarExtract
|
|
# when used with xtar on MacOS. Reported by Samuel Bancal and
|
|
# Matthew Radey, who helped with debugging.
|
|
#
|
|
# - Fixed bug in BackupPC_tarExtract for files >8GB in size whose
|
|
# lengths are multiples of 256. Reported by Jamie Myers and
|
|
# Marko Tukiainen, who both helped debugging the problem.
|
|
#
|
|
# - Fixed bug in lib/BackupPC/Xfer/RsyncFileIO.pm that caused
|
|
# incorrected deleted attributes to be set in directories
|
|
# where one of the files had an rsync phase 1 retry during
|
|
# an incremental. Reported by Tony Nelson.
|
|
#
|
|
--- bin/BackupPC_tarExtract 2005-09-05 16:21:21.000000000 -0700
|
|
+++ 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,
|
|
--- lib/BackupPC/Lib.pm 2005-09-05 16:21:21.000000000 -0700
|
|
+++ 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
|
|
--- lib/BackupPC/Xfer/RsyncFileIO.pm 2005-09-05 16:21:21.000000000 -0700
|
|
+++ 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
|
|
--- lib/BackupPC/Xfer/Tar.pm 2005-09-05 16:21:21.000000000 -0700
|
|
+++ 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
|
|
--- conf/config.pl 2005-09-05 16:21:22.000000000 -0700
|
|
+++ 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',
|