diff --git a/sysutils/boxbackup-devel/Makefile b/sysutils/boxbackup-devel/Makefile index 5694e21ea0b3..92146542a96e 100644 --- a/sysutils/boxbackup-devel/Makefile +++ b/sysutils/boxbackup-devel/Makefile @@ -6,15 +6,22 @@ # PORTNAME= boxbackup -PORTVERSION= 0.10 -PORTREVISION= 2 +PORTVERSION= 0.11.r${SVNVERSION:C/^[0-9\.]+_[a-z]+_([0-9]+)/\1/} CATEGORIES= sysutils -MASTER_SITES= SF +MASTER_SITES= http://www.boxbackup.org/snapshots/%SUBDIR%/ +PKGNAMESUFFIX= ${CLIENT_OR_SERVER}-devel +DISTNAME= ${PORTNAME}-${SVNVERSION} EXTRACT_SUFX= .tgz -PKGNAMESUFFIX= -devel MAINTAINER= james@netinertia.co.uk -COMMENT= An open source, completely automatic on-line backup system for UNIX +COMMENT= Open source, completely automatic on-line backup system for Unix + +LICENSE= BSD GPLv2 +LICENSE_COMB= dual +LICENSE_FILE= ${WRKSRC}/LICENSE-DUAL.txt + +MASTER_SITE_SUBDIR=201108 +SVNVERSION= 0.11_trunk_2979 NO_LATEST_LINK= yes @@ -24,17 +31,18 @@ USE_PERL5= yes USE_AUTOTOOLS= autoconf aclocal autoheader ACLOCAL_ARGS+= -I ${WRKSRC}/infrastructure/m4 +# Box now defaults to /etc for configuration. Linux devs make me sad. +# Override this. +CONFIGURE_ARGS+=--sysconfdir=${PREFIX}/etc + PKGMESSAGE= ${WRKDIR}/pkg-message OPTIONS= CLIENT "Install the bbackupd client" On \ SERVER "Install the bbstored server" On \ - GNUREADLINE "Enable the use of GNU readline" Off \ - TESTS "Allows use of a 'test' target to run tests" Off + GNUREADLINE "Enable the use of GNU readline" Off .include -TARGETOS!= ${ECHO_CMD} `${UNAME} -s``${UNAME} -r | ${SED} -e 's/[-(].*//'` | ${TR} A-Z a-z - .if defined(WITH_GNUREADLINE) CONFIGURE_ARGS+=--enable-gnu-readline .endif @@ -44,55 +52,48 @@ IGNORE= requires at least CLIENT or SERVER to be defined.\ Please 'make config' again .endif -.if defined(WITHOUT_CLIENT) -PLIST_SUB+= CLIENT="@comment " -.else -USE_RC_SUBR+= bbackupd.sh +MANCOMPRESSED= yes +.if defined(WITH_CLIENT) +USE_RC_SUBR+= bbackupd PLIST_SUB+= CLIENT="" -ALL_TARGET+= parcels/${DISTNAME}-backup-client-${TARGETOS}.tgz +ALL_TARGET+= build-backup-client INSTALL_TARGET+=install-backup-client -.endif - -.if defined(WITHOUT_SERVER) -PLIST_SUB+= SERVER="@comment " +MAN5+= bbackupd.conf.5 +MAN8+= bbackupd.8 bbackupctl.8 bbackupd-config.8 bbackupquery.8 +SUB_FILES+= 999.boxbackup .else -USE_RC_SUBR+= bbstored.sh -PLIST_SUB+= SERVER="" -ALL_TARGET+= parcels/${DISTNAME}-backup-server-${TARGETOS}.tgz -INSTALL_TARGET+=install-backup-server +PLIST_SUB+= CLIENT="@comment " +.endif + +.if defined(WITH_SERVER) +USE_RC_SUBR+= bbstored +USERS+= _bbstored +GROUPS+= _bbstored +PLIST_SUB+= SERVER="" +ALL_TARGET+= build-backup-server +INSTALL_TARGET+=install-backup-server +MAN5+= bbstored.conf.5 raidfile.conf.5 +MAN8+= bbstored.8 bbstoreaccounts.8 bbstored-certs.8 bbstored-config.8 raidfile-config.8 +.else +PLIST_SUB+= SERVER="@comment " .endif -CONFLICTS= boxbackup-server-[0-9]* boxbackup-client-[0-9]* .if defined(WITHOUT_CLIENT) -CONFLICTS= boxbackup-client-[0-9]* -PKGNAMESUFFIX= -server +# if this is a server-only install, CONFLICT with an install of the CLIENT or both +CONFLICTS= boxbackup-client-[0-9]* boxbackup-[0-9]* +CLIENT_OR_SERVER=-server .elif defined(WITHOUT_SERVER) -CONFLICTS= boxbackup-server-[0-9]* -PKGNAMESUFFIX= -client +# if this is a client-only install, CONFLICT with an install of the SERVER or both +CONFLICTS= boxbackup-server-[0-9]* boxbackup-[0-9]* +CLIENT_OR_SERVER=-client +.else +# if we install boxbackup-[0-9]*, we should CONFLICT with a CLIENT or SERVER only install +# PKGNAMESUFFIX is empty at this point +CONFLICTS= boxbackup-server-[0-9]* boxbackup-client-[0-9]* .endif post-patch: -# Replace hard-coded /etc/box with $PREFIX/etc/box - @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ - ${WRKSRC}/lib/common/BoxPortsAndFiles.h -# Fix path to perl - @${FIND} ${WRKSRC} -name "*.pl" -exec \ - ${REINPLACE_CMD} -e 's,/usr/bin/perl,${PERL},g' {} \; - @${REINPLACE_CMD} -e 's,/usr/bin/perl,${PERL},g' \ - ${WRKSRC}/bin/bbackupd/bbackupd-config \ - ${WRKSRC}/bin/bbstored/bbstored-certs \ - ${WRKSRC}/bin/bbstored/bbstored-config \ - ${WRKSRC}/lib/raidfile/raidfile-config - @${FIND} ${WRKSRC} -name "Makefile.extra" -exec \ - ${REINPLACE_CMD} -e 's,perl,${PERL},g' {} \; - @${REINPLACE_CMD} -e 's,perl ,${PERL} ,g' \ - ${WRKSRC}/test/bbackupd/testfiles/bbackupd.conf \ - ${WRKSRC}/infrastructure/makebuildenv.pl - @${REINPLACE_CMD} -e 's,"perl ,PERL_EXECUTABLE " ,g' \ - ${WRKSRC}/test/backupstorefix/testbackupstorefix.cpp -# Fix hard-coded g++ - @${REINPLACE_CMD} -e 's,g++,${CXX},' \ - ${WRKSRC}/infrastructure/makebuildenv.pl + @${REINPLACE_CMD} -e '/html/d' ${WRKSRC}/parcels.txt .if !defined(WITHOUT_CLIENT) @${CAT} ${FILESDIR}/pkg-message.client >> ${PKGMESSAGE} .endif @@ -100,25 +101,22 @@ post-patch: @${CAT} ${FILESDIR}/pkg-message.server >> ${PKGMESSAGE} .endif -.if !defined(WITHOUT_SERVER) -pre-install: - @${SETENV} PKG_PREFIX=${PREFIX} \ - ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL -.endif +post-configure: + @${REINPLACE_CMD} -e '/share.doc.boxbackup/d' ${WRKSRC}/parcels/scripts/install-backup-* post-install: .if !defined(WITHOUT_CLIENT) @${MKDIR} -m 0700 ${PREFIX}/etc/box/bbackupd + @${MKDIR} ${PREFIX}/etc/periodic/monthly + ${INSTALL_SCRIPT} ${WRKDIR}/999.boxbackup ${PREFIX}/etc/periodic/monthly .endif .if !defined(WITHOUT_SERVER) @${MKDIR} -m 0700 ${PREFIX}/etc/box/bbstored .endif @${CAT} ${PKGMESSAGE} -.if defined(WITH_TESTS) test: @${ECHO_CMD} "===> Running tests" @${MAKE} -C ${WRKSRC} test -.endif .include diff --git a/sysutils/boxbackup-devel/distinfo b/sysutils/boxbackup-devel/distinfo index 0054cf1ab112..6563e4e588cc 100644 --- a/sysutils/boxbackup-devel/distinfo +++ b/sysutils/boxbackup-devel/distinfo @@ -1,2 +1,2 @@ -SHA256 (boxbackup-0.10.tgz) = 09e88f4ee26b76b3d6e6a0cf3fc374e55d79dd84e9884dfc6a7635593862d361 -SIZE (boxbackup-0.10.tgz) = 842450 +SHA256 (boxbackup-0.11_trunk_2979.tgz) = 8d49959c7bd173de468837a6645883b37f5c2d485ba2245f9178b74e8b1f8c9e +SIZE (boxbackup-0.11_trunk_2979.tgz) = 2185279 diff --git a/sysutils/boxbackup-devel/files/999.boxbackup.in b/sysutils/boxbackup-devel/files/999.boxbackup.in new file mode 100644 index 000000000000..989d62d6b3e2 --- /dev/null +++ b/sysutils/boxbackup-devel/files/999.boxbackup.in @@ -0,0 +1,66 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# Box Backup monthly store compare +# +# Add the following to /etc/periodic.conf to enable the monthly compare: +# monthly_boxbackup_compare_enable="YES" +# +# By default the script will run "compare -aq". If you want to change this to +# run a full compare, add the following to periodic.conf: +# monthly_boxbackup_compare_args="-a" +# +# NOTE: This script will cause the monthly periodic(8) run to take much longer +# than usual, depending on the size of your backup store. +# +# If you wish to run this independently of the monthly job, you can create a +# new periodic entry as follows: +# +# # mkdir /usr/local/etc/periodic/boxbackup +# # mv /usr/local/etc/periodic/monthly/999.boxbackup \ +# /usr/local/etc/periodic/boxbackup/100.compare +# +# Then add the following to /etc/crontab: +# 30 5 1 * * root periodic boxbackup +# +# (adjust the timings as necessary) +# +# You may also wish to add boxbackup_output="root" to periodic.conf so that +# mail comes from periodic rather than cron. + +monthly_boxbackup_compare_enable="NO" +monthly_boxbackup_compare_args="-aq" + +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +rc=0 + +case "$monthly_boxbackup_compare_enable" in + [Yy][Ee][Ss]) + echo + echo "Running Box Backup store compare:" + %%PREFIX%%/sbin/bbackupquery -q "compare -c $monthly_boxbackup_compare_args" quit + + # Return codes: + # 1 Comparison was exact + # 2 Differences were found + # 3 An error occured + if [ $? -eq 2 ]; then + echo + echo "Differences were found. Please check the output." + rc=3 + elif [ $? -eq 3 ]; then + echo + echo "An error occurred. Please check the output." + rc=3 + fi + + ;; +esac + +exit $rc diff --git a/sysutils/boxbackup-devel/files/bbackupd.sh.in b/sysutils/boxbackup-devel/files/bbackupd.in similarity index 75% rename from sysutils/boxbackup-devel/files/bbackupd.sh.in rename to sysutils/boxbackup-devel/files/bbackupd.in index b1e5febae656..8e2e3af1bfed 100644 --- a/sysutils/boxbackup-devel/files/bbackupd.sh.in +++ b/sysutils/boxbackup-devel/files/bbackupd.in @@ -1,27 +1,28 @@ #!/bin/sh -# + # $FreeBSD$ # # PROVIDE: bbackupd # REQUIRE: NETWORKING # KEYWORD: shutdown - # # Add the following line to /etc/rc.conf to enable bbackupd: # -#bbackupd_enable="YES" -# - -: ${bbackupd_enable:="NO"} -: ${bbackupd_flags:="%%PREFIX%%/etc/box/bbackupd.conf"} -: ${bbackupd_pidfile:="/var/run/bbackupd.pid"} +# bbackupd_enable="YES" . /etc/rc.subr name="bbackupd" rcvar=`set_rcvar` -command="%%PREFIX%%/bin/bbackupd" -extra_commands="reload" load_rc_config $name + +: ${bbackupd_enable:="NO"} +: ${bbackupd_flags:="%%PREFIX%%/etc/box/bbackupd.conf"} + +pidfile=${bbackupd_pidfile:-"/var/run/bbackupd.pid"} + +command="%%PREFIX%%/sbin/bbackupd" +extra_commands="reload" + run_rc_command "$1" diff --git a/sysutils/boxbackup-devel/files/bbstored.sh.in b/sysutils/boxbackup-devel/files/bbstored.in similarity index 75% rename from sysutils/boxbackup-devel/files/bbstored.sh.in rename to sysutils/boxbackup-devel/files/bbstored.in index 9554a6bd0e2f..347af939b7ed 100644 --- a/sysutils/boxbackup-devel/files/bbstored.sh.in +++ b/sysutils/boxbackup-devel/files/bbstored.in @@ -1,27 +1,28 @@ #!/bin/sh -# + # $FreeBSD$ # # PROVIDE: bbstored # REQUIRE: NETWORKING # KEYWORD: shutdown - # # Add the following line to /etc/rc.conf to enable bbstored: # -#bbstored_enable="YES" -# - -: ${bbstored_enable:="NO"} -: ${bbstored_flags:="%%PREFIX%%/etc/box/bbstored.conf"} -: ${bbstored_pidfile:="/var/run/bbstored.pid"} +# bbstored_enable="YES" . /etc/rc.subr name="bbstored" rcvar=`set_rcvar` -command="%%PREFIX%%/bin/bbstored" -extra_commands="reload" load_rc_config $name + +: ${bbstored_enable:="NO"} +: ${bbstored_flags:="%%PREFIX%%/etc/box/bbstored.conf"} + +pidfile=${bbstored_pidfile:-"/var/run/bbstored.pid"} + +command="%%PREFIX%%/sbin/bbstored" +extra_commands="reload" + run_rc_command "$1" diff --git a/sysutils/boxbackup-devel/files/patch-configure.ac b/sysutils/boxbackup-devel/files/patch-configure.ac deleted file mode 100644 index e74613444509..000000000000 --- a/sysutils/boxbackup-devel/files/patch-configure.ac +++ /dev/null @@ -1,35 +0,0 @@ ---- configure.ac.orig Thu Mar 16 22:26:39 2006 -+++ configure.ac Thu Mar 16 22:28:31 2006 -@@ -2,7 +2,7 @@ - # Process this file with autoconf to produce a configure script. - - AC_PREREQ(2.59) --AC_INIT([Box Backup], 0.09, [box@fluffy.co.uk]) -+AC_INIT([Box Backup], 0.10, [box@fluffy.co.uk]) - AC_CONFIG_SRCDIR([lib/common/Box.h]) - AC_CONFIG_HEADERS([lib/common/BoxConfig.h]) - -@@ -26,6 +26,12 @@ - # Use -rdynamic if we have gcc. This is needed for backtrace - AC_SUBST([LDADD_RDYNAMIC], ['-rdynamic']) - fi -+AC_PATH_PROG([PERL], [perl], [no]) -+if test "x$PERL" != "xno"; then -+ AC_DEFINE_UNQUOTED([PERL_EXECUTABLE], ["$PERL"], [Location of the perl executable]) -+else -+ AC_MSG_ERROR([[perl executable was not found]]) -+fi - - - ### Checks for libraries. -@@ -208,8 +214,8 @@ - - # Configure the Box build system - echo --perl ./infrastructure/makebuildenv.pl && -- perl ./infrastructure/makeparcels.pl -+$PERL ./infrastructure/makebuildenv.pl && -+ $PERL ./infrastructure/makeparcels.pl - - # Write summary of important info - cat </dev/null 2>&1` - if [ $? -eq 0 ]; then - if yesno "Do you want me to remove user \"${u}\"" n; then - pw userdel -n ${u} - echo "Done." - fi - fi -} - -case $2 in - -DEINSTALL) - if ps -axc | grep -qw bbstored; then - if yesno "bbstored is still running. Shall I stop it?" y; then - killall bbstored - sleep 2 - else - echo "OK ... I hope you know what you are doing." - fi - fi - - if ps -axc | grep -qw bbackupd; then - if yesno "bbackupd is still running. Shall I stop it?" y; then - killall bbackupd - sleep 2 - else - echo "OK ... I hope you know what you are doing." - fi - fi - - delete_account _bbstored - - ;; - -esac diff --git a/sysutils/boxbackup-devel/pkg-descr b/sysutils/boxbackup-devel/pkg-descr index 6a1bfa41cf22..1d8c6ddbc5d5 100644 --- a/sysutils/boxbackup-devel/pkg-descr +++ b/sysutils/boxbackup-devel/pkg-descr @@ -10,4 +10,4 @@ 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. -WWW: http://www.fluffy.co.uk/boxbackup/ +WWW: http://www.boxbackup.org/ diff --git a/sysutils/boxbackup-devel/pkg-install b/sysutils/boxbackup-devel/pkg-install deleted file mode 100644 index 594c74b8202b..000000000000 --- a/sysutils/boxbackup-devel/pkg-install +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -# $FreeBSD$ - -case $2 in -PRE-INSTALL) - USER=_bbstored - GROUP=${USER} - UID=505 - GID=${UID} - - if pw group show "${GROUP}" 2>/dev/null; then - echo "You already have a group \"${GROUP}\", so I will use it." - else - if pw groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - if pw user show "${USER}" 2>/dev/null; then - echo "You already have a user \"${USER}\", so I will use it." - else - if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ - -d /nonexistent -c "Box Backup Store Daemon" - then - echo "Added user \"${USER}\"." - else - echo "Adding user \"${USER}\" failed..." - exit 1 - fi - fi - ;; -esac diff --git a/sysutils/boxbackup-devel/pkg-plist b/sysutils/boxbackup-devel/pkg-plist index 02884ee5eb40..fa4a9fb05cf5 100644 --- a/sysutils/boxbackup-devel/pkg-plist +++ b/sysutils/boxbackup-devel/pkg-plist @@ -1,14 +1,17 @@ -%%CLIENT%%bin/bbackupctl -%%CLIENT%%bin/bbackupd -%%CLIENT%%bin/bbackupd-config -%%CLIENT%%bin/bbackupquery -%%SERVER%%bin/bbstoreaccounts -%%SERVER%%bin/bbstored -%%SERVER%%bin/bbstored-certs -%%SERVER%%bin/bbstored-config -%%SERVER%%bin/raidfile-config +%%CLIENT%%sbin/bbackupctl +%%CLIENT%%sbin/bbackupd +%%CLIENT%%sbin/bbackupd-config +%%CLIENT%%sbin/bbackupquery +%%SERVER%%sbin/bbstoreaccounts +%%SERVER%%sbin/bbstored +%%SERVER%%sbin/bbstored-certs +%%SERVER%%sbin/bbstored-config +%%SERVER%%sbin/raidfile-config %%CLIENT%%@exec mkdir -p -m 0700 %D/etc/box/bbackupd %%SERVER%%@exec mkdir -p -m 0700 %D/etc/box/bbstored %%CLIENT%%@dirrmtry etc/box/bbackupd %%SERVER%%@dirrmtry etc/box/bbstored +%%CLIENT%%etc/periodic/monthly/999.boxbackup +@dirrmtry etc/periodic/monthly +@dirrmtry etc/periodic @dirrmtry etc/box