* Couple of minor updates to BackupPC_Admin, documentation and ChangeLog
[BackupPC.git] / configure.pl
index b7a427a..ff910d0 100755 (executable)
@@ -15,7 +15,7 @@
 #   Craig Barratt <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
 #   Craig Barratt <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2001  Craig Barratt
+#   Copyright (C) 2001-2003  Craig Barratt
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 #
 #========================================================================
 #
 #
 #========================================================================
 #
-# Version __VERSION__, released __RELEASEDATE__.
+# Version 2.0.0_CVS, released 18 Jan 2003.
 #
 # See http://backuppc.sourceforge.net.
 #
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -99,7 +99,7 @@ my $bpc;
 if ( $ConfigPath ne "" && -r $ConfigPath ) {
     (my $topDir = $ConfigPath) =~ s{/[^/]+/[^/]+$}{};
     die("BackupPC::Lib->new failed\n")
 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;
     %Conf = $bpc->Conf();
     %OrigConf = %Conf;
     $Conf{TopDir} = $topDir;
@@ -127,7 +127,7 @@ my %Programs = (
     rsync      => "RsyncClientPath",
     ping       => "PingPath",
     df         => "DfPath",
     rsync      => "RsyncClientPath",
     ping       => "PingPath",
     df         => "DfPath",
-    'ssh2/ssh' => "SshPath",
+    'ssh/ssh2' => "SshPath",
     sendmail   => "SendmailPath",
     hostname   => "HostnamePath",
 );
     sendmail   => "SendmailPath",
     hostname   => "HostnamePath",
 );
@@ -415,7 +415,8 @@ 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/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/en.pm BackupPC/Lang/fr.pm BackupPC/Lang/es.pm
+        BackupPC/Lang/de.pm
     ) ) {
     InstallFile("lib/$lib", "$Conf{InstallDir}/lib/$lib", 0444);
 }
     ) ) {
     InstallFile("lib/$lib", "$Conf{InstallDir}/lib/$lib", 0444);
 }
@@ -429,7 +430,8 @@ if ( $Conf{CgiImageDir} ne "" ) {
 }
 
 printf("Making init.d scripts\n");
 }
 
 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);
 }
 
     InstallFile("init.d/src/$init", "init.d/$init", 0444);
 }
 
@@ -456,20 +458,75 @@ if ( -f $dest ) {
 }
 $Conf{EMailFromUserName}  ||= $Conf{BackupPCUser};
 $Conf{EMailAdminUserName} ||= $Conf{BackupPCUser};
 }
 $Conf{EMailFromUserName}  ||= $Conf{BackupPCUser};
 $Conf{EMailAdminUserName} ||= $Conf{BackupPCUser};
+
+#
+# Update various config parameters
+#
+
+#
+# Guess $Conf{CgiURL}
+#
+if ( !defined($Conf{CgiURL}) ) {
+    if ( $Conf{CgiDir} =~ m{cgi-bin(/.*)} ) {
+       $Conf{CgiURL} = "'http://$Conf{ServerHost}/cgi-bin$1/BackupPC_Admin'";
+    } else {
+       $Conf{CgiURL} = "'http://$Conf{ServerHost}/cgi-bin/BackupPC_Admin'";
+    }
+}
+
+#
+# The smbclient commands have moved from hard-coded to the config file.
+# $Conf{SmbClientArgs} no longer exists, so merge it into the new
+# commands if it still exists.
+#
+if ( defined($Conf{SmbClientArgs}) ) {
+    if ( $Conf{SmbClientArgs} ne "" ) {
+        foreach my $param ( qw(SmbClientRestoreCmd SmbClientFullCmd
+                                SmbClientIncrCmd) ) {
+            $newConf->[$newVars->{$param}]{text}
+                            =~ s/(-E\s+-N)/$1 $Conf{SmbClientArgs}/;
+        }
+    }
+    delete($Conf{SmbClientArgs});
+}
+
 #
 # IncrFill should now be off
 #
 $Conf{IncrFill} = 0;
 #
 # IncrFill should now be off
 #
 $Conf{IncrFill} = 0;
+
 #
 # Figure out sensible arguments for the ping command
 #
 #
 # Figure out sensible arguments for the ping command
 #
-if ( $^O eq "solaris" || $^O eq "sunos" ) {
-    $Conf{PingArgs} ||= '-s $host 56 1';
-} elsif ( ($^O eq "linux" || $^O eq "openbsd" || $^O eq "netbsd")
-        && !system("$Conf{PingClientPath} -c 1 -w 3 localhost") ) {
-    $Conf{PingArgs} ||= '-c 1 -w 3 $host';
-} else {
-    $Conf{PingArgs} ||= '-c 1 $host';
+if ( defined($Conf{PingArgs}) ) {
+    $Conf{PingCmd} = '$pingPath ' . $Conf{PingArgs};
+} elsif ( !defined($Conf{PingCmd}) ) {
+    if ( $^O eq "solaris" || $^O eq "sunos" ) {
+       $Conf{PingCmd} = '$pingPath -s $host 56 1';
+    } elsif ( ($^O eq "linux" || $^O eq "openbsd" || $^O eq "netbsd")
+           && !system("$Conf{PingClientPath} -c 1 -w 3 localhost") ) {
+       $Conf{PingCmd} = '$pingPath -c 1 -w 3 $host';
+    } else {
+       $Conf{PingCmd} = '$pingPath -c 1 $host';
+    }
+    delete($Conf{PingArgs});
+}
+
+#
+# Figure out sensible arguments for the df command
+#
+if ( !defined($Conf{DfCmd}) ) {
+    if ( $^O eq "solaris" || $^O eq "sunos" ) {
+       $Conf{DfCmd} = '$dfPath -k $topDir';
+    }
+}
+
+#
+# $Conf{SmbClientTimeout} is now $Conf{ClientTimeout}
+#
+if ( defined($Conf{SmbClientTimeout}) ) {
+    $Conf{ClientTimeout} = $Conf{SmbClientTimeout};
+    delete($Conf{SmbClientTimeout});
 }
 
 my $confCopy = "$dest.pre-__VERSION__";
 }
 
 my $confCopy = "$dest.pre-__VERSION__";
@@ -518,7 +575,7 @@ if ( $Conf{CgiDir} ne "" ) {
 
 print <<EOF;
 
 
 print <<EOF;
 
-Ok, it looks we are finished.  There are several more things you
+Ok, it looks like we are finished.  There are several more things you
 will need to do:
 
   - Browse through the config file, $Conf{TopDir}/conf/config.pl,
 will need to do:
 
   - Browse through the config file, $Conf{TopDir}/conf/config.pl,
@@ -614,7 +671,7 @@ sub ConfigParse
     my $comment = 1;
     my $allVars = {};
     while ( <C> ) {
     my $comment = 1;
     my $allVars = {};
     while ( <C> ) {
-        if ( /^\s*#/ ) {
+        if ( /^#/ ) {
             if ( $comment ) {
                 $out .= $_;
             } else {
             if ( $comment ) {
                 $out .= $_;
             } else {
@@ -635,7 +692,7 @@ sub ConfigParse
                 $allVars->{$var} = @conf if ( defined($var) );
                 push(@conf, {
                     text => $out,
                 $allVars->{$var} = @conf if ( defined($var) );
                 push(@conf, {
                     text => $out,
-                var => $var,
+                    var => $var,
                 });
                 $out = $_;
             } else {
                 });
                 $out = $_;
             } else {