summaryrefslogtreecommitdiff
path: root/sysutils/bacula9-server/files
diff options
context:
space:
mode:
authorDan Langille <dvl@FreeBSD.org>2017-08-30 18:11:06 +0000
committerDan Langille <dvl@FreeBSD.org>2017-08-30 18:11:06 +0000
commitae6ca1f5b3de7a3801fa1c7d553fc4b949e816d5 (patch)
treea16363c993c3cb3c7fb127bae301f6abb2f46d7c /sysutils/bacula9-server/files
parentdevel/cdecl: upgrade to 3.6. (diff)
Add Bacula 9.0.3
PR: 221710
Diffstat (limited to 'sysutils/bacula9-server/files')
-rw-r--r--sysutils/bacula9-server/files/bacula-barcodes51
-rw-r--r--sysutils/bacula9-server/files/bacula-dir.in31
-rw-r--r--sysutils/bacula9-server/files/bacula-fd.in31
-rw-r--r--sysutils/bacula9-server/files/bacula-sd.in31
-rw-r--r--sysutils/bacula9-server/files/chio-bacula200
-rw-r--r--sysutils/bacula9-server/files/patch-src_console_Makefile.in11
-rw-r--r--sysutils/bacula9-server/files/patch-src_dird_Makefile.in11
-rw-r--r--sysutils/bacula9-server/files/patch-src_filed_Makefile.in11
-rw-r--r--sysutils/bacula9-server/files/patch-src_qt-console_bat.pro.in11
-rw-r--r--sysutils/bacula9-server/files/pkg-deinstall.client.in30
-rw-r--r--sysutils/bacula9-server/files/pkg-deinstall.server.in34
-rw-r--r--sysutils/bacula9-server/files/pkg-install.client.in13
-rw-r--r--sysutils/bacula9-server/files/pkg-install.server.in13
-rw-r--r--sysutils/bacula9-server/files/pkg-message.client.in8
-rw-r--r--sysutils/bacula9-server/files/pkg-message.server.in57
15 files changed, 543 insertions, 0 deletions
diff --git a/sysutils/bacula9-server/files/bacula-barcodes b/sysutils/bacula9-server/files/bacula-barcodes
new file mode 100644
index 000000000000..0a0b2dc28f24
--- /dev/null
+++ b/sysutils/bacula9-server/files/bacula-barcodes
@@ -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
diff --git a/sysutils/bacula9-server/files/bacula-dir.in b/sysutils/bacula9-server/files/bacula-dir.in
new file mode 100644
index 000000000000..49086897bd68
--- /dev/null
+++ b/sysutils/bacula9-server/files/bacula-dir.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# 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"
diff --git a/sysutils/bacula9-server/files/bacula-fd.in b/sysutils/bacula9-server/files/bacula-fd.in
new file mode 100644
index 000000000000..70add50a1915
--- /dev/null
+++ b/sysutils/bacula9-server/files/bacula-fd.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# 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"
diff --git a/sysutils/bacula9-server/files/bacula-sd.in b/sysutils/bacula9-server/files/bacula-sd.in
new file mode 100644
index 000000000000..1c37c68fd6d5
--- /dev/null
+++ b/sysutils/bacula9-server/files/bacula-sd.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# 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"
diff --git a/sysutils/bacula9-server/files/chio-bacula b/sysutils/bacula9-server/files/chio-bacula
new file mode 100644
index 000000000000..6650426857dc
--- /dev/null
+++ b/sysutils/bacula9-server/files/chio-bacula
@@ -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
diff --git a/sysutils/bacula9-server/files/patch-src_console_Makefile.in b/sysutils/bacula9-server/files/patch-src_console_Makefile.in
new file mode 100644
index 000000000000..d41747a16d07
--- /dev/null
+++ b/sysutils/bacula9-server/files/patch-src_console_Makefile.in
@@ -0,0 +1,11 @@
+--- src/console/Makefile.in.orig 2015-08-13 13:52:24 UTC
++++ src/console/Makefile.in
+@@ -121,7 +121,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; \
diff --git a/sysutils/bacula9-server/files/patch-src_dird_Makefile.in b/sysutils/bacula9-server/files/patch-src_dird_Makefile.in
new file mode 100644
index 000000000000..132291431a90
--- /dev/null
+++ b/sysutils/bacula9-server/files/patch-src_dird_Makefile.in
@@ -0,0 +1,11 @@
+--- src/dird/Makefile.in.orig 2015-08-13 13:52:24 UTC
++++ src/dird/Makefile.in
+@@ -140,7 +140,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; \
diff --git a/sysutils/bacula9-server/files/patch-src_filed_Makefile.in b/sysutils/bacula9-server/files/patch-src_filed_Makefile.in
new file mode 100644
index 000000000000..8886fc40f83d
--- /dev/null
+++ b/sysutils/bacula9-server/files/patch-src_filed_Makefile.in
@@ -0,0 +1,11 @@
+--- src/filed/Makefile.in.orig 2015-08-13 13:52:24 UTC
++++ src/filed/Makefile.in
+@@ -137,7 +127,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) -I$(srcdir) -I$(basedir) *.c >> Makefile
+ @if test -f Makefile ; then \
+ $(RMF) Makefile.bak; \
diff --git a/sysutils/bacula9-server/files/patch-src_qt-console_bat.pro.in b/sysutils/bacula9-server/files/patch-src_qt-console_bat.pro.in
new file mode 100644
index 000000000000..1bca6f6d819b
--- /dev/null
+++ b/sysutils/bacula9-server/files/patch-src_qt-console_bat.pro.in
@@ -0,0 +1,11 @@
+--- src/qt-console/bat.pro.in.orig 2015-08-13 13:52:24 UTC
++++ src/qt-console/bat.pro.in
+@@ -19,7 +19,7 @@ TEMPLATE = app
+ TARGET = bat
+ DEPENDPATH += .
+ INCLUDEPATH += .. . ./console ./restore ./select
+-LIBS += -L../lib -lbaccfg -lbac -L../findlib -lbacfind @OPENSSL_LIBS@
++LIBS += -L../lib -lbaccfg -lbac -L../findlib -lbacfind @OPENSSL_LIBS@ -lintl
+ LIBTOOL_LINK = @QMAKE_LIBTOOL@ --silent --tag=CXX --mode=link
+ LIBTOOL_INSTALL = @QMAKE_LIBTOOL@ --silent --mode=install
+ QMAKE_LINK = $${LIBTOOL_LINK} $(CXX)
diff --git a/sysutils/bacula9-server/files/pkg-deinstall.client.in b/sysutils/bacula9-server/files/pkg-deinstall.client.in
new file mode 100644
index 000000000000..27590d301e06
--- /dev/null
+++ b/sysutils/bacula9-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=%%BACULA_USER%%
+GROUP=%%BACULA_GROUP%%
+UID=%%BACULA_UID%%
+GID=%%BACULA_UID%%
+BACULA_DIR=%%BACULA_DIR%%
+
+TMPFILE=/tmp/services-$RANDOM-$$
+
+case "$2" in
+"DEINSTALL")
+ # Delete entries in /etc/services
+ sed -e '/# Bacula port start/,/# Bacula port end/{' \
+ -e 'd' \
+ -e '}' /etc/services > $TMPFILE
+ mv -f $TMPFILE /etc/services
+
+ if [ -d ${BACULA_DIR} ]; then
+ echo "Check if ${BACULA_DIR} is empty and delete it to permanently remove the bacula port."
+ fi
+
+ if pw groupshow "${USER}" 2>/dev/null 1>&2; then
+ echo "To delete Bacula group permanently, use 'pw groupdel ${GROUP}'"
+ fi
+ ;;
+esac
diff --git a/sysutils/bacula9-server/files/pkg-deinstall.server.in b/sysutils/bacula9-server/files/pkg-deinstall.server.in
new file mode 100644
index 000000000000..05da0eb6a7f6
--- /dev/null
+++ b/sysutils/bacula9-server/files/pkg-deinstall.server.in
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+PATH=/bin:/usr/bin:/usr/sbin
+
+# Note how to delete UID/GID
+USER=%%BACULA_USER%%
+GROUP=%%BACULA_GROUP%%
+UID=%%BACULA_UID%%
+GID=%%BACULA_UID%%
+BACULA_DIR=%%BACULA_DIR%%
+
+TMPFILE=/tmp/services-$RANDOM-$$
+
+case "$2" in
+"DEINSTALL")
+ # Delete entries in /etc/services
+ sed -e '/# Bacula port start/,/# Bacula port end/{' \
+ -e 'd' \
+ -e '}' /etc/services > $TMPFILE
+ mv -f $TMPFILE /etc/services
+
+ if [ -d ${BACULA_DIR} ]; then
+ rmdir ${BACULA_DIR};
+ fi
+ if [ -d ${BACULA_DIR} ]; then
+ echo "Check if ${BACULA_DIR} is empty and delete it to permanently remove the bacula port."
+ fi
+
+ if pw usershow "${USER}" 2>/dev/null 1>&2; then
+ echo "To delete Bacula user permanently, use 'pw userdel ${USER}'"
+ echo "To delete Bacula group permanently, use 'pw groupdel ${GROUP}'"
+ fi
+ ;;
+esac
diff --git a/sysutils/bacula9-server/files/pkg-install.client.in b/sysutils/bacula9-server/files/pkg-install.client.in
new file mode 100644
index 000000000000..12e044538074
--- /dev/null
+++ b/sysutils/bacula9-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 "bacula-dir" /etc/services
+if [ "$?" != "0" ]; then
+ echo "# Bacula port start
+bacula-dir 9101/tcp #Bacula director daemon
+bacula-fd 9102/tcp #Bacula file daemon
+bacula-sd 9103/tcp #Bacula storage daemon
+# Bacula port end" >> /etc/services
+fi
diff --git a/sysutils/bacula9-server/files/pkg-install.server.in b/sysutils/bacula9-server/files/pkg-install.server.in
new file mode 100644
index 000000000000..12e044538074
--- /dev/null
+++ b/sysutils/bacula9-server/files/pkg-install.server.in
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+PATH=/bin:/usr/bin:/usr/sbin
+
+# Always add lines in /etc/services
+grep -q "bacula-dir" /etc/services
+if [ "$?" != "0" ]; then
+ echo "# Bacula port start
+bacula-dir 9101/tcp #Bacula director daemon
+bacula-fd 9102/tcp #Bacula file daemon
+bacula-sd 9103/tcp #Bacula storage daemon
+# Bacula port end" >> /etc/services
+fi
diff --git a/sysutils/bacula9-server/files/pkg-message.client.in b/sysutils/bacula9-server/files/pkg-message.client.in
new file mode 100644
index 000000000000..c4041a26df11
--- /dev/null
+++ b/sysutils/bacula9-server/files/pkg-message.client.in
@@ -0,0 +1,8 @@
+################################################################################
+
+NOTE:
+Sample files are installed in %%PREFIX%%/etc/bacula:
+
+ bconsole.conf.sample, bacula-fd.conf.sample
+
+################################################################################
diff --git a/sysutils/bacula9-server/files/pkg-message.server.in b/sysutils/bacula9-server/files/pkg-message.server.in
new file mode 100644
index 000000000000..d694599140fc
--- /dev/null
+++ b/sysutils/bacula9-server/files/pkg-message.server.in
@@ -0,0 +1,57 @@
+###############################################################################
+
+bacula server was installed
+
+A database upgrade is required if upgrading from Bacula < 9.0.
+See %%DATADIR%%/update_bacula_tables
+
+An auto-changer manipulation script based on FreeBSDs
+chio command is included and installed at
+
+ %%PREFIX%%/sbin/chio-bacula
+
+Please have a look at it if you want to use an
+autochanger. You have to configure the usage in
+
+ %%PREFIX%%/etc/bacula/bacula-dir.conf
+
+Take care of correct permissions for changer and
+tape device (e.g. /dev/ch0 and /dev/n[r]sa0) i.e.
+they must be accessible by user bacula.
+
+Due to lack of some features in the FreeBSD tape driver
+implementation you MUST add some OS dependent options to
+the bacula-sd.conf file:
+
+ Hardware End of Medium = no;
+ Backward Space Record = no;
+ Backward Space File = no;
+
+With 2 filemarks at EOT (see man mt):
+ Fast Forward Space File = no;
+ BSF at EOM = yes;
+ TWO EOF = yes;
+
+With 1 filemarks at EOT (see man mt):
+ Fast Forward Space File = yes;
+ BSF at EOM = no;
+ TWO EOF = no;
+
+NOTE: YOU CAN SWITCH EOT model ONLY when starting
+ from scratch with EMPTY tapes.
+
+It is also important that all the scripts accessed
+by RunBeforeJob and RunAfterJob will be executed by
+the user bacula. Check your permissions.
+
+For USB support read the bacula manual. It could be necessary
+to configure/compile a new kernel.
+
+Look at %%PREFIX%%/share/bacula/update_bacula_tables for
+database update procedure. Details can be found in the
+ReleaseNotes
+
+If you are using sqlite you need to run the make_sqlite_tables script as
+the bacula user. Do this using 'sudo su -m bacula'.
+
+################################################################################