From nobody Thu Mar 28 20:04:26 2024 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4V5Dyf6bW5z5FvBK; Thu, 28 Mar 2024 20:04:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V5Dyf5Dnfz4YNP; Thu, 28 Mar 2024 20:04:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711656266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2alkGP8nQz2XebQSeFl/uZFXN78N3S40wSaoRPyeBr0=; b=D1NrjytwLsuSurI8w5QpGatqjtVyRbIorYOr9H1bwkUGpPOz0TPetvl54uqqABUK1K3eOU Ot+4K51p5cp++pZf052vaV8B4Vy/t21YtIy8DNOOXQ37037JTN67OecIIT1hgpqZVR1w+L kWDZClGE3t/bcwDnBY1qPuFa2xJVfsfzYfWSFcMbCyk4b8qwTq/q38QQJ8bFg9jIzhgGcS 8Iw4INfVzkqJC7+o0lkDb2xczqKJAN7ZmWMQa8qkaZgZKDgmkIdIbPla6LFjKRFaRO77Vw AWZ70bYwZc3jMX6wR1CPkQJfGGtO4HU/VZ3ZLw/4J4MOHh5yspxn/EvyintvNA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711656266; a=rsa-sha256; cv=none; b=Bu3l+CvUn1wbV7dqsSsWwngA2Oo07m3xYj7Ti8qqWUhYixxkn+/hZJh5GPVHOSOlc/w8d4 EDOXKz0WlHUf/A4lZqwgXDCZ8shyDzsqhbWA33AtPXjKgy8BHOzpQ8M5H15tFLQRRsNR1a MZ6doCzC9ekS3jaAoK4kMD8D7BOJ75vGL7fdh+yOWdESq9P5VKjNn8/tx6rqNWECpoN1qJ KNvL1iWaD5MZcJZ6UXIa/NZXOPhYRphEOKqh6WOL9xlE9Y7sMyZ6s84XPMXU50FrRQNQZ0 z8RTuNBLnAPzprclKvlhWct9HR0pBx5OIlqYrmEpyHSwpMABsWdzs7/i3Zq0Gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711656266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2alkGP8nQz2XebQSeFl/uZFXN78N3S40wSaoRPyeBr0=; b=vPk9NC2QAMihiDeZu7udY+sXvZMigoVHm9lRQdJclW7hD+zBlKLEf7CP5qdIOAH13fZVPt TADgq7BVb1RPHydAYbd8qvw/pGd8fYd7kDBPa+zKkV7wdZoDMQu3VSCulF3Z1bWpkNrS8+ NJkkmJoAo1OU9MFDyWE+wyqiFuv4pI2tMOPIEHOe9HY59ZQi1mFuNB/MqdGOjIF2wqkwpO fvFM1wNAJJOoE+SPGoUh67hsICzPiMq5N/Vw+QLvIXvKbIKw32y+jsqviKktIf8KOSZEYU JW9lfDUH4QfnN54yLed39sDv21tLEwIHoCaXW+HjAKNunmQAwbuZ+lt95cdh1w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4V5Dyf4nX4zhNs; Thu, 28 Mar 2024 20:04:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 42SK4Qh1024592; Thu, 28 Mar 2024 20:04:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 42SK4Qos024589; Thu, 28 Mar 2024 20:04:26 GMT (envelope-from git) Date: Thu, 28 Mar 2024 20:04:26 GMT Message-Id: <202403282004.42SK4Qos024589@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dan Langille Subject: git: 2b7cf900fb6b - main - sysutils/bacula15-server: Add Bacula 15 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dvl X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2b7cf900fb6bc05a22bfce9e72934be0cb6a8154 Auto-Submitted: auto-generated The branch main has been updated by dvl: URL: https://cgit.FreeBSD.org/ports/commit/?id=2b7cf900fb6bc05a22bfce9e72934be0cb6a8154 commit 2b7cf900fb6bc05a22bfce9e72934be0cb6a8154 Author: Dan Langille AuthorDate: 2024-03-28 19:48:01 +0000 Commit: Dan Langille CommitDate: 2024-03-28 20:04:04 +0000 sysutils/bacula15-server: Add Bacula 15 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/ --- net-mgmt/Makefile | 1 + net-mgmt/nagios-check_bacula15/Makefile | 27 +++ net-mgmt/nagios-check_bacula15/pkg-descr | 2 + sysutils/Makefile | 4 + sysutils/bacula15-client-static/Makefile | 31 ++++ sysutils/bacula15-client/Makefile | 17 ++ sysutils/bacula15-docs/Makefile | 27 +++ sysutils/bacula15-docs/distinfo | 3 + sysutils/bacula15-docs/pkg-descr | 11 ++ sysutils/bacula15-server/Makefile | 205 +++++++++++++++++++++ sysutils/bacula15-server/Makefile.common | 13 ++ sysutils/bacula15-server/distinfo | 3 + sysutils/bacula15-server/files/bacula-barcodes | 51 +++++ sysutils/bacula15-server/files/bacula-dir.in | 29 +++ sysutils/bacula15-server/files/bacula-fd.in | 29 +++ sysutils/bacula15-server/files/bacula-sd.in | 29 +++ sysutils/bacula15-server/files/chio-bacula | 200 ++++++++++++++++++++ .../bacula15-server/files/patch-src_baconfig.h | 13 ++ .../files/patch-src_console_Makefile.in | 11 ++ .../files/patch-src_dird_Makefile.in | 11 ++ .../files/patch-src_filed_Makefile.in | 12 ++ .../files/patch-src_qt-console_bat.pro.in | 11 ++ .../bacula15-server/files/pkg-deinstall.client.in | 30 +++ .../bacula15-server/files/pkg-install.client.in | 13 ++ .../bacula15-server/files/pkg-message.client.in | 10 + .../bacula15-server/files/pkg-message.server.in | 59 ++++++ sysutils/bacula15-server/pkg-descr | 9 + sysutils/bacula15-server/pkg-plist | 100 ++++++++++ sysutils/bacula15-server/pkg-plist.client | 20 ++ 29 files changed, 981 insertions(+) diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile index f9fb4db6ba4b..6fda538a2679 100644 --- a/net-mgmt/Makefile +++ b/net-mgmt/Makefile @@ -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 diff --git a/net-mgmt/nagios-check_bacula15/Makefile b/net-mgmt/nagios-check_bacula15/Makefile new file mode 100644 index 000000000000..3296a3e2e93d --- /dev/null +++ b/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" diff --git a/net-mgmt/nagios-check_bacula15/pkg-descr b/net-mgmt/nagios-check_bacula15/pkg-descr new file mode 100644 index 000000000000..4b25ba83385c --- /dev/null +++ b/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. diff --git a/sysutils/Makefile b/sysutils/Makefile index 4d69a0d3d2f4..492328797c48 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -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 diff --git a/sysutils/bacula15-client-static/Makefile b/sysutils/bacula15-client-static/Makefile new file mode 100644 index 000000000000..e0dd87a72b87 --- /dev/null +++ b/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 diff --git a/sysutils/bacula15-client/Makefile b/sysutils/bacula15-client/Makefile new file mode 100644 index 000000000000..8805264752b5 --- /dev/null +++ b/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" diff --git a/sysutils/bacula15-docs/Makefile b/sysutils/bacula15-docs/Makefile new file mode 100644 index 000000000000..7ec0591db3e0 --- /dev/null +++ b/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 diff --git a/sysutils/bacula15-docs/distinfo b/sysutils/bacula15-docs/distinfo new file mode 100644 index 000000000000..5fedefb67491 --- /dev/null +++ b/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 diff --git a/sysutils/bacula15-docs/pkg-descr b/sysutils/bacula15-docs/pkg-descr new file mode 100644 index 000000000000..256c7af3df2e --- /dev/null +++ b/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. diff --git a/sysutils/bacula15-server/Makefile b/sysutils/bacula15-server/Makefile new file mode 100644 index 000000000000..3498fab039a5 --- /dev/null +++ b/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 + +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 diff --git a/sysutils/bacula15-server/Makefile.common b/sysutils/bacula15-server/Makefile.common new file mode 100644 index 000000000000..f2e00fcf6478 --- /dev/null +++ b/sysutils/bacula15-server/Makefile.common @@ -0,0 +1,13 @@ +.include + +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 diff --git a/sysutils/bacula15-server/distinfo b/sysutils/bacula15-server/distinfo new file mode 100644 index 000000000000..b82402b1220e --- /dev/null +++ b/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 diff --git a/sysutils/bacula15-server/files/bacula-barcodes b/sysutils/bacula15-server/files/bacula-barcodes new file mode 100644 index 000000000000..0a0b2dc28f24 --- /dev/null +++ b/sysutils/bacula15-server/files/bacula-barcodes @@ -0,0 +1,51 @@ +# +# Bacula barcode simulation file +# used by ${PREFIX}/sbin/chio-bacula (FreeBSD) +# +# The volumenames are returned by the "changer list" command +# labeling in the console is done by "label barcodes" +# (then all volumes belog to the default pool). +# All Lines with an "#" at the bedinning are ignored +# +# !!!! If you export an tape and reinsert another one, +# !!!! don't forget to change the volume name in this file! +# +1:Volume1-100 +2:Volume1-101 +3:Volume1-102 +4:Volume1-103 +5:Volume1-104 +6:Volume1-105 +7:Volume1-106 +8:Volume1-107 +9:Volume1-108 +10:Volume1-109 +11:Volume1-110 +12:Volume1-111 +# +# Further volumes exported from the changer +# +# 36GB AIT2 tapes +#Volume1-100 +#Volume1-101 +#Volume1-102 +#Volume1-103 +#Volume1-104 +#Volume1-105 +#Volume1-106 +#Volume1-107 +#Volume1-108 +#Volume1-109 +#Volume1-110 +#Volume1-111 +#Volume1-112 +#Volume1-113 +#Volume1-114 +#Volume1-115 +# +# 50GB AIT2 tapes +#Volume2-200 +#Volume2-201 +#Volume2-202 +#Volume2-203 +#Volume2-204 diff --git a/sysutils/bacula15-server/files/bacula-dir.in b/sysutils/bacula15-server/files/bacula-dir.in new file mode 100644 index 000000000000..1825c924306e --- /dev/null +++ b/sysutils/bacula15-server/files/bacula-dir.in @@ -0,0 +1,29 @@ +#!/bin/sh + +# PROVIDE: bacula_dir +# REQUIRE: DAEMON %%REQ_MYSQL%% %%REQ_PGSQL%% +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bacula_dir_enable (bool): Set to NO by default. +# Set it to YES to enable bacula_dir. +# bacula_dir_flags (params): Set params used to start bacula_dir. +# + +. /etc/rc.subr + +name="bacula_dir" +rcvar=${name}_enable +command=%%PREFIX%%/sbin/bacula-dir + +load_rc_config $name + +: ${bacula_dir_enable="NO"} +: ${bacula_dir_flags=" -u bacula -g bacula -v -c %%PREFIX%%/etc/bacula/bacula-dir.conf"} +: ${bacula_dir_pidfile="/var/run/bacula-dir.9101.pid"} + +pidfile="${bacula_dir_pidfile}" + +run_rc_command "$1" diff --git a/sysutils/bacula15-server/files/bacula-fd.in b/sysutils/bacula15-server/files/bacula-fd.in new file mode 100644 index 000000000000..d011131d8790 --- /dev/null +++ b/sysutils/bacula15-server/files/bacula-fd.in @@ -0,0 +1,29 @@ +#!/bin/sh + +# PROVIDE: bacula_fd +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bacula_fd_enable (bool): Set to NO by default. +# Set it to YES to enable bacula_fd. +# bacula_fd_flags (params): Set params used to start bacula_fd. +# + +. /etc/rc.subr + +name="bacula_fd" +rcvar=${name}_enable +command=%%PREFIX%%/sbin/bacula-fd + +load_rc_config $name + +: ${bacula_fd_enable="NO"} +: ${bacula_fd_flags=" -u root -g wheel -v -c %%PREFIX%%/etc/bacula/bacula-fd.conf"} +: ${bacula_fd_pidfile="/var/run/bacula-fd.9102.pid"} + +pidfile="${bacula_fd_pidfile}" + +run_rc_command "$1" diff --git a/sysutils/bacula15-server/files/bacula-sd.in b/sysutils/bacula15-server/files/bacula-sd.in new file mode 100644 index 000000000000..2020f846f1c7 --- /dev/null +++ b/sysutils/bacula15-server/files/bacula-sd.in @@ -0,0 +1,29 @@ +#!/bin/sh + +# PROVIDE: bacula_sd +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bacula_sd_enable (bool): Set to NO by default. +# Set it to YES to enable bacula_sd. +# bacula_sd_flags (params): Set params used to start bacula_sd. +# + +. /etc/rc.subr + +name="bacula_sd" +rcvar=${name}_enable +command=%%PREFIX%%/sbin/bacula-sd + +load_rc_config $name + +: ${bacula_sd_enable="NO"} +: ${bacula_sd_flags=" -u bacula -g bacula -v -c %%PREFIX%%/etc/bacula/bacula-sd.conf"} +: ${bacula_sd_pidfile="/var/run/bacula-sd.9103.pid"} + +pidfile="${bacula_sd_pidfile}" + +run_rc_command "$1" diff --git a/sysutils/bacula15-server/files/chio-bacula b/sysutils/bacula15-server/files/chio-bacula new file mode 100644 index 000000000000..30f6dba8f75f --- /dev/null +++ b/sysutils/bacula15-server/files/chio-bacula @@ -0,0 +1,200 @@ +#!/bin/sh +# +# Bacula interface to FreeBSD chio autoloader command with +# multiple drive support +# (By Lars Köller, lars+bacula@koellers.net, 2004) +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/chio-bacula" %c %o %S %a +# you will have the following input to this script: +# +# chio-bacula "changer-device" "command" "slot" "archive-device" "drive-index" +# $1 $2 $3 $4 $5 +# for example: +# +# chio-bacula /dev/sg0 load 1 /dev/nst0 0 (on a FreeBSD system) +# +# If you need to to an offline, refer to the drive as $4 +# e.g. mt -f $f offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# +me=$(basename $0) + +# Debug output, take care: this file is writable by user bacula! +#LOG=/var/db/bacula/chio-bacula.log +#exec 2>>$LOG +#echo "------------------------- $(date) Start $(basename $0) -------------------------" >> $LOG +#set -x + +# Debug +logger -p user.err "$me $@" + +# This simulates a barcode reader in the changer. +# The labels of the virtual barcode reader are located in the BARCODE_FILE +SIMULATE_BARCODE=true +BARCODE_FILE=/usr/local/etc/bacula/bacula-barcodes +MTX=/bin/chio +# Set default values (see case statement below for +# free mapping of drive index and tape device +# We have a double drive Qualstar where drive 1 is the default bacula drive +#TAPE=/dev/bacula-tape +TAPE=/dev/nrsa0 +DRIVE=0 +# Time to wait for (un)loading +SLEEP=20 + +usage() +{ + echo "" + echo "The $me script for bacula" + echo "--------------------------------------" + echo "" + echo "usage: $me [slot] [devicename of tapedrive] [drive index]" + echo "" + echo "Valid commands:" + echo "" + echo "unload Unloads a tape into the slot" + echo " from where it was loaded." + echo "load Loads a tape from the slot " + echo " (slot-base is calculated to 1 as first slot)" + echo "list Lists full storage slots" + echo "loaded Gives slot from where the tape was loaded." + echo " 0 means the tape drive is empty." + echo "slots Gives number of available slots." + echo "" + echo "Example:" + echo " $me /dev/changer load 1 loads a tape from slot 1" + echo "" + exit 2 +} + +# The changer device +if [ -z "$1" ] ; then + usage; +else + CHANGER=$1 +fi +# The command +if [ -z "$2" ] ; then + usage; +else + COMMAND=$2 +fi +# The slot number +if [ ! -z "$3" ]; then + SLOT=$3 + # btape fill says "... slot 1 drive 0" :-( + if [ "$SLOT" = "slot" ]; then + shift + SLOT=$3 + fi +fi +# Set tape device +if [ ! -z "$4" ]; then + TAPE=$4 +fi + +# Here you can map bacula drive number to any tape device +# DRIVE is the chio drive number used below by chio! +case $5 in + 0) + # First Drive in Changer is Bacula drive + DRIVE=0 + #TAPE=/dev/bacula-tape + TAPE=/dev/nrsa0 + ;; + 1) + DRIVE=1 + #TAPE=/dev/bacula-tape2 + TAPE=/dev/nrsa1 + ;; +esac + +# +# Main +# +case ${COMMAND} in + unload) + # enable the following line if you need to eject the cartridge + mt -f ${TAPE} off + sleep 2 + # if we have a slot, try it + if [ ! -z "$SLOT" ]; then + ${MTX} -f ${CHANGER} move drive ${DRIVE} slot $((${SLOT}-1)) + exit $? + fi + # Try other way (works if source element information is valid for drive) + ${MTX} -f ${CHANGER} return drive ${DRIVE} + # If the changer is power cycled with a tape loaded in a drive + # we can compute the slot in case of a complete filled magazine, with + # one slot free. + if [ "$?" != "0" ]; then + free_slot=`${MTX} -f ${CHANGER} stat | grep "^slot " | grep -v "FULL" | awk '{print $2}'` + free_slot=${free_slot%:} + ${MTX} -f ${CHANGER} move drive ${DRIVE} slot $free_slot + fi + ;; + + load) + ${MTX} -f ${CHANGER} move slot $((${SLOT}-1)) drive ${DRIVE} + rtn=$? + # Increase the sleep time if you have a slow device + sleep $SLEEP + exit $rtn + ;; + + list) + if [ "${SIMULATE_BARCODE}" = "true" ]; then + if [ -f "$BARCODE_FILE" ]; then + cat $BARCODE_FILE | grep -v -e "^#" -e "^$" + exit 0 + else + echo "Barcode file $BARCODE_FILE missing ... exiting!" + exit 1 + fi + else + ${MTX} -f ${CHANGER} status | grep "^slot .*: .*FULL>" | awk '{print $2}' | awk -F: '{print $1+1" "}' | tr -d "[\r\n]" + fi + ;; + + loaded) + # echo "Request loaded" + ${MTX} -f ${CHANGER} status -S > /tmp/mtx.$$ + rtn=$? + # Try to get chio slot source from drive entry + SLOT=$(cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: .*slot" | awk '{print $6+1}' | tr -d ">") + if [ -z "$SLOT" ]; then + # This handles the case a source slot is not available (power on + # of the changer with a drive loaded) and all other slots are + # occupied with a tape! + SLOT=$(cat /tmp/mtx.$$ | grep "^slot .*: " | awk '{print $2+1}') + if [ -z "$SLOT" ]; then + echo 0 + else + echo $SLOT + fi + else + echo $SLOT + fi + # All tapes are in the slots + #cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: .* source: <>" | awk "{print 0}" + rm -f /tmp/mtx.$$ + exit $rtn + ;; + + slots) + # echo "Request slots" + ${MTX} -f ${CHANGER} status | grep "^slot " | tail -1 | awk '{print $2+1}' | tr -d ":" + ;; + + *) + usage + ;; +esac diff --git a/sysutils/bacula15-server/files/patch-src_baconfig.h b/sysutils/bacula15-server/files/patch-src_baconfig.h new file mode 100644 index 000000000000..4cb8939db35c --- /dev/null +++ b/sysutils/bacula15-server/files/patch-src_baconfig.h @@ -0,0 +1,13 @@ +--- src/baconfig.h.orig 2021-02-05 21:23:44 UTC ++++ src/baconfig.h +@@ -45,6 +45,10 @@ + #define tls_psk_default 0 + #endif + ++#ifndef ENODATA ++#define ENODATA EPIPE ++#endif ++ + #ifndef ETIME + #define ETIME ETIMEDOUT + #endif diff --git a/sysutils/bacula15-server/files/patch-src_console_Makefile.in b/sysutils/bacula15-server/files/patch-src_console_Makefile.in new file mode 100644 index 000000000000..156449eedfef --- /dev/null +++ b/sysutils/bacula15-server/files/patch-src_console_Makefile.in @@ -0,0 +1,11 @@ +--- src/console/Makefile.in.orig 2021-02-05 21:23:44 UTC ++++ src/console/Makefile.in +@@ -128,7 +128,7 @@ uninstall: + depend: + @$(MV) Makefile Makefile.bak + @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile +- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile ++ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile + @$(CXX) -S -M $(CPPFLAGS) $(CONS_INC) -I$(srcdir) -I$(basedir) *.c >> Makefile + @if test -f Makefile ; then \ + $(RMF) Makefile.bak; \ diff --git a/sysutils/bacula15-server/files/patch-src_dird_Makefile.in b/sysutils/bacula15-server/files/patch-src_dird_Makefile.in new file mode 100644 index 000000000000..6bc7b8f72f22 --- /dev/null +++ b/sysutils/bacula15-server/files/patch-src_dird_Makefile.in @@ -0,0 +1,11 @@ +--- src/dird/Makefile.in.orig 2021-02-05 21:23:44 UTC ++++ src/dird/Makefile.in +@@ -150,7 +150,7 @@ uninstall: + depend: + @$(MV) Makefile Makefile.bak + @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile +- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile ++ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile + @$(CXX) -S -M $(CPPFLAGS) $(XINC) -I$(srcdir) -I$(basedir) *.c >> Makefile + @if test -f Makefile ; then \ + $(RMF) Makefile.bak; \ diff --git a/sysutils/bacula15-server/files/patch-src_filed_Makefile.in b/sysutils/bacula15-server/files/patch-src_filed_Makefile.in new file mode 100644 index 000000000000..287db9262f1c --- /dev/null +++ b/sysutils/bacula15-server/files/patch-src_filed_Makefile.in @@ -0,0 +1,12 @@ +--- src/filed/Makefile.in.orig 2023-11-24 14:41:20 UTC ++++ src/filed/Makefile.in +@@ -196,7 +196,8 @@ uninstall: + depend: + @$(MV) Makefile Makefile.bak + @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile +- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile ++ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile ++ + @$(CXX) -S -M $(CPPFLAGS) $(XINC) $(LZO_INC) $(ZSTD_INC) $(AFS_CFLAGS) $(GPFS_CFLAGS) -I$(srcdir) -I$(basedir) *.c >> Makefile + @if test -f Makefile ; then \ + $(RMF) Makefile.bak; \ diff --git a/sysutils/bacula15-server/files/patch-src_qt-console_bat.pro.in b/sysutils/bacula15-server/files/patch-src_qt-console_bat.pro.in new file mode 100644 index 000000000000..1bca6f6d819b --- /dev/null +++ b/sysutils/bacula15-server/files/patch-src_qt-console_bat.pro.in @@ -0,0 +1,11 @@ +--- src/qt-console/bat.pro.in.orig 2015-08-13 13:52:24 UTC ++++ src/qt-console/bat.pro.in +@@ -19,7 +19,7 @@ TEMPLATE = app + TARGET = bat + DEPENDPATH += . + INCLUDEPATH += .. . ./console ./restore ./select +-LIBS += -L../lib -lbaccfg -lbac -L../findlib -lbacfind @OPENSSL_LIBS@ ++LIBS += -L../lib -lbaccfg -lbac -L../findlib -lbacfind @OPENSSL_LIBS@ -lintl + LIBTOOL_LINK = @QMAKE_LIBTOOL@ --silent --tag=CXX --mode=link + LIBTOOL_INSTALL = @QMAKE_LIBTOOL@ --silent --mode=install + QMAKE_LINK = $${LIBTOOL_LINK} $(CXX) diff --git a/sysutils/bacula15-server/files/pkg-deinstall.client.in b/sysutils/bacula15-server/files/pkg-deinstall.client.in new file mode 100644 index 000000000000..27590d301e06 --- /dev/null +++ b/sysutils/bacula15-server/files/pkg-deinstall.client.in @@ -0,0 +1,30 @@ +#!/bin/sh + +PATH=/bin:/usr/bin:/usr/sbin + +# Note how to delete UID/GID +USER=%%BACULA_USER%% +GROUP=%%BACULA_GROUP%% +UID=%%BACULA_UID%% +GID=%%BACULA_UID%% +BACULA_DIR=%%BACULA_DIR%% + +TMPFILE=/tmp/services-$RANDOM-$$ + +case "$2" in +"DEINSTALL") + # Delete entries in /etc/services + sed -e '/# Bacula port start/,/# Bacula port end/{' \ + -e 'd' \ + -e '}' /etc/services > $TMPFILE + mv -f $TMPFILE /etc/services + + if [ -d ${BACULA_DIR} ]; then + echo "Check if ${BACULA_DIR} is empty and delete it to permanently remove the bacula port." + fi + + if pw groupshow "${USER}" 2>/dev/null 1>&2; then + echo "To delete Bacula group permanently, use 'pw groupdel ${GROUP}'" + fi + ;; +esac diff --git a/sysutils/bacula15-server/files/pkg-install.client.in b/sysutils/bacula15-server/files/pkg-install.client.in new file mode 100644 index 000000000000..12e044538074 --- /dev/null +++ b/sysutils/bacula15-server/files/pkg-install.client.in @@ -0,0 +1,13 @@ +#!/bin/sh + +PATH=/bin:/usr/bin:/usr/sbin + +# Always add lines in /etc/services +grep -q "bacula-dir" /etc/services +if [ "$?" != "0" ]; then + echo "# Bacula port start +bacula-dir 9101/tcp #Bacula director daemon +bacula-fd 9102/tcp #Bacula file daemon +bacula-sd 9103/tcp #Bacula storage daemon +# Bacula port end" >> /etc/services +fi diff --git a/sysutils/bacula15-server/files/pkg-message.client.in b/sysutils/bacula15-server/files/pkg-message.client.in *** 227 LINES SKIPPED ***