Skip to content

Commit

Permalink
sysutils/bacula15-server: Add Bacula 15
Browse files Browse the repository at this point in the history
Coming in with Bacula 15.0.2 server are client, docs, nagios check, and
the static client.

re: https://www.bacula.org/bacula-15-0-2/
  • Loading branch information
dlangille committed Mar 28, 2024
1 parent 2b27e3b commit 2b7cf90
Show file tree
Hide file tree
Showing 29 changed files with 981 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-mgmt/Makefile
Expand Up @@ -148,6 +148,7 @@
SUBDIR += nagios-certexp-plugin
SUBDIR += nagios-check_bacula11
SUBDIR += nagios-check_bacula13
SUBDIR += nagios-check_bacula15
SUBDIR += nagios-check_bacula9
SUBDIR += nagios-check_clamav
SUBDIR += nagios-check_cpu_usage
Expand Down
27 changes: 27 additions & 0 deletions net-mgmt/nagios-check_bacula15/Makefile
@@ -0,0 +1,27 @@
PORTNAME= bacula
CATEGORIES= net-mgmt
PKGNAMEPREFIX= nagios-check_
PKGNAMESUFFIX= 15

MAINTAINER= dvl@FreeBSD.org
COMMENT= Nagios plugin for Bacula

LIB_DEPENDS+= libbac.so:sysutils/bacula15-client

PLIST= ${.CURDIR}/pkg-plist
PLIST_FILES= libexec/nagios/check_bacula
WITH_NAGIOS_CHECK_ONLY= yes
MASTERDIR= ${.CURDIR}/../../sysutils/bacula15-server

CONFIGURE_ARGS= --enable-client-only \
--disable-build-dird \
--disable-build-stored \
--disable-nls \
--disable-xatt

OPTIONS_DEFINE= #
OPTIONS_DEFAULT=#

NO_CCACHE= yes

.include "${MASTERDIR}/Makefile"
2 changes: 2 additions & 0 deletions net-mgmt/nagios-check_bacula15/pkg-descr
@@ -0,0 +1,2 @@
check_bacula is a plugin intended for use with the
Nagios network monitoring system to monitor Bacula.
4 changes: 4 additions & 0 deletions sysutils/Makefile
Expand Up @@ -98,6 +98,10 @@
SUBDIR += bacula13-client-static
SUBDIR += bacula13-docs
SUBDIR += bacula13-server
SUBDIR += bacula15-client
SUBDIR += bacula15-client-static
SUBDIR += bacula15-docs
SUBDIR += bacula15-server
SUBDIR += bacula9-client
SUBDIR += bacula9-client-static
SUBDIR += bacula9-docs
Expand Down
31 changes: 31 additions & 0 deletions sysutils/bacula15-client-static/Makefile
@@ -0,0 +1,31 @@
PORTNAME= bacula
PKGNAMESUFFIX= 15-client-static

COMMENT= Network backup solution (static client)

BROKEN_aarch64= Fails to link: missing sbrk
BROKEN_riscv64= Fails to link: missing sbrk
BROKEN_SSL= libressl

WITH_CLIENT_ONLY= yes
PLIST= ${.CURDIR}/pkg-plist
MASTERDIR= ${.CURDIR}/../../sysutils/bacula15-server

PLIST_FILES= sbin/bacula-fd-static \
sbin/bconsole-static

OPTIONS_DEFINE= NLS OPENSSL
OPTIONS_DEFAULT= OPENSSL

CONFIGURE_ARGS+= --disable-build-dird \
--disable-build-stored \
--disable-libtool \
--enable-client-only \
--enable-static-cons \
--enable-static-fd

.include "${MASTERDIR}/Makefile"

do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/filed/static-bacula-fd ${STAGEDIR}${PREFIX}/sbin/bacula-fd-static
${INSTALL_PROGRAM} ${WRKSRC}/src/console/static-bconsole ${STAGEDIR}${PREFIX}/sbin/bconsole-static
17 changes: 17 additions & 0 deletions sysutils/bacula15-client/Makefile
@@ -0,0 +1,17 @@
PORTNAME= bacula
PKGNAMESUFFIX= 15-client

COMMENT= Network backup solution (client)

BROKEN_aarch64= Fails to link: missing sbrk
BROKEN_riscv64= Fails to link: missing sbrk

WITH_CLIENT_ONLY=yes
USE_RC_SUBR= bacula-fd

PLIST= ${PKGDIR}/pkg-plist.client
MASTERDIR= ${.CURDIR}/../../sysutils/bacula15-server

OPTIONS_DEFINE= NLS PYTHON IPV6

.include "${MASTERDIR}/Makefile"
27 changes: 27 additions & 0 deletions sysutils/bacula15-docs/Makefile
@@ -0,0 +1,27 @@
PORTNAME= bacula
PORTVERSION= 15.0.2
CATEGORIES= sysutils
MASTER_SITES= SF
PKGNAMESUFFIX= 15-docs
DISTNAME= ${PORTNAME}-docs-${PORTVERSION}

CONFLICTS= bacula9

MAINTAINER= dvl@FreeBSD.org
COMMENT= Bacula document set
WWW= https://www.bacula.org/

USES= tar:bz2
NO_BUILD= yes
NO_ARCH= yes

PORTDOCS= *.pdf

OPTIONS_DEFINE= DOCS

do-install:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${FIND} ${WRKSRC}/manuals/en \
-name "*.pdf" -exec ${INSTALL_DATA} {} ${STAGEDIR}${DOCSDIR}/ \;

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions sysutils/bacula15-docs/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1711654632
SHA256 (bacula-docs-15.0.2.tar.bz2) = 37834bc602ca25729b39c06f941abdf999a571cae6a2ad1b1d2ad4aa4dc04228
SIZE (bacula-docs-15.0.2.tar.bz2) = 51317810
11 changes: 11 additions & 0 deletions sysutils/bacula15-docs/pkg-descr
@@ -0,0 +1,11 @@
Bacula is a set of computer programs that permit you (or the system
administrator) to manage backup, recovery, and verification of
computer data across a network of computers of different kinds.
In technical terms, it is a network Client/Server based backup program.
Bacula is relatively easy to use and efficient, while offering many
advanced storage management features that make it easy to find and
recover lost or damaged files. Due to its modular design, Bacula is
scalable from small single computer systems to systems consisting of
hundreds of computers located over a large network.

This port installs the latest documentation for Bacula.
205 changes: 205 additions & 0 deletions sysutils/bacula15-server/Makefile
@@ -0,0 +1,205 @@
PORTNAME= bacula
DISTVERSION= 15.0.2
CATEGORIES?= sysutils
MASTER_SITES= SF/bacula/bacula/${DISTVERSION}
PKGNAMEPREFIX?= #
PKGNAMESUFFIX?= 15-server

MAINTAINER= dvl@FreeBSD.org
COMMENT?= Network backup solution (server)
WWW= https://www.bacula.org/

LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE

USES+= cpe libtool localbase python:env readline shebangfix ssl

SHEBANG_FILES= scripts/get_malware_abuse.ch scripts/key-manager.py.in \
scripts/md5tobase64.py src/cats/make_catalog_backup.pl.in
#scripts/baculabackupreport.in

CONFLICTS?= bacula-server bacula13-server bacula11-server bacula9-server

LIB_DEPENDS+= liblzo2.so:archivers/lzo2

USERS= bacula
GROUPS= ${USERS}

LIB_VERSION= ${PKGVERSION}

PLIST_SUB+= LIB_VERSION=${LIB_VERSION}

GNU_CONFIGURE= yes
USE_LDCONFIG= yes

OPTIONS_DEFINE?= IPV6 MTX NLS S3
MTX_DESC= Install mtx for control of autochanger devices
S3_DESC= Install S3 plugin

.if ${PKGNAMESUFFIX} == "15-server"
OPTIONS_MULTI= BACKEND
OPTIONS_MULTI_BACKEND= MYSQL PGSQL SQLITE3
OPTIONS_DEFAULT+= PGSQL
.endif

OPTIONS_SUB= yes

.if ${PKGNAMESUFFIX} == "15-client" || ${PKGNAMESUFFIX} == "15-server" #Till end of the file

.if !defined(WITH_CLIENT_ONLY)
LIB_DEPENDS+= libbac-${LIB_VERSION}.so:sysutils/bacula15-client
USE_RC_SUBR?= bacula-dir bacula-sd
.endif

.if defined(WITH_CLIENT_ONLY)
SUB_FILES+= pkg-deinstall.client pkg-install.client pkg-message.client
.else
SUB_FILES+= pkg-message.server
.endif

CONFIGURE_ARGS+= --disable-conio \
--enable-batch-insert \
--enable-smartalloc \
--sysconfdir=${ETCDIR} \
--with-baseport=9101 \
--with-db-name=bacula \
--with-db-user=bacula \
--with-dump-email=root@localhost \
--with-job-email=root@localhost \
--with-logdir=/var/log \
--with-plugindir=${PREFIX}/lib \
--with-readline=${LOCALBASE} \
--with-sbin-perm=755 \
--with-scriptdir=${PREFIX}/share/${PORTNAME} \
--with-tcp-wrappers=/usr/lib \
--with-working-dir=${BACULA_DIR}

.if defined(WITH_CLIENT_ONLY)
CONFIGURE_ARGS+= --with-fd-group=wheel \
--with-fd-user=root
.else
CONFIGURE_ARGS+= --with-dir-group=${BACULA_GROUP} \
--with-dir-user=${BACULA_USER} \
--with-sd-group=operator \
--with-sd-user=${BACULA_USER}
.endif

# The user/group IDs below are registered, see
# http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#users-and-groups
#
BACULA_USER?= bacula
BACULA_GROUP?= ${BACULA_USER}
BACULA_UID?= bacula
BACULA_GID?= ${BACULA_UID}
BACULA_DIR?= /var/db/bacula

PLIST_SUB+= BACULA_DIR=${BACULA_DIR}

SUB_LIST+= BACULA_DIR=${BACULA_DIR} \
BACULA_GID=${BACULA_GID} \
BACULA_GROUP=${BACULA_GROUP} \
BACULA_UID=${BACULA_UID} \
BACULA_USER=${BACULA_USER}

NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls

# Client only or full server version
.if defined(WITH_CLIENT_ONLY)
CONFFILES= fd
CONFIGURE_ARGS+= --enable-client-only

PKGDEINSTALL= ${FILESDIR}/pkg-deinstall.client
PKGINSTALL= ${FILESDIR}/pkg-install.client
.else
# Server only Options
CONFFILES= sd dir
# Server default database

MYSQL_CONFIGURE_ON= --with-mysql=yes
MYSQL_USES= mysql
MYSQL_SUB_LIST= REQ_MYSQL=mysql
MYSQL_SUB_LIST_OFF= REQ_MYSQL=""
SQLITE3_CONFIGURE_ON= --with-sqlite3=yes
SQLITE3_USES= sqlite:3
PGSQL_CONFIGURE_ON= --with-postgresql=yes
PGSQL_USES= pgsql
PGSQL_SUB_LIST= REQ_PGSQL=postgresql
PGSQL_SUB_LIST_OFF= REQ_PGSQL=""

MTX_RUN_DEPENDS= ${LOCALBASE}/sbin/mtx:misc/mtx

.endif

.include <bsd.port.pre.mk>

MS3_CONFIGURE_ARGS= --enable-s3
MS3_LIB_DEPENDS= libs3.so:sysutils/bacula-libs3

.if defined(WITH_CLIENT_ONLY)
MP8+= bacula.8 bacula-fd.8 bconsole.8
.else
MP8+= bacula-dir.8 bacula-sd.8 bcopy.8 bextract.8 bls.8 bscan.8 \
btape.8 btraceback.8 dbcheck.8 bwild.8 bregex.8
MP1+= bsmtp.1 bacula-tray-monitor.1
.endif

MAKE_ENV+= MAN1="${MP1}" \
MAN8="${MP8}"

post-patch:
# This port does not install docs. See bacula-docs for that
@${REINPLACE_CMD} -e '/docdir/d' ${WRKSRC}/Makefile.in
# Change $(ECHO) to echo in some Makefile.in files
@${REINPLACE_CMD} -e 's|$$(ECHO)|echo|g' \
${WRKSRC}/src/filed/Makefile.in \
${WRKSRC}/src/console/Makefile.in \
${WRKSRC}/src/cats/Makefile.in \
${WRKSRC}/src/dird/Makefile.in \
${WRKSRC}/src/stored/Makefile.in \
${WRKSRC}/src/tools/Makefile.in

# Default bconsole.conf is in ${ETCDIR}
@${REINPLACE_CMD} -e 's|./bconsole.conf|${ETCDIR}/bconsole.conf|g' ${WRKSRC}/src/console/console.c
@${REINPLACE_CMD} -e 's|^MAN8 =|MAN8 ?=|g' -e 's|^MAN1 =|MAN1 ?=|g' ${WRKSRC}/manpages/Makefile.in
.if defined(WITH_CLIENT_ONLY)
# In client port only install startup script out of script dir (see below post-install)
# Dont mkdir ${PREFIX}/share/bacula cause it's empty
@${REINPLACE_CMD} -e 's|^\(fd_subdirs = .*\)scripts\(.*\)|\1\2|g' ${WRKSRC}/Makefile.in
@${REINPLACE_CMD} -e 's|\(.*$${MKDIR} $${DESTDIR}$${scriptdir}\)|#\1|g' ${WRKSRC}/Makefile.in
.else
# In server port don't install filed
@${REINPLACE_CMD} -e '/^fd_subdirs = /s|src/filed||' -e 's|src/console||' \
${WRKSRC}/Makefile.in
.endif

.if !target(post-install)
post-install:
.if defined(WITH_CLIENT_ONLY)
${MV} ${STAGEDIR}${ETCDIR}/bconsole.conf ${STAGEDIR}${ETCDIR}/bconsole.conf.sample
${INSTALL_DATA} ${WRKSRC}/examples/sample-query.sql ${STAGEDIR}${LOCALBASE}/share/bacula/query.sql.sample
.else
${INSTALL_SCRIPT} ${FILESDIR}/chio-bacula ${STAGEDIR}${PREFIX}/sbin
${INSTALL_DATA} ${FILESDIR}/bacula-barcodes ${STAGEDIR}${ETCDIR}/bacula-barcodes.sample
# bacula-dir attempts to install query.sql as bpart of bacula-server, but that should only installed by bacula-client.
${RM} ${STAGEDIR}${LOCALBASE}/share/bacula/query.sql

#the following are installed by the -CLIENT port, and I (ler@lerctr.org)
#don't know how to remove them from being built for the -SERVER port.
${RM} ${STAGEDIR}${LOCALBASE}/lib/bpipe-fd.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbac-${LIB_VERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbac.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbaccfg-${LIB_VERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbaccfg.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbacfind-${LIB_VERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbacfind.so
.endif
for na in ${CONFFILES}; do \
${MV} ${STAGEDIR}${ETCDIR}/bacula-$$na.conf ${STAGEDIR}${ETCDIR}/bacula-$$na.conf.sample; \
done
.endif
.else
.include "${MASTERDIR}/Makefile.common"
.endif # 15-client and 15-server are defined

.include <bsd.port.post.mk>
13 changes: 13 additions & 0 deletions sysutils/bacula15-server/Makefile.common
@@ -0,0 +1,13 @@
.include <bsd.port.pre.mk>

post-build:
.if ${PKGNAMEPREFIX} == "nagios-check_"
${MAKE_CMD} -C ${WRKSRC}/examples/nagios/check_bacula
.endif

do-install:
.if ${PKGNAMEPREFIX} == "nagios-check_"
@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios
${INSTALL_PROGRAM} ${WRKSRC}/examples/nagios/check_bacula/check_bacula \
${STAGEDIR}${PREFIX}/libexec/nagios
.endif
3 changes: 3 additions & 0 deletions sysutils/bacula15-server/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1711652567
SHA256 (bacula-15.0.2.tar.gz) = 55515c2a66af9a86b955daea4089378b864d051b2e6e30383bef36e693acea7a
SIZE (bacula-15.0.2.tar.gz) = 6524812

0 comments on commit 2b7cf90

Please sign in to comment.