From c899b53b09005badc9f5a968370aa44ab46f5681 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Thu, 18 Jan 2007 09:42:28 +0000 Subject: [PATCH] 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. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4011 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/CheckList | 58 +++++-- bacula/kernstodo | 3 + bacula/src/dird/job.c | 10 +- bacula/src/qt-console/Makefile | 193 +++++++++++++++++++++++ bacula/src/qt-console/main.cpp | 46 ++++++ bacula/src/qt-console/main.ui | 221 +++++++++++++++++++++++++++ bacula/src/qt-console/qt-console.pro | 12 ++ bacula/src/version.h | 4 +- bacula/technotes-2.1 | 4 + 9 files changed, 535 insertions(+), 16 deletions(-) create mode 100644 bacula/src/qt-console/Makefile create mode 100644 bacula/src/qt-console/main.cpp create mode 100644 bacula/src/qt-console/main.ui create mode 100644 bacula/src/qt-console/qt-console.pro diff --git a/bacula/CheckList b/bacula/CheckList index ccc71d7e79..ab1d9d3650 100644 --- a/bacula/CheckList +++ b/bacula/CheckList @@ -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. + diff --git a/bacula/kernstodo b/bacula/kernstodo index d87f73056e..9a1c54eb52 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -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 diff --git a/bacula/src/dird/job.c b/bacula/src/dird/job.c index f4eceadeb8..5063490ade 100644 --- a/bacula/src/dird/job.c +++ b/bacula/src/dird/job.c @@ -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 index 0000000000..168171b77d --- /dev/null +++ b/bacula/src/qt-console/Makefile @@ -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 index 0000000000..ca50409f9b --- /dev/null +++ b/bacula/src/qt-console/main.cpp @@ -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 + +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 index 0000000000..2eeb1d5b57 --- /dev/null +++ b/bacula/src/qt-console/main.ui @@ -0,0 +1,221 @@ + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + 9 + + + 6 + + + + + Qt::Horizontal + + + + + 5 + 7 + 1 + 1 + + + + + 100 + 100 + + + + + 400 + 16777215 + + + + + + + 0 + 13 + 141 + 321 + + + + + 5 + 7 + 1 + 1 + + + + + 100 + 100 + + + + + 0 + 0 + + + + true + + + + + + + + 7 + 7 + 200 + 0 + + + + + 1 + 0 + + + + 1 + + + + + + + 73 + 23 + 271 + 361 + + + + + 7 + 7 + 3 + 0 + + + + + 1 + 0 + + + + + + + + + + + + + + + + true + + + + + + + + + + 0 + + + 6 + + + + + Command: + + + + + + + + + + + + + + 0 + 0 + 800 + 28 + + + + + File + + + + + + + + + 15 + 6 + + + + Qt::Horizontal + + + 4 + + + + + + + lineEdit + textChanged(QString) + textEdit + setText(QString) + + + 137 + 560 + + + 192 + 407 + + + + + diff --git a/bacula/src/qt-console/qt-console.pro b/bacula/src/qt-console/qt-console.pro new file mode 100644 index 0000000000..9354a1f3e0 --- /dev/null +++ b/bacula/src/qt-console/qt-console.pro @@ -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 diff --git a/bacula/src/version.h b/bacula/src/version.h index e48a731188..ee96c8d5f6 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -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 */ diff --git a/bacula/technotes-2.1 b/bacula/technotes-2.1 index 65f245c4d9..992a5ee6dd 100644 --- a/bacula/technotes-2.1 +++ b/bacula/technotes-2.1 @@ -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. -- 2.39.5