]> gitweb.michael.orlitzky.com - mjo-overlay.git/blobdiff - app-backup/backuppc/files/BackupPC-2.1.2pl2.diff
Add app-backup/backuppc from ::gentoo.
[mjo-overlay.git] / app-backup / backuppc / files / BackupPC-2.1.2pl2.diff
diff --git a/app-backup/backuppc/files/BackupPC-2.1.2pl2.diff b/app-backup/backuppc/files/BackupPC-2.1.2pl2.diff
new file mode 100644 (file)
index 0000000..e98ff4f
--- /dev/null
@@ -0,0 +1,202 @@
+#
+# 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',