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}
130 %{?build_fc25:%define fc25 1}
132 %{?build_fc26:%define fc26 1}
134 %{?build_fc27:%define fc27 1}
135 # RedHat Enterprise builds
137 %{?build_rhel3:%define rhel3 1}
139 %{?build_rhel4:%define rhel4 1}
140 %{?build_rhel4:%define fc3 1}
141 %{?build_el4:%define rhel4 1}
142 %{?build_el4:%define fc3 1}
144 %{?build_rhel5:%define rhel5 1}
145 %{?build_rhel5:%define fc6 1}
146 %{?build_el5:%define rhel5 1}
147 %{?build_el5:%define fc6 1}
149 %{?build_rhel6:%define rhel6 1}
150 %{?build_el6:%define rhel6 1}
152 %{?build_rhel7:%define rhel7 1}
153 %{?build_el7:%define rhel7 1}
156 %{?build_centos3:%define centos3 1}
158 %{?build_centos4:%define centos4 1}
159 %{?build_centos4:%define fc3 1}
161 %{?build_centos5:%define centos5 1}
162 %{?build_centos5:%define fc6 1}
164 %{?build_centos6:%define centos6 1}
166 %{?build_centos7:%define centos7 1}
169 %{?build_sl3:%define sl3 1}
171 %{?build_sl4:%define sl4 1}
172 %{?build_sl4:%define fc3 1}
174 %{?build_sl5:%define sl5 1}
175 %{?build_sl5:%define fc6 1}
178 %{?build_su9:%define su9 1}
180 %{?build_su10:%define su10 1}
182 %{?build_su102:%define su102 1}
184 %{?build_su103:%define su103 1}
186 %{?build_su110:%define su110 1}
188 %{?build_su111:%define su111 1}
190 %{?build_su112:%define su112 1}
192 %{?build_su113:%define su113 1}
194 %{?build_su120:%define su120 1}
196 %{?build_su131:%define su131 1}
199 %{?build_mdk:%define mdk 1}
201 %{?build_mdv:%define mdv 1}
202 %{?build_mdv:%define mdk 1}
205 %define client_only 0
206 %{?build_client_only:%define client_only 1}
208 # if the platform is using systemd
211 %if %{rhel7} || %{fc22}|| %{fc25} || %{fc26} || %{fc27} || %{centos7}
215 # depending if we use systemd or not, we use chkconfig or systemctl
217 %define service_enable systemctl enable
218 %define service_disable systemctl disable
220 %define service_enable /sbin/chkconfig --add
221 %define service_disable /sbin/chkconfig --del
224 # Setup some short cuts
226 %if %{rh7} || %{rh8} || %{rh9}
230 %if %{fc16} || %{fc17} || %{fc18} || %{fc22} || %{fc25} || %{fc26} || %{fc27}
234 %if %{su9} || %{su10} || %{su102} || %{su103} || %{su110} || %{su111} || %{su112} || %{su120} || %{su131}
238 %if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{rhel7} || %{centos3} || %{centos4} || %{centos5} || %{centos6} || %{centos7}
242 %if %{sl3} || %{sl4} || %{sl5}
247 # test for a platform definition
248 %if !%{rhat} && !%{rhel} && !%{fed} && !%{suse} && !%{mdk} && !%{scil}
249 %{error: You must specify a platform. Please examine the spec file.}
253 # distribution-specific directory for logwatch
254 %if %{rh7} || %{rh8} || %{rh9}
255 %define logwatch_dir /etc/log.d
257 %define logwatch_dir /etc/logwatch
261 # set for database support desired or define the build_xxx on the command line
263 %{?build_mysql:%define mysql 1}
265 %{?build_sqlite:%define sqlite 1}
267 %{?build_postgresql:%define postgresql 1}
269 # test for a database definition
270 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
271 %{error: You must specify database support, by passing one of the following to rpmbuild:}
272 %{error: --define build_postgresql=1}
273 %{error: --define build_sqlite=1}
274 %{error: --define build_mysql=1}
279 %define db_backend mysql
282 %define db_backend sqlite3
285 %define db_backend postgresql
290 %{?build_x86_64:%define x86_64 1}
292 # check what distribution we are
293 %if %{fc16} || %{fc17} || %{fc18} || %{fc22} || %{fc25} || %{fc26} || %{fc27}
294 %define _dist %(grep Fedora /etc/redhat-release)
296 %if %{centos7} || %{centos6}
297 %define _dist %(grep CentOS /etc/redhat-release)
299 %if %{centos5} || %{centos4} || %{centos3}
300 %define _dist %(grep CentOS /etc/redhat-release)
302 %if %{sl5} ||%{sl4} || %{sl3}
303 %define _dist %(grep 'Scientific Linux' /etc/redhat-release)
306 %define _dist %(grep -i SuSE /etc/SuSE-release)
311 # should we enable tcp wrappers support
312 %define tcpwrappers 1
313 %{?build_tcpwrappers:%define tcpwrappers 1}
315 # do we need to patch for old postgresql version?
317 %{?build_old_pgsql:%define old_pgsql 1}
319 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
321 %define manpage_ext bz2
323 %define manpage_ext gz
326 # for client only build
333 BuildRequires: gcc, gcc-c++, make, autoconf
334 BuildRequires: glibc, glibc-devel
335 BuildRequires: ncurses-devel, readline-devel
336 BuildRequires: libstdc++-devel, zlib-devel
337 BuildRequires: openssl-devel
338 BuildRequires: libacl-devel
339 BuildRequires: pkgconfig
340 BuildRequires: bzip2-devel
342 BuildRequires: libxml2-devel
346 BuildRequires: libxml-devel
349 BuildRequires: libstdc++-static-devel
350 BuildRequires: glibc-static-devel
353 %if %{mysql} && ! %{suse}
354 BuildRequires: mysql-devel
358 BuildRequires: %{postgres_devel_package} >= %{postgres_version}
373 # ===========================================================
374 # Generate mysql, sqlite, or postgresql rpm
375 # ===========================================================
379 Provides: bacula-mysql
381 # The following provides is to work around an
382 # auto generated requires from src/scripts/logwatch/applybaculadate
383 # this is a gross kludge to keep it from being a requirement
385 Provides: perl(Logwatch)
389 Provides: bacula-postgresql
392 Summary: Bacula - The Network Backup Solution
393 Group: System Environment/Daemons
394 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
395 Provides: libbaccats-%{version}.so()(64bit)
396 Conflicts: bacula-client
398 Requires: ncurses, libstdc++, zlib, openssl
399 Requires: glibc, readline, %{name}-libs
410 Requires: postgresql >= 7
420 %description postgresql
434 This build requires MySQL to be installed separately as the catalog database.
437 This build requires PostgreSQL to be installed separately as the catalog database.
440 This build incorporates sqlite3 as the catalog database, statically compiled.
443 This build includes tcp-wrappers support.
449 # ===========================================================
450 # Client -- bacula-fd rpm
451 # ===========================================================
454 Summary: Bacula - The Network Backup Solution
455 Group: System Environment/Daemons
457 Conflicts: bacula-mysql
458 Conflicts: bacula-sqlite
459 Conflicts: bacula-postgresql
463 Provides: %{product}-libs
466 Requires: libstdc++, zlib, openssl, bzip2-libs
467 Requires: glibc, readline, %{name}-libs
480 This is the File daemon (Client) only package. It includes the command line
483 This build includes tcp-wrappers support.
487 # ===========================================================
488 # Generate updatedb rpm
489 # ===========================================================
494 Summary: Bacula - The Network Backup Solution
495 Group: System Environment/Daemons
497 %description updatedb
508 This package installs scripts for updating older versions of the bacula
513 # ===========================================================
515 # ===========================================================
519 Summary: Bacula - The Network Backup Solution
520 Group: System Environment/Daemons
533 This package installs the shared libraries used by many bacula programs.
535 # Must explicitly enable debug pkg on SuSE
536 # but not in opensuse_bs
537 #%if %{suse} && ! 0%{?opensuse_bs}
542 %setup -T -b 0 -n depkgs
543 %setup -T -b 1 -n %{product}-%{version}
544 %setup -T -D -b 2 -n %{product}-%{version}
551 #export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap -L/usr/lib64/termcap"
554 # You can use a cache for depkgs
555 # tar xfz depkgs*gz -C ~/
557 # touch %{depkgs_version} # depkgs version
559 if [ -f $HOME/depkgs/%{depkgs_version} ]; then
561 ln -s $HOME/depkgs %{depkgs}
573 export LDFLAGS="${LDFLAGS} -L${PWD}/lzo/lib"
574 export CPPFLAGS="${CPPFLAGS} -I${PWD}/lzo/include"
577 # hostname is the build hostname, so use XXX_HOSTNAME_XXX for Address parameter
578 sed -i s/hostname/basename/ src/console/bconsole.conf.in src/dird/bacula-dir.conf.in src/qt-console/bat.conf.in
581 # patches for the bundled sqlite scripts
582 sed -i s:.SQLITE_BINDIR.:/opt/bacula/sqlite: src/cats/*_sqlite3_*.in
584 # patch the bacula-dir init script to remove sqlite service
586 sed -i 's/network .DB_TYPE./network/' platforms/suse/bacula-dir.in
590 # 64 bit lib location hacks
591 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
592 # reported to be fixed to properly detect lib locations.
594 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
596 %if %{mysql} && %{x86_64}
597 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
600 export BACULA="Bacula"
602 # Main Bacula configuration
604 --prefix=%{_prefix} \
605 --sbindir=%{_sbindir} \
606 --sysconfdir=%{sysconf_dir} \
607 --mandir=%{_mandir} \
608 --with-scriptdir=%{script_dir} \
609 --with-working-dir=%{working_dir} \
610 --with-plugindir=%{plugin_dir} \
611 --with-logdir=%{log_dir} \
612 --with-pid-dir=%{pid_dir} \
613 --with-subsys-dir=%{_subsysdir} \
614 --enable-smartalloc \
625 --enable-client-only \
627 %if %{rh7} || %{rh8} || %{rh9}
628 --disable-batch-insert \
631 --with-systemd=%{systemd_dir} \
633 --with-tcp-wrappers \
634 --with-dir-user=%{director_daemon_user} \
635 --with-dir-group=%{daemon_group} \
636 --with-sd-user=%{storage_daemon_user} \
637 --with-sd-group=%{storage_daemon_group} \
638 --with-fd-user=%{file_daemon_user} \
639 --with-fd-group=%{daemon_group} \
640 --with-basename="XXX_HOSTNAME_XXX" \
641 --with-hostname="XXX_HOSTNAME_XXX" \
642 --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
643 --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
644 --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
645 --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
646 --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
647 --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
655 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
656 mkdir -p $RPM_BUILD_ROOT/etc/init.d
657 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
658 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles
659 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/services
660 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services
661 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared
662 mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb
664 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
665 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
668 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
671 make DESTDIR=$RPM_BUILD_ROOT install
674 make DESTDIR=$RPM_BUILD_ROOT -C ../bacula-%{_version}/src/tools/ install-bsnapshot
677 make DESTDIR=$RPM_BUILD_ROOT -C platforms/systemd install-dir install-service
680 # Remove docs for programs that are depreciated
681 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext}
682 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext}
683 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
684 rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
686 # Remove docs for programs we do not distribute
687 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext}
689 # Remove storage-ctl packaged in shstore rpm
690 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
691 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
693 # fixme - make installs the mysql scripts for sqlite build
695 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
696 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
697 rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges
700 # fixme - make installs the mysql scripts for postgresql build
702 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
703 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
707 #rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats.so
708 #rm -f $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
709 rm -f $RPM_BUILD_ROOT%{_libdir}/libbacsd.la
711 # install the init scripts
714 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
715 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
716 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
719 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
720 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
721 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
723 %if ! %{suse} && ! %{mdk}
724 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
725 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
726 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
727 %endif # !suse && !mdk
728 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
729 %endif # ! usesystemd
732 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
733 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
734 rm -f $RPM_BUILD_ROOT%{script_dir}/breload
735 rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl
736 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-dir.service
737 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-sd.service
742 cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3
743 cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h
744 cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a
748 # install the logrotate file
749 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
751 # install the updatedb scripts
752 cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/
754 # install specific scripts
757 # install the sample-query.sql file
758 cp -p examples/sample-query.sql $RPM_BUILD_ROOT%{script_dir}/sample-query.sql
760 # install the logwatch scripts
761 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
762 cp -p scripts/logwatch/applybaculadate $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
763 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
764 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
765 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
766 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
767 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
768 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
771 # now clean up permissions that are left broken by the install
772 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
774 # fix me - building enable-client-only installs files not included in bacula-client package
776 # Program docs not installed on client
777 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext}
778 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext}
779 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext}
780 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext}
781 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext}
782 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext}
783 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext}
784 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext}
785 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bregex.8.%{manpage_ext}
786 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bwild.8.%{manpage_ext}
787 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext}
788 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
789 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
790 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
791 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
792 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
793 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
794 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
795 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
796 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
797 rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb
798 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
799 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
800 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
805 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
806 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
810 # MySQL specific files
812 %defattr(-, root, root)
813 %attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database
814 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database
815 %attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables
816 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables
817 %attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables
818 %attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
819 %{_libdir}/libbaccats*
820 %{_libdir}/libbacsql*
821 %{_libdir}/libbacsd*.so
827 %defattr(-,root,root)
828 %attr(755, root, %{daemon_group}) %{script_dir}/create_postgresql_database
829 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_database
830 %attr(755, root, %{daemon_group}) %{script_dir}/make_postgresql_tables
831 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables
832 %attr(755, root, %{daemon_group}) %{script_dir}/update_postgresql_tables
833 %attr(755, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
834 %{_libdir}/libbaccats*
835 %{_libdir}/libbacsql*
836 %{_libdir}/libbacsd*.so
839 # The rest is DB backend independent
842 %attr(-, root, %{daemon_group}) %dir %{script_dir}
843 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
844 %attr(-, root, %{daemon_group}) %{script_dir}/bacula
845 %attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
846 %attr(-, root, %{daemon_group}) %{script_dir}/bconsole
847 %attr(755, root, %{daemon_group}) %{script_dir}/create_bacula_database
848 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_database
849 %attr(755, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges
850 %attr(755, root, %{daemon_group}) %{script_dir}/make_bacula_tables
851 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_tables
852 %attr(755, root, %{daemon_group}) %{script_dir}/update_bacula_tables
853 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup
854 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup.pl
855 %attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup
856 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
857 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
858 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
859 %attr(-, root, %{daemon_group}) %{script_dir}/disk-changer
860 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
861 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
862 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
863 %attr(-, root, %{daemon_group}) %{script_dir}/tapealert
864 %attr(-, root, %{daemon_group}) %{script_dir}/baculabackupreport
866 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
867 %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
868 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
869 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf
872 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-dir.service
873 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
874 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-sd.service
876 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
877 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
878 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
881 /etc/logrotate.d/bacula
882 %{logwatch_dir}/scripts/services/bacula
883 %{logwatch_dir}/scripts/shared/applybaculadate
884 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf
885 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
886 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf
887 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
888 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
889 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
890 %attr(-, root, %{daemon_group}) %{script_dir}/sample-query.sql
891 %attr(-, root, %{daemon_group}) %{script_dir}/query.sql
893 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
895 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-dir
896 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-sd
897 %attr(-, root, %{daemon_group}) %{_sbindir}/btraceback
898 %attr(-, root, %{daemon_group}) %{_sbindir}/bconsole
899 %attr(-, root, %{daemon_group}) %{_sbindir}/bbconsjson
900 %attr(-, root, %{daemon_group}) %{_sbindir}/bsmtp
901 %attr(-, root, %{daemon_group}) %{_sbindir}/bscan
902 %attr(-, root, %{daemon_group}) %{_sbindir}/btape
903 %attr(-, root, %{daemon_group}) %{_sbindir}/bdirjson
904 %attr(-, root, %{daemon_group}) %{_sbindir}/bsdjson
906 %attr(755, root, root) %{_sbindir}/bsnapshot
907 %attr(755, root, root) %{_sbindir}/bfdjson
909 %{_sbindir}/bacula-fd
916 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
917 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
918 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
919 %{_mandir}/man8/bacula.8.%{manpage_ext}
920 %{_mandir}/man8/bconsole.8.%{manpage_ext}
921 %{_mandir}/man8/bcopy.8.%{manpage_ext}
922 %{_mandir}/man8/bextract.8.%{manpage_ext}
923 %{_mandir}/man8/bls.8.%{manpage_ext}
924 %{_mandir}/man8/bscan.8.%{manpage_ext}
925 %{_mandir}/man8/btape.8.%{manpage_ext}
926 %{_mandir}/man8/btraceback.8.%{manpage_ext}
927 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
928 %{_mandir}/man8/bregex.8.%{manpage_ext}
929 %{_mandir}/man8/bwild.8.%{manpage_ext}
930 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
931 %{_mandir}/man1/bat.1.%{manpage_ext}
934 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-tray-monitor.desktop
936 %doc ../Release_Notes-%{version}-%{release}.txt
942 # test for bacula database older than version 13
943 # note: this ASSUMES no password has been set for bacula database
944 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
949 # are we upgrading from sqlite to sqlite3?
950 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
951 echo "This version of bacula-sqlite involves an upgrade to sqlite3."
952 echo "Your catalog database file is not compatible with sqlite3, thus"
953 echo "you will need to dump the data, delete the old file, and re-run"
954 echo "this rpm upgrade."
956 echo "Backing up your current database..."
957 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql
958 mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old
959 echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your"
960 echo "catalog file has been renamed %{working_dir}/bacula.db.old."
962 echo "Please re-run this rpm package upgrade."
963 echo "After the upgrade is complete, restore your catalog"
964 echo "with the following commands:"
965 echo "%{script_dir}/drop_sqlite3_tables"
966 echo "cd %{working_dir}"
967 echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql"
968 echo "chown bacula.bacula bacula.db"
971 # test for bacula database older than version 12 and sqlite3
972 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then
973 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
978 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
982 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "12" ]; then
983 echo "This bacula upgrade will update a bacula database from version 12 to 1014."
984 echo "You appear to be running database version $DB_VER. You must first update"
985 echo "your database to version 12 and then install this upgrade. The alternative"
986 echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current"
987 echo "catalog information, then do the upgrade. Information on updating a"
988 echo "database older than version 12 can be found in the release notes."
998 # check for and copy %{sysconf_dir}/console.conf to bconsole.conf
999 if [ -s %{sysconf_dir}/console.conf ];then
1000 cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf
1003 # create the daemon users and groups
1004 # first create the groups if they don't exist
1005 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1006 if [ -z "$HAVE_BACULA" ]; then
1007 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1008 echo "The group %{daemon_group} has been added to %{group_file}."
1009 echo "See the manual chapter \"Running Bacula\" for details."
1011 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
1012 if [ -z "$HAVE_BACULA" ]; then
1013 %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
1014 echo "The group %{storage_daemon_group} has been added to %{group_file}."
1015 echo "See the manual chapter \"Running Bacula\" for details."
1017 # now create the users if they do not exist
1018 # we do not use the -g option allowing the primary group to be set to system default
1019 # this will be a unique group on redhat type systems or the group users on some systems
1020 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1021 if [ -z "$HAVE_BACULA" ]; then
1022 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1023 echo "The user %{storage_daemon_user} has been added to %{user_file}."
1024 echo "See the manual chapter \"Running Bacula\" for details."
1026 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1027 if [ -z "$HAVE_BACULA" ]; then
1028 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1029 echo "The user %{director_daemon_user} has been added to %{user_file}."
1030 echo "See the manual chapter \"Running Bacula\" for details."
1032 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1033 if [ -z "$HAVE_BACULA" ]; then
1034 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1035 echo "The user %{file_daemon_user} has been added to %{user_file}."
1036 echo "See the manual chapter \"Running Bacula\" for details."
1038 # now we add the supplementary groups, this is ok to call even if the users already exist
1039 # we only do this if the user is NOT root
1040 IS_ROOT=%{director_daemon_user}
1041 if [ "$IS_ROOT" != "root" ]; then
1042 %{usermod} -G %{daemon_group} %{director_daemon_user}
1044 IS_ROOT=%{storage_daemon_user}
1045 if [ "$IS_ROOT" != "root" ]; then
1046 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1048 IS_ROOT=%{file_daemon_user}
1049 if [ "$IS_ROOT" != "root" ]; then
1050 %{usermod} -G %{daemon_group} %{file_daemon_user}
1063 %if ! %{client_only}
1065 if [ "$1" -ge 1 ] ; then
1066 %if %{suse} && %{mysql}
1067 %{service_enable} mysql
1069 %if %{suse} && %{postgresql}
1070 %{service_enable} postgresql
1072 %{service_enable} bacula-dir
1073 %{service_enable} bacula-fd
1074 %{service_enable} bacula-sd
1078 if [ -d %{sysconf_dir} ]; then
1080 if [ ! -f .rpm.sed ]; then
1082 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1083 echo "# match between configuration files" >> .rpm.sed
1085 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
1086 pass=`openssl rand -base64 33`
1087 echo "s@${string}@${pass}@g" >> .rpm.sed
1091 if [ "$host" = "" ]; then
1094 for file in *.conf; do
1095 sed -f .rpm.sed $file > $file.new
1096 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1104 #check, if mysql can be called successfully at all
1105 if mysql 2>/dev/null bacula -e 'select * from Version;' ; then
1107 # test for an existing database
1108 # note: this ASSUMES no password has been set for bacula database
1109 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1111 # grant privileges and create tables if they do not exist
1112 if [ -z "$DB_VER" ]; then
1113 echo "Hmm, it doesn't look like you have an existing database."
1114 echo "Granting privileges for MySQL user bacula..."
1115 %{script_dir}/grant_mysql_privileges
1116 echo "Creating MySQL bacula database..."
1117 %{script_dir}/create_mysql_database
1118 echo "Creating bacula tables..."
1119 %{script_dir}/make_mysql_tables
1121 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1122 echo "This release requires an upgrade to your bacula database."
1123 echo "Backing up your current database..."
1124 mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1125 echo "Upgrading bacula database ..."
1126 %{script_dir}/update_mysql_tables
1127 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1134 # test for an existing database
1135 if [ -s %{working_dir}/bacula.db ]; then
1136 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1137 # check to see if we need to upgrade a 3.x database
1138 if [ "$DB_VER" -le "13" ] && [ "$DB_VER" -ge "12" ]; then
1139 echo "This release requires an upgrade to your bacula database."
1140 echo "Backing up your current database..."
1141 echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1142 echo "Upgrading bacula database ..."
1143 %{script_dir}/update_sqlite3_tables
1144 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1147 # create the database and tables
1148 echo "Hmm, doesn't look like you have an existing database."
1149 echo "Creating SQLite database..."
1150 %{script_dir}/create_sqlite3_database
1151 echo "Creating the SQLite tables..."
1152 %{script_dir}/make_sqlite3_tables
1153 chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db
1158 # check if psql can be called successfully at all
1159 if echo 'select * from Version;' | su - postgres -c 'psql bacula' 2>/dev/null; then
1161 # test for an existing database
1162 # note: this ASSUMES no password has been set for bacula database
1163 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1165 # grant privileges and create tables if they do not exist
1166 if [ -z "$DB_VER" ]; then
1167 echo "Hmm, doesn't look like you have an existing database."
1168 echo "Creating PostgreSQL bacula database..."
1169 su - postgres -c %{script_dir}/create_postgresql_database
1170 echo "Creating bacula tables..."
1171 su - postgres -c %{script_dir}/make_postgresql_tables
1172 echo "Granting privileges for PostgreSQL user bacula..."
1173 su - postgres -c %{script_dir}/grant_postgresql_privileges
1175 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1176 echo "This release requires an upgrade to your bacula database."
1177 echo "Backing up your current database..."
1178 su - postgres -c 'pg_dump bacula' | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1179 echo "Upgrading bacula database ..."
1180 su - postgres -c %{script_dir}/update_postgresql_tables
1181 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1182 echo "Granting privileges for PostgreSQL user bacula..."
1183 su - postgres -c %{script_dir}/grant_postgresql_privileges
1189 %if ! %{client_only}
1190 if [ -d %{sysconf_dir} ]; then
1192 if [ ! -f .rpm.sed ]; then
1194 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1195 echo "# match between configuration files" >> .rpm.sed
1197 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
1198 pass=`openssl rand -base64 33`
1199 echo "s@${string}@${pass}@g" >> .rpm.sed
1203 if [ "$host" = "" ]; then
1206 for file in *.conf; do
1207 sed -f .rpm.sed $file > $file.new
1208 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1225 %if ! %{client_only}
1228 %{service_disable} bacula-dir
1229 %{service_disable} bacula-fd
1230 %{service_disable} bacula-sd
1235 %defattr(-,root,root)
1236 %attr(-, root, %{daemon_group}) %dir %{script_dir}
1237 %attr(-, root, %{daemon_group}) %dir %{plugin_dir}
1238 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
1240 # SD/DIR might write here
1241 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir}
1244 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
1246 %{script_dir}/bacula-ctl-fd
1247 /etc/init.d/bacula-fd
1250 /etc/logrotate.d/bacula
1252 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1253 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1254 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1256 %{_sbindir}/bacula-fd
1257 %{_sbindir}/btraceback
1258 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1259 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
1260 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
1261 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
1262 %{_sbindir}/bconsole
1263 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1264 %{_mandir}/man8/bacula.8.%{manpage_ext}
1265 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1266 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1267 %{_mandir}/man1/bat.1.%{manpage_ext}
1268 %_prefix/share/doc/*
1271 # create the daemon group and user
1272 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1273 if [ -z "$HAVE_BACULA" ]; then
1274 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1275 echo "The group %{daemon_group} has been added to %{group_file}."
1276 echo "See the manual chapter \"Running Bacula\" for details."
1278 # we do not use the -g option allowing the primary group to be set to system default
1279 # this will be a unique group on redhat type systems or the group users on some systems
1280 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1281 if [ -z "$HAVE_BACULA" ]; then
1282 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1283 echo "The user %{file_daemon_user} has been added to %{user_file}."
1284 echo "See the manual chapter \"Running Bacula\" for details."
1286 # now we add the supplementary group, this is ok to call even if the user already exists
1287 # we only do this if the user is NOT root
1288 IS_ROOT=%{file_daemon_user}
1289 if [ "$IS_ROOT" != "root" ]; then
1290 %{usermod} -G %{daemon_group} %{file_daemon_user}
1295 if [ "$1" -ge 1 ] ; then
1296 %{service_enable} bacula-fd
1299 if [ -d %{sysconf_dir} ]; then
1301 if [ ! -f .rpm.sed ]; then
1303 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1304 echo "# match between configuration files" >> .rpm.sed
1306 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
1307 pass=`openssl rand -base64 33`
1308 echo "s@${string}@${pass}@g" >> .rpm.sed
1312 if [ "$host" = "" ]; then
1315 for file in *.conf; do
1316 sed -f .rpm.sed $file > $file.new
1317 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1325 %{service_disable} bacula-fd
1329 %defattr(-,root,root)
1332 %{_libdir}/libbaccfg*
1333 %{_libdir}/libbacfind*
1343 %if ! %{client_only}
1345 %defattr(-,root,%{daemon_group})
1346 %{script_dir}/updatedb/*
1349 # create the daemon group
1350 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1351 if [ -z "$HAVE_BACULA" ]; then
1352 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1353 echo "The group %{daemon_group} has been added to %{group_file}."
1354 echo "See the manual chapter \"Running Bacula\" for details."
1358 echo "The database update scripts were installed to %{script_dir}/updatedb"