a project to simplify installation of open source software
on Mac OS X and Darwin
# $Id: Portfile 20465 2006-11-03 15:19:20Z blair@macports.org $
PortSystem 1.0
name boxbackup
version 0.10
categories sysutils net
maintainers ecronin@gizmolabs.org
description completely automatic on-line backup system for UNIX.
long_description The backup daemon, bbackupd, runs on all machines to \
be backed up. The store server daemon, bbstored runs \
on a central server. Data is sent to the store \
server, which stores all data on local filesystems, \
that is, only on local hard drives. Tape or other \
archive media is not used. \
The system is designed to be easy to set up and run, \
and cheap to use. Once set up, there should be no \
need for user or administrative intervention, apart \
from usual system maintenance.
homepage http://www.fluffy.co.uk/boxbackup/
master_sites sourceforge
extract.suffix .tgz
checksums md5 2dc02d87932fdb222ed019443ddcf444
patchfiles patch-BoxPlatform.pm.in
depends_lib port:perl5.8 \
port:zlib \
port:openssl
post-patch {
reinplace "s|ac_default_prefix=/usr/local|ac_default_prefix=${prefix}|g" ${worksrcpath}/configure
reinplace "s|@bindir_expanded@|${prefix}/bin|g" ${worksrcpath}/infrastructure/BoxPlatform.pm.in
reinplace "s|__PREFIX__|${prefix}|g" ${worksrcpath}/infrastructure/BoxPlatform.pm.in
reinplace "s|\$install_into_dir|${destroot}\$install_into_dir|g" ${worksrcpath}/infrastructure/makeparcels.pl
cd ${worksrcpath}
foreach file [exec find . -type f ( -name *.pl -o -name *-config -o -name *-certs -o -name *.cpp )] {
reinplace "s|/usr/bin/perl|${prefix}/bin/perl|g" ${file}
}
foreach file { \
bin/bbstored/BackupConstants.h \
bin/bbackupd/bbackupd-config \
bin/bbstored/bbstored-certs \
bin/bbstored/bbstored-config \
lib/common/BoxPortsAndFiles.h \
lib/raidfile/RaidFileController.h \
lib/raidfile/raidfile-config \
} {
reinplace "s|/usr/local|${prefix}|g" ${file}
reinplace "s|/var/run|${prefix}/var/run|g" ${file}
reinplace "s|/var/bbackupd|${prefix}/var/bbackupd|g" ${file}
reinplace "s|/etc/box|${prefix}/etc/box|g" ${file}
}
}
configure.env PREFIX='${prefix}'
configure.pre_args
destroot.target install-backup-client
destroot.keepdirs ${destroot}${prefix}/etc/box \
${destroot}${prefix}/etc/box/bbackupd \
${destroot}${prefix}/var/run \
${destroot}${prefix}/var/bbackupd
post-build {
# Since this app does not support DESTDIR ....
reinplace "s|/usr/local|${destroot}${prefix}|g" ${worksrcpath}/parcels/scripts/install-backup-client
reinplace "s|/usr/local|${destroot}${prefix}|g" ${worksrcpath}/parcels/scripts/install-backup-server
}
post-destroot {
xinstall -d -m 0700 ${destroot}${prefix}/etc/box/bbackupd
xinstall -d -m 0700 ${destroot}${prefix}/var/bbackupd
xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}
foreach docname {accounts bbackupctl client license nonroot restore retrieve server serverfix space trouble} {
xinstall -m 0644 ${filespath}/${docname}.html \
${destroot}${prefix}/share/doc/${name}/${docname}.html
reinplace "s|/usr/local|${prefix}|g" \
${destroot}${prefix}/share/doc/${name}/${docname}.html
reinplace "s|/var/run|${prefix}/var/run|g" \
${destroot}${prefix}/share/doc/${name}/${docname}.html
reinplace "s|/var/bbackupd|${prefix}/var/bbackupd|g" \
${destroot}${prefix}/share/doc/${name}/${docname}.html
reinplace "s|/etc/box|${prefix}/etc/box|g" \
${destroot}${prefix}/share/doc/${name}/${docname}.html
}
# Create startup rc script (if non-Darwin)
if {![variant_isset darwin]} {
xinstall -d -m 0755 ${destroot}${prefix}/etc/rc.d
xinstall -m 0755 ${filespath}/boxbackup.sh.in \
${destroot}${prefix}/etc/rc.d/boxbackup.sh
reinplace "s|__PREFIX__|${prefix}|g" ${destroot}${prefix}/etc/rc.d/boxbackup.sh
}
}
variant server {
pre-destroot {
addgroup bbstored
set gid [existsgroup bbstored]
adduser bbstored gid=${gid} realname=BoxBackup\ Server home=${prefix}/etc/box/bbstored
}
destroot.target-append install-backup-server
destroot.keepdirs-append ${destroot}${prefix}/etc/box/bbstored
post-destroot {
xinstall -o bbstored -g bbstored -d -m 0700 ${destroot}${prefix}/etc/box/bbstored
}
pre-install {
addgroup bbstored
set gid [existsgroup bbstored]
adduser bbstored gid=${gid} realname=BoxBackup\ Server home=${prefix}/etc/box/bbstored
}
}
post-activate {
if {[variant_isset server]} {
if {![file exists ${prefix}/etc/box/raidfile.conf]} {
ui_warn "${prefix}/etc/box/raidfile.conf is missing!"
ui_msg "You need to run 'raidfile-config' to create it."
ui_msg "See the documentation on server setup for details:"
ui_msg " file://${prefix}/share/doc/boxbackup/server.html"
}
if {![file exists ${prefix}/etc/box/bbstored.conf]} {
ui_warn "${prefix}/etc/box/bbstored.conf is missing!"
ui_msg "You need to run 'bbstored-config' to create it."
ui_msg "See the documentation on server setup for details:"
ui_msg " file://${prefix}/share/doc/boxbackup/server.html"
}
}
if {![file exists ${prefix}/etc/box/bbackupd.conf]} {
ui_warn "${prefix}/etc/box/bbackupd.conf is missing!"
ui_msg "You need to run 'bbackupd-config' to create it."
ui_msg "See the documentation on client setup for details:"
ui_msg " file://${prefix}/share/doc/boxbackup/client.html"
}
}
platform darwin {
startupitem.create yes
startupitem.name BoxBackup
startupitem.start "cd ${prefix}/etc/box"
if {[variant_isset server]} {
startupitem.start-append "\[ -f \"${prefix}/etc/box/bbstored.conf\" \] \\"
startupitem.start-append "\t&& \[ -f \"${prefix}/etc/box/raidfile.conf\" \] \\"
startupitem.start-append "\t&& ${prefix}/bin/bbstored"
}
startupitem.start-append "\[ -f \"${prefix}/etc/box/bbackupd.conf\" \] \\"
startupitem.start-append "\t&& ${prefix}/bin/bbackupd"
startupitem.stop "/usr/bin/killall -SIGUSR1 bbackupd"
if {[variant_isset server]} {
startupitem.stop-append "/usr/bin/killall -SIGUSR1 bbstored"
}
}