summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-backup/bacula/files')
-rw-r--r--app-backup/bacula/files/2.4.3/2.4.3-cancel-after-network-outage.patch135
-rw-r--r--app-backup/bacula/files/2.4.3/2.4.3-orphaned-jobs.patch24
-rw-r--r--app-backup/bacula/files/2.4.3/2.4.3-update-slots.patch79
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-default-configs.patch132
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-dir-conf15
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-dir-init25
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-fd-conf8
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-fd-init22
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-gnomesu2gksu.diff48
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-sd-conf11
-rw-r--r--app-backup/bacula/files/2.4.3/bacula-sd-init22
11 files changed, 521 insertions, 0 deletions
diff --git a/app-backup/bacula/files/2.4.3/2.4.3-cancel-after-network-outage.patch b/app-backup/bacula/files/2.4.3/2.4.3-cancel-after-network-outage.patch
new file mode 100644
index 000000000000..321eaf9b27bc
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/2.4.3-cancel-after-network-outage.patch
@@ -0,0 +1,135 @@
+
+ This patch fixes a problem when canceling job if client looses
+ connection while being backed up
+ Apply the patch to version 2.4.3 (and previous versions) with:
+
+ cd <bacula-source>
+ patch -p0 <2.4.3-cancel-after-network-outage.patch
+ ./configure <your-options>
+ make
+ ...
+ make install
+
+
+Index: src/dird/backup.c
+===================================================================
+--- src/dird/backup.c (révision 7772)
++++ src/dird/backup.c (copie de travail)
+@@ -240,14 +240,16 @@
+ }
+ return false;
+
+-/* Come here only after starting SD thread */
++/* Come here only after starting SD thread
++ * and we don't expect any EndJob message because the
++ * the client don't have recieve the "backup" command.
++ */
+ bail_out:
+ set_jcr_job_status(jcr, JS_ErrorTerminated);
+- Dmsg1(400, "wait for sd. use=%d\n", jcr->use_count());
+- /* Cancel SD */
+- cancel_storage_daemon_job(jcr);
+- wait_for_storage_daemon_termination(jcr);
+- Dmsg1(400, "after wait for sd. use=%d\n", jcr->use_count());
++ Dmsg1(400, "wait for sd and fd. use=%d\n", jcr->use_count());
++ /* Get status from SD and FD */
++ wait_for_job_termination(jcr, false /* don't expect EndJob message*/);
++ Dmsg1(400, "after wait for sd and fd. use=%d\n", jcr->use_count());
+ return false;
+ }
+
+@@ -258,7 +260,7 @@
+ * are done, we return the job status.
+ * Also used by restore.c
+ */
+-int wait_for_job_termination(JCR *jcr)
++int wait_for_job_termination(JCR *jcr, bool expect_EndJob)
+ {
+ int32_t n = 0;
+ BSOCK *fd = jcr->file_bsock;
+@@ -270,30 +272,51 @@
+ int Encrypt = 0;
+
+ set_jcr_job_status(jcr, JS_Running);
+- /* Wait for Client to terminate */
+- while ((n = bget_dirmsg(fd)) >= 0) {
+- if (!fd_ok &&
+- (sscanf(fd->msg, EndJob, &jcr->FDJobStatus, &JobFiles,
+- &ReadBytes, &JobBytes, &Errors, &VSS, &Encrypt) == 7 ||
+- sscanf(fd->msg, OldEndJob, &jcr->FDJobStatus, &JobFiles,
+- &ReadBytes, &JobBytes, &Errors) == 5)) {
+- fd_ok = true;
+- set_jcr_job_status(jcr, jcr->FDJobStatus);
+- Dmsg1(100, "FDStatus=%c\n", (char)jcr->JobStatus);
+- } else {
+- Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"),
+- fd->msg);
++
++
++ if (fd) {
++ /* Wait for Client to terminate
++ * In some conditions, the client isn't able to send
++ * any messages and we should not wait for ages
++ */
++ int OK=true;
++ int ret;
++ while (OK && expect_EndJob) {
++
++ /* Even if the job is canceled, we let a chance to FD to
++ * send EndJob message
++ */
++ if (job_canceled(jcr)) {
++ OK=false;
++ }
++
++ /* wait for data few minutes */
++ ret = fd->wait_data_intr(3*60, 0);
++ if (ret == 1) { /* get data */
++ n = bget_dirmsg(fd);
++ if (n >= 0 &&
++ (sscanf(fd->msg, EndJob, &jcr->FDJobStatus, &JobFiles,
++ &ReadBytes, &JobBytes, &Errors, &VSS, &Encrypt) == 7 ||
++ sscanf(fd->msg, OldEndJob, &jcr->FDJobStatus, &JobFiles,
++ &ReadBytes, &JobBytes, &Errors) == 5)) {
++ fd_ok = true;
++ set_jcr_job_status(jcr, jcr->FDJobStatus);
++ OK=false; /* end of loop */
++ } else {
++ Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"),
++ fd->msg);
++ }
++ } /* else get timeout or network error */
++
++ if (is_bnet_error(fd)) {
++ Jmsg(jcr, M_FATAL, 0, _("Network error with FD during %s: ERR=%s\n"),
++ job_type_to_str(jcr->JobType), fd->bstrerror());
++ OK=false;
++ }
+ }
+- if (job_canceled(jcr)) {
+- break;
+- }
+- }
+
+- if (is_bnet_error(fd)) {
+- Jmsg(jcr, M_FATAL, 0, _("Network error with FD during %s: ERR=%s\n"),
+- job_type_to_str(jcr->JobType), fd->bstrerror());
++ fd->signal(BNET_TERMINATE); /* tell Client we are terminating */
+ }
+- fd->signal(BNET_TERMINATE); /* tell Client we are terminating */
+
+ /* Force cancel in SD if failing */
+ if (job_canceled(jcr) || !fd_ok) {
+Index: src/dird/protos.h
+===================================================================
+--- src/dird/protos.h (révision 7772)
++++ src/dird/protos.h (copie de travail)
+@@ -52,7 +52,7 @@
+ extern bool find_recycled_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
+
+ /* backup.c */
+-extern int wait_for_job_termination(JCR *jcr);
++extern int wait_for_job_termination(JCR *jcr, bool expect_EndJob=true);
+ extern bool do_backup_init(JCR *jcr);
+ extern bool do_backup(JCR *jcr);
+ extern void backup_cleanup(JCR *jcr, int TermCode);
diff --git a/app-backup/bacula/files/2.4.3/2.4.3-orphaned-jobs.patch b/app-backup/bacula/files/2.4.3/2.4.3-orphaned-jobs.patch
new file mode 100644
index 000000000000..6162c9e95a1f
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/2.4.3-orphaned-jobs.patch
@@ -0,0 +1,24 @@
+
+ This patch fixes a case of orphaned jobs (and possible deadlock)
+ during pruning.
+ Apply it to Bacula 2.4.3 (possibly earlier versions) with:
+
+ cd <bacula-source>
+ patch -p0 <2.4.3-orphaned-jobs.patch
+ ./configure <your-options>
+ make
+ ...
+ make install
+
+Index: src/dird/ua_prune.c
+===================================================================
+--- src/dird/ua_prune.c (revision 7949)
++++ src/dird/ua_prune.c (working copy)
+@@ -468,6 +468,7 @@
+ break;
+ }
+ }
++ endeach_jcr(jcr);
+ if (skip) {
+ continue;
+ }
diff --git a/app-backup/bacula/files/2.4.3/2.4.3-update-slots.patch b/app-backup/bacula/files/2.4.3/2.4.3-update-slots.patch
new file mode 100644
index 000000000000..fb29cd6a6b99
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/2.4.3-update-slots.patch
@@ -0,0 +1,79 @@
+
+ This patch corrects a problem when removing a volume from
+ an autochanger and the slot is still empty when running
+ update slots command. #1175
+
+ Apply it to version 2.4.3 with:
+
+ cd <bacula-source>
+ patch -p0 <2.4.3-update-slots.patch
+ ./configure <your-options>
+ make
+ ...
+ make install
+
+Index: src/cats/sql_update.c
+===================================================================
+--- src/cats/sql_update.c (revision 7854)
++++ src/cats/sql_update.c (working copy)
+@@ -445,14 +445,28 @@
+ db_make_inchanger_unique(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
+ {
+ char ed1[50], ed2[50];
+- if (mr->InChanger != 0 && mr->Slot != 0 && mr->StorageId != 0 &&
+- mr->MediaId != 0) {
+- Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE "
+- "Slot=%d AND StorageId=%s AND MediaId!=%s",
+- mr->Slot,
+- edit_int64(mr->StorageId, ed1), edit_int64(mr->MediaId, ed2));
+- Dmsg1(400, "%s\n", mdb->cmd);
+- UPDATE_DB(jcr, mdb, mdb->cmd);
++ if (mr->InChanger != 0 && mr->Slot != 0 && mr->StorageId != 0) {
++
++ if (mr->MediaId != 0) {
++ Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE "
++ "Slot=%d AND StorageId=%s AND MediaId!=%s",
++ mr->Slot,
++ edit_int64(mr->StorageId, ed1), edit_int64(mr->MediaId, ed2));
++
++ } else if (mr->VolumeName[0]) { /* We have a volume name */
++ Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE "
++ "Slot=%d AND StorageId=%s AND VolumeName!='%s'",
++ mr->Slot,
++ edit_int64(mr->StorageId, ed1), mr->VolumeName);
++
++ } else { /* used by ua_label to reset all volume with this slot */
++ Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE "
++ "Slot=%d AND StorageId=%s",
++ mr->Slot,
++ edit_int64(mr->StorageId, ed1), mr->VolumeName);
++ }
++ Dmsg1(100, "%s\n", mdb->cmd);
++ UPDATE_DB(jcr, mdb, mdb->cmd);
+ }
+ }
+
+Index: src/cats/sql_create.c
+===================================================================
+--- src/cats/sql_create.c (revision 7854)
++++ src/cats/sql_create.c (working copy)
+@@ -459,14 +459,13 @@
+ "WHERE MediaId=%d", dt, mr->MediaId);
+ stat = UPDATE_DB(jcr, mdb, mdb->cmd);
+ }
++ /*
++ * Make sure that if InChanger is non-zero any other identical slot
++ * has InChanger zero.
++ */
++ db_make_inchanger_unique(jcr, mdb, mr);
+ }
+
+- /*
+- * Make sure that if InChanger is non-zero any other identical slot
+- * has InChanger zero.
+- */
+- db_make_inchanger_unique(jcr, mdb, mr);
+-
+ db_unlock(mdb);
+ return stat;
+ }
diff --git a/app-backup/bacula/files/2.4.3/bacula-default-configs.patch b/app-backup/bacula/files/2.4.3/bacula-default-configs.patch
new file mode 100644
index 000000000000..f4f2c9cf7b7d
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-default-configs.patch
@@ -0,0 +1,132 @@
+--- console/console.c 2008-08-11 23:50:20.000000000 +0200
++++ console/console.c 2008-06-09 11:25:27.000000000 +0200
+@@ -105,7 +105,7 @@
+ static int execcmd(FILE *input, BSOCK *UA_sock);
+
+
+-#define CONFIG_FILE "bconsole.conf" /* default configuration file */
++#define CONFIG_FILE "/etc/bacula/bconsole.conf" /* default configuration file */
+
+ static void usage()
+ {
+--- dird/dird.c 2008-08-11 23:49:40.000000000 +0200
++++ dird/dird.c 2008-06-07 16:46:43.000000000 +0200
+@@ -85,7 +85,7 @@
+ extern URES res_all;
+ #endif
+
+-#define CONFIG_FILE "bacula-dir.conf" /* default configuration file */
++#define CONFIG_FILE "/etc/bacula/bacula-dir.conf" /* default configuration file */
+
+ static void usage()
+ {
+--- filed/filed.c 2008-08-11 23:51:18.000000000 +0200
++++ filed/filed.c 2008-06-07 16:46:43.000000000 +0200
+@@ -50,7 +50,7 @@
+ void *start_heap;
+
+
+-#define CONFIG_FILE "bacula-fd.conf" /* default config file */
++#define CONFIG_FILE "/etc/bacula/bacula-fd.conf" /* default config file */
+
+ char *configfile = NULL;
+ static bool foreground = false;
+--- gnome2-console/console.c 2008-08-11 23:50:45.000000000 +0200
++++ gnome2-console/console.c 2008-06-07 16:46:43.000000000 +0200
+@@ -93,7 +93,7 @@
+ static guint initial;
+ static int numdir = 0;
+
+-#define CONFIG_FILE "./bgnome-console.conf" /* default configuration file */
++#define CONFIG_FILE "/etc/bacula/bgnome-console.conf" /* default configuration file */
+
+ static void usage()
+ {
+--- qt-console/main.cpp 2008-08-11 23:55:10.000000000 +0200
++++ qt-console/main.cpp 2008-06-07 16:46:43.000000000 +0200
+@@ -46,7 +46,7 @@
+ static void usage();
+ static int check_resources();
+
+-#define CONFIG_FILE "./bat.conf" /* default configuration file */
++#define CONFIG_FILE "/etc/bacula/bat.conf" /* default configuration file */
+
+ /* Static variables */
+ static char *configfile = NULL;
+--- stored/bcopy.c 2008-08-11 23:54:48.000000000 +0200
++++ stored/bcopy.c 2008-06-07 16:46:43.000000000 +0200
+@@ -57,7 +57,7 @@
+ static uint32_t jobs = 0;
+ static DEV_BLOCK *out_block;
+
+-#define CONFIG_FILE "bacula-sd.conf"
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf"
+ char *configfile = NULL;
+ STORES *me = NULL; /* our Global resource */
+ bool forge_on = false; /* proceed inspite of I/O errors */
+--- stored/bextract.c 2008-08-11 23:45:44.000000000 +0200
++++ stored/bextract.c 2008-06-07 16:46:43.000000000 +0200
+@@ -64,7 +64,7 @@
+ static uint32_t wsize; /* write size */
+ static uint64_t fileAddr = 0; /* file write address */
+
+-#define CONFIG_FILE "bacula-sd.conf"
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf"
+ char *configfile = NULL;
+ STORES *me = NULL; /* our Global resource */
+ bool forge_on = false;
+--- stored/bls.c 2008-08-11 23:46:05.000000000 +0200
++++ stored/bls.c 2008-06-07 16:46:43.000000000 +0200
+@@ -59,7 +59,7 @@
+ static uint32_t num_files = 0;
+ static ATTR *attr;
+
+-#define CONFIG_FILE "bacula-sd.conf"
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf"
+ char *configfile = NULL;
+ STORES *me = NULL; /* our Global resource */
+ bool forge_on = false;
+--- stored/bscan.c 2008-08-11 23:46:26.000000000 +0200
++++ stored/bscan.c 2008-06-18 21:29:26.000000000 +0200
+@@ -100,7 +100,7 @@
+ static int num_media = 0;
+ static int num_files = 0;
+
+-#define CONFIG_FILE "bacula-sd.conf"
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf"
+ char *configfile = NULL;
+ STORES *me = NULL; /* our Global resource */
+ bool forge_on = false; /* proceed inspite of I/O errors */
+--- stored/btape.c 2008-08-11 23:46:59.000000000 +0200
++++ stored/btape.c 2008-06-07 16:46:43.000000000 +0200
+@@ -98,7 +98,7 @@
+
+
+ /* Static variables */
+-#define CONFIG_FILE "bacula-sd.conf"
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf"
+ char *configfile = NULL;
+
+ #define MAX_CMD_ARGS 30
+--- stored/stored.c 2008-08-11 23:54:32.000000000 +0200
++++ stored/stored.c 2008-06-23 11:58:34.000000000 +0200
+@@ -52,7 +52,7 @@
+
+ extern "C" void *device_initialization(void *arg);
+
+-#define CONFIG_FILE "bacula-sd.conf" /* Default config file */
++#define CONFIG_FILE "/etc/bacula/bacula-sd.conf" /* Default config file */
+
+ /* Global variables exported */
+ char OK_msg[] = "3000 OK\n";
+--- tray-monitor/tray-monitor.c 2008-08-11 23:49:13.000000000 +0200
++++ tray-monitor/tray-monitor.c 2008-06-07 16:46:43.000000000 +0200
+@@ -104,7 +104,7 @@
+
+ PangoFontDescription *font_desc = NULL;
+
+-#define CONFIG_FILE "./tray-monitor.conf" /* default configuration file */
++#define CONFIG_FILE "/etc/bacula/tray-monitor.conf" /* default configuration file */
+
+ static void usage()
+ {
diff --git a/app-backup/bacula/files/2.4.3/bacula-dir-conf b/app-backup/bacula/files/2.4.3/bacula-dir-conf
new file mode 100644
index 000000000000..c99079e7caad
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-dir-conf
@@ -0,0 +1,15 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-dir-conf,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+# Config file for /etc/init.d/bacula-dir
+
+# If the database server where you store your bacula catalog
+# is on a different machine, please set this to 0.
+LOCAL_DB=1
+
+# Options for the director daemon.
+# The DIR can be run as a non-root user, however
+# please ensure that this user has proper permissions to
+# access your backup devices.
+DIR_OPTIONS="-u root -g bacula -c /etc/bacula/bacula-dir.conf"
diff --git a/app-backup/bacula/files/2.4.3/bacula-dir-init b/app-backup/bacula/files/2.4.3/bacula-dir-init
new file mode 100644
index 000000000000..4c3ae527f318
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-dir-init
@@ -0,0 +1,25 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-dir-init,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+depend() {
+ need net
+ if [ "${LOCAL_DB}" -eq 1 ]; then
+ need "%database%"
+ fi
+ use dns bacula-fd bacula-sd
+}
+
+start() {
+ ebegin "Starting bacula director"
+ start-stop-daemon --start --quiet --exec /usr/sbin/bacula-dir \
+ -- ${DIR_OPTIONS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping bacula director"
+ start-stop-daemon --stop --quiet --pidfile /var/run/bacula-dir.*.pid
+ eend $?
+}
diff --git a/app-backup/bacula/files/2.4.3/bacula-fd-conf b/app-backup/bacula/files/2.4.3/bacula-fd-conf
new file mode 100644
index 000000000000..1792e507e6f3
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-fd-conf
@@ -0,0 +1,8 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-fd-conf,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+# Config file for /etc/init.d/bacula-fd
+
+# Options for the file daemon.
+FD_OPTIONS="-u root -g bacula -c /etc/bacula/bacula-fd.conf"
diff --git a/app-backup/bacula/files/2.4.3/bacula-fd-init b/app-backup/bacula/files/2.4.3/bacula-fd-init
new file mode 100644
index 000000000000..bb674a641b68
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-fd-init
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-fd-init,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+depend() {
+ need net
+ use dns
+}
+
+start() {
+ ebegin "Starting bacula file daemon"
+ start-stop-daemon --start --quiet --exec /usr/sbin/bacula-fd \
+ -- ${FD_OPTIONS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping bacula file daemon"
+ start-stop-daemon --stop --quiet --pidfile /var/run/bacula-fd.*.pid
+ eend $?
+}
diff --git a/app-backup/bacula/files/2.4.3/bacula-gnomesu2gksu.diff b/app-backup/bacula/files/2.4.3/bacula-gnomesu2gksu.diff
new file mode 100644
index 000000000000..8f17daa8db9b
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-gnomesu2gksu.diff
@@ -0,0 +1,48 @@
+diff -urN bacula-2.2.4.orig/scripts/bacula.desktop.gnome1.xsu.in bacula-2.2.4/scripts/bacula.desktop.gnome1.xsu.in
+--- bacula-2.2.4.orig/scripts/bacula.desktop.gnome1.xsu.in 2008-04-18 19:06:43.000000000 +0200
++++ bacula-2.2.4/scripts/bacula.desktop.gnome1.xsu.in 2008-10-10 23:34:42.000000000 +0200
+@@ -2,7 +2,7 @@
+ Name=Bacula Console
+ Comment=Bacula Director Console
+ Icon=/usr/share/pixmaps/bacula.png
+-Exec=gnomesu -t "Query" -c "@sbindir@/bgnome-console -c @sysconfdir@/bgnome-console.conf" -d -e -m "In order to run the bacula console as root, ^additional information is required."
++Exec=gksu -u root -m 'Bacula Console needs to be run with superuser privileges' "@sbindir@/bgnome-console -c @sysconfdir@/bgnome-console.conf"
+ Terminal=false
+ Type=Application
+ Encoding=UTF-8
+diff -urN bacula-2.2.4.orig/scripts/bacula.desktop.gnome2.xsu.in bacula-2.2.4/scripts/bacula.desktop.gnome2.xsu.in
+--- bacula-2.2.4.orig/scripts/bacula.desktop.gnome2.xsu.in 2008-04-18 19:06:43.000000000 +0200
++++ bacula-2.2.4/scripts/bacula.desktop.gnome2.xsu.in 2008-10-10 23:32:44.000000000 +0200
+@@ -2,7 +2,7 @@
+ Name=Bacula Console
+ Comment=Bacula Director Console
+ Icon=/usr/share/pixmaps/bacula.png
+-Exec=gnomesu -t "Query" -c "@sbindir@/bgnome-console -c @sysconfdir@/bgnome-console.conf" -d -e -m "In order to run the bacula console as root, ^additional information is required."
++Exec=gksu -u root -m 'Bacula Console needs to be run with superuser privileges' "@sbindir@/bgnome-console -c @sysconfdir@/bgnome-console.conf"
+ Terminal=false
+ Type=Application
+ Encoding=UTF-8
+diff -urN bacula-2.2.4.orig/scripts/bat.desktop.xsu.in bacula-2.2.4/scripts/bat.desktop.xsu.in
+--- bacula-2.2.4.orig/scripts/bat.desktop.xsu.in 2008-04-29 15:48:18.000000000 +0200
++++ bacula-2.2.4/scripts/bat.desktop.xsu.in 2008-10-10 23:33:57.000000000 +0200
+@@ -2,7 +2,7 @@
+ Name=Bacula Administration Tool
+ Comment=Bacula Director Console
+ Icon=/usr/share/pixmaps/bat_icon.png
+-Exec=gnomesu -t "Query" -c "@sbindir@/bat -c @sysconfdir@/bat.conf" -d -e -m "In order to run the bacula console as root, ^additional information is required."
++Exec=gksu -u root -m 'Bacula Administration Tool needs to be run with superuser privileges' "@sbindir@/bat -c @sysconfdir@/bat.conf"
+ Terminal=false
+ Type=Application
+ Encoding=UTF-8
+diff -urN bacula-2.2.4.orig/scripts/wxconsole.desktop.xsu.in bacula-2.2.4/scripts/wxconsole.desktop.xsu.in
+--- bacula-2.2.4.orig/scripts/wxconsole.desktop.xsu.in 2008-04-29 15:11:37.000000000 +0200
++++ bacula-2.2.4/scripts/wxconsole.desktop.xsu.in 2008-10-10 23:34:06.000000000 +0200
+@@ -2,7 +2,7 @@
+ Name=Bacula WX Console
+ Comment=Bacula Director Console
+ Icon=/usr/share/pixmaps/wxwin16x16.xpm
+-Exec=gnomesu -t "Query" -c "@sbindir@/bwx-console -c @sysconfdir@/bwx-console.conf" -d -e -m "In order to run the bacula wx console as root, ^additional information is required."
++Exec=gksu -u root -m 'Bacula WX Console needs to be run with superuser privileges' "@sbindir@/bwx-console -c @sysconfdir@/bwx-console.conf"
+ Terminal=false
+ Type=Application
+ Encoding=UTF-8
diff --git a/app-backup/bacula/files/2.4.3/bacula-sd-conf b/app-backup/bacula/files/2.4.3/bacula-sd-conf
new file mode 100644
index 000000000000..96b84e950a13
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-sd-conf
@@ -0,0 +1,11 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-sd-conf,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+# Config file for /etc/init.d/bacula-sd
+
+# Options for the storage daemon.
+# The SD can be run as a non-root user, however
+# please ensure that this user has proper permissions to
+# access your backup devices.
+SD_OPTIONS="-u root -g bacula -c /etc/bacula/bacula-sd.conf"
diff --git a/app-backup/bacula/files/2.4.3/bacula-sd-init b/app-backup/bacula/files/2.4.3/bacula-sd-init
new file mode 100644
index 000000000000..9c684d42e5dc
--- /dev/null
+++ b/app-backup/bacula/files/2.4.3/bacula-sd-init
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/files/2.4.3/bacula-sd-init,v 1.1 2008/11/07 01:44:18 wschlich Exp $
+
+depend() {
+ need net
+ use dns
+}
+
+start() {
+ ebegin "Starting bacula storage daemon"
+ start-stop-daemon --start --quiet --exec /usr/sbin/bacula-sd \
+ -- ${SD_OPTIONS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping bacula storage daemon"
+ start-stop-daemon --stop --quiet --pidfile /var/run/bacula-sd.*.pid
+ eend $?
+}