From deb2a552d42969ca2ab58ef55a0fd04d4ca3d3f6 Mon Sep 17 00:00:00 2001 From: Jose Alonso Cardenas Marquez Date: Mon, 10 Apr 2023 15:20:06 -0500 Subject: [PATCH] sysutils/bareos21-*: Copy bareos-* ports to bareos21-* - Update to 21.1.7 - sysutils/bareos-* ports will be updated to 22.0.3 --- sysutils/Makefile | 3 + sysutils/bareos21-client/Makefile | 22 ++ sysutils/bareos21-server/Makefile | 241 ++++++++++++++++++ sysutils/bareos21-server/Makefile.common | 38 +++ sysutils/bareos21-server/distinfo | 3 + .../bareos21-server/files/bareos-barcodes | 51 ++++ sysutils/bareos21-server/files/bareos-dir.in | 55 ++++ sysutils/bareos21-server/files/bareos-fd.in | 46 ++++ sysutils/bareos21-server/files/bareos-sd.in | 37 +++ sysutils/bareos21-server/files/chio-bareos | 190 ++++++++++++++ .../files/patch-core-CMakeLists.txt | 41 +++ ...patch-core-cmake_BareosCheckIncludes.cmake | 39 +++ ...ch-core-cmake_BareosFindAllLibraries.cmake | 25 ++ ...-core-cmake_BareosInstallConfigFiles.cmake | 112 ++++++++ ...core-cmake_BareosSetVariableDefaults.cmake | 15 ++ .../files/patch-core-manpages_CMakeLists.txt | 16 ++ .../files/patch-core-scripts_CMakeLists.txt | 64 +++++ .../files/patch-core-src-dird_CMakeLists.txt | 20 ++ .../files/patch-core-src-dird_catreq.cc | 29 +++ .../files/patch-core-src-include_baconfig.h | 25 ++ ...atch-core-src-plugins-filed_CMakeLists.txt | 13 + ...tch-core-src-plugins-stored_CMakeLists.txt | 15 ++ .../patch-core-src-stored_CMakelists.txt | 20 ++ .../files/patch-core-src-tests_CMakeLists.txt | 63 +++++ .../files/patch-core-src_CMakeLists.txt | 51 ++++ ...ke_bareos-symlink-default-db-backend.cmake | 36 +++ .../files/pkg-deinstall.client.in | 30 +++ .../files/pkg-install.client.in | 13 + .../files/pkg-message.client.in | 17 ++ .../files/pkg-message.server.in | 74 ++++++ sysutils/bareos21-server/pkg-descr | 4 + sysutils/bareos21-server/pkg-plist | 171 +++++++++++++ sysutils/bareos21-server/pkg-plist.client | 86 +++++++ sysutils/bareos21-traymonitor/Makefile | 28 ++ sysutils/bareos21-traymonitor/pkg-descr | 6 + sysutils/bareos21-traymonitor/pkg-plist | 7 + 36 files changed, 1706 insertions(+) create mode 100644 sysutils/bareos21-client/Makefile create mode 100644 sysutils/bareos21-server/Makefile create mode 100644 sysutils/bareos21-server/Makefile.common create mode 100644 sysutils/bareos21-server/distinfo create mode 100644 sysutils/bareos21-server/files/bareos-barcodes create mode 100644 sysutils/bareos21-server/files/bareos-dir.in create mode 100644 sysutils/bareos21-server/files/bareos-fd.in create mode 100644 sysutils/bareos21-server/files/bareos-sd.in create mode 100644 sysutils/bareos21-server/files/chio-bareos create mode 100644 sysutils/bareos21-server/files/patch-core-CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-cmake_BareosCheckIncludes.cmake create mode 100644 sysutils/bareos21-server/files/patch-core-cmake_BareosFindAllLibraries.cmake create mode 100644 sysutils/bareos21-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake create mode 100644 sysutils/bareos21-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake create mode 100644 sysutils/bareos21-server/files/patch-core-manpages_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-scripts_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src-dird_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src-dird_catreq.cc create mode 100644 sysutils/bareos21-server/files/patch-core-src-include_baconfig.h create mode 100644 sysutils/bareos21-server/files/patch-core-src-plugins-filed_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src-plugins-stored_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src-stored_CMakelists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src-tests_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core-src_CMakeLists.txt create mode 100644 sysutils/bareos21-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake create mode 100644 sysutils/bareos21-server/files/pkg-deinstall.client.in create mode 100644 sysutils/bareos21-server/files/pkg-install.client.in create mode 100644 sysutils/bareos21-server/files/pkg-message.client.in create mode 100644 sysutils/bareos21-server/files/pkg-message.server.in create mode 100644 sysutils/bareos21-server/pkg-descr create mode 100644 sysutils/bareos21-server/pkg-plist create mode 100644 sysutils/bareos21-server/pkg-plist.client create mode 100644 sysutils/bareos21-traymonitor/Makefile create mode 100644 sysutils/bareos21-traymonitor/pkg-descr create mode 100644 sysutils/bareos21-traymonitor/pkg-plist diff --git a/sysutils/Makefile b/sysutils/Makefile index 469ded0ad633..34461c48677d 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -112,6 +112,9 @@ SUBDIR += bareos20-client SUBDIR += bareos20-server SUBDIR += bareos20-traymonitor + SUBDIR += bareos21-client + SUBDIR += bareos21-server + SUBDIR += bareos21-traymonitor SUBDIR += barrier SUBDIR += bashtop SUBDIR += bastille diff --git a/sysutils/bareos21-client/Makefile b/sysutils/bareos21-client/Makefile new file mode 100644 index 000000000000..0b96d1f4709c --- /dev/null +++ b/sysutils/bareos21-client/Makefile @@ -0,0 +1,22 @@ +PORTNAME= bareos +PKGNAMESUFFIX= 21-client + +COMMENT= Backup archiving recovery open sourced (client) + +CONFLICTS= bareos20-client bareos19-client bareos18-client + +WITH_CLIENT_ONLY=yes +USE_RC_SUBR= bareos-fd + +PLIST= ${PKGDIR}/pkg-plist.client +MASTERDIR= ${.CURDIR}/../../sysutils/bareos21-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/bareos21-server/Makefile b/sysutils/bareos21-server/Makefile new file mode 100644 index 000000000000..29feacab8afa --- /dev/null +++ b/sysutils/bareos21-server/Makefile @@ -0,0 +1,241 @@ +PORTNAME= bareos +DISTVERSIONPREFIX= Release/ +DISTVERSION= 21.1.7 +PORTREVISION?= 0 +CATEGORIES?= sysutils +PKGNAMEPREFIX?= # +PKGNAMESUFFIX?= 21-server + +MAINTAINER= acm@FreeBSD.org +COMMENT?= Backup archiving recovery open sourced (server) +WWW= https://www.bareos.org/ + +LICENSE= AGPLv3 LGPL3 +LICENSE_COMB= multi + +CONFLICTS?= bareos-server bareos20-server bareos19-server bareos18-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 + +CFLAGS+= -Wno-error +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} == "21-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= 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} == "21-client" || ${PKGNAMESUFFIX} == "21-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/bareos21-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 + +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} '120,123d' ${WRKSRC}/CMakeLists.txt +.if ${PKGNAMESUFFIX} == "21-server" + @${REINPLACE_CMD} '51d' ${WRKSRC}/core/src/plugins/CMakeLists.txt +.endif +.if ${PKGNAMESUFFIX} == "21-client" + @${REINPLACE_CMD} -e 's|-Werror -Wall|-Wall|g' ${PATCH_WRKSRC}/core/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 +.endif + @${MKDIR} ${STAGEDIR}/var/run/bareos +.endif +.else +.include "${MASTERDIR}/Makefile.common" +.endif # -client and -server are defined +.include diff --git a/sysutils/bareos21-server/Makefile.common b/sysutils/bareos21-server/Makefile.common new file mode 100644 index 000000000000..efd76eea1dfe --- /dev/null +++ b/sysutils/bareos21-server/Makefile.common @@ -0,0 +1,38 @@ +post-patch: + @${REINPLACE_CMD} '76,79d' ${WRKSRC}/CMakeLists.txt +.if ${PKGNAMESUFFIX} == "-traymonitor" + @${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} == "-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/bareos21-server/distinfo b/sysutils/bareos21-server/distinfo new file mode 100644 index 000000000000..f806765b8d23 --- /dev/null +++ b/sysutils/bareos21-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1680711853 +SHA256 (bareos-bareos-Release-21.1.7_GH0.tar.gz) = b87a8bba775adb8bbe15af0962b588cecc2179726dcf1e9e14cfeb89eccb2de6 +SIZE (bareos-bareos-Release-21.1.7_GH0.tar.gz) = 11666508 diff --git a/sysutils/bareos21-server/files/bareos-barcodes b/sysutils/bareos21-server/files/bareos-barcodes new file mode 100644 index 000000000000..f42cb7f7aeea --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/bareos-dir.in b/sysutils/bareos21-server/files/bareos-dir.in new file mode 100644 index 000000000000..22272cf86231 --- /dev/null +++ b/sysutils/bareos21-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} -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" diff --git a/sysutils/bareos21-server/files/bareos-fd.in b/sysutils/bareos21-server/files/bareos-fd.in new file mode 100644 index 000000000000..8d57c3c858bc --- /dev/null +++ b/sysutils/bareos21-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} -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" diff --git a/sysutils/bareos21-server/files/bareos-sd.in b/sysutils/bareos21-server/files/bareos-sd.in new file mode 100644 index 000000000000..529cf55140c0 --- /dev/null +++ b/sysutils/bareos21-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} -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" diff --git a/sysutils/bareos21-server/files/chio-bareos b/sysutils/bareos21-server/files/chio-bareos new file mode 100644 index 000000000000..f006ef78e6ce --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-CMakeLists.txt new file mode 100644 index 000000000000..b7e291bf0d60 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-CMakeLists.txt @@ -0,0 +1,41 @@ +--- core/CMakeLists.txt 2022-11-09 08:14:10.000000000 -0500 ++++ core/CMakeLists.txt 2022-11-18 00:11:43.670601000 -0500 +@@ -283,7 +283,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 + ) +@@ -350,7 +352,9 @@ + add_definitions("-D_FILE_OFFSET_BITS=64") + endif() + +-include(FindIntl) ++if(nls) ++ include(FindIntl) ++endif() + + if(developer) + add_definitions("-DDEVELOPER=1") +@@ -368,7 +372,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 +@@ -782,7 +786,6 @@ + + add_subdirectory(scripts) + add_subdirectory(manpages) +-add_subdirectory(platforms) + add_subdirectory(src) + + include(BareosLocalBuildDefinitions OPTIONAL diff --git a/sysutils/bareos21-server/files/patch-core-cmake_BareosCheckIncludes.cmake b/sysutils/bareos21-server/files/patch-core-cmake_BareosCheckIncludes.cmake new file mode 100644 index 000000000000..e439a0254191 --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-cmake_BareosFindAllLibraries.cmake b/sysutils/bareos21-server/files/patch-core-cmake_BareosFindAllLibraries.cmake new file mode 100644 index 000000000000..e3ff7074a02f --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-cmake_BareosFindAllLibraries.cmake @@ -0,0 +1,25 @@ +--- core/cmake/BareosFindAllLibraries.cmake 2022-08-05 04:40:11.000000000 -0500 ++++ core/cmake/BareosFindAllLibraries.cmake 2022-10-31 16:28:14.422391000 -0500 +@@ -175,12 +175,18 @@ + ) + endif() + +-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/bareos21-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake b/sysutils/bareos21-server/files/patch-core-cmake_BareosInstallConfigFiles.cmake new file mode 100644 index 000000000000..63a6f9eec824 --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake b/sysutils/bareos21-server/files/patch-core-cmake_BareosSetVariableDefaults.cmake new file mode 100644 index 000000000000..935c5a5b3177 --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-manpages_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-manpages_CMakeLists.txt new file mode 100644 index 000000000000..5774b72f2740 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-manpages_CMakeLists.txt @@ -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) diff --git a/sysutils/bareos21-server/files/patch-core-scripts_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-scripts_CMakeLists.txt new file mode 100644 index 000000000000..9d10e0a79552 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-scripts_CMakeLists.txt @@ -0,0 +1,64 @@ +--- core/scripts/CMakeLists.txt 2021-12-21 06:00:49.000000000 -0500 ++++ core/scripts/CMakeLists.txt 2021-12-22 00:23:34.270541000 -0500 +@@ -18,34 +18,36 @@ + # 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 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}" +-) ++ 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}" ++ ) ++endif() + + if(NOT client-only) + install( diff --git a/sysutils/bareos21-server/files/patch-core-src-dird_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-src-dird_CMakeLists.txt new file mode 100644 index 000000000000..688519f35afe --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src-dird_CMakeLists.txt @@ -0,0 +1,20 @@ +--- core/src/dird/CMakeLists.txt 2022-01-16 10:44:41.285876000 -0500 ++++ core/src/dird/CMakeLists.txt 2022-01-16 10:46:30.370557000 -0500 +@@ -158,7 +158,7 @@ + add_executable(bareos-dir) + target_sources(bareos-dir PRIVATE dird.cc) + +-target_link_libraries(bareos-dir PRIVATE dird_objects bareossql bareosfind) ++target_link_libraries(bareos-dir PRIVATE dird_objects bareossql bareosfind ${JANSSON_LIBRARIES}) + + if(HAVE_WIN32) + target_sources( +@@ -184,7 +184,7 @@ + add_executable(bareos-dbcheck ${DBCHKSRCS}) + + target_link_libraries( +- bareos-dbcheck PRIVATE bareossql bareos bareosfind ${OPENSSL_LIBRARIES} ++ bareos-dbcheck PRIVATE bareossql bareos bareosfind ${OPENSSL_LIBRARIES} ${JANSSON_LIBRARIES} + ) + + # is not built by default diff --git a/sysutils/bareos21-server/files/patch-core-src-dird_catreq.cc b/sysutils/bareos21-server/files/patch-core-src-dird_catreq.cc new file mode 100644 index 000000000000..e16e259a9ffa --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src-dird_catreq.cc @@ -0,0 +1,29 @@ +--- core/src/dird/catreq.cc 2022-01-21 09:00:16.883799000 -0500 ++++ core/src/dird/catreq.cc 2022-01-21 09:02:08.619060000 -0500 +@@ -656,7 +656,7 @@ + bool retval = false; + int32_t pktsiz; + size_t nbytes; +- ssize_t size = 0; ++// ssize_t size = 0; + int32_t message_length; /* message length */ + int spool_fd = -1; + POOLMEM* msg = GetPoolMemory(PM_MESSAGE); +@@ -680,7 +680,7 @@ + + while ((nbytes = read(spool_fd, (char*)&pktsiz, sizeof(int32_t))) + == sizeof(int32_t)) { +- size += sizeof(int32_t); ++ //size += sizeof(int32_t); + message_length = ntohl(pktsiz); + + if (message_length > 0) { +@@ -697,7 +697,7 @@ + goto bail_out; + } + msg[nbytes] = '\0'; +- size += nbytes; ++ //size += nbytes; + } + + if (!jcr->IsJobCanceled()) { diff --git a/sysutils/bareos21-server/files/patch-core-src-include_baconfig.h b/sysutils/bareos21-server/files/patch-core-src-include_baconfig.h new file mode 100644 index 000000000000..21afd978730d --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-src-plugins-filed_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-src-plugins-filed_CMakeLists.txt new file mode 100644 index 000000000000..ccb41fb15e8c --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/patch-core-src-plugins-stored_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-src-plugins-stored_CMakeLists.txt new file mode 100644 index 000000000000..a693d11d6b6a --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src-plugins-stored_CMakeLists.txt @@ -0,0 +1,15 @@ +--- core/src/plugins/stored/CMakeLists.txt 2021-12-21 06:00:49.000000000 -0500 ++++ core/src/plugins/stored/CMakeLists.txt 2022-01-15 09:28:41.225020000 -0500 +@@ -33,6 +33,12 @@ + endif() + endif() + ++if(HAVE_FREEBSD_OS) ++ include_directories( ++ ${PROJECT_SOURCE_DIR}/src/fastlz/include ++ ) ++endif() ++ + add_subdirectory(python) + + add_library(autoxflate-sd MODULE autoxflate/autoxflate-sd.cc) diff --git a/sysutils/bareos21-server/files/patch-core-src-stored_CMakelists.txt b/sysutils/bareos21-server/files/patch-core-src-stored_CMakelists.txt new file mode 100644 index 000000000000..64ee102c21f5 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src-stored_CMakelists.txt @@ -0,0 +1,20 @@ +--- core/src/stored/CMakeLists.txt 2021-12-21 06:00:49.000000000 -0500 ++++ core/src/stored/CMakeLists.txt 2022-03-04 20:56:52.809609000 -0500 +@@ -219,7 +219,7 @@ + add_executable(bareos-sd stored.cc) + + target_link_libraries( +- bareos-sd PRIVATE stored_objects bareos bareossd bareosfind Threads::Threads ++ bareos-sd PRIVATE stored_objects bareos bareossd bareosfind Threads::Threads ${JANSSON_LIBRARIES} + ) + + if(HAVE_WIN32) +@@ -228,7 +228,7 @@ + endif() + if(HAVE_NDMP) + target_link_libraries(stored_objects PRIVATE bareosndmp) +- target_link_libraries(bareos-sd PRIVATE bareosndmp) ++ target_link_libraries(bareos-sd PRIVATE bareosndmp ${JANSSON_LIBRARIES}) + endif() + + add_executable(bls ${BLSSRCS}) diff --git a/sysutils/bareos21-server/files/patch-core-src-tests_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-src-tests_CMakeLists.txt new file mode 100644 index 000000000000..c61a3775fcb3 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src-tests_CMakeLists.txt @@ -0,0 +1,63 @@ +--- core/src/tests/CMakeLists.txt 2023-04-05 11:45:57.490983000 -0500 ++++ core/src/tests/CMakeLists.txt 2023-04-05 11:53:08.135702000 -0500 +@@ -131,7 +131,7 @@ + if(NOT client-only) + bareos_add_test( + run_on_incoming_connect_interval +- LINK_LIBRARIES dird_objects bareos bareosfind bareossql ++ LINK_LIBRARIES ${JANSSON_LIBRARIES} dird_objects bareos bareosfind bareossql + $<$:${PAM_LIBRARIES}> GTest::gtest_main + ) + endif() # NOT client-only +@@ -139,14 +139,14 @@ + if(NOT client-only) + bareos_add_test( + scheduler +- LINK_LIBRARIES dird_objects bareos bareosfind bareossql ++ LINK_LIBRARIES ${JANSSON_LIBRARIES} dird_objects bareos bareosfind bareossql + $<$:${PAM_LIBRARIES}> GTest::gtest_main + ) + endif() # NOT client-only + + if(NOT client-only) + bareos_add_test( +- scheduler_job_item_queue LINK_LIBRARIES dird_objects bareos bareosfind ++ scheduler_job_item_queue LINK_LIBRARIES ${JANSSON_LIBRARIES} dird_objects bareos bareosfind + bareossql GTest::gtest_main + ) + endif() # NOT client-only +@@ -180,7 +180,7 @@ + + if(NOT client-only) + bareos_add_test( +- test_sd_plugins LINK_LIBRARIES bareos bareossd GTest::gtest_main ++ test_sd_plugins LINK_LIBRARIES ${JANSSON_LIBRARIES} bareos bareossd GTest::gtest_main + ) + endif() # NOT client-only + +@@ -195,14 +195,14 @@ + ) + + if(NOT client-only) +- bareos_add_test(multiplied_device_test LINK_LIBRARIES ${LINK_LIBRARIES}) ++ bareos_add_test(multiplied_device_test LINK_LIBRARIES ${LINK_LIBRARIES} ${JANSSON_LIBRARIES}) + endif() + + if(NOT client-only) + bareos_add_test( + ndmp_address_translate_test + ADDITIONAL_SOURCES ../dird/ndmp_slot2elemaddr.cc +- LINK_LIBRARIES ${LINK_LIBRARIES} ++ LINK_LIBRARIES ${LINK_LIBRARIES} ${JANSSON_LIBRARIES} + ) + endif() # NOT client-only + +@@ -230,7 +230,7 @@ + if(NOT client-only) + bareos_add_test( + show_cmd_available_resources_equals_config_resources +- LINK_LIBRARIES dird_objects bareos bareosfind bareossql GTest::gtest_main ++ LINK_LIBRARIES ${JANSSON_LIBRARIES} dird_objects bareos bareosfind bareossql GTest::gtest_main + ) + endif() # NOT client-only + diff --git a/sysutils/bareos21-server/files/patch-core-src_CMakeLists.txt b/sysutils/bareos21-server/files/patch-core-src_CMakeLists.txt new file mode 100644 index 000000000000..7174a3f71796 --- /dev/null +++ b/sysutils/bareos21-server/files/patch-core-src_CMakeLists.txt @@ -0,0 +1,51 @@ +--- core/src/CMakeLists.txt 2023-03-24 04:54:59.000000000 -0500 ++++ core/src/CMakeLists.txt 2023-04-05 13:08:47.420859000 -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) +@@ -40,24 +42,28 @@ + elseif(NOT GTest_FOUND) + message(STATUS "Skipping unit tests as gtest was not found") + else() +- add_subdirectory(tests) ++# add_subdirectory(tests) + endif() + + if(BUILD_BENCHMARKS) + add_subdirectory(benchmarks) + endif() + +-if(ENABLE_BCONSOLE) +- add_subdirectory(console) +-endif() ++if(client-only) ++ if(ENABLE_BCONSOLE) ++ add_subdirectory(console) ++ endif() + +-if(${HAVE_LMDB}) +- add_subdirectory(lmdb) ++ 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/bareos21-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake b/sysutils/bareos21-server/files/patch-core_cmake_bareos-symlink-default-db-backend.cmake new file mode 100644 index 000000000000..bf079968d9d4 --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/pkg-deinstall.client.in b/sysutils/bareos21-server/files/pkg-deinstall.client.in new file mode 100644 index 000000000000..3be8c2e4874c --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/pkg-install.client.in b/sysutils/bareos21-server/files/pkg-install.client.in new file mode 100644 index 000000000000..70ca57028237 --- /dev/null +++ b/sysutils/bareos21-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/bareos21-server/files/pkg-message.client.in b/sysutils/bareos21-server/files/pkg-message.client.in new file mode 100644 index 000000000000..b3e2d5825e13 --- /dev/null +++ b/sysutils/bareos21-server/files/pkg-message.client.in @@ -0,0 +1,17 @@ +[ +{ type: install + message: <