git: 51d12f23414c - main - sysutils/bareos-*: Copy to bareos20-* ports
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 16 Jan 2022 22:15:31 UTC
The branch main has been updated by acm: URL: https://cgit.FreeBSD.org/ports/commit/?id=51d12f23414ca5b380dbd9dce8b01ddbfb44c3b3 commit 51d12f23414ca5b380dbd9dce8b01ddbfb44c3b3 Author: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> AuthorDate: 2022-01-16 22:13:15 +0000 Commit: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> CommitDate: 2022-01-16 22:15:22 +0000 sysutils/bareos-*: Copy to bareos20-* ports bareos-* ports will be updated to 21.0.0 --- sysutils/bareos20-client/Makefile | 22 + sysutils/bareos20-server/Makefile | 242 +++ sysutils/bareos20-server/Makefile.common | 36 + sysutils/bareos20-server/distinfo | 3 + sysutils/bareos20-server/files/bareos-barcodes | 51 + sysutils/bareos20-server/files/bareos-dir.in | 55 + sysutils/bareos20-server/files/bareos-fd.in | 46 + sysutils/bareos20-server/files/bareos-sd.in | 37 + sysutils/bareos20-server/files/chio-bareos | 190 ++ .../files/patch-core-CMakeLists.txt | 43 + .../patch-core-cmake_BareosCheckIncludes.cmake | 39 + .../patch-core-cmake_BareosFindAllLibraries.cmake | 108 ++ ...patch-core-cmake_BareosInstallConfigFiles.cmake | 112 ++ ...atch-core-cmake_BareosSetVariableDefaults.cmake | 15 + .../files/patch-core-manpages_CMakeLists.txt | 14 + .../files/patch-core-scripts_CMakeLists.txt | 59 + .../patch-core-src-dird-dbcopy_CMakeLists.txt | 12 + .../files/patch-core-src-dird_CMakeLists.txt | 21 + .../files/patch-core-src-include_baconfig.h | 25 + .../patch-core-src-plugins-filed_CMakeLists.txt | 13 + .../patch-core-src-plugins-stored_CMakeLists.txt | 13 + .../files/patch-core-src-stored_CMakeLists.txt | 32 + .../files/patch-core-src_CMakeLists.txt | 38 + ...e_cmake_bareos-symlink-default-db-backend.cmake | 36 + .../bareos20-server/files/pkg-deinstall.client.in | 30 + .../bareos20-server/files/pkg-install.client.in | 13 + .../bareos20-server/files/pkg-message.client.in | 17 + .../bareos20-server/files/pkg-message.server.in | 74 + sysutils/bareos20-server/pkg-descr | 6 + sysutils/bareos20-server/pkg-plist | 176 ++ sysutils/bareos20-server/pkg-plist.client | 82 + sysutils/bareos20-traymonitor/Makefile | 26 + sysutils/bareos20-traymonitor/pkg-descr | 8 + sysutils/bareos20-traymonitor/pkg-plist | 7 + www/bareos20-webui/Makefile | 65 + www/bareos20-webui/distinfo | 3 + www/bareos20-webui/files/pkg-message.in | 19 + www/bareos20-webui/pkg-descr | 10 + www/bareos20-webui/pkg-plist | 1985 ++++++++++++++++++++ 39 files changed, 3783 insertions(+) diff --git a/sysutils/bareos20-client/Makefile b/sysutils/bareos20-client/Makefile new file mode 100644 index 000000000000..c49c27dc3688 --- /dev/null +++ b/sysutils/bareos20-client/Makefile @@ -0,0 +1,22 @@ +PORTNAME= bareos +PKGNAMESUFFIX= -client + +COMMENT= Backup archiving recovery open sourced (client) + +CONFLICTS= bareos19-client bareos18-client bareos17-client + +WITH_CLIENT_ONLY=yes +USE_RC_SUBR= bareos-fd + +PLIST= ${PKGDIR}/pkg-plist.client +MASTERDIR= ${.CURDIR}/../../sysutils/bareos-server + +OPTIONS_GROUP= PLUGINS +OPTIONS_GROUP_PLUGINS= CEPHFS GFAPI RADOS +OPTIONS_DEFINE= NLS PYTHON SCSICRYPTO + +CEPHFS_DESC= CEPHFS fd plugin support +GFAPI_DESC= GFAPI fd plugin support +RADOS_DESC= RADOS fd plugin support + +.include "${MASTERDIR}/Makefile" diff --git a/sysutils/bareos20-server/Makefile b/sysutils/bareos20-server/Makefile new file mode 100644 index 000000000000..21133a0d58fb --- /dev/null +++ b/sysutils/bareos20-server/Makefile @@ -0,0 +1,242 @@ +PORTNAME= bareos +DISTVERSIONPREFIX= Release/ +DISTVERSION= 20.0.3 +PORTREVISION?= 0 +CATEGORIES?= sysutils +PKGNAMEPREFIX?= # +PKGNAMESUFFIX?= -server + +MAINTAINER= acm@FreeBSD.org +COMMENT?= Backup archiving recovery open sourced (server) + +LICENSE= AGPLv3 LGPL3 +LICENSE_COMB= multi + +CONFLICTS?= bareos19-server bareos18-server bareos17-server + +LIB_DEPENDS+= liblzo2.so:archivers/lzo2 \ + libjansson.so:devel/jansson + +USES+= cmake compiler:c++11-lang cpe localbase perl5 pkgconfig readline \ + shebangfix +USE_GITHUB= yes +USE_PERL5= run + +USERS= bareos +GROUPS= ${USERS} + +PLIST_SUB+= LIB_VERSION=${PORTVERSION} + +USE_LDCONFIG= yes +SHEBANG_LANG= perl +SHEBANG_FILES= ${WRKSRC}/core/src/cats/make_catalog_backup.pl.in + +CPPFLAGS+= -I${LOCALBASE}/readline -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +OPTIONS_DEFAULT= OPENSSL +OPTIONS_SINGLE= CRYPTO +OPTIONS_SINGLE_CRYPTO= OPENSSL GNUTLS +OPTIONS_SUB= yes +CRYPTO_DESC= Cryptographic library +MTX_DESC= Install mtx for control of autochanger devices +NDMP_DESC= Enable build of NDMP support +SCSICRYPTO_DESC= Build LTO AME crypto plugin + +.if ${PKGNAMESUFFIX} == "-server" +OPTIONS_GROUP= BACKENDS +OPTIONS_GROUP_BACKENDS= CEPHFS GFAPI RADOS +OPTIONS_DEFINE= MTX PYTHON LMDB NDMP NLS SCSICRYPTO +OPTIONS_DEFAULT+= LMDB PGSQL SCSICRYPTO +OPTIONS_SINGLE_DATABASE= SQLITE3 MYSQL PGSQL +OPTIONS_SINGLE+= DATABASE +BACKENDS_DESC= Storage backends +DATABASE_DESC= Database support +CEPHFS_DESC= CEPHFS backend support +GFAPI_DESC= GFAPI backend support +LMDB_DESC= Enable faster accurate backup support +RADOS_DESC= RADOS backend support + +NDMP_CMAKE_ON= -Dndmp=ON +NDMP_CMAKE_OFF= -Dndmp=OFF +.endif + +GNUTLS_CONFIGURE_WITH= gnutls=${LOCALBASE} +GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls + +OPENSSL_USES= ssl +OPENSSL_CMAKE_ON= -Dopenssl=ON +OPENSSL_CMAKE_OFF= -Dopenssl=OFF + +SCSICRYPTO_CMAKE_ON= -Dscsi-crypto=ON +SCSICRYPTO_CMAKE_OFF= -Dscsi-crypto=OFF + +.if ${PKGNAMESUFFIX} == "-client" || ${PKGNAMESUFFIX} == "-server" #Till end of the file +PYTHON_USES= python +PYTHON_CMAKE_ON= -Dpython=ON +PYTHON_CMAKE_OFF= -Dpython=OFF +PYTHON_PLUGIN= yes + +.if !defined(WITH_CLIENT_ONLY) +LIB_DEPENDS+= libbareos.so:sysutils/bareos-client +USE_RC_SUBR?= bareos-dir bareos-sd +.endif + +.if defined(WITH_CLIENT_ONLY) +SUB_FILES+= pkg-install.client pkg-deinstall.client pkg-message.client +.else +SUB_FILES+= pkg-message.server +.endif + +CMAKE_ARGS+= -Dtcp-wrappers=ON \ + -Dsmartalloc=ON \ + -Dsysconfdir=${PREFIX}/etc \ + -Darchivedir=${BAREOS_DIR}/storage \ + -Dworkingdir=${BAREOS_DIR} \ + -Dconfdir=${PREFIX}/etc/bareos \ + -Dlibdir=${PREFIX}/lib \ + -Dlogdir=/var/log/bareos \ + -Dincludedir=${PREFIX}/include/bareos \ + -Dreadline=ON \ + -Ddisable-conio=ON \ + -Dbatch-insert=ON \ + -Dhave_plugins=ON \ + -Dplugindir=${PREFIX}/lib/bareos/plugins \ + -Dscriptdir=${PREFIX}/lib/bareos/scripts \ + -Dbackenddir=${PREFIX}/lib/bareos/backends \ + -Ddump_email=root@localhost \ + -Djob_email=root@localhost \ + -Ddb_name=bareos \ + -Dsbin-perm=755 \ + -Ddb_user=bareos \ + -Dbaseport=9101 \ + -Dpiddir=/var/run/bareos + +.if defined(WITH_CLIENT_ONLY) +CFLAGS+= -DMDB_DSYNC=O_SYNC -DMDB_USE_POSIX_SEM=1 + +CMAKE_ARGS+= -Dfd-user=root \ + -Dfd-group=wheel \ + -Dlmdb=ON +.else +LMDB_CMAKE_ON= -Dlmdb=ON +LMDB_CMAKE_OFF= -Dlmdb=OFF +LMDB_CFLAGS+= -DMDB_DSYNC=O_SYNC -DMDB_USE_POSIX_SEM=1 + +CMAKE_ARGS+= -Ddir-user=${BAREOS_USER} \ + -Ddir-group=${BAREOS_GROUP} \ + -Dsd-user=${BAREOS_USER} \ + -Dsd-group=operator +.endif + +# The user/group IDs below are registered, see +# http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#DADS-UID +# +BAREOS_USER?= bareos +BAREOS_GROUP?= ${BAREOS_USER} +BAREOS_UID?= 997 +BAREOS_GID?= ${BAREOS_UID} +BAREOS_DIR?= /var/db/bareos + +PLIST_SUB+= BAREOS_DIR=${BAREOS_DIR} + +SUB_LIST= BAREOS_USER=${BAREOS_USER} \ + BAREOS_GROUP=${BAREOS_GROUP} \ + BAREOS_UID=${BAREOS_UID} \ + BAREOS_GID=${BAREOS_GID} \ + BAREOS_DIR=${BAREOS_DIR} + +NLS_USES= gettext +NLS_CMAKE_ON= -Dnls=ON +CEPHFS_CMAKE_ON= -Dcephfs=ON +CEPHFS_LIB_DEPENDS= libcephfs.so:net/ceph14 +GFAPI_CMAKE_ON= -Dgfapi=ON +GFAPI_LIB_DEPENDS= libglusterfs.so:net/glusterfs +RADOS_CMAKE_ON= -Drados=ON -Dcephfs=ON +RADOS_LIB_DEPENDS= librados.so:net/ceph14 + +# Client only or full server version +.if defined(WITH_CLIENT_ONLY) +CONFFILES= fd +CMAKE_ARGS+= -Dclient-only=ON + +PKGDEINSTALL= ${FILESDIR}/pkg-deinstall.client +PKGINSTALL= ${FILESDIR}/pkg-install.client +.else +# Server only Options +CONFFILES= sd dir +CMAKE_ARGS+= -Dbuild-dird=ON \ + -Dbuild-stored=ON \ + -Dbuild_client_only=OFF +# Server default database + +MYSQL_CMAKE_ON= -Dmysql=ON +MYSQL_USES= mysql +SQLITE3_CMAKE_ON= -Dsqlite3=ON +SQLITE3_LIB_DEPENDS= libsqlite3.so:databases/sqlite3 +PGSQL_CMAKE_ON= -Dpostgresql=ON +PGSQL_USES= pgsql + +MTX_RUN_DEPENDS= ${LOCALBASE}/sbin/mtx:misc/mtx + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MMYSQL} +DBTYPE= mysql +SUB_LIST+= REQ_MYSQL=mysql REQ_PGSQL="" +.elif ${PORT_OPTIONS:MSQLITE3} +DBTYPE= sqlite3 +.else +DBTYPE= postgresql +SUB_LIST+= REQ_MYSQL="" REQ_PGSQL=postgresql +.endif +PLIST_SUB+= DBTYPE=${DBTYPE} + +.endif + +.if defined(WITH_CLIENT_ONLY) +MP1+= bconsole.1 +MP8+= bareos-fd.8 +.else +MP8+= bareos.8 bareos-dir.8 bareos-sd.8 bcopy.8 bextract.8 bls.8 bscan.8 \ + btape.8 btraceback.8 bareos-dbcheck.8 +MP1+= bsmtp.1 bregex.1 bwild.1 bareos-tray-monitor.1 +.endif + +MAKE_ENV+= MAN8="${MP8}" MAN1="${MP1}" + +post-patch: + @${REINPLACE_CMD} '76,79d' ${WRKSRC}/CMakeLists.txt +.if ${PKGNAMESUFFIX} == "-server" + @${REINPLACE_CMD} '45d' ${WRKSRC}/core/src/CMakeLists.txt + @${REINPLACE_CMD} '51d' ${WRKSRC}/core/src/plugins/CMakeLists.txt +.endif + +post-extract: +.if defined(WITH_CLIENT_ONLY) +. if defined(PYTHON_PLUGIN) + @${MKDIR} ${STAGEDIR}${ETCDIR}/python-ldap-conf.d/bareos-dir.d/fileset + @${MKDIR} ${STAGEDIR}${ETCDIR}/python-ldap-conf.d/bareos-dir.d/job +. endif +.endif + @${MV} ${WRKSRC}/core/src/defaultconfigs/bareos-dir.d/fileset/'Windows All Drives.conf' \ + ${WRKSRC}/core/src/defaultconfigs/bareos-dir.d/fileset/'WindowsAllDrives.conf' + +.if !target(post-install) +post-install: +.if defined(WITH_CLIENT_ONLY) + ${MKDIR} ${STAGEDIR}${ETCDIR}/bconsole.d/ + ${MV} ${STAGEDIR}${ETCDIR}/bconsole.conf ${STAGEDIR}${ETCDIR}/bconsole.d/bconsole.conf.sample +.else + ${INSTALL_SCRIPT} ${FILESDIR}/chio-bareos ${STAGEDIR}${PREFIX}/sbin + ${INSTALL_DATA} ${FILESDIR}/bareos-barcodes ${STAGEDIR}${ETCDIR}/bareos-barcodes.sample + ${CHMOD} o+x ${STAGEDIR}${PREFIX}/bin/bsmtp + ${MV} ${STAGEDIR}${ETCDIR}/mtx-changer.conf ${STAGEDIR}${ETCDIR}/mtx-changer.conf.sample + ${MV} ${STAGEDIR}${ETCDIR}/bareos-regress.conf ${STAGEDIR}${ETCDIR}//bareos-regress.conf.sample +.endif + @${MKDIR} ${STAGEDIR}/var/run/bareos +.endif +.else +.include "${MASTERDIR}/Makefile.common" +.endif # -client and -server are defined +.include <bsd.port.mk> diff --git a/sysutils/bareos20-server/Makefile.common b/sysutils/bareos20-server/Makefile.common new file mode 100644 index 000000000000..7bad4fc0eb8d --- /dev/null +++ b/sysutils/bareos20-server/Makefile.common @@ -0,0 +1,36 @@ +# Created by: Alonso Cardenas <acm@FreeBSD.org> +post-patch: + @${REINPLACE_CMD} '76,79d' ${WRKSRC}/CMakeLists.txt + +post-build: +.if ${PKGNAMEPREFIX} == "nagios-check_" + ${MAKE_CMD} -C ${WRKSRC}/examples/nagios/check_bareos +.endif + +pre-install: +.if ${PKGNAMESUFFIX} == "-traymonitor" +. for d in client director monitor storage + ${MKDIR} ${STAGEDIR}${ETCDIR}/tray-monitor.d/${d} + ${FIND} ${WRKSRC}/core/src/defaultconfigs/tray-monitor.d/${d} -type f -name '*.conf' -exec ${MV} -v {} {}.sample \; +. endfor +.endif + +do-install: +.if ${PKGNAMEPREFIX} == "nagios-check_" + @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios + ${INSTALL_PROGRAM} ${WRKSRC}/examples/nagios/check_bareos/check_bareos \ + ${STAGEDIR}${PREFIX}/libexec/nagios +.endif +.if ${PKGNAMESUFFIX} == "-client-static" + ${INSTALL_PROGRAM} ${WRKSRC}/src/filed/static-bareos-fd ${STAGEDIR}${PREFIX}/sbin/bareos-fd-static + ${INSTALL_PROGRAM} ${WRKSRC}/src/console/static-bconsole ${STAGEDIR}${PREFIX}/sbin/bconsole-static +.endif +.if ${PKGNAMESUFFIX} == "-traymonitor" +# Install config files and preserve existing ones +.for d in client director monitor storage + ${INSTALL_SCRIPT} ${WRKSRC}/core/src/defaultconfigs/tray-monitor.d/${d}/*.sample ${STAGEDIR}${ETCDIR}/tray-monitor.d/${d}/ +.endfor + ${INSTALL_PROGRAM} ${CONFIGURE_WRKSRC}/core/src/qt-tray-monitor/bareos-tray-monitor ${STAGEDIR}${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/core/src/images/bareos_1.png ${STAGEDIR}${PREFIX}/share/pixmaps/bareos-tray-monitor.png + ${INSTALL_DATA} ${WRKSRC}/core/src/qt-tray-monitor/bareos-tray-monitor.desktop ${STAGEDIR}${DESKTOPDIR} +.endif diff --git a/sysutils/bareos20-server/distinfo b/sysutils/bareos20-server/distinfo new file mode 100644 index 000000000000..0347ca40d29d --- /dev/null +++ b/sysutils/bareos20-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1636154330 +SHA256 (bareos-bareos-Release-20.0.3_GH0.tar.gz) = 261be0f4b2843ccdf7593b627a479673a51cd3e8c7484c74ea963548f5f1b696 +SIZE (bareos-bareos-Release-20.0.3_GH0.tar.gz) = 13335390 diff --git a/sysutils/bareos20-server/files/bareos-barcodes b/sysutils/bareos20-server/files/bareos-barcodes new file mode 100644 index 000000000000..f42cb7f7aeea --- /dev/null +++ b/sysutils/bareos20-server/files/bareos-barcodes @@ -0,0 +1,51 @@ +# +# Bacula barcode simulation file +# used by ${PREFIX}/sbin/chio-bareos (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/bareos20-server/files/bareos-dir.in b/sysutils/bareos20-server/files/bareos-dir.in new file mode 100644 index 000000000000..86b62370cbb7 --- /dev/null +++ b/sysutils/bareos20-server/files/bareos-dir.in @@ -0,0 +1,55 @@ +#!/bin/sh + +# PROVIDE: bareos_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: +# +# bareos_dir_enable (bool): Set to NO by default. +# Set it to YES to enable bareos_dir. +# bareos_dir_flags (params): Set params used to start bareos_dir. +# bareos_dir_config (params): Path to the config file/directory +# + +. /etc/rc.subr + +name="bareos_dir" +rcvar=${name}_enable + +load_rc_config $name + +: ${bareos_dir_enable="NO"} +: ${bareos_dir_flags="-u bareos -g bareos -v"} +: ${bareos_dir_config="%%PREFIX%%/etc/bareos/"} +: ${bareos_dir_pidfile="/var/run/bareos/bareos-dir.9101.pid"} + +command=%%PREFIX%%/sbin/bareos-dir +command_args="-c ${bareos_dir_config}" +pidfile="${bareos_dir_pidfile}" +bconsole_command=/usr/local/bin/bconsole +start_precmd="bareos_start_precmd" +restart_precmd="bareos_dir_configtest" +reload_precmd="bareos_dir_configtest" +reload_cmd="bareos_dir_reload" +configtest_cmd="bareos_dir_configtest" + +bareos_start_precmd() { + [ -d "${pidfile%/*}" ] || install -d -o bareos -g bareos ${pidfile%/*} + bareos_dir_configtest +} + +bareos_dir_configtest() { + echo "Performing sanity check on ${bareos_dir_config} configuration:" + eval ${command} -t +} + +bareos_dir_reload() { + echo "Performing a graceful reload" + # bconsole always exits with 0, so we can't check the return status for success. + echo "reload" | ${bconsole_command} +} + +extra_commands="reload configtest" +run_rc_command "$1" diff --git a/sysutils/bareos20-server/files/bareos-fd.in b/sysutils/bareos20-server/files/bareos-fd.in new file mode 100644 index 000000000000..54647786b12c --- /dev/null +++ b/sysutils/bareos20-server/files/bareos-fd.in @@ -0,0 +1,46 @@ +#!/bin/sh + +# PROVIDE: bareos_fd +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bareos_fd_enable (bool): Set to NO by default. +# Set it to YES to enable bareos_fd. +# bareos_fd_flags (params): Set params used to start bareos_fd. +# bareos_fd_config (params): Path to the config file/directory +# + +. /etc/rc.subr + +name="bareos_fd" +rcvar=${name}_enable + +load_rc_config $name + +: ${bareos_fd_enable="NO"} +: ${bareos_fd_flags="-u root -g wheel -v"} +: ${bareos_fd_config="%%PREFIX%%/etc/bareos/"} +: ${bareos_fd_pidfile="/var/run/bareos/bareos-fd.9102.pid"} + +command=%%PREFIX%%/sbin/bareos-fd +command_args="-c ${bareos_fd_config}" +pidfile="${bareos_fd_pidfile}" +start_precmd="bareos_start_precmd" + +bareos_start_precmd() { + [ -d "${pidfile%/*}" ] || { + getent passwd bareos > /dev/null 2&>1 + if [ $? -eq 0] ; then + # user bareos exists + install -d -o bareos -g bareos ${pidfile%/*} + else + # bareos_fd as solitair service + install -d -o root -g wheel ${pidfile%/*} + fi + } +} + +run_rc_command "$1" diff --git a/sysutils/bareos20-server/files/bareos-sd.in b/sysutils/bareos20-server/files/bareos-sd.in new file mode 100644 index 000000000000..a5efe78e80f7 --- /dev/null +++ b/sysutils/bareos20-server/files/bareos-sd.in @@ -0,0 +1,37 @@ +#!/bin/sh + +# PROVIDE: bareos_sd +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# bareos_sd_enable (bool): Set to NO by default. +# Set it to YES to enable bareos_sd. +# bareos_sd_flags (params): Set params used to start bareos_sd. +# bareos_sd_config (params): Path to the config file/directory +# + +. /etc/rc.subr + +name="bareos_sd" +rcvar=${name}_enable + +load_rc_config $name + +: ${bareos_sd_enable="NO"} +: ${bareos_sd_flags="-u bareos -g bareos -v"} +: ${bareos_sd_config="%%PREFIX%%/etc/bareos/"} +: ${bareos_sd_pidfile="/var/run/bareos/bareos-sd.9103.pid"} + +command=%%PREFIX%%/sbin/bareos-sd +command_args="-c ${bareos_sd_config}" +pidfile="${bareos_sd_pidfile}" +start_precmd="bareos_start_precmd" + +bareos_start_precmd() { + [ -d "${pidfile%/*}" ] || install -d -o bareos -g bareos ${pidfile%/*} +} + +run_rc_command "$1" diff --git a/sysutils/bareos20-server/files/chio-bareos b/sysutils/bareos20-server/files/chio-bareos new file mode 100644 index 000000000000..f006ef78e6ce --- /dev/null +++ b/sysutils/bareos20-server/files/chio-bareos @@ -0,0 +1,190 @@ +#!/bin/sh +# +# BAREOS interface to tape libraries and autoloaders for FreeBSD +# (by Rudolf Cejka <cej...@fit.vutbr.cz>, v1.2, 2012/11/14) +# +# If you set in your Device resource +# Changer Command = "path-to-this-script/chio-changer %c %o %S %a %d" +# you will have the following input to this script: +# chio-changer "changer-device" "command" "slot" "tape-device" "drive-index" +# $1 $2 $3 $4 $5 +# for example (on a FreeBSD system): +# chio-changer /dev/ch0 load 1 /dev/nsa0 0 +# +# If you change the script, take care to return either the chio exit +# code or a 0. If the script exits with a non-zero exit code, BAREOS +# will assume the request failed. +# + +PROGNAME=`basename $0` + +# Uncomment the following line, if you want to log debug output. +#DEBUG=/var/run/bareos/${PROGNAME}.log + +# Uncomment the following line, if you need to eject a tape before moving +# it from the drive. +#OFFLINE=yes + +# Uncomment one or more of the following lines, if you need to wait for +# some time (in seconds) after unloading, loading or transferring a tape. +#OFFLINE_SLEEP=10 +#LOAD_SLEEP=10 +#MOVE_SLEEP=10 + +# Uncomment the following line, if you do not have a changer with volume +# reader. +#FAKE_BARCODES=/usr/local/etc/bareos-barcodes + +usage() +{ + cat <<EOF +Usage: ${PROGNAME} <changer-device> <cmd> [slot] [tape-device] [drive-index] + +Commands (<cmd>): + unload Unload a tape into the slot from where it was loaded + load <slot> Load a tape from the slot <slot> (1-based) + transfer <slot> <slotdst> Transfer a tape from the slot <slot> to + the slot <slotdst> (1-based) + list List full storage slots + listall List all storage slots and drives with source information + loaded Give slot from where the tape was loaded (0 = empty drive) + slots Give number of available slots + +Example: + ${PROGNAME} /dev/ch0 load 1 Load a tape from the slot 1 + +EOF + exit 1 +} + +# Default settings +CHANGER=/dev/ch0 +TAPE=/dev/nsa0 +DRIVE=0 + +CHIO=/bin/chio +MT=/usr/bin/mt + +if [ -n "${DEBUG}" ]; then + MSG=$0 + for PAR; do MSG="${MSG} \"${PAR}\""; done + echo `date +"%Y/%m/%d %H:%M:%S"` ${MSG} >> ${DEBUG} +fi + +if [ -n "$1" ]; then + CHANGER=$1; +fi +COMMAND=$2 +SLOT=$3 +SLOTDST=$4 +if [ -n "$4" ]; then + TAPE=$4 +fi +if [ -n "$5" ]; then + DRIVE=$5 +fi + +case ${COMMAND} in +unload) + if [ "${OFFLINE}" = yes ]; then + ${MT} -f ${TAPE} offline + if [ $? = 0 -a -n "${OFFLINE_SLEEP}" ]; then + sleep ${OFFLINE_SLEEP} + fi + fi + if [ -z "${SLOT}" ]; then + ${CHIO} -f ${CHANGER} return drive ${DRIVE} + else + ${CHIO} -f ${CHANGER} move drive ${DRIVE} slot $((${SLOT} - 1)) + fi + if [ $? -ne 0 ]; then + # In case of an error, try to unload the cartridge to the first free slot + FREE=`${CHIO} -f ${CHANGER} status slot | \ + sed -ne '/FULL/d;s/^slot *\([0-9]*\):.*/\1/p' | \ + awk 'BEGIN { n = 0 } { n = $1 + 1; exit } END { print n }'` + if [ ${FREE} -gt 0 ]; then + ${CHIO} -f ${CHANGER} move drive ${DRIVE} slot $((${FREE} - 1)) + else + exit 1 + fi + fi + ;; +load) + if [ -z "${SLOT}" ]; then + usage + fi + ${CHIO} -f ${CHANGER} move slot $((${SLOT} - 1)) drive ${DRIVE} + if [ $? -ne 0 ]; then + exit 1 + fi + if [ -n "${LOAD_SLEEP}" ]; then + sleep ${LOAD_SLEEP} + fi + ;; +transfer) + if [ -z "${SLOT}" -o -z "${SLOTDST}" ]; then + usage + fi + ${CHIO} -f ${CHANGER} move slot $((${SLOT} - 1)) slot $((${SLOTDST} - 1)) + if [ $? -ne 0 ]; then + exit 1 + fi + if [ -n "${MOVE_SLEEP}" ]; then + sleep ${MOVE_SLEEP} + fi + ;; +list) + if [ -z "${FAKE_BARCODES}" ]; then + ${CHIO} -f ${CHANGER} status -v slot | \ + sed -ne 's/^slot *\([0-9]*\):.*FULL.*voltag.*<\([^:]*\):.*/\1:\2/p' | \ + awk -F: '{ print $1 + 1 ":" $2 }' + else + if [ -f "${FAKE_BARCODES}" ]; then + grep -v -e "^#" -e "^$" < ${FAKE_BARCODES} + else + echo "${PROGNAME}: Barcode file ${FAKE_BARCODES} is missing" + exit 1 + fi + fi + ;; +listall) + if [ -z "${FAKE_BARCODES}" ]; then + ${CHIO} -f ${CHANGER} status -vS | \ + sed -ne ' + s/^slot *\([0-9]*\):.*ENAB.*FULL.*voltag.*<\([^:]*\):.*/I:\1:F:\2/p;t + s/^slot *\([0-9]*\):.*FULL.*voltag.*<\([^:]*\):.*/S:\1:F:\2/p;t + s/^drive *\([0-9]*\):.*FULL.*voltag.*<\([^:]*\):.*source.*<[^0-9]*\([0-9]*\)>.*/D:\1:F:\3:\2/p;t + s/^slot *\([0-9]*\):.*ENAB.*voltag.*<\([^:]*\):.*/I:\1:E/p;t + s/^slot *\([0-9]*\):.*voltag.*<\([^:]*\):.*/S:\1:E/p;t + s/^drive *\([0-9]*\):.*voltag.*<\([^:]*\):.*/D:\1:E/p' | \ + awk -F: '{ for (n = 1; n <= NF; n++) printf "%s%s", + (n == ($1 == "D" ? 4 : 2)) ? ($n == "" ? 0 : $n + 1) : $n, + (n == NF) ? "\n" : ":" }' + else + if [ -f "${FAKE_BARCODES}" ]; then + grep -v -e "^#" -e "^$" < ${FAKE_BARCODES} | \ + awk -F: '{ print "S:" $1 (match($2, "^ *$") ? ":E" : ":F:" $2) }' + else + echo "${PROGNAME}: Barcode file ${FAKE_BARCODES} is missing" + exit 1 + fi + fi + ;; +loaded) + # If a tape is loaded, but the source slot is unknown (for example, + # after library reboot), try to report the first free slot + FREE=`${CHIO} -f ${CHANGER} status slot | \ + sed -ne '/FULL/d;s/^slot *\([0-9]*\):.*/\1/p' | \ + awk 'BEGIN { n = 0 } { n = $1 + 1; exit } END { print n }'` + ${CHIO} -f ${CHANGER} status -S drive | \ + sed -ne 's/^drive *'${DRIVE}':.*FULL.*source.*<[^0-9]*\([0-9]*\)>.*/\1/p' \ + | awk 'BEGIN { n = 0 } { n = ($1 == "") ? '${FREE}' : $1 + 1 } \ + END { print n }' + ;; +slots) + ${CHIO} -f ${CHANGER} status | grep -c "^slot " + ;; +*) + usage + ;; +esac diff --git a/sysutils/bareos20-server/files/patch-core-CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-CMakeLists.txt new file mode 100644 index 000000000000..7adbdb29fefa --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-CMakeLists.txt @@ -0,0 +1,43 @@ +--- core/CMakeLists.txt 2020-12-16 02:46:16.000000000 -0500 ++++ core/CMakeLists.txt 2020-12-26 21:28:44.141734000 -0500 +@@ -256,7 +256,9 @@ + set(PSCMD "ps -ax -o pid,command") + include_directories(/usr/local/include) + link_directories(/usr/local/lib) +- link_libraries(intl) ++ IF(nls) ++ link_libraries(intl) ++ ENDIF() + endif() + + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +@@ -323,8 +325,11 @@ + add_definitions("-D_FILE_OFFSET_BITS=64") + endif() + +-include(FindIntl) + ++IF(nls) ++ INCLUDE(FindIntl) ++ENDIF() ++ + if(developer) + add_definitions("-DDEVELOPER=1") + endif() +@@ -347,7 +352,7 @@ + if(NOT client-only) + # droplet does not build on solaris because of sys/cdefs.h: No such file or + # directory +- if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") ++ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS|FreeBSD") + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/droplet/CMakeLists.txt) + message( + FATAL_ERROR +@@ -771,7 +776,6 @@ + + add_subdirectory(scripts) + add_subdirectory(manpages) +-add_subdirectory(platforms) + add_subdirectory(src) + + include(BareosLocalBuildDefinitions OPTIONAL diff --git a/sysutils/bareos20-server/files/patch-core-cmake_BareosCheckIncludes.cmake b/sysutils/bareos20-server/files/patch-core-cmake_BareosCheckIncludes.cmake new file mode 100644 index 000000000000..e439a0254191 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-cmake_BareosCheckIncludes.cmake @@ -0,0 +1,39 @@ +--- core/cmake/BareosCheckIncludes.cmake 2020-12-16 02:46:16.000000000 -0500 ++++ core/cmake/BareosCheckIncludes.cmake 2020-12-23 22:25:00.323963000 -0500 +@@ -60,19 +60,25 @@ + check_include_files(sys/proplist.h HAVE_SYS_PROPLIST_H) + check_include_files(sys/xattr.h HAVE_SYS_XATTR_H) + +-include(CheckSymbolExists) +-include(CMakePushCheckState) +-cmake_push_check_state() +-set(CMAKE_REQUIRED_LIBRARIES cephfs) +-check_symbol_exists(ceph_statx "sys/stat.h;cephfs/libcephfs.h" HAVE_CEPH_STATX) +-cmake_pop_check_state() ++if(cephfs) ++ include(CheckSymbolExists) ++ include(CMakePushCheckState) ++ cmake_push_check_state() ++ set(CMAKE_REQUIRED_LIBRARIES cephfs) ++ check_include_files("sys/stat.h;cephfs/ceph_ll_client.h" HAVE_CEPH_STATX) ++ cmake_pop_check_state() ++endif() + +-check_include_files(rados/librados.h HAVE_RADOS_LIBRADOS_H) +-check_include_files( +- radosstriper/libradosstriper.h HAVE_RADOSSTRIPER_LIBRADOSSTRIPER_H +-) ++if(rados) ++ check_include_files(rados/librados.h HAVE_RADOS_LIBRADOS_H) ++ check_include_files( ++ radosstriper/libradosstriper.h HAVE_RADOSSTRIPER_LIBRADOSSTRIPER_H ++ ) ++endif() + +-check_include_files(glusterfs/api/glfs.h HAVE_GLUSTERFS_API_GLFS_H) ++if(gfapi) ++ check_include_files(glusterfs/api/glfs.h HAVE_GLUSTERFS_API_GLFS_H) ++endif() + + check_include_files(sys/prctl.h HAVE_SYS_PRCTL_H) + diff --git a/sysutils/bareos20-server/files/patch-core-cmake_BareosFindAllLibraries.cmake b/sysutils/bareos20-server/files/patch-core-cmake_BareosFindAllLibraries.cmake new file mode 100644 index 000000000000..2106acc618aa --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-cmake_BareosFindAllLibraries.cmake @@ -0,0 +1,108 @@ +--- core/cmake/BareosFindAllLibraries.cmake 2021-06-10 10:37:18.000000000 -0500 ++++ core/cmake/BareosFindAllLibraries.cmake 2021-07-09 21:07:45.799522000 -0500 +@@ -37,55 +37,39 @@ + set(Python3_FOUND 0) + + else() +- find_package(Python2 COMPONENTS Interpreter Development) +- find_package(Python3 COMPONENTS Interpreter Development) ++ if(python) ++ find_package(Python3 COMPONENTS Interpreter Development) + +- set(Python3_VERSION_MAJOR +- ${Python3_VERSION_MAJOR} +- PARENT_SCOPE +- ) +- +- set(Python3_VERSION_MINOR +- ${Python3_VERSION_MINOR} +- PARENT_SCOPE +- ) +- +- if(${Python2_FOUND} OR ${Python3_FOUND}) +- set(HAVE_PYTHON 1) +- endif() +- +- if(${Python2_FOUND}) +- set(PYTHON_EXECUTABLE +- ${Python2_EXECUTABLE} ++ set(Python3_VERSION_MAJOR ++ ${Python3_VERSION_MAJOR} + PARENT_SCOPE + ) +- set(Python2_EXECUTABLE +- ${Python2_EXECUTABLE} +- PARENT_SCOPE +- ) +- execute_process( +- COMMAND ${Python2_EXECUTABLE} +- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get_python_compile_settings.py +- OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/py2settings.cmake +- ) +- include(${CMAKE_CURRENT_BINARY_DIR}/py2settings.cmake) +- endif() + +- if(${Python3_FOUND}) +- set(PYTHON_EXECUTABLE +- ${Python3_EXECUTABLE} ++ set(Python3_VERSION_MINOR ++ ${Python3_VERSION_MINOR} + PARENT_SCOPE + ) +- set(Python3_EXECUTABLE +- ${Python3_EXECUTABLE} +- PARENT_SCOPE +- ) +- execute_process( +- COMMAND ${Python3_EXECUTABLE} +- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get_python_compile_settings.py +- OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/py3settings.cmake +- ) +- include(${CMAKE_CURRENT_BINARY_DIR}/py3settings.cmake) ++ ++ if(${Python3_FOUND}) ++ set(HAVE_PYTHON 1) ++ endif() ++ ++ if(${Python3_FOUND}) ++ set(PYTHON_EXECUTABLE ++ ${Python3_EXECUTABLE} ++ PARENT_SCOPE ++ ) ++ set(Python3_EXECUTABLE ++ ${Python3_EXECUTABLE} ++ PARENT_SCOPE ++ ) ++ execute_process( ++ COMMAND ${Python3_EXECUTABLE} ++ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get_python_compile_settings.py ++ OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/py3settings.cmake ++ ) ++ include(${CMAKE_CURRENT_BINARY_DIR}/py3settings.cmake) ++ endif() + endif() + endif() + +@@ -164,12 +148,18 @@ + endif() + + bareosfindlibraryandheaders("jansson" "jansson.h" "") +-bareosfindlibraryandheaders("rados" "rados/librados.h" "") +-bareosfindlibraryandheaders("radosstriper" "radosstriper/libradosstriper.h" "") +-bareosfindlibraryandheaders("cephfs" "cephfs/libcephfs.h" "") ++if(rados) ++ bareosfindlibraryandheaders("rados" "rados/librados.h" "") ++ bareosfindlibraryandheaders("radosstriper" "radosstriper/libradosstriper.h" "") ++endif() *** 3085 LINES SKIPPED ***