1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-13 07:34:50 +00:00

- Add a port of the 4.x series of BackupPC

BackupPC is a fast, enterprise-grade backup system. It provides
a web-based user interface. It supports several platforms (Unix-like,
    Windows, MacOSX) to backup to a disk-based storage.

No client-side software is necessary, as the BackupPC server uses
several protocols (smb, rsync, tar and ftp) native to the client OS.

File-level deduplication combined with optional compression minimizes
the disk space needed to store the backups and disk I/O and enables
synthetic backups to reduce network traffic.

BackupPC is not a block-level backup system but performs file-based
backup and restore. Thus it is not suitable for backup of disk
images or raw disk partitions.

BackupPC supports laptop environments with clients on dynamic
IP addresses (DHCP) not always connected to the network.

WWW: http://backuppc.sourceforge.net/

Users of the sysutils/backuppc port should read
http://backuppc.sourceforge.net/BackupPC-4.0.0.html#BackupPC-4.0

PR:		217638
Submitted by:	Alexander Moisseev <moiseev at mezonplus.ru>
This commit is contained in:
Vsevolod Stakhov 2017-04-24 16:24:13 +00:00
parent b3327a4370
commit 937678c9fb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=439334
22 changed files with 420 additions and 468 deletions

View File

@ -64,6 +64,7 @@
SUBDIR += b43-fwcutter
SUBDIR += backupchecker
SUBDIR += backuppc
SUBDIR += backuppc4
SUBDIR += backuppc-devel
SUBDIR += bacula-bat
SUBDIR += bacula-client

View File

@ -2,12 +2,9 @@
# $FreeBSD$
PORTNAME= backuppc
DISTVERSION= 4.0.0alpha3
PORTREVISION= 7
PORTVERSION= 4.1.2.20170424
CATEGORIES= sysutils
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-beta/${DISTVERSION}
PKGNAMESUFFIX= -devel
DISTNAME= BackupPC-${DISTVERSION}
MAINTAINER= moiseev@mezonplus.ru
COMMENT= Multi-platform backup to disk-based storage
@ -15,15 +12,23 @@ COMMENT= Multi-platform backup to disk-based storage
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
EXTRACT_DEPENDS= p5-BackupPC-XS>=0.53:sysutils/p5-BackupPC-XS
RUN_DEPENDS= p5-File-Listing>=0:sysutils/p5-File-Listing \
p5-BackupPC-XS>=0.30:sysutils/p5-BackupPC-XS
p5-BackupPC-XS>=0.53:sysutils/p5-BackupPC-XS
CONFLICTS= backuppc-[0-9]*
CONFLICTS= backuppc-[0-9]* backuppc4-[0-9]*
USE_RC_SUBR= backuppc
USE_GITHUB= yes
GH_TAGNAME= 92469a6
WRKSRC_SUBDIR= dist/BackupPC-${PORTVERSION}
USES= perl5
USE_PERL5= extract
NO_BUILD= yes
NO_ARCH= yes
USERS= backuppc
GROUPS= backuppc
@ -37,55 +42,29 @@ SUB_LIST= CGIDIR=${CGIDIR}
PLIST_SUB+= CGIDIR=${CGIDIR:S,^${PREFIX}/,,} \
DISTVERSION=${DISTVERSION}
PORTDOCS= ChangeLog LICENSE README
PORTDOCS= ChangeLog LICENSE README.md
OPTIONS_DEFINE= ARCHIVE_ZIP DOCS RSYNC_BPC \
RRDTOOL SMB XML_RSS
OPTIONS_DEFINE= ARCHIVE_ZIP DOCS RSYNC_BPC NMBLOOKUP \
RRDTOOL SMBCLIENT XML_RSS
OPTIONS_DEFAULT= ARCHIVE_ZIP
ARCHIVE_ZIP_DESC= Perl module for Zip archive files
RSYNC_BPC_DESC= Modified rsync that used as part of BackupPC
NMBLOOKUP_DESC= NetBIOS Name lookup tool
RRDTOOL_DESC= Round Robin Database Tools
SMBCLIENT_DESC= Samba client
XML_RSS_DESC= Perl extension to manage RSS files
ARCHIVE_ZIP_DESC= Install Perl module for Zip archive files
RSYNC_BPC_DESC= Install modified rsync that used as part of BackupPC
RRDTOOL_DESC= Install Round Robin Database Tools
SMB_DESC= Install Samba (for "smb" transfer and NetBIOS lookup)
XML_RSS_DESC= Install Perl extension to manage RSS files
.include <bsd.port.options.mk>
ARCHIVE_ZIP_RUN_DEPENDS= p5-Archive-Zip>=0:archivers/p5-Archive-Zip
RSYNC_BPC_RUN_DEPENDS= rsync-bpc>=3.0.9.6:net/rsync-bpc
RRDTOOL_RUN_DEPENDS= rrdtool:databases/rrdtool
SMB_USES= samba:run # nmblookup, smbclient
XML_RSS_RUN_DEPENDS= p5-XML-RSS>=0:textproc/p5-XML-RSS
.if ${PORT_OPTIONS:MARCHIVE_ZIP}
RUN_DEPENDS+= p5-Archive-Zip>=0:archivers/p5-Archive-Zip
.endif
.if ${PORT_OPTIONS:MRSYNC_BPC}
RUN_DEPENDS+= rsync-bpc>=3.0.9.3:net/rsync-bpc
.endif
.if ${PORT_OPTIONS:MNMBLOOKUP} || ${PORT_OPTIONS:MSMBCLIENT}
USES+= samba:run # nmblookup, smbclient
.endif
.if ${PORT_OPTIONS:MRRDTOOL}
RUN_DEPENDS+= rrdtool:databases/rrdtool
.endif
.if ${PORT_OPTIONS:MXML_RSS}
RUN_DEPENDS+= p5-XML-RSS>=0:textproc/p5-XML-RSS
.endif
pre-patch:
@${CP} ${WRKSRC}/configure.pl ${WRKSRC}/update.pl
post-patch:
@${REINPLACE_CMD} \
-e 's|/etc/BackupPC\(/config.pl\)|${ETCDIR}\1|' \
${WRKSRC}/configure.pl ${WRKSRC}/update.pl
@${REINPLACE_CMD} -E \
-e 's|^(use lib ")\.(/lib";)$$|\1${PREFIX}\2|' \
${WRKSRC}/update.pl
@${REINPLACE_CMD} \
-e 's|STDERR "Please su |STDERR "Please su [-m] |' \
${WRKSRC}/lib/BackupPC/Lib.pm
@${REINPLACE_CMD} \
-e 's| you can use the -s| you can use the -m|' \
-e 's|option to su to explicitly run|option to su to run|' \
-e 's|su -s /bin/bash __BACKUPPCUSER__|su -m __BACKUPPCUSER__|' \
${WRKSRC}/doc/BackupPC.html ${WRKSRC}/doc/BackupPC.pod
post-extract:
cd ${WRKDIR}/${PORTNAME}-${GH_TAGNAME} && ${PERL} makeDist \
--nosyntaxCheck \
--version ${PORTVERSION}
do-install:
cd ${WRKSRC} && ${PERL} configure.pl \
@ -112,11 +91,9 @@ do-install:
${CP} ${WRKSRC}/doc/BackupPC.html ${STAGEDIR}${WWWDIR}
${RM} ${STAGEDIR}${ETCDIR}/config.pl
${RM} ${STAGEDIR}${ETCDIR}/hosts
${CP} ${WRKSRC}/conf/config.pl ${STAGEDIR}${ETCDIR}/config.pl.sample
${CP} ${WRKSRC}/conf/hosts ${STAGEDIR}${ETCDIR}/hosts.sample
${CP} ${WRKDIR}/update.sh ${STAGEDIR}${ETCDIR}/update.sh
${MKDIR} ${STAGEDIR}${PREFIX}/libexec/backuppc
${CP} ${WRKSRC}/update.pl ${STAGEDIR}${PREFIX}/libexec/backuppc/update.pl
${CP} ${WRKSRC}/configure.pl ${STAGEDIR}${PREFIX}/libexec/backuppc/configure.pl
.include <bsd.port.pre.mk>

View File

@ -1,2 +1,3 @@
SHA256 (BackupPC-4.0.0alpha3.tar.gz) = 3e63ad375465425f97179152d09e91963cced8b5ca7e400290b81decf83a902e
SIZE (BackupPC-4.0.0alpha3.tar.gz) = 583970
TIMESTAMP = 1493016668
SHA256 (backuppc-backuppc-4.1.2.20170424-92469a6_GH0.tar.gz) = 4220ddf5744396ae7bd6ed9458a8a560e07ddf2556736d5d57cd5651aa4bfccc
SIZE (backuppc-backuppc-4.1.2.20170424-92469a6_GH0.tar.gz) = 540110

View File

@ -1,57 +0,0 @@
--- ./bin/BackupPC_rrdUpdate.orig 2013-12-09 17:06:45.000000000 +0400
+++ ./bin/BackupPC_rrdUpdate 2013-12-10 12:24:41.000000000 +0400
@@ -109,7 +109,7 @@
}
$sizeTot = $sizeTot / 1024;
- print $bpc->cmdSystemOrEval(
+ if ( $err = $bpc->cmdSystemOrEval(
[
$Conf{RrdToolPath},
"update", $RRDFile,
@@ -119,13 +119,17 @@
. $Info{"poolKb"} . ":"
. $Info{"pool4Kb"} . ":"
. $Info{"cpool4Kb"}
- ]);
- printf("%sRRD updated:"
+ ]) ) {
+ print "$err";
+ }
+ else {
+ printf("%sRRD updated:"
. " date %s; cpoolKb %f; total %f;"
. " poolKb %f; pool4Kb %f; cpool4Kb %f\n",
$bpc->timeStamp,
$NowRnd1, $Info{"cpoolKb"}, $sizeTot,
$Info{"poolKb"}, $Info{"pool4Kb"}, $Info{"cpool4Kb"});
+ }
}
#
@@ -140,7 +144,7 @@
#
# Get each pool max value from RRD
#
- $bpc->cmdSystemOrEval(
+ $bpc->cmdSystemOrEvalLong(
[
$Conf{RrdToolPath},
"graphv", "-",
@@ -158,7 +162,7 @@
if ( $_[0] =~ /^print\[([0-3])\] = "([.0-9]+)"$/ ) {
$poolMax[$1] = $2 unless ( $2 == 0 );
}
- });
+ }, 1, undef);
my $poolSizeGraph = [
"$Conf{RrdToolPath}",
@@ -228,6 +232,6 @@
print("Can't open/create $LogDir/poolUsage$weeks.png\n");
return;
}
- $bpc->cmdSystemOrEval($poolSizeGraph, sub { print $fdOut $_[0] });
+ $bpc->cmdSystemOrEvalLong($poolSizeGraph, sub { print $fdOut $_[0] }, 1, undef);
close($fdOut);
}

View File

@ -1,8 +0,0 @@
--- doc/BackupPC.pod.orig 2014-05-13 17:40:09.000000000 +0400
+++ doc/BackupPC.pod 2014-05-13 17:40:27.000000000 +0400
@@ -1,3 +1,5 @@
+=encoding ISO8859-1
+
=head1 BackupPC Introduction
This documentation describes BackupPC version 3.3.0,

View File

@ -1,20 +0,0 @@
--- lib/BackupPC/Lib.pm.orig 2016-11-08 08:12:44 UTC
+++ lib/BackupPC/Lib.pm
@@ -1097,7 +1097,7 @@ sub cmdVarSubstitute
#
# Replace scalar variables first
#
- $arg =~ s[\${(\w+)}(\+?)]{
+ $arg =~ s[\$\{(\w+)}(\+?)]{
exists($vars->{$1}) && ref($vars->{$1}) ne "ARRAY"
? ($2 eq "+" ? $bpc->shellEscape($vars->{$1}) : $vars->{$1})
: "\${$1}$2"
@@ -1106,7 +1106,7 @@ sub cmdVarSubstitute
# Now replicate any array arguments; this just works for just one
# array var in each argument.
#
- if ( $arg =~ m[(.*)\${(\w+)}(\+?)(.*)] && ref($vars->{$2}) eq "ARRAY" ) {
+ if ( $arg =~ m[(.*)\$\{(\w+)}(\+?)(.*)] && ref($vars->{$2}) eq "ARRAY" ) {
my $pre = $1;
my $var = $2;
my $esc = $3;

View File

@ -1,33 +0,0 @@
--- lib/BackupPC/Xfer/Smb.pm.orig 2013-12-01 20:58:20 UTC
+++ lib/BackupPC/Xfer/Smb.pm
@@ -216,7 +216,7 @@ sub readOutput
# This section is highly dependent on the version of smbclient.
# If you upgrade Samba, make sure that these regexp are still valid.
#
- if ( /^\s*(-?\d+) \(\s*\d+[.,]\d kb\/s\) (.*)$/ ) {
+ if ( /^\s*(-?\d+) \(\s*\d+[.,]\d kb\/s\) (.*)$/ || /^tar:(\d+)\s+\+\+\+ (.*)$/ ) {
my $sambaFileSize = $1;
my $pcFileName = $2;
(my $fileName = $pcFileName) =~ s/\\/\//g;
@@ -229,7 +229,9 @@ sub readOutput
$t->{byteCnt} += $2;
$t->{fileCnt}++;
$t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 1 );
- } elsif ( /^\s*tar: dumped \d+ files/ ) {
+ } elsif ( /^\s*tar: dumped \d+ files/
+ || /Total bytes received: \d+/i
+ || /tar_process done, err = 0/ ) {
$t->{xferOK} = 1;
$t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 0 );
} elsif ( /^\s*tar: restored \d+ files/ ) {
@@ -269,6 +271,10 @@ sub readOutput
} elsif ( /^\s*directory \\/i ) {
$t->{XferLOG}->write(\"$_\n") if ( $t->{logLevel} >= 2 );
} elsif ( /smb: \\>/
+ || /^tar:\d+\s/
+ || /^ NTLMSSP_/
+ || /^GENSEC backend /
+ || /^doing parameter /
|| /^\s*added interface/i
|| /^\s*tarmode is now/i
|| /^\s*Total bytes written/i

View File

@ -9,14 +9,3 @@
} elsif ( $host ne "" ) {
if ( !defined($In{num}) ) {
# get the latest LOG file
@@ -148,6 +148,10 @@ sub action
}
$s =~ s/[\n\r]+//g;
if ( $s =~ /smb: \\>/
+ || $s =~ /^tar:\d+\s/
+ || $s =~ /^ NTLMSSP_/
+ || $s =~ /^GENSEC backend /
+ || $s =~ /^doing parameter /
|| $s =~ /^\s*(\d+) \(\s*\d+\.\d kb\/s\) (.*)$/
|| $s =~ /^tar: dumped \d+ files/
|| $s =~ /^\s*added interface/i

View File

@ -1,276 +0,0 @@
--- ./update.pl.orig 2014-09-03 13:36:33.000000000 +0400
+++ ./update.pl 2014-09-03 13:56:16.000000000 +0400
@@ -222,7 +222,7 @@
if ( $ConfigPath ne "" && -r $ConfigPath ) {
(my $confDir = $ConfigPath) =~ s{/[^/]+$}{};
die("BackupPC::Lib->new failed\n")
- if ( !($bpc = BackupPC::Lib->new(".", ".", $confDir, 1)) );
+ if ( !($bpc = BackupPC::Lib->new(".", $opts{"install-dir"}, $confDir, 1)) );
%Conf = $bpc->Conf();
%OrigConf = %Conf;
if ( !$opts{fhs} ) {
@@ -494,239 +494,21 @@
print <<EOF;
-Ok, we're about to:
-
- - install the binaries, lib and docs in $Conf{InstallDir},
- - create the data directory $Conf{TopDir},
- - create/update the config.pl file $Conf{ConfDir}/config.pl,
- - optionally install the cgi-bin interface.
+Ok, we're about to create/update the config.pl file $Conf{ConfDir}/config.pl.
EOF
exit unless prompt("--> Do you want to continue?", "y") =~ /y/i;
#
-# Create install directories
-#
-foreach my $dir ( qw(bin share/doc/BackupPC
- lib/BackupPC/CGI
- lib/BackupPC/Config
- lib/BackupPC/Lang
- lib/BackupPC/Storage
- lib/BackupPC/Xfer
- lib/BackupPC/Zip
- lib/Net/FTP
- ) ) {
- next if ( -d "$DestDir$Conf{InstallDir}/$dir" );
- mkpath("$DestDir$Conf{InstallDir}/$dir", 0, 0755);
- if ( !-d "$DestDir$Conf{InstallDir}/$dir"
- || !my_chown($Uid, $Gid, "$DestDir$Conf{InstallDir}/$dir") ) {
- die("Failed to create or chown $DestDir$Conf{InstallDir}/$dir\n");
- } else {
- print("Created $DestDir$Conf{InstallDir}/$dir\n");
- }
-}
-
-#
-# Create CGI image directory
-#
-foreach my $dir ( ($Conf{CgiImageDir}) ) {
- 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");
- } else {
- print("Created $DestDir$dir\n");
- }
-}
-
-#
-# Create other directories
-#
-foreach my $dir ( (
- "$Conf{TopDir}",
- "$Conf{TopDir}/pool",
- "$Conf{TopDir}/cpool",
- "$Conf{TopDir}/pc",
- "$Conf{ConfDir}",
- "$Conf{LogDir}",
- "$Conf{RunDir}",
- ) ) {
- 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");
- }
-}
-
-printf("Installing binaries in $DestDir$Conf{InstallDir}/bin\n");
-foreach my $prog ( qw(
- bin/BackupPC
- bin/BackupPC_Admin_SCGI
- bin/BackupPC_archive
- bin/BackupPC_archiveHost
- bin/BackupPC_archiveStart
- bin/BackupPC_attribPrint
- bin/BackupPC_backupDelete
- bin/BackupPC_backupDuplicate
- bin/BackupPC_dump
- bin/BackupPC_fixupBackupSummary
- bin/BackupPC_fsck
- bin/BackupPC_ls
- bin/BackupPC_nightly
- bin/BackupPC_poolCntPrint
- bin/BackupPC_refCountUpdate
- bin/BackupPC_restore
- bin/BackupPC_rrdUpdate
- bin/BackupPC_sendEmail
- bin/BackupPC_serverMesg
- bin/BackupPC_tarCreate
- bin/BackupPC_tarExtract
- bin/BackupPC_zcat
- bin/BackupPC_zipCreate
- ) ) {
- InstallFile($prog, "$DestDir$Conf{InstallDir}/$prog", 0555);
-}
-
-#
-# remove old pre-v4 programs
-#
-foreach my $prog ( qw(
- bin/BackupPC_link
- bin/BackupPC_tarPCCopy
- bin/BackupPC_trashClean
- bin/BackupPC_compressPool
- ) ) {
- unlink("$DestDir$Conf{InstallDir}/$prog");
-}
-
-printf("Installing library in $DestDir$Conf{InstallDir}/lib\n");
-foreach my $lib ( qw(
- lib/BackupPC/Config/Meta.pm
- lib/BackupPC/DirOps.pm
- lib/BackupPC/Lib.pm
- lib/BackupPC/Storage.pm
- lib/BackupPC/View.pm
- lib/BackupPC/Xfer/Archive.pm
- lib/BackupPC/Xfer/Ftp.pm
- lib/BackupPC/Xfer/Protocol.pm
- lib/BackupPC/Xfer/Rsync.pm
- lib/BackupPC/Xfer/Smb.pm
- lib/BackupPC/Xfer/Tar.pm
- lib/BackupPC/Xfer.pm
- lib/BackupPC/Zip/FileMember.pm
- lib/Net/FTP/AutoReconnect.pm
- lib/Net/FTP/RetrHandle.pm
- lib/BackupPC/CGI/AdminOptions.pm
- lib/BackupPC/CGI/Archive.pm
- lib/BackupPC/CGI/ArchiveInfo.pm
- lib/BackupPC/CGI/Browse.pm
- lib/BackupPC/CGI/DirHistory.pm
- lib/BackupPC/CGI/EditConfig.pm
- lib/BackupPC/CGI/EmailSummary.pm
- lib/BackupPC/CGI/GeneralInfo.pm
- lib/BackupPC/CGI/HostInfo.pm
- lib/BackupPC/CGI/Lib.pm
- lib/BackupPC/CGI/LOGlist.pm
- lib/BackupPC/CGI/Queue.pm
- lib/BackupPC/CGI/ReloadServer.pm
- lib/BackupPC/CGI/Restore.pm
- lib/BackupPC/CGI/RestoreFile.pm
- lib/BackupPC/CGI/RestoreInfo.pm
- lib/BackupPC/CGI/RSS.pm
- lib/BackupPC/CGI/StartServer.pm
- lib/BackupPC/CGI/StartStopBackup.pm
- lib/BackupPC/CGI/StopServer.pm
- lib/BackupPC/CGI/Summary.pm
- lib/BackupPC/CGI/View.pm
- lib/BackupPC/Lang/cz.pm
- lib/BackupPC/Lang/de.pm
- lib/BackupPC/Lang/en.pm
- lib/BackupPC/Lang/es.pm
- lib/BackupPC/Lang/fr.pm
- lib/BackupPC/Lang/it.pm
- lib/BackupPC/Lang/ja.pm
- lib/BackupPC/Lang/nl.pm
- lib/BackupPC/Lang/pl.pm
- lib/BackupPC/Lang/pt_br.pm
- lib/BackupPC/Lang/ru.pm
- lib/BackupPC/Lang/uk.pm
- lib/BackupPC/Lang/zh_CN.pm
- lib/BackupPC/Storage/Text.pm
- ) ) {
- InstallFile($lib, "$DestDir$Conf{InstallDir}/$lib", 0444);
-}
-
-#
-# remove old pre-v4 libraries
-#
-foreach my $lib ( qw(
- lib/BackupPC/Attrib.pm
- lib/BackupPC/Config.pm
- lib/BackupPC/FileZIO.pm
- lib/BackupPC/PoolWrite.pm
- lib/BackupPC/Xfer/RsyncDigest.pm
- lib/BackupPC/Xfer/RsyncFileIO.pm
- ) ) {
- unlink("$DestDir$Conf{InstallDir}/$lib");
-}
-
-#
# clean pid and sock files from old location (they are now in $Conf{RunDir}, and they
# get re-created each time BackupPC starts, so it's ok if RunDir eq LogDir).
#
unlink("$DestDir$Conf{LogDir}/BackupPC.pid") if ( -f "$DestDir$Conf{LogDir}/BackupPC.pid" );
unlink("$DestDir$Conf{LogDir}/BackupPC.sock") if ( -e "$DestDir$Conf{LogDir}/BackupPC.sock" );
-if ( $Conf{CgiImageDir} ne "" ) {
- printf("Installing images in $DestDir$Conf{CgiImageDir}\n");
- foreach my $img ( <images/*> ) {
- (my $destImg = $img) =~ s{^images/}{};
- InstallFile($img, "$DestDir$Conf{CgiImageDir}/$destImg", 0444, 1);
- }
-
- #
- # Install new CSS file, making a backup copy if necessary
- #
- my $cssBackup = "$DestDir$Conf{CgiImageDir}/BackupPC_stnd.css.pre-4.0.0alpha3";
- if ( -f "$DestDir$Conf{CgiImageDir}/BackupPC_stnd.css" && !-f $cssBackup ) {
- rename("$DestDir$Conf{CgiImageDir}/BackupPC_stnd.css", $cssBackup);
- }
- 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 freebsd-backuppc
- freebsd-backuppc2 suse-backuppc slackware-backuppc ) ) {
- InstallFile("init.d/src/$init", "init.d/$init", 0444);
-}
-
-printf("Making Apache configuration file for suid-perl\n");
-InstallFile("httpd/src/BackupPC.conf", "httpd/BackupPC.conf", 0644);
-
-printf("Installing docs in $DestDir$Conf{InstallDir}/share/doc/BackupPC\n");
-foreach my $doc ( qw(BackupPC.pod BackupPC.html) ) {
- InstallFile("doc/$doc", "$DestDir$Conf{InstallDir}/share/doc/BackupPC/$doc", 0444);
- #
- # clean up files from old directory
- #
- unlink("$DestDir$Conf{InstallDir}/doc/$doc") if ( -f "$DestDir$Conf{InstallDir}/doc/$doc" );
-}
-#
-# clean up old directory (ok if it quietly fails if there are other files in that directory)
-#
-rmdir("$DestDir$Conf{InstallDir}/doc") if ( -d "$DestDir$Conf{InstallDir}/doc" );
-
printf("Installing config.pl and hosts in $DestDir$Conf{ConfDir}\n");
-InstallFile("conf/hosts", "$DestDir$Conf{ConfDir}/hosts", 0644)
+InstallFile("$DestDir$Conf{ConfDir}/hosts.sample", "$DestDir$Conf{ConfDir}/hosts", 0644)
if ( !-f "$DestDir$Conf{ConfDir}/hosts" );
#
@@ -735,7 +517,7 @@
# parameters and deleting ones that are no longer needed.
#
my $dest = "$DestDir$Conf{ConfDir}/config.pl";
-my ($distConf, $distVars) = ConfigParse("conf/config.pl");
+my ($distConf, $distVars) = ConfigParse("$DestDir$Conf{ConfDir}/config.pl.sample");
my ($oldConf, $oldVars);
my ($newConf, $newVars) = ($distConf, $distVars);
if ( -f $dest ) {
@@ -974,13 +756,6 @@
die("can't chown $Uid, $Gid $dest\n") unless my_chown($Uid, $Gid, $dest);
}
-if ( $Conf{CgiDir} ne "" ) {
- printf("Installing cgi script BackupPC_Admin in $DestDir$Conf{CgiDir}\n");
- mkpath("$DestDir$Conf{CgiDir}", 0, 0755);
- InstallFile("cgi-bin/BackupPC_Admin", "$DestDir$Conf{CgiDir}/BackupPC_Admin",
- 04554);
-}
-
print <<EOF;
Ok, it looks like we are finished. There are several more things you

View File

@ -14,12 +14,14 @@
This file system needs to be big enough
to accommodate all the PCs you expect to backup.
- BackupPC 4 creates a large number of files with negative group permissions.
To avoid excessive daily security run output consider adding the following
line to /etc/periodic.conf:
daily_status_security_neggrpperm_enable="NO"
- Users of Samba 4 smbclient should change debug level for smbclient
restore command to 5 ('-d 5') in the main configuration, for instance
$Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 5 -c tarmode\\ full -Tx -';
and set in the each host's configuration
$Conf{BackupZeroFilesIsFatal} = '0';
==========================================================================

View File

@ -1,6 +1,9 @@
#!/bin/sh
perl %%PREFIX%%/libexec/backuppc/update.pl \
PERL5LIB=%%PREFIX%%/lib; export PERL5LIB
perl %%PREFIX%%/libexec/backuppc/configure.pl \
--config-only \
--bin-path perl=%%PREFIX%%/bin/perl \
--config-dir %%ETCDIR%% \
--cgi-dir %%CGIDIR%% \

View File

@ -16,4 +16,4 @@ images or raw disk partitions.
BackupPC supports laptop environments with clients on dynamic
IP addresses (DHCP) not always connected to the network.
WWW: http://backuppc.sourceforge.net
WWW: http://backuppc.sourceforge.net/

View File

@ -11,6 +11,7 @@ bin/BackupPC_dump
bin/BackupPC_fixupBackupSummary
bin/BackupPC_fsck
bin/BackupPC_ls
bin/BackupPC_migrateV3toV4
bin/BackupPC_nightly
bin/BackupPC_poolCntPrint
bin/BackupPC_refCountUpdate
@ -115,13 +116,15 @@ man/man1/backuppc.1.gz
%%WWWDIR%%/1111111.gif
%%WWWDIR%%/BackupPC.html
%%WWWDIR%%/BackupPC_stnd.css
%%WWWDIR%%/BackupPC_stnd_orig.css
%%WWWDIR%%/BackupPC_retro_v2.css
%%WWWDIR%%/BackupPC_retro_v3.css
%%WWWDIR%%/favicon.ico
%%WWWDIR%%/icon-dir.png
%%WWWDIR%%/icon-file.png
%%WWWDIR%%/icon-hardlink.png
%%WWWDIR%%/icon-symlink.png
%%WWWDIR%%/logo.gif
%%WWWDIR%%/logo320.png
%%WWWDIR%%/sorttable.js
@owner backuppc
@group backuppc
@ -144,5 +147,5 @@ man/man1/backuppc.1.gz
@group
@mode 0544
%%ETCDIR%%/update.sh
libexec/backuppc/update.pl
libexec/backuppc/configure.pl
@mode

View File

@ -0,0 +1,94 @@
# Created by: Alexander Moisseev <moiseev@mezonplus.ru>
# $FreeBSD$
PORTNAME= backuppc
PORTVERSION= 4.1.1
CATEGORIES= sysutils
MASTER_SITES= SF
PKGNAMESUFFIX= 4
DISTNAME= BackupPC-${DISTVERSION}
MAINTAINER= moiseev@mezonplus.ru
COMMENT= Multi-platform backup to disk-based storage
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= p5-File-Listing>=0:sysutils/p5-File-Listing \
p5-BackupPC-XS>=0.50:sysutils/p5-BackupPC-XS
CONFLICTS= backuppc-[0-9]* backuppc-devel-[0-9]*
USE_RC_SUBR= backuppc
USES= perl5
NO_BUILD= yes
NO_ARCH= yes
USERS= backuppc
GROUPS= backuppc
DOCSDIR= ${PREFIX}/share/doc/BackupPC
CGIDIR?= ${PREFIX}/www/cgi-bin
SUB_FILES= pkg-deinstall pkg-message update.sh
SUB_LIST= CGIDIR=${CGIDIR}
PLIST_SUB+= CGIDIR=${CGIDIR:S,^${PREFIX}/,,} \
DISTVERSION=${DISTVERSION}
PORTDOCS= ChangeLog LICENSE README.md
OPTIONS_DEFINE= ARCHIVE_ZIP DOCS RSYNC_BPC \
RRDTOOL SMB XML_RSS
OPTIONS_DEFAULT= ARCHIVE_ZIP
ARCHIVE_ZIP_DESC= Install Perl module for Zip archive files
RSYNC_BPC_DESC= Install modified rsync that used as part of BackupPC
RRDTOOL_DESC= Install Round Robin Database Tools
SMB_DESC= Install Samba (for "smb" transfer and NetBIOS lookup)
XML_RSS_DESC= Install Perl extension to manage RSS files
ARCHIVE_ZIP_RUN_DEPENDS= p5-Archive-Zip>=0:archivers/p5-Archive-Zip
RSYNC_BPC_RUN_DEPENDS= rsync-bpc>=3.0.9.5:net/rsync-bpc
RRDTOOL_RUN_DEPENDS= rrdtool:databases/rrdtool
SMB_USES= samba:run # nmblookup, smbclient
XML_RSS_RUN_DEPENDS= p5-XML-RSS>=0:textproc/p5-XML-RSS
do-install:
cd ${WRKSRC} && ${PERL} configure.pl \
--batch \
--backuppc-user ${USERS} \
--bin-path perl=${PERL} \
--config-dir ${ETCDIR} \
--cgi-dir ${CGIDIR} \
--data-dir /var/db/BackupPC \
--dest-dir ${STAGEDIR} \
--fhs \
--html-dir ${WWWDIR} \
--html-dir-url /${PORTNAME} \
--install-dir ${PREFIX} \
--log-dir /var/log/BackupPC \
--no-set-perms \
--uid-ignore
pod2man --section=1 --release=${PORTVERSION} \
--name=BackupPC --center="BackupPC user guide" \
${WRKSRC}/doc/BackupPC.pod ${WRKSRC}/${PORTNAME}.1
${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1 ${STAGEDIR}${MANPREFIX}/man/man1
cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
${CP} ${WRKSRC}/doc/BackupPC.html ${STAGEDIR}${WWWDIR}
${RM} ${STAGEDIR}${ETCDIR}/config.pl
${RM} ${STAGEDIR}${ETCDIR}/hosts
${CP} ${WRKDIR}/update.sh ${STAGEDIR}${ETCDIR}/update.sh
${MKDIR} ${STAGEDIR}${PREFIX}/libexec/backuppc
${CP} ${WRKSRC}/configure.pl ${STAGEDIR}${PREFIX}/libexec/backuppc/configure.pl
.include <bsd.port.pre.mk>
.if ${PERL_LEVEL} >= 502200
RUN_DEPENDS+= p5-CGI>0:www/p5-CGI
.endif
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1493015326
SHA256 (BackupPC-4.1.1.tar.gz) = dc3eff90345a77a2438b285be78239e10275cf9647707808531ad9999e303789
SIZE (BackupPC-4.1.1.tar.gz) = 619302

View File

@ -0,0 +1,29 @@
#!/bin/sh
# PROVIDE: backuppc
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable BackupPC:
# backuppc_enable="YES"
. /etc/rc.subr
name="backuppc"
rcvar=backuppc_enable
load_rc_config $name
: ${backuppc_enable:="NO"}
: ${backuppc_flags:="-d"}
: ${backuppc_user:="backuppc"}
: ${backuppc_group:="backuppc"}
: ${backuppc_config:="%%ETCDIR%%/config.pl"}
command_interpreter="%%PREFIX%%/bin/perl"
command="%%PREFIX%%/bin/BackupPC"
required_files="${backuppc_config}"
pidfile="/var/run/BackupPC/BackupPC.pid"
run_rc_command "$1"

View File

@ -0,0 +1,11 @@
--- lib/BackupPC/CGI/View.pm.orig 2013-12-01 20:58:20 UTC
+++ lib/BackupPC/CGI/View.pm
@@ -102,7 +102,7 @@ sub action
$file = $bpc->ConfDir() . "/hosts";
$linkHosts = 1;
} elsif ( $type eq "docs" ) {
- $file = $bpc->InstallDir() . "/share/doc/BackupPC/BackupPC.html";
+ $file = "$Conf{CgiImageDir}/BackupPC.html";
} elsif ( $host ne "" ) {
if ( !defined($In{num}) ) {
# get the latest LOG file

View File

@ -0,0 +1,21 @@
#! /bin/sh
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
echo
echo "======================================================================="
echo " If you are permanently removing BackupPC, you should manually delete:"
echo " - the backuppc user/group: pw userdel backuppc"
if [ -d %%ETCDIR%% ]; then
echo " - BackupPC configuration: rm -r %%ETCDIR%%"
fi
if [ -d /var/db/BackupPC ]; then
echo " - BackupPC data directory: rm -r /var/db/BackupPC"
fi
if [ -d /var/log/BackupPC ]; then
echo " - BackupPC logs directory: rm -r /var/log/BackupPC"
fi
echo "======================================================================="
echo

View File

@ -0,0 +1,27 @@
==========================================================================
- If this is a new installation or version upgrade,
to create/update configuration you should run
%%ETCDIR%%/update.sh
- Add the following line to /etc/rc.conf to enable BackupPC:
backuppc_enable="YES"
- Data directory is /var/db/BackupPC
This is where all the backup data is stored.
This file system needs to be big enough
to accommodate all the PCs you expect to backup.
- BackupPC 4 creates a large number of files with negative group permissions.
To avoid excessive daily security run output consider adding the following
line to /etc/periodic.conf:
daily_status_security_neggrpperm_enable="NO"
- Users of Samba 4 smbclient should change debug level for smbclient
restore command to 5 ('-d 5') in the main configuration, for instance
$Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 5 -c tarmode\\ full -Tx -';
==========================================================================

View File

@ -0,0 +1,15 @@
#!/bin/sh
PERL5LIB=%%PREFIX%%/lib; export PERL5LIB
perl %%PREFIX%%/libexec/backuppc/configure.pl \
--config-only \
--bin-path perl=%%PREFIX%%/bin/perl \
--config-dir %%ETCDIR%% \
--cgi-dir %%CGIDIR%% \
--data-dir /var/db/BackupPC \
--fhs \
--html-dir %%WWWDIR%% \
--html-dir-url /backuppc \
--install-dir %%PREFIX%% \
--log-dir /var/log/BackupPC

View File

@ -0,0 +1,19 @@
BackupPC is a fast, enterprise-grade backup system. It provides
a web-based user interface. It supports several platforms (Unix-like,
Windows, MacOSX) to backup to a disk-based storage.
No client-side software is necessary, as the BackupPC server uses
several protocols (smb, rsync, tar and ftp) native to the client OS.
File-level deduplication combined with optional compression minimizes
the disk space needed to store the backups and disk I/O and enables
synthetic backups to reduce network traffic.
BackupPC is not a block-level backup system but performs file-based
backup and restore. Thus it is not suitable for backup of disk
images or raw disk partitions.
BackupPC supports laptop environments with clients on dynamic
IP addresses (DHCP) not always connected to the network.
WWW: http://backuppc.sourceforge.net/

View File

@ -0,0 +1,151 @@
@mode 0555
bin/BackupPC
bin/BackupPC_Admin_SCGI
bin/BackupPC_archive
bin/BackupPC_archiveHost
bin/BackupPC_archiveStart
bin/BackupPC_attribPrint
bin/BackupPC_backupDelete
bin/BackupPC_backupDuplicate
bin/BackupPC_dump
bin/BackupPC_fixupBackupSummary
bin/BackupPC_fsck
bin/BackupPC_ls
bin/BackupPC_migrateV3toV4
bin/BackupPC_nightly
bin/BackupPC_poolCntPrint
bin/BackupPC_refCountUpdate
bin/BackupPC_restore
bin/BackupPC_rrdUpdate
bin/BackupPC_sendEmail
bin/BackupPC_serverMesg
bin/BackupPC_tarCreate
bin/BackupPC_tarExtract
bin/BackupPC_zcat
bin/BackupPC_zipCreate
@mode 0444
lib/BackupPC/CGI/AdminOptions.pm
lib/BackupPC/CGI/Archive.pm
lib/BackupPC/CGI/ArchiveInfo.pm
lib/BackupPC/CGI/Browse.pm
lib/BackupPC/CGI/DirHistory.pm
lib/BackupPC/CGI/EditConfig.pm
lib/BackupPC/CGI/EmailSummary.pm
lib/BackupPC/CGI/GeneralInfo.pm
lib/BackupPC/CGI/HostInfo.pm
lib/BackupPC/CGI/LOGlist.pm
lib/BackupPC/CGI/Lib.pm
lib/BackupPC/CGI/Queue.pm
lib/BackupPC/CGI/RSS.pm
lib/BackupPC/CGI/ReloadServer.pm
lib/BackupPC/CGI/Restore.pm
lib/BackupPC/CGI/RestoreFile.pm
lib/BackupPC/CGI/RestoreInfo.pm
lib/BackupPC/CGI/StartServer.pm
lib/BackupPC/CGI/StartStopBackup.pm
lib/BackupPC/CGI/StopServer.pm
lib/BackupPC/CGI/Summary.pm
lib/BackupPC/CGI/View.pm
lib/BackupPC/Config/Meta.pm
lib/BackupPC/DirOps.pm
lib/BackupPC/Lang/cz.pm
lib/BackupPC/Lang/de.pm
lib/BackupPC/Lang/en.pm
lib/BackupPC/Lang/es.pm
lib/BackupPC/Lang/fr.pm
lib/BackupPC/Lang/it.pm
lib/BackupPC/Lang/ja.pm
lib/BackupPC/Lang/nl.pm
lib/BackupPC/Lang/pl.pm
lib/BackupPC/Lang/pt_br.pm
lib/BackupPC/Lang/ru.pm
lib/BackupPC/Lang/uk.pm
lib/BackupPC/Lang/zh_CN.pm
lib/BackupPC/Lib.pm
lib/BackupPC/Storage.pm
lib/BackupPC/Storage/Text.pm
lib/BackupPC/View.pm
lib/BackupPC/Xfer.pm
lib/BackupPC/Xfer/Archive.pm
lib/BackupPC/Xfer/Ftp.pm
lib/BackupPC/Xfer/Protocol.pm
lib/BackupPC/Xfer/Rsync.pm
lib/BackupPC/Xfer/Smb.pm
lib/BackupPC/Xfer/Tar.pm
lib/BackupPC/Zip/FileMember.pm
lib/Net/FTP/AutoReconnect.pm
lib/Net/FTP/RetrHandle.pm
man/man1/backuppc.1.gz
%%PORTDOCS%%%%DOCSDIR%%/BackupPC.html
%%PORTDOCS%%%%DOCSDIR%%/BackupPC.pod
%%WWWDIR%%/0000000.gif
%%WWWDIR%%/0000011.gif
%%WWWDIR%%/0001000.gif
%%WWWDIR%%/0010000.gif
%%WWWDIR%%/0010001.gif
%%WWWDIR%%/0011000.gif
%%WWWDIR%%/0011001.gif
%%WWWDIR%%/1000000.gif
%%WWWDIR%%/1000100.gif
%%WWWDIR%%/1001000.gif
%%WWWDIR%%/1001100.gif
%%WWWDIR%%/1010000.gif
%%WWWDIR%%/1010001.gif
%%WWWDIR%%/1011000.gif
%%WWWDIR%%/1100000.gif
%%WWWDIR%%/1100100.gif
%%WWWDIR%%/1100101.gif
%%WWWDIR%%/1100110.gif
%%WWWDIR%%/1100111.gif
%%WWWDIR%%/1101000.gif
%%WWWDIR%%/1101100.gif
%%WWWDIR%%/1101101.gif
%%WWWDIR%%/1101110.gif
%%WWWDIR%%/1101111.gif
%%WWWDIR%%/1110000.gif
%%WWWDIR%%/1110001.gif
%%WWWDIR%%/1110100.gif
%%WWWDIR%%/1110101.gif
%%WWWDIR%%/1110110.gif
%%WWWDIR%%/1110111.gif
%%WWWDIR%%/1111000.gif
%%WWWDIR%%/1111001.gif
%%WWWDIR%%/1111100.gif
%%WWWDIR%%/1111101.gif
%%WWWDIR%%/1111110.gif
%%WWWDIR%%/1111111.gif
%%WWWDIR%%/BackupPC.html
%%WWWDIR%%/BackupPC_stnd.css
%%WWWDIR%%/BackupPC_retro_v2.css
%%WWWDIR%%/BackupPC_retro_v3.css
%%WWWDIR%%/favicon.ico
%%WWWDIR%%/icon-dir.png
%%WWWDIR%%/icon-file.png
%%WWWDIR%%/icon-hardlink.png
%%WWWDIR%%/icon-symlink.png
%%WWWDIR%%/logo.gif
%%WWWDIR%%/logo320.png
%%WWWDIR%%/sorttable.js
@owner backuppc
@group backuppc
@mode 04554
%%CGIDIR%%/BackupPC_Admin
@mode
@dir /var/run/BackupPC
@dir /var/log/BackupPC
@dir /var/db/BackupPC/cpool
@dir /var/db/BackupPC/pc
@dir /var/db/BackupPC/pool
@dir /var/db/BackupPC
@comment .sample files actually are templates for the configuration script
@comment and should not be installed as working configuration files.
@mode 0640
%%ETCDIR%%/config.pl.sample
@mode 0644
%%ETCDIR%%/hosts.sample
@owner
@group
@mode 0544
%%ETCDIR%%/update.sh
libexec/backuppc/configure.pl
@mode