#========================================================================
use strict;
+no utf8;
use vars qw(%Conf %OrigConf);
use lib "./lib";
if ( $ConfigPath ne "" && -r $ConfigPath ) {
(my $topDir = $ConfigPath) =~ s{/[^/]+/[^/]+$}{};
die("BackupPC::Lib->new failed\n")
- if ( !($bpc = BackupPC::Lib->new($topDir, ".")) );
+ if ( !($bpc = BackupPC::Lib->new($topDir, ".", 1)) );
%Conf = $bpc->Conf();
%OrigConf = %Conf;
$Conf{TopDir} = $topDir;
- my $err = $bpc->ServerConnect($Conf{ServerHost}, $Conf{ServerPort}, 1);
+ my $err = $bpc->ServerConnect($Conf{ServerHost}, $Conf{ServerPort}, 1);
if ( $err eq "" ) {
print <<EOF;
#
# Create install directories
#
-foreach my $dir ( qw(bin lib/BackupPC/Xfer lib/BackupPC/Zip
- lib/BackupPC/Lang doc) ) {
+foreach my $dir ( qw(bin doc
+ lib/BackupPC/CGI
+ lib/BackupPC/Lang
+ lib/BackupPC/Xfer
+ lib/BackupPC/Zip
+ ) ) {
next if ( -d "$Conf{InstallDir}/$dir" );
mkpath("$Conf{InstallDir}/$dir", 0, 0775);
if ( !-d "$Conf{InstallDir}/$dir"
unlink("$Conf{InstallDir}/bin/BackupPC_queueAll");
printf("Installing library in $Conf{InstallDir}/lib\n");
-foreach my $lib ( qw(BackupPC/Lib.pm BackupPC/FileZIO.pm BackupPC/Attrib.pm
- BackupPC/PoolWrite.pm BackupPC/View.pm BackupPC/Xfer/Tar.pm
- BackupPC/Xfer/Smb.pm BackupPC/Xfer/Rsync.pm
- BackupPC/Xfer/RsyncFileIO.pm BackupPC/Zip/FileMember.pm
- BackupPC/Lang/en.pm BackupPC/Lang/fr.pm BackupPC/Lang/es.pm
+foreach my $lib ( qw(
+ BackupPC/Lib.pm
+ BackupPC/FileZIO.pm
+ BackupPC/Attrib.pm
+ BackupPC/PoolWrite.pm
+ BackupPC/View.pm
+ BackupPC/Xfer/Tar.pm
+ BackupPC/Xfer/Smb.pm
+ BackupPC/Xfer/Rsync.pm
+ BackupPC/Xfer/RsyncFileIO.pm
+ BackupPC/Zip/FileMember.pm
+ BackupPC/Lang/en.pm
+ BackupPC/Lang/fr.pm
+ BackupPC/Lang/es.pm
+ BackupPC/Lang/de.pm
+ BackupPC/CGI/Browse.pm
+ BackupPC/CGI/DirHistory.pm
+ BackupPC/CGI/EmailSummary.pm
+ BackupPC/CGI/GeneralInfo.pm
+ BackupPC/CGI/HostInfo.pm
+ BackupPC/CGI/Lib.pm
+ BackupPC/CGI/LOGlist.pm
+ BackupPC/CGI/Queue.pm
+ BackupPC/CGI/RestoreFile.pm
+ BackupPC/CGI/RestoreInfo.pm
+ BackupPC/CGI/Restore.pm
+ BackupPC/CGI/StartStopBackup.pm
+ BackupPC/CGI/Summary.pm
+ BackupPC/CGI/View.pm
) ) {
InstallFile("lib/$lib", "$Conf{InstallDir}/lib/$lib", 0444);
}
}
printf("Making init.d scripts\n");
-foreach my $init ( qw(linux-backuppc solaris-backuppc debian-backuppc) ) {
+foreach my $init ( qw(gentoo-backuppc gentoo-backuppc.conf linux-backuppc
+ solaris-backuppc debian-backuppc suse-backuppc) ) {
InstallFile("init.d/src/$init", "init.d/$init", 0444);
}
unless chown($uid, $gid, $confCopy);
die("can't chmod $mode $confCopy\n") unless chmod($mode, $confCopy);
}
-open(OUT, ">$dest") || die("can't open $dest for writing\n");
+open(OUT, ">", $dest) || die("can't open $dest for writing\n");
+binmode(OUT);
my $blockComment;
foreach my $var ( @$newConf ) {
if ( length($blockComment)
Enjoy!
EOF
+if ( $ENV{LANG} =~ /utf/i && $^V ge v5.8.0 ) {
+ print <<EOF;
+
+WARNING: Your LANG environment variable is set to $ENV{LANG}, which
+doesn't behave well with this version of perl. Please set the
+LANG environment variable to en_US before running BackupPC.
+
+On RH-8 this setting is in the file /etc/sysconfig/i18n, or you
+could set it in BackupPC's init.d script.
+EOF
+}
+
+exit(0);
+
###########################################################################
# Subroutines
###########################################################################
if ( $binary ) {
die("can't copy($prog, $dest)\n") unless copy($prog, $dest);
} else {
- open(PROG, $prog) || die("can't open $prog for reading\n");
- open(OUT, ">$dest") || die("can't open $dest for writing\n");
+ open(PROG, $prog) || die("can't open $prog for reading\n");
+ open(OUT, ">", $dest) || die("can't open $dest for writing\n");
+ binmode(PROG);
+ binmode(OUT);
while ( <PROG> ) {
s/__INSTALLDIR__/$Conf{InstallDir}/g;
s/__TOPDIR__/$Conf{TopDir}/g;
{
my($file) = @_;
open(C, $file) || die("can't open $file");
+ binmode(C);
my($out, @conf, $var);
my $comment = 1;
my $allVars = {};