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 + +.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 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 +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 , 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 < [slot] [tape-device] [drive-index] + +Commands (): + unload Unload a tape into the slot from where it was loaded + load Load a tape from the slot (1-based) + transfer Transfer a tape from the slot to + the slot (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() ++if(cephfs) ++ bareosfindlibraryandheaders("cephfs" "cephfs/libcephfs.h" "") ++endif() + bareosfindlibraryandheaders("pthread" "pthread.h" "") + bareosfindlibraryandheaders("cap" "sys/capability.h" "") +-bareosfindlibraryandheaders("gfapi" "glusterfs/api/glfs.h" "") ++if(gfapi) ++ bareosfindlibraryandheaders("gfapi" "glusterfs/api/glfs.h" "") ++endif() + + bareosfindlibraryandheaders("pam" "security/pam_appl.h" "") + diff --git a/sysutils/bareos20-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake b/sysutils/bareos20-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake new file mode 100644 index 000000000000..63a6f9eec824 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake @@ -0,0 +1,112 @@ +--- core/cmake/BareosInstallConfigFiles.cmake 2020-12-16 02:46:16.000000000 -0500 ++++ core/cmake/BareosInstallConfigFiles.cmake 2020-12-23 22:41:21.832081000 -0500 +@@ -55,20 +55,12 @@ + get_filename_component(resname ${resdir} NAME) + foreach(configfile ${configfiles}) + get_filename_component(fname ${configfile} NAME) +- if(EXISTS ${DESTCONFDIR}/${resname}/${fname}) +- message(STATUS "${DESTCONFDIR}/${resname}/${fname} exists") +- message(STATUS "rename ${configfile} to ${configfile}.new") +- file(RENAME "${configfile}" "${configfile}.new") +- +- message(STATUS "copy ${configfile}.new to ${DESTCONFDIR}/${resname}") +- file(COPY "${configfile}.new" DESTINATION "${DESTCONFDIR}/${resname}") +- file(RENAME "${configfile}.new" "${configfile}") +- else() +- message( +- STATUS "${resname}/${fname} as ${resname}/${fname} (new installation)" +- ) +- file(COPY "${configfile}" DESTINATION "${DESTCONFDIR}/${resname}") +- endif() ++ message(STATUS "${resname}/${fname} as ${resname}/${fname}.sample (new installation)") ++ file(RENAME "${configfile}" "${configfile}.sample") ++ file( ++ COPY "${configfile}.sample" ++ DESTINATION "${DESTCONFDIR}/${resname}" ++ ) + endforeach() + endforeach() + +@@ -104,23 +96,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}") ++ file(RENAME "${BackendConfigSrcDir}/${configfile}" "${BackendConfigSrcDir}/${configfile}.sample") ++ file( ++ COPY "${BackendConfigSrcDir}/${configfile}.sample" ++ DESTINATION "${DESTCONFDIR}/${dir}" ++ ) + endforeach() + + file( +@@ -130,7 +111,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}") +@@ -138,9 +120,11 @@ + 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() + + endforeach() +@@ -167,20 +151,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() diff --git a/sysutils/bareos20-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake b/sysutils/bareos20-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake new file mode 100644 index 000000000000..935c5a5b3177 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake @@ -0,0 +1,15 @@ +--- core/cmake/BareosSetVariableDefaults.cmake 2020-01-31 16:21:15.864122000 -0500 ++++ core/cmake/BareosSetVariableDefaults.cmake 2020-01-31 16:23:58.960984000 -0500 +@@ -641,7 +641,11 @@ + set(PACKAGE_URL "\"\"") + set(PACKAGE_VERSION "\"${BAREOS_NUMERIC_VERSION}\"") + +-set(ENABLE_NLS 1) ++if(nls) ++ SET(ENABLE_NLS 1) ++else() ++ SET(ENABLE_NLS 0) ++endif() + + if(HAVE_WIN32) + diff --git a/sysutils/bareos20-server/files/patch-core-manpages_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-manpages_CMakeLists.txt new file mode 100644 index 000000000000..1a78d64effb1 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-manpages_CMakeLists.txt @@ -0,0 +1,14 @@ +--- core/manpages/CMakeLists.txt 2020-01-31 11:21:18.000000000 -0500 ++++ core/manpages/CMakeLists.txt 2020-01-31 15:33:19.205416000 -0500 +@@ -17,9 +17,11 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + # 02110-1301, USA. + ++if(client-only) + set(MAN1 bconsole.1) + + set(MAN8 bareos-fd.8 bareos.8) ++endif() + + if(NOT client-only) + set(MAN1-server diff --git a/sysutils/bareos20-server/files/patch-core-scripts_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-scripts_CMakeLists.txt new file mode 100644 index 000000000000..ae7fd0295cdf --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-scripts_CMakeLists.txt @@ -0,0 +1,59 @@ +--- core/scripts/CMakeLists.txt 2020-01-31 11:21:18.000000000 -0500 ++++ core/scripts/CMakeLists.txt 2020-01-31 15:37:16.832224000 -0500 +@@ -17,33 +17,35 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + # 02110-1301, USA. + +-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 btraceback.gdb btraceback.dbx btraceback.mdb bareos-config +- bareos-config-lib.sh bareos-ctl-funcs +- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE +- WORLD_READ WORLD_EXECUTE +- DESTINATION "${scriptdir}" +-) ++ install( ++ FILES bareos btraceback.gdb btraceback.dbx btraceback.mdb bareos-config ++ bareos-config-lib.sh bareos-ctl-funcs ++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE ++ WORLD_READ WORLD_EXECUTE ++ DESTINATION "${scriptdir}" ++ ) ++endif() + + if(NOT client-only) + install( + FILES mtx-changer disk-changer bareos-explorer bareos-glusterfind-wrapper +- bareos-ctl-dir bareos-ctl-sd bareos-ctl-funcs ++ bareos-ctl-dir bareos-ctl-sd + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE + DESTINATION "${scriptdir}" diff --git a/sysutils/bareos20-server/files/patch-core-src-dird-dbcopy_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src-dird-dbcopy_CMakeLists.txt new file mode 100644 index 000000000000..1c8609187951 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-dird-dbcopy_CMakeLists.txt @@ -0,0 +1,12 @@ +--- core/src/dird/dbcopy/CMakeLists.txt 2020-12-16 02:46:16.000000000 -0500 ++++ core/src/dird/dbcopy/CMakeLists.txt 2020-12-23 22:44:13.161935000 -0500 +@@ -33,7 +33,8 @@ + ) + target_link_libraries( + bareos-dbcopy bareos dird_objects bareosfind bareoscats bareossql +- $<$:${PAM_LIBRARIES}> ${LMDB_LIBS} ++ $<$:${PAM_LIBRARIES}> ${LMDB_LIBS} ++ ${OPENSSL_LIBRARIES} ${PTHREAD_LIBRARIES} ${JANSSON_LIBRARIES} + ) + + install(TARGETS bareos-dbcopy DESTINATION "${sbindir}") diff --git a/sysutils/bareos20-server/files/patch-core-src-dird_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src-dird_CMakeLists.txt new file mode 100644 index 000000000000..a41310367062 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-dird_CMakeLists.txt @@ -0,0 +1,21 @@ +--- core/src/dird/CMakeLists.txt 2020-01-31 11:21:18.000000000 -0500 ++++ core/src/dird/CMakeLists.txt 2020-01-31 15:41:53.134935000 -0500 +@@ -148,7 +148,8 @@ + add_executable(bareos-dir ${DIRDSRCS}) + + set(BAREOS_DIR_LIBRARIES dird_objects bareos bareoscats bareossql bareosfind +- ${LMDB_LIBS} ${NDMP_LIBS} ++ ${LMDB_LIBS} ${NDMP_LIBS} ${OPENSSL_LIBRARIES} ++ ${PTHREAD_LIBRARIES} ${JANSSON_LIBRARIES} + ) + + if(HAVE_WIN32) +@@ -166,7 +167,7 @@ + add_executable(bareos-dbcheck ${DBCHKSRCS}) + set(DBCHECK_LIBRARIES bareossql bareos bareosfind bareoscats) + +-target_link_libraries(bareos-dbcheck ${DBCHECK_LIBRARIES}) ++target_link_libraries(bareos-dbcheck ${DBCHECK_LIBRARIES} ${OPENSSL_LIBRARIES} ${PTHREAD_LIBRARIES} ${JANSSON_LIBRARIES}) + + # is not built by default + diff --git a/sysutils/bareos20-server/files/patch-core-src-include_baconfig.h b/sysutils/bareos20-server/files/patch-core-src-include_baconfig.h new file mode 100644 index 000000000000..21afd978730d --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-include_baconfig.h @@ -0,0 +1,25 @@ +--- core/src/include/baconfig.h 2020-12-16 02:46:16.000000000 -0500 ++++ core/src/include/baconfig.h 2020-12-23 22:47:40.992698000 -0500 +@@ -103,11 +103,11 @@ + # define N_(s) (s) + # endif /* N_ */ + #else /* !ENABLE_NLS */ ++# include + # undef _ + # undef N_ + # undef textdomain + # undef bindtextdomain +-# undef setlocale + + # ifndef _ + # define _(s) (s) +@@ -120,9 +120,6 @@ + # endif + # ifndef bindtextdomain + # define bindtextdomain(p, d) +-# endif +-# ifndef setlocale +-# define setlocale(p, d) + # endif + #endif /* ENABLE_NLS */ + diff --git a/sysutils/bareos20-server/files/patch-core-src-plugins-filed_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src-plugins-filed_CMakeLists.txt new file mode 100644 index 000000000000..ccb41fb15e8c --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-plugins-filed_CMakeLists.txt @@ -0,0 +1,13 @@ +--- core/src/plugins/filed/CMakeLists.txt 2020-12-16 02:46:16.000000000 -0500 ++++ core/src/plugins/filed/CMakeLists.txt 2020-12-23 22:56:13.843714000 -0500 +@@ -41,7 +41,9 @@ + + include_directories(${OPENSSL_INCLUDE_DIR}) + +-add_subdirectory(python) ++if(python) ++ add_subdirectory(python) ++endif() + + add_library(bpipe-fd MODULE bpipe/bpipe-fd.cc) + set_target_properties(bpipe-fd PROPERTIES PREFIX "") diff --git a/sysutils/bareos20-server/files/patch-core-src-plugins-stored_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src-plugins-stored_CMakeLists.txt new file mode 100644 index 000000000000..3dc59542df60 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-plugins-stored_CMakeLists.txt @@ -0,0 +1,13 @@ +--- core/src/plugins/stored/CMakeLists.txt 2020-02-01 12:41:50.658146000 -0500 ++++ core/src/plugins/stored/CMakeLists.txt 2020-02-01 12:43:09.372433000 -0500 +@@ -27,6 +27,10 @@ + ${PROJECT_SOURCE_DIR}/src/win32/plugins/python/lib/${WINDOWS_BITS} + ) + add_definitions(-DMS_WIN${WINDOWS_BITS}) ++else() ++ include_directories( ++ ${PROJECT_SOURCE_DIR}/src/fastlz/include ++ ) + endif() + + add_library(autoxflate-sd MODULE autoxflate-sd.cc) diff --git a/sysutils/bareos20-server/files/patch-core-src-stored_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src-stored_CMakeLists.txt new file mode 100644 index 000000000000..74eae67e2482 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src-stored_CMakeLists.txt @@ -0,0 +1,32 @@ +--- core/src/stored/CMakeLists.txt 2020-12-16 02:46:16.000000000 -0500 ++++ core/src/stored/CMakeLists.txt 2021-02-19 16:15:32.925944000 -0500 +@@ -226,23 +226,23 @@ + list(APPEND BAREOS_SD_LIBRARIES comctl32) + endif() + +-target_link_libraries(bareos-sd stored_objects ${BAREOS_SD_LIBRARIES}) ++target_link_libraries(bareos-sd stored_objects ${BAREOS_SD_LIBRARIES} ${JANSSON_LIBRARIES} ${PTHREAD_LIBRARIES}) + + add_executable(bls ${BLSSRCS}) +-target_link_libraries(bls bareos bareossd bareosfind) ++target_link_libraries(bls bareos bareossd bareosfind ${PTHREAD_LIBRARIES}) + + add_executable(bextract ${BEXTRACTSRS}) +-target_link_libraries(bextract bareossd bareosfind bareos) ++target_link_libraries(bextract bareossd bareosfind bareos ${JANSSON_LIBRARIES} ${PTHREAD_LIBRARIES}) + + add_executable(bscan ${BSCANSRCS}) +-target_link_libraries(bscan bareos bareossd bareosfind bareossql bareoscats) ++target_link_libraries(bscan bareos bareossd bareosfind bareossql bareoscats ${PTHREAD_LIBRARIES}) + + add_executable(btape ${BTAPESRCS}) +-target_link_libraries(btape bareossd bareos) ++target_link_libraries(btape bareossd bareos ${JANSSON_LIBRARIES} ${PTHREAD_LIBRARIES}) + + add_executable(bcopy ${BCOPYSRCS}) + +-target_link_libraries(bcopy bareossd bareos) ++target_link_libraries(bcopy bareossd bareos ${JANSSON_LIBRARIES} ${PTHREAD_LIBRARIES}) + + install(TARGETS bareossd DESTINATION ${libdir}) + diff --git a/sysutils/bareos20-server/files/patch-core-src_CMakeLists.txt b/sysutils/bareos20-server/files/patch-core-src_CMakeLists.txt new file mode 100644 index 000000000000..cc7934fbe920 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core-src_CMakeLists.txt @@ -0,0 +1,38 @@ +--- core/src/CMakeLists.txt 2020-12-16 02:46:16.000000000 -0500 ++++ core/src/CMakeLists.txt 2020-12-27 00:51:12.356192000 -0500 +@@ -18,7 +18,9 @@ + # 02110-1301, USA. + message("Entering ${CMAKE_CURRENT_SOURCE_DIR}") + +-add_subdirectory(filed) ++if(client-only) ++ add_subdirectory(filed) ++endif() + + if(NOT client-only) + add_subdirectory(tools) +@@ -43,14 +45,18 @@ + add_subdirectory(tests) + endif() + +-add_subdirectory(console) +-if(${HAVE_LMDB}) +- add_subdirectory(lmdb) ++if(client-only) ++ add_subdirectory(console) ++ if(${HAVE_LMDB}) ++ add_subdirectory(lmdb) ++ endif() ++ add_subdirectory(lib) ++ add_subdirectory(findlib) ++ add_subdirectory(fastlz) + endif() +-add_subdirectory(lib) +-add_subdirectory(findlib) ++ + add_subdirectory(plugins) +-add_subdirectory(fastlz) ++ + if(${traymonitor}) + add_subdirectory(qt-tray-monitor) + endif() diff --git a/sysutils/bareos20-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake b/sysutils/bareos20-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake new file mode 100644 index 000000000000..bf079968d9d4 --- /dev/null +++ b/sysutils/bareos20-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake @@ -0,0 +1,36 @@ +--- core/cmake/bareos-symlink-default-db-backend.cmake.orig 2020-12-11 13:44:43 UTC ++++ core/cmake/bareos-symlink-default-db-backend.cmake +@@ -16,13 +16,31 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + # 02110-1301, USA. ++ ++# The ${libdir} and ${backenddir} are absolute, so figure out ++# a relative path (${backenddir} lives under ${libdir}) instead. ++# Make the link relative, placing the libbareoscats.so in ${libdir}. ++# Within this script, VERSION is set to BAREOS_NUMERIC_VERSION (see ++# core/src/cats/CMakeLists.txt). + message( + STATUS + "${CMAKE_COMMAND} -E create_symlink ${libdir}/libbareoscats${CMAKE_SHARED_LIBRARY_SUFFIX} ${backenddir}/libbareoscats-${default_db_backend}${CMAKE_SHARED_LIBRARY_SUFFIX}" + ) ++file( ++ RELATIVE_PATH ++ _rel ++ ${libdir} ++ ${backenddir}/libbareoscats-${default_db_backend}${CMAKE_SHARED_LIBRARY_SUFFIX} ++) ++message( ++ STATUS ++ ".. actually ${_rel} in $ENV{DESTDIR} v ${VERSION}" ++) ++ + execute_process( + COMMAND + ${CMAKE_COMMAND} -E create_symlink +- ${backenddir}/libbareoscats-${default_db_backend}${CMAKE_SHARED_LIBRARY_SUFFIX} +- ${libdir}/libbareoscats${CMAKE_SHARED_LIBRARY_SUFFIX}.${BAREOS_NUMERIC_VERSION} ++ ${_rel} ++ libbareoscats${CMAKE_SHARED_LIBRARY_SUFFIX}.${VERSION} ++ WORKING_DIRECTORY $ENV{DESTDIR}${libdir} COMMAND_ECHO STDOUT + ) diff --git a/sysutils/bareos20-server/files/pkg-deinstall.client.in b/sysutils/bareos20-server/files/pkg-deinstall.client.in new file mode 100644 index 000000000000..3be8c2e4874c --- /dev/null +++ b/sysutils/bareos20-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=%%BAREOS_USER%% +GROUP=%%BAREOS_GROUP%% +UID=%%BAREOS_UID%% +GID=%%BAREOS_UID%% +BACULA_DIR=%%BAREOS_DIR%% + +TMPFILE=/tmp/services-$RANDOM-$$ + +case "$2" in +"DEINSTALL") + # Delete entries in /etc/services + sed -e '/# Bareos port start/,/# Bareos port end/{' \ + -e 'd' \ + -e '}' /etc/services > $TMPFILE + mv -f $TMPFILE /etc/services + + if [ -d ${BAREOS_DIR} ]; then + echo "Check if ${BAREOS_DIR} is empty and delete it to permanently remove the bareos port." + fi + + if pw groupshow "${USER}" 2>/dev/null 1>&2; then + echo "To delete Bareos group permanently, use 'pw groupdel ${GROUP}'" + fi + ;; +esac diff --git a/sysutils/bareos20-server/files/pkg-install.client.in b/sysutils/bareos20-server/files/pkg-install.client.in new file mode 100644 index 000000000000..70ca57028237 --- /dev/null +++ b/sysutils/bareos20-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 "bareos-dir" /etc/services +if [ "$?" != "0" ]; then + echo "# Bareos port start +bareos-dir 9101/tcp #Bareos director daemon +bareos-fd 9102/tcp #Bareos file daemon +bareos-sd 9103/tcp #Bareos storage daemon +# Bareos port end" >> /etc/services +fi diff --git a/sysutils/bareos20-server/files/pkg-message.client.in b/sysutils/bareos20-server/files/pkg-message.client.in new file mode 100644 index 000000000000..b3e2d5825e13 --- /dev/null +++ b/sysutils/bareos20-server/files/pkg-message.client.in @@ -0,0 +1,17 @@ +[ +{ type: install + message: < diff --git a/www/bareos20-webui/distinfo b/www/bareos20-webui/distinfo new file mode 100644 index 000000000000..c15a2942580a --- /dev/null +++ b/www/bareos20-webui/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1636162056 +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/www/bareos20-webui/files/pkg-message.in b/www/bareos20-webui/files/pkg-message.in new file mode 100644 index 000000000000..ec5adb592717 --- /dev/null +++ b/www/bareos20-webui/files/pkg-message.in @@ -0,0 +1,19 @@ +[ +{ type: install + message: <