sysutils/bareos23-*: Copy bareos-* ports to bareos23-* ones

- bareos-* ports will be updated to 24.0.0
This commit is contained in:
Jose Alonso Cardenas Marquez
2025-01-13 16:23:36 +00:00
committed by Brad Davis
parent b30c19bf13
commit 35c80f57a6
42 changed files with 4313 additions and 0 deletions
+3
View File
@@ -108,6 +108,9 @@
SUBDIR += bareos22-client
SUBDIR += bareos22-server
SUBDIR += bareos22-traymonitor
SUBDIR += bareos23-client
SUBDIR += bareos23-server
SUBDIR += bareos23-traymonitor
SUBDIR += barrier
SUBDIR += bashtop
SUBDIR += bastille
+20
View File
@@ -0,0 +1,20 @@
PORTNAME= bareos
PKGNAMESUFFIX= 23-client
COMMENT= Backup archiving recovery open sourced (client)
CONFLICTS= bareos22-client bareos21-client bareos20-client bareos-client
WITH_CLIENT_ONLY=yes
USE_RC_SUBR= bareos-fd
PLIST= ${PKGDIR}/pkg-plist.client
MASTERDIR= ${.CURDIR}/../../sysutils/bareos23-server
OPTIONS_GROUP= PLUGINS
OPTIONS_GROUP_PLUGINS= GFAPI
OPTIONS_DEFINE= NLS PYTHON SCSICRYPTO
GFAPI_DESC= GFAPI fd plugin support
.include "${MASTERDIR}/Makefile"
+230
View File
@@ -0,0 +1,230 @@
PORTNAME= bareos
DISTVERSIONPREFIX= Release/
DISTVERSION= 23.1.1
PORTREVISION?= 0
CATEGORIES?= sysutils
PKGNAMEPREFIX?= #
PKGNAMESUFFIX?= 23-server
MAINTAINER= acm@FreeBSD.org
COMMENT?= Backup archiving recovery open sourced (server)
WWW= https://www.bareos.org/
LICENSE= AGPLv3 LGPL3
LICENSE_COMB= multi
CONFLICTS?= bareos20-server bareos21-server bareos22-server bareos-server
LIB_DEPENDS+= liblzo2.so:archivers/lzo2 \
libjansson.so:devel/jansson \
libfmt.so:devel/libfmt
USES+= cmake compiler:c++11-lang cpe localbase:ldflags 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 python
SHEBANG_GLOB= *.py
SHEBANG_FILES= ${WRKSRC}/contrib/misc/bsmc/bin/bsmc
CPPFLAGS+= -I${LOCALBASE}/readline
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} == "23-server"
OPTIONS_GROUP= BACKENDS
OPTIONS_GROUP_BACKENDS= GFAPI
OPTIONS_DEFINE= MTX PYTHON LMDB NDMP NLS SCSICRYPTO
OPTIONS_DEFAULT+= LMDB PGSQL SCSICRYPTO
OPTIONS_SINGLE_DATABASE= PGSQL
OPTIONS_SINGLE+= DATABASE
BACKENDS_DESC= Storage backends
DATABASE_DESC= Database support
GFAPI_DESC= GFAPI backend support
LMDB_DESC= Enable faster accurate backup 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} == "23-client" || ${PKGNAMESUFFIX} == "23-server" #Till end of the file
PYTHON_USES= python
PYTHON_CMAKE_ON= -DENABLE_PYTHON=ON
PYTHON_CMAKE_OFF= -DENABLE_PYTHON=OFF
PYTHON_PLUGIN= yes
.if !defined(WITH_CLIENT_ONLY)
LIB_DEPENDS+= libbareos.so:sysutils/bareos23-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
GFAPI_CMAKE_ON= -Dgfapi=ON
GFAPI_LIB_DEPENDS= libglusterfs.so:net/glusterfs
# Client only or full server version
.if defined(WITH_CLIENT_ONLY)
CONFFILES= fd
CMAKE_ARGS+= -Dclient-only=ON \
-DENABLE_WEBUI=OFF
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
MTX_RUN_DEPENDS= ${LOCALBASE}/sbin/mtx:misc/mtx
PGSQL_CMAKE_ON= -Dpostgresql=ON
PGSQL_USES= pgsql
PGSQL_SUB_LIST= REQ_PGSQL=postgresql
PGSQL_SUB_LIST_OFF= REQ_PGSQL=""
.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} '136,141d' ${WRKSRC}/CMakeLists.txt
.if ${PKGNAMESUFFIX} == "23-server"
@${REINPLACE_CMD} '50d' ${WRKSRC}/core/src/plugins/CMakeLists.txt
.endif
.if ${PKGNAMESUFFIX} == "23-client"
@${REINPLACE_CMD} -e 's|-Werror -Wall|-Wall|g' ${PATCH_WRKSRC}/core/CMakeLists.txt
@${REINPLACE_CMD} -e 's|enable_testing()||g' ${WRKSRC}/CMakeLists.txt
.endif
post-patch-PYTHON-off:
@${REINPLACE_CMD} 's/set(python ON)/set(python OFF)/' ${WRKSRC}/cmake/BareosSetVariableDefaults.cmake
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'
@${MV} ${WRKSRC}/contrib/misc/bsmc/etc/bareos/bsmc.conf \
${WRKSRC}/contrib/misc/bsmc/etc/bareos/bsmc.conf.sample
.if !target(post-install)
post-install:
.if defined(WITH_CLIENT_ONLY)
${MKDIR} ${STAGEDIR}${ETCDIR}/bconsole.d/
${MV} ${STAGEDIR}${ETCDIR}/bconsole.conf.sample ${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
.endif
@${MKDIR} ${STAGEDIR}/var/run/bareos
.endif
.else
.include "${MASTERDIR}/Makefile.common"
.endif # 23-client and 23-server are defined
.include <bsd.port.mk>
+38
View File
@@ -0,0 +1,38 @@
post-patch:
@${REINPLACE_CMD} '76,79d' ${WRKSRC}/CMakeLists.txt
.if (${PKGNAMESUFFIX} == "23-traymonitor-qt5") || (${PKGNAMESUFFIX} == "23-traymonitor-qt6")
@${REINPLACE_CMD} -e 's|-Werror -Wall|-Wall|g' ${PATCH_WRKSRC}/core/CMakeLists.txt
.endif
post-build:
.if ${PKGNAMEPREFIX} == "nagios-check_"
${MAKE_CMD} -C ${WRKSRC}/examples/nagios/check_bareos
.endif
pre-install:
.if (${PKGNAMESUFFIX} == "23-traymonitor-qt5") || (${PKGNAMESUFFIX} == "23-traymonitor-qt6")
. 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} == "23-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} == "23-traymonitor-qt5") || (${PKGNAMESUFFIX} == "23-traymonitor-qt6")
# 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
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1733553941
SHA256 (bareos-bareos-Release-23.1.1_GH0.tar.gz) = 468fbe12a509b65ca3de5041a901eb0cf1da5c9a4f1729ca57ed39f45fd428e7
SIZE (bareos-bareos-Release-23.1.1_GH0.tar.gz) = 14010988
@@ -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
@@ -0,0 +1,55 @@
#!/bin/sh
# PROVIDE: bareos_dir
# REQUIRE: DAEMON %%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} -p ${bareos_dir_pidfile}"
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"
@@ -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} -p ${bareos_fd_pidfile}"
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"
@@ -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} -p ${bareos_sd_pidfile}"
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"
+190
View File
@@ -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
@@ -0,0 +1,11 @@
--- contrib/misc/bsmc/CMakeLists.txt 2023-04-07 17:32:44.243346000 -0500
+++ contrib/misc/bsmc/CMakeLists.txt 2023-04-07 17:33:04.594841000 -0500
@@ -27,7 +27,7 @@
)
install(
- FILES etc/bareos/bsmc.conf
+ FILES etc/bareos/bsmc.conf.sample
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ
DESTINATION "${confdir}"
)
@@ -0,0 +1,27 @@
--- contrib/CMakeLists.txt 2023-03-24 08:05:20.000000000 -0500
+++ contrib/CMakeLists.txt 2023-04-07 17:52:51.095371000 -0500
@@ -24,10 +24,18 @@
include(GNUInstallDirs)
include(BareosSetVariableDefaults)
-add_subdirectory(fd-plugins)
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
- add_subdirectory(misc)
-endif()
-if(NOT client-only)
- add_subdirectory(dir-plugins)
+if(python)
+ if(client-only)
+ add_subdirectory(fd-plugins)
+ endif()
+
+ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+ if(client-only)
+ add_subdirectory(misc)
+ endif()
+ endif()
+
+ if(NOT client-only)
+ add_subdirectory(dir-plugins)
+ endif()
endif()
@@ -0,0 +1,41 @@
--- core/CMakeLists.txt 2023-12-13 17:44:47.000000000 -0500
+++ core/CMakeLists.txt 2024-01-10 01:25:40.807505000 -0500
@@ -333,7 +333,9 @@
set(HAVE_FREEBSD_OS 1)
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
- link_libraries(intl)
+ if(nls)
+ link_libraries(intl)
+ endif()
check_cxx_compiler_flag(
-Wunused-but-set-variable compiler_will_warn_of_unused_but_set_variable
)
@@ -386,7 +388,9 @@
add_definitions("-D_FILE_OFFSET_BITS=64")
endif()
-include(FindIntl)
+if(nls)
+ include(FindIntl)
+endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall -Wextra")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra")
@@ -400,7 +404,7 @@
include(BareosFindStaticCodeAnalysisTools)
if(NOT client-only
- AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS"
+ AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS|FreeBSD"
AND CMAKE_SIZEOF_VOID_P EQUAL 8
)
# droplet does not build on solaris because of sys/cdefs.h: No such file or
@@ -777,7 +781,6 @@
include(BareosConfigureFile)
-add_subdirectory(platforms)
add_subdirectory(src)
add_subdirectory(scripts)
add_subdirectory(manpages)
@@ -0,0 +1,12 @@
--- core/cmake/BareosCheckIncludes.cmake 2023-03-24 08:05:20.000000000 -0500
+++ core/cmake/BareosCheckIncludes.cmake 2023-04-05 16:17:56.933566000 -0500
@@ -62,7 +62,9 @@
include(CheckSymbolExists)
+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)
@@ -0,0 +1,12 @@
--- core/cmake/BareosFindAllLibraries.cmake 2023-03-24 08:05:20.000000000 -0500
+++ core/cmake/BareosFindAllLibraries.cmake 2023-04-05 16:21:00.503424000 -0500
@@ -177,7 +177,9 @@
bareosfindlibraryandheaders("pthread" "pthread.h" "")
bareosfindlibraryandheaders("cap" "sys/capability.h" "")
+if(gfapi)
bareosfindlibraryandheaders("gfapi" "glusterfs/api/glfs.h" "")
+endif()
bareosfindlibraryandheaders("pam" "security/pam_appl.h" "")
@@ -0,0 +1,118 @@
--- core/cmake/BareosInstallConfigFiles.cmake 2023-12-13 07:48:37.000000000 -0500
+++ core/cmake/BareosInstallConfigFiles.cmake 2024-01-05 01:02:51.562611000 -0500
@@ -27,27 +27,13 @@
endif()
get_filename_component(fname ${configfile} NAME)
- if(EXISTS ${DESTCONFDIR}${additionalconfigdir}/${fname})
- message(
- STATUS "${DESTCONFDIR}${additionalconfigdir}/${fname} already exists"
- )
- message(
- STATUS
- "Installing config: ${DESTCONFDIR}${additionalconfigdir}/${fname}.new"
- )
- file(RENAME "${configfile}" "${configfile}.new")
- file(COPY "${configfile}.new"
- DESTINATION "${DESTCONFDIR}${additionalconfigdir}"
- )
- file(RENAME "${configfile}.new" "${configfile}")
- else()
- message(
- STATUS "Installing config: ${DESTCONFDIR}${additionalconfigdir}/${fname}"
- )
- file(COPY "${configfile}"
- DESTINATION "${DESTCONFDIR}${additionalconfigdir}"
- )
- endif()
+
+ message(STATUS "${DESTCONFDIR}${additionalconfigdir}/${fname} as ${DESTCONFDIR}${additionalconfigdir}/${fname}.sample (new installation)")
+ file(RENAME "${configfile}" "${configfile}.sample")
+ file(
+ COPY "${configfile}.sample"
+ DESTINATION "${DESTCONFDIR}${additionalconfigdir}"
+ )
endfunction()
macro(BareosInstallConfigFiles CONFDIR CONFIGBASEDIRECTORY PLUGINS BACKENDS
@@ -125,23 +111,12 @@
get_filename_component(dir ${configfile} DIRECTORY)
get_filename_component(fname ${configfile} NAME)
- if(EXISTS ${DESTCONFDIR}/${configfile})
- message(STATUS "${configfile} as ${configfile}.new (keep existing)")
- file(RENAME "${BackendConfigSrcDir}/${configfile}"
- "${BackendConfigSrcDir}/${configfile}.new"
- )
- file(COPY "${BackendConfigSrcDir}/${configfile}.new"
- DESTINATION "${DESTCONFDIR}/${dir}"
- )
- file(RENAME "${BackendConfigSrcDir}/${configfile}.new"
- "${BackendConfigSrcDir}/${configfile}"
- )
- else()
- message(STATUS "${configfile} as ${configfile}")
- file(COPY "${BackendConfigSrcDir}/${configfile}"
- DESTINATION "${DESTCONFDIR}/${dir}"
- )
- endif()
+ message(STATUS "${configfile} as ${configfile}.sample")
+ file(RENAME "${BackendConfigSrcDir}/${configfile}" "${BackendConfigSrcDir}/${configfile}.sample")
+ file(
+ COPY "${BackendConfigSrcDir}/${configfile}.sample"
+ DESTINATION "${DESTCONFDIR}/${dir}"
+ )
endforeach()
file(
@@ -151,7 +126,8 @@
)
foreach(configfile ${configfiles})
get_filename_component(dir ${configfile} DIRECTORY)
- # get_filename_component(fname ${configfile} NAME)
+ get_filename_component(fname ${configfile} NAME)
+ get_filename_component(fsname ${configfile} NAME_WE)
if(EXISTS ${DESTCONFDIR}/${configfile})
message(STATUS "overwriting ${configfile}")
@@ -159,8 +135,10 @@
message(STATUS "${configfile} as ${configfile}")
endif()
- file(COPY "${BackendConfigSrcDir}/${configfile}"
- DESTINATION "${DESTCONFDIR}/${dir}"
+ file(RENAME "${BackendConfigSrcDir}/${configfile}" "${BackendConfigSrcDir}/${fsname}.conf.sample")
+ file(
+ COPY "${BackendConfigSrcDir}/${fsname}.conf.sample"
+ DESTINATION "${DESTCONFDIR}/${dir}"
)
endforeach()
@@ -188,20 +166,13 @@
string(REGEX MATCH "\\.in\$" IS_INFILE ${configfile})
if(NOT "${IS_INFILE}" STREQUAL ".in")
get_filename_component(fname ${configfile} NAME)
- if(EXISTS ${DESTCONFDIR}/${resname}/${fname})
- message(
- STATUS
- "${resname}/${fname} as ${resname}/${fname}.new (keep existing)"
- )
- file(RENAME "${configfile}" "${configfile}.new")
- file(COPY "${configfile}.new"
- DESTINATION "${DESTCONFDIR}/${resname}"
- )
- file(RENAME "${configfile}.new" "${configfile}")
- else()
- message(STATUS "${resname}/${fname} as ${resname}/${fname}")
- file(COPY "${configfile}" DESTINATION "${DESTCONFDIR}/${resname}")
- endif()
+ get_filename_component(fsname ${configfile} NAME_WE)
+ message(STATUS "${resname}/${fname} as ${resname}/${fname}")
+ file(RENAME "${configfile}" "${resdir}/${fsname}.conf.sample")
+ file(
+ COPY "${resdir}/${fsname}.conf.sample"
+ DESTINATION "${DESTCONFDIR}/${resname}"
+ )
else()
message(STATUS "skipping .in file ${configfile}:${IS_INFILE}")
endif()
@@ -0,0 +1,16 @@
--- core/manpages/CMakeLists.txt 2021-12-21 06:00:49.000000000 -0500
+++ core/manpages/CMakeLists.txt 2021-12-22 00:19:52.189513000 -0500
@@ -18,9 +18,11 @@
# 02110-1301, USA.
message("Entering ${CMAKE_CURRENT_SOURCE_DIR}")
-set(MAN1 bconsole.1 bsmtp.1)
+if(client-only)
+ set(MAN1 bconsole.1 bsmtp.1)
-set(MAN8 bareos-fd.8 bareos.8 btraceback.8)
+ set(MAN8 bareos-fd.8 bareos.8 btraceback.8)
+endif()
if(NOT client-only)
set(MAN1-server bareos-tray-monitor.1 bwild.1 bregex.1)
@@ -0,0 +1,75 @@
--- core/scripts/CMakeLists.txt 2023-12-13 17:44:47.000000000 -0500
+++ core/scripts/CMakeLists.txt 2024-01-10 01:38:45.931532000 -0500
@@ -18,41 +18,44 @@
# 02110-1301, USA.
message("Entering ${CMAKE_CURRENT_SOURCE_DIR}")
-install(
- FILES bareos btraceback
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE
- DESTINATION "${sbindir}"
-)
+if(client-only)
+ install(
+ FILES bareos btraceback
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ DESTINATION "${sbindir}"
+ )
-install(
- FILES bareos-ctl-fd
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE
- DESTINATION "${scriptdir}"
- COMPONENT filedaemon
-)
+ install(
+ FILES bareos-ctl-fd
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ DESTINATION "${scriptdir}"
+ COMPONENT filedaemon
+ )
-install(
- FILES bareos bareos-config
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE
- DESTINATION "${scriptdir}"
-)
-
-install(
- FILES bareos-config-lib.sh bareos-ctl-funcs btraceback.gdb btraceback.dbx
- btraceback.mdb
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- DESTINATION "${scriptdir}"
-)
-if(TARGET python3-fd)
install(
- FILES bareos_encode_string.py
+ FILES bareos bareos-config
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
DESTINATION "${scriptdir}"
)
+
+ install(
+ FILES bareos-config-lib.sh bareos-ctl-funcs btraceback.gdb btraceback.dbx
+ btraceback.mdb
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ DESTINATION "${scriptdir}"
+ )
+
+ if(TARGET python3-fd)
+ install(
+ FILES bareos_encode_string.py
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ DESTINATION "${scriptdir}"
+ )
+ endif()
endif()
if(NOT client-only)
@@ -0,0 +1,20 @@
--- core/src/dird/CMakeLists.txt 2023-12-13 17:44:47.000000000 -0500
+++ core/src/dird/CMakeLists.txt 2024-01-10 01:43:08.391137000 -0500
@@ -160,7 +160,7 @@
target_sources(bareos-dir PRIVATE dird.cc)
target_link_libraries(
- bareos-dir PRIVATE dird_objects bareossql bareosfind CLI11::CLI11
+ bareos-dir PRIVATE ${JANSSON_LIBRARIES} dird_objects bareossql bareosfind CLI11::CLI11
)
if(HAVE_WIN32)
@@ -185,7 +185,7 @@
add_executable(bareos-dbcheck ${DBCHKSRCS})
target_link_libraries(
- bareos-dbcheck PRIVATE bareossql bareos bareosfind ${OPENSSL_LIBRARIES}
+ bareos-dbcheck PRIVATE ${JANSSON_LIBRARIES} bareossql bareos bareosfind ${OPENSSL_LIBRARIES}
CLI11::CLI11
)
@@ -0,0 +1,11 @@
--- core/src/dird/vbackup.cc 2023-04-07 16:02:23.780510000 -0500
+++ core/src/dird/vbackup.cc 2023-04-07 16:10:20.351116000 -0500
@@ -77,7 +77,7 @@
std::vector<std::string> JobList;
std::vector<std::string> JobsWithPurgedFiles;
- bool operator()(int num_fields, char** row)
+ bool operator()([[maybe_unused]] int num_fields, char** row)
{
assert(num_fields == 5);
JobList.push_back(row[col_JobId]);

Some files were not shown because too many files have changed in this diff Show More