Initial import of bacula

This commit is contained in:
Andreas Thienemann 2007-07-24 20:11:04 +00:00
parent 0e76e14432
commit 0745245f26
20 changed files with 2192 additions and 0 deletions

View File

@ -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
View 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
View 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
View 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;
}

View 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();

View 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
View 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
View 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
View 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 $?

View 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
View 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
View 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
View 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
View 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 $?

View 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
View 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
View 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
View File

@ -0,0 +1,9 @@
# Bacula logrotate script
/var/log/bacula/*.log {
monthly
rotate 4
notifempty
missingok
}

968
bacula.spec Normal file
View 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.

View File

@ -0,0 +1,2 @@
443d2560ace95173a0d8ba465de493ef bacula-2.0.3.tar.gz
dce3aed621b9e4abee51cc89aebf4a58 bacula-docs-2.0.3.tar.gz