# basic defines for every build
%define depkgs ../depkgs
-%define depkgs_version 30Jul04
+%define depkgs_version 08Mar04
%define tomsrtbt tomsrtbt-2.0.103
%define sqlite_bindir /usr/lib/sqlite
%define working_dir /var/bacula
# 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}
+%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9} && ! %{mdk}
%{error: You must specify a platform. Please examine the spec file.}
exit 1
%endif
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
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
BuildRequires: bonobo-activation-devel
BuildRequires: GConf2-devel
BuildRequires: linc-devel
+BuildRequires: freetype-devel
%endif
%if %{mysql}
Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
Conflicts: bacula-client
Requires: readline, ncurses, libstdc++, zlib
+%if %{sqlite}
+Conflicts: sqlite, sqlite-tools
+%endif
%if %{rh7}
Requires: glibc >= 2.2
Requires: libtermcap
Requires: glibc >= 2.3
Requires: libtermcap
%endif
-%if %{mysql} && ! %{su9}
+%if %{mysql} && ! %{su9} && ! %{mdk}
Requires: mysql >= 3.23
Requires: mysql-server >= 3.23
%endif
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
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
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
Requires: bonobo-activation
Requires: GConf2
Requires: linc
+Requires: freetype
%endif
%if %{su9}
Requires: xsu
%prep
-%setup -b 1
-%setup -b 2
-%setup -b 3
+%setup
+%setup -T -D -b 1
+%setup -T -D -b 2
+%setup -T -D -b 3
%build
# 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 \
--enable-smartalloc \
--enable-gnome \
--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 \
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
%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/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}
+%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{mdk}
cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
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
# 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"
/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
/usr/sbin/bsmtp
/usr/sbin/tapeinfo
/usr/sbin/static-bacula-fd
-/etc/bacula/btraceback.gdb
%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
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
/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
/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
# 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
/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
/usr/sbin/bsmtp
/usr/sbin/tapeinfo
/usr/sbin/static-bacula-fd
-/etc/bacula/btraceback.gdb
+
+%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
/etc/bacula/create_postgresql_database
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
/usr/sbin/bacula-fd
/usr/sbin/btraceback
/etc/bacula/btraceback.gdb
+/etc/bacula/btraceback.dbx
/usr/sbin/bsmtp
/usr/sbin/bconsole
/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
+
%if ! %{su9}
# add the console helper files
%config(noreplace,missingok) /etc/pam.d/gnome-console
%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>