--- /dev/null
+
+ This patch causes the output directed to a file to be
+ flushed after every line. This is a bit overkill, IMO, but
+ a user complained about it.
+
+ Apply to 1.36.2 with:
+
+ cd <bacula>
+ patch -p0 <1.36.2-console.patch
+ make
+ ...
+
+Index: src/console/console.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/console/console.c,v
+retrieving revision 1.53.6.1
+diff -u -b -r1.53.6.1 console.c
+--- src/console/console.c 25 Feb 2005 09:47:06 -0000 1.53.6.1
++++ src/console/console.c 16 Mar 2005 11:36:43 -0000
+@@ -748,10 +748,11 @@
+ }
+ #else
+ fputs(buf, output);
++ fflush(output);
+ if (tee) {
+ fputs(buf, stdout);
+ }
+- if (output == stdout || tee) {
++ if (output != stdout || tee) {
+ fflush(stdout);
+ }
+ #endif
--- /dev/null
+
+ This patch should fix a problem with th %l editing in the
+ client (FD) where it edited nothing. With this fix, it should
+ edit "since".
+ Apply the patch to 1.36.2 with:
+
+ cd <bacula-source>
+ patch -p0 <1.36.2-level.patch
+ make
+ ...
+
+Index: src/version.h
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/version.h,v
+retrieving revision 1.403.2.5
+retrieving revision 1.403.2.5.2.1
+diff -u -r1.403.2.5 -r1.403.2.5.2.1
+--- src/version.h 27 Feb 2005 21:54:02 -0000 1.403.2.5
++++ src/version.h 4 Mar 2005 09:14:15 -0000 1.403.2.5.2.1
+@@ -1,8 +1,8 @@
+ /* */
+ #undef VERSION
+ #define VERSION "1.36.2"
+-#define BDATE "28 February 2005"
+-#define LSMDATE "28Feb05"
++#define BDATE "04 March 2005"
++#define LSMDATE "04Mar05"
+
+ /* Debug flags */
+ #undef DEBUG
+Index: src/filed/job.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/filed/job.c,v
+retrieving revision 1.91.4.2
+retrieving revision 1.91.4.2.2.1
+diff -u -r1.91.4.2 -r1.91.4.2.2.1
+--- src/filed/job.c 25 Feb 2005 09:47:06 -0000 1.91.4.2
++++ src/filed/job.c 4 Mar 2005 09:14:16 -0000 1.91.4.2.2.1
+@@ -3,7 +3,7 @@
+ *
+ * Kern Sibbald, October MM
+ *
+- * Version $Id$
++ * Version $Id$
+ *
+ */
+ /*
+@@ -1139,7 +1139,7 @@
+ buf = get_memory(dir->msglen+1);
+ utime_t since_time, adj;
+ btime_t his_time, bt_start, rt=0, bt_adj=0;
+- if (jcr->JobLevel == 0) {
++ if (jcr->JobLevel == L_NONE) {
+ jcr->JobLevel = L_SINCE; /* if no other job level set, do it now */
+ }
+ if (sscanf(dir->msg, "level = since_utime %s mtime_only=%d",
--- /dev/null
+
+ This patch corrects a compile problem because of no statfs()
+ on NetBSD. The patch was submitted by kardel with bug 258.
+
+ Apply the patch to version 1.36.2 with:
+
+ cd <bacula>
+ patch -p0 <1.36.2-netbsd.patch
+ make
+ ...
+
+Index: src/findlib/fstype.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/findlib/fstype.c,v
+retrieving revision 1.7.2.2
+diff -u -r1.7.2.2 fstype.c
+--- src/findlib/fstype.c 25 Feb 2005 09:47:06 -0000 1.7.2.2
++++ src/findlib/fstype.c 15 Mar 2005 14:01:44 -0000
+@@ -61,7 +61,6 @@
+ */
+ #if defined(HAVE_DARWIN_OS) \
+ || defined(HAVE_FREEBSD_OS ) \
+- || defined(HAVE_NETBSD_OS) \
+ || defined(HAVE_OPENBSD_OS)
+
+ #include <sys/param.h>
+@@ -77,7 +76,20 @@
+ Dmsg1(50, "statfs() failed for \"%s\"\n", fname);
+ return false;
+ }
++#elif defined(HAVE_NETBSD_OS)
++#include <sys/param.h>
++#include <sys/mount.h>
+
++bool fstype(const char *fname, char *fs, int fslen)
++{
++ struct statvfs st;
++ if (statvfs(fname, &st) == 0) {
++ bstrncpy(fs, st.f_fstypename, fslen);
++ return true;
++ }
++ Dmsg1(50, "statfs() failed for \"%s\"\n", fname);
++ return false;
++}
+ #elif defined(HAVE_HPUX_OS) \
+ || defined(HAVE_IRIX_OS)
+
--- /dev/null
+
+ This patch corrects a problem preventing multiple
+ simultaneous jobs from different pools.
+ Apply to 1.36.2 with:
+
+ cd <bacula-source>
+ patch -p0 <1.36.2-pool.patch
+ make
+ ...
+
+Index: src/dird/jobq.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v
+retrieving revision 1.25.4.2
+diff -u -r1.25.4.2 jobq.c
+--- src/dird/jobq.c 15 Feb 2005 11:51:03 -0000 1.25.4.2
++++ src/dird/jobq.c 4 Mar 2005 13:16:19 -0000
+@@ -584,7 +584,7 @@
+ if (njcr->JobId == 0 || njcr == jcr) {
+ continue;
+ }
+- if (njcr->pool != jcr->pool) {
++ if (njcr->store == jcr->store && njcr->pool != jcr->pool) {
+ skip_this_jcr = true;
+ break;
+ }
--- /dev/null
+ This patch should fix a Segfault bug when a job is rescheduled.
+ The storage pointers were being released when they should not
+ have been.
+
+ Apply the patch with:
+
+ patch -p0 <1.36.2-reschedule.patch
+ make
+ ...
+
+Index: src/dird/dird.h
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/dird/dird.h,v
+retrieving revision 1.7
+diff -u -r1.7 dird.h
+--- src/dird/dird.h 19 Apr 2004 14:27:00 -0000 1.7
++++ src/dird/dird.h 18 Mar 2005 17:39:38 -0000
+@@ -45,3 +45,4 @@
+
+ /* From job.c */
+ void dird_free_jcr(JCR *jcr);
++void dird_free_jcr_pointers(JCR *jcr);
+Index: src/dird/job.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/dird/job.c,v
+retrieving revision 1.92.2.2
+diff -u -r1.92.2.2 job.c
+--- src/dird/job.c 27 Feb 2005 21:53:28 -0000 1.92.2.2
++++ src/dird/job.c 18 Mar 2005 17:39:38 -0000
+@@ -676,15 +676,9 @@
+ }
+ }
+
+-/*
+- * Free the Job Control Record if no one is still using it.
+- * Called from main free_jcr() routine in src/lib/jcr.c so
+- * that we can do our Director specific cleanup of the jcr.
+- */
+-void dird_free_jcr(JCR *jcr)
++/* Called directly from job rescheduling */
++void dird_free_jcr_pointers(JCR *jcr)
+ {
+- Dmsg0(200, "Start dird free_jcr\n");
+-
+ if (jcr->sd_auth_key) {
+ free(jcr->sd_auth_key);
+ jcr->sd_auth_key = NULL;
+@@ -723,7 +717,21 @@
+ }
+ if (jcr->term_wait_inited) {
+ pthread_cond_destroy(&jcr->term_wait);
++ jcr->term_wait_inited = false;
+ }
++}
++
++/*
++ * Free the Job Control Record if no one is still using it.
++ * Called from main free_jcr() routine in src/lib/jcr.c so
++ * that we can do our Director specific cleanup of the jcr.
++ */
++void dird_free_jcr(JCR *jcr)
++{
++ Dmsg0(200, "Start dird free_jcr\n");
++
++ dird_free_jcr_pointers(jcr);
++
+ /* Delete lists setup to hold storage pointers */
+ for (int i=0; i<MAX_STORE; i++) {
+ if (jcr->storage[i]) {
+Index: src/dird/jobq.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v
+retrieving revision 1.25.4.2
+diff -u -r1.25.4.2 jobq.c
+--- src/dird/jobq.c 15 Feb 2005 11:51:03 -0000 1.25.4.2
++++ src/dird/jobq.c 18 Mar 2005 17:39:38 -0000
+@@ -481,7 +481,7 @@
+ bstrftime(dt, sizeof(dt), time(NULL));
+ Jmsg(jcr, M_INFO, 0, _("Rescheduled Job %s at %s to re-run in %d seconds.\n"),
+ jcr->Job, dt, (int)jcr->job->RescheduleInterval);
+- dird_free_jcr(jcr); /* partial cleanup old stuff */
++ dird_free_jcr_pointers(jcr); /* partial cleanup old stuff */
+ jcr->JobStatus = JS_WaitStartTime;
+ jcr->SDJobStatus = 0;
+ if (jcr->JobBytes == 0) {
--- /dev/null
+
+ This patch will fix a subtle bug that was introduced in 1.36.2
+ which causes Bacula to be very slow restoring a few files. This
+ is because it reads completely to the end of the Volume rather
+ than stopping when all the files on the Volume are loaded. The
+ introduction of the bug was caused by a patch that fixed
+ Bacula truncating tapes after a restore.
+
+ Apply the patch to 1.36.2 with the following:
+
+ cd <bacula-source>
+ patch -p0 <1.36.2-restore-speed.patch
+ make
+ ...
+
+ Note that all source files will be rebuilt during the make.
+
+Index: src/jcr.h
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/jcr.h,v
+retrieving revision 1.76.4.1
+diff -u -u -b -r1.76.4.1 jcr.h
+--- src/jcr.h 27 Feb 2005 21:53:28 -0000 1.76.4.1
++++ src/jcr.h 17 Mar 2005 14:14:18 -0000
+@@ -243,6 +243,7 @@
+
+ /* Parmaters for Open Read Session */
+ BSR *bsr; /* Bootstrap record -- has everything */
++ bool mount_next_volume; /* set to cause next volume mount */
+ uint32_t read_VolSessionId;
+ uint32_t read_VolSessionTime;
+ uint32_t read_StartFile;
+Index: src/stored/read_record.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/stored/read_record.c,v
+retrieving revision 1.47.4.1
+diff -u -u -b -r1.47.4.1 read_record.c
+--- src/stored/read_record.c 15 Feb 2005 11:51:04 -0000 1.47.4.1
++++ src/stored/read_record.c 17 Mar 2005 14:14:18 -0000
+@@ -5,13 +5,16 @@
+ * archive. It uses a callback to pass you each record in turn,
+ * as well as a callback for mounting the next tape. It takes
+ * care of reading blocks, applying the bsr, ...
++ * Note, this routine is really the heart of the restore routines,
++ * and we are *really* bit pushing here so be careful about making
++ * any modifications.
+ *
+ * Kern E. Sibbald, August MMII
+ *
+- * Version $Id$
++ * Version $Id$
+ */
+ /*
+- Copyright (C) 2000-2004 Kern Sibbald and John Walker
++ Copyright (C) 2000-2005 Kern Sibbald
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+@@ -57,6 +60,7 @@
+
+ recs = New(dlist(rec, &rec->link));
+ position_to_first_file(jcr, dev);
++ jcr->mount_next_volume = false;
+
+ for ( ; ok && !done; ) {
+ if (job_canceled(jcr)) {
+@@ -66,12 +70,11 @@
+ if (!read_block_from_device(dcr, CHECK_BLOCK_NUMBERS)) {
+ if (dev->at_eot()) {
+ DEV_RECORD *trec = new_record();
+-
+ Jmsg(jcr, M_INFO, 0, "End of Volume at file %u on device %s, Volume \"%s\"\n",
+ dev->file, dev_name(dev), dcr->VolumeName);
+ if (!mount_cb(dcr)) {
+ Jmsg(jcr, M_INFO, 0, "End of all volumes.\n");
+- ok = false;
++ ok = false; /* Stop everything */
+ /*
+ * Create EOT Label so that Media record may
+ * be properly updated because this is the last
+@@ -81,8 +84,13 @@
+ trec->File = dev->file;
+ ok = record_cb(dcr, trec);
+ free_record(trec);
++ if (jcr->mount_next_volume) {
++ jcr->mount_next_volume = false;
++ dev->state &= ~ST_EOT;
++ }
+ break;
+ }
++ jcr->mount_next_volume = false;
+ /*
+ * We just have a new tape up, now read the label (first record)
+ * and pass it off to the callback routine, then continue
+@@ -113,10 +121,10 @@
+ display_tape_error_status(jcr, dev);
+ if (forge_on || jcr->ignore_label_errors) {
+ fsr_dev(dev, 1); /* try skipping bad record */
+- Dmsg0(000, "Did fsr\n");
++ Pmsg0(000, "Did fsr\n");
+ continue; /* try to continue */
+ }
+- ok = false;
++ ok = false; /* stop everything */
+ break;
+ }
+ }
+@@ -259,7 +267,11 @@
+ Dmsg2(300, "Current postion (file:block) %d:%d\n",
+ dev->file, dev->block_num);
+ jcr->bsr->mount_next_volume = false;
+-// dev->state |= ST_EOT;
++ if (!dev->at_eot()) {
++ /* Set EOT flag to force mount of next Volume */
++ jcr->mount_next_volume = true;
++ dev->state |= ST_EOT;
++ }
+ rec->Block = 0;
+ return 1;
+ }
--- /dev/null
+
+ This patch fails a job if no Storage resource is specified and
+ the job attempts to call the SD.
+
+ Apply the patch to 1.36.2 with:
+
+ cd <bacula-source>
+ patch -p0 <1.36.2-store.patch
+ make
+ ...
+
+Index: src/dird/msgchan.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/dird/msgchan.c,v
+retrieving revision 1.32.4.1
+diff -u -r1.32.4.1 msgchan.c
+--- src/dird/msgchan.c 14 Feb 2005 10:02:21 -0000 1.32.4.1
++++ src/dird/msgchan.c 18 Mar 2005 15:40:53 -0000
+@@ -66,6 +66,10 @@
+ BSOCK *sd;
+ STORE *store;
+
++ if (!jcr->storage[0]) {
++ Jmsg(jcr, M_FATAL, 0, _("Attempt to contact the Storage daemon with no Storage resource.\n"));
++ return false;
++ }
+ store = (STORE *)jcr->storage[0]->first();
+
+ /*
--- /dev/null
+
+ This patch should fix memory leaks in tray-monitor.
+ Apply the patch to 1.36.2 with:
+
+ cd <bacula-source>/src/tray-monitor
+ patch -p0 <1.36.2-tray-monitor-memleak.patch
+ make
+ ...
+
+Index: tray-monitor.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v
+retrieving revision 1.19
+diff -r1.19 tray-monitor.c
+36a37,38
+> #define TRAY_DEBUG_MEMORY 0
+>
+50d51
+< static POOLMEM *args;
+135a137,157
+> int sm_line = 0;
+>
+> #if TRAY_DEBUG_MEMORY
+> gpointer smt_malloc(gsize n_bytes) {
+> return sm_malloc("GLib", sm_line, n_bytes);
+> }
+>
+> gpointer smt_realloc(gpointer mem, gsize n_bytes) {
+> return sm_realloc("GLib", sm_line, mem, n_bytes);
+> }
+>
+> gpointer smt_calloc(gsize n_blocks,
+> gsize n_block_bytes) {
+> return sm_calloc("GLib", sm_line, n_blocks, n_block_bytes);
+> }
+>
+> void smt_free(gpointer mem) {
+> sm_free("Glib", sm_line, mem);
+> }
+> #endif
+>
+142a165,175
+> #if TRAY_DEBUG_MEMORY
+> GMemVTable smvtable;
+> smvtable.malloc = &smt_malloc;
+> smvtable.realloc = &smt_realloc;
+> smvtable.free = &smt_free;
+> smvtable.calloc = &smt_calloc;
+> smvtable.try_malloc = NULL;
+> smvtable.try_realloc = NULL;
+> g_mem_set_vtable(&smvtable);
+> #endif
+>
+154d186
+< args = get_pool_memory(PM_FNAME);
+255c287
+< g_assert((xpm_generic_var[i] = (char*)g_malloc(strlen(xpm_generic[i])*sizeof(char))));
+---
+> g_assert((xpm_generic_var[i] = (char*)g_malloc((strlen(xpm_generic[i])+1)*sizeof(char))));
+412a445,448
+>
+> g_source_remove(timerTag);
+>
+> sm_line = 0;
+422d457
+< free_pool_memory(args);
+429a465,468
+>
+> gtk_object_destroy(GTK_OBJECT(window));
+> gtk_object_destroy(GTK_OBJECT(mTrayMenu));
+> term_msg();
+430a470,473
+> #if TRAY_DEBUG_MEMORY
+> sm_dump(false);
+> #endif
+>
+534c577,581
+< GtkTextBuffer *newbuffer = gtk_text_buffer_new(NULL);
+---
+> sm_line++;
+> #if TRAY_DEBUG_MEMORY
+> printf("sm_line=%d\n", sm_line);
+> #endif
+> GtkTextBuffer *newbuffer;
+546a594,595
+> newbuffer = gtk_text_buffer_new(NULL);
+>
+558a608,609
+> g_slist_free(list);
+>
+963a1015
+> g_object_unref(G_OBJECT(pixbuf));
--- /dev/null
+
+ This patch will prevent the Win32 FD from printing an error message
+ when it attempts to restore the permissions for a drive (which Win32
+ doesn't permit). The error is harmless in any case.
+ Apply the patch to 1.36.2 with
+
+ cd <bacula-source>
+ patch -p0 <1.36.2-win32-drive.patch
+ make
+ ...<F12>
+
+
+Index: src/findlib/create_file.c
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/findlib/create_file.c,v
+retrieving revision 1.34
+diff -u -r1.34 create_file.c
+--- src/findlib/create_file.c 27 Jul 2004 21:00:33 -0000 1.34
++++ src/findlib/create_file.c 9 Mar 2005 17:52:50 -0000
+@@ -271,6 +271,12 @@
+ if ((bopen(bfd, attr->ofname, O_WRONLY|O_BINARY, 0)) < 0) {
+ berrno be;
+ be.set_errno(bfd->berrno);
++#ifdef HAVE_WIN32
++ /* Check for trying to create a drive, if so, skip */
++ if (attr->ofname[1] == ':' && attr->ofname[2] == '/' && attr->ofname[3] == 0) {
++ return CF_SKIP;
++ }
++#endif
+ Jmsg2(jcr, M_ERROR, 0, _("Could not open %s: ERR=%s\n"),
+ attr->ofname, be.strerror());
+ return CF_ERROR;
--- /dev/null
+Index: CHANGELOG
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/wx-console/CHANGELOG,v
+retrieving revision 1.42.8.2
+retrieving revision 1.42
+diff -r1.42.8.2 -r1.42
+1,9d0
+< 24-03-2005 :
+< - wxbMainFrame : Fix a bug with GTK+-1.2 which caused wx-console to crash
+< when starting.
+< - wxbRestorePanel : Fix a major bug which caused wx-console to enter in an
+< infinite loop which allocate a lot of memory and could make the system crash.
+<
+< 10-03-2005 :
+< - wxbMainFrame : Fix bug #0000221 (Debian 292517)
+<
+Index: wxbmainframe.cpp
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbmainframe.cpp,v
+retrieving revision 1.30.6.2
+retrieving revision 1.30
+diff -r1.30.6.2 -r1.30
+7c7
+< * Version $Id$
+---
+> * Version $Id$
+210,211d209
+< lockedbyconsole = false;
+<
+317a316,317
+> lockedbyconsole = false;
+>
+650,651c650,651
+< if (res == -1) { //Cancel pressed
+< Send(".\n");
+---
+> if (res == -1) {
+> Send("\n");
+Index: wxbrestorepanel.cpp
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbrestorepanel.cpp,v
+retrieving revision 1.40.8.1
+retrieving revision 1.40
+diff -r1.40.8.1 -r1.40
+7c7
+< * Version $Id$
+---
+> * Version $Id$
+411c411
+< markWhenCommandDone = false;
+---
+> markWhenListingDone = false;
+1987a1988
+> AddPendingEvent(event);
+1996a1998
+> AddPendingEvent(event);
+2002a2005
+> AddPendingEvent(event);
+2015a2019
+> AddPendingEvent(event);
+2024c2028
+< markWhenCommandDone = false;
+---
+> markWhenListingDone = false;
+2028c2032
+< if (markWhenCommandDone) {
+---
+> if (markWhenListingDone) {
+2041a2046
+> csprint("Tree marked", CS_DEBUG);
+2044c2049
+< markWhenCommandDone = !markWhenCommandDone;
+---
+> markWhenListingDone = !markWhenListingDone;
+2045a2051
+> AddPendingEvent(event);
+2049d2054
+< markWhenCommandDone = false;
+2051,2054c2056
+< if (markWhenCommandDone) {
+< CmdMark(event.GetItem(), NULL, 0);
+< tree->Refresh();
+< }
+---
+> //event.Skip();
+2065a2068
+> AddPendingEvent(event);
+2080a2084
+> AddPendingEvent(event);
+2095a2100
+> AddPendingEvent(event);
+2105a2111,2112
+> AddPendingEvent(event);
+> //event.Skip();
+2125c2132
+<
+---
+>
+2140a2148,2149
+> AddPendingEvent(event);
+> //event.Skip();
+2176a2186
+> AddPendingEvent(event);
+2212a2223
+> AddPendingEvent(event);
+2241a2253
+> AddPendingEvent(event);
+2270a2283
+> AddPendingEvent(event);
+Index: wxbrestorepanel.h
+===================================================================
+RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbrestorepanel.h,v
+retrieving revision 1.19.10.1
+retrieving revision 1.19
+diff -r1.19.10.1 -r1.19
+7c7
+< * Version $Id$
+---
+> * Version $Id$
+154c154
+< bool markWhenCommandDone; //If an item should be (un)marked after the current listing/marking is done
+---
+> bool markWhenListingDone;
--- /dev/null
+
+04Mar05 1.36.2-level.patch
+ This patch should fix a problem with th %l editing in the
+ client (FD) where it edited nothing. With this fix, it should
+ edit "since".
+
+04Mar05 1.36.2-pool.patch
+ This patch corrects a problem preventing multiple
+ simultaneous jobs from different pools.
+
+09Mar05 1.36.2-win32-drive.patch
+ This patch will prevent the Win32 FD from printing an error message
+ when it attempts to restore the permissions for a drive (which Win32
+ doesn't permit). The error is harmless in any case.
+
+15Mar05 1.36.2-netbsd.patch
+ This patch corrects a compile problem because of no statfs()
+ on NetBSD. The patch was submitted by kardel with bug 258.
+
+16Mar05 1.36.2-console.patch
+ This patch causes the output directed to a file to be
+ flushed after every line. This is a bit overkill, IMO, but
+ a user complained about it.
+
+17Mar05 1.36.2-restore-speed.patch
+ This patch will fix a subtle bug that was introduced in 1.36.2
+ which causes Bacula to be very slow restoring a few files. This
+ is because it reads completely to the end of the Volume rather
+ than stopping when all the files on the Volume are loaded. The
+ introduction of the bug was caused by a patch that fixed
+ Bacula truncating tapes after a restore.
+ Note that all source files will be rebuilt during the make.
+
+18Mar05 1.36.2-store.patch
+ This patch fails a job if no Storage resource is specified and
+ the job attempts to call the SD.
+
+18Mar05 1.36.2-reschedule.patch
+ This patch should fix a Segfault bug when a job is rescheduled.
+ The storage pointers were being released when they should not
+ have been.
+
+24Mar05 1.36.2-wx-console-bugfixes.patch
+ Major wx-console fixes (see src/wx-console/CHANGELOG for details).
+
+28Mar05 1.36.2-tray-monitor-memleak.patch
+ This patch should fix memory leaks in tray-monitor.