| 3 |
|
|
| 4 |
PORTNAME= bacula |
PORTNAME= bacula |
| 5 |
DISTVERSION= 5.2.12 |
DISTVERSION= 5.2.12 |
| 6 |
PORTREVISION?= 4 |
PORTREVISION?= 5 |
| 7 |
CATEGORIES?= sysutils |
CATEGORIES?= sysutils |
| 8 |
MASTER_SITES= SF/bacula/bacula/${PORTVERSION} |
MASTER_SITES= SF/bacula/bacula/${PORTVERSION} |
| 9 |
PKGNAMEPREFIX?= # |
PKGNAMEPREFIX?= # |
| 12 |
MAINTAINER= dan@langille.org |
MAINTAINER= dan@langille.org |
| 13 |
COMMENT?= Network backup solution (server) |
COMMENT?= Network backup solution (server) |
| 14 |
|
|
| 15 |
LIB_DEPENDS+= lzo2:${PORTSDIR}/archivers/lzo2 |
USES+= libtool |
| 16 |
|
|
| 17 |
UNIQUENAME?= ${PORTNAME}${PKGNAMESUFFIX} |
LIB_DEPENDS+= liblzo2.so:${PORTSDIR}/archivers/lzo2 |
| 18 |
|
|
| 19 |
USERS= bacula |
USERS= bacula |
| 20 |
GROUPS= ${USERS} |
GROUPS= ${USERS} |
| 31 |
OPTIONS_DEFAULT?= NLS OPENSSL PGSQL |
OPTIONS_DEFAULT?= NLS OPENSSL PGSQL |
| 32 |
MTX_DESC= Install mtx for control of autochanger devices |
MTX_DESC= Install mtx for control of autochanger devices |
| 33 |
|
|
| 34 |
NO_STAGE= yes |
OPENSSL_USE= OPENSSL=yes |
| 35 |
.include <bsd.port.options.mk> |
OPENSSL_CONFIGURE_ON= --with-openssl=${OPENSSLBASE} |
| 36 |
|
OPENSSL_CONFIGURE_OFF= --with-openssl="no" |
| 37 |
|
|
| 38 |
.if ${PKGNAMESUFFIX} == "-client" || ${PKGNAMESUFFIX} == "-server" #Till end of the file |
.if ${PKGNAMESUFFIX} == "-client" || ${PKGNAMESUFFIX} == "-server" #Till end of the file |
| 39 |
|
|
| 40 |
.if defined(WITH_PYTHON) |
PYTHON_USE= PYTHON=yes |
| 41 |
USE_PYTHON= yes |
PYTHON_CONFIGURE_ON= --with-python=yes |
|
CONFIGURE_ARGS+= --with-python=yes |
|
|
.endif |
|
| 42 |
|
|
| 43 |
.if !defined(WITH_CLIENT_ONLY) |
.if !defined(WITH_CLIENT_ONLY) |
| 44 |
LIB_DEPENDS+= bac:${PORTSDIR}/sysutils/bacula-client |
LIB_DEPENDS+= libbac.so:${PORTSDIR}/sysutils/bacula-client |
| 45 |
USE_RC_SUBR?= bacula-dir bacula-sd |
USE_RC_SUBR?= bacula-dir bacula-sd |
| 46 |
.endif |
.endif |
| 47 |
|
|
| 95 |
BACULA_GID=${BACULA_GID} \ |
BACULA_GID=${BACULA_GID} \ |
| 96 |
BACULA_DIR=${BACULA_DIR} |
BACULA_DIR=${BACULA_DIR} |
| 97 |
|
|
| 98 |
.if ${PORT_OPTIONS:MNLS} |
NLS_USES= gettext |
| 99 |
USES+= gettext |
NLS_CONFIGURE_ENABLE= nls |
|
CONFIGURE_ARGS+= --enable-nls |
|
|
.else |
|
|
CONFIGURE_ARGS+= --disable-nls |
|
|
.endif |
|
| 100 |
|
|
| 101 |
# overridden if client install |
# overridden if client install |
| 102 |
PKGDEINSTALL= ${FILESDIR}/pkg-deinstall.server |
PKGDEINSTALL= ${FILESDIR}/pkg-deinstall.server |
| 113 |
# Server only Options |
# Server only Options |
| 114 |
CONFFILES= sd dir |
CONFFILES= sd dir |
| 115 |
# Server default database |
# Server default database |
| 116 |
|
|
| 117 |
|
MYSQL_CONFIGURE_ON= --with-mysql=yes |
| 118 |
|
MYSQL_USE= MYSQL=yes |
| 119 |
|
SQLITE3_CONFIGURE_ON= --with=sqlite3=yes |
| 120 |
|
SQLITE3_LIB_DEPENDS= libsqlite3.so:${PORTSDIR}/databases/sqlite3 |
| 121 |
|
PGSQL_CONFIGURE_ON= --with-postgresql=yes |
| 122 |
|
PGSQL_USES= pgsql |
| 123 |
|
|
| 124 |
|
MTX_RUN_DEPENDS= ${LOCALBASE}/sbin/mtx:${PORTSDIR}/misc/mtx |
| 125 |
|
|
| 126 |
|
.include <bsd.port.options.mk> |
| 127 |
|
|
| 128 |
.if ${PORT_OPTIONS:MMYSQL} |
.if ${PORT_OPTIONS:MMYSQL} |
|
CONFIGURE_ARGS+= --with-mysql=yes |
|
|
USE_MYSQL= yes |
|
| 129 |
DBTYPE= mysql |
DBTYPE= mysql |
| 130 |
SUB_LIST+= REQ_MYSQL=mysql REQ_PGSQL="" |
SUB_LIST+= REQ_MYSQL=mysql REQ_PGSQL="" |
| 131 |
.elif ${PORT_OPTIONS:MSQLITE3} |
.elif ${PORT_OPTIONS:MSQLITE3} |
|
CONFIGURE_ARGS+= --with-sqlite3=yes |
|
|
LIB_DEPENDS+= sqlite3:${PORTSDIR}/databases/sqlite3 |
|
| 132 |
DBTYPE= sqlite3 |
DBTYPE= sqlite3 |
| 133 |
.else |
.else |
|
USE_PGSQL= yes |
|
|
CONFIGURE_ARGS+= --with-postgresql=yes |
|
| 134 |
DBTYPE= postgresql |
DBTYPE= postgresql |
| 135 |
SUB_LIST+= REQ_MYSQL="" REQ_PGSQL=postgresql |
SUB_LIST+= REQ_MYSQL="" REQ_PGSQL=postgresql |
| 136 |
.endif |
.endif |
| 137 |
PLIST_SUB+= DBTYPE=${DBTYPE} |
PLIST_SUB+= DBTYPE=${DBTYPE} |
|
# Install mtx |
|
|
.if ${PORT_OPTIONS:MMTX} |
|
|
RUN_DEPENDS+= ${LOCALBASE}/sbin/mtx:${PORTSDIR}/misc/mtx |
|
|
.endif |
|
|
.endif |
|
| 138 |
|
|
|
.if ${PORT_OPTIONS:MOPENSSL} |
|
|
.include "${PORTSDIR}/Mk/bsd.openssl.mk" |
|
|
CONFIGURE_ARGS+= --with-openssl=${OPENSSLBASE} |
|
|
.else |
|
|
CONFIGURE_ARGS+= --with-openssl="no" |
|
| 139 |
.endif |
.endif |
| 140 |
|
|
| 141 |
.if defined(WITH_CLIENT_ONLY) |
.if defined(WITH_CLIENT_ONLY) |
| 142 |
MAN8+= bacula-fd.8 bconsole.8 |
MP8+= bacula-fd.8 bconsole.8 |
| 143 |
.else |
.else |
| 144 |
MAN8+= bacula.8 bacula-dir.8 bacula-sd.8 bcopy.8 bextract.8 bls.8 bscan.8 \ |
MP8+= bacula.8 bacula-dir.8 bacula-sd.8 bcopy.8 bextract.8 bls.8 bscan.8 \ |
| 145 |
btape.8 btraceback.8 dbcheck.8 bwild.8 bregex.8 |
btape.8 btraceback.8 dbcheck.8 bwild.8 bregex.8 |
| 146 |
MAN1+= bsmtp.1 bacula-tray-monitor.1 bacula-bwxconsole.1 |
MP1+= bsmtp.1 bacula-tray-monitor.1 bacula-bwxconsole.1 |
| 147 |
.endif |
.endif |
| 148 |
|
|
| 149 |
MAKE_ENV+= MAN8="${MAN8}" MAN1="${MAN1}" |
MAKE_ENV+= MO8="${MAN8}" MAN1="${MP1}" |
|
|
|
|
pre-everything:: |
|
|
.if !defined(WITH_CLIENT_ONLY) |
|
|
@${ECHO_MSG} "You may use the following build options (or make config):" |
|
|
@${ECHO_MSG} "" |
|
|
@${ECHO_MSG} " WITH_CLIENT_ONLY=yes if you only want the file daemon." |
|
|
@${ECHO_MSG} " WITH_MTX=yes if you want to use mtx instead of chio for autochanger control." |
|
|
@${ECHO_MSG} " WITH_PYTHON=yes Enable Python scripting in the director." |
|
|
@${ECHO_MSG} " WITH_SQLITE3=yes if you want SQLite-3 as the database (not recommended)." |
|
|
.if ! ${PORT_OPTIONS:MMYSQL} && ! ${PORT_OPTIONS:MPGSQL} |
|
|
@${ECHO_MSG} " WITH_MYSQL=yes if you want MySQL as the database." |
|
|
@${ECHO_MSG} " WITH_PGSQL=yes if you want PostgreSQL as the database." |
|
|
@${ECHO_MSG} "" |
|
|
@${ECHO_MSG} "The default DB is PostgreSQL!" |
|
|
.endif |
|
|
@${ECHO_MSG} " WITH_OPENSSL=yes Enable OpenSSL for encrypted communication." |
|
|
@${ECHO_MSG} "" |
|
|
@${ECHO_MSG} "===> Using ${DBTYPE} as the bacula database." |
|
|
@${ECHO_MSG} "" |
|
|
.endif |
|
| 150 |
|
|
| 151 |
post-patch: |
post-patch: |
| 152 |
# This port does not install docs. See bacula-docs for that |
# This port does not install docs. See bacula-docs for that |
| 172 |
${WRKSRC}/src/tools/bpluginfo.c |
${WRKSRC}/src/tools/bpluginfo.c |
| 173 |
.endif |
.endif |
| 174 |
|
|
|
.if !target(pre-install) |
|
| 175 |
pre-install: |
pre-install: |
| 176 |
if [ ! -d "${BACULA_DIR}" ]; then \ |
${MKDIR} ${STAGEDIR}${BACULA_DIR} |
|
${ECHO_CMD} "creating ${BACULA_DIR}" ; \ |
|
|
${MKDIR} ${BACULA_DIR}; \ |
|
|
else \ |
|
|
${ECHO_CMD} "${BACULA_DIR} already exists"; \ |
|
|
fi |
|
|
|
|
|
# Extend /etc/services and install UID/GID |
|
|
@ ${SETENV} PKG_PREFIX=${PREFIX} \ |
|
|
${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL |
|
|
.endif |
|
| 177 |
|
|
| 178 |
.if !target(post-install) |
.if !target(post-install) |
| 179 |
post-install: |
post-install: |
| 180 |
.if defined(WITH_CLIENT_ONLY) |
.if defined(WITH_CLIENT_ONLY) |
| 181 |
# Extend only /etc/services |
${MV} ${STAGEDIR}${ETCDIR}/bconsole.conf ${STAGEDIR}${ETCDIR}/bconsole.conf.sample |
|
@ ${SETENV} PKG_PREFIX=${PREFIX} \ |
|
|
${SH} ${PKGINSTALL} ${PORTNAME} |
|
|
# Console stuff |
|
|
if [ -f ${ETCDIR}/bconsole.conf.new ]; then \ |
|
|
${ECHO_CMD} "etc/bconsole.conf.new" >> ${TMPPLIST}; \ |
|
|
${CHGRP} bacula ${ETCDIR}/bconsole.conf.new; \ |
|
|
elif [ -f ${ETCDIR}/bconsole.conf ]; then \ |
|
|
${MV} ${ETCDIR}/bconsole.conf ${ETCDIR}/bconsole.conf.sample; \ |
|
|
${CHGRP} bacula ${ETCDIR}/bconsole.conf.sample; \ |
|
|
${ECHO_CMD} "etc/bacula/bconsole.conf.sample" >> ${TMPPLIST}; \ |
|
|
fi |
|
|
|
|
|
# ensure that users in the bacula group can run bconsole |
|
|
${CHGRP} bacula ${PREFIX}/sbin/bconsole |
|
| 182 |
.else |
.else |
| 183 |
# Install config files and preserve existing ones |
${INSTALL_SCRIPT} ${FILESDIR}/chio-bacula ${STAGEDIR}${PREFIX}/sbin |
| 184 |
${INSTALL_SCRIPT} ${FILESDIR}/chio-bacula ${PREFIX}/sbin |
${INSTALL_DATA} ${FILESDIR}/bacula-barcodes ${STAGEDIR}${ETCDIR}/bacula-barcodes.sample |
| 185 |
if [ -f ${ETCDIR}/bacula-barcodes ]; then \ |
${CHMOD} o+x ${STAGEDIR}${PREFIX}/sbin/bsmtp |
|
${INSTALL_DATA} ${FILESDIR}/bacula-barcodes ${ETCDIR}/bacula-barcodes.new ; \ |
|
|
${ECHO_CMD} "etc/bacula/bacula-barcodes.new" >> ${TMPPLIST}; \ |
|
|
else \ |
|
|
${INSTALL_DATA} ${FILESDIR}/bacula-barcodes ${ETCDIR}/bacula-barcodes.samples ; \ |
|
|
${ECHO_CMD} "etc/bacula/bacula-barcodes.samples" >> ${TMPPLIST}; \ |
|
|
fi |
|
|
# Add configuration files directory to packing list |
|
|
${ECHO_CMD} "@unexec ${RMDIR} %D/etc/bacula 2>/dev/null || true" >> ${TMPPLIST} |
|
|
# chmod of bsmtp program so bacula can use it with dropped down permissions |
|
|
${CHMOD} o+x ${PREFIX}/sbin/bsmtp |
|
|
${CHOWN} -R bacula:bacula ${PREFIX}/share/bacula |
|
|
|
|
|
# on a fresh install, the .new suffix is not used |
|
|
if [ -f ${ETCDIR}/bacula-dir.conf.new ]; then \ |
|
|
${CHGRP} bacula ${ETCDIR}/bacula-dir.conf.new; \ |
|
|
else \ |
|
|
${CHGRP} bacula ${ETCDIR}/bacula-dir.conf; \ |
|
|
fi |
|
|
|
|
|
${CHGRP} bacula ${PREFIX}/sbin/dbcheck |
|
|
|
|
| 186 |
.endif |
.endif |
|
# Install leaves existing conf files untouched. Respect this here! |
|
| 187 |
for na in ${CONFFILES}; do \ |
for na in ${CONFFILES}; do \ |
| 188 |
if [ -f ${ETCDIR}/bacula-$$na.conf.new ]; then \ |
${MV} ${STAGEDIR}${ETCDIR}/bacula-$$na.conf ${STAGEDIR}${ETCDIR}/bacula-$$na.conf.sample; \ |
|
${ECHO_CMD} "etc/bacula/bacula-$$na.conf.new" >> ${TMPPLIST}; \ |
|
|
elif [ -f ${ETCDIR}/bacula-$$na.conf ]; then \ |
|
|
${MV} ${ETCDIR}/bacula-$$na.conf ${ETCDIR}/bacula-$$na.conf.sample; \ |
|
|
${ECHO_CMD} "etc/bacula/bacula-$$na.conf.sample" >> ${TMPPLIST}; \ |
|
|
fi; \ |
|
| 189 |
done |
done |
|
|
|
|
# Add configuration files directory to packing list |
|
|
${ECHO_CMD} "@unexec ${RMDIR} %D/etc/bacula 2>/dev/null || true" >> ${TMPPLIST} |
|
|
|
|
|
${CHGRP} wheel ${PREFIX}/etc |
|
|
|
|
|
@${CAT} ${PKGMESSAGE} |
|
| 190 |
.endif |
.endif |
| 191 |
.else |
.else |
| 192 |
.include "${MASTERDIR}/Makefile.common" |
.include "${MASTERDIR}/Makefile.common" |