X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=configure.pl;h=28c4b8661f007dc309e8d3870b6a1144c8e001be;hp=7cf51495eceeabf1a8d4e625bb4085e3a9168ab1;hb=d1bfa4d92bec24954f2e7877f6531644bb84e8f3;hpb=b81d2da5e16975674f011e4833337ac0fa24e0ea diff --git a/configure.pl b/configure.pl index 7cf5149..28c4b86 100755 --- a/configure.pl +++ b/configure.pl @@ -1,4 +1,4 @@ -#!/bin/perl +#!/usr/bin/env perl #============================================================= -*-perl-*- # # configure.pl: Configuration and installation program for BackupPC @@ -19,7 +19,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2006 Craig Barratt +# Copyright (C) 2001-2010 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 @@ -37,7 +37,7 @@ # #======================================================================== # -# Version 3.0.0alpha, released 8 Jul 2006. +# Version 3.1.0beta0, released 3 Sep 2007. # # See http://backuppc.sourceforge.net. # @@ -47,9 +47,18 @@ use strict; no utf8; use vars qw(%Conf %OrigConf); use lib "./lib"; +use Encode; + +my $EncodeVersion = eval($Encode::VERSION); +if ( $EncodeVersion < 1.99 ) { + print("Error: you need to upgrade perl's Encode package.\n" + . "I found $EncodeVersion and BackupPC needs >= 1.99\n" + . "Please go to www.cpan.org or use the cpan command.\n"); + exit(1); +} my @Packages = qw(File::Path File::Spec File::Copy DirHandle Digest::MD5 - Data::Dumper Getopt::Std Getopt::Long Encode Pod::Usage + Data::Dumper Getopt::Std Getopt::Long Pod::Usage BackupPC::Lib BackupPC::FileZIO); foreach my $pkg ( @Packages ) { @@ -78,13 +87,6 @@ before installing BackupPC. EOF } -my $EncodeVersion = eval($Encode::VERSION); -if ( $EncodeVersion < 1.99 ) { - print("\nError: you need to upgrade the Encode package;" - . " I found $EncodeVersion and BackupPC needs >= 1.99\n\n"); - exit(1); -} - my %opts; $opts{"set-perms"} = 1; if ( !GetOptions( @@ -95,6 +97,7 @@ if ( !GetOptions( "cgi-dir=s", "compress-level=i", "config-path=s", + "config-override=s%", "config-dir=s", "data-dir=s", "dest-dir=s", @@ -228,10 +231,15 @@ EOF # Create defaults for FHS setup # if ( $opts{fhs} ) { - $Conf{TopDir} ||= "/data/BackupPC"; - $Conf{ConfDir} ||= $opts{"config-dir"} || "/etc/BackupPC"; - $Conf{InstallDir} ||= "/usr/local/BackupPC"; - $Conf{LogDir} ||= $opts{"log-dir"} || "/var/log/BackupPC"; + $Conf{TopDir} ||= $opts{"data-dir"} || "/data/BackupPC"; + $Conf{ConfDir} ||= $opts{"config-dir"} || "/etc/BackupPC"; + $Conf{InstallDir} ||= $opts{"install-dir"} || "/usr/local/BackupPC"; + $Conf{LogDir} ||= $opts{"log-dir"} || "/var/log/BackupPC"; +} else { + $Conf{TopDir} ||= $opts{"data-dir"} || "/data/BackupPC"; + $Conf{ConfDir} ||= $opts{"config-dir"} || "$Conf{TopDir}/conf"; + $Conf{InstallDir} ||= $opts{"install-dir"} || "/usr/local/BackupPC"; + $Conf{LogDir} ||= $opts{"log-dir"} || "$Conf{TopDir}/log"; } # @@ -258,7 +266,7 @@ my %Programs = ( foreach my $prog ( sort(keys(%Programs)) ) { my $path; foreach my $subProg ( split(/\//, $prog) ) { - $path = FindProgram("$ENV{PATH}:/bin:/usr/bin:/sbin:/usr/sbin", + $path = FindProgram("$ENV{PATH}:/usr/bin:/bin:/sbin:/usr/sbin", $subProg) if ( !length($path) ); } $Conf{$Programs{$prog}} = $path if ( !length($Conf{$Programs{$prog}}) ); @@ -333,6 +341,8 @@ check the name and verify that this user is in the passwd file. EOF exit(1) if ( $opts{batch} ); + } else { + last; } } @@ -397,10 +407,8 @@ BackupPC can compress pool files, but it needs the Compress::Zlib package installed (see www.cpan.org). Compression will provide around a 40% reduction in pool size, at the expense of cpu time. You can leave compression off and run BackupPC without compression, in which case you -should leave the compression level at 0 (which means off). You could -install Compress::Zlib and turn compression on later, but read the -documentation first about how to do this. Or the better choice is -to quit, install Compress::Zlib, and re-run configure.pl. +should leave the compression level at 0 (which means off). Or the better +choice is to quit, install Compress::Zlib, and re-run configure.pl. EOF } elsif ( $Conf{CompressLevel} ) { @@ -408,14 +416,12 @@ EOF print <{$param}) ) { + printf("Unkown config parameter %s in --config-override\n", $param); + exit(1); + } + $newConf->[$newVars->{$param}]{text} = $opts{"config-override"}{$param}; +} + # # Now backup and write the config file # @@ -846,6 +880,8 @@ will need to do: - Verify that the CGI script BackupPC_Admin runs correctly. You might need to change the permissions or group ownership of BackupPC_Admin. + If this is an upgrade and you are using mod_perl, you will need + to restart Apache. Otherwise it will have stale code. - BackupPC should be ready to start. Don't forget to run it as user $Conf{BackupPCUser}! The installation also contains an @@ -872,9 +908,9 @@ EOF } eval "use File::RsyncP;"; -if ( !$@ && $File::RsyncP::VERSION < 0.64 ) { +if ( !$@ && $File::RsyncP::VERSION < 0.68 ) { print("\nWarning: you need to upgrade File::RsyncP;" - . " I found $File::RsyncP::VERSION and BackupPC needs 0.64\n"); + . " I found $File::RsyncP::VERSION and BackupPC needs 0.68\n"); } exit(0); @@ -915,6 +951,8 @@ sub InstallFile if ( $prog =~ /Lib.pm/ ); s/__BACKUPPCUSER__/$Conf{BackupPCUser}/g; s/__CGIDIR__/$Conf{CgiDir}/g; + s/__IMAGEDIR__/$Conf{CgiImageDir}/g; + s/__IMAGEDIRURL__/$Conf{CgiImageDirURL}/g; if ( $first && /^#.*bin\/perl/ ) { # # Fill in correct path to perl (no taint for >= 2.0.1). @@ -1176,7 +1214,7 @@ final locations. Use locations specified by the Filesystem Hierarchy Standard for installing BackupPC. This is enabled by default for new -installatios. To use the pre-3.0 installation locations, +installations. To use the pre-3.0 installation locations, specify --no-fhs. =item B<--help|?> @@ -1197,7 +1235,7 @@ specified for a batch new install. Example: - --html-dir /usr/local/apache/htdocs/BackupPC + --html-dir /var/www/htdocs/BackupPC =item B<--html-dir-url URL> @@ -1271,7 +1309,7 @@ Craig Barratt =head1 COPYRIGHT -Copyright (C) 2001-2006 Craig Barratt. +Copyright (C) 2001-2010 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