From d1ce6d0b105e26f732a9ff37c288c87fbd4d147d Mon Sep 17 00:00:00 2001 From: Scott Barninger Date: Wed, 13 Oct 2004 21:32:16 +0000 Subject: [PATCH] RPM changes for 1.35.8/1.36.0 git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1647 91ce42f0-d328-0410-95d8-f526ca767f89 --- .../platforms/mandrake/bacula.spec.bluca.in | 501 ++++++ bacula/platforms/mandrake/bacula.spec.in | 1576 ++++++++++++----- bacula/platforms/redhat/bacula.spec.in | 142 +- bacula/platforms/suse/bacula.spec.in | 142 +- bacula/scripts/bacula-tray-monitor.desktop.in | 10 + bacula/src/cats/make_catalog_backup.in.patch | 20 +- 6 files changed, 1897 insertions(+), 494 deletions(-) create mode 100644 bacula/platforms/mandrake/bacula.spec.bluca.in create mode 100644 bacula/scripts/bacula-tray-monitor.desktop.in diff --git a/bacula/platforms/mandrake/bacula.spec.bluca.in b/bacula/platforms/mandrake/bacula.spec.bluca.in new file mode 100644 index 0000000000..7f645fa8c7 --- /dev/null +++ b/bacula/platforms/mandrake/bacula.spec.bluca.in @@ -0,0 +1,501 @@ +%define name bacula +%define version 1.32d +%define release 1mdk + +%define MYSQL 0 +%define GNOME 0 +%define TCPW 1 + +%{?_with_mysql: %{expand: %%global MYSQL 1}} +%{?_without_mysql: %{expand: %%global MYSQL 0}} +%{?_with_gnome: %{expand: %%global GNOME 1}} +%{?_without_gnome: %{expand: %%global GNOME 0}} +%{?_with_wrap: %{expand: %%global TCPW 1}} +%{?_without_wrap: %{expand: %%global TCPW 0}} + +%define blurb Bacula - It comes by night and sucks the vital essence from your computers. + +Summary: Bacula - The Network Backup Solution +Name: %{name} +Version: %{version} +Release: %{release} +Group: Archiving/Backup +License: GPL +Source: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.bz2 +Source1: %{name}-icons.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.bacula.org/ +BuildRequires: readline-devel, perl-base, zlib-devel +%if %{TCPW} +BuildRequires: tcp_wrappers-devel +%endif +Patch0: bacula-1.32d-config.diff.bz2 +Patch1: bacula-1.30a-prompt.diff.bz2 + +%description +%{blurb} +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +easy to use and efficient, while offering many advanced storage management +features that make it easy to find and recover lost or damaged files. + +%package dir +Summary: Bacula Director and Catalog services +Group: Archiving/Backup +Prereq: rpm-helper, perl-base +%if %{MYSQL} +Requires: MySQL >= 3.23 +BuildRequires: MySQL-devel >= 3.23 +%else +Requires: sqlite-tools +BuildRequires: sqlite-devel +%endif +Conflicts: bacula-fd < %{version} +Conflicts: bacula-sd < %{version} + +%description dir +%{blurb} +Bacula Director is the program that supervises all the backup, restore, verify +and archive operations. The system administrator uses the Bacula Director to +schedule backups and to recover files. +Catalog services are comprised of the software programs responsible for +maintaining the file indexes and volume databases for all files backed up. +The Catalog services permit the System Administrator or user to quickly locate +and restore any desired file, since it maintains a record of all Volumes used, +all Jobs run, and all Files saved. +%if %{MYSQL} +This build requires MySQL to be installed separately as the catalog database. +%else +This build requires sqlite to be installed separately as the catalog database. +%endif + +%package console +Summary: Bacula Console +Group: Archiving/Backup +Prereq: sed + +%description console +%{blurb} +Bacula Console is the program that allows the administrator or user to +communicate with the Bacula Director. +This is the text only console interface. + +%if %{GNOME} +%package console-gnome +Summary: Bacula Gnome Console +Group: Archiving/Backup +#BuildRequires: libgnome32-devel +BuildRequires: libgnomeui2-devel +Prereq: sed + +%description console-gnome +%{blurb} +Bacula Console is the program that allows the administrator or user to +communicate with the Bacula Director. +This is the GNOME GUI interface. +%endif + +%package fd +Summary: Bacula File services (Client) +Group: Archiving/Backup +Prereq: rpm-helper +Prereq: sed +Conflicts: bacula-dir < %{version} + +%description fd +%{blurb} +Bacula File services (or Client program) is the software program that is +installed on the machine to be backed up. It is specific to the operating +system on which it runs and is responsible for providing the file attributes +and data when requested by the Director. The File services are also responsible +for the file system dependent part of restoring the file attributes and data +during a recovery operation. +This program runs as a daemon on the machine to be backed up, and in some of +the documentation, the File daemon is referred to as the Client (for example in +Bacula configuration file). + +%package sd +Summary: Bacula Storage services +Group: Archiving/Backup +Prereq: rpm-helper +Prereq: sed +Conflicts: bacula-dir < %{version} + +%description sd +%{blurb} +Bacula Storage services consist of the software programs that perform the +storage and recovery of the file attributes and data to the physical backup +media or volumes. In other words, the Storage daemon is responsible for reading +and writing your tapes (or other storage media, e.g. files). +The Storage services runs as a daemon on the machine that has the backup +device (usually a tape drive). + +%prep +%setup -q -c +cd %{name}-%{version} +%patch0 -p1 -b .config +%patch1 -p1 -b .prompt +mkdir doc/manual +mv doc/html-manual/*.html doc/manual +mv doc/html-manual/*.css doc/manual +mv doc/html-manual/*.gif doc/manual + +%build +cd %{name}-%{version} +%serverbuild +%configure \ + --enable-smartalloc \ +%if %{MYSQL} + --with-mysql \ +%else + --with-sqlite \ +%endif +%if %{GNOME} + --enable-gnome \ +%endif +%if %{TCPW} + --with-tcp-wrappers \ +%endif + --sysconfdir=%{_sysconfdir}/%{name} \ + --with-scriptdir=%{_libexecdir}/%{name} \ + --with-working-dir=%{_localstatedir}/%{name} \ + --with-subsys-dir=/var/lock/subsys \ + --with-dir-password="#FAKE#DIR#PASSWORD#" \ + --with-fd-password="#FAKE#FD#PASSWORD#" \ + --with-sd-password="#FAKE#SD#PASSWORD#" + +%make + +%install +cd %{name}-%{version} +rm -rf %{buildroot} +%makeinstall sysconfdir=%{buildroot}%{_sysconfdir}/%{name} scriptdir=%{buildroot}%{_libexecdir}/%{name} working_dir=%{buildroot}%{_localstatedir}/%{name} + +# install the upgrade scripts +%if %{MYSQL} +install -m 755 src/cats/alter_mysql_tables %{buildroot}%{_libexecdir}/%{name} +%else +install -m 755 src/cats/alter_sqlite_tables %{buildroot}%{_libexecdir}/%{name} +%endif + +# install the init scripts +mkdir -p %{buildroot}%{_initrddir} +install -m 755 platforms/mandrake/bacula-dir %{buildroot}%{_initrddir}/bacula-dir +install -m 755 platforms/mandrake/bacula-fd %{buildroot}%{_initrddir}/bacula-fd +install -m 755 platforms/mandrake/bacula-sd %{buildroot}%{_initrddir}/bacula-sd + +# install the logrotate file +mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d +cp scripts/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/bacula-dir + +mkdir -p %{buildroot}%{_localstatedir}/%{name} + +%if %{GNOME} +# install the menu stuff +mkdir -p $RPM_BUILD_ROOT%{_menudir} +cat << EOF > $RPM_BUILD_ROOT%{_menudir}/%{name}-console-gnome +?package(%{name}-console-gnome): command="%{_sbindir}/gnome-console" icon="%{name}.png" needs="x11" title="Bacula Console" longtitle="Bacula Director Console" section="Applications/Archiving/Backup" +EOF +mkdir -p %{buildroot}%{_iconsdir} +tar jxvf %{SOURCE1} -C %{buildroot}%{_iconsdir} +%endif + +perl -spi -e 's/"#FAKE#(\w+)#PASSWORD#"/#YOU MUST SET THE $1 PASSWORD#/' %{buildroot}%{_sysconfdir}/%{name}/*.conf +touch %{buildroot}%{_sysconfdir}/%{name}/.pw.sed + +%clean +rm -rf %{buildroot} + +%files dir +%defattr(644, root, root, 755) +%doc %{name}-%{version}/ChangeLog %{name}-%{version}/CheckList %{name}-%{version}/ReleaseNotes %{name}-%{version}/kernstodo +%doc %{name}-%{version}/doc/*.pdf %{name}-%{version}/doc/manual %{name}-%{version}/examples +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-dir.conf +%ghost %{_sysconfdir}/%{name}/.pw.sed +%config(noreplace) %{_sysconfdir}/logrotate.d/bacula-dir +%defattr (755, root, root) +%config(noreplace) %{_initrddir}/bacula-dir +%{_sbindir}/bacula-dir +%{_sbindir}/btraceback +%{_sbindir}/dbcheck +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%if %{MYSQL} +%{_libexecdir}/%{name}/create_mysql_database +%{_libexecdir}/%{name}/drop_mysql_tables +%{_libexecdir}/%{name}/grant_mysql_privileges +%{_libexecdir}/%{name}/make_mysql_tables +%{_libexecdir}/%{name}/alter_mysql_tables +%else +%{_libexecdir}/%{name}/create_sqlite_database +%{_libexecdir}/%{name}/drop_sqlite_tables +%exclude %{_libexecdir}/%{name}/grant_mysql_privileges +%{_libexecdir}/%{name}/make_sqlite_tables +%{_libexecdir}/%{name}/alter_sqlite_tables +%endif +%{_libexecdir}/%{name}/delete_catalog_backup +%{_libexecdir}/%{name}/drop_bacula_tables +%{_libexecdir}/%{name}/make_bacula_tables +%{_libexecdir}/%{name}/make_catalog_backup +%attr(644, root, root) %{_libexecdir}/%{name}/query.sql +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre dir -p /usr/bin/perl +umask(0077); +if ( -f "%{_sysconfdir}/%{name}/.pw.sed") { + if ( -f "%{_sysconfdir}/%{name}/bacula-dir.conf") { + system "sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed"; + system "sed -f %{_sysconfdir}/%{name}/.upw.sed %{_sysconfdir}/%{name}/bacula-dir.conf > %{_sysconfdir}/%{name}/bacula-dir.conf.tmp"; + unlink "%{_sysconfdir}/%{name}/bacula-dir.conf"; + rename "%{_sysconfdir}/%{name}/bacula-dir.conf.tmp", "%{_sysconfdir}/%{name}/bacula-dir.conf"; + unlink "%{_sysconfdir}/%{name}/.upw.sed"; + } +} else { + mkdir("%{_sysconfdir}/%{name}"); + open(IN, "/dev/random") or die "$!"; + open(OUT, ">%{_sysconfdir}/%{name}/.pw.sed") or die "$!"; + foreach $c ("DIR","SD","FD") { + read(IN, $buf, 32); + my $res = pack("u", $buf); + $res =~ s/^.//mg; + $res =~ s/\n//g; + $res =~ tr|` -_|AA-Za-z0-9+/|; + print OUT "s!#YOU MUST SET THE $c PASSWORD#!\"$res\"!\n"; + } + close (IN); + close (OUT); +} + +%post dir +%if %{MYSQL} +# NOTE: IF THIS FAILS DUE TO MYSQL NEEDING A PASSWORD YOU ARE ON YOUR OWN +DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +if [ -z "$DB_VER" ]; then +# grant privileges and create tables + echo "Granting privileges for MySQL user bacula..." + %{_libexecdir}/%{name}/grant_mysql_privileges > dev/null + echo "Creating MySQL bacula database..." + %{_libexecdir}/%{name}/create_mysql_database > dev/null + echo "Creating bacula tables..." + %{_libexecdir}/%{name}/make_mysql_tables > dev/null +elif [ "$DB_VER" -lt "6" ]; then + echo "Backing up bacula tables" + mysqldump -f --opt bacula | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 + echo "Upgrading bacula tables" + %{_libexecdir}/%{name}/alter_mysql_tables + echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" +fi +%else +if [ -s %{_localstatedir}/%{name}/bacula.db ]; then +DB_VER=`echo "select * from Version;" | sqlite %{_localstatedir}/%{name}/bacula.db|tail -n 1 2>/dev/null` + if [ "$DB_VER" -lt "6" ]; then + echo "Backing up bacula tables" + echo ".dump" | sqlite %{_localstatedir}/%{name}/bacula.db | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 + echo "Upgrading bacula tables" + %{_libexecdir}/%{name}/alter_sqlite_tables + echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" + fi +else +# create the tables + echo "Creating bacula tables..." + %{_libexecdir}/%{name}/make_sqlite_tables > dev/null +fi +%endif +chmod -R 600 %{_localstatedir}/%{name}/* +for i in %{_sysconfdir}/%{name}/*.conf %{_sysconfdir}/%{name}/*.conf.rpmnew %{_sysconfdir}/%{name}/*.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi +done +%_post_service bacula-dir + +%preun dir +%_preun_service bacula-dir + +%files fd +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-fd.conf +%config(noreplace) %{_initrddir}/bacula-fd +%{_sbindir}/bacula-fd +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre fd +umask 077 +i=%{_sysconfdir}/%{name}/bacula-fd.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post fd +%_post_service bacula-fd +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/bacula-fd.conf %{_sysconfdir}/%{name}/bacula-fd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-fd.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%preun fd +%_preun_service bacula-fd + +%files sd +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-sd.conf +%config(noreplace) %{_initrddir}/bacula-sd +%{_sbindir}/bacula-sd +%{_sbindir}/bcopy +%{_sbindir}/bextract +%{_sbindir}/bls +%{_sbindir}/bscan +%{_sbindir}/btape +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%{_libexecdir}/%{name}/mtx-changer +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre sd +umask 077 +i=%{_sysconfdir}/%{name}/bacula-sd.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post sd +%_post_service bacula-sd +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/bacula-sd.conf %{_sysconfdir}/%{name}/bacula-sd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-sd.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%preun sd +%_preun_service bacula-sd + +%files console +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/console.conf +%{_sbindir}/console +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb + +%pre console +umask 077 +i=%{_sysconfdir}/%{name}/console.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post console +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/console.conf %{_sysconfdir}/%{name}/console.conf.rpmnew %{_sysconfdir}/%{name}/console.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%if %{GNOME} +%files console-gnome +%defattr(644, root, root, 755) +%{_iconsdir}/bacula.png +%{_iconsdir}/mini/bacula.png +%{_iconsdir}/large/bacula.png +%{_menudir}/bacula-console-gnome +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/gnome-console.conf +%attr(755, root, root) %{_sbindir}/gnome-console +%attr(755, root, root) %{_sbindir}/btraceback +%attr(755, root, root) %{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/btraceback.gdb + +%pre console-gnome +umask 077 +i=%{_sysconfdir}/%{name}/gnome-console.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post console-gnome +%update_menus +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/gnome-console.conf %{_sysconfdir}/%{name}/gnome-console.conf.rpmnew %{_sysconfdir}/%{name}/gnome-console.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%postun console-gnome +%clean_menus + +%endif + +%changelog +* Tue Nov 04 2003 Luca Berra 1.32d-1mdk +- 1.32d +- use gnome2 for console +- use tcp_wrappers +- try not to create unneeded .rpmnew in configuration + +* Fri Aug 12 2003 Luca Berra 1.31a-1mdk +- 1.31a +- modified %%post script to upgrade database if needed and do not try to create if it already exists. +- %%post_service should be last in %%post script +- changed sql upgrade script to remove multiple Version rows introduced by %%post +- trying to create the tables multiple times in previous releases. +- smtp is required by btraceback which is required by every daemon. +- added conflicts for lower version + +* Wed Aug 6 2003 Luca Berra 1.30a-3mdk +- changed sqlite requires to match package in contrib +- set passwords for single components to produce an error until user changes them +- try to change passwords automatically if dir package is installed + +* Sun Aug 3 2003 Luca Berra 1.30a-2mdk +- many spec changes +- almost please rpmlint +- fixed readline eats last message bug in console + +* Fri Aug 1 2003 Luca Berra 1.30a-1mdk +- Initial spec file from spec by D. Scott Barninger diff --git a/bacula/platforms/mandrake/bacula.spec.in b/bacula/platforms/mandrake/bacula.spec.in index 7f645fa8c7..7f72ccae46 100644 --- a/bacula/platforms/mandrake/bacula.spec.in +++ b/bacula/platforms/mandrake/bacula.spec.in @@ -1,501 +1,1205 @@ -%define name bacula -%define version 1.32d -%define release 1mdk +# Platform Build Configuration -%define MYSQL 0 -%define GNOME 0 -%define TCPW 1 +# basic defines for every build +%define depkgs ../depkgs +%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 -%{?_with_mysql: %{expand: %%global MYSQL 1}} -%{?_without_mysql: %{expand: %%global MYSQL 0}} -%{?_with_gnome: %{expand: %%global GNOME 1}} -%{?_without_gnome: %{expand: %%global GNOME 0}} -%{?_with_wrap: %{expand: %%global TCPW 1}} -%{?_without_wrap: %{expand: %%global TCPW 0}} +# platform defines - set one below or define the build_xxx on the command line +# RedHat builds +%define rh7 0 +%{?build_rh7:%define rh7 1} +%define rh8 0 +%{?build_rh8:%define rh8 1} +%define rh9 0 +%{?build_rh9:%define rh9 1} +# Fedora Core 1 build +%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 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} -%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +# 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 or define the build_xxx on the command line +%define mysql 0 +%{?build_mysql:%define mysql 1} +%define sqlite 0 +%{?build_sqlite:%define sqlite 1} +%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: %{name} -Version: %{version} -Release: %{release} -Group: Archiving/Backup -License: GPL -Source: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.bz2 -Source1: %{name}-icons.tar.bz2 +Name: bacula +Version: @VERSION@ +Release: 1 +Group: System Environment/Daemons +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/ -BuildRequires: readline-devel, perl-base, zlib-devel -%if %{TCPW} -BuildRequires: tcp_wrappers-devel +Vendor: The Bacula Team +Distribution: The Bacula Team +Packager: D. Scott Barninger +BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel +BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig +%if %{rh7} +BuildRequires: libtermcap-devel +BuildRequires: gtk+-devel >= 1.2 +BuildRequires: gnome-libs-devel >= 1.4 +BuildRequires: glibc-devel >= 2.2 +BuildRequires: ORBit-devel +BuildRequires: bonobo-devel +BuildRequires: GConf-devel +BuildRequires: freetype-devel +%endif +%if %{su9} +BuildRequires: termcap +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: glibc-devel >= 2.3 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: linc-devel +BuildRequires: freetype2-devel +%endif +%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: glibc-devel >= 2.3 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: linc-devel +BuildRequires: freetype-devel +%endif + +%if %{mysql} +BuildRequires: mysql-devel >= 3.23 +%endif + +%if %{postgresql} && %{wb3} +BuildRequires: rh-postgresql-devel >= 7 +%endif + +%if %{postgresql} && ! %{wb3} +BuildRequires: postgresql-devel >= 7 %endif -Patch0: bacula-1.32d-config.diff.bz2 -Patch1: bacula-1.30a-prompt.diff.bz2 %description -%{blurb} -Bacula is a set of computer programs that permit you (or the system -administrator) to manage backup, recovery, and verification of computer -data across a network of computers of different kinds. In technical terms, -it is a network client/server based backup program. Bacula is relatively -easy to use and efficient, while offering many advanced storage management -features that make it easy to find and recover lost or damaged files. - -%package dir -Summary: Bacula Director and Catalog services -Group: Archiving/Backup -Prereq: rpm-helper, perl-base -%if %{MYSQL} -Requires: MySQL >= 3.23 -BuildRequires: MySQL-devel >= 3.23 -%else -Requires: sqlite-tools -BuildRequires: sqlite-devel -%endif -Conflicts: bacula-fd < %{version} -Conflicts: bacula-sd < %{version} - -%description dir -%{blurb} -Bacula Director is the program that supervises all the backup, restore, verify -and archive operations. The system administrator uses the Bacula Director to -schedule backups and to recover files. -Catalog services are comprised of the software programs responsible for -maintaining the file indexes and volume databases for all files backed up. -The Catalog services permit the System Administrator or user to quickly locate -and restore any desired file, since it maintains a record of all Volumes used, -all Jobs run, and all Files saved. -%if %{MYSQL} +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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. + +%if %{mysql} +%package mysql +%endif +%if %{sqlite} +%package sqlite +%endif +%if %{postgresql} +%package postgresql +%endif + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +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 +%endif +%if %{su9} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%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 +%endif +%if %{postgresql} && ! %{wb3} +Requires: postgresql >= 7 +Requires: postgresql-server >= 7 +%endif + +%if %{mysql} +%description mysql +%endif +%if %{sqlite} +%description sqlite +%endif +%if %{postgresql} +%description postgresql +%endif + +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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. + +%if %{mysql} This build requires MySQL to be installed separately as the catalog database. +%endif +%if %{postgresql} +This build requires PostgreSQL to be installed separately as the catalog database. +%endif +%if %{sqlite} +This build incorporates sqlite as the catalog database, statically compiled. +%endif + +%package client +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-fd +Requires: readline, libstdc++, zlib + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif + +%description client +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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 File daemon (Client) only package. It includes the command line +console program. + +%package rescue + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: coreutils, util-linux, libc5, bacula-fd + +%description rescue +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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 package installs scripts for disaster recovery and builds rescue +floppy disks for bare metal recovery. This package includes tomsrtbt +(http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool +to build a boot floppy disk. + +You need to have the bacula-sqlite, bacula-mysql, bacula-postgresql or +bacula-client package for your platform installed and configured before +installing this package. + +To create a boot disk run "./getdiskinfo" from the /etc/bacula/rescue +directory (this is done when the package is first installed), +then run "./install.s" from the /etc/bacula/rescue/tomsrtbt/ +directory. To make the bacula rescue disk run +"./make_rescue_disk --copy-static-bacula --copy-etc-files" +from the /etc/bacula/rescue directory. To recreate the rescue +information for this system run ./getdiskinfo again. + +%package updatedb + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons + +%description updatedb +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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 package installs scripts for updating older versions of the bacula +database. + +%package gconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: readline, atk, libstdc++, zlib, pango, libxml2, bacula-fd + +%if %{rh7} +Requires: gtk+ >= 1.2 +Requires: gnome-libs >= 1.4 +Requires: glibc >= 2.2 +Requires: ORBit +Requires: bonobo +Requires: GConf +Requires: freetype +%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: freetype2 +%endif +%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: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: GConf2 +Requires: linc +Requires: freetype +%endif +%if %{su9} +Requires: xsu %else -This build requires sqlite to be installed separately as the catalog database. -%endif - -%package console -Summary: Bacula Console -Group: Archiving/Backup -Prereq: sed - -%description console -%{blurb} -Bacula Console is the program that allows the administrator or user to -communicate with the Bacula Director. -This is the text only console interface. - -%if %{GNOME} -%package console-gnome -Summary: Bacula Gnome Console -Group: Archiving/Backup -#BuildRequires: libgnome32-devel -BuildRequires: libgnomeui2-devel -Prereq: sed - -%description console-gnome -%{blurb} -Bacula Console is the program that allows the administrator or user to -communicate with the Bacula Director. -This is the GNOME GUI interface. -%endif - -%package fd -Summary: Bacula File services (Client) -Group: Archiving/Backup -Prereq: rpm-helper -Prereq: sed -Conflicts: bacula-dir < %{version} - -%description fd -%{blurb} -Bacula File services (or Client program) is the software program that is -installed on the machine to be backed up. It is specific to the operating -system on which it runs and is responsible for providing the file attributes -and data when requested by the Director. The File services are also responsible -for the file system dependent part of restoring the file attributes and data -during a recovery operation. -This program runs as a daemon on the machine to be backed up, and in some of -the documentation, the File daemon is referred to as the Client (for example in -Bacula configuration file). - -%package sd -Summary: Bacula Storage services -Group: Archiving/Backup -Prereq: rpm-helper -Prereq: sed -Conflicts: bacula-dir < %{version} - -%description sd -%{blurb} -Bacula Storage services consist of the software programs that perform the -storage and recovery of the file attributes and data to the physical backup -media or volumes. In other words, the Storage daemon is responsible for reading -and writing your tapes (or other storage media, e.g. files). -The Storage services runs as a daemon on the machine that has the backup -device (usually a tape drive). +Requires: usermode +%endif + +%description gconsole +Bacula - It comes by night and sucks the vital essence from your computers. + +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +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 or +server packages. %prep -%setup -q -c -cd %{name}-%{version} -%patch0 -p1 -b .config -%patch1 -p1 -b .prompt -mkdir doc/manual -mv doc/html-manual/*.html doc/manual -mv doc/html-manual/*.css doc/manual -mv doc/html-manual/*.gif doc/manual + +%setup -b 1 +%setup -b 2 +%setup -b 3 %build -cd %{name}-%{version} -%serverbuild + +%if %{su9} +export LDFLAGS="-L/usr/lib/termcap" +%endif + +cwd=${PWD} +cd %{depkgs} +%if %{sqlite} +make sqlite +%endif +make mtx +cd ${cwd} + +# patches for the bundled sqlite scripts + +# patch the make_sqlite_tables script for installation bindir +patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch + +# patch the create_sqlite_database script for installation bindir +patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch + +# patch the make_catalog_backup script for installation bindir +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 + %configure \ - --enable-smartalloc \ -%if %{MYSQL} + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc/bacula \ + --with-scriptdir=/etc/bacula \ + --enable-smartalloc \ + --enable-gnome \ + --enable-static-fd \ +%if ! %{rh7} + --enable-tray-monitor \ +%endif +%if %{mysql} --with-mysql \ -%else - --with-sqlite \ %endif -%if %{GNOME} - --enable-gnome \ +%if %{sqlite} + --with-sqlite=${cwd}/../depkgs/sqlite \ %endif -%if %{TCPW} - --with-tcp-wrappers \ +%if %{postgresql} + --with-postgresql \ %endif - --sysconfdir=%{_sysconfdir}/%{name} \ - --with-scriptdir=%{_libexecdir}/%{name} \ - --with-working-dir=%{_localstatedir}/%{name} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=/var/run \ --with-subsys-dir=/var/lock/subsys \ - --with-dir-password="#FAKE#DIR#PASSWORD#" \ - --with-fd-password="#FAKE#FD#PASSWORD#" \ - --with-sd-password="#FAKE#SD#PASSWORD#" + --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 -%make +cd src/filed +strip static-bacula-fd +cd ../../ %install -cd %{name}-%{version} -rm -rf %{buildroot} -%makeinstall sysconfdir=%{buildroot}%{_sysconfdir}/%{name} scriptdir=%{buildroot}%{_libexecdir}/%{name} working_dir=%{buildroot}%{_localstatedir}/%{name} - -# install the upgrade scripts -%if %{MYSQL} -install -m 755 src/cats/alter_mysql_tables %{buildroot}%{_libexecdir}/%{name} + +cwd=${PWD} +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +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 -install -m 755 src/cats/alter_sqlite_tables %{buildroot}%{_libexecdir}/%{name} +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 -# install the init scripts -mkdir -p %{buildroot}%{_initrddir} -install -m 755 platforms/mandrake/bacula-dir %{buildroot}%{_initrddir}/bacula-dir -install -m 755 platforms/mandrake/bacula-fd %{buildroot}%{_initrddir}/bacula-fd -install -m 755 platforms/mandrake/bacula-sd %{buildroot}%{_initrddir}/bacula-sd +%if %{sqlite} +mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir} +%endif -# install the logrotate file -mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d -cp scripts/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/bacula-dir +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT/etc/bacula \ + scriptdir=$RPM_BUILD_ROOT/etc/bacula \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + install + +cd %{depkgs} +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT/etc/bacula \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + mandir=$RPM_BUILD_ROOT/usr/man \ + 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 +rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql +rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges +%endif + +# fixme - make installs the mysql scripts for postgresql build +%if %{postgresql} +rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql +rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql +%endif -mkdir -p %{buildroot}%{_localstatedir}/%{name} +# install the init scripts +%if %{su9} +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 +%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/* -%if %{GNOME} # install the menu stuff -mkdir -p $RPM_BUILD_ROOT%{_menudir} -cat << EOF > $RPM_BUILD_ROOT%{_menudir}/%{name}-console-gnome -?package(%{name}-console-gnome): command="%{_sbindir}/gnome-console" icon="%{name}.png" needs="x11" title="Bacula Console" longtitle="Bacula Director Console" section="Applications/Archiving/Backup" -EOF -mkdir -p %{buildroot}%{_iconsdir} -tar jxvf %{SOURCE1} -C %{buildroot}%{_iconsdir} +%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.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 +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 +%endif + +# install the logrotate file +cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula + +# install the rescue stuff +# these are the rescue scripts +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 + +# this is the tom's root boot disk +cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/ -perl -spi -e 's/"#FAKE#(\w+)#PASSWORD#"/#YOU MUST SET THE $1 PASSWORD#/' %{buildroot}%{_sysconfdir}/%{name}/*.conf -touch %{buildroot}%{_sysconfdir}/%{name}/.pw.sed +# install the updatedb scripts +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 %clean -rm -rf %{buildroot} - -%files dir -%defattr(644, root, root, 755) -%doc %{name}-%{version}/ChangeLog %{name}-%{version}/CheckList %{name}-%{version}/ReleaseNotes %{name}-%{version}/kernstodo -%doc %{name}-%{version}/doc/*.pdf %{name}-%{version}/doc/manual %{name}-%{version}/examples -%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-dir.conf -%ghost %{_sysconfdir}/%{name}/.pw.sed -%config(noreplace) %{_sysconfdir}/logrotate.d/bacula-dir -%defattr (755, root, root) -%config(noreplace) %{_initrddir}/bacula-dir -%{_sbindir}/bacula-dir -%{_sbindir}/btraceback -%{_sbindir}/dbcheck -%{_sbindir}/smtp -%dir %{_libexecdir}/%{name} -%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb -%if %{MYSQL} -%{_libexecdir}/%{name}/create_mysql_database -%{_libexecdir}/%{name}/drop_mysql_tables -%{_libexecdir}/%{name}/grant_mysql_privileges -%{_libexecdir}/%{name}/make_mysql_tables -%{_libexecdir}/%{name}/alter_mysql_tables -%else -%{_libexecdir}/%{name}/create_sqlite_database -%{_libexecdir}/%{name}/drop_sqlite_tables -%exclude %{_libexecdir}/%{name}/grant_mysql_privileges -%{_libexecdir}/%{name}/make_sqlite_tables -%{_libexecdir}/%{name}/alter_sqlite_tables -%endif -%{_libexecdir}/%{name}/delete_catalog_backup -%{_libexecdir}/%{name}/drop_bacula_tables -%{_libexecdir}/%{name}/make_bacula_tables -%{_libexecdir}/%{name}/make_catalog_backup -%attr(644, root, root) %{_libexecdir}/%{name}/query.sql -%attr(700, root, root) %dir %{_localstatedir}/%{name} - -%pre dir -p /usr/bin/perl -umask(0077); -if ( -f "%{_sysconfdir}/%{name}/.pw.sed") { - if ( -f "%{_sysconfdir}/%{name}/bacula-dir.conf") { - system "sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed"; - system "sed -f %{_sysconfdir}/%{name}/.upw.sed %{_sysconfdir}/%{name}/bacula-dir.conf > %{_sysconfdir}/%{name}/bacula-dir.conf.tmp"; - unlink "%{_sysconfdir}/%{name}/bacula-dir.conf"; - rename "%{_sysconfdir}/%{name}/bacula-dir.conf.tmp", "%{_sysconfdir}/%{name}/bacula-dir.conf"; - unlink "%{_sysconfdir}/%{name}/.upw.sed"; - } -} else { - mkdir("%{_sysconfdir}/%{name}"); - open(IN, "/dev/random") or die "$!"; - open(OUT, ">%{_sysconfdir}/%{name}/.pw.sed") or die "$!"; - foreach $c ("DIR","SD","FD") { - read(IN, $buf, 32); - my $res = pack("u", $buf); - $res =~ s/^.//mg; - $res =~ s/\n//g; - $res =~ tr|` -_|AA-Za-z0-9+/|; - print OUT "s!#YOU MUST SET THE $c PASSWORD#!\"$res\"!\n"; - } - close (IN); - close (OUT); -} - -%post dir -%if %{MYSQL} -# NOTE: IF THIS FAILS DUE TO MYSQL NEEDING A PASSWORD YOU ARE ON YOUR OWN +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" + +%if %{mysql} + +%files mysql +%defattr(-,root,root) + +/etc/bacula/bacula +/etc/bacula/bconsole +/etc/bacula/create_mysql_database +/etc/bacula/drop_mysql_database +/etc/bacula/make_mysql_tables +/etc/bacula/drop_mysql_tables +/etc/bacula/update_mysql_tables +/etc/bacula/grant_mysql_privileges +/etc/bacula/create_bacula_database +/etc/bacula/drop_bacula_database +/etc/bacula/grant_bacula_privileges +/etc/bacula/make_bacula_tables +/etc/bacula/drop_bacula_tables +/etc/bacula/update_bacula_tables +/etc/bacula/make_catalog_backup +/etc/bacula/delete_catalog_backup +/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 ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +/usr/man/man1/* + +/etc/logrotate.d/bacula + +%config(noreplace) /etc/bacula/bacula-dir.conf +%config(noreplace) /etc/bacula/bacula-fd.conf +%config(noreplace) /etc/bacula/bacula-sd.conf +%config(noreplace) /etc/bacula/bconsole.conf +/etc/bacula/query.sql +%dir %{working_dir} + +/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 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 "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_mysql_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 +# check for and copy /etc/bacula/console.conf to bconsole.conf +if [ -s /etc/bacula/console.conf ];then + cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf +fi + +%post mysql + +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +fi + +# test for an existing database +# 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` + +# grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then -# grant privileges and create tables + echo "Hmm, doesn't look like you have an existing database." echo "Granting privileges for MySQL user bacula..." - %{_libexecdir}/%{name}/grant_mysql_privileges > dev/null + /etc/bacula/grant_mysql_privileges echo "Creating MySQL bacula database..." - %{_libexecdir}/%{name}/create_mysql_database > dev/null + /etc/bacula/create_mysql_database echo "Creating bacula tables..." - %{_libexecdir}/%{name}/make_mysql_tables > dev/null -elif [ "$DB_VER" -lt "6" ]; then - echo "Backing up bacula tables" - mysqldump -f --opt bacula | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 - echo "Upgrading bacula tables" - %{_libexecdir}/%{name}/alter_mysql_tables - echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" + /etc/bacula/make_mysql_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..." + mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + /etc/bacula/update_mysql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + fi -%else -if [ -s %{_localstatedir}/%{name}/bacula.db ]; then -DB_VER=`echo "select * from Version;" | sqlite %{_localstatedir}/%{name}/bacula.db|tail -n 1 2>/dev/null` - if [ "$DB_VER" -lt "6" ]; then - echo "Backing up bacula tables" - echo ".dump" | sqlite %{_localstatedir}/%{name}/bacula.db | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 - echo "Upgrading bacula tables" - %{_libexecdir}/%{name}/alter_sqlite_tables - echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" - fi -else -# create the tables - echo "Creating bacula tables..." - %{_libexecdir}/%{name}/make_sqlite_tables > dev/null + +# 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 +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd fi + %endif -chmod -R 600 %{_localstatedir}/%{name}/* -for i in %{_sysconfdir}/%{name}/*.conf %{_sysconfdir}/%{name}/*.conf.rpmnew %{_sysconfdir}/%{name}/*.conf.rpmsave; do - if [ -s $i ]; then - sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp -# this is needed if upgrading from 1.30a or lower - sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i - rm -f $i.tmp + +%if %{sqlite} + +%files sqlite +%defattr(-,root,root) + +/etc/bacula/bacula +/etc/bacula/bconsole +/etc/bacula/create_bacula_database +/etc/bacula/drop_bacula_database +/etc/bacula/grant_bacula_privileges +/etc/bacula/make_bacula_tables +/etc/bacula/drop_bacula_tables +/etc/bacula/update_bacula_tables +/etc/bacula/create_sqlite_database +/etc/bacula/drop_sqlite_database +/etc/bacula/grant_sqlite_privileges +/etc/bacula/make_sqlite_tables +/etc/bacula/drop_sqlite_tables +/etc/bacula/update_sqlite_tables +/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 ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +/usr/man/man1/* + +/etc/logrotate.d/bacula + +%config(noreplace) /etc/bacula/bacula-dir.conf +%config(noreplace) /etc/bacula/bacula-fd.conf +%config(noreplace) /etc/bacula/bacula-sd.conf +%config(noreplace) /etc/bacula/bconsole.conf +/etc/bacula/query.sql +%{sqlite_bindir}/libsqlite.a +%{sqlite_bindir}/sqlite.h +%dir %{working_dir} + +/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 + + +%pre sqlite +# test for bacula database older than version 7 +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` + 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_sqlite_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 -done -%_post_service bacula-dir - -%preun dir -%_preun_service bacula-dir - -%files fd -%defattr(755, root, root) -%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-fd.conf -%config(noreplace) %{_initrddir}/bacula-fd -%{_sbindir}/bacula-fd -%{_sbindir}/btraceback -%{_sbindir}/smtp -%dir %{_libexecdir}/%{name} -%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb -%attr(700, root, root) %dir %{_localstatedir}/%{name} - -%pre fd -umask 077 -i=%{_sysconfdir}/%{name}/bacula-fd.conf -if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then - sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed - sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp - mv -f $i.tmp $i - rm -f %{_sysconfdir}/%{name}/.upw.sed +fi +# check for and copy /etc/bacula/console.conf to bconsole.conf +if [ -s /etc/bacula/console.conf ];then + cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf fi -%post fd -%_post_service bacula-fd -if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then - for i in %{_sysconfdir}/%{name}/bacula-fd.conf %{_sysconfdir}/%{name}/bacula-fd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-fd.conf.rpmsave; do - if [ -s $i ]; then - sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp -# this is needed if upgrading from 1.30a or lower - sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i - rm -f $i.tmp +%post sqlite +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +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.34 or lower database + if [ "$DB_VER" -lt "8" ]; 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 + echo "Upgrading bacula database ..." + /etc/bacula/update_sqlite_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" fi - done +else + # create the database and tables + echo "Hmm, doesn't look like you have an existing database." + echo "Creating SQLite database..." + /etc/bacula/create_sqlite_database + echo "Creating the SQLite tables..." + /etc/bacula/make_sqlite_tables fi -%preun fd -%_preun_service bacula-fd - -%files sd -%defattr(755, root, root) -%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-sd.conf -%config(noreplace) %{_initrddir}/bacula-sd -%{_sbindir}/bacula-sd -%{_sbindir}/bcopy -%{_sbindir}/bextract -%{_sbindir}/bls -%{_sbindir}/bscan -%{_sbindir}/btape -%{_sbindir}/btraceback -%{_sbindir}/smtp -%dir %{_libexecdir}/%{name} -%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb -%{_libexecdir}/%{name}/mtx-changer -%attr(700, root, root) %dir %{_localstatedir}/%{name} - -%pre sd -umask 077 -i=%{_sysconfdir}/%{name}/bacula-sd.conf -if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then - sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed - sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp - mv -f $i.tmp $i - rm -f %{_sysconfdir}/%{name}/.upw.sed +# 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 -%post sd -%_post_service bacula-sd -if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then - for i in %{_sysconfdir}/%{name}/bacula-sd.conf %{_sysconfdir}/%{name}/bacula-sd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-sd.conf.rpmsave; do - if [ -s $i ]; then - sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp -# this is needed if upgrading from 1.30a or lower - sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i - rm -f $i.tmp - fi - done +%preun sqlite +# delete our links +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd fi -%preun sd -%_preun_service bacula-sd - -%files console -%defattr(755, root, root) -%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/console.conf -%{_sbindir}/console -%{_sbindir}/btraceback -%{_sbindir}/smtp -%dir %{_libexecdir}/%{name} -%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb - -%pre console -umask 077 -i=%{_sysconfdir}/%{name}/console.conf -if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then - sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed - sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp - mv -f $i.tmp $i - rm -f %{_sysconfdir}/%{name}/.upw.sed +%endif + +%if %{postgresql} + +%files postgresql +%defattr(-,root,root) + +/etc/bacula/bacula +/etc/bacula/bconsole +/etc/bacula/create_postgresql_database +/etc/bacula/drop_postgresql_database +/etc/bacula/make_postgresql_tables +/etc/bacula/drop_postgresql_tables +/etc/bacula/update_postgresql_tables +/etc/bacula/grant_postgresql_privileges +/etc/bacula/create_bacula_database +/etc/bacula/drop_bacula_database +/etc/bacula/grant_bacula_privileges +/etc/bacula/make_bacula_tables +/etc/bacula/drop_bacula_tables +/etc/bacula/update_bacula_tables +/etc/bacula/make_catalog_backup +/etc/bacula/delete_catalog_backup +/etc/bacula/mtx-changer +/etc/bacula/btraceback.dbx +/etc/bacula/btraceback.gbd +/etc/init.d/bacula-dir +/etc/init.d/bacula-fd +/etc/init.d/bacula-sd + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +/usr/man/man1/* + +/etc/logrotate.d/bacula + +%config(noreplace) /etc/bacula/bacula-dir.conf +%config(noreplace) /etc/bacula/bacula-fd.conf +%config(noreplace) /etc/bacula/bacula-sd.conf +%config(noreplace) /etc/bacula/bconsole.conf +/etc/bacula/query.sql +%dir %{working_dir} + +/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 console -if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then - for i in %{_sysconfdir}/%{name}/console.conf %{_sysconfdir}/%{name}/console.conf.rpmnew %{_sysconfdir}/%{name}/console.conf.rpmsave; do - if [ -s $i ]; then - sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp -# this is needed if upgrading from 1.30a or lower - sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i - rm -f $i.tmp - fi - done +%post postgresql +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +fi + +# test for an existing database +# 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` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Granting privileges for PostgreSQL user bacula..." + /etc/bacula/grant_postgresql_privileges + echo "Creating PostgreSQL bacula database..." + /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 -%if %{GNOME} -%files console-gnome -%defattr(644, root, root, 755) -%{_iconsdir}/bacula.png -%{_iconsdir}/mini/bacula.png -%{_iconsdir}/large/bacula.png -%{_menudir}/bacula-console-gnome -%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/gnome-console.conf -%attr(755, root, root) %{_sbindir}/gnome-console -%attr(755, root, root) %{_sbindir}/btraceback -%attr(755, root, root) %{_sbindir}/smtp -%dir %{_libexecdir}/%{name} -%{_libexecdir}/%{name}/btraceback.gdb - -%pre console-gnome -umask 077 -i=%{_sysconfdir}/%{name}/gnome-console.conf -if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then - sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed - sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp - mv -f $i.tmp $i - rm -f %{_sysconfdir}/%{name}/.upw.sed +# 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 + -%post console-gnome -%update_menus -if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then - for i in %{_sysconfdir}/%{name}/gnome-console.conf %{_sysconfdir}/%{name}/gnome-console.conf.rpmnew %{_sysconfdir}/%{name}/gnome-console.conf.rpmsave; do - if [ -s $i ]; then - sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp -# this is needed if upgrading from 1.30a or lower - sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i - rm -f $i.tmp - fi - done +%preun postgresql +# delete our links +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd fi - -%postun console-gnome -%clean_menus %endif +%files client +%defattr(-,root,root) + +/etc/bacula/bconsole +/etc/init.d/bacula-fd + +%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 +%config(noreplace) /etc/bacula/bconsole.conf +%dir %{working_dir} + +/usr/sbin/bacula-fd +/usr/sbin/btraceback +/etc/bacula/btraceback.gdb +/etc/bacula/btraceback.dbx +/usr/sbin/bsmtp +/usr/sbin/bconsole + + +%post client +# add our link +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 +/sbin/chkconfig --del bacula-fd +fi + +%files rescue +%defattr(-,root,root) +/etc/bacula/rescue/backup.etc.list +/etc/bacula/rescue/format_floppy +/etc/bacula/rescue/getdiskinfo +/etc/bacula/rescue/make_rescue_disk +/etc/bacula/rescue/restore_bacula +/etc/bacula/rescue/restore_etc +/etc/bacula/rescue/run_grub +/etc/bacula/rescue/run_lilo +/etc/bacula/rescue/sfdisk.bz2 +/etc/bacula/rescue/bacula-fd +/etc/bacula/rescue/tomsrtbt/* + +%post rescue +# link our current installed conf file to the rescue directory +ln -s /etc/bacula-fd.conf /etc/bacula/rescue/bacula-fd.conf + +# run getdiskinfo +echo "Creating rescue files for this system..." +cd /etc/bacula/rescue +./getdiskinfo + +%preun rescue +# remove the files created after the initial rpm installation +rm -f /etc/bacula/rescue/bacula-fd.conf +rm -f /etc/bacula/rescue/partition.* +rm -f /etc/bacula/rescue/format.* +rm -f /etc/bacula/rescue/mount_drives +rm -f /etc/bacula/rescue/start_network +rm -f /etc/bacula/rescue/sfdisk +rm -rf /etc/bacula/rescue/diskinfo/* + +%files updatedb +%defattr(-,root,root) +/etc/bacula/updatedb/* + +%post updatedb +echo "The database update scripts were installed to /etc/bacula/updatedb" + +%files gconsole +%defattr(-,root,root) +/usr/sbin/gnome-console +/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 +/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 +%config(noreplace,missingok) /etc/security/console.apps/gnome-console +/usr/bin/gnome-console +%endif + + %changelog -* Tue Nov 04 2003 Luca Berra 1.32d-1mdk -- 1.32d -- use gnome2 for console -- use tcp_wrappers -- try not to create unneeded .rpmnew in configuration - -* Fri Aug 12 2003 Luca Berra 1.31a-1mdk -- 1.31a -- modified %%post script to upgrade database if needed and do not try to create if it already exists. -- %%post_service should be last in %%post script -- changed sql upgrade script to remove multiple Version rows introduced by %%post -- trying to create the tables multiple times in previous releases. -- smtp is required by btraceback which is required by every daemon. -- added conflicts for lower version - -* Wed Aug 6 2003 Luca Berra 1.30a-3mdk -- changed sqlite requires to match package in contrib -- set passwords for single components to produce an error until user changes them -- try to change passwords automatically if dir package is installed - -* Sun Aug 3 2003 Luca Berra 1.30a-2mdk -- many spec changes -- almost please rpmlint -- fixed readline eats last message bug in console - -* Fri Aug 1 2003 Luca Berra 1.30a-1mdk -- Initial spec file from spec by D. Scott Barninger +* Wed Oct 13 2004 D. Scott Barninger +- 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 +- add documentation to console for groupadd +* Sat Sep 04 2004 D. Scott Barninger +- 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 +- really, really fix symlink creation for gconsole +* Thu Jun 17 2004 D. Scott Barninger +- fix symlink creation in gconsole post install +* Sat Jun 12 2004 D. Scott Barninger +- fixed error in gconsole post script +* Fri Apr 30 2004 D. Scott Barninger +- add check for gconsole symlink before trying to create it +* Sun Apr 11 2004 D. Scott Barninger +- fix some minor permissions issues on doc files that CVS won't let us fix +* Sun Apr 04 2004 D. Scott Barninger +- add pkgconfig to BuildRequires +- clean up gnome1/2 menu entries for appropriate packages +* Fri Apr 02 2004 D. Scott Barninger +- tightened up doc distribution +* Tue Mar 30 2004 D. Scott Barninger +- 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 +- corrected mysql prerequisites for suse +* Mon Mar 1 2004 D. Scott Barninger +- 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 +- corrected creation of sqlite_bindir in install from !mysql to sqlite +- +- various cleanup patches from Michael K. Johnson: +- corrected post install routines for nicer chkconfig +- removed chmod changes in post routines and moved to install section +- removed interactive nature of post routine for rescue package +- added description of building rescue disks to the description of rescue package +- added clean of build root to beginning of install +- removed specifying attr in all file lists +* Fri Feb 20 2004 D. Scott Barninger +- added bconsole to client package +- added gconsole package as add-on to client +- removed spurious dependancies on updatedb package (!cut/paste) +* Thu Feb 19 2004 D. Scott Barninger +- added updatedb package +* Thu Feb 12 2004 D. Scott Barninger +- added postgresql package +* Wed Feb 11 2004 D. Scott Barninger +- corrected the if else logic in the dependancy sections +- changes for 1.34 release +- /etc/bacula/console is now /etc/bacula/bconsole +- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf +- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb +- /usr/sbin/smtp is now /usr/sbin/bsmtp +- added new /etc/bacula/drop_mysql_database +- added new /etc/bacula/drop_sqlite_database +- added new /etc/bacula/grant_sqlite_privileges +- added new generic bacula database scripts in /etc/bacula +- added pre-install sections to check for database versions older than 6 +- added check for /etc/bacula/console.conf and copy to bconsole.conf +* Sun Feb 08 2004 D. Scott Barninger +- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release +- added testing for existing databases before executing any of the database creation scripts +- added defines working_dir and sqlite_bindir in place of hard coded paths +* Sat Jan 31 2004 D. Scott Barninger +- added build configuration for SuSE. +- Thanks to Matt Vollmar for his input +* Sat Jan 24 2004 D. Scott Barninger +- added patch for create_sqlite_database to fix the installed bindir +- added execute of create_sqlite_database to post of sqlite package +* Sat Jan 10 2004 D. Scott Barninger +- added virtual package Provides bacula-dir, bacula-sd, bacula-fd +- added bacula-fd as Requires for rescue package +- added build tag for Fedora Core 1 +- cleaned up dependancies for all builds +* Thu Jan 1 2004 D. Scott Barninger +- removed rh_version from package names +- added platform build configuration section to beginning of file +* Tue Nov 25 2003 D. Scott Barninger +- removed make_static_bacula script from rescue package install +* Sun Nov 23 2003 D. Scott Barninger +- Added define at top of file for depkgs version +- Added rescue sub-package +- Moved requires statements into proper sub-package locations +* Mon Oct 27 2003 D. Scott Barninger +- Corrected Requires for Gnome 1.4/2.0 builds +* Fri Oct 24 2003 D. Scott Barninger +- Added separate source declaration for depkgs +- added patch for make_catalog_backup script +* Mon May 11 2003 D. Scott Barninger +- Misc changes to mysql/sqlite build and rh7/8 menu differences +- Added rh_version to sub-package names +- Added installed but missing file /etc/bacula/gconsole +- rm'd /etc/bacula/grant_mysql_privileges on sqlite builds +* Thu May 08 2003 Kern Sibbald +- Update spec for version 1.31 and combine client +* Sun Mar 30 2003 D. Scott Barninger +- Initial spec file diff --git a/bacula/platforms/redhat/bacula.spec.in b/bacula/platforms/redhat/bacula.spec.in index cb71b45c7e..7f72ccae46 100644 --- a/bacula/platforms/redhat/bacula.spec.in +++ b/bacula/platforms/redhat/bacula.spec.in @@ -2,7 +2,7 @@ # 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 @@ -30,9 +30,12 @@ # 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 @@ -77,6 +80,7 @@ BuildRequires: glibc-devel >= 2.2 BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel +BuildRequires: freetype-devel %endif %if %{su9} BuildRequires: termcap @@ -90,8 +94,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 @@ -103,6 +123,7 @@ BuildRequires: libbonoboui-devel >= 2.0 BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel +BuildRequires: freetype-devel %endif %if %{mysql} @@ -143,6 +164,9 @@ Group: System Environment/Daemons 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 @@ -155,7 +179,7 @@ Requires: termcap Requires: glibc >= 2.3 Requires: libtermcap %endif -%if %{mysql} && ! %{su9} +%if %{mysql} && ! %{su9} && ! %{mdk} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif @@ -163,6 +187,10 @@ Requires: mysql-server >= 3.23 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 @@ -300,6 +328,7 @@ Requires: glibc >= 2.2 Requires: ORBit Requires: bonobo Requires: GConf +Requires: freetype %endif %if %{su9} Requires: gtk2 >= 2.0 @@ -312,8 +341,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 @@ -324,6 +365,7 @@ Requires: libbonoboui >= 2.0 Requires: bonobo-activation Requires: GConf2 Requires: linc +Requires: freetype %endif %if %{su9} Requires: xsu @@ -387,6 +429,9 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch --enable-smartalloc \ --enable-gnome \ --enable-static-fd \ +%if ! %{rh7} + --enable-tray-monitor \ +%endif %if %{mysql} --with-mysql \ %endif @@ -481,7 +526,13 @@ 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 @@ -492,6 +543,8 @@ chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* %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 @@ -500,12 +553,14 @@ cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.ap 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 +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 @@ -570,6 +625,8 @@ 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 @@ -603,20 +660,19 @@ chmod o-rwx $RPM_BUILD_ROOT/var/bacula /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 @@ -647,8 +703,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 @@ -698,6 +754,8 @@ 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 @@ -734,19 +792,19 @@ fi /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 +# test for bacula database older than version 7 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` - 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 @@ -766,8 +824,8 @@ 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 - if [ "$DB_VER" -lt "7" ]; then + # check to see if we need to upgrade a 1.34 or lower database + if [ "$DB_VER" -lt "8" ]; 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 @@ -824,6 +882,8 @@ fi /etc/bacula/make_catalog_backup /etc/bacula/delete_catalog_backup /etc/bacula/mtx-changer +/etc/bacula/btraceback.dbx +/etc/bacula/btraceback.gbd /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd @@ -857,7 +917,21 @@ fi /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 @@ -880,6 +954,16 @@ if [ -z "$DB_VER" ]; then /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 @@ -917,6 +1001,7 @@ fi /usr/sbin/bacula-fd /usr/sbin/btraceback /etc/bacula/btraceback.gdb +/etc/bacula/btraceback.dbx /usr/sbin/bsmtp /usr/sbin/bconsole @@ -991,6 +1076,10 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" /usr/share/gnome/apps/System/bacula.desktop %else /usr/share/applications/bacula.desktop +/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} @@ -1002,6 +1091,11 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %changelog +* Wed Oct 13 2004 D. Scott Barninger +- 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 - add documentation to console for groupadd * Sat Sep 04 2004 D. Scott Barninger diff --git a/bacula/platforms/suse/bacula.spec.in b/bacula/platforms/suse/bacula.spec.in index cb71b45c7e..7f72ccae46 100644 --- a/bacula/platforms/suse/bacula.spec.in +++ b/bacula/platforms/suse/bacula.spec.in @@ -2,7 +2,7 @@ # 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 @@ -30,9 +30,12 @@ # 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 @@ -77,6 +80,7 @@ BuildRequires: glibc-devel >= 2.2 BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel +BuildRequires: freetype-devel %endif %if %{su9} BuildRequires: termcap @@ -90,8 +94,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 @@ -103,6 +123,7 @@ BuildRequires: libbonoboui-devel >= 2.0 BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel +BuildRequires: freetype-devel %endif %if %{mysql} @@ -143,6 +164,9 @@ Group: System Environment/Daemons 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 @@ -155,7 +179,7 @@ Requires: termcap Requires: glibc >= 2.3 Requires: libtermcap %endif -%if %{mysql} && ! %{su9} +%if %{mysql} && ! %{su9} && ! %{mdk} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif @@ -163,6 +187,10 @@ Requires: mysql-server >= 3.23 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 @@ -300,6 +328,7 @@ Requires: glibc >= 2.2 Requires: ORBit Requires: bonobo Requires: GConf +Requires: freetype %endif %if %{su9} Requires: gtk2 >= 2.0 @@ -312,8 +341,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 @@ -324,6 +365,7 @@ Requires: libbonoboui >= 2.0 Requires: bonobo-activation Requires: GConf2 Requires: linc +Requires: freetype %endif %if %{su9} Requires: xsu @@ -387,6 +429,9 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch --enable-smartalloc \ --enable-gnome \ --enable-static-fd \ +%if ! %{rh7} + --enable-tray-monitor \ +%endif %if %{mysql} --with-mysql \ %endif @@ -481,7 +526,13 @@ 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 @@ -492,6 +543,8 @@ chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* %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 @@ -500,12 +553,14 @@ cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.ap 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 +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 @@ -570,6 +625,8 @@ 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 @@ -603,20 +660,19 @@ chmod o-rwx $RPM_BUILD_ROOT/var/bacula /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 @@ -647,8 +703,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 @@ -698,6 +754,8 @@ 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 @@ -734,19 +792,19 @@ fi /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 +# test for bacula database older than version 7 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` - 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 @@ -766,8 +824,8 @@ 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 - if [ "$DB_VER" -lt "7" ]; then + # check to see if we need to upgrade a 1.34 or lower database + if [ "$DB_VER" -lt "8" ]; 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 @@ -824,6 +882,8 @@ fi /etc/bacula/make_catalog_backup /etc/bacula/delete_catalog_backup /etc/bacula/mtx-changer +/etc/bacula/btraceback.dbx +/etc/bacula/btraceback.gbd /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd @@ -857,7 +917,21 @@ fi /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 @@ -880,6 +954,16 @@ if [ -z "$DB_VER" ]; then /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 @@ -917,6 +1001,7 @@ fi /usr/sbin/bacula-fd /usr/sbin/btraceback /etc/bacula/btraceback.gdb +/etc/bacula/btraceback.dbx /usr/sbin/bsmtp /usr/sbin/bconsole @@ -991,6 +1076,10 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" /usr/share/gnome/apps/System/bacula.desktop %else /usr/share/applications/bacula.desktop +/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} @@ -1002,6 +1091,11 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %changelog +* Wed Oct 13 2004 D. Scott Barninger +- 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 - add documentation to console for groupadd * Sat Sep 04 2004 D. Scott Barninger diff --git a/bacula/scripts/bacula-tray-monitor.desktop.in b/bacula/scripts/bacula-tray-monitor.desktop.in new file mode 100644 index 0000000000..395f302990 --- /dev/null +++ b/bacula/scripts/bacula-tray-monitor.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Bacula Monitor +Comment=Notification Tray Monitor +Icon=/usr/share/pixmaps/bacula-tray-monitor.xpm +Exec=@sbindir@/bacula-tray-monitor -c @sysconfdir@/tray-monitor.conf +Terminal=false +Type=Application +Encoding=UTF-8 +X-Desktop-File-Install-Version=0.3 +Categories=System;Application;Utility;X-Red-Hat-Base; diff --git a/bacula/src/cats/make_catalog_backup.in.patch b/bacula/src/cats/make_catalog_backup.in.patch index cb6e270606..99ea7a3208 100644 --- a/bacula/src/cats/make_catalog_backup.in.patch +++ b/bacula/src/cats/make_catalog_backup.in.patch @@ -1,16 +1,16 @@ -9c9 -< echo ".dump" | @SQL_BINDIR@/sqlite $* bacula.db >bacula.sql +15c15 +< echo ".dump" | @SQL_BINDIR@/sqlite $1.db >$1.sql --- -> echo ".dump" | /usr/lib/sqlite/sqlite $* bacula.db >bacula.sql -12c12 -< @SQL_BINDIR@/mysqldump $* -f --opt bacula >bacula.sql +> echo ".dump" | /usr/lib/sqlite/sqlite $1.db >$1.sql +18c18 +< @SQL_BINDIR@/mysqldump -u $2 -f --opt $1 >$1.sql --- -> /usr/bin/mysqldump $* -f --opt bacula >bacula.sql -14c14 -< @SQL_BINDIR@/pg_dump $* bacula >bacula.sql ---- -> /usr/bin/pg_dump $* bacula >bacula.sql +> /usr/bin/mysqldump -u $2 -f --opt $1 >$1.sql 20c20 +< @SQL_BINDIR@/pg_dump -U $2 $1 >$1.sql +--- +> /usr/bin/pg_dump -U $2 $1 >$1.sql +26c26 < # rm -f @SQL_BINDIR@/../var/bacula/* --- > # rm -f /var/lib/mysql/bacula/* -- 2.39.5