sysutils/bacula13-server: New ports for Bacula 13

NOTE: I am unsure of how stable this is. Please proceed with caution.

Also coming in:

* sysutils/bacula13-client
* sysutils/bacula13-docs
* net-mgmt/nagios-check_bacula13

Not present yet: sysutils/bacula13-client-static because of unknown
build issues.
This commit is contained in:
Dan Langille
2022-07-10 01:10:08 +00:00
parent 6f111afc7f
commit c38f2ffe95
30 changed files with 997 additions and 0 deletions
+1
View File
@@ -138,6 +138,7 @@
SUBDIR += nagios
SUBDIR += nagios-certexp-plugin
SUBDIR += nagios-check_bacula11
SUBDIR += nagios-check_bacula13
SUBDIR += nagios-check_bacula9
SUBDIR += nagios-check_clamav
SUBDIR += nagios-check_cpu_usage
+29
View File
@@ -0,0 +1,29 @@
# Created by: Anders Troback
PORTNAME= bacula
CATEGORIES= net-mgmt
PKGNAMEPREFIX= nagios-check_
PKGNAMESUFFIX= 13
MAINTAINER= dvl@FreeBSD.org
COMMENT= Nagios plugin for Bacula
LIB_DEPENDS+= libbac.so:sysutils/bacula13-client
PLIST= ${.CURDIR}/pkg-plist
PLIST_FILES= libexec/nagios/check_bacula
WITH_NAGIOS_CHECK_ONLY= yes
MASTERDIR= ${.CURDIR}/../../sysutils/bacula13-server
CONFIGURE_ARGS= --enable-client-only \
--disable-build-dird \
--disable-build-stored \
--disable-nls \
--disable-xatt
OPTIONS_DEFINE= #
OPTIONS_DEFAULT=#
NO_CCACHE= yes
.include "${MASTERDIR}/Makefile"
+2
View File
@@ -0,0 +1,2 @@
check_bacula is a plugin intended for use with the
Nagios network monitoring system to monitor Bacula.
+3
View File
@@ -87,6 +87,9 @@
SUBDIR += bacula11-client-static
SUBDIR += bacula11-docs
SUBDIR += bacula11-server
SUBDIR += bacula13-client
SUBDIR += bacula13-docs
SUBDIR += bacula13-server
SUBDIR += bacula9-client
SUBDIR += bacula9-client-static
SUBDIR += bacula9-docs
+17
View File
@@ -0,0 +1,17 @@
yPORTNAME= bacula
PKGNAMESUFFIX= 13-client
COMMENT= Network backup solution (client)
BROKEN_aarch64= Fails to link: missing sbrk
BROKEN_riscv64= Fails to link: missing sbrk
WITH_CLIENT_ONLY=yes
USE_RC_SUBR= bacula-fd
PLIST= ${PKGDIR}/pkg-plist.client
MASTERDIR= ${.CURDIR}/../../sysutils/bacula13-server
OPTIONS_DEFINE= NLS PYTHON IPV6
.include "${MASTERDIR}/Makefile"
+26
View File
@@ -0,0 +1,26 @@
PORTNAME= bacula
PORTVERSION= 13.0.0
CATEGORIES= sysutils
MASTER_SITES= SF
PKGNAMESUFFIX= 13-docs
DISTNAME= ${PORTNAME}-docs-${PORTVERSION}
CONFLICTS= bacula9
MAINTAINER= dvl@FreeBSD.org
COMMENT= Bacula document set
USES= tar:bz2
NO_BUILD= yes
NO_ARCH= yes
PORTDOCS= *.pdf
OPTIONS_DEFINE= DOCS
do-install:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${FIND} ${WRKSRC}/manuals/en \
-name "*.pdf" -exec ${INSTALL_DATA} {} ${STAGEDIR}${DOCSDIR}/ \;
.include <bsd.port.mk>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1657413208
SHA256 (bacula-docs-13.0.0.tar.bz2) = 7a2425f1a7b5c69af4ed8ea24de9e607a2135b527fa6ce93879f216e6d1c869a
SIZE (bacula-docs-13.0.0.tar.bz2) = 67807462
+13
View File
@@ -0,0 +1,13 @@
Bacula is a set of computer programs that permit you (or the system
administrator) to manage backup, recovery, and verification of
computer data across a network of computers of different kinds.
In technical terms, it is a network Client/Server based backup program.
Bacula is relatively easy to use and efficient, while offering many
advanced storage management features that make it easy to find and
recover lost or damaged files. Due to its modular design, Bacula is
scalable from small single computer systems to systems consisting of
hundreds of computers located over a large network.
This port installs the latest documentation for Bacula.
WWW: https://www.bacula.org/
+199
View File
@@ -0,0 +1,199 @@
PORTNAME= bacula
DISTVERSION= 13.0.0
CATEGORIES?= sysutils
MASTER_SITES= SF/bacula/bacula/${PORTVERSION}
PKGNAMEPREFIX?= #
PKGNAMESUFFIX?= 13-server
MAINTAINER= dvl@FreeBSD.org
COMMENT?= Network backup solution (server)
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
USES+= cpe libtool readline shebangfix ssl
SHEBANG_FILES= src/cats/make_catalog_backup.pl.in scripts/baculabackupreport.in
CONFLICTS?= bacula13-server bacula9-server bacula-server
LIB_DEPENDS+= liblzo2.so:archivers/lzo2
USERS= bacula
GROUPS= ${USERS}
PLIST_SUB+= LIB_VERSION=${PORTVERSION}
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
OPTIONS_DEFINE?= MTX NLS IPV6
MTX_DESC= Install mtx for control of autochanger devices
.if ${PKGNAMESUFFIX} == "13-server"
OPTIONS_MULTI= BACKEND
OPTIONS_MULTI_BACKEND= SQLITE3 MYSQL PGSQL
OPTIONS_DEFAULT+= PGSQL
.endif
OPTIONS_SUB= yes
.if ${PKGNAMESUFFIX} == "13-client" || ${PKGNAMESUFFIX} == "13-server" #Till end of the file
.if !defined(WITH_CLIENT_ONLY)
LIB_DEPENDS+= libbac-${PORTVERSION}.so:sysutils/bacula13-client
USE_RC_SUBR?= bacula-dir bacula-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
CONFIGURE_ARGS+=--with-tcp-wrappers=/usr/lib \
--enable-smartalloc \
--sysconfdir=${ETCDIR} \
--with-working-dir=${BACULA_DIR} \
--with-scriptdir=${PREFIX}/share/${PORTNAME} \
--disable-conio \
--enable-batch-insert \
--with-plugindir=${PREFIX}/lib \
--with-dump-email=root@localhost \
--with-job-email=root@localhost \
--with-db-name=bacula \
--with-sbin-perm=755 \
--with-db-user=bacula \
--with-logdir=/var/log \
--with-baseport=9101
.if defined(WITH_CLIENT_ONLY)
CONFIGURE_ARGS+=--with-fd-user=root \
--with-fd-group=wheel
.else
CONFIGURE_ARGS+=--with-dir-user=${BACULA_USER} \
--with-dir-group=${BACULA_GROUP} \
--with-sd-user=${BACULA_USER} \
--with-sd-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#users-and-groups
#
BACULA_USER?= bacula
BACULA_GROUP?= ${BACULA_USER}
BACULA_UID?= bacula
BACULA_GID?= ${BACULA_UID}
BACULA_DIR?= /var/db/bacula
PLIST_SUB+= BACULA_DIR=${BACULA_DIR}
SUB_LIST= BACULA_USER=${BACULA_USER} \
BACULA_GROUP=${BACULA_GROUP} \
BACULA_UID=${BACULA_UID} \
BACULA_GID=${BACULA_GID} \
BACULA_DIR=${BACULA_DIR}
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
# Client only or full server version
.if defined(WITH_CLIENT_ONLY)
CONFFILES= fd
CONFIGURE_ARGS+= --enable-client-only
PKGDEINSTALL= ${FILESDIR}/pkg-deinstall.client
PKGINSTALL= ${FILESDIR}/pkg-install.client
.else
# Server only Options
CONFFILES= sd dir
# Server default database
MYSQL_CONFIGURE_ON= --with-mysql=yes
MYSQL_USES= mysql
SQLITE3_CONFIGURE_ON= --with-sqlite3=yes
SQLITE3_USES= sqlite:3
PGSQL_CONFIGURE_ON= --with-postgresql=yes
PGSQL_USES= pgsql
MTX_RUN_DEPENDS= ${LOCALBASE}/sbin/mtx:misc/mtx
.endif
.include <bsd.port.pre.mk>
# if IPv6 is not in the kernel, it generates many errors
.if ! ${PORT_OPTIONS:MIPV6}
CONFIGURE_ARGS+= --disable-ipv6
.endif
CONFIGURE_ARGS+= --with-readline=${LOCALBASE}
.if defined(WITH_CLIENT_ONLY)
MP8+= bacula.8 bacula-fd.8 bconsole.8
.else
MP8+= bacula-dir.8 bacula-sd.8 bcopy.8 bextract.8 bls.8 bscan.8 \
btape.8 btraceback.8 dbcheck.8 bwild.8 bregex.8
MP1+= bsmtp.1 bacula-tray-monitor.1
.endif
MAKE_ENV+= MAN8="${MP8}" MAN1="${MP1}"
post-patch:
# This port does not install docs. See bacula-docs for that
@${REINPLACE_CMD} -e '/docdir/d' ${WRKSRC}/Makefile.in
# Change $(ECHO) to echo in some Makefile.in files
@${REINPLACE_CMD} -e 's|$$(ECHO)|echo|g' \
${WRKSRC}/src/filed/Makefile.in \
${WRKSRC}/src/console/Makefile.in \
${WRKSRC}/src/cats/Makefile.in \
${WRKSRC}/src/dird/Makefile.in \
${WRKSRC}/src/stored/Makefile.in \
${WRKSRC}/src/tools/Makefile.in
# Default bconsole.conf is in ${ETCDIR}
@${REINPLACE_CMD} -e 's|./bconsole.conf|${ETCDIR}/bconsole.conf|g' ${WRKSRC}/src/console/console.c
@${REINPLACE_CMD} -e 's|^MAN8 =|MAN8 ?=|g' -e 's|^MAN1 =|MAN1 ?=|g' ${WRKSRC}/manpages/Makefile.in
.if defined(WITH_CLIENT_ONLY)
# In client port only install startup script out of script dir (see below post-install)
# Dont mkdir ${PREFIX}/share/bacula cause it's empty
@${REINPLACE_CMD} -e 's|^\(fd_subdirs = .*\)scripts\(.*\)|\1\2|g' ${WRKSRC}/Makefile.in
@${REINPLACE_CMD} -e 's|\(.*$${MKDIR} $${DESTDIR}$${scriptdir}\)|#\1|g' ${WRKSRC}/Makefile.in
.else
# In server port don't install filed
@${REINPLACE_CMD} -e '/^fd_subdirs = /s|src/filed||' -e 's|src/console||' \
${WRKSRC}/Makefile.in
.endif
.if !target(post-install)
post-install:
.if defined(WITH_CLIENT_ONLY)
${MV} ${STAGEDIR}${ETCDIR}/bconsole.conf ${STAGEDIR}${ETCDIR}/bconsole.conf.sample
${INSTALL_DATA} ${WRKSRC}/examples/sample-query.sql ${STAGEDIR}${LOCALBASE}/share/bacula/query.sql.sample
.else
${INSTALL_SCRIPT} ${FILESDIR}/chio-bacula ${STAGEDIR}${PREFIX}/sbin
${INSTALL_DATA} ${FILESDIR}/bacula-barcodes ${STAGEDIR}${ETCDIR}/bacula-barcodes.sample
# bacula-dir attempts to install query.sql as bpart of bacula-server, but that should only installed by bacula-client.
${RM} ${STAGEDIR}${LOCALBASE}/share/bacula/query.sql
#the following are installed by the -CLIENT port, and I (ler@lerctr.org)
#don't know how to remove them from being built for the -SERVER port.
${RM} ${STAGEDIR}${LOCALBASE}/lib/bpipe-fd.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbac-${PORTVERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbac.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbaccfg-${PORTVERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbaccfg.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbacfind-${PORTVERSION}.so
${RM} ${STAGEDIR}${LOCALBASE}/lib/libbacfind.so
.endif
for na in ${CONFFILES}; do \
${MV} ${STAGEDIR}${ETCDIR}/bacula-$$na.conf ${STAGEDIR}${ETCDIR}/bacula-$$na.conf.sample; \
done
.endif
.else
.include "${MASTERDIR}/Makefile.common"
.endif # 13-client and 13-server are defined
.include <bsd.port.post.mk>
+24
View File
@@ -0,0 +1,24 @@
.include <bsd.port.pre.mk>
post-build:
.if ${PKGNAMEPREFIX} == "nagios-check_"
${MAKE_CMD} -C ${WRKSRC}/examples/nagios/check_bacula
.endif
do-install:
.if ${PKGNAMESUFFIX} == "11-bat"
# Install config files and preserve existing ones
${MKDIR} ${STAGEDIR}${ETCDIR}
${INSTALL_SCRIPT} ${WRKSRC}/src/qt-console/bat.conf ${STAGEDIR}${PREFIX}/etc/bacula/bat.conf.sample
${INSTALL_MAN} ${WRKSRC}/manpages/bat.1 ${STAGEDIR}${PREFIX}/man/man1/
${INSTALL_PROGRAM} ${WRKSRC}/src/qt-console/bat ${STAGEDIR}${PREFIX}/sbin
.endif
.if ${PKGNAMEPREFIX} == "nagios-check_"
@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios
${INSTALL_PROGRAM} ${WRKSRC}/examples/nagios/check_bacula/check_bacula \
${STAGEDIR}${PREFIX}/libexec/nagios
.endif
.if ${PKGNAMESUFFIX} == "11-client-static"
${INSTALL_PROGRAM} ${WRKSRC}/src/filed/static-bacula-fd ${STAGEDIR}${PREFIX}/sbin/bacula-fd-static
${INSTALL_PROGRAM} ${WRKSRC}/src/console/static-bconsole ${STAGEDIR}${PREFIX}/sbin/bconsole-static
.endif
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1657411910
SHA256 (bacula-13.0.0.tar.gz) = 4119d48bbfe1518b3224a88e7365c2fa5f7d1679c815e7d15f26631883a8a0c6
SIZE (bacula-13.0.0.tar.gz) = 6220579
@@ -0,0 +1,51 @@
#
# Bacula barcode simulation file
# used by ${PREFIX}/sbin/chio-bacula (FreeBSD)
#
# The volumenames are returned by the "changer list" command
# labeling in the console is done by "label barcodes"
# (then all volumes belog to the default pool).
# All Lines with an "#" at the bedinning are ignored
#
# !!!! If you export an tape and reinsert another one,
# !!!! don't forget to change the volume name in this file!
#
1:Volume1-100
2:Volume1-101
3:Volume1-102
4:Volume1-103
5:Volume1-104
6:Volume1-105
7:Volume1-106
8:Volume1-107
9:Volume1-108
10:Volume1-109
11:Volume1-110
12:Volume1-111
#
# Further volumes exported from the changer
#
# 36GB AIT2 tapes
#Volume1-100
#Volume1-101
#Volume1-102
#Volume1-103
#Volume1-104
#Volume1-105
#Volume1-106
#Volume1-107
#Volume1-108
#Volume1-109
#Volume1-110
#Volume1-111
#Volume1-112
#Volume1-113
#Volume1-114
#Volume1-115
#
# 50GB AIT2 tapes
#Volume2-200
#Volume2-201
#Volume2-202
#Volume2-203
#Volume2-204
@@ -0,0 +1,29 @@
#!/bin/sh
# PROVIDE: bacula_dir
# REQUIRE: DAEMON %%REQ_MYSQL%% %%REQ_PGSQL%%
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# bacula_dir_enable (bool): Set to NO by default.
# Set it to YES to enable bacula_dir.
# bacula_dir_flags (params): Set params used to start bacula_dir.
#
. /etc/rc.subr
name="bacula_dir"
rcvar=${name}_enable
command=%%PREFIX%%/sbin/bacula-dir
load_rc_config $name
: ${bacula_dir_enable="NO"}
: ${bacula_dir_flags=" -u bacula -g bacula -v -c %%PREFIX%%/etc/bacula/bacula-dir.conf"}
: ${bacula_dir_pidfile="/var/run/bacula-dir.9101.pid"}
pidfile="${bacula_dir_pidfile}"
run_rc_command "$1"
@@ -0,0 +1,29 @@
#!/bin/sh
# PROVIDE: bacula_fd
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# bacula_fd_enable (bool): Set to NO by default.
# Set it to YES to enable bacula_fd.
# bacula_fd_flags (params): Set params used to start bacula_fd.
#
. /etc/rc.subr
name="bacula_fd"
rcvar=${name}_enable
command=%%PREFIX%%/sbin/bacula-fd
load_rc_config $name
: ${bacula_fd_enable="NO"}
: ${bacula_fd_flags=" -u root -g wheel -v -c %%PREFIX%%/etc/bacula/bacula-fd.conf"}
: ${bacula_fd_pidfile="/var/run/bacula-fd.9102.pid"}
pidfile="${bacula_fd_pidfile}"
run_rc_command "$1"
@@ -0,0 +1,29 @@
#!/bin/sh
# PROVIDE: bacula_sd
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# bacula_sd_enable (bool): Set to NO by default.
# Set it to YES to enable bacula_sd.
# bacula_sd_flags (params): Set params used to start bacula_sd.
#
. /etc/rc.subr
name="bacula_sd"
rcvar=${name}_enable
command=%%PREFIX%%/sbin/bacula-sd
load_rc_config $name
: ${bacula_sd_enable="NO"}
: ${bacula_sd_flags=" -u bacula -g bacula -v -c %%PREFIX%%/etc/bacula/bacula-sd.conf"}
: ${bacula_sd_pidfile="/var/run/bacula-sd.9103.pid"}
pidfile="${bacula_sd_pidfile}"
run_rc_command "$1"
+200
View File
@@ -0,0 +1,200 @@
#!/bin/sh
#
# Bacula interface to FreeBSD chio autoloader command with
# multiple drive support
# (By Lars Köller, lars+bacula@koellers.net, 2004)
#
# If you set in your Device resource
#
# Changer Command = "path-to-this-script/chio-bacula" %c %o %S %a
# you will have the following input to this script:
#
# chio-bacula "changer-device" "command" "slot" "archive-device" "drive-index"
# $1 $2 $3 $4 $5
# for example:
#
# chio-bacula /dev/sg0 load 1 /dev/nst0 0 (on a FreeBSD system)
#
# If you need to to an offline, refer to the drive as $4
# e.g. mt -f $f offline
#
# Many changers need an offline after the unload. Also many
# changers need a sleep 60 after the mtx load.
#
# N.B. If you change the script, take care to return either
# the mtx exit code or a 0. If the script exits with a non-zero
# exit code, Bacula will assume the request failed.
#
me=$(basename $0)
# Debug output, take care this file is writeable for user bacula!
#LOG=/var/db/bacula/chio-bacula.log
#exec 2>>$LOG
#echo "------------------------- $(date) Start $(basename $0) -------------------------" >> $LOG
#set -x
# Debug
logger -p user.err "$me $@"
# This simulates a barcode reader in the changer.
# The labes of the virtual barcode reader are located in the BARCODE_FILE
SIMULATE_BARCODE=true
BARCODE_FILE=/usr/local/etc/bacula/bacula-barcodes
MTX=/bin/chio
# Set default values (see case statement below for
# free mapping of drive index and tape device
# We have a double drive Qualstar where drive 1 is the default bacula drive
#TAPE=/dev/bacula-tape
TAPE=/dev/nrsa0
DRIVE=0
# Time to wait for (un)loading
SLEEP=20
usage()
{
echo ""
echo "The $me script for bacula"
echo "--------------------------------------"
echo ""
echo "usage: $me <changer-device> <command> [slot] [devicename of tapedrive] [drive index]"
echo ""
echo "Valid commands:"
echo ""
echo "unload Unloads a tape into the slot"
echo " from where it was loaded."
echo "load <slot> Loads a tape from the slot <slot>"
echo " (slot-base is calculated to 1 as first slot)"
echo "list Lists full storage slots"
echo "loaded Gives slot from where the tape was loaded."
echo " 0 means the tape drive is empty."
echo "slots Gives Number of aviable slots."
echo ""
echo "Example:"
echo " $me /dev/changer load 1 loads a tape from slot 1"
echo ""
exit 2
}
# The changer device
if [ -z "$1" ] ; then
usage;
else
CHANGER=$1
fi
# The command
if [ -z "$2" ] ; then
usage;
else
COMMAND=$2
fi
# The slot number
if [ ! -z "$3" ]; then
SLOT=$3
# btape fill says "... slot 1 drive 0" :-(
if [ "$SLOT" = "slot" ]; then
shift
SLOT=$3
fi
fi
# Set tape device
if [ ! -z "$4" ]; then
TAPE=$4
fi
# Here you can map bacula drive number to any tape device
# DRIVE is the chio drive number used below by chio!
case $5 in
0)
# First Drive in Changer is Bacula drive
DRIVE=0
#TAPE=/dev/bacula-tape
TAPE=/dev/nrsa0
;;
1)
DRIVE=1
#TAPE=/dev/bacula-tape2
TAPE=/dev/nrsa1
;;
esac
#
# Main
#
case ${COMMAND} in
unload)
# enable the following line if you need to eject the cartridge
mt -f ${TAPE} off
sleep 2
# if we have a slot, try it
if [ ! -z "$SLOT" ]; then
${MTX} -f ${CHANGER} move drive ${DRIVE} slot $((${SLOT}-1))
exit $?
fi
# Try other way (works if source element information is valid for drive)
${MTX} -f ${CHANGER} return drive ${DRIVE}
# If the changer is power cycled with a tape loaded in a drive
# we can compute the slot in case of a complete filled magazine, with
# one slot free.
if [ "$?" != "0" ]; then
free_slot=`${MTX} -f ${CHANGER} stat | grep "^slot " | grep -v "FULL" | awk '{print $2}'`
free_slot=${free_slot%:}
${MTX} -f ${CHANGER} move drive ${DRIVE} slot $free_slot
fi
;;
load)
${MTX} -f ${CHANGER} move slot $((${SLOT}-1)) drive ${DRIVE}
rtn=$?
# Increase the sleep time if you have a slow device
sleep $SLEEP
exit $rtn
;;
list)
if [ "${SIMULATE_BARCODE}" = "true" ]; then
if [ -f "$BARCODE_FILE" ]; then
cat $BARCODE_FILE | grep -v -e "^#" -e "^$"
exit 0
else
echo "Barcode file $BARCODE_FILE missing ... exiting!"
exit 1
fi
else
${MTX} -f ${CHANGER} status | grep "^slot .*: .*FULL>" | awk '{print $2}' | awk -F: '{print $1+1" "}' | tr -d "[\r\n]"
fi
;;
loaded)
# echo "Request loaded"
${MTX} -f ${CHANGER} status -S > /tmp/mtx.$$
rtn=$?
# Try to get chio slot source from drive entry
SLOT=$(cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: <FULL> .*slot" | awk '{print $6+1}' | tr -d ">")
if [ -z "$SLOT" ]; then
# This handles the case a source slot is not available (power on
# of the changer with a drive loaded) and all other slots are
# occupied with a tape!
SLOT=$(cat /tmp/mtx.$$ | grep "^slot .*: <ACCESS>" | awk '{print $2+1}')
if [ -z "$SLOT" ]; then
echo 0
else
echo $SLOT
fi
else
echo $SLOT
fi
# All tapes are in the slots
#cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: .* source: <>" | awk "{print 0}"
rm -f /tmp/mtx.$$
exit $rtn
;;
slots)
# echo "Request slots"
${MTX} -f ${CHANGER} status | grep "^slot " | tail -1 | awk '{print $2+1}' | tr -d ":"
;;
*)
usage
;;
esac
@@ -0,0 +1,13 @@
--- src/baconfig.h.orig 2021-02-05 21:23:44 UTC
+++ src/baconfig.h
@@ -45,6 +45,10 @@
#define tls_psk_default 0
#endif
+#ifndef ENODATA
+#define ENODATA EPIPE
+#endif
+
#ifndef ETIME
#define ETIME ETIMEDOUT
#endif
@@ -0,0 +1,11 @@
--- src/console/Makefile.in.orig 2021-02-05 21:23:44 UTC
+++ src/console/Makefile.in
@@ -128,7 +128,7 @@ uninstall:
depend:
@$(MV) Makefile Makefile.bak
@$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
+ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile
@$(CXX) -S -M $(CPPFLAGS) $(CONS_INC) -I$(srcdir) -I$(basedir) *.c >> Makefile
@if test -f Makefile ; then \
$(RMF) Makefile.bak; \
@@ -0,0 +1,11 @@
--- src/dird/Makefile.in.orig 2021-02-05 21:23:44 UTC
+++ src/dird/Makefile.in
@@ -150,7 +150,7 @@ uninstall:
depend:
@$(MV) Makefile Makefile.bak
@$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
+ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile
@$(CXX) -S -M $(CPPFLAGS) $(XINC) -I$(srcdir) -I$(basedir) *.c >> Makefile
@if test -f Makefile ; then \
$(RMF) Makefile.bak; \
@@ -0,0 +1,11 @@
--- src/filed/Makefile.in.orig 2021-02-24 01:52:05 UTC
+++ src/filed/Makefile.in
@@ -193,7 +193,7 @@ uninstall:
depend:
@$(MV) Makefile Makefile.bak
@$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
- @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
+ @echo "# DO NOT DELETE: nice dependency list follows" >> Makefile
@$(CXX) -S -M $(CPPFLAGS) $(XINC) $(LZO_INC) $(AFS_CFLAGS) $(GPFS_CFLAGS) -I$(srcdir) -I$(basedir) *.c >> Makefile
@if test -f Makefile ; then \
$(RMF) Makefile.bak; \

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