--- /dev/null
+
+This file contains a list of the people who have contributed code, programs or
+documentation to the Bacula project. Thanks to all of you. Without your
+participation, Bacula would not be the success it is today.
+
+If you have made a contribution and do not find your
+name on this list, please send a note to me: kern@sibbald.com
+
+(Note, under construction prior to version 1.40 release)
+
+Contributors:
+
+Adrew J. Millar
+Adrian Close
+Aleksandar Milivojevic
+Alexander Bergolth
+Alexandre Baron
+Andrew Ford
+Arno Lehmann
+Bernd Frick
+Carlos A. Molina G
+Carsten Paeth
+Chris Lee
+Christian Masopust
+Christopher Hull
+Dan Langille
+David Boyes
+David Duchscher
+D. Scott Barninger
+Eamon Brosnan
+Eric Bollengier
+Erich Prinz
+Felix Schwarz
+Francisco Reyes
+Frank Sweetser
+Howard Thomson
+Jaime Ventura
+Jan Kesten
+John Goerzen
+John Kodis
+Jose Luis Tallon
+Jo Simoens
+Juan Luis Frances
+Juergen Lock
+Karl Cunningham
+Kern Sibbald
+Landon Fuller
+Luca Berra
+Lucas Di Pentima
+Ludovic Strappazon
+Marc Cousin
+Martin Simmons
+Meno Abels
+Michael -buk- Scherer
+Michel Meyers
+Morgan
+Nic Bellamy
+Nicolas Boichat
+Peter Eriksson
+Philippe Chauvat
+Phil Stracchino
+Preben Guldberg
+Richard Mortimer
+Robert Nelson
+Rudolf Cejka
+Russel Howe
+Thorsten Enge
+Tim Oberfoell
+Tomas Cameron
+Wolfgang Denk
GPL (or LGPL) by writing to: Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+The Four Freedoms Guaranteed by the GPL:
+Freedom zero is the freedom to run the program as you wish for any purpose.
+
+Freedom one is the freedom to study the source code and change it
+to do what you wish.
+
+Freedom two is the freedom to help your neighbour, that's the
+freedom to make copies and distribute them to others when you
+wish.
+
+Freedom three is the freedom to help your community, that's the
+freedom to publish or distribute modified versions when you wish.
+
+Other Licenses:
Certain parts of the Bacula software are licensed by their
copyright holder(s) under the GPL with no modifications. These
software files are clearly marked as such.
"[Created] [Modified] [Before|Since] = <date>".
So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
or 'since'.
+
+
+Item 1: Bacula support for a MailOnSuccess feature.
+ Origin: Jaime Ventura <jaimeventura at ipp dot pt>
+ Date: 15 November 2006
+ Status: for 1.38.11: coded(patch on attachment), compiled, tested
+ for 1.39.28: coded(patch on attachment), complied, NOT tested
+
+
+ What: be able to send a email message for a specified email address if (and only if) a job finishes successfully.
+ Its similar to the MailOnError feature.
+
+ Why: The importance is about the same as MailOnError feature.
+ Since its not possible to do it using bacula's message types(info, error,...)filter, this could be done using some kind of filter, right after the mail was sent.
+ But since there is a MailOnError feature, why not have a MailOnSuccess feature?
+
+
+Notes:
+
+ Why its not possible to do it using bacula's message types(info, error,...)?
+
+ Imagine I want bacula to send ONLY successful job reports/messages to baculaOK@domain.
+ When a job starts, bacula send the message : 10-Nov 17:37 bserver-dir: Start Backup JobId 1605, Job=Job.GSI04.2006-11-10_17.37.30
+ Since this is a info message (msgtype = M_INFO) the "bacula's messaging system" put it on the job messages (jcr->jcr_msgs) to be sent
+ to all dest that have the info type enabled (including baculaOK@domain).
+ But when/if the job fails, that message (10-Nov 17:37 bserver-dir: Start Backup JobId 1605, Job=Job.GSI04.2006-11-10_17.37.30) has already
+ been queued to be sent to baculaOK@domain, even though it refers to a unsuccessful backup.
+ So when its time to send all messages to emails, the "bacula's messaging system" send that message (10-Nov 17:37 bserver-dir: Start
+ Backup JobId 1605, Job=Job.GSI04.2006-11-10_17.37.30) to baculaOK@domain, but using the subject "bacula ERROR", because the job terminated unsuccessful.
+
+ This "problem" could also happen if I wanted bacula to send emails regarding unsuccessful backups, if i didnt use the MailOnError feature.
+ This feature is implemented so that if messages that where queued to be sent if the backup was unsuccessful, to be discarded if the backup is
+
return false;
}
- /* If pool storage specified, use it instead of job storage */
+ /* If pool storage specified, use it instead of job storage */
copy_wstorage(jcr, jcr->pool->storage, _("Pool resource"));
- if (!jcr->wstorage) {
+ if (jcr->wstorage->size() == 0) {
Jmsg(jcr, M_FATAL, 0, _("No Storage specification found in Job or Pool.\n"));
return false;
}
mig_jcr->pool = jcr->pool = pool->NextPool;
mig_jcr->jr.PoolId = jcr->jr.PoolId;
pm_strcpy(jcr->pool_source, _("NextPool in Pool resource"));
+ } else {
+ Jmsg(jcr, M_FATAL, 0, _("No Next Pool specification found in Pool \"%s\".\n"),
+ pool->hdr.name);
+ return false;
+ }
+
+ if (!jcr->pool->storage) {
+ Jmsg(jcr, M_FATAL, 0, _("No Storage specification found in Next Pool \"%s\".\n"),
+ jcr->pool->hdr.name);
+ return false;
}
/* If pool storage specified, use it instead of job storage for backup */
- copy_wstorage(jcr, jcr->pool->storage, _("Pool resource"));
+ copy_wstorage(jcr, jcr->pool->storage, _("Next pool resource"));
/* Print Job Start message */
Jmsg(jcr, M_INFO, 0, _("Start Migration JobId %s, Job=%s\n"),
Dmsg2(dbglevel, "Read store=%s, write store=%s\n",
((STORE *)jcr->rstorage->first())->name(),
((STORE *)jcr->wstorage->first())->name());
+ if (((STORE *)jcr->rstorage->first())->name() == ((STORE *)jcr->wstorage->first())->name()) {
+ Jmsg(jcr, M_FATAL, 0, _("Read storage \"%s\" same as write storage.\n"),
+ ((STORE *)jcr->rstorage->first())->name());
+ }
if (!start_storage_daemon_job(jcr, jcr->rstorage, jcr->wstorage)) {
return false;
}
Emsg0(M_ABORT, 0, _("Out of memory\n"));
}
Dmsg4(1150, "smalloc %d at %x from %s:%d\n", nbytes, buf, fname, lineno);
+#if SMALLOC_SANITY_CHECK > 0
+ if (sm_bytes > SMALLOC_SANITY_CHECK) {
+ Emsg0(M_ABORT, 0, _("Too much memory used."));
+ }
+#endif
return (void *)buf;
}
#undef VERSION
#define VERSION "1.39.29"
-#define BDATE "14 November 2006"
-#define LSMDATE "14Nov06"
+#define BDATE "18 November 2006"
+#define LSMDATE "18Nov06"
#define BYEAR "2006" /* year for copyright messages in progs */
/* Debug flags */
/* #define TRACE_RES 1 */
/* #define DEBUG_MEMSET 1 */
/* #define DEBUG_MUTEX 1 */
+/*
+ * Set SMALLOC_SANITY_CHECK to zero to turn off, otherwise
+ * it is the maximum memory malloced before Bacula will
+ * abort. Except for debug situations, this should be zero
+ */
+#define SMALLOC_SANITY_CHECK 0 /* 500000000 0.5 GB max */
+
/* Check if header of tape block is zero before writing */
/* #define DEBUG_BLOCK_ZEROING 1 */
Technical notes on version 1.39
General:
+18Nov06
+kes Add a SMALLOC_SANITY_CHECK for Arno, which aborts Bacula
+ if memory usage gets too big.
+kes Tweak migration to ensure that read/write devices are different.
+17Nov06
+kes Create an AUTHORS file to list Bacula contributors.
+kes Add Richard Stallman's four GPL freedoms to LICENSE
+kes Require the conf file to have a valid NextPool for writing the
+ migration output.
16Nov06
ebl Enable RecycleCount in catalog.
ebl Fix "echo python | bconsole" segfault