13.02.2013 17:55, Richard Shaw пишет:
On Mon, Feb 11, 2013 at 5:25 AM, Alexander Moisseev
<mois...@mezonplus.ru> wrote:
Some patches for BackupPC 3.2.1:
I would be willing to test these on my home BackupPC system. Could you
provide a unified diff?
Thanks,
Richard
All files attached to original post are unified format diffs. Files named patch-* where *
indicates the pathname of the file that is patched. I made this patches for FreeBSD port
sysutils/backuppc. If you asked for "all-in-one" patch, see it in attachment.
Regards,
Alexander
diff -ruN BackupPC-3.2.1.orig/bin/BackupPC_zipCreate
BackupPC-3.2.1/bin/BackupPC_zipCreate
--- BackupPC-3.2.1.orig/bin/BackupPC_zipCreate 2011-04-25 07:31:55.000000000
+0400
+++ BackupPC-3.2.1/bin/BackupPC_zipCreate 2013-02-13 19:15:14.000000000
+0400
@@ -21,7 +21,7 @@
# -r pathRemove path prefix that will be replaced with pathAdd
# -p pathAdd new path prefix
# -c level compression level (default is 0, no compression)
-# -e charset charset for encoding file names (default: cp1252)
+# -e charset charset for encoding file names (default: utf8)
#
# The -h, -n and -s options specify which dump is used to generate
# the zip archive. The -r and -p options can be used to relocate
@@ -93,7 +93,7 @@
-r pathRemove path prefix that will be replaced with pathAdd
-p pathAdd new path prefix
-c level compression level (default is 0, no compression)
- -e charset charset for encoding file names (default: cp1252)
+ -e charset charset for encoding file names (default: utf8)
EOF
exit(1);
}
@@ -135,7 +135,7 @@
exit(1);
}
-my $Charset = "cp1252";
+my $Charset = ""; # default: utf8
$Charset = $opts{e} if ( $opts{e} ne "" );
my $PathRemove = $1 if ( $opts{r} =~ /(.+)/ );
@@ -311,6 +311,14 @@
# Specify the compression level for this member
$zipmember->desiredCompressionLevel($compLevel) if ($compLevel =~ /[0-9]/);
+ if ( $Charset =~ /^(?:utf[-_]?8)?$/i ) {
+ # Set general purpose bit 11 for UTF-8 code page
+ $zipmember->{bitFlag} = $zipmember->{bitFlag} | 0x0800 ;
+ } elsif ( $Charset =~
/^cp(?:437|720|737|775|85[02578]|86[069]|874|93[26]|949|950)$/i ) {
+ # Set "version made by" field to 0 (MS-DOS) for OEM code pages
+ $zipmember->fileAttributeFormat('FA_MSDOS');
+ }
+
# Finally Zip the member
$zipfh->addMember($zipmember);
}
diff -ruN BackupPC-3.2.1.orig/conf/config.pl BackupPC-3.2.1/conf/config.pl
--- BackupPC-3.2.1.orig/conf/config.pl 2011-04-25 07:31:55.000000000 +0400
+++ BackupPC-3.2.1/conf/config.pl 2013-02-13 19:15:14.000000000 +0400
@@ -976,7 +976,7 @@
# redirection and pipes; put that in a script if you need it.
#
$Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName'
- . ' $I_option -U $userName -E -N -d 1'
+ . ' $I_option -U $userName -E -d 1'
. ' -c tarmode\\ full -Tc$X_option - $fileList';
#
@@ -990,7 +990,7 @@
# redirection and pipes; put that in a script if you need it.
#
$Conf{SmbClientIncrCmd} = '$smbClientPath \\\\$host\\$shareName'
- . ' $I_option -U $userName -E -N -d 1'
+ . ' $I_option -U $userName -E -d 1'
. ' -c tarmode\\ full -TcN$X_option $timeStampFile - $fileList';
#
@@ -1008,7 +1008,7 @@
# redirection and pipes; put that in a script if you need it.
#
$Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName'
- . ' $I_option -U $userName -E -N -d 1'
+ . ' $I_option -U $userName -E -d 1'
. ' -c tarmode\\ full -Tx -';
###########################################################################
diff -ruN BackupPC-3.2.1.orig/doc/BackupPC.html BackupPC-3.2.1/doc/BackupPC.html
--- BackupPC-3.2.1.orig/doc/BackupPC.html 2011-04-25 07:31:55.000000000
+0400
+++ BackupPC-3.2.1/doc/BackupPC.html 2013-02-13 19:15:14.000000000 +0400
@@ -1664,7 +1664,7 @@
-r pathRemove path prefix that will be replaced with pathAdd
-p pathAdd new path prefix
-c level compression level (default is 0, no compression)
- -e charset charset for encoding file names (default: cp1252)</pre>
+ -e charset charset for encoding file names (default: utf8)</pre>
<p>The command-line files and directories are relative to the specified
shareName. The zip file is written to stdout. The -h, -n and -s
options specify which dump is used to generate the zip archive. The
diff -ruN BackupPC-3.2.1.orig/doc/BackupPC.pod BackupPC-3.2.1/doc/BackupPC.pod
--- BackupPC-3.2.1.orig/doc/BackupPC.pod 2011-04-25 07:31:55.000000000
+0400
+++ BackupPC-3.2.1/doc/BackupPC.pod 2013-02-13 19:15:14.000000000 +0400
@@ -1729,7 +1729,7 @@
-r pathRemove path prefix that will be replaced with pathAdd
-p pathAdd new path prefix
-c level compression level (default is 0, no compression)
- -e charset charset for encoding file names (default: cp1252)
+ -e charset charset for encoding file names (default: utf8)
The command-line files and directories are relative to the specified
shareName. The zip file is written to stdout. The -h, -n and -s
diff -ruN BackupPC-3.2.1.orig/lib/BackupPC/CGI/Restore.pm
BackupPC-3.2.1/lib/BackupPC/CGI/Restore.pm
--- BackupPC-3.2.1.orig/lib/BackupPC/CGI/Restore.pm 2011-04-25
07:31:55.000000000 +0400
+++ BackupPC-3.2.1/lib/BackupPC/CGI/Restore.pm 2013-02-13 19:15:14.000000000
+0400
@@ -233,6 +233,7 @@
"-n", $num,
"-c", $In{compressLevel},
"-s", $share,
+ "-e", $In{codePage},
@pathOpts,
@fileList
],
diff -ruN BackupPC-3.2.1.orig/lib/BackupPC/Lang/en.pm
BackupPC-3.2.1/lib/BackupPC/Lang/en.pm
--- BackupPC-3.2.1.orig/lib/BackupPC/Lang/en.pm 2011-04-25 07:31:55.000000000
+0400
+++ BackupPC-3.2.1/lib/BackupPC/Lang/en.pm 2013-02-13 19:15:14.000000000
+0400
@@ -530,8 +530,16 @@
to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
(otherwise archive will contain full paths).
<br>
-Compression (0=off, 1=fast,...,9=best)
-<input type="text" size="6" value="5" name="compressLevel">
+<table class="tableStnd" border="0">
+<tr>
+ <td>Compression (0=off, 1=fast,...,9=best)</td>
+ <td><input type="text" size="6" value="5" name="compressLevel"></td>
+</tr><tr>
+ <td>Code page (e.g. cp866)</td>
+ <td><input type="text" size="6" value="utf8" name="codePage"></td>
+</tr>
+</table>
+Note: for filenames with non latin characters OEM code page is compatible with
most of the ZIP archivers.
<br>
<input type="submit" value="Download Zip File" name="ignore">
</form>
diff -ruN BackupPC-3.2.1.orig/lib/BackupPC/Lib.pm
BackupPC-3.2.1/lib/BackupPC/Lib.pm
--- BackupPC-3.2.1.orig/lib/BackupPC/Lib.pm 2011-04-25 07:31:55.000000000
+0400
+++ BackupPC-3.2.1/lib/BackupPC/Lib.pm 2013-02-13 19:15:14.000000000 +0400
@@ -1409,7 +1409,7 @@
$conf->{$shareName} = [ $conf->{$shareName} ]
if ( ref($conf->{$shareName}) ne "ARRAY" );
- foreach my $param qw(BackupFilesOnly BackupFilesExclude) {
+ foreach my $param (qw(BackupFilesOnly BackupFilesExclude)) {
next if ( !defined($conf->{$param}) );
if ( ref($conf->{$param}) eq "HASH" ) {
#
diff -ruN BackupPC-3.2.1.orig/lib/BackupPC/Storage/Text.pm
BackupPC-3.2.1/lib/BackupPC/Storage/Text.pm
--- BackupPC-3.2.1.orig/lib/BackupPC/Storage/Text.pm 2011-04-25
07:31:55.000000000 +0400
+++ BackupPC-3.2.1/lib/BackupPC/Storage/Text.pm 2013-02-13 19:15:14.000000000
+0400
@@ -298,7 +298,7 @@
#
# Promote BackupFilesOnly and BackupFilesExclude to hashes
#
- foreach my $param qw(BackupFilesOnly BackupFilesExclude) {
+ foreach my $param (qw(BackupFilesOnly BackupFilesExclude)) {
next if ( !defined($conf->{$param}) || ref($conf->{$param}) eq "HASH"
);
$conf->{$param} = [ $conf->{$param} ]
if ( ref($conf->{$param}) ne "ARRAY" );
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
BackupPC-devel mailing list
BackupPC-devel@lists.sourceforge.net
List: https://lists.sourceforge.net/lists/listinfo/backuppc-devel
Wiki: http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/