Initial import of bacula
This commit is contained in:
parent
0e76e14432
commit
0745245f26
@ -0,0 +1,2 @@
|
|||||||
|
bacula-2.0.3.tar.gz
|
||||||
|
bacula-docs-2.0.3.tar.gz
|
86
2.0.3-ampm.patch
Normal file
86
2.0.3-ampm.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
This patch should resolve some problems with handling of am/pm
|
||||||
|
in schedules as reported by bug #808.
|
||||||
|
|
||||||
|
According to the NIST (US National Institute of Standards and Technology),
|
||||||
|
12am and 12pm are ambiguous and can be defined to anything. However,
|
||||||
|
12:01am is the same as 00:01 and 12:01pm is the same as 12:01, so Bacula
|
||||||
|
defines 12am as 00:00 (midnight) and 12pm as 12:00 (noon). You can avoid
|
||||||
|
this abiguity (confusion) by using 24 hour time specifications (i.e. no
|
||||||
|
am/pm). This is the definition in Bacula version 2.0.3 and later.
|
||||||
|
|
||||||
|
Apply it to version 2.0.3 with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-ampm.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
Index: src/dird/run_conf.c
|
||||||
|
===================================================================
|
||||||
|
--- src/dird/run_conf.c (revision 4349)
|
||||||
|
+++ src/dird/run_conf.c (working copy)
|
||||||
|
@@ -339,6 +339,7 @@
|
||||||
|
for ( ; token != T_EOL; (token = lex_get_token(lc, T_ALL))) {
|
||||||
|
int len;
|
||||||
|
bool pm = false;
|
||||||
|
+ bool am = false;
|
||||||
|
switch (token) {
|
||||||
|
case T_NUMBER:
|
||||||
|
state = s_mday;
|
||||||
|
@@ -434,6 +435,7 @@
|
||||||
|
if (!have_hour) {
|
||||||
|
clear_bits(0, 23, lrun.hour);
|
||||||
|
}
|
||||||
|
+// Dmsg1(000, "s_time=%s\n", lc->str);
|
||||||
|
p = strchr(lc->str, ':');
|
||||||
|
if (!p) {
|
||||||
|
scan_err0(lc, _("Time logic error.\n"));
|
||||||
|
@@ -441,20 +443,19 @@
|
||||||
|
}
|
||||||
|
*p++ = 0; /* separate two halves */
|
||||||
|
code = atoi(lc->str); /* pick up hour */
|
||||||
|
+ code2 = atoi(p); /* pick up minutes */
|
||||||
|
len = strlen(p);
|
||||||
|
- if (len > 2 && p[len-1] == 'm') {
|
||||||
|
- if (p[len-2] == 'a') {
|
||||||
|
- pm = false;
|
||||||
|
- } else if (p[len-2] == 'p') {
|
||||||
|
- pm = true;
|
||||||
|
- } else {
|
||||||
|
- scan_err0(lc, _("Bad time specification."));
|
||||||
|
- /* NOT REACHED */
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- pm = false;
|
||||||
|
+ if (len >= 2) {
|
||||||
|
+ p += 2;
|
||||||
|
}
|
||||||
|
- code2 = atoi(p); /* pick up minutes */
|
||||||
|
+ if (strcasecmp(p, "pm") == 0) {
|
||||||
|
+ pm = true;
|
||||||
|
+ } else if (strcasecmp(p, "am") == 0) {
|
||||||
|
+ am = true;
|
||||||
|
+ } else if (len != 2) {
|
||||||
|
+ scan_err0(lc, _("Bad time specification."));
|
||||||
|
+ /* NOT REACHED */
|
||||||
|
+ }
|
||||||
|
/*
|
||||||
|
* Note, according to NIST, 12am and 12pm are ambiguous and
|
||||||
|
* can be defined to anything. However, 12:01am is the same
|
||||||
|
@@ -467,13 +468,14 @@
|
||||||
|
code += 12;
|
||||||
|
}
|
||||||
|
/* am */
|
||||||
|
- } else if (code == 12) {
|
||||||
|
+ } else if (am && code == 12) {
|
||||||
|
code -= 12;
|
||||||
|
}
|
||||||
|
if (code < 0 || code > 23 || code2 < 0 || code2 > 59) {
|
||||||
|
scan_err0(lc, _("Bad time specification."));
|
||||||
|
/* NOT REACHED */
|
||||||
|
}
|
||||||
|
+// Dmsg2(000, "hour=%d min=%d\n", code, code2);
|
||||||
|
set_bit(code, lrun.hour);
|
||||||
|
lrun.minute = code2;
|
||||||
|
have_hour = true;
|
32
2.0.3-maxbyteslist.patch
Normal file
32
2.0.3-maxbyteslist.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
This patch adds the MaxVolBytes to the output of a "show pools" command.
|
||||||
|
It fixes bug #814. Apply it to Bacula version 2.0.3 with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-maxbyteslist.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
|
||||||
|
Index: src/dird/dird_conf.c
|
||||||
|
===================================================================
|
||||||
|
--- src/dird/dird_conf.c (revision 4349)
|
||||||
|
+++ src/dird/dird_conf.c (working copy)
|
||||||
|
@@ -844,10 +844,13 @@
|
||||||
|
NPRT(res->res_pool.label_format));
|
||||||
|
sendit(sock, _(" CleaningPrefix=%s LabelType=%d\n"),
|
||||||
|
NPRT(res->res_pool.cleaning_prefix), res->res_pool.LabelType);
|
||||||
|
- sendit(sock, _(" RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"),
|
||||||
|
+ sendit(sock, _(" RecyleOldest=%d PurgeOldest=%d\n"),
|
||||||
|
res->res_pool.recycle_oldest_volume,
|
||||||
|
- res->res_pool.purge_oldest_volume,
|
||||||
|
- res->res_pool.MaxVolJobs, res->res_pool.MaxVolFiles);
|
||||||
|
+ res->res_pool.purge_oldest_volume);
|
||||||
|
+ sendit(sock, _(" MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n"),
|
||||||
|
+ res->res_pool.MaxVolJobs,
|
||||||
|
+ res->res_pool.MaxVolFiles,
|
||||||
|
+ edit_uint64(res->res_pool.MaxVolFiles, ed1));
|
||||||
|
sendit(sock, _(" MigTime=%s MigHiBytes=%s MigLoBytes=%s\n"),
|
||||||
|
edit_utime(res->res_pool.MigrationTime, ed1, sizeof(ed1)),
|
||||||
|
edit_uint64(res->res_pool.MigrationHighBytes, ed2),
|
137
2.0.3-maxwaittime.patch
Normal file
137
2.0.3-maxwaittime.patch
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
|
||||||
|
This patch should fix the logic error in checking for the MaxWaitTime of
|
||||||
|
a job in src/dird/job.c. It fixes bug #802.
|
||||||
|
|
||||||
|
Apply it to Bacula version 2.0.3 with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-maxwaittime.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Index: src/dird/job.c
|
||||||
|
===================================================================
|
||||||
|
--- src/dird/job.c (revision 4349)
|
||||||
|
+++ src/dird/job.c (working copy)
|
||||||
|
@@ -481,7 +481,6 @@
|
||||||
|
static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr)
|
||||||
|
{
|
||||||
|
bool cancel = false;
|
||||||
|
- bool ok_to_cancel = false;
|
||||||
|
JOB *job = jcr->job;
|
||||||
|
|
||||||
|
if (job_canceled(jcr)) {
|
||||||
|
@@ -493,69 +492,18 @@
|
||||||
|
}
|
||||||
|
if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 &&
|
||||||
|
(watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) {
|
||||||
|
- ok_to_cancel = true;
|
||||||
|
+ cancel = true;
|
||||||
|
} else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 &&
|
||||||
|
(watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) {
|
||||||
|
- ok_to_cancel = true;
|
||||||
|
+ cancel = true;
|
||||||
|
} else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 &&
|
||||||
|
(watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) {
|
||||||
|
- ok_to_cancel = true;
|
||||||
|
+ cancel = true;
|
||||||
|
} else if (job->MaxWaitTime != 0 &&
|
||||||
|
(watchdog_time - jcr->start_time) >= job->MaxWaitTime) {
|
||||||
|
- ok_to_cancel = true;
|
||||||
|
- }
|
||||||
|
- if (!ok_to_cancel) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * I don't see the need for all this -- kes 17Dec06
|
||||||
|
- */
|
||||||
|
-#ifdef xxx
|
||||||
|
- Dmsg3(800, "Job %d (%s): MaxWaitTime of %d seconds exceeded, "
|
||||||
|
- "checking status\n",
|
||||||
|
- jcr->JobId, jcr->Job, job->MaxWaitTime);
|
||||||
|
- switch (jcr->JobStatus) {
|
||||||
|
- case JS_Created:
|
||||||
|
- case JS_Blocked:
|
||||||
|
- case JS_WaitFD:
|
||||||
|
- case JS_WaitSD:
|
||||||
|
- case JS_WaitStoreRes:
|
||||||
|
- case JS_WaitClientRes:
|
||||||
|
- case JS_WaitJobRes:
|
||||||
|
- case JS_WaitPriority:
|
||||||
|
- case JS_WaitMaxJobs:
|
||||||
|
- case JS_WaitStartTime:
|
||||||
|
cancel = true;
|
||||||
|
- Dmsg0(200, "JCR blocked in #1\n");
|
||||||
|
- break;
|
||||||
|
- case JS_Running:
|
||||||
|
- Dmsg0(800, "JCR running, checking SD status\n");
|
||||||
|
- switch (jcr->SDJobStatus) {
|
||||||
|
- case JS_WaitMount:
|
||||||
|
- case JS_WaitMedia:
|
||||||
|
- case JS_WaitFD:
|
||||||
|
- cancel = true;
|
||||||
|
- Dmsg0(800, "JCR blocked in #2\n");
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- Dmsg0(800, "JCR not blocked in #2\n");
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- break;
|
||||||
|
- case JS_Terminated:
|
||||||
|
- case JS_ErrorTerminated:
|
||||||
|
- case JS_Canceled:
|
||||||
|
- case JS_FatalError:
|
||||||
|
- Dmsg0(800, "JCR already dead in #3\n");
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"),
|
||||||
|
- jcr->JobStatus);
|
||||||
|
}
|
||||||
|
- Dmsg3(800, "MaxWaitTime result: %scancel JCR %p (%s)\n",
|
||||||
|
- cancel ? "" : "do not ", jcr, jcr->Job);
|
||||||
|
-#endif
|
||||||
|
+
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -574,36 +522,6 @@
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef xxx
|
||||||
|
- switch (jcr->JobStatus) {
|
||||||
|
- case JS_Created:
|
||||||
|
- case JS_Running:
|
||||||
|
- case JS_Blocked:
|
||||||
|
- case JS_WaitFD:
|
||||||
|
- case JS_WaitSD:
|
||||||
|
- case JS_WaitStoreRes:
|
||||||
|
- case JS_WaitClientRes:
|
||||||
|
- case JS_WaitJobRes:
|
||||||
|
- case JS_WaitPriority:
|
||||||
|
- case JS_WaitMaxJobs:
|
||||||
|
- case JS_WaitStartTime:
|
||||||
|
- case JS_Differences:
|
||||||
|
- cancel = true;
|
||||||
|
- break;
|
||||||
|
- case JS_Terminated:
|
||||||
|
- case JS_ErrorTerminated:
|
||||||
|
- case JS_Canceled:
|
||||||
|
- case JS_FatalError:
|
||||||
|
- cancel = false;
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"),
|
||||||
|
- jcr->JobStatus);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- Dmsg3(200, "MaxRunTime result: %scancel JCR %p (%s)\n",
|
||||||
|
- cancel ? "" : "do not ", jcr, jcr->Job);
|
||||||
|
-#endif
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
88
2.0.3-scheduler-next-hour.patch
Normal file
88
2.0.3-scheduler-next-hour.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
|
||||||
|
This patch should fix bug #812 where the DST time shift was
|
||||||
|
incorrectly handled. This patch was submitted by Martin Simmons.
|
||||||
|
Apply it to Bacula version 2.0.3 with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-scheduler-next-hour.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
Index: src/dird/scheduler.c
|
||||||
|
===================================================================
|
||||||
|
--- src/dird/scheduler.c (revision 4445)
|
||||||
|
+++ src/dird/scheduler.c (working copy)
|
||||||
|
@@ -175,11 +175,11 @@
|
||||||
|
}
|
||||||
|
/* Recheck at least once per minute */
|
||||||
|
bmicrosleep((next_check_secs < twait)?next_check_secs:twait, 0);
|
||||||
|
- /* Attempt to handle clock shift from/to daylight savings time
|
||||||
|
+ /* Attempt to handle clock shift (but not daylight savings time changes)
|
||||||
|
* we allow a skew of 10 seconds before invalidating everything.
|
||||||
|
*/
|
||||||
|
now = time(NULL);
|
||||||
|
- if (now < prev+10 || now > (prev+next_check_secs+10)) {
|
||||||
|
+ if (now < prev-10 || now > (prev+next_check_secs+10)) {
|
||||||
|
schedules_invalidated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -284,6 +284,9 @@
|
||||||
|
wom = mday / 7;
|
||||||
|
woy = tm_woy(now); /* get week of year */
|
||||||
|
|
||||||
|
+ Dmsg7(dbglvl, "now = %x: h=%d m=%d md=%d wd=%d wom=%d woy=%d\n",
|
||||||
|
+ now, hour, month, mday, wday, wom, woy);
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Compute values for next hour from now.
|
||||||
|
* We do this to be sure we don't miss a job while
|
||||||
|
@@ -299,6 +302,9 @@
|
||||||
|
nh_wom = nh_mday / 7;
|
||||||
|
nh_woy = tm_woy(now); /* get week of year */
|
||||||
|
|
||||||
|
+ Dmsg7(dbglvl, "nh = %x: h=%d m=%d md=%d wd=%d wom=%d woy=%d\n",
|
||||||
|
+ next_hour, nh_hour, nh_month, nh_mday, nh_wday, nh_wom, nh_woy);
|
||||||
|
+
|
||||||
|
/* Loop through all jobs */
|
||||||
|
LockRes();
|
||||||
|
foreach_res(job, R_JOB) {
|
||||||
|
@@ -351,24 +357,20 @@
|
||||||
|
|
||||||
|
Dmsg3(dbglvl, "run@%p: run_now=%d run_nh=%d\n", run, run_now, run_nh);
|
||||||
|
|
||||||
|
- /* find time (time_t) job is to be run */
|
||||||
|
- (void)localtime_r(&now, &tm); /* reset tm structure */
|
||||||
|
- tm.tm_min = run->minute; /* set run minute */
|
||||||
|
- tm.tm_sec = 0; /* zero secs */
|
||||||
|
- if (run_now) {
|
||||||
|
- runtime = mktime(&tm);
|
||||||
|
- add_job(job, run, now, runtime);
|
||||||
|
- }
|
||||||
|
- /* If job is to be run in the next hour schedule it */
|
||||||
|
- if (run_nh) {
|
||||||
|
- /* Set correct values */
|
||||||
|
- tm.tm_hour = nh_hour;
|
||||||
|
- tm.tm_mday = nh_mday + 1; /* fixup because we biased for tests above */
|
||||||
|
- tm.tm_mon = nh_month;
|
||||||
|
- tm.tm_year = nh_year;
|
||||||
|
- runtime = mktime(&tm);
|
||||||
|
- add_job(job, run, now, runtime);
|
||||||
|
- }
|
||||||
|
+ if (run_now || run_nh) {
|
||||||
|
+ /* find time (time_t) job is to be run */
|
||||||
|
+ (void)localtime_r(&now, &tm); /* reset tm structure */
|
||||||
|
+ tm.tm_min = run->minute; /* set run minute */
|
||||||
|
+ tm.tm_sec = 0; /* zero secs */
|
||||||
|
+ runtime = mktime(&tm);
|
||||||
|
+ if (run_now) {
|
||||||
|
+ add_job(job, run, now, runtime);
|
||||||
|
+ }
|
||||||
|
+ /* If job is to be run in the next hour schedule it */
|
||||||
|
+ if (run_nh) {
|
||||||
|
+ add_job(job, run, now, runtime + 3600);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UnlockRes();
|
50
2.0.3-tls-disconnect.patch
Normal file
50
2.0.3-tls-disconnect.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
This patch should fix the spurious connection drops that fail jobs
|
||||||
|
as reported in bug #888.
|
||||||
|
Apply it to version 2.0.3 (possibly earlier versions of 2.0) with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-tls-disconnect.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
Index: src/lib/tls.c
|
||||||
|
===================================================================
|
||||||
|
--- src/lib/tls.c (revision 4668)
|
||||||
|
+++ src/lib/tls.c (working copy)
|
||||||
|
@@ -540,14 +540,6 @@
|
||||||
|
* The first time to initiate the shutdown handshake, and the second to
|
||||||
|
* receive the peer's reply.
|
||||||
|
*
|
||||||
|
- * However, it is valid to close the SSL connection after the initial
|
||||||
|
- * shutdown notification is sent to the peer, without waiting for the
|
||||||
|
- * peer's reply, as long as you do not plan to re-use that particular
|
||||||
|
- * SSL connection object.
|
||||||
|
- *
|
||||||
|
- * Because we do not re-use SSL connection objects, I do not bother
|
||||||
|
- * calling SSL_shutdown a second time.
|
||||||
|
- *
|
||||||
|
* In addition, if the underlying socket is blocking, SSL_shutdown()
|
||||||
|
* will not return until the current stage of the shutdown process has
|
||||||
|
* completed or an error has occured. By setting the socket blocking
|
||||||
|
@@ -560,6 +552,10 @@
|
||||||
|
flags = bnet_set_blocking(bsock);
|
||||||
|
|
||||||
|
err = SSL_shutdown(bsock->tls->openssl);
|
||||||
|
+ if (err == 0) {
|
||||||
|
+ /* Finish up the closing */
|
||||||
|
+ err = SSL_shutdown(bsock->tls->openssl);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
switch (SSL_get_error(bsock->tls->openssl, err)) {
|
||||||
|
case SSL_ERROR_NONE:
|
||||||
|
@@ -574,8 +570,6 @@
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* Restore saved flags */
|
||||||
|
- bnet_restore_blocking(bsock, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Does all the manual labor for tls_bsock_readn() and tls_bsock_writen() */
|
117
2.0.3-verify.patch
Normal file
117
2.0.3-verify.patch
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
This patch should fix the problem reported in bug #803 where a Verify
|
||||||
|
job select the JobId to verified at schedule time rather than at runtime.
|
||||||
|
This makes it difficult or impossible to schedule a verify just after
|
||||||
|
a backup.
|
||||||
|
|
||||||
|
Apply this patch to Bacula version 2.0.3 (probably 2.0.2 as well) with:
|
||||||
|
|
||||||
|
cd <bacula-source>
|
||||||
|
patch -p0 <2.0.3-verify.patch
|
||||||
|
make
|
||||||
|
...
|
||||||
|
make install
|
||||||
|
|
||||||
|
Index: src/dird/verify.c
|
||||||
|
===================================================================
|
||||||
|
--- src/dird/verify.c (revision 4353)
|
||||||
|
+++ src/dird/verify.c (working copy)
|
||||||
|
@@ -40,6 +25,21 @@
|
||||||
|
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
|
||||||
|
Switzerland, email:ftf@fsfeurope.org.
|
||||||
|
*/
|
||||||
|
+/*
|
||||||
|
+ *
|
||||||
|
+ * Bacula Director -- verify.c -- responsible for running file verification
|
||||||
|
+ *
|
||||||
|
+ * Kern Sibbald, October MM
|
||||||
|
+ *
|
||||||
|
+ * Basic tasks done here:
|
||||||
|
+ * Open DB
|
||||||
|
+ * Open connection with File daemon and pass him commands
|
||||||
|
+ * to do the verify.
|
||||||
|
+ * When the File daemon sends the attributes, compare them to
|
||||||
|
+ * what is in the DB.
|
||||||
|
+ *
|
||||||
|
+ * Version $Id$
|
||||||
|
+ */
|
||||||
|
|
||||||
|
|
||||||
|
#include "bacula.h"
|
||||||
|
@@ -66,6 +66,22 @@
|
||||||
|
*/
|
||||||
|
bool do_verify_init(JCR *jcr)
|
||||||
|
{
|
||||||
|
+ return true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Do a verification of the specified files against the Catlaog
|
||||||
|
+ *
|
||||||
|
+ * Returns: false on failure
|
||||||
|
+ * true on success
|
||||||
|
+ */
|
||||||
|
+bool do_verify(JCR *jcr)
|
||||||
|
+{
|
||||||
|
+ const char *level;
|
||||||
|
+ BSOCK *fd;
|
||||||
|
+ int stat;
|
||||||
|
+ char ed1[100];
|
||||||
|
JOB_DBR jr;
|
||||||
|
JobId_t verify_jobid = 0;
|
||||||
|
const char *Name;
|
||||||
|
@@ -74,12 +90,16 @@
|
||||||
|
|
||||||
|
memset(&jcr->previous_jr, 0, sizeof(jcr->previous_jr));
|
||||||
|
|
||||||
|
- Dmsg1(9, "bdird: created client %s record\n", jcr->client->hdr.name);
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
- * Find JobId of last job that ran. E.g.
|
||||||
|
- * for VERIFY_CATALOG we want the JobId of the last INIT.
|
||||||
|
- * for VERIFY_VOLUME_TO_CATALOG, we want the JobId of the
|
||||||
|
+ * Find JobId of last job that ran. Note, we do this when
|
||||||
|
+ * the job actually starts running, not at schedule time,
|
||||||
|
+ * so that we find the last job that terminated before
|
||||||
|
+ * this job runs rather than before it is scheduled. This
|
||||||
|
+ * permits scheduling a Backup and Verify at the same time,
|
||||||
|
+ * but with the Verify at a lower priority.
|
||||||
|
+ *
|
||||||
|
+ * For VERIFY_CATALOG we want the JobId of the last INIT.
|
||||||
|
+ * For VERIFY_VOLUME_TO_CATALOG, we want the JobId of the
|
||||||
|
* last backup Job.
|
||||||
|
*/
|
||||||
|
if (jcr->JobLevel == L_VERIFY_CATALOG ||
|
||||||
|
@@ -89,7 +109,7 @@
|
||||||
|
if (jcr->verify_job &&
|
||||||
|
(jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG ||
|
||||||
|
jcr->JobLevel == L_VERIFY_DISK_TO_CATALOG)) {
|
||||||
|
- Name = jcr->verify_job->hdr.name;
|
||||||
|
+ Name = jcr->verify_job->name();
|
||||||
|
} else {
|
||||||
|
Name = NULL;
|
||||||
|
}
|
||||||
|
@@ -149,23 +169,7 @@
|
||||||
|
jcr->fileset = jcr->verify_job->fileset;
|
||||||
|
}
|
||||||
|
Dmsg2(100, "ClientId=%u JobLevel=%c\n", jcr->previous_jr.ClientId, jcr->JobLevel);
|
||||||
|
- return true;
|
||||||
|
-}
|
||||||
|
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Do a verification of the specified files against the Catlaog
|
||||||
|
- *
|
||||||
|
- * Returns: false on failure
|
||||||
|
- * true on success
|
||||||
|
- */
|
||||||
|
-bool do_verify(JCR *jcr)
|
||||||
|
-{
|
||||||
|
- const char *level;
|
||||||
|
- BSOCK *fd;
|
||||||
|
- int stat;
|
||||||
|
- char ed1[100];
|
||||||
|
-
|
||||||
|
if (!db_update_job_start_record(jcr, jcr->db, &jcr->jr)) {
|
||||||
|
Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db));
|
||||||
|
return false;
|
256
bacula-config.patch
Normal file
256
bacula-config.patch
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
--- bacula-2.0.2/src/gnome2-console/gnome-console.conf.in.orig 2007-02-06 13:35:12.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/gnome2-console/gnome-console.conf.in 2007-02-06 13:35:25.000000000 +0100
|
||||||
|
@@ -3,9 +3,9 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
DIRport = @dir_port@
|
||||||
|
- address = @hostname@
|
||||||
|
+ address = server.example.com
|
||||||
|
Password = "@dir_password@"
|
||||||
|
}
|
||||||
|
|
||||||
|
--- bacula-2.0.2/src/dird/bacula-dir.conf.in.orig 2007-02-06 13:33:19.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/dird/bacula-dir.conf.in 2007-02-06 13:34:49.000000000 +0100
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Director { # define myself
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
DIRport = @dir_port@ # where we listen for UA connections
|
||||||
|
QueryFile = "@scriptdir@/query.sql"
|
||||||
|
WorkingDirectory = "@working_dir@"
|
||||||
|
@@ -27,7 +27,7 @@
|
||||||
|
Name = "DefaultJob"
|
||||||
|
Type = Backup
|
||||||
|
Level = Incremental
|
||||||
|
- Client = @hostname@-fd
|
||||||
|
+ Client = bacula-fd
|
||||||
|
FileSet = "Full Set"
|
||||||
|
Schedule = "WeeklyCycle"
|
||||||
|
Storage = File
|
||||||
|
@@ -48,7 +48,7 @@
|
||||||
|
|
||||||
|
#Job {
|
||||||
|
# Name = "Client2"
|
||||||
|
-# Client = @hostname@2-fd
|
||||||
|
+# Client = bacula2-fd
|
||||||
|
# JobDefs = "DefaultJob"
|
||||||
|
# Write Bootstrap = "@working_dir@/Client2.bsr"
|
||||||
|
#}
|
||||||
|
@@ -75,7 +75,7 @@
|
||||||
|
Job {
|
||||||
|
Name = "RestoreFiles"
|
||||||
|
Type = Restore
|
||||||
|
- Client=@hostname@-fd
|
||||||
|
+ Client=bacula-fd
|
||||||
|
FileSet="Full Set"
|
||||||
|
Storage = File
|
||||||
|
Pool = Default
|
||||||
|
@@ -149,8 +149,8 @@
|
||||||
|
|
||||||
|
# Client (File Services) to backup
|
||||||
|
Client {
|
||||||
|
- Name = @hostname@-fd
|
||||||
|
- Address = @hostname@
|
||||||
|
+ Name = bacula-fd
|
||||||
|
+ Address = client.example.com
|
||||||
|
FDPort = @fd_port@
|
||||||
|
Catalog = MyCatalog
|
||||||
|
Password = "@fd_password@" # password for FileDaemon
|
||||||
|
@@ -164,8 +164,8 @@
|
||||||
|
# You should change Name, Address, and Password before using
|
||||||
|
#
|
||||||
|
#Client {
|
||||||
|
-# Name = @hostname@2-fd
|
||||||
|
-# Address = @hostname@2
|
||||||
|
+# Name = bacula2-fd
|
||||||
|
+# Address = client2.example.com
|
||||||
|
# FDPort = @fd_port@
|
||||||
|
# Catalog = MyCatalog
|
||||||
|
# Password = "@fd_password@2" # password for FileDaemon 2
|
||||||
|
@@ -179,7 +179,7 @@
|
||||||
|
Storage {
|
||||||
|
Name = File
|
||||||
|
# Do not use "localhost" here
|
||||||
|
- Address = @hostname@ # N.B. Use a fully qualified name here
|
||||||
|
+ Address = storage.example.com # N.B. Use a fully qualified name here
|
||||||
|
SDPort = @sd_port@
|
||||||
|
Password = "@sd_password@"
|
||||||
|
Device = FileStorage
|
||||||
|
@@ -192,7 +192,7 @@
|
||||||
|
#Storage {
|
||||||
|
# Name = DDS-4
|
||||||
|
# Do not use "localhost" here
|
||||||
|
-# Address = @hostname@ # N.B. Use a fully qualified name here
|
||||||
|
+# Address = storage.example.com # N.B. Use a fully qualified name here
|
||||||
|
# SDPort = @sd_port@
|
||||||
|
# Password = "@sd_password@" # password for Storage daemon
|
||||||
|
# Device = DDS-4 # must be same as Device in Storage daemon
|
||||||
|
@@ -204,7 +204,7 @@
|
||||||
|
#Storage {
|
||||||
|
# Name = "8mmDrive"
|
||||||
|
# Do not use "localhost" here
|
||||||
|
-# Address = @hostname@ # N.B. Use a fully qualified name here
|
||||||
|
+# Address = storage.example.com # N.B. Use a fully qualified name here
|
||||||
|
# SDPort = @sd_port@
|
||||||
|
# Password = "@sd_password@"
|
||||||
|
# Device = "Exabyte 8mm"
|
||||||
|
@@ -215,7 +215,7 @@
|
||||||
|
#Storage {
|
||||||
|
# Name = "DVD"
|
||||||
|
# Do not use "localhost" here
|
||||||
|
-# Address = @hostname@ # N.B. Use a fully qualified name here
|
||||||
|
+# Address = storage.example.com # N.B. Use a fully qualified name here
|
||||||
|
# SDPort = @sd_port@
|
||||||
|
# Password = "@sd_password@"
|
||||||
|
# Device = "DVD Writer"
|
||||||
|
@@ -285,7 +285,7 @@
|
||||||
|
# Restricted console used by tray-monitor to get the status of the director
|
||||||
|
#
|
||||||
|
Console {
|
||||||
|
- Name = @hostname@-mon
|
||||||
|
+ Name = bacula-mon
|
||||||
|
Password = "@mon_dir_password@"
|
||||||
|
CommandACL = status, .status
|
||||||
|
}
|
||||||
|
--- bacula-2.0.2/src/filed/bacula-fd.conf.in.orig 2007-02-06 13:30:59.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/filed/bacula-fd.conf.in 2007-02-06 13:31:25.000000000 +0100
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
# List Directors who are permitted to contact this File daemon
|
||||||
|
#
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
Password = "@fd_password@"
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -20,7 +20,7 @@
|
||||||
|
# status of the file daemon
|
||||||
|
#
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-mon
|
||||||
|
+ Name = bacula-mon
|
||||||
|
Password = "@mon_fd_password@"
|
||||||
|
Monitor = yes
|
||||||
|
}
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
# "Global" File daemon configuration specifications
|
||||||
|
#
|
||||||
|
FileDaemon { # this is me
|
||||||
|
- Name = @hostname@-fd
|
||||||
|
+ Name = bacula-fd
|
||||||
|
FDport = @fd_port@ # where we listen for the director
|
||||||
|
WorkingDirectory = @working_dir@
|
||||||
|
Pid Directory = @piddir@
|
||||||
|
@@ -39,5 +39,5 @@
|
||||||
|
# Send all messages except skipped files back to Director
|
||||||
|
Messages {
|
||||||
|
Name = Standard
|
||||||
|
- director = @hostname@-dir = all, !skipped, !restored
|
||||||
|
+ director = bacula-dir = all, !skipped, !restored
|
||||||
|
}
|
||||||
|
--- bacula-2.0.2/src/console/bconsole.conf.in.orig 2007-02-06 13:32:30.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/console/bconsole.conf.in 2007-02-06 13:33:06.000000000 +0100
|
||||||
|
@@ -3,8 +3,8 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
DIRport = @dir_port@
|
||||||
|
- address = @hostname@
|
||||||
|
+ address = server.example.com
|
||||||
|
Password = "@dir_password@"
|
||||||
|
}
|
||||||
|
--- bacula-2.0.2/src/stored/bacula-sd.conf.in.orig 2007-02-06 13:31:56.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/stored/bacula-sd.conf.in 2007-02-06 13:32:15.000000000 +0100
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Storage { # definition of myself
|
||||||
|
- Name = @hostname@-sd
|
||||||
|
+ Name = bacula-sd
|
||||||
|
SDPort = @sd_port@ # Director's port
|
||||||
|
WorkingDirectory = "@working_dir@"
|
||||||
|
Pid Directory = "@piddir@"
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
# List Directors who are permitted to contact Storage daemon
|
||||||
|
#
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
Password = "@sd_password@"
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@
|
||||||
|
# status of the storage daemon
|
||||||
|
#
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-mon
|
||||||
|
+ Name = bacula-mon
|
||||||
|
Password = "@mon_sd_password@"
|
||||||
|
Monitor = yes
|
||||||
|
}
|
||||||
|
@@ -204,5 +204,5 @@
|
||||||
|
#
|
||||||
|
Messages {
|
||||||
|
Name = Standard
|
||||||
|
- director = @hostname@-dir = all
|
||||||
|
+ director = bacula-dir = all
|
||||||
|
}
|
||||||
|
--- bacula-2.0.2/src/wx-console/wx-console.conf.in.orig 2007-02-06 13:37:12.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/wx-console/wx-console.conf.in 2007-02-06 13:47:02.000000000 +0100
|
||||||
|
@@ -3,8 +3,8 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
DIRport = @dir_port@
|
||||||
|
- address = @hostname@
|
||||||
|
+ address = server.example.com
|
||||||
|
Password = "@dir_password@"
|
||||||
|
}
|
||||||
|
--- bacula-2.0.2/src/tray-monitor/tray-monitor.conf.in.orig 2007-02-06 13:47:13.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/tray-monitor/tray-monitor.conf.in 2007-02-06 13:47:55.000000000 +0100
|
||||||
|
@@ -3,27 +3,27 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
Monitor {
|
||||||
|
- Name = @hostname@-mon
|
||||||
|
+ Name = bacula-mon
|
||||||
|
Password = "@mon_dir_password@" # password for the Directors
|
||||||
|
RefreshInterval = 5 seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
Client {
|
||||||
|
- Name = @hostname@-fd
|
||||||
|
- Address = @hostname@
|
||||||
|
+ Name = bacula-fd
|
||||||
|
+ Address = client.example.com
|
||||||
|
FDPort = @fd_port@
|
||||||
|
Password = "@mon_fd_password@" # password for FileDaemon
|
||||||
|
}
|
||||||
|
|
||||||
|
Storage {
|
||||||
|
- Name = @hostname@-sd
|
||||||
|
- Address = @hostname@
|
||||||
|
+ Name = bacula-sd
|
||||||
|
+ Address = storage.example.com
|
||||||
|
SDPort = @sd_port@
|
||||||
|
Password = "@mon_sd_password@" # password for StorageDaemon
|
||||||
|
}
|
||||||
|
|
||||||
|
Director {
|
||||||
|
- Name = @hostname@-dir
|
||||||
|
+ Name = bacula-dir
|
||||||
|
DIRport = @dir_port@
|
||||||
|
- address = @hostname@
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+ address = server.example.com
|
||||||
|
+}
|
128
bacula-dir.init
Normal file
128
bacula-dir.init
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# bacula-dir This shell script takes care of starting and stopping
|
||||||
|
# the bacula-dir daemon, the backup director controling
|
||||||
|
# the backup jobs.
|
||||||
|
#
|
||||||
|
# chkconfig: - 80 20
|
||||||
|
# description: Bacula-dir is the Backup-server, which is the program \
|
||||||
|
# that schedules backups and controls the bacula-client and \
|
||||||
|
# the bacula-storage daemons.
|
||||||
|
# processname: bacula-dir
|
||||||
|
# config: /etc/bacula/bacula-dir.conf
|
||||||
|
# pidfile: /var/run/bacula-dir.9101.pid
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
# Source configuration.
|
||||||
|
if [ -f /etc/sysconfig/bacula-dir ] ; then
|
||||||
|
. /etc/sysconfig/bacula-dir
|
||||||
|
fi
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
prog="bacula-dir"
|
||||||
|
CONFIG="/etc/bacula/bacula-dir.conf"
|
||||||
|
OPTS="-c $CONFIG"
|
||||||
|
|
||||||
|
checkconf() {
|
||||||
|
# Check if we still have our @@PLACEHOLDERS@@ in the config.
|
||||||
|
# If yes, refuse to start, the user has never touched the config.
|
||||||
|
grep -q '^[^#].*_PASSWORD@@' $CONFIG
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -n "Error: Not been configured"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
checkdatabase() {
|
||||||
|
# First, get the currently selected database backend from the
|
||||||
|
# alternatives system.
|
||||||
|
DB=$(LANG=C alternatives --display bacula-dir | grep 'link currently points to' | awk -F. '{ print $2 }')
|
||||||
|
case "$DB" in
|
||||||
|
sqlite)
|
||||||
|
# No check needed to see if the Database is running
|
||||||
|
;;
|
||||||
|
mysql)
|
||||||
|
# Check if mysqld is running
|
||||||
|
service mysqld status > /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -n "Error: MySQL not running"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
postgresql)
|
||||||
|
# Check if postgresql is running
|
||||||
|
service postgresql status > /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -n "Error: PostgreSQL not running"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -n "Error: Unknown database backend"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
echo -n "Starting $prog: "
|
||||||
|
checkconf
|
||||||
|
# Removed for now, as the db might not be on localhost
|
||||||
|
# checkdatabase
|
||||||
|
daemon $prog $OPTS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo -n "Shutting down $prog: "
|
||||||
|
killproc $prog
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status $prog
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
;;
|
||||||
|
condrestart)
|
||||||
|
if [ -f /var/lock/subsys/$prog ]; then
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $prog {start|stop|status|reload|restart}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $?
|
34
bacula-director-configuration.patch
Normal file
34
bacula-director-configuration.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
--- bacula-1.38.11/src/dird/bacula-dir.conf.in.orig 2006-09-03 03:13:26.000000000 +0200
|
||||||
|
+++ bacula-1.38.11/src/dird/bacula-dir.conf.in 2006-09-03 03:14:46.000000000 +0200
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
Director { # define myself
|
||||||
|
Name = @hostname@-dir
|
||||||
|
DIRport = @dir_port@ # where we listen for UA connections
|
||||||
|
- QueryFile = "@scriptdir@/query.sql"
|
||||||
|
+ QueryFile = "/etc/bacula/query.sql"
|
||||||
|
WorkingDirectory = "@working_dir@"
|
||||||
|
PidDirectory = "@piddir@"
|
||||||
|
Maximum Concurrent Jobs = 1
|
||||||
|
@@ -101,11 +101,10 @@
|
||||||
|
# if you have other partitons such as /usr or /home
|
||||||
|
# you will probably want to add them too.
|
||||||
|
#
|
||||||
|
-# By default this is defined to point to the Bacula build
|
||||||
|
-# directory to give a reasonable FileSet to backup to
|
||||||
|
-# disk storage during initial testing.
|
||||||
|
+# This File-directive would backup your whole filesystem.
|
||||||
|
+# It is disabled by default
|
||||||
|
#
|
||||||
|
- File = @BUILD_DIR@
|
||||||
|
+# File = /
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
@@ -266,7 +266,7 @@
|
||||||
|
mailcommand = "@sbindir@/bsmtp -h @smtp_host@ -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r"
|
||||||
|
mail = @job_email@ = all, !skipped
|
||||||
|
console = all, !skipped, !saved
|
||||||
|
- append = "@working_dir@/log" = all, !skipped
|
||||||
|
+ append = "/var/log/bacula.log" = all, !skipped
|
||||||
|
}
|
||||||
|
|
89
bacula-fd.init
Normal file
89
bacula-fd.init
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# bacula-fd This shell script takes care of starting and stopping
|
||||||
|
# the bacula-fd daemon, the backup client enabling bacula
|
||||||
|
# to backup the local machine.
|
||||||
|
#
|
||||||
|
# chkconfig: - 80 20
|
||||||
|
# description: Bacula-fd is a Backup-client, which is the program \
|
||||||
|
# that enables the bacula-server to backup the local \
|
||||||
|
# machine.
|
||||||
|
# processname: bacula-fd
|
||||||
|
# config: /etc/bacula/bacula-fd.conf
|
||||||
|
# pidfile: /var/run/bacula-fd.9102.pid
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
# Source configuration.
|
||||||
|
if [ -f /etc/sysconfig/bacula-fd ] ; then
|
||||||
|
. /etc/sysconfig/bacula-fd
|
||||||
|
fi
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
prog="bacula-fd"
|
||||||
|
CONFIG="/etc/bacula/bacula-fd.conf"
|
||||||
|
OPTS="-c $CONFIG"
|
||||||
|
|
||||||
|
checkconf() {
|
||||||
|
# Check if we still have our @@PLACEHOLDERS@@ in the config.
|
||||||
|
# If yes, refuse to start, the user has never touched the config.
|
||||||
|
grep -q '_PASSWORD@@' $CONFIG
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -n "Error: Not been configured"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
start() {
|
||||||
|
echo -n "Starting $prog: "
|
||||||
|
checkconf
|
||||||
|
daemon $prog $OPTS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo -n "Shutting down $prog: "
|
||||||
|
killproc $prog
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status $prog
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
;;
|
||||||
|
condrestart)
|
||||||
|
if [ -f /var/lock/subsys/$prog ]; then
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $prog {start|stop|status|reload|restart}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $?
|
12
bacula-gconsole.desktop
Normal file
12
bacula-gconsole.desktop
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Bacula Console
|
||||||
|
GenericName=Backup Management Console
|
||||||
|
Comment=Control your Bacula Server
|
||||||
|
Exec=gnome-console -c /etc/bacula/wxconsole.conf
|
||||||
|
Icon=bacula.png
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=System;Application;Utility
|
||||||
|
|
23
bacula-pamd.patch
Normal file
23
bacula-pamd.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
--- bacula-2.0.3/scripts/wxconsole.pamd.orig 2007-07-11 18:43:10.000000000 +0200
|
||||||
|
+++ bacula-2.0.3/scripts/wxconsole.pamd 2007-07-11 18:43:23.000000000 +0200
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#%PAM-1.0
|
||||||
|
auth sufficient pam_rootok.so
|
||||||
|
auth sufficient pam_timestamp.so
|
||||||
|
-auth required pam_stack.so service=system-auth
|
||||||
|
+auth include system-auth
|
||||||
|
session optional pam_xauth.so
|
||||||
|
session optional pam_timestamp.so
|
||||||
|
account required pam_permit.so
|
||||||
|
--- bacula-2.0.3/scripts/gnome-console.pamd.orig 2007-07-11 18:42:33.000000000 +0200
|
||||||
|
+++ bacula-2.0.3/scripts/gnome-console.pamd 2007-07-11 18:42:57.000000000 +0200
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#%PAM-1.0
|
||||||
|
auth sufficient pam_rootok.so
|
||||||
|
auth sufficient pam_timestamp.so
|
||||||
|
-auth required pam_stack.so service=system-auth
|
||||||
|
+auth include system-auth
|
||||||
|
session optional pam_xauth.so
|
||||||
|
session optional pam_timestamp.so
|
||||||
|
account required pam_permit.so
|
||||||
|
|
127
bacula-sd.init
Normal file
127
bacula-sd.init
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# bacula-sd This shell script takes care of starting and stopping
|
||||||
|
# the bacula-sd daemon, the storage daemon responsible
|
||||||
|
# for accessing the backup storage device.
|
||||||
|
#
|
||||||
|
# chkconfig: - 80 20
|
||||||
|
# description: Bacula-sd is the storage-server, which is the program \
|
||||||
|
# that accesses the storage device.
|
||||||
|
# processname: bacula-sd
|
||||||
|
# config: /etc/bacula/bacula-sd.conf
|
||||||
|
# pidfile: /var/run/bacula-dir.9103.pid
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
# Source configuration.
|
||||||
|
if [ -f /etc/sysconfig/bacula-sd ] ; then
|
||||||
|
. /etc/sysconfig/bacula-sd
|
||||||
|
fi
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
prog="bacula-sd"
|
||||||
|
CONFIG="/etc/bacula/bacula-sd.conf"
|
||||||
|
OPTS="-c $CONFIG"
|
||||||
|
|
||||||
|
checkconf() {
|
||||||
|
# Check if we still have our @@PLACEHOLDERS@@ in the config.
|
||||||
|
# If yes, refuse to start, the user has never touched the config.
|
||||||
|
grep -q '^[^#].*_PASSWORD@@' $CONFIG
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -n "Error: Not been configured"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
checkdatabase() {
|
||||||
|
# First, get the currently selected database backend from the
|
||||||
|
# alternatives system.
|
||||||
|
DB=$(LANG=C alternatives --display bacula-sd | grep 'link currently points to' | awk -F. '{ print $2 }')
|
||||||
|
case "$DB" in
|
||||||
|
sqlite)
|
||||||
|
# No check needed to see if the Database is running
|
||||||
|
;;
|
||||||
|
mysql)
|
||||||
|
# Check if mysqld is running
|
||||||
|
service mysqld status > /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -n "Error: MySQL not running"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
postgresql)
|
||||||
|
# Check if postgresql is running
|
||||||
|
service postgresql status > /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -n "Error: PostgreSQL not running"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -n "Error: Unknown database backend"
|
||||||
|
echo_failure
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
echo -n "Starting $prog: "
|
||||||
|
checkconf
|
||||||
|
# Disabled, the DB does not necessarily run on the same machine
|
||||||
|
# checkdatabase
|
||||||
|
daemon $prog $OPTS
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo -n "Shutting down $prog: "
|
||||||
|
killproc $prog
|
||||||
|
RETVAL=$?
|
||||||
|
echo
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status $prog
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
;;
|
||||||
|
condrestart)
|
||||||
|
if [ -f /var/lock/subsys/$prog ]; then
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
RETVAL=$?
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $prog {start|stop|status|reload|restart}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $?
|
11
bacula-traymonitor.desktop
Normal file
11
bacula-traymonitor.desktop
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Bacula Monitor
|
||||||
|
GenericName=Bacula Tray Monitor
|
||||||
|
Comment=Monitor your Bacula Backup server
|
||||||
|
Exec=bacula-tray-monitor -c /etc/bacula/tray-monitor.conf
|
||||||
|
Icon=bacula-tray-monitor.xpm
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=System;Application;Utility
|
11
bacula-wxconsole.desktop
Normal file
11
bacula-wxconsole.desktop
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Bacula WX Console
|
||||||
|
GenericName=Backup Management Console
|
||||||
|
Comment=Control your Bacula Server
|
||||||
|
Exec=wxconsole -c /etc/bacula/wxconsole.conf
|
||||||
|
Icon=wxwin16x16.xpm
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=System;Application;Utility
|
10
bacula-wxconsole.patch
Normal file
10
bacula-wxconsole.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- bacula-2.0.2/src/wx-console/wxbrestorepanel.cpp.orig 2007-02-06 21:32:02.000000000 +0100
|
||||||
|
+++ bacula-2.0.2/src/wx-console/wxbrestorepanel.cpp 2007-02-06 21:32:20.000000000 +0100
|
||||||
|
@@ -80,6 +80,7 @@
|
||||||
|
#include "unmarked.xpm"
|
||||||
|
#include "marked.xpm"
|
||||||
|
#include "partmarked.xpm"
|
||||||
|
+#include <wx/imaglist.h>
|
||||||
|
#include <wx/listimpl.cpp>
|
||||||
|
|
||||||
|
/* A macro named Yield is defined under MinGW */
|
9
bacula.logrotate
Normal file
9
bacula.logrotate
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Bacula logrotate script
|
||||||
|
|
||||||
|
/var/log/bacula/*.log {
|
||||||
|
monthly
|
||||||
|
rotate 4
|
||||||
|
notifempty
|
||||||
|
missingok
|
||||||
|
}
|
||||||
|
|
968
bacula.spec
Normal file
968
bacula.spec
Normal file
@ -0,0 +1,968 @@
|
|||||||
|
%define working_dir /var/spool/bacula
|
||||||
|
%define script_dir /usr/libexec/bacula
|
||||||
|
#%define rescue_version 2.0.0
|
||||||
|
%define docs_version %{version}
|
||||||
|
%define gui_version %{version}
|
||||||
|
%define config_dir %{_sysconfdir}/bacula
|
||||||
|
|
||||||
|
Summary: Cross platform network backup for Linux, Unix, Mac and Windows
|
||||||
|
Name: bacula
|
||||||
|
Version: 2.0.3
|
||||||
|
Release: 8%{?dist}
|
||||||
|
License: GPL
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Source0: http://download.sourceforge.net/bacula/bacula-%{version}.tar.gz
|
||||||
|
Source1: http://download.sourceforge.net/bacula/bacula-docs-%{docs_version}.tar.gz
|
||||||
|
#Source2: http://download.sourceforge.net/bacula/bacula-rescue-%{rescue_version}.tar.gz
|
||||||
|
Source3: bacula-gconsole.desktop
|
||||||
|
Source4: bacula-wxconsole.desktop
|
||||||
|
Source5: bacula-traymonitor.desktop
|
||||||
|
Source6: bacula.logrotate
|
||||||
|
Source7: bacula-fd.init
|
||||||
|
Source8: bacula-dir.init
|
||||||
|
Source9: bacula-sd.init
|
||||||
|
#Source10: http://download.sourceforge.net/bacula/bacula-gui-%{gui_version}.tar.gz
|
||||||
|
#Source11: bacula-web.apache
|
||||||
|
Patch0: bacula-director-configuration.patch
|
||||||
|
Patch1: bacula-config.patch
|
||||||
|
Patch2: bacula-wxconsole.patch
|
||||||
|
Patch3: bacula-pamd.patch
|
||||||
|
Patch4: 2.0.3-ampm.patch
|
||||||
|
Patch5: 2.0.3-maxbyteslist.patch
|
||||||
|
Patch6: 2.0.3-maxwaittime.patch
|
||||||
|
Patch7: 2.0.3-scheduler-next-hour.patch
|
||||||
|
Patch8: 2.0.3-verify.patch
|
||||||
|
Patch9: 2.0.3-tls-disconnect.patch
|
||||||
|
#Patch10: bacula-web-smarty.patch
|
||||||
|
URL: http://www.bacula.org
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
BuildRequires: openssl-devel, atk-devel, ncurses-devel, pango-devel, perl
|
||||||
|
BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig
|
||||||
|
BuildRequires: libtermcap-devel, gtk2-devel, libgnomeui-devel, GConf2-devel
|
||||||
|
BuildRequires: glibc-devel, ORBit2-devel, libart_lgpl-devel, freetype-devel
|
||||||
|
BuildRequires: libbonobo-devel, libbonoboui-devel, bonobo-activation-devel
|
||||||
|
BuildRequires: mysql-devel, cdrecord, postgresql-devel, wxGTK-devel
|
||||||
|
BuildRequires: desktop-file-utils, python-devel, sqlite-devel, sed,
|
||||||
|
BuildRequires: libacl-devel, latex2html, tetex-latex, tetex, ghostscript
|
||||||
|
|
||||||
|
%if "%{fedora}" >= "7"
|
||||||
|
BuildRequires: tcp_wrappers-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: tcp_wrappers
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture and is
|
||||||
|
efficient and relatively easy to use, while offering many advanced
|
||||||
|
storage management features that make it easy to find and recover lost
|
||||||
|
or damaged files.
|
||||||
|
|
||||||
|
|
||||||
|
%package director-mysql
|
||||||
|
Summary: Bacula Director with MySQL database support
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-director = %{version}-%{release}
|
||||||
|
Requires: bacula-director-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires: mysql-server
|
||||||
|
|
||||||
|
%description director-mysql
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bacula director, the server which controls
|
||||||
|
your backup run.
|
||||||
|
This director has support for the MySQL database.
|
||||||
|
|
||||||
|
|
||||||
|
%package director-sqlite
|
||||||
|
Summary: Bacula Director with sqlite database support
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-director = %{version}-%{release}
|
||||||
|
Requires: bacula-director-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
|
||||||
|
%description director-sqlite
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bacula director, the server which controls
|
||||||
|
your backup run.
|
||||||
|
This director has support for the sqlite database.
|
||||||
|
|
||||||
|
|
||||||
|
%package director-postgresql
|
||||||
|
Summary: Bacula Director with PostgresSQL database support
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-director = %{version}-%{release}
|
||||||
|
Requires: bacula-director-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires: postgresql-server
|
||||||
|
|
||||||
|
%description director-postgresql
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bacula director, the server which controls
|
||||||
|
your backup run.
|
||||||
|
This director has support for the PostgresSQL database.
|
||||||
|
|
||||||
|
|
||||||
|
%package director-common
|
||||||
|
Summary: Common Bacula Director files
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires: bacula-director = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires(pre): fedora-usermgmt
|
||||||
|
Requires(postun): fedora-usermgmt
|
||||||
|
|
||||||
|
%description director-common
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the common director files, which are shared
|
||||||
|
between all database backends. You have to select a possible
|
||||||
|
database backend though, which provides the needed bacula-director
|
||||||
|
dependency. Please choose from bacula-director-mysql,
|
||||||
|
bacula-director-sqlite or bacula-director-postgresql.
|
||||||
|
|
||||||
|
|
||||||
|
%package client
|
||||||
|
Summary: Bacula backup client
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires(post): /sbin/chkconfig
|
||||||
|
Requires(preun): /sbin/chkconfig
|
||||||
|
Requires(preun): /sbin/service
|
||||||
|
Requires(postun): /sbin/service
|
||||||
|
|
||||||
|
%description client
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the bacula client, the daemon running on the
|
||||||
|
system to be backed up.
|
||||||
|
|
||||||
|
|
||||||
|
%package storage-common
|
||||||
|
Summary: Common Bacula storage daemon files
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires: bacula-storage = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
|
||||||
|
%description storage-common
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the storage daemon, the daemon responsible for
|
||||||
|
writing the data received from the clients onto tape drives or other
|
||||||
|
mass storage devices.
|
||||||
|
|
||||||
|
|
||||||
|
%package storage-mysql
|
||||||
|
Summary: MySQL Bacula storage daemon files
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-storage = %{version}-%{release}
|
||||||
|
Requires: bacula-storage-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires: mysql-server
|
||||||
|
|
||||||
|
%description storage-mysql
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the storage daemon, the daemon responsible for
|
||||||
|
writing the data received from the clients onto tape drives or other
|
||||||
|
mass storage devices.
|
||||||
|
|
||||||
|
|
||||||
|
%package storage-sqlite
|
||||||
|
Summary: SQLite Bacula storage daemon files
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-storage = %{version}-%{release}
|
||||||
|
Requires: bacula-storage-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
|
||||||
|
%description storage-sqlite
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the storage daemon, the daemon responsible for
|
||||||
|
writing the data received from the clients onto tape drives or other
|
||||||
|
mass storage devices.
|
||||||
|
|
||||||
|
|
||||||
|
%package storage-postgresql
|
||||||
|
Summary: Common Bacula storage daemon files
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Provides: bacula-storage = %{version}-%{release}
|
||||||
|
Requires: bacula-storage-common = %{version}-%{release}
|
||||||
|
Requires: bacula-common = %{version}-%{release}
|
||||||
|
Requires: postgresql-server
|
||||||
|
|
||||||
|
%description storage-postgresql
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the storage daemon, the daemon responsible for
|
||||||
|
writing the data received from the clients onto tape drives or other
|
||||||
|
mass storage devices.
|
||||||
|
|
||||||
|
|
||||||
|
%package common
|
||||||
|
Summary: Common Bacula utilities
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires(pre): fedora-usermgmt
|
||||||
|
Requires(postun): fedora-usermgmt
|
||||||
|
|
||||||
|
%description common
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
|
||||||
|
%package console
|
||||||
|
Summary: Bacula management console
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
|
||||||
|
%description console
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the command-line management console for the bacula
|
||||||
|
backup system.
|
||||||
|
|
||||||
|
|
||||||
|
%package console-gnome
|
||||||
|
Summary: Bacula console for the Gnome desktop environment
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires: usermode
|
||||||
|
|
||||||
|
%description console-gnome
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the gnome version of the bacula management console
|
||||||
|
|
||||||
|
|
||||||
|
%package console-wxwidgets
|
||||||
|
Summary: Bacula console using the wx widgets toolkit
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
Requires: usermode
|
||||||
|
|
||||||
|
%description console-wxwidgets
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the wxWidgets version of the bacula management
|
||||||
|
console.
|
||||||
|
|
||||||
|
|
||||||
|
%package traymonitor
|
||||||
|
Summary: Bacula monitor for the Gnome and KDE system tray
|
||||||
|
Group: System Environment/Daemons
|
||||||
|
|
||||||
|
%description traymonitor
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the Gnome- and KDE-compatible tray monitor to
|
||||||
|
monitor your bacula server.
|
||||||
|
|
||||||
|
|
||||||
|
#%package web
|
||||||
|
#Summary: Bacula Web Interface for monitoring the Backup status
|
||||||
|
#Group: System Environment/Daemons
|
||||||
|
#Conflicts: bacula-storage-sqlite
|
||||||
|
#Requires: php, webserver, php-pear-DB, php-gd, php-Smarty
|
||||||
|
|
||||||
|
#%description web
|
||||||
|
#Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
#recovery, and verification of computer data across a network of
|
||||||
|
#different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
#This package contains the bacula-web PHP application, which is
|
||||||
|
#a management level tool for reporting Backup job status.
|
||||||
|
|
||||||
|
|
||||||
|
%package docs
|
||||||
|
Summary: Bacula documentation
|
||||||
|
Group: Documentation
|
||||||
|
|
||||||
|
%description docs
|
||||||
|
Bacula is a set of programs that allow you to manage the backup,
|
||||||
|
recovery, and verification of computer data across a network of
|
||||||
|
different computers. It is based on a client/server architecture.
|
||||||
|
|
||||||
|
This package contains the documentation for most of the bacula-packages.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -c -n bacula-%{version}
|
||||||
|
%setup -q -a 1 -D -T
|
||||||
|
#%setup -q -a 2 -D -T
|
||||||
|
#%setup -q -a 10 -D -T
|
||||||
|
|
||||||
|
# Patching and other source preparation
|
||||||
|
pushd bacula-%{version}
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p0
|
||||||
|
%patch5 -p0
|
||||||
|
%patch6 -p0
|
||||||
|
%patch7 -p0
|
||||||
|
%patch8 -p0
|
||||||
|
%patch9 -p0
|
||||||
|
|
||||||
|
# Remove execution permissions from files we're packaging as docs later on
|
||||||
|
find examples -type f | xargs chmod -x
|
||||||
|
find updatedb -type f | xargs chmod -x
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Remove cvs left-overs
|
||||||
|
find -name '.cvsignore' | xargs rm -f
|
||||||
|
|
||||||
|
# Fix perms of c files to silent rpmlint
|
||||||
|
find -type f -name '*.c' | xargs chmod -x
|
||||||
|
find -type f -name '*.h' | xargs chmod -x
|
||||||
|
|
||||||
|
# GUI Stuff is postponed for later
|
||||||
|
#pushd bacula-gui-%{gui_version}
|
||||||
|
#%patch10 -p0
|
||||||
|
#popd
|
||||||
|
|
||||||
|
# We are building the source several times, each with a different storage backend
|
||||||
|
mkdir bacula-mysql bacula-postgresql bacula-sqlite
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Shell function to configure and build a Bacula tree
|
||||||
|
build() {
|
||||||
|
cp -rl ../bacula-%{version}/* .
|
||||||
|
%configure \
|
||||||
|
--sysconfdir=%{_sysconfdir}/bacula \
|
||||||
|
--with-dir-user=bacula \
|
||||||
|
--with-dir-group=bacula \
|
||||||
|
--with-sd-user=bacula \
|
||||||
|
--with-sd-group=bacula \
|
||||||
|
--with-fd-user=root \
|
||||||
|
--with-fd-group=root \
|
||||||
|
--with-dir-password=@@DIR_PASSWORD@@ \
|
||||||
|
--with-fd-password=@@FD_PASSWORD@@ \
|
||||||
|
--with-sd-password=@@SD_PASSWORD@@ \
|
||||||
|
--with-mon-dir-password=@@MON_DIR_PASSWORD@@ \
|
||||||
|
--with-mon-fd-password=@@MON_FD_PASSWORD@@ \
|
||||||
|
--with-mon-sd-password=@@MON_SD_PASSWORD@@ \
|
||||||
|
--with-working-dir=%{working_dir} \
|
||||||
|
--with-scriptdir=%{script_dir} \
|
||||||
|
--with-smtp-host=localhost \
|
||||||
|
--with-subsys-dir=%{_localstatedir}/lock/subsys \
|
||||||
|
--with-pid-dir=%{_localstatedir}/run \
|
||||||
|
--enable-conio \
|
||||||
|
--enable-largefile \
|
||||||
|
--enable-gnome \
|
||||||
|
--enable-wx-console \
|
||||||
|
--enable-tray-monitor \
|
||||||
|
--enable-build-dird \
|
||||||
|
--enable-build-stored \
|
||||||
|
--with-openssl \
|
||||||
|
--with-tcp-wrappers \
|
||||||
|
--with-python \
|
||||||
|
--enable-smartalloc \
|
||||||
|
--with-x \
|
||||||
|
$*
|
||||||
|
# Scratch this, it is trouble
|
||||||
|
# --with-readline \
|
||||||
|
|
||||||
|
if test $? != 0; then
|
||||||
|
tail -500 config.log
|
||||||
|
: configure failed
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
%{__make} %{?_smp_mflags}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build sqlite director
|
||||||
|
pushd bacula-sqlite
|
||||||
|
%if 0%{?fedora}%{?rhel}
|
||||||
|
%if 0%{?fedora}
|
||||||
|
%if "%{fedora}" >= "5"
|
||||||
|
%define sqlite_suffix 3
|
||||||
|
build --with-sqlite3
|
||||||
|
%else
|
||||||
|
build --with-sqlite
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%if "%{rhel}" >= "5"
|
||||||
|
%define sqlite_suffix 3
|
||||||
|
build --with-sqlite3
|
||||||
|
%else
|
||||||
|
build --with-sqlite
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
echo 'Neither %%{fedora} nor %%{rhel} are defined.'
|
||||||
|
echo 'Please call rpmbuild with at least --define "fedora 7" or --define "rhel 5"'
|
||||||
|
echo 'depending on your release version you are building on.'
|
||||||
|
exit 1
|
||||||
|
%endif
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build MySQL director
|
||||||
|
pushd bacula-mysql
|
||||||
|
build --with-mysql
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build PostgreSQL director
|
||||||
|
pushd bacula-postgresql
|
||||||
|
build --with-postgresql
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build the docs
|
||||||
|
pushd bacula-docs-%{docs_version}
|
||||||
|
%configure --with-bacula=%{_builddir}/bacula-%{version}/bacula-%{version}
|
||||||
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
|
pushd bacula-sqlite
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
mv %{buildroot}%{_sbindir}/bacula-dir %{buildroot}%{_sbindir}/bacula-dir.sqlite
|
||||||
|
mv %{buildroot}%{_sbindir}/dbcheck %{buildroot}%{_sbindir}/dbcheck.sqlite
|
||||||
|
mv %{buildroot}%{_sbindir}/bcopy %{buildroot}%{_sbindir}/bcopy.sqlite
|
||||||
|
mv %{buildroot}%{_sbindir}/bscan %{buildroot}%{_sbindir}/bscan.sqlite
|
||||||
|
|
||||||
|
for script in create_bacula_database drop_bacula_database drop_bacula_tables \
|
||||||
|
grant_bacula_privileges make_bacula_tables make_catalog_backup \
|
||||||
|
update_bacula_tables; do
|
||||||
|
mv %{buildroot}%{_libexecdir}/bacula/${script} %{buildroot}%{_libexecdir}/bacula/${script}.sqlite
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd bacula-mysql
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
mv %{buildroot}%{_sbindir}/bacula-dir %{buildroot}%{_sbindir}/bacula-dir.mysql
|
||||||
|
mv %{buildroot}%{_sbindir}/dbcheck %{buildroot}%{_sbindir}/dbcheck.mysql
|
||||||
|
mv %{buildroot}%{_sbindir}/bcopy %{buildroot}%{_sbindir}/bcopy.mysql
|
||||||
|
mv %{buildroot}%{_sbindir}/bscan %{buildroot}%{_sbindir}/bscan.mysql
|
||||||
|
|
||||||
|
for script in create_bacula_database drop_bacula_database drop_bacula_tables \
|
||||||
|
grant_bacula_privileges make_bacula_tables make_catalog_backup \
|
||||||
|
update_bacula_tables; do
|
||||||
|
mv %{buildroot}%{_libexecdir}/bacula/${script} %{buildroot}%{_libexecdir}/bacula/${script}.mysql
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd bacula-postgresql
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
mv %{buildroot}%{_sbindir}/bacula-dir %{buildroot}%{_sbindir}/bacula-dir.postgresql
|
||||||
|
mv %{buildroot}%{_sbindir}/dbcheck %{buildroot}%{_sbindir}/dbcheck.postgresql
|
||||||
|
mv %{buildroot}%{_sbindir}/bcopy %{buildroot}%{_sbindir}/bcopy.postgresql
|
||||||
|
mv %{buildroot}%{_sbindir}/bscan %{buildroot}%{_sbindir}/bscan.postgresql
|
||||||
|
|
||||||
|
for script in create_bacula_database drop_bacula_database drop_bacula_tables \
|
||||||
|
grant_bacula_privileges make_bacula_tables make_catalog_backup \
|
||||||
|
update_bacula_tables; do
|
||||||
|
mv %{buildroot}%{_libexecdir}/bacula/${script} %{buildroot}%{_libexecdir}/bacula/${script}.postgresql
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd bacula-docs-%{docs_version}
|
||||||
|
# No install target anymore, we'll include the stuff directly in the %%files section
|
||||||
|
# make install DESTDIR=%{buildroot}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# GUI is not being packaged yet
|
||||||
|
#pushd bacula-gui-%{gui_version}/bacula-web
|
||||||
|
# mkdir -p %{buildroot}%{_datadir}/bacula-web
|
||||||
|
# cp -r -p * %{buildroot}%{_datadir}/bacula-web
|
||||||
|
# for f in ChangeLog CONTACT COPYING README TODO; do
|
||||||
|
# rm -f %{buildroot}%{_datadir}/bacula-web/$f
|
||||||
|
# done
|
||||||
|
# rm -f %{buildroot}%{_datadir}/bacula-web/tsmarty2c.php
|
||||||
|
# rm -rf %{buildroot}%{_datadir}/bacula-web/external_packages/smarty
|
||||||
|
# mv %{buildroot}%{_datadir}/bacula-web/configs/bacula.conf %{buildroot}%{_sysconfdir}/bacula/bacula-web.conf
|
||||||
|
# ln -sf /etc/bacula/bacula-web.conf %{buildroot}%{_datadir}/bacula-web/configs/bacula.conf
|
||||||
|
# install -D -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/httpd/conf.d/bacula-web.conf
|
||||||
|
# mkdir -p %{buildroot}%{_localstatedir}/cache/bacula
|
||||||
|
#popd
|
||||||
|
|
||||||
|
|
||||||
|
# Rename some manpages
|
||||||
|
# Not needed right-now
|
||||||
|
#mv %{buildroot}%{_mandir}/man1/bacula-tray-monitor.1 %{buildroot}%{_mandir}/man1/tray-monitor.1
|
||||||
|
|
||||||
|
|
||||||
|
# Fix some wrapper braindeadness
|
||||||
|
rm -f %{buildroot}%{_libexecdir}/bacula/bconsole
|
||||||
|
rm -f %{buildroot}%{_libexecdir}/bacula/gconsole
|
||||||
|
mv %{buildroot}%{_sbindir}/wx-console %{buildroot}%{_sbindir}/wxconsole
|
||||||
|
mv %{buildroot}%{_sysconfdir}/bacula/wx-console.conf %{buildroot}%{_sysconfdir}/bacula/wxconsole.conf
|
||||||
|
|
||||||
|
|
||||||
|
# Desktop Integration for the console apps and the traymonitor
|
||||||
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/bacula.png %{buildroot}%{_datadir}/pixmaps/bacula.png
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/gnome-console.pamd %{buildroot}%{_sysconfdir}/pam.d/gnome-console
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/gnome-console.console_apps %{buildroot}%{_sysconfdir}/security/console.apps/gnome-console
|
||||||
|
install -m 644 -D bacula-sqlite/src/wx-console/wxwin16x16.xpm %{buildroot}%{_datadir}/pixmaps/wxwin16x16.xpm
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/wxconsole.pamd %{buildroot}%{_sysconfdir}/pam.d/wxconsole
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/wxconsole.desktop.consolehelper %{buildroot}%{_sysconfdir}/security/console.apps/wxconsole
|
||||||
|
install -m 644 -D bacula-sqlite/src/tray-monitor/generic.xpm %{buildroot}%{_datadir}/pixmaps/bacula-tray-monitor.xpm
|
||||||
|
|
||||||
|
ln -sf consolehelper %{buildroot}%{_bindir}/gnome-console
|
||||||
|
ln -sf consolehelper %{buildroot}%{_bindir}/wxconsole
|
||||||
|
|
||||||
|
desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE3}
|
||||||
|
desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE4}
|
||||||
|
desktop-file-install --vendor="fedora" --dir=%{buildroot}%{_datadir}/applications %{SOURCE5}
|
||||||
|
|
||||||
|
|
||||||
|
# logrotate
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/log/bacula
|
||||||
|
install -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/bacula
|
||||||
|
|
||||||
|
|
||||||
|
# And logwatch
|
||||||
|
install -m 755 -D bacula-sqlite/scripts/logwatch/bacula %{buildroot}%{_sysconfdir}/logwatch/scripts/services/bacula
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/logwatch/logfile.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
|
||||||
|
install -m 644 -D bacula-sqlite/scripts/logwatch/services.bacula.conf %{buildroot}%{_sysconfdir}/logwatch/conf/services/bacula.conf
|
||||||
|
|
||||||
|
|
||||||
|
# Initscripts
|
||||||
|
install -m 755 -D %{SOURCE7} %{buildroot}%{_initrddir}/bacula-fd
|
||||||
|
install -m 755 -D %{SOURCE8} %{buildroot}%{_initrddir}/bacula-dir
|
||||||
|
install -m 755 -D %{SOURCE9} %{buildroot}%{_initrddir}/bacula-sd
|
||||||
|
|
||||||
|
|
||||||
|
# Wipe backup files from the multiple make install calls
|
||||||
|
rm -vf %{buildroot}%{_sysconfdir}/bacula/*.{new,old}
|
||||||
|
rm -vf %{buildroot}%{_libexecdir}/bacula/*.{new,old}
|
||||||
|
|
||||||
|
|
||||||
|
# Create the spooling
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/spool/bacula
|
||||||
|
|
||||||
|
|
||||||
|
# Move some files around
|
||||||
|
mv %{buildroot}%{_libexecdir}/bacula/query.sql %{buildroot}%{_sysconfdir}/bacula/query.sql
|
||||||
|
|
||||||
|
|
||||||
|
# Nuke the scripts we do not need
|
||||||
|
rm -vf %{buildroot}%{_libexecdir}/bacula/{bacula,bacula-ctl-*,startmysql,stopmysql}
|
||||||
|
|
||||||
|
|
||||||
|
# Fix up some perms so rpmlint does not complain too much
|
||||||
|
chmod 755 %{buildroot}%{_sbindir}/*
|
||||||
|
chmod 755 %{buildroot}%{_libexecdir}/bacula/*
|
||||||
|
chmod 644 %{buildroot}%{_libexecdir}/bacula/btraceback.*
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
|
|
||||||
|
%post director-mysql
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.mysql 50 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.mysql \
|
||||||
|
--slave /usr/libexec/bacula/create_bacula_database /usr/libexec/bacula/create_bacula_database.mysql \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_database /usr/libexec/bacula/drop_bacula_database.mysql \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.mysql \
|
||||||
|
--slave /usr/libexec/bacula/grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.mysql \
|
||||||
|
--slave /usr/libexec/bacula/make_bacula_tables /usr/libexec/bacula/make_bacula_tables.mysql \
|
||||||
|
--slave /usr/libexec/bacula/make_catalog_backup /usr/libexec/bacula/make_catalog_backup.mysql \
|
||||||
|
--slave /usr/libexec/bacula/update_bacula_tables /usr/libexec/bacula/update_bacula_tables.mysql
|
||||||
|
|
||||||
|
|
||||||
|
%post director-sqlite
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.sqlite 40 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/create_bacula_database /usr/libexec/bacula/create_bacula_database.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_database /usr/libexec/bacula/drop_bacula_database.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/make_bacula_tables /usr/libexec/bacula/make_bacula_tables.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/make_catalog_backup /usr/libexec/bacula/make_catalog_backup.sqlite \
|
||||||
|
--slave /usr/libexec/bacula/update_bacula_tables /usr/libexec/bacula/update_bacula_tables.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%post director-postgresql
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bacula-dir bacula-dir /usr/sbin/bacula-dir.postgresql 60 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-dbcheck /usr/sbin/dbcheck.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/create_bacula_database /usr/libexec/bacula/create_bacula_database.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_database /usr/libexec/bacula/drop_bacula_database.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/drop_bacula_tables /usr/libexec/bacula/drop_bacula_tables.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/grant_bacula_privileges /usr/libexec/bacula/grant_bacula_privileges.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/make_bacula_tables /usr/libexec/bacula/make_bacula_tables.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/make_catalog_backup /usr/libexec/bacula/make_catalog_backup.postgresql \
|
||||||
|
--slave /usr/libexec/bacula/update_bacula_tables /usr/libexec/bacula/update_bacula_tables.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%preun director-mysql
|
||||||
|
/usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.mysql
|
||||||
|
|
||||||
|
|
||||||
|
%preun director-sqlite
|
||||||
|
/usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%preun director-postgresql
|
||||||
|
/usr/sbin/alternatives --remove bacula-dir /usr/sbin/bacula-dir.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%pre common
|
||||||
|
/usr/sbin/fedora-groupadd 33 -r bacula &>/dev/null || :
|
||||||
|
/usr/sbin/fedora-useradd 33 -r -s /sbin/nologin -d /var/spool/bacula -M \
|
||||||
|
-c 'Bacula Backup System' -g bacula bacula &>/dev/null || :
|
||||||
|
|
||||||
|
|
||||||
|
%postun common
|
||||||
|
test "$1" != 0 || /usr/sbin/fedora-userdel bacula &>/dev/null || :
|
||||||
|
test "$1" != 0 || /usr/sbin/fedora-groupdel bacula &>/dev/null || :
|
||||||
|
|
||||||
|
|
||||||
|
%post storage-mysql
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.mysql 50 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.mysql
|
||||||
|
|
||||||
|
|
||||||
|
%post storage-sqlite
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.sqlite 40 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%post storage-postgresql
|
||||||
|
/usr/sbin/alternatives --install /usr/sbin/bcopy bacula-sd /usr/sbin/bcopy.postgresql 60 \
|
||||||
|
--slave /usr/sbin/dbcheck bacula-bscan /usr/sbin/bscan.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%preun storage-mysql
|
||||||
|
/usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.mysql
|
||||||
|
|
||||||
|
|
||||||
|
%preun storage-sqlite
|
||||||
|
/usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%preun storage-postgresql
|
||||||
|
/usr/sbin/alternatives --remove bacula-sd /usr/sbin/bcopy.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%post client
|
||||||
|
/sbin/chkconfig --add bacula-fd
|
||||||
|
|
||||||
|
|
||||||
|
%preun client
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
/sbin/service bacula-fd stop >/dev/null 2>&1 || :
|
||||||
|
/sbin/chkconfig --del bacula-fd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%postun client
|
||||||
|
if [ "$1" -ge "1" ]; then
|
||||||
|
/sbin/service bacula-fd condrestart >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%post director-common
|
||||||
|
/sbin/chkconfig --add bacula-dir
|
||||||
|
|
||||||
|
|
||||||
|
%preun director-common
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
/sbin/service bacula-dir stop >/dev/null 2>&1 || :
|
||||||
|
/sbin/chkconfig --del bacula-dir
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%postun director-common
|
||||||
|
if [ "$1" -ge "1" ]; then
|
||||||
|
/sbin/service bacula-dir condrestart >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%post storage-common
|
||||||
|
/sbin/chkconfig --add bacula-sd
|
||||||
|
|
||||||
|
|
||||||
|
%preun storage-common
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
/sbin/service bacula-sd stop >/dev/null 2>&1 || :
|
||||||
|
/sbin/chkconfig --del bacula-sd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%postun storage-common
|
||||||
|
if [ "$1" -ge "1" ]; then
|
||||||
|
/sbin/service bacula-sd condrestart >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%files common
|
||||||
|
%doc bacula-%{version}/AUTHORS bacula-%{version}/ChangeLog bacula-%{version}/COPYING bacula-%{version}/LICENSE
|
||||||
|
%doc bacula-%{version}/README bacula-%{version}/SUPPORT bacula-%{version}/VERIFYING
|
||||||
|
%doc bacula-%{version}/examples/
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%config(noreplace) %{_sysconfdir}/logrotate.d/bacula
|
||||||
|
%dir %{_sysconfdir}/bacula
|
||||||
|
%dir %{_libexecdir}/bacula
|
||||||
|
%{_sbindir}/bsmtp
|
||||||
|
%{_sbindir}/btraceback
|
||||||
|
%{_libexecdir}/bacula/btraceback.dbx
|
||||||
|
%{_libexecdir}/bacula/btraceback.gdb
|
||||||
|
%{_mandir}/man1/bsmtp.1*
|
||||||
|
%{_mandir}/man8/bacula.8*
|
||||||
|
%{_mandir}/man8/btraceback.8*
|
||||||
|
%dir %attr(750, bacula, bacula) %{_localstatedir}/log/bacula
|
||||||
|
%dir %attr(750, bacula, bacula) %{_localstatedir}/spool/bacula
|
||||||
|
|
||||||
|
|
||||||
|
%files client
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-fd
|
||||||
|
%{_initrddir}/bacula-fd
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-fd.conf
|
||||||
|
%dir %{_localstatedir}/spool/bacula
|
||||||
|
%{_mandir}/man8/bacula-fd.8*
|
||||||
|
|
||||||
|
|
||||||
|
%files console
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bconsole
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bconsole.conf
|
||||||
|
%{_mandir}/man8/bconsole.8*
|
||||||
|
|
||||||
|
|
||||||
|
%files console-gnome
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%config %{_sysconfdir}/security/console.apps/gnome-console
|
||||||
|
%config %{_sysconfdir}/pam.d/gnome-console
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/gnome-console.conf
|
||||||
|
%{_bindir}/gnome-console
|
||||||
|
%{_sbindir}/gnome-console
|
||||||
|
%{_mandir}/man1/bacula-console-gnome.1*
|
||||||
|
%{_datadir}/applications/fedora-bacula-gconsole.desktop
|
||||||
|
%{_datadir}/pixmaps/bacula.png
|
||||||
|
|
||||||
|
|
||||||
|
%files console-wxwidgets
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%config %{_sysconfdir}/security/console.apps/wxconsole
|
||||||
|
%config %{_sysconfdir}/pam.d/wxconsole
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/wxconsole.conf
|
||||||
|
%{_bindir}/wxconsole
|
||||||
|
%{_sbindir}/wxconsole
|
||||||
|
%{_mandir}/man1/bacula-wxconsole.1*
|
||||||
|
%{_datadir}/applications/fedora-bacula-wxconsole.desktop
|
||||||
|
%{_datadir}/pixmaps/wxwin16x16.xpm
|
||||||
|
|
||||||
|
|
||||||
|
%files director-common
|
||||||
|
%doc bacula-%{version}/updatedb/
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-dir.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/query.sql
|
||||||
|
%config %{_sysconfdir}/logwatch/conf/logfiles/bacula.conf
|
||||||
|
%config %{_sysconfdir}/logwatch/conf/services/bacula.conf
|
||||||
|
%{_sysconfdir}/logwatch/scripts/services/bacula
|
||||||
|
%{_initrddir}/bacula-dir
|
||||||
|
%{_sbindir}/bregex
|
||||||
|
%{_sbindir}/bwild
|
||||||
|
%{_mandir}/man8/dbcheck.8*
|
||||||
|
%{_mandir}/man8/bacula-dir.8*
|
||||||
|
%{_libexecdir}/bacula/delete_catalog_backup
|
||||||
|
|
||||||
|
|
||||||
|
%files director-mysql
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-dir.mysql
|
||||||
|
%{_sbindir}/dbcheck.mysql
|
||||||
|
%{_libexecdir}/bacula/create_mysql_database
|
||||||
|
%{_libexecdir}/bacula/drop_mysql_database
|
||||||
|
%{_libexecdir}/bacula/drop_mysql_tables
|
||||||
|
%{_libexecdir}/bacula/grant_mysql_privileges
|
||||||
|
%{_libexecdir}/bacula/make_mysql_tables
|
||||||
|
%{_libexecdir}/bacula/update_mysql_tables
|
||||||
|
%{_libexecdir}/bacula/create_bacula_database.mysql
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_database.mysql
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_tables.mysql
|
||||||
|
%{_libexecdir}/bacula/grant_bacula_privileges.mysql
|
||||||
|
%{_libexecdir}/bacula/make_bacula_tables.mysql
|
||||||
|
%{_libexecdir}/bacula/make_catalog_backup.mysql
|
||||||
|
%{_libexecdir}/bacula/update_bacula_tables.mysql
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%files director-sqlite
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-dir.sqlite
|
||||||
|
%{_sbindir}/dbcheck.sqlite
|
||||||
|
# DANGER Will Robinson. Bacula has versioned sqlite filenames
|
||||||
|
%{_libexecdir}/bacula/create_sqlite%{?sqlite_suffix}_database
|
||||||
|
%{_libexecdir}/bacula/drop_sqlite%{?sqlite_suffix}_database
|
||||||
|
%{_libexecdir}/bacula/drop_sqlite%{?sqlite_suffix}_tables
|
||||||
|
%{_libexecdir}/bacula/grant_sqlite%{?sqlite_suffix}_privileges
|
||||||
|
%{_libexecdir}/bacula/make_sqlite%{?sqlite_suffix}_tables
|
||||||
|
%{_libexecdir}/bacula/update_sqlite%{?sqlite_suffix}_tables
|
||||||
|
%{_libexecdir}/bacula/create_bacula_database.sqlite
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_database.sqlite
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_tables.sqlite
|
||||||
|
%{_libexecdir}/bacula/grant_bacula_privileges.sqlite
|
||||||
|
%{_libexecdir}/bacula/make_bacula_tables.sqlite
|
||||||
|
%{_libexecdir}/bacula/make_catalog_backup.sqlite
|
||||||
|
%{_libexecdir}/bacula/update_bacula_tables.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%files director-postgresql
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-dir.postgresql
|
||||||
|
%{_sbindir}/dbcheck.postgresql
|
||||||
|
%{_libexecdir}/bacula/create_postgresql_database
|
||||||
|
%{_libexecdir}/bacula/drop_postgresql_database
|
||||||
|
%{_libexecdir}/bacula/drop_postgresql_tables
|
||||||
|
%{_libexecdir}/bacula/grant_postgresql_privileges
|
||||||
|
%{_libexecdir}/bacula/make_postgresql_tables
|
||||||
|
%{_libexecdir}/bacula/update_postgresql_tables
|
||||||
|
%{_libexecdir}/bacula/create_bacula_database.postgresql
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_database.postgresql
|
||||||
|
%{_libexecdir}/bacula/drop_bacula_tables.postgresql
|
||||||
|
%{_libexecdir}/bacula/grant_bacula_privileges.postgresql
|
||||||
|
%{_libexecdir}/bacula/make_bacula_tables.postgresql
|
||||||
|
%{_libexecdir}/bacula/make_catalog_backup.postgresql
|
||||||
|
%{_libexecdir}/bacula/update_bacula_tables.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%files storage-common
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-sd
|
||||||
|
%{_sbindir}/bextract
|
||||||
|
%{_sbindir}/bls
|
||||||
|
%{_sbindir}/btape
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/bacula-sd.conf
|
||||||
|
%{_initrddir}/bacula-sd
|
||||||
|
%{_libexecdir}/bacula/disk-changer
|
||||||
|
%{_libexecdir}/bacula/dvd-handler
|
||||||
|
%{_libexecdir}/bacula/mtx-changer
|
||||||
|
%{_mandir}/man8/bcopy.8*
|
||||||
|
%{_mandir}/man8/bextract.8*
|
||||||
|
%{_mandir}/man8/bls.8*
|
||||||
|
%{_mandir}/man8/bscan.8*
|
||||||
|
%{_mandir}/man8/btape.8*
|
||||||
|
%{_mandir}/man8/bacula-sd.8*
|
||||||
|
|
||||||
|
|
||||||
|
%files storage-mysql
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bcopy.mysql
|
||||||
|
%{_sbindir}/bscan.mysql
|
||||||
|
|
||||||
|
|
||||||
|
%files storage-sqlite
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bcopy.sqlite
|
||||||
|
%{_sbindir}/bscan.sqlite
|
||||||
|
|
||||||
|
|
||||||
|
%files storage-postgresql
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bcopy.postgresql
|
||||||
|
%{_sbindir}/bscan.postgresql
|
||||||
|
|
||||||
|
|
||||||
|
%files traymonitor
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_sbindir}/bacula-tray-monitor
|
||||||
|
%config(noreplace) %{_sysconfdir}/bacula/tray-monitor.conf
|
||||||
|
%{_mandir}/man1/bacula-tray-monitor.1*
|
||||||
|
%{_datadir}/applications/fedora-bacula-traymonitor.desktop
|
||||||
|
%{_datadir}/pixmaps/bacula-tray-monitor.xpm
|
||||||
|
|
||||||
|
|
||||||
|
%files docs
|
||||||
|
%doc bacula-docs-%{docs_version}/bacula-web/bacula-web.pdf
|
||||||
|
%doc bacula-docs-%{docs_version}/bacula-web/bacula-web/
|
||||||
|
%doc bacula-docs-%{docs_version}/developers/developers.pdf
|
||||||
|
%doc bacula-docs-%{docs_version}/developers/developers/
|
||||||
|
%doc bacula-docs-%{docs_version}/manual/bacula.pdf
|
||||||
|
%doc bacula-docs-%{docs_version}/manual/bacula/
|
||||||
|
|
||||||
|
|
||||||
|
#%files web
|
||||||
|
#%defattr(-,root,root,-)
|
||||||
|
#%doc bacula-gui-%{gui_version}/bacula-web/CONTACT bacula-gui-%{gui_version}/bacula-web/COPYING
|
||||||
|
#%doc bacula-gui-%{gui_version}/bacula-web/README bacula-gui-%{gui_version}/bacula-web/TODO
|
||||||
|
#%{_datadir}/bacula-web/
|
||||||
|
#%config(noreplace) %{_sysconfdir}/bacula/bacula-web.conf
|
||||||
|
#%config(noreplace) %{_sysconfdir}/httpd/conf.d/bacula-web.conf
|
||||||
|
#%dir %attr(755, apache, apache) %{_localstatedir}/cache/bacula-web
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Jul 19 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-8
|
||||||
|
- Moved some files around in the %%files section and refactored
|
||||||
|
spec parts a bit
|
||||||
|
- Fixed up the catalog-backup scripts by including them in the
|
||||||
|
alternatives system
|
||||||
|
- Applied tls patch fixing some tls disconnection issues.
|
||||||
|
|
||||||
|
* Thu Jul 18 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-7
|
||||||
|
- Minor specchanges, mostly typos in the comments
|
||||||
|
- Incorporated minor changes from dgilmore's review.
|
||||||
|
|
||||||
|
* Fri Jul 13 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-6
|
||||||
|
- Fixing %%preun scripts. Thx to Dan for spotting this
|
||||||
|
|
||||||
|
* Fri Jul 13 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-5
|
||||||
|
- Fixed provides and requires
|
||||||
|
|
||||||
|
* Wed Jul 11 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-4
|
||||||
|
- Fixed many rpmlint issues
|
||||||
|
|
||||||
|
* Thu Apr 26 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-3
|
||||||
|
- Final cleanups for fedora
|
||||||
|
- Removed webgui for now. It will be back in a future release
|
||||||
|
- Added LANG=C calls to the initscripts
|
||||||
|
|
||||||
|
* Thu Apr 26 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-2
|
||||||
|
- Added logdir
|
||||||
|
- Fixed up doc-creation to actually work
|
||||||
|
- Fixed up web interface
|
||||||
|
- Included docs sub-package
|
||||||
|
- Included README et al as docs where appropriate
|
||||||
|
|
||||||
|
* Sat Mar 10 2007 Andreas Thienemann <andreas@bawue.net> 2.0.3-1
|
||||||
|
- Updated to 2.0.3
|
||||||
|
- Reverted the database-check as we're not sure the db is running on the
|
||||||
|
local machine. A later revision might parse the bacula-dir.conf file
|
||||||
|
and just connect to the db to see if it's running.
|
||||||
|
|
||||||
|
* Sat Feb 28 2007 Andreas Thienemann <andreas@bawue.net> 2.0.2-1
|
||||||
|
- Further updates on the spec
|
||||||
|
|
||||||
|
* Sat Feb 18 2007 Andreas Thienemann <andreas@bawue.net> 2.0.2-1
|
||||||
|
- Much work on the spec
|
||||||
|
- Updated to 2.0.2
|
||||||
|
|
||||||
|
* Sat Feb 18 2006 Andreas Thienemann <andreas@bawue.net> 1.38.11-1
|
||||||
|
- Initial spec.
|
Loading…
Reference in New Issue
Block a user