]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Fix Job restart on error bug that promotes an Inc to a Full
authorKern Sibbald <kern@sibbald.com>
Thu, 18 Jan 2007 09:42:28 +0000 (09:42 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 18 Jan 2007 09:42:28 +0000 (09:42 +0000)
     backup.  This should fix bug #755.
kes  Add qt-console and first cut of code.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4011 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/CheckList
bacula/kernstodo
bacula/src/dird/job.c
bacula/src/qt-console/Makefile [new file with mode: 0644]
bacula/src/qt-console/main.cpp [new file with mode: 0644]
bacula/src/qt-console/main.ui [new file with mode: 0644]
bacula/src/qt-console/qt-console.pro [new file with mode: 0644]
bacula/src/version.h
bacula/technotes-2.1

index ccc71d7e7994056ee376ff530cd007242ff67cf3..ab1d9d36507c954c4f4b4391a4a3bf0e8a96cce1 100644 (file)
@@ -1,18 +1,58 @@
 
              Release Check List
 
+Assume release is in bacula/base bacula/gui bacula/docs bacula/rescue
+
 - Build it on Win32
-- Build it on Sun
-- Build FD on Irix
-- Make new .pdf manual
+- Build it on Solaris and run regression tests
+- Build it on FreeBSD and run regression tests
 - Update ChangeLog (add release date)
+- Update ReleaeNotes
 - Do a cvs commit
-- Do a cvs -q export -D now -d bacula-1.nn bacula
+- Run ./makerel base 2.0.x
 - Run the regression tests on the new bacula
-- Write ReleaseNotes
+  directory that is created.  Run regression on
+  Linux, Solaris, and Sun.
+- Run the production version over night in production.
+- Manually test Win32 version
+  (with Robert's work, it is now possible to run the
+   Regression scripts).
+- Write final ReleaseNotes
 - If everything is good
-- cd bacula/k
-- cvs -q tag Release-1_nn
 - cd bacula
-- rm -rf bacula-1.nn
-- cvs -z3 export -r Release-1_nn -d bacula-1.nn bacula
+- Run    
+  cd base
+  cvs update
+  cd ../gui
+  cvs update
+  cd ../docs
+  cvs update
+     cd manual
+     make tex
+     latex bacula.tex
+     (make sure the above finishes.  If it stops and asks
+      what to do, correct the problem).
+      cd ..
+  cd ../rescue
+  cvs update
+  cd ..
+  ./makerel base 2.0.x
+  ./makeguirel gui 2.0.x
+  ./makedocsrel docs 2.0.x
+  ./makerescuerel rescue 2.0.x
+  cd base/win32
+  make
+  cp release/winbacula-2.0.x.exe $HOME/bacula
+  cd $HOME/bacula
+  ./sign winbacula-2.0.x.exe
+
+- Upload everything to appropriate part of Source Forge
+  and release it.  I use releaseforge 
+- After releasing everything.
+- Either download everything and compare the signatures,
+  or simply check the upload sizes of everything.
+- cd docs/manual
+  make
+- Upload new release doc to web site.
+  Upload bacula.pdf to web site.
+      
index d87f73056e1cc23decade8f33f2d693412facb51..9a1c54eb52950adc4951014e14ec54d094335401 100644 (file)
@@ -41,6 +41,9 @@ Document:
  
 
 Priority:
+- Figure out some way to "automatically" backup conf changes.
+- Look at using posix_fadvise(2) for backups -- see bug #751.
+  Possibly add the code at findlib/bfile.c:795
 - Add the OS version back to the Win32 client info.
 - Restarted jobs have a NULL in the from field.
 - Modify SD status command to indicate when the SD is writing
index f4eceadeb8e676b6663f4658467a12a05136f4e0..5063490ade5b6bb4b3f908a02754e35f166e95f1 100644 (file)
@@ -852,11 +852,6 @@ void dird_free_jcr_pointers(JCR *jcr)
       free_pool_memory(jcr->fname);
       jcr->fname = NULL;
    }
-   if (jcr->stime) {
-      Dmsg0(200, "Free JCR stime\n");
-      free_pool_memory(jcr->stime);
-      jcr->stime = NULL;
-   }
    if (jcr->RestoreBootstrap) {
       free(jcr->RestoreBootstrap);
       jcr->RestoreBootstrap = NULL;
@@ -889,6 +884,11 @@ void dird_free_jcr(JCR *jcr)
       pthread_cond_destroy(&jcr->term_wait);
       jcr->term_wait_inited = false;
    }
+   if (jcr->stime) {
+      Dmsg0(200, "Free JCR stime\n");
+      free_pool_memory(jcr->stime);
+      jcr->stime = NULL;
+   }
    if (jcr->fname) {
       Dmsg0(200, "Free JCR fname\n");
       free_pool_memory(jcr->fname);
diff --git a/bacula/src/qt-console/Makefile b/bacula/src/qt-console/Makefile
new file mode 100644 (file)
index 0000000..168171b
--- /dev/null
@@ -0,0 +1,193 @@
+#############################################################################
+# Makefile for building: qt-console
+# Generated by qmake (2.01a) (Qt 4.2.1) on: Thu Jan 18 09:41:24 2007
+# Project:  qt-console.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile qt-console.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+LEX           = flex
+YACC          = yacc
+DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT  $(DEFINES)
+CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT  $(DEFINES)
+LEXFLAGS      = 
+YACCFLAGS     = -d
+INCPATH       = -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -I. -I.
+LINK          = g++
+LFLAGS        = 
+LIBS          = $(SUBLIBS)  -L/usr/lib -lQtGui -L/usr/lib -L/usr/X11R6/lib -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -ldl -lpthread
+AR            = ar cqs
+RANLIB        = 
+QMAKE         = /usr/bin/qmake
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+COPY          = cp -f
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+INSTALL_FILE  = install -m 644 -p
+INSTALL_DIR   = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE      = rm -f
+SYMLINK       = ln -sf
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR   = ./
+
+####### Files
+
+SOURCES       = main.cpp 
+OBJECTS       = main.o
+DIST          = /usr/share/qt4/mkspecs/common/unix.conf \
+               /usr/share/qt4/mkspecs/common/g++.conf \
+               /usr/share/qt4/mkspecs/common/linux.conf \
+               /usr/share/qt4/mkspecs/qconfig.pri \
+               /usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /usr/share/qt4/mkspecs/features/qt_config.prf \
+               /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /usr/share/qt4/mkspecs/features/default_pre.prf \
+               /usr/share/qt4/mkspecs/features/release.prf \
+               /usr/share/qt4/mkspecs/features/default_post.prf \
+               /usr/share/qt4/mkspecs/features/warn_on.prf \
+               /usr/share/qt4/mkspecs/features/qt.prf \
+               /usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /usr/share/qt4/mkspecs/features/moc.prf \
+               /usr/share/qt4/mkspecs/features/resources.prf \
+               /usr/share/qt4/mkspecs/features/uic.prf \
+               qt-console.pro
+QMAKE_TARGET  = qt-console
+DESTDIR       = 
+TARGET        = qt-console
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET): ui_main.h $(OBJECTS)  
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: qt-console.pro  /usr/share/qt4/mkspecs/default/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
+               /usr/share/qt4/mkspecs/common/g++.conf \
+               /usr/share/qt4/mkspecs/common/linux.conf \
+               /usr/share/qt4/mkspecs/qconfig.pri \
+               /usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /usr/share/qt4/mkspecs/features/qt_config.prf \
+               /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /usr/share/qt4/mkspecs/features/default_pre.prf \
+               /usr/share/qt4/mkspecs/features/release.prf \
+               /usr/share/qt4/mkspecs/features/default_post.prf \
+               /usr/share/qt4/mkspecs/features/warn_on.prf \
+               /usr/share/qt4/mkspecs/features/qt.prf \
+               /usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /usr/share/qt4/mkspecs/features/moc.prf \
+               /usr/share/qt4/mkspecs/features/resources.prf \
+               /usr/share/qt4/mkspecs/features/uic.prf \
+               /usr/lib/libQtGui.prl \
+               /usr/lib/libQtCore.prl
+       $(QMAKE) -unix -o Makefile qt-console.pro
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake:  FORCE
+       @$(QMAKE) -unix -o Makefile qt-console.pro
+
+dist: 
+       @$(CHK_DIR_EXISTS) .tmp/qt-console1.0.0 || $(MKDIR) .tmp/qt-console1.0.0 
+       $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/qt-console1.0.0/ && $(COPY_FILE) --parents main.cpp .tmp/qt-console1.0.0/ && $(COPY_FILE) --parents main.ui .tmp/qt-console1.0.0/ && (cd `dirname .tmp/qt-console1.0.0` && $(TAR) qt-console1.0.0.tar qt-console1.0.0 && $(COMPRESS) qt-console1.0.0.tar) && $(MOVE) `dirname .tmp/qt-console1.0.0`/qt-console1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/qt-console1.0.0
+
+
+yaccclean:
+lexclean:
+clean:compiler_clean 
+       -$(DEL_FILE) $(OBJECTS)
+       -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+       -$(DEL_FILE) $(TARGET) 
+       -$(DEL_FILE) Makefile
+
+
+/usr/bin/moc:
+       (cd $(QTDIR)/src/tools/moc && $(MAKE))
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all:
+compiler_moc_header_clean:
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+       -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all: ui_main.h
+compiler_uic_clean:
+       -$(DEL_FILE) ui_main.h
+ui_main.h: main.ui
+       /usr/bin/uic main.ui -o ui_main.h
+
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_image_collection_clean compiler_moc_source_clean compiler_uic_clean 
+
+####### Compile
+
+main.o: main.cpp ui_main.h
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
+
+####### Install
+
+install:   FORCE
+
+uninstall:   FORCE
+
+FORCE:
+
diff --git a/bacula/src/qt-console/main.cpp b/bacula/src/qt-console/main.cpp
new file mode 100644 (file)
index 0000000..ca50409
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+   Bacula® - The Network Backup Solution
+
+   Copyright (C) 2007 Free Software Foundation Europe e.V.
+
+   The main author of Bacula is Kern Sibbald, with contributions from
+   many others, a complete list can be found in the file AUTHORS.
+   This program is Free Software; you can redistribute it and/or
+   modify it under the terms of version two of the GNU General Public
+   License as published by the Free Software Foundation plus additions
+   that are listed in the file LICENSE.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   Bacula® is a registered trademark of John Walker.
+   The licensor of Bacula is the Free Software Foundation Europe
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+   Switzerland, email:ftf@fsfeurope.org.
+*/
+
+
+
+#include "ui_main.h"
+#include <QtGui>
+
+int main(int argc, char *argv[])
+{
+   QApplication app(argc, argv);        
+   app.setQuitOnLastWindowClosed(true);
+   
+   QMainWindow *main = new QMainWindow;
+   Ui::MainWindow ui;
+   ui.setupUi(main);
+
+   ui.textEdit->setPlainText("Hello Baculites\nThis is the main console window.");
+   main->show();
+   return app.exec();
+}
diff --git a/bacula/src/qt-console/main.ui b/bacula/src/qt-console/main.ui
new file mode 100644 (file)
index 0000000..2eeb1d5
--- /dev/null
@@ -0,0 +1,221 @@
+<ui version="4.0" >
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget" >
+   <layout class="QVBoxLayout" >
+    <property name="margin" >
+     <number>9</number>
+    </property>
+    <property name="spacing" >
+     <number>6</number>
+    </property>
+    <item>
+     <widget class="QSplitter" name="splitter" >
+      <property name="orientation" >
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <widget class="QDockWidget" name="dockWidget" >
+       <property name="sizePolicy" >
+        <sizepolicy>
+         <hsizetype>5</hsizetype>
+         <vsizetype>7</vsizetype>
+         <horstretch>1</horstretch>
+         <verstretch>1</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize" >
+        <size>
+         <width>100</width>
+         <height>100</height>
+        </size>
+       </property>
+       <property name="maximumSize" >
+        <size>
+         <width>400</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <widget class="QWidget" name="dockWidgetContents" >
+        <widget class="QTreeWidget" name="treeWidget" >
+         <property name="geometry" >
+          <rect>
+           <x>0</x>
+           <y>13</y>
+           <width>141</width>
+           <height>321</height>
+          </rect>
+         </property>
+         <property name="sizePolicy" >
+          <sizepolicy>
+           <hsizetype>5</hsizetype>
+           <vsizetype>7</vsizetype>
+           <horstretch>1</horstretch>
+           <verstretch>1</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="minimumSize" >
+          <size>
+           <width>100</width>
+           <height>100</height>
+          </size>
+         </property>
+         <property name="sizeIncrement" >
+          <size>
+           <width>0</width>
+           <height>0</height>
+          </size>
+         </property>
+         <property name="autoFillBackground" >
+          <bool>true</bool>
+         </property>
+        </widget>
+       </widget>
+      </widget>
+      <widget class="QStackedWidget" name="stackedWidget" >
+       <property name="sizePolicy" >
+        <sizepolicy>
+         <hsizetype>7</hsizetype>
+         <vsizetype>7</vsizetype>
+         <horstretch>200</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="sizeIncrement" >
+        <size>
+         <width>1</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="currentIndex" >
+        <number>1</number>
+       </property>
+       <widget class="QWidget" name="page" />
+       <widget class="QWidget" name="page_2" >
+        <widget class="QTextEdit" name="textEdit" >
+         <property name="geometry" >
+          <rect>
+           <x>73</x>
+           <y>23</y>
+           <width>271</width>
+           <height>361</height>
+          </rect>
+         </property>
+         <property name="sizePolicy" >
+          <sizepolicy>
+           <hsizetype>7</hsizetype>
+           <vsizetype>7</vsizetype>
+           <horstretch>3</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="sizeIncrement" >
+          <size>
+           <width>1</width>
+           <height>0</height>
+          </size>
+         </property>
+         <property name="toolTip" >
+          <string comment="Console Window" />
+         </property>
+         <property name="statusTip" >
+          <string comment="Console Window" />
+         </property>
+         <property name="whatsThis" >
+          <string comment="Console Window" />
+         </property>
+         <property name="documentTitle" >
+          <string comment="Console Window" />
+         </property>
+         <property name="readOnly" >
+          <bool>true</bool>
+         </property>
+        </widget>
+       </widget>
+      </widget>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" >
+      <property name="margin" >
+       <number>0</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="label" >
+        <property name="text" >
+         <string>Command:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineEdit" />
+      </item>
+     </layout>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar" >
+   <property name="geometry" >
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>28</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile" >
+    <property name="title" >
+     <string>File</string>
+    </property>
+   </widget>
+   <addaction name="menuFile" />
+  </widget>
+  <widget class="QStatusBar" name="statusbar" />
+  <widget class="QToolBar" name="toolBar" >
+   <property name="minimumSize" >
+    <size>
+     <width>15</width>
+     <height>6</height>
+    </size>
+   </property>
+   <property name="orientation" >
+    <enum>Qt::Horizontal</enum>
+   </property>
+   <attribute name="toolBarArea" >
+    <number>4</number>
+   </attribute>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>lineEdit</sender>
+   <signal>textChanged(QString)</signal>
+   <receiver>textEdit</receiver>
+   <slot>setText(QString)</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>137</x>
+     <y>560</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>192</x>
+     <y>407</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/bacula/src/qt-console/qt-console.pro b/bacula/src/qt-console/qt-console.pro
new file mode 100644 (file)
index 0000000..9354a1f
--- /dev/null
@@ -0,0 +1,12 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Thu Jan 18 09:40:56 2007
+######################################################################
+
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+FORMS += main.ui
+SOURCES += main.cpp
index e48a7311885cbaddbacd678e4e5084c2aab3d445..ee96c8d5f644d46560219f0fd55ed548573b5f28 100644 (file)
@@ -4,8 +4,8 @@
 
 #undef  VERSION
 #define VERSION "2.1.1"
-#define BDATE   "11 January 2007"
-#define LSMDATE "11Jan07"
+#define BDATE   "18 January 2007"
+#define LSMDATE "18Jan07"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2007"       /* year for copyright messages in progs */
index 65f245c4d9f11d9ecf15cc516c44977d83dc0e07..992a5ee6ddaaa425489b19fbdcd950f68f043271 100644 (file)
@@ -2,6 +2,10 @@
 
 General:
 Version 2.0.1
+18Jan07
+kes  Fix Job restart on error bug that promotes an Inc to a Full
+     backup.  This should fix bug #755.
+kes  Add qt-console and first cut of code.
 12Jan07
 kes  Fix Bacula->Documentation link on Win32 to point to index.html
      instead of bacula.html. Fixed bug #750.