# Craig Barratt <cbarratt@users.sourceforge.net>
#
# COPYRIGHT
-# Copyright (C) 2001-2006 Craig Barratt
+# Copyright (C) 2001-2007 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
#
#========================================================================
#
-# Version 3.0.0alpha, released 8 Jul 2006.
+# Version 3.1.0beta0, released 3 Sep 2007.
#
# See http://backuppc.sourceforge.net.
#
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 Pod::Usage
if ( $pkg =~ /BackupPC/ ) {
die <<EOF;
-BackupPC cannot find the package $pkg, which is included in the
+Error loading $pkg: $@
+BackupPC cannot load the package $pkg, which is included in the
BackupPC distribution. This probably means you did not cd to the
unpacked BackupPC distribution before running configure.pl, eg:
"cgi-dir=s",
"compress-level=i",
"config-path=s",
+ "config-dir=s",
"data-dir=s",
"dest-dir=s",
"fhs!",
"html-dir=s",
"html-dir-url=s",
"install-dir=s",
+ "log-dir=s",
"man",
"set-perms!",
"uid-ignore!",
pod2usage(-exitstatus => 0, -verbose => 2) if $opts{man};
my $DestDir = $opts{"dest-dir"};
+$DestDir = "" if ( $DestDir eq "/" );
if ( !$opts{"uid-ignore"} && $< != 0 ) {
print <<EOF;
}
}
-my $Perl56 = system($Conf{PerlPath}
- . q{ -e 'exit($^V && $^V ge v5.6.0 ? 1 : 0);'});
+my $Perl58 = system($Conf{PerlPath}
+ . q{ -e 'exit($^V && $^V ge v5.8.0 ? 1 : 0);'});
-if ( !$Perl56 ) {
+if ( !$Perl58 ) {
print <<EOF;
-BackupPC needs perl version 5.6.0 or later. $Conf{PerlPath} appears
+BackupPC needs perl version 5.8.0 or later. $Conf{PerlPath} appears
to be an older version. Please upgrade to a newer version of perl
and re-run this configure script.
EOF
exit(1) if ( $opts{batch} );
+ } else {
+ last;
}
}
print <<EOF;
-Please specify a data directory for BackupPC. This is where the
-all the PC backup data is stored. This file system needs to be
-big enough to accommodate all the PCs you expect to backup (eg:
-at least several GB per machine).
+Please specify a data directory for BackupPC. This is where all the
+PC backup data is stored. This file system needs to be big enough to
+accommodate all the PCs you expect to backup (eg: at least several GB
+per machine).
EOF
BackupPC's CGI script needs to display various GIF images that
should be stored where Apache can serve them. They should be
-placed somewher under Apache's DocumentRoot. BackupPC also
+placed somewhere under Apache's DocumentRoot. BackupPC also
needs to know the URL to access these images. Example:
Apache image directory: /usr/local/apache/htdocs/BackupPC
# Create CGI image directory
#
foreach my $dir ( ($Conf{CgiImageDir}) ) {
- next if ( $dir eq "" || -d $dir );
+ next if ( $dir eq "" || -d "$DestDir$dir" );
mkpath("$DestDir$dir", 0, 0755);
if ( !-d "$DestDir$dir" || !my_chown($Uid, $Gid, "$DestDir$dir") ) {
die("Failed to create or chown $DestDir$dir");
"$Conf{ConfDir}",
"$Conf{LogDir}",
) ) {
- mkpath("$DestDir/$dir", 0, 0750) if ( !-d "$DestDir/$dir" );
- if ( !-d "$DestDir/$dir"
- || !my_chown($Uid, $Gid, "$DestDir/$dir") ) {
- die("Failed to create or chown $DestDir/$dir\n");
+ mkpath("$DestDir$dir", 0, 0750) if ( !-d "$DestDir$dir" );
+ if ( !-d "$DestDir$dir"
+ || !my_chown($Uid, $Gid, "$DestDir$dir") ) {
+ die("Failed to create or chown $DestDir$dir\n");
} else {
- print("Created $DestDir/$dir\n");
+ print("Created $DestDir$dir\n");
}
}
}
InstallFile("conf/BackupPC_stnd.css",
"$DestDir$Conf{CgiImageDir}/BackupPC_stnd.css", 0444, 0);
+ InstallFile("conf/BackupPC_stnd_orig.css",
+ "$DestDir$Conf{CgiImageDir}/BackupPC_stnd_orig.css", 0444, 0);
+ InstallFile("conf/sorttable.js",
+ "$DestDir$Conf{CgiImageDir}/sorttable.js", 0444, 0);
}
printf("Making init.d scripts\n");
foreach my $init ( qw(gentoo-backuppc gentoo-backuppc.conf linux-backuppc
- solaris-backuppc debian-backuppc suse-backuppc
- slackware-backuppc ) ) {
+ solaris-backuppc debian-backuppc freebsd-backuppc
+ suse-backuppc slackware-backuppc ) ) {
InstallFile("init.d/src/$init", "init.d/$init", 0444);
}
#
$Conf{IncrFill} = 0;
+#
+# Empty $Conf{ParPath} if it isn't a valid executable
+# (pre-3.0.0 configure.pl incorrectly set it to a
+# hardcoded value).
+#
+$Conf{ParPath} = '' if ( $Conf{ParPath} ne '' && !-x $Conf{ParPath} );
+
#
# Figure out sensible arguments for the ping command
#
- 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
}
eval "use File::RsyncP;";
-if ( !$@ && $File::RsyncP::VERSION < 0.52 ) {
+if ( !$@ && $File::RsyncP::VERSION < 0.68 ) {
print("\nWarning: you need to upgrade File::RsyncP;"
- . " I found $File::RsyncP::VERSION and BackupPC needs 0.52\n");
+ . " I found $File::RsyncP::VERSION and BackupPC needs 0.68\n");
}
exit(0);
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|?>
=head1 COPYRIGHT
-Copyright (C) 2001-2006 Craig Barratt.
+Copyright (C) 2001-2007 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