]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/platforms/redhat/bacula.spec.in
Fix have-sqlite-db but don't-have-sqlite.
[bacula/bacula] / bacula / platforms / redhat / bacula.spec.in
index 53a16dc2b53259cb98d7823ee83d026d6db7b84a..8f281ac92e5d68deb58d3efb5992c1f367252d2c 100644 (file)
@@ -2,10 +2,14 @@
 
 # basic defines for every build
 %define depkgs ../depkgs
-%define depkgs_version 24Jul03
+%define depkgs_version 08Mar04
 %define tomsrtbt tomsrtbt-2.0.103
 %define sqlite_bindir /usr/lib/sqlite
 %define working_dir /var/bacula
+%define daemon_user root
+%define daemon_group bacula
+%define group_file /etc/group
+%define groupadd /usr/sbin/groupadd
 
 # platform defines - set one below or define the build_xxx on the command line
 # RedHat builds
 %define fc1 0
 %{?build_fc1:%define fc1 1}
 # Whitebox Enterprise build
+# this should also work for RHEL
 %define wb3 0
 %{?build_wb3:%define wb3 1}
-# SuSE 9.0 build
+# SuSE build
+# this is known to build on SuSE 8.2 and 9.0
 %define su9 0
 %{?build_su9:%define su9 1}
+# Mandrake build
+%define mdk 0
+%{?build_mdk:%define mdk 1}
+
+# test for a platform definition
+%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9} && ! %{mdk}
+%{error: You must specify a platform. Please examine the spec file.}
+exit 1
+%endif
 
 # database defines
-# set for database support desired
+# set for database support desired or define the build_xxx on the command line
 %define mysql 0
 %{?build_mysql:%define mysql 1}
 %define sqlite 0
 %define postgresql 0
 %{?build_postgresql:%define postgresql 1}
 
+# test for a database definition
+%if ! %{mysql} && ! %{sqlite} && ! %{postgresql}
+%{error: You must specify database support. Please examine the spec file.}
+exit 1
+%endif
+
 Summary: Bacula - The Network Backup Solution
 Name: bacula
 Version: @VERSION@
@@ -43,13 +64,14 @@ Copyright: GPL v2
 Source0:http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
 Source1:http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
 Source2:http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/%{tomsrtbt}.tar.gz
+Source3: Release_Notes-%{version}-%{release}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-root
 URL: http://www.bacula.org/
 Vendor: The Bacula Team
 Distribution: The Bacula Team
 Packager: D. Scott Barninger <barninger@fairfieldcomputers.com>
 BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel
-BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel
+BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig
 %if %{rh7}
 BuildRequires: libtermcap-devel
 BuildRequires: gtk+-devel >= 1.2
@@ -58,9 +80,11 @@ BuildRequires: glibc-devel >= 2.2
 BuildRequires: ORBit-devel
 BuildRequires: bonobo-devel
 BuildRequires: GConf-devel
+BuildRequires: freetype-devel
 %endif
 %if %{su9}
 BuildRequires: termcap
+BuildRequires: libgnome >= 2.0
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
 BuildRequires: glibc-devel >= 2.3
@@ -71,8 +95,24 @@ BuildRequires: libbonoboui-devel >= 2.0
 BuildRequires: bonobo-activation-devel
 BuildRequires: gconf2-devel
 BuildRequires: linc-devel
+BuildRequires: freetype2-devel
 %endif
-%if ! %{rh7} && ! %{su9}
+%if %{mdk}
+BuildRequires: libtermcap-devel
+BuildRequires: gtk2-devel >= 2.0
+BuildRequires: libgnomeui2-devel >= 2.0
+BuildRequires: glibc-devel >= 2.3
+BuildRequires: libORBit2-devel
+BuildRequires: libart_lgpl-devel >= 2.0
+BuildRequires: libbonobo2_0-devel
+BuildRequires: libbonoboui2_0-devel
+BuildRequires: libbonobo-activation-devel
+BuildRequires: libGConf2-devel
+BuildRequires: libstdc++-static-devel
+BuildRequires: glibc-static-devel
+BuildRequires: freetype2-devel
+%endif
+%if ! %{rh7} && ! %{su9} && ! %{mdk}
 BuildRequires: libtermcap-devel
 BuildRequires: gtk2-devel >= 2.0
 BuildRequires: libgnomeui-devel >= 2.0
@@ -84,6 +124,7 @@ BuildRequires: libbonoboui-devel >= 2.0
 BuildRequires: bonobo-activation-devel
 BuildRequires: GConf2-devel
 BuildRequires: linc-devel
+BuildRequires: freetype-devel
 %endif
 
 %if %{mysql}
@@ -122,48 +163,35 @@ Bacula source code has been released under the GPL version 2 license.
 Summary: Bacula - The Network Backup Solution
 Group: System Environment/Daemons
 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
-Conflicts: bacula-client, bacula-gconsole
-Requires: readline, perl, atk, ncurses, pango, libstdc++
-Requires: libxml2, zlib
+Conflicts: bacula-client
+Requires: readline, ncurses, libstdc++, zlib
+%if %{sqlite}
+Conflicts: sqlite, sqlite-tools
+%endif
 %if %{rh7}
-Requires: gtk+ >= 1.2
-Requires: gnome-libs >= 1.4
 Requires: glibc >= 2.2
-Requires: ORBit
-Requires: bonobo
-Requires: GConf
 Requires: libtermcap
 %endif
 %if %{su9}
-Requires: gtk2 >= 2.0
-Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
-Requires: ORBit2
-Requires: libart_lgpl >= 2.0
-Requires: libbonobo >= 2.0
-Requires: libbonoboui >= 2.0
-Requires: bonobo-activation
-Requires: gconf2
-Requires: linc
 Requires: termcap
 %endif
 %if ! %{rh7} && ! %{su9}
-Requires: gtk2 >= 2.0
-Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
-Requires: ORBit2
-Requires: libart_lgpl >= 2.0
-Requires: libbonobo >= 2.0
-Requires: libbonoboui >= 2.0
-Requires: bonobo-activation
-Requires: GConf2
-Requires: linc
 Requires: libtermcap
 %endif
-%if %{mysql}
+%if %{mysql} && ! %{su9} && ! %{mdk}
 Requires: mysql >= 3.23
 Requires: mysql-server >= 3.23
 %endif
+%if %{mysql} && %{su9}
+Requires: mysql >= 3.23
+Requires: mysql-client >= 3.23
+%endif
+%if %{mysql} && %{mdk}
+Requires: mysql >= 3.23
+Requires: mysql-client >= 3.23
+%endif
 %if %{postgresql} && %{wb3}
 Requires: rh-postgresql >= 7
 Requires: rh-postgresql-server >= 7
@@ -207,7 +235,7 @@ This build incorporates sqlite as the catalog database, statically compiled.
 Summary: Bacula - The Network Backup Solution
 Group: System Environment/Daemons
 Provides: bacula-fd
-Requires: readline, perl, libstdc++, zlib
+Requires: readline, libstdc++, zlib
 
 %if %{rh7}
 Requires: glibc >= 2.2
@@ -292,8 +320,7 @@ database.
 %package gconsole
 Summary: Bacula - The Network Backup Solution
 Group: System Environment/Daemons
-Requires: readline, libstdc++, zlib, pango, bacula-client
-Conflicts: bacula-server
+Requires: readline, atk, libstdc++, zlib, pango, libxml2, bacula-fd
 
 %if %{rh7}
 Requires: gtk+ >= 1.2
@@ -302,9 +329,11 @@ Requires: glibc >= 2.2
 Requires: ORBit
 Requires: bonobo
 Requires: GConf
+Requires: freetype
 %endif
 %if %{su9}
 Requires: gtk2 >= 2.0
+Requires: libgnome >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
 Requires: ORBit2
@@ -314,8 +343,20 @@ Requires: libbonoboui >= 2.0
 Requires: bonobo-activation
 Requires: gconf2
 Requires: linc
+Requires: freetype2
 %endif
-%if ! %{rh7} && ! %{su9}
+%if %{mdk}
+Requires: gtk2 >= 2.0
+Requires: libgnomeui2
+Requires: glibc >= 2.3
+Requires: ORBit2
+Requires: libart_lgpl >= 2.0
+Requires: libbonobo >= 2.0
+Requires: libbonoboui >= 2.0
+Requires: GConf2
+Requires: freetype2
+%endif
+%if ! %{rh7} && ! %{su9} && ! %{mdk}
 Requires: gtk2 >= 2.0
 Requires: libgnomeui >= 2.0
 Requires: glibc >= 2.3
@@ -326,6 +367,12 @@ Requires: libbonoboui >= 2.0
 Requires: bonobo-activation
 Requires: GConf2
 Requires: linc
+Requires: freetype
+%endif
+%if %{su9}
+Requires: xsu
+%else
+Requires: usermode
 %endif
 
 %description gconsole
@@ -339,12 +386,15 @@ easy to use and efficient, while offering many advanced storage management
 features that make it easy to find and recover lost or damaged files. 
 Bacula source code has been released under the GPL version 2 license.
 
-This is the Gnome Console package. It is an add-on to the client package.
+This is the Gnome Console package. It is an add-on to the client or
+server packages.
 
 %prep
 
-%setup -b 1
-%setup -b 2
+%setup
+%setup -T -D -b 1
+%setup -T -D -b 2
+%setup -T -D -b 3
 
 %build
 
@@ -374,6 +424,11 @@ patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
 # patch the update_sqlite_tables script for installation bindir
 patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
 
+# patch the bacula-dir init script to remove sqlite service
+%if %{sqlite} && %{su9}
+patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
+%endif
+
 %configure \
         --prefix=/usr \
         --sbindir=/usr/sbin \
@@ -381,19 +436,28 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
         --with-scriptdir=/etc/bacula \
         --enable-smartalloc \
         --enable-gnome \
-          --enable-static-fd \
+       --enable-static-fd \
+%if ! %{rh7} && ! %{rh8}
+       --enable-tray-monitor \
+%endif
 %if %{mysql}
         --with-mysql \
 %endif
 %if %{sqlite}
-        --with-sqlite=${cwd}/../depkgs/sqlite \
+        --with-sqlite=${cwd}/%{depkgs}/sqlite \
 %endif
 %if %{postgresql}
         --with-postgresql \
 %endif
         --with-working-dir=%{working_dir} \
         --with-pid-dir=/var/run \
-        --with-subsys-dir=/var/lock/subsys
+        --with-subsys-dir=/var/lock/subsys \
+       --with-dir-user=%{daemon_user} \
+       --with-dir-group=%{daemon_group} \
+       --with-sd-user=%{daemon_user} \
+       --with-sd-group=%{daemon_group} \
+       --with-fd-user=%{daemon_user} \
+       --with-fd-group=%{daemon_group}
 make
 
 cd src/filed
@@ -407,11 +471,19 @@ cwd=${PWD}
 mkdir -p $RPM_BUILD_ROOT/etc/init.d
 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
+%if %{rh7}
 mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System
+%else
 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
+%endif
 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue
 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt
 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
+%if ! %{su9}
+mkdir -p $RPM_BUILD_ROOT/etc/pam.d
+mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
+mkdir -p $RPM_BUILD_ROOT/usr/bin
+%endif
 
 %if %{sqlite}
 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
@@ -435,6 +507,15 @@ make \
         mtx-install
 cd ${cwd}
 
+# setup the manual for the doc dir and correct some broken CVS permissions
+mkdir html-manual
+cp -p doc/html-manual/*.html html-manual/
+cp -p doc/html-manual/*.jpg html-manual/
+cp -p doc/html-manual/*.gif html-manual/
+cp -p doc/html-manual/*.css html-manual/
+chmod 644 html-manual/*
+chmod 644 doc/bacula.pdf
+
 # fixme - make installs the mysql scripts for sqlite build
 %if %{sqlite}
 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
@@ -453,38 +534,66 @@ rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
-%else
+%endif
+%if %{mdk}
+cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
+cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
+cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
+%endif
+%if ! %{su9} && ! %{mdk}
 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
 %endif
+chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
 
 # install the menu stuff
+%if %{su9}
+cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
+cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
+cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
+cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
+%endif
+%if %{rh7}
+cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
+cp -p scripts/bacula.desktop.gnome1.consolehelper $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop
+cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
+cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
+ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console
+%endif
+%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{mdk}
 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
-cp -p scripts/bacula.desktop.gnome1 $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop
-cp -p scripts/bacula.desktop.gnome2 $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
+cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
+cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
+cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
+ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console
+%endif
+%if ! %{rh7} && ! %{rh8}
+cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
+cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
+%endif
 
 # install sqlite
 %if %{sqlite}
-cp -p ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
-cp -p ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
-cp -p ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
+cp -p %{depkgs}/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
+cp -p %{depkgs}/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
+cp -p %{depkgs}/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
 %endif
 
 # install the logrotate file
-cp scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
+cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
 
 # install the rescue stuff
 # these are the rescue scripts
-cp -p rescue/linux/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/
-cp -p rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/
+cp -p rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/
 
 # this is the static file daemon
 cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/bacula-fd
@@ -498,6 +607,10 @@ cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
 # now clean up permissions that are left broken by the install
 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
 chmod o-rwx $RPM_BUILD_ROOT/var/bacula
+%if ! %{rh7} && ! %{rh8}
+chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor
+chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf
+%endif
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
@@ -509,8 +622,6 @@ chmod o-rwx $RPM_BUILD_ROOT/var/bacula
 
 /etc/bacula/bacula
 /etc/bacula/bconsole
-/etc/bacula/fd
-/etc/bacula/gconsole
 /etc/bacula/create_mysql_database
 /etc/bacula/drop_mysql_database
 /etc/bacula/make_mysql_tables
@@ -528,16 +639,15 @@ chmod o-rwx $RPM_BUILD_ROOT/var/bacula
 /etc/bacula/startmysql
 /etc/bacula/stopmysql
 /etc/bacula/mtx-changer
+/etc/bacula/btraceback.dbx
+/etc/bacula/btraceback.gdb
 /etc/init.d/bacula-dir
 /etc/init.d/bacula-fd
 /etc/init.d/bacula-sd
 
-%doc COPYING ChangeLog INSTALL README ReleaseNotes doc/*
+%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
 /usr/man/man1/*
-/usr/share/pixmaps/bacula.png
-/usr/share/gnome/apps/System/bacula.desktop
-/usr/share/applications/bacula.desktop
-%config(noreplace) /etc/bacula/gnome-console.conf
+
 /etc/logrotate.d/bacula
 
 %config(noreplace) /etc/bacula/bacula-dir.conf
@@ -547,21 +657,36 @@ chmod o-rwx $RPM_BUILD_ROOT/var/bacula
 /etc/bacula/query.sql
 %dir %{working_dir}
 
-/usr/sbin/*
-/etc/bacula/btraceback.gdb
+/usr/sbin/bacula-dir
+/usr/sbin/bacula-fd
+/usr/sbin/bacula-sd
+/usr/sbin/bcopy
+/usr/sbin/bextract
+/usr/sbin/bls
+/usr/sbin/bscan
+/usr/sbin/btape
+/usr/sbin/btraceback
+/usr/sbin/bconsole
+/usr/sbin/dbcheck
+/usr/sbin/loaderinfo
+/usr/sbin/mtx
+/usr/sbin/scsitape
+/usr/sbin/bsmtp
+/usr/sbin/tapeinfo
+/usr/sbin/static-bacula-fd
 
 %pre mysql
-# test for bacula database older than version 6
+# test for bacula database older than version 7
 # note: this ASSUMES no password has been set for bacula database
 DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
 
-if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
-       echo "This bacula upgrade will update a bacula database from version 6 to 7."
+if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then
+       echo "This bacula upgrade will update a bacula database from version 7 to 8."
        echo "You appear to be running database version $DB_VER. You must first update"
-       echo "your database to version 6 and then install this upgrade. The alternative"
+       echo "your database to version 7 and then install this upgrade. The alternative"
        echo "is to use /etc/bacula/drop_mysql_tables to delete all your your current"
        echo "catalog information, then do the upgrade. Information on updating a"
-       echo "database older than version 6 can be found in the release notes."
+       echo "database older than version 7 can be found in the release notes."
        exit 1
 fi
 # check for and copy /etc/bacula/console.conf to bconsole.conf
@@ -592,8 +717,8 @@ if [ -z "$DB_VER" ]; then
        echo "Creating bacula tables..."
        /etc/bacula/make_mysql_tables
 
-# check to see if we need to upgrade a 1.32 or lower database
-elif [ "$DB_VER" -lt "7" ]; then
+# check to see if we need to upgrade a 1.34 or lower database
+elif [ "$DB_VER" -lt "8" ]; then
        echo "This release requires an upgrade to your bacula database."
        echo "Backing up your current database..."
        mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
@@ -603,6 +728,14 @@ elif [ "$DB_VER" -lt "7" ]; then
 
 fi
 
+# create the daemon group
+HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null`
+if [ -z $HAVE_BACULA ]; then
+       %{groupadd} -r %{daemon_group} > /dev/null 2>&1
+       echo "The group %{daemon_group} has been added to %{groupfile}."
+       echo "See the manual chapter Running Bacula for details."
+fi
+
 %preun mysql
 # delete our links
 if [ $1 = 0 ]; then
@@ -620,8 +753,6 @@ fi
 
 /etc/bacula/bacula
 /etc/bacula/bconsole
-/etc/bacula/fd
-/etc/bacula/gconsole
 /etc/bacula/create_bacula_database
 /etc/bacula/drop_bacula_database
 /etc/bacula/grant_bacula_privileges
@@ -637,16 +768,15 @@ fi
 /etc/bacula/make_catalog_backup
 /etc/bacula/delete_catalog_backup
 /etc/bacula/mtx-changer
+/etc/bacula/btraceback.dbx
+/etc/bacula/btraceback.gdb
 /etc/init.d/bacula-dir
 /etc/init.d/bacula-fd
 /etc/init.d/bacula-sd
 
-%doc COPYING ChangeLog INSTALL README ReleaseNotes doc/*
+%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
 /usr/man/man1/*
-/usr/share/pixmaps/bacula.png
-/usr/share/gnome/apps/System/bacula.desktop
-/usr/share/applications/bacula.desktop
-%config(noreplace) /etc/bacula/gnome-console.conf
+
 /etc/logrotate.d/bacula
 
 %config(noreplace) /etc/bacula/bacula-dir.conf
@@ -658,21 +788,37 @@ fi
 %{sqlite_bindir}/sqlite.h
 %dir %{working_dir}
 
-/usr/sbin/*
+/usr/sbin/bacula-dir
+/usr/sbin/bacula-fd
+/usr/sbin/bacula-sd
+/usr/sbin/bcopy
+/usr/sbin/bextract
+/usr/sbin/bls
+/usr/sbin/bscan
+/usr/sbin/btape
+/usr/sbin/btraceback
+/usr/sbin/bconsole
+/usr/sbin/dbcheck
+/usr/sbin/loaderinfo
+/usr/sbin/mtx
+/usr/sbin/scsitape
+/usr/sbin/bsmtp
+/usr/sbin/tapeinfo
+/usr/sbin/static-bacula-fd
 %{sqlite_bindir}/sqlite
-/etc/bacula/btraceback.gdb
+
 
 %pre sqlite
-# test for bacula database older than version 6
-if [ -s %{working_dir}/bacula.db ];then
+# test for bacula database older than version 7
+if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
        DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
-       if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
-               echo "This bacula upgrade will update a bacula database from version 6 to 7."
+       if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then
+               echo "This bacula upgrade will update a bacula database from version 7 to 8."
                echo "You appear to be running database version $DB_VER. You must first update"
-               echo "your database to version 6 and then install this upgrade. The alternative"
+               echo "your database to version 7 and then install this upgrade. The alternative"
                echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
                echo "catalog information, then do the upgrade. Information on updating a"
-               echo "database older than version 6 can be found in the release notes."
+               echo "database older than version 7 can be found in the release notes."
                exit 1
        fi
 fi
@@ -692,8 +838,17 @@ fi
 # test for an existing database
 if [ -s %{working_dir}/bacula.db ]; then
        DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
-       # check to see if we need to upgrade a 1.32 or lower database
+       # check to see if we need to upgrade a 1.34 or lower database
        if [ "$DB_VER" -lt "7" ]; then
+               echo "This bacula upgrade requires a database update to version 8. You appear to"
+               echo "be running database version $DB_VER. You must update your database using the"
+               echo "upgrade scripts in the bacula-updatedb package. The alternative"
+               echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
+               echo "catalog information, then /etc/bacula/make_sqlite_tables. Information on updating a"
+               echo "database older than version 7 can be found in the release notes."
+       fi      
+       
+       if [ "$DB_VER" -lt "8" ] && [ "$DB_VER" -ge "7" ]; then
                echo "This release requires an upgrade to your bacula database."
                echo "Backing up your current database..."
                echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
@@ -710,6 +865,14 @@ else
        /etc/bacula/make_sqlite_tables
 fi
 
+# create the daemon group
+HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null`
+if [ -z $HAVE_BACULA ]; then
+       %{groupadd} -r %{daemon_group} > /dev/null 2>&1
+       echo "The group %{daemon_group} has been added to %{groupfile}."
+       echo "See the manual chapter Running Bacula for details."
+fi
+
 %preun sqlite
 # delete our links
 if [ $1 = 0 ]; then
@@ -727,8 +890,6 @@ fi
 
 /etc/bacula/bacula
 /etc/bacula/bconsole
-/etc/bacula/fd
-/etc/bacula/gconsole
 /etc/bacula/create_postgresql_database
 /etc/bacula/drop_postgresql_database
 /etc/bacula/make_postgresql_tables
@@ -744,16 +905,15 @@ fi
 /etc/bacula/make_catalog_backup
 /etc/bacula/delete_catalog_backup
 /etc/bacula/mtx-changer
+/etc/bacula/btraceback.dbx
+/etc/bacula/btraceback.gdb
 /etc/init.d/bacula-dir
 /etc/init.d/bacula-fd
 /etc/init.d/bacula-sd
 
-%doc COPYING ChangeLog INSTALL README ReleaseNotes doc/*
+%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
 /usr/man/man1/*
-/usr/share/pixmaps/bacula.png
-/usr/share/gnome/apps/System/bacula.desktop
-/usr/share/applications/bacula.desktop
-%config(noreplace) /etc/bacula/gnome-console.conf
+
 /etc/logrotate.d/bacula
 
 %config(noreplace) /etc/bacula/bacula-dir.conf
@@ -763,8 +923,38 @@ fi
 /etc/bacula/query.sql
 %dir %{working_dir}
 
-/usr/sbin/*
-/etc/bacula/btraceback.gdb
+/usr/sbin/bacula-dir
+/usr/sbin/bacula-fd
+/usr/sbin/bacula-sd
+/usr/sbin/bcopy
+/usr/sbin/bextract
+/usr/sbin/bls
+/usr/sbin/bscan
+/usr/sbin/btape
+/usr/sbin/btraceback
+/usr/sbin/bconsole
+/usr/sbin/dbcheck
+/usr/sbin/loaderinfo
+/usr/sbin/mtx
+/usr/sbin/scsitape
+/usr/sbin/bsmtp
+/usr/sbin/tapeinfo
+/usr/sbin/static-bacula-fd
+
+%pre postgresql
+# test for bacula database older than version 7
+# note: this ASSUMES no password has been set for bacula database
+DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null`
+
+if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then
+       echo "This bacula upgrade will update a bacula database from version 7 to 8."
+       echo "You appear to be running database version $DB_VER. You must first update"
+       echo "your database to version 7 and then install this upgrade. The alternative"
+       echo "is to use /etc/bacula/drop_postgresql_tables to delete all your your current"
+       echo "catalog information, then do the upgrade. Information on updating a"
+       echo "database older than version 7 can be found in the release notes."
+       exit 1
+fi
 
 %post postgresql
 # add our links
@@ -788,6 +978,26 @@ if [ -z "$DB_VER" ]; then
        echo "Creating bacula tables..."
        /etc/bacula/make_postgresql_tables
 
+# check to see if we need to upgrade a 1.34 or lower database
+elif [ "$DB_VER" -lt "8" ]; then
+       echo "This release requires an upgrade to your bacula database."
+       echo "Backing up your current database..."
+       pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
+       echo "Upgrading bacula database ..."
+       /etc/bacula/update_postgresql_tables
+       echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
+       
+fi
+
+# create the daemon group
+HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null`
+if [ -z $HAVE_BACULA ]; then
+       %{groupadd} -r %{daemon_group} > /dev/null 2>&1
+       echo "The group %{daemon_group} has been added to %{groupfile}."
+       echo "See the manual chapter Running Bacula for details."
+fi
+       
+
 %preun postgresql
 # delete our links
 if [ $1 = 0 ]; then
@@ -801,11 +1011,10 @@ fi
 %files client
 %defattr(-,root,root)
 
-/etc/bacula/fd
 /etc/bacula/bconsole
 /etc/init.d/bacula-fd
 
-%doc COPYING ChangeLog INSTALL README ReleaseNotes doc/*
+%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
 /etc/logrotate.d/bacula
 
 %config(noreplace) /etc/bacula/bacula-fd.conf
@@ -815,6 +1024,7 @@ fi
 /usr/sbin/bacula-fd
 /usr/sbin/btraceback
 /etc/bacula/btraceback.gdb
+/etc/bacula/btraceback.dbx
 /usr/sbin/bsmtp
 /usr/sbin/bconsole
 
@@ -825,6 +1035,14 @@ if [ "$1" -ge 1 ] ; then
 /sbin/chkconfig --add bacula-fd
 fi
 
+# create the daemon group
+HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null`
+if [ -z $HAVE_BACULA ]; then
+       %{groupadd} -r %{daemon_group} > /dev/null 2>&1
+       echo "The group %{daemon_group} has been added to %{groupfile}."
+       echo "See the manual chapter Running Bacula for details."
+fi
+
 %preun client
 # delete our link
 if [ $1 = 0 ]; then
@@ -877,16 +1095,78 @@ echo "The database update scripts were installed to /etc/bacula/updatedb"
 /etc/bacula/gconsole
 %config(noreplace) /etc/bacula/gnome-console.conf
 /usr/share/pixmaps/bacula.png
+
+%if %{rh7}
 /usr/share/gnome/apps/System/bacula.desktop
+%else
 /usr/share/applications/bacula.desktop
+%endif
+
+%if ! %{rh7} && ! %{rh8}
+/usr/sbin/bacula-tray-monitor
+/etc/bacula/tray-monitor.conf
+/usr/share/pixmaps/bacula-tray-monitor.xpm
+/usr/share/applications/bacula-tray-monitor.desktop
+%endif
 
-%post gconsole
+%if ! %{su9} 
+# add the console helper files
+%config(noreplace,missingok) /etc/pam.d/gnome-console
+%config(noreplace,missingok) /etc/security/console.apps/gnome-console
+/usr/bin/gnome-console
+%endif
 
 
 %changelog
+* Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- misc fixes from 1.36.0 suse feedback
+- fix situation where sqlite database exists but sqlite has been removed.
+* Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- remove tray-monitor from RH8 build
+- fix permissions on tray-monitor files
+* Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
+- change database update to 7 to 8 upgrade,
+- revert depkgs to 08Mar04 as there seems to be a bug in the sqlite
+- build in 30Jul04, add freetype dependancy to gnome package.
+* Sun Sep 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add documentation to console for groupadd
+* Sat Sep 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add support for running daemons as root.bacula
+- correct for change in location of floppy rescue files in 1.35.2
+- removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2
+- updated depgkgs to 30Jul04
+* Thu Jun 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- really, really fix symlink creation for gconsole
+* Thu Jun 17 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- fix symlink creation in gconsole post install
+* Sat Jun 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- fixed error in gconsole post script
+* Fri Apr 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add check for gconsole symlink before trying to create it
+* Sun Apr 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- fix some minor permissions issues on doc files that CVS won't let us fix
+* Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- add pkgconfig to BuildRequires
+- clean up gnome1/2 menu entries for appropriate packages
+* Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- tightened up doc distribution
+* Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- added usermode (Redhat) and xsu (SuSE) support for gnome-console;
+- rpm's horrible bug that prevents nested conditional macros prevents me
+- from implementing these 2 separate approaches within the conditionals which
+- create the separate server packages.
+- the solution adopted is to remove the gnome-console files from the server packages
+- so bacula-gconsole is now an add on for both client and server packages.
+- this also now allows the server packages to be install on machines without
+- an X-server and we can still maintain a single spec file.
+- added tests to make sure we have defined platform and database macros.
+* Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
+- corrected mysql prerequisites for suse
 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
 - replaced all cp commands with cp -p
 - removed addition of a+x permissions on gnome-console
+- corrected permissions on init scripts
 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
 - corrected creation of sqlite_bindir in install from !mysql to sqlite
 -