5 # Platform Build Configuration
7 # basic defines for every build
8 %define _release @RELEASE@
9 %define _version @VERSION@
10 %define product bacula
11 %define _packager Kern Sibbald <kern@sibbald.com>
12 %define depkgs_version @DEPKGS_VERSION@
14 # Don't strip binaries
15 %define __os_install_post %{nil}
16 %define __debug_install_post %{nil}
17 %define debug_package %{nil}
19 %define postgres_version 8
21 %{?build_rhel5:%define pgre84 1}
22 %{?build_el5:%define pgre84 1}
24 %define postgres_package postgresql84
25 %define postgres_server_package postgresql84-server
26 %define postgres_devel_package postgresql84-devel
28 %define postgres_package postgresql
29 %define postgres_server_package postgresql-server
30 %define postgres_devel_package postgresql-devel
34 %{?single_dir_install:%define single_dir 1}
36 # Installation Directory locations
37 %define _prefix /opt/bacula
38 %define _sbindir /opt/bacula/bin
39 %define _bindir /opt/bacula/bin
40 %define _subsysdir /opt/bacula/working
41 %define sqlite_bindir /opt/bacula/sqlite
42 %define _mandir /usr/share/man
43 %define docs_dir /opt/bacula/docs
44 %define archive_dir /opt/bacula/archive
45 %define sysconf_dir /opt/bacula/etc
46 %define script_dir /opt/bacula/scripts
47 %define working_dir /opt/bacula/working
48 %define pid_dir /opt/bacula/working
49 %define plugin_dir /opt/bacula/plugins
50 %define lib_dir /opt/bacula/lib
51 %define log_dir /opt/bacula/log
52 %define systemd_dir /lib/systemd/system
54 # Daemon user:group Don't change them unless you know what you are doing
55 %define director_daemon_user bacula
56 %define storage_daemon_user bacula
57 %define file_daemon_user root
58 %define daemon_group bacula
59 # group that has write access to tape devices, usually disk on Linux
60 %define storage_daemon_group disk
62 %define depkgs ../depkgs
64 # problems with mandriva build:
65 # nothing provides libbonobo2_0-devel, nothing provides libbonoboui2_0-devel
67 #--------------------------------------------------------------------------
68 # it should not be necessary to change anything below here for a release
69 # except for patch macros in the setup section
70 #--------------------------------------------------------------------------
72 %define base_package_name %{product}
74 %{?contrib_packager:%define _packager %{contrib_packager}}
76 Summary: Bacula - The Network Backup Solution
77 Name: %{base_package_name}
80 Group: System Environment/Daemons
82 BuildRoot: %{_tmppath}/%{name}-root
83 URL: http://www.bacula.org/
84 Vendor: The Bacula Team
85 Packager: %{_packager}
88 # opensuse build service changes the release itself
89 # what happens if the release is not 1? DSB
90 Source0: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
91 Source1: http://www.prdownloads.sourceforge.net/bacula/%{product}-%{version}.tar.gz
92 Source2: Release_Notes-%{version}-%{release}.tar.gz
94 # define the basic package description
95 %define blurb Bacula - The Leading Open Source Backup Solution.
96 %define blurb2 Bacula is a set of computer programs that permit you (or the system
97 %define blurb3 administrator) to manage backup, recovery, and verification of computer
98 %define blurb4 data across a network of computers of different kinds. In technical terms,
99 %define blurb5 it is a network client/server based backup program. Bacula is relatively
100 %define blurb6 easy to use and efficient, while offering many advanced storage management
101 %define blurb7 features that make it easy to find and recover lost or damaged files.
102 %define blurb8 Bacula source code has been released under the AGPL version 3 license.
104 %define user_file /etc/passwd
105 %define group_file /etc/group
108 %define useradd /usr/sbin/useradd
109 %define groupadd /usr/sbin/groupadd
110 %define usermod /usr/sbin/usermod
112 # platform defines - set one below or define the build_xxx on the command line
115 %{?build_rh7:%define rh7 1}
117 %{?build_rh8:%define rh8 1}
119 %{?build_rh9:%define rh9 1}
122 %{?build_fc16:%define fc16 1}
124 %{?build_fc17:%define fc17 1}
126 %{?build_fc18:%define fc18 1}
128 %{?build_fc22:%define fc22 1}
129 # RedHat Enterprise builds
131 %{?build_rhel3:%define rhel3 1}
133 %{?build_rhel4:%define rhel4 1}
134 %{?build_rhel4:%define fc3 1}
135 %{?build_el4:%define rhel4 1}
136 %{?build_el4:%define fc3 1}
138 %{?build_rhel5:%define rhel5 1}
139 %{?build_rhel5:%define fc6 1}
140 %{?build_el5:%define rhel5 1}
141 %{?build_el5:%define fc6 1}
143 %{?build_rhel6:%define rhel6 1}
144 %{?build_el6:%define rhel6 1}
146 %{?build_rhel7:%define rhel7 1}
147 %{?build_el7:%define rhel7 1}
150 %{?build_centos3:%define centos3 1}
152 %{?build_centos4:%define centos4 1}
153 %{?build_centos4:%define fc3 1}
155 %{?build_centos5:%define centos5 1}
156 %{?build_centos5:%define fc6 1}
158 %{?build_centos6:%define centos6 1}
160 %{?build_centos7:%define centos7 1}
163 %{?build_sl3:%define sl3 1}
165 %{?build_sl4:%define sl4 1}
166 %{?build_sl4:%define fc3 1}
168 %{?build_sl5:%define sl5 1}
169 %{?build_sl5:%define fc6 1}
172 %{?build_su9:%define su9 1}
174 %{?build_su10:%define su10 1}
176 %{?build_su102:%define su102 1}
178 %{?build_su103:%define su103 1}
180 %{?build_su110:%define su110 1}
182 %{?build_su111:%define su111 1}
184 %{?build_su112:%define su112 1}
186 %{?build_su113:%define su113 1}
188 %{?build_su120:%define su120 1}
190 %{?build_su131:%define su131 1}
193 %{?build_mdk:%define mdk 1}
195 %{?build_mdv:%define mdv 1}
196 %{?build_mdv:%define mdk 1}
199 %define client_only 0
200 %{?build_client_only:%define client_only 1}
202 # if the platform is using systemd
205 %if %{rhel7} || %{fc22} || %{centos7}
209 # depending if we use systemd or not, we use chkconfig or systemctl
211 %define service_enable systemctl enable
212 %define service_disable systemctl disable
214 %define service_enable /sbin/chkconfig --add
215 %define service_disable /sbin/chkconfig --del
218 # Setup some short cuts
220 %if %{rh7} || %{rh8} || %{rh9}
224 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
228 %if %{su9} || %{su10} || %{su102} || %{su103} || %{su110} || %{su111} || %{su112} || %{su120} || %{su131}
232 %if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{rhel7} || %{centos3} || %{centos4} || %{centos5} || %{centos6} || %{centos7}
236 %if %{sl3} || %{sl4} || %{sl5}
241 # test for a platform definition
242 %if !%{rhat} && !%{rhel} && !%{fed} && !%{suse} && !%{mdk} && !%{scil}
243 %{error: You must specify a platform. Please examine the spec file.}
247 # distribution-specific directory for logwatch
248 %if %{rh7} || %{rh8} || %{rh9}
249 %define logwatch_dir /etc/log.d
251 %define logwatch_dir /etc/logwatch
255 # set for database support desired or define the build_xxx on the command line
257 %{?build_mysql:%define mysql 1}
259 %{?build_sqlite:%define sqlite 1}
261 %{?build_postgresql:%define postgresql 1}
263 # test for a database definition
264 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
265 %{error: You must specify database support, by passing one of the following to rpmbuild:}
266 %{error: --define build_postgresql=1}
267 %{error: --define build_sqlite=1}
268 %{error: --define build_mysql=1}
273 %define db_backend mysql
276 %define db_backend sqlite3
279 %define db_backend postgresql
284 %{?build_x86_64:%define x86_64 1}
286 # check what distribution we are
287 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
288 %define _dist %(grep Fedora /etc/redhat-release)
290 %if %{centos7} || %{centos6}
291 %define _dist %(grep CentOS /etc/redhat-release)
293 %if %{centos5} || %{centos4} || %{centos3}
294 %define _dist %(grep CentOS /etc/redhat-release)
296 %if %{sl5} ||%{sl4} || %{sl3}
297 %define _dist %(grep 'Scientific Linux' /etc/redhat-release)
300 %define _dist %(grep -i SuSE /etc/SuSE-release)
305 # should we enable tcp wrappers support
306 %define tcpwrappers 1
307 %{?build_tcpwrappers:%define tcpwrappers 1}
309 # do we need to patch for old postgresql version?
311 %{?build_old_pgsql:%define old_pgsql 1}
313 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
315 %define manpage_ext bz2
317 %define manpage_ext gz
320 # for client only build
327 BuildRequires: gcc, gcc-c++, make, autoconf
328 BuildRequires: glibc, glibc-devel
329 BuildRequires: ncurses-devel, readline-devel
330 BuildRequires: libstdc++-devel, zlib-devel
331 BuildRequires: openssl-devel
332 BuildRequires: libacl-devel
333 BuildRequires: pkgconfig
334 BuildRequires: bzip2-devel
336 BuildRequires: libxml2-devel
340 BuildRequires: libxml-devel
343 BuildRequires: libstdc++-static-devel
344 BuildRequires: glibc-static-devel
347 %if %{mysql} && ! %{suse}
348 BuildRequires: mysql-devel
352 BuildRequires: %{postgres_devel_package} >= %{postgres_version}
367 # ===========================================================
368 # Generate mysql, sqlite, or postgresql rpm
369 # ===========================================================
373 Provides: perl(Logwatch)
374 Provides: libbaccats-%{version}.so
375 Provides: libbaccats-%{version}.so()(64bit)
384 Summary: Bacula - The Network Backup Solution
385 Group: System Environment/Daemons
386 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
387 Conflicts: bacula-client
389 Requires: ncurses, libstdc++, zlib, openssl
390 Requires: glibc, readline, %{name}-libs
401 Requires: postgresql >= 7
411 %description postgresql
425 This build requires MySQL to be installed separately as the catalog database.
428 This build requires PostgreSQL to be installed separately as the catalog database.
431 This build incorporates sqlite3 as the catalog database, statically compiled.
434 This build includes tcp-wrappers support.
440 # ===========================================================
441 # Client -- bacula-fd rpm
442 # ===========================================================
445 Summary: Bacula - The Network Backup Solution
446 Group: System Environment/Daemons
448 Conflicts: bacula-mysql
449 Conflicts: bacula-sqlite
450 Conflicts: bacula-postgresql
454 Provides: %{product}-libs
457 Requires: libstdc++, zlib, openssl, bzip2-libs
458 Requires: glibc, readline, %{name}-libs
471 This is the File daemon (Client) only package. It includes the command line
474 This build includes tcp-wrappers support.
478 # ===========================================================
479 # Generate updatedb rpm
480 # ===========================================================
485 Summary: Bacula - The Network Backup Solution
486 Group: System Environment/Daemons
488 %description updatedb
499 This package installs scripts for updating older versions of the bacula
504 # ===========================================================
506 # ===========================================================
510 Summary: Bacula - The Network Backup Solution
511 Group: System Environment/Daemons
524 This package installs the shared libraries used by many bacula programs.
526 # Must explicitly enable debug pkg on SuSE
527 # but not in opensuse_bs
528 #%if %{suse} && ! 0%{?opensuse_bs}
533 %setup -T -b 0 -n depkgs
534 %setup -T -b 1 -n %{product}-%{version}
535 %setup -T -D -b 2 -n %{product}-%{version}
542 #export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap -L/usr/lib64/termcap"
545 # You can use a cache for depkgs
546 # tar xfz depkgs*gz -C ~/
548 # touch %{depkgs_version} # depkgs version
550 if [ -f $HOME/depkgs/%{depkgs_version} ]; then
552 ln -s $HOME/depkgs %{depkgs}
564 export LDFLAGS="${LDFLAGS} -L${PWD}/lzo/lib"
565 export CPPFLAGS="${CPPFLAGS} -I${PWD}/lzo/include"
568 # hostname is the build hostname, so use XXX_HOSTNAME_XXX for Address parameter
569 sed -i s/hostname/basename/ src/console/bconsole.conf.in src/dird/bacula-dir.conf.in src/qt-console/bat.conf.in
572 # patches for the bundled sqlite scripts
573 sed -i s:.SQLITE_BINDIR.:/opt/bacula/sqlite: src/cats/*_sqlite3_*.in
575 # patch the bacula-dir init script to remove sqlite service
577 sed -i 's/network .DB_TYPE./network/' platforms/suse/bacula-dir.in
581 # 64 bit lib location hacks
582 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
583 # reported to be fixed to properly detect lib locations.
585 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
587 %if %{mysql} && %{x86_64}
588 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
591 export BACULA="Bacula"
593 # Main Bacula configuration
595 --prefix=%{_prefix} \
596 --sbindir=%{_sbindir} \
597 --sysconfdir=%{sysconf_dir} \
598 --mandir=%{_mandir} \
599 --with-scriptdir=%{script_dir} \
600 --with-working-dir=%{working_dir} \
601 --with-plugindir=%{plugin_dir} \
602 --with-logdir=%{log_dir} \
603 --with-pid-dir=%{pid_dir} \
604 --with-subsys-dir=%{_subsysdir} \
605 --enable-smartalloc \
616 --enable-client-only \
618 %if %{rh7} || %{rh8} || %{rh9}
619 --disable-batch-insert \
622 --with-systemd=%{systemd_dir} \
624 --with-tcp-wrappers \
625 --with-dir-user=%{director_daemon_user} \
626 --with-dir-group=%{daemon_group} \
627 --with-sd-user=%{storage_daemon_user} \
628 --with-sd-group=%{storage_daemon_group} \
629 --with-fd-user=%{file_daemon_user} \
630 --with-fd-group=%{daemon_group} \
631 --with-basename="XXX_HOSTNAME_XXX" \
632 --with-hostname="XXX_HOSTNAME_XXX" \
633 --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
634 --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
635 --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
636 --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
637 --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
638 --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
646 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
647 mkdir -p $RPM_BUILD_ROOT/etc/init.d
648 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
649 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles
650 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/services
651 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services
652 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared
653 mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb
655 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
656 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
659 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
662 make DESTDIR=$RPM_BUILD_ROOT install
665 make DESTDIR=$RPM_BUILD_ROOT -C ../bacula-%{_version}/src/tools/ install-bsnapshot
668 make DESTDIR=$RPM_BUILD_ROOT -C platforms/systemd install-dir install-service
671 # Remove docs for programs that are depreciated
672 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext}
673 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext}
674 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
675 rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
677 # Remove docs for programs we do not distribute
678 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext}
680 # Remove storage-ctl packaged in shstore rpm
681 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
682 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
684 # fixme - make installs the mysql scripts for sqlite build
686 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
687 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
688 rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges
691 # fixme - make installs the mysql scripts for postgresql build
693 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
694 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
698 rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats.so
699 rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
701 # install the init scripts
704 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
705 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
706 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
709 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
710 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
711 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
713 %if ! %{suse} && ! %{mdk}
714 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
715 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
716 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
717 %endif # !suse && !mdk
718 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
719 %endif # ! usesystemd
722 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
723 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
724 rm -f $RPM_BUILD_ROOT%{script_dir}/breload
725 rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl
726 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-dir.service
727 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-sd.service
732 cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3
733 cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h
734 cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a
738 # install the logrotate file
739 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
741 # install the updatedb scripts
742 cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/
744 # install specific scripts
747 # install the sample-query.sql file
748 cp -p examples/sample-query.sql $RPM_BUILD_ROOT%{script_dir}/sample-query.sql
750 # install the logwatch scripts
751 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
752 cp -p scripts/logwatch/applybaculadate $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
753 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
754 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
755 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
756 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
757 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
758 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
761 # now clean up permissions that are left broken by the install
762 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
764 # fix me - building enable-client-only installs files not included in bacula-client package
766 # Program docs not installed on client
767 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext}
768 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext}
769 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext}
770 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext}
771 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext}
772 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext}
773 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext}
774 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext}
775 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bregex.8.%{manpage_ext}
776 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bwild.8.%{manpage_ext}
777 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext}
778 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
779 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
780 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
781 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
782 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
783 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
784 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
785 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
786 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
787 rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb
788 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
789 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
790 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
795 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
796 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
800 # MySQL specific files
802 %defattr(-, root, root)
803 %attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database
804 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database
805 %attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables
806 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables
807 %attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables
808 %attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
809 %{_libdir}/libbaccats*
810 %{_libdir}/libbacsql*
816 %defattr(-,root,root)
817 %attr(755, root, %{daemon_group}) %{script_dir}/create_postgresql_database
818 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_database
819 %attr(755, root, %{daemon_group}) %{script_dir}/make_postgresql_tables
820 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables
821 %attr(755, root, %{daemon_group}) %{script_dir}/update_postgresql_tables
822 %attr(755, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
823 %{_libdir}/libbaccats*
824 %{_libdir}/libbacsql*
827 # The rest is DB backend independent
830 %attr(-, root, %{daemon_group}) %dir %{script_dir}
831 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
832 %attr(-, root, %{daemon_group}) %{script_dir}/bacula
833 %attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
834 %attr(-, root, %{daemon_group}) %{script_dir}/bconsole
835 %attr(755, root, %{daemon_group}) %{script_dir}/create_bacula_database
836 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_database
837 %attr(755, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges
838 %attr(755, root, %{daemon_group}) %{script_dir}/make_bacula_tables
839 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_tables
840 %attr(755, root, %{daemon_group}) %{script_dir}/update_bacula_tables
841 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup
842 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup.pl
843 %attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup
844 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
845 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
846 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
847 %attr(-, root, %{daemon_group}) %{script_dir}/disk-changer
848 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
849 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
850 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
851 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
852 %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
853 %attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler
854 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
855 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf
858 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-dir.service
859 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
860 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-sd.service
862 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
863 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
864 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
867 /etc/logrotate.d/bacula
868 %{logwatch_dir}/scripts/services/bacula
869 %{logwatch_dir}/scripts/shared/applybaculadate
870 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf
871 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
872 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf
873 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
874 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
875 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
876 %attr(-, root, %{daemon_group}) %{script_dir}/sample-query.sql
877 %attr(-, root, %{daemon_group}) %{script_dir}/query.sql
879 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
881 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-dir
882 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-sd
883 %attr(-, root, %{daemon_group}) %{_sbindir}/btraceback
884 %attr(-, root, %{daemon_group}) %{_sbindir}/bconsole
885 %attr(-, root, %{daemon_group}) %{_sbindir}/bsmtp
886 %attr(-, root, %{daemon_group}) %{_sbindir}/bscan
887 %attr(-, root, %{daemon_group}) %{_sbindir}/btape
889 %attr(755, root, root) %{_sbindir}/bsnapshot
891 %{_sbindir}/bacula-fd
898 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
899 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
900 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
901 %{_mandir}/man8/bacula.8.%{manpage_ext}
902 %{_mandir}/man8/bconsole.8.%{manpage_ext}
903 %{_mandir}/man8/bcopy.8.%{manpage_ext}
904 %{_mandir}/man8/bextract.8.%{manpage_ext}
905 %{_mandir}/man8/bls.8.%{manpage_ext}
906 %{_mandir}/man8/bscan.8.%{manpage_ext}
907 %{_mandir}/man8/btape.8.%{manpage_ext}
908 %{_mandir}/man8/btraceback.8.%{manpage_ext}
909 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
910 %{_mandir}/man8/bregex.8.%{manpage_ext}
911 %{_mandir}/man8/bwild.8.%{manpage_ext}
912 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
913 %{_mandir}/man1/bat.1.%{manpage_ext}
916 %doc ../Release_Notes-%{version}-%{release}.txt
922 # test for bacula database older than version 13
923 # note: this ASSUMES no password has been set for bacula database
924 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
929 # are we upgrading from sqlite to sqlite3?
930 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
931 echo "This version of bacula-sqlite involves an upgrade to sqlite3."
932 echo "Your catalog database file is not compatible with sqlite3, thus"
933 echo "you will need to dump the data, delete the old file, and re-run"
934 echo "this rpm upgrade."
936 echo "Backing up your current database..."
937 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql
938 mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old
939 echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your"
940 echo "catalog file has been renamed %{working_dir}/bacula.db.old."
942 echo "Please re-run this rpm package upgrade."
943 echo "After the upgrade is complete, restore your catalog"
944 echo "with the following commands:"
945 echo "%{script_dir}/drop_sqlite3_tables"
946 echo "cd %{working_dir}"
947 echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql"
948 echo "chown bacula.bacula bacula.db"
951 # test for bacula database older than version 12 and sqlite3
952 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then
953 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
958 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
962 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "12" ]; then
963 echo "This bacula upgrade will update a bacula database from version 12 to 1014."
964 echo "You appear to be running database version $DB_VER. You must first update"
965 echo "your database to version 12 and then install this upgrade. The alternative"
966 echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current"
967 echo "catalog information, then do the upgrade. Information on updating a"
968 echo "database older than version 12 can be found in the release notes."
978 # check for and copy %{sysconf_dir}/console.conf to bconsole.conf
979 if [ -s %{sysconf_dir}/console.conf ];then
980 cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf
983 # create the daemon users and groups
984 # first create the groups if they don't exist
985 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
986 if [ -z "$HAVE_BACULA" ]; then
987 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
988 echo "The group %{daemon_group} has been added to %{group_file}."
989 echo "See the manual chapter \"Running Bacula\" for details."
991 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
992 if [ -z "$HAVE_BACULA" ]; then
993 %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
994 echo "The group %{storage_daemon_group} has been added to %{group_file}."
995 echo "See the manual chapter \"Running Bacula\" for details."
997 # now create the users if they do not exist
998 # we do not use the -g option allowing the primary group to be set to system default
999 # this will be a unique group on redhat type systems or the group users on some systems
1000 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1001 if [ -z "$HAVE_BACULA" ]; then
1002 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1003 echo "The user %{storage_daemon_user} has been added to %{user_file}."
1004 echo "See the manual chapter \"Running Bacula\" for details."
1006 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1007 if [ -z "$HAVE_BACULA" ]; then
1008 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1009 echo "The user %{director_daemon_user} has been added to %{user_file}."
1010 echo "See the manual chapter \"Running Bacula\" for details."
1012 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1013 if [ -z "$HAVE_BACULA" ]; then
1014 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1015 echo "The user %{file_daemon_user} has been added to %{user_file}."
1016 echo "See the manual chapter \"Running Bacula\" for details."
1018 # now we add the supplementary groups, this is ok to call even if the users already exist
1019 # we only do this if the user is NOT root
1020 IS_ROOT=%{director_daemon_user}
1021 if [ "$IS_ROOT" != "root" ]; then
1022 %{usermod} -G %{daemon_group} %{director_daemon_user}
1024 IS_ROOT=%{storage_daemon_user}
1025 if [ "$IS_ROOT" != "root" ]; then
1026 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1028 IS_ROOT=%{file_daemon_user}
1029 if [ "$IS_ROOT" != "root" ]; then
1030 %{usermod} -G %{daemon_group} %{file_daemon_user}
1043 %if ! %{client_only}
1045 if [ "$1" -ge 1 ] ; then
1046 %if %{suse} && %{mysql}
1047 %{service_enable} mysql
1049 %if %{suse} && %{postgresql}
1050 %{service_enable} postgresql
1052 %{service_enable} bacula-dir
1053 %{service_enable} bacula-fd
1054 %{service_enable} bacula-sd
1058 if [ -d %{sysconf_dir} ]; then
1060 if [ ! -f .rpm.sed ]; then
1062 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1063 echo "# match between configuration files" >> .rpm.sed
1065 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1066 pass=`openssl rand -base64 33`
1067 echo "s@${string}@${pass}@g" >> .rpm.sed
1071 if [ "$host" = "" ]; then
1074 for file in *.conf; do
1075 sed -f .rpm.sed $file > $file.new
1076 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1084 #check, if mysql can be called successfully at all
1085 if mysql 2>/dev/null bacula -e 'select * from Version;' ; then
1087 # test for an existing database
1088 # note: this ASSUMES no password has been set for bacula database
1089 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1091 # grant privileges and create tables if they do not exist
1092 if [ -z "$DB_VER" ]; then
1093 echo "Hmm, it doesn't look like you have an existing database."
1094 echo "Granting privileges for MySQL user bacula..."
1095 %{script_dir}/grant_mysql_privileges
1096 echo "Creating MySQL bacula database..."
1097 %{script_dir}/create_mysql_database
1098 echo "Creating bacula tables..."
1099 %{script_dir}/make_mysql_tables
1101 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1102 echo "This release requires an upgrade to your bacula database."
1103 echo "Backing up your current database..."
1104 mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1105 echo "Upgrading bacula database ..."
1106 %{script_dir}/update_mysql_tables
1107 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1114 # test for an existing database
1115 if [ -s %{working_dir}/bacula.db ]; then
1116 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1117 # check to see if we need to upgrade a 3.x database
1118 if [ "$DB_VER" -le "13" ] && [ "$DB_VER" -ge "12" ]; then
1119 echo "This release requires an upgrade to your bacula database."
1120 echo "Backing up your current database..."
1121 echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1122 echo "Upgrading bacula database ..."
1123 %{script_dir}/update_sqlite3_tables
1124 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1127 # create the database and tables
1128 echo "Hmm, doesn't look like you have an existing database."
1129 echo "Creating SQLite database..."
1130 %{script_dir}/create_sqlite3_database
1131 echo "Creating the SQLite tables..."
1132 %{script_dir}/make_sqlite3_tables
1133 chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db
1138 # check if psql can be called successfully at all
1139 if echo 'select * from Version;' | su - postgres -c 'psql bacula' 2>/dev/null; then
1141 # test for an existing database
1142 # note: this ASSUMES no password has been set for bacula database
1143 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1145 # grant privileges and create tables if they do not exist
1146 if [ -z "$DB_VER" ]; then
1147 echo "Hmm, doesn't look like you have an existing database."
1148 echo "Creating PostgreSQL bacula database..."
1149 su - postgres -c %{script_dir}/create_postgresql_database
1150 echo "Creating bacula tables..."
1151 su - postgres -c %{script_dir}/make_postgresql_tables
1152 echo "Granting privileges for PostgreSQL user bacula..."
1153 su - postgres -c %{script_dir}/grant_postgresql_privileges
1155 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1156 echo "This release requires an upgrade to your bacula database."
1157 echo "Backing up your current database..."
1158 su - postgres -c 'pg_dump bacula' | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1159 echo "Upgrading bacula database ..."
1160 su - postgres -c %{script_dir}/update_postgresql_tables
1161 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1162 echo "Granting privileges for PostgreSQL user bacula..."
1163 su - postgres -c %{script_dir}/grant_postgresql_privileges
1169 %if ! %{client_only}
1170 if [ -d %{sysconf_dir} ]; then
1172 if [ ! -f .rpm.sed ]; then
1174 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1175 echo "# match between configuration files" >> .rpm.sed
1177 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1178 pass=`openssl rand -base64 33`
1179 echo "s@${string}@${pass}@g" >> .rpm.sed
1183 if [ "$host" = "" ]; then
1186 for file in *.conf; do
1187 sed -f .rpm.sed $file > $file.new
1188 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1205 %if ! %{client_only}
1208 %{service_disable} bacula-dir
1209 %{service_disable} bacula-fd
1210 %{service_disable} bacula-sd
1215 %defattr(-,root,root)
1216 %attr(-, root, %{daemon_group}) %dir %{script_dir}
1217 %attr(-, root, %{daemon_group}) %dir %{plugin_dir}
1218 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
1220 # SD/DIR might write here
1221 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir}
1224 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
1226 %{script_dir}/bacula-ctl-fd
1227 /etc/init.d/bacula-fd
1230 /etc/logrotate.d/bacula
1232 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1233 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1234 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1236 %{_sbindir}/bacula-fd
1237 %{_sbindir}/btraceback
1238 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1239 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
1240 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
1241 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
1242 %{_sbindir}/bconsole
1243 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1244 %{_mandir}/man8/bacula.8.%{manpage_ext}
1245 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1246 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1247 %{_mandir}/man1/bat.1.%{manpage_ext}
1248 %_prefix/share/doc/*
1251 # create the daemon group and user
1252 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1253 if [ -z "$HAVE_BACULA" ]; then
1254 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1255 echo "The group %{daemon_group} has been added to %{group_file}."
1256 echo "See the manual chapter \"Running Bacula\" for details."
1258 # we do not use the -g option allowing the primary group to be set to system default
1259 # this will be a unique group on redhat type systems or the group users on some systems
1260 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1261 if [ -z "$HAVE_BACULA" ]; then
1262 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1263 echo "The user %{file_daemon_user} has been added to %{user_file}."
1264 echo "See the manual chapter \"Running Bacula\" for details."
1266 # now we add the supplementary group, this is ok to call even if the user already exists
1267 # we only do this if the user is NOT root
1268 IS_ROOT=%{file_daemon_user}
1269 if [ "$IS_ROOT" != "root" ]; then
1270 %{usermod} -G %{daemon_group} %{file_daemon_user}
1275 if [ "$1" -ge 1 ] ; then
1276 %{service_enable} bacula-fd
1279 if [ -d %{sysconf_dir} ]; then
1281 if [ ! -f .rpm.sed ]; then
1283 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1284 echo "# match between configuration files" >> .rpm.sed
1286 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1287 pass=`openssl rand -base64 33`
1288 echo "s@${string}@${pass}@g" >> .rpm.sed
1292 if [ "$host" = "" ]; then
1295 for file in *.conf; do
1296 sed -f .rpm.sed $file > $file.new
1297 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1305 %{service_disable} bacula-fd
1309 %defattr(-,root,root)
1312 %{_libdir}/libbaccfg*
1313 %{_libdir}/libbacfind*
1323 %if ! %{client_only}
1325 %defattr(-,root,%{daemon_group})
1326 %{script_dir}/updatedb/*
1329 # create the daemon group
1330 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1331 if [ -z "$HAVE_BACULA" ]; then
1332 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1333 echo "The group %{daemon_group} has been added to %{group_file}."
1334 echo "See the manual chapter \"Running Bacula\" for details."
1338 echo "The database update scripts were installed to %{script_dir}/updatedb"