4 # Platform Build Configuration
6 # basic defines for every build
7 %define _release @RELEASE@
8 %define _version @VERSION@
10 %define _packager Kern Sibbald <kern@sibbald.com>
11 %define depkgs_version @DEPKGS_VERSION@
13 # Don't strip binaries
14 %define __os_install_post %{nil}
15 %define __debug_install_post %{nil}
16 %define debug_package %{nil}
18 %define postgres_version 8
20 %{?build_rhel5:%define pgre84 1}
21 %{?build_el5:%define pgre84 1}
23 %define postgres_package postgresql84
24 %define postgres_server_package postgresql84-server
25 %define postgres_devel_package postgresql84-devel
27 %define postgres_package postgresql
28 %define postgres_server_package postgresql-server
29 %define postgres_devel_package postgresql-devel
33 %{?single_dir_install:%define single_dir 1}
35 # Installation Directory locations
36 %define _prefix /opt/bacula
37 %define _sbindir /opt/bacula/bin
38 %define _bindir /opt/bacula/bin
39 %define _subsysdir /opt/bacula/working
40 %define sqlite_bindir /opt/bacula/sqlite
41 %define _mandir /usr/share/man
42 %define docs_dir /opt/bacula/docs
43 %define archive_dir /opt/bacula/archive
44 %define sysconf_dir /opt/bacula/etc
45 %define script_dir /opt/bacula/scripts
46 %define working_dir /opt/bacula/working
47 %define pid_dir /opt/bacula/working
48 %define plugin_dir /opt/bacula/plugins
49 %define lib_dir /opt/bacula/lib
50 %define log_dir /opt/bacula/log
51 %define systemd_dir /lib/systemd/system
53 # Daemon user:group Don't change them unless you know what you are doing
54 %define director_daemon_user bacula
55 %define storage_daemon_user bacula
56 %define file_daemon_user root
57 %define daemon_group bacula
58 # group that has write access to tape devices, usually disk on Linux
59 %define storage_daemon_group disk
61 %define depkgs ../depkgs
63 # problems with mandriva build:
64 # nothing provides libbonobo2_0-devel, nothing provides libbonoboui2_0-devel
66 #--------------------------------------------------------------------------
67 # it should not be necessary to change anything below here for a release
68 # except for patch macros in the setup section
69 #--------------------------------------------------------------------------
71 %define base_package_name %{product}
73 %{?contrib_packager:%define _packager %{contrib_packager}}
75 Summary: Bacula - The Network Backup Solution
76 Name: %{base_package_name}
79 Group: System Environment/Daemons
81 BuildRoot: %{_tmppath}/%{name}-root
82 URL: http://www.bacula.org/
83 Vendor: The Bacula Team
84 Packager: %{_packager}
87 # opensuse build service changes the release itself
88 # what happens if the release is not 1? DSB
89 Source0: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
90 Source1: http://www.prdownloads.sourceforge.net/bacula/%{product}-%{version}.tar.gz
92 Source2: Release_Notes-%{version}-1.tar.gz
94 Source2: Release_Notes-%{version}-%{release}.tar.gz
97 # define the basic package description
98 %define blurb Bacula - The Leading Open Source Backup Solution.
99 %define blurb2 Bacula is a set of computer programs that permit you (or the system
100 %define blurb3 administrator) to manage backup, recovery, and verification of computer
101 %define blurb4 data across a network of computers of different kinds. In technical terms,
102 %define blurb5 it is a network client/server based backup program. Bacula is relatively
103 %define blurb6 easy to use and efficient, while offering many advanced storage management
104 %define blurb7 features that make it easy to find and recover lost or damaged files.
105 %define blurb8 Bacula source code has been released under the AGPL version 3 license.
107 %define user_file /etc/passwd
108 %define group_file /etc/group
111 %define useradd /usr/sbin/useradd
112 %define groupadd /usr/sbin/groupadd
113 %define usermod /usr/sbin/usermod
115 # platform defines - set one below or define the build_xxx on the command line
118 %{?build_rh7:%define rh7 1}
120 %{?build_rh8:%define rh8 1}
122 %{?build_rh9:%define rh9 1}
125 %{?build_fc16:%define fc16 1}
127 %{?build_fc17:%define fc17 1}
129 %{?build_fc18:%define fc18 1}
131 %{?build_fc22:%define fc22 1}
132 # Whitebox Enterprise build
134 %{?build_wb3:%define wb3 1}
135 # RedHat Enterprise builds
137 %{?build_rhel3:%define rhel3 1}
138 %{?build_rhel3:%define wb3 1}
140 %{?build_rhel4:%define rhel4 1}
141 %{?build_rhel4:%define fc3 1}
142 %{?build_el4:%define rhel4 1}
143 %{?build_el4:%define fc3 1}
145 %{?build_rhel5:%define rhel5 1}
146 %{?build_rhel5:%define fc6 1}
147 %{?build_el5:%define rhel5 1}
148 %{?build_el5:%define fc6 1}
150 %{?build_rhel6:%define rhel6 1}
151 %{?build_el6:%define rhel6 1}
153 %{?build_rhel7:%define rhel7 1}
154 %{?build_el7:%define rhel7 1}
157 %{?build_centos3:%define centos3 1}
158 %{?build_centos3:%define wb3 1}
160 %{?build_centos4:%define centos4 1}
161 %{?build_centos4:%define fc3 1}
163 %{?build_centos5:%define centos5 1}
164 %{?build_centos5:%define fc6 1}
166 %{?build_centos6:%define centos6 1}
168 %{?build_centos7:%define centos7 1}
171 %{?build_sl3:%define sl3 1}
172 %{?build_sl3:%define wb3 1}
174 %{?build_sl4:%define sl4 1}
175 %{?build_sl4:%define fc3 1}
177 %{?build_sl5:%define sl5 1}
178 %{?build_sl5:%define fc6 1}
181 %{?build_su9:%define su9 1}
183 %{?build_su10:%define su10 1}
185 %{?build_su102:%define su102 1}
187 %{?build_su103:%define su103 1}
189 %{?build_su110:%define su110 1}
191 %{?build_su111:%define su111 1}
193 %{?build_su112:%define su112 1}
195 %{?build_su113:%define su113 1}
197 %{?build_su120:%define su120 1}
199 %{?build_su131:%define su131 1}
202 %{?build_mdk:%define mdk 1}
204 %{?build_mdv:%define mdv 1}
205 %{?build_mdv:%define mdk 1}
208 %define client_only 0
209 %{?build_client_only:%define client_only 1}
211 # if the platform is using systemd
214 %if %{rhel7} || %{fc22}
218 # depending if we use systemd or not, we use chkconfig or systemctl
220 %define service_enable systemctl enable
221 %define service_disable systemctl disable
223 %define service_enable /sbin/chkconfig --add
224 %define service_disable /sbin/chkconfig --del
227 # Setup some short cuts
229 %if %{rh7} || %{rh8} || %{rh9}
233 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
237 %if %{su9} || %{su10} || %{su102} || %{su103} || %{su110} || %{su111} || %{su112} || %{su120} || %{su131}
241 %if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{rhel7} || %{centos3} || %{centos4} || %{centos5} || %{centos6} || %{centos7}
245 %if %{sl3} || %{sl4} || %{sl5}
250 # test for a platform definition
251 %if !%{rhat} && !%{rhel} && !%{fed} && !%{wb3} && !%{suse} && !%{mdk} && !%{scil}
252 %{error: You must specify a platform. Please examine the spec file.}
256 # distribution-specific directory for logwatch
257 %if %{wb3} || %{rh7} || %{rh8} || %{rh9}
258 %define logwatch_dir /etc/log.d
260 %define logwatch_dir /etc/logwatch
264 # set for database support desired or define the build_xxx on the command line
266 %{?build_mysql:%define mysql 1}
268 %{?build_sqlite:%define sqlite 1}
270 %{?build_postgresql:%define postgresql 1}
272 # test for a database definition
273 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
274 %{error: You must specify database support, by passing one of the following to rpmbuild:}
275 %{error: --define build_postgresql=1}
276 %{error: --define build_sqlite=1}
277 %{error: --define build_mysql=1}
282 %define db_backend mysql
285 %define db_backend sqlite3
288 %define db_backend postgresql
293 %{?build_x86_64:%define x86_64 1}
295 # check what distribution we are
296 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
297 %define _dist %(grep Fedora /etc/redhat-release)
299 %if %{centos7} || %{centos6}
300 %define _dist %(grep CentOS /etc/redhat-release)
302 %if %{centos5} || %{centos4} || %{centos3}
303 %define _dist %(grep CentOS /etc/redhat-release)
305 %if %{sl5} ||%{sl4} || %{sl3}
306 %define _dist %(grep 'Scientific Linux' /etc/redhat-release)
308 %if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3}
309 %define _dist %(grep White /etc/whitebox-release)
312 %define _dist %(grep -i SuSE /etc/SuSE-release)
315 %define _dist %(grep Mand /etc/mandrake-release)
317 %if %{rhat} || %{rhel}
318 %define _dist %(grep Red /etc/redhat-release)
320 %{?DISTNAME:%define _dist %{DISTNAME}}
322 # only set Disribution if not in opensuse build service, as it sets it itself
323 %if ! 0%{?opensuse_bs}
324 Distribution: %{_dist}
327 %if 0%{?opensuse_bs} && %{mysql} && %{suse}
328 # needed in opensuse_bs, as rpm is installed during build process
329 BuildRequires: libmysqlclient-devel
330 BuildRequires: mysql-client
333 %if 0%{?opensuse_bs} && %{suse} && %{postgresql}
334 BuildRequires: %{postgres_package}
335 BuildRequires: %{postgres_server_package}
337 BuildRequires: openssl
339 %if 0%{?opensuse_bs} && %{suse}
340 BuildRequires: pwdutils
341 BuildRequires: sysconfig
344 # should we turn on python support
346 %{?build_python:%define python 0}
348 # should we enable tcp wrappers support
349 %define tcpwrappers 1
350 %{?build_tcpwrappers:%define tcpwrappers 1}
352 # do we need to patch for old postgresql version?
354 %{?build_old_pgsql:%define old_pgsql 1}
356 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
358 %define manpage_ext bz2
360 %define manpage_ext gz
363 # for client only build
370 BuildRequires: gcc, gcc-c++, make, autoconf
371 BuildRequires: glibc, glibc-devel
372 BuildRequires: ncurses-devel, readline-devel
373 BuildRequires: libstdc++-devel, zlib-devel
374 BuildRequires: openssl-devel
375 BuildRequires: libacl-devel
376 BuildRequires: pkgconfig
377 BuildRequires: bzip2-devel
379 BuildRequires: libxml2-devel
382 BuildRequires: python, python-devel
383 %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
387 BuildRequires: libxml-devel
390 BuildRequires: libstdc++-static-devel
391 BuildRequires: glibc-static-devel
394 %if %{mysql} && ! %{suse}
395 BuildRequires: mysql-devel
398 %if %{postgresql} && %{wb3}
399 BuildRequires: rh-postgresql-devel >= %{postgres_version}
402 %if %{postgresql} && ! %{wb3}
403 BuildRequires: %{postgres_devel_package} >= %{postgres_version}
427 Summary: Bacula - The Network Backup Solution
428 Group: System Environment/Daemons
429 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
430 Conflicts: bacula-client
432 Requires: ncurses, libstdc++, zlib, openssl
433 Requires: glibc, readline, %{name}-libs
443 %if %{postgresql} && %{wb3}
444 Requires: rh-postgresql >= 7
446 %if %{postgresql} && ! %{wb3}
447 Requires: postgresql >= 7
457 %description postgresql
461 Requires: python >= %{pyver}
475 This build requires MySQL to be installed separately as the catalog database.
478 This build requires PostgreSQL to be installed separately as the catalog database.
481 This build incorporates sqlite3 as the catalog database, statically compiled.
484 This build includes python scripting support.
487 This build includes tcp-wrappers support.
491 Summary: Bacula - The Network Backup Solution
492 Group: System Environment/Daemons
494 Conflicts: bacula-mysql
495 Conflicts: bacula-sqlite
496 Conflicts: bacula-postgresql
500 Provides: %{product}-libs
503 Requires: libstdc++, zlib, openssl, bzip2-libs
504 Requires: glibc, readline, %{name}-libs
507 Requires: python >= %{pyver}
521 This is the File daemon (Client) only package. It includes the command line
524 This build includes python scripting support.
527 This build includes tcp-wrappers support.
533 Summary: Bacula - The Network Backup Solution
534 Group: System Environment/Daemons
536 %description updatedb
547 This package installs scripts for updating older versions of the bacula
553 Summary: Bacula - The Network Backup Solution
554 Group: System Environment/Daemons
567 This package installs the shared libraries used by many bacula programs.
569 # Must explicitly enable debug pkg on SuSE
570 # but not in opensuse_bs
571 #%if %{suse} && ! 0%{?opensuse_bs}
576 %setup -T -b 0 -n depkgs
577 %setup -T -b 1 -n %{product}-%{version}
578 %setup -T -D -b 2 -n %{product}-%{version}
585 #export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap -L/usr/lib64/termcap"
588 # You can use a cache for depkgs
589 # tar xfz depkgs*gz -C ~/
591 # touch %{depkgs_version} # depkgs version
593 if [ -f $HOME/depkgs/%{depkgs_version} ]; then
595 ln -s $HOME/depkgs %{depkgs}
607 export LDFLAGS="${LDFLAGS} -L${PWD}/lzo/lib"
608 export CPPFLAGS="${CPPFLAGS} -I${PWD}/lzo/include"
611 # hostname is the build hostname, so use XXX_HOSTNAME_XXX for Address parameter
612 sed -i s/hostname/basename/ src/console/bconsole.conf.in src/dird/bacula-dir.conf.in src/qt-console/bat.conf.in
615 # patches for the bundled sqlite scripts
616 sed -i s:.SQLITE_BINDIR.:/opt/bacula/sqlite: src/cats/*_sqlite3_*.in
618 # patch the bacula-dir init script to remove sqlite service
620 sed -i 's/network .DB_TYPE./network/' platforms/suse/bacula-dir.in
624 # 64 bit lib location hacks
625 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
626 # reported to be fixed to properly detect lib locations.
628 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
630 %if %{mysql} && %{x86_64}
631 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
633 %if %{python} && %{x86_64}
634 export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}"
637 export BACULA="Bacula"
639 # Main Bacula configuration
641 --prefix=%{_prefix} \
642 --sbindir=%{_sbindir} \
643 --sysconfdir=%{sysconf_dir} \
644 --mandir=%{_mandir} \
645 --with-scriptdir=%{script_dir} \
646 --with-working-dir=%{working_dir} \
647 --with-plugindir=%{plugin_dir} \
648 --with-logdir=%{log_dir} \
649 --with-pid-dir=%{pid_dir} \
650 --with-subsys-dir=%{_subsysdir} \
651 --enable-smartalloc \
658 --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \
668 --enable-client-only \
670 %if %{rh7} || %{rh8} || %{rh9}
671 --disable-batch-insert \
674 --with-systemd=%{systemd_dir} \
676 --with-tcp-wrappers \
677 --with-dir-user=%{director_daemon_user} \
678 --with-dir-group=%{daemon_group} \
679 --with-sd-user=%{storage_daemon_user} \
680 --with-sd-group=%{storage_daemon_group} \
681 --with-fd-user=%{file_daemon_user} \
682 --with-fd-group=%{daemon_group} \
683 --with-basename="XXX_HOSTNAME_XXX" \
684 --with-hostname="XXX_HOSTNAME_XXX" \
685 --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
686 --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
687 --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
688 --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
689 --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
690 --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
698 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
699 mkdir -p $RPM_BUILD_ROOT/etc/init.d
700 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
701 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles
702 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/services
703 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services
704 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared
705 mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb
707 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
708 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
711 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
714 make DESTDIR=$RPM_BUILD_ROOT install
717 make DESTDIR=$RPM_BUILD_ROOT -C ../bacula-%{_version}/src/tools/ install-bsnapshot
720 make DESTDIR=$RPM_BUILD_ROOT -C platforms/systemd install-dir install-service
723 # Remove docs for programs that are depreciated
724 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext}
725 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext}
726 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
727 rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
729 # Remove docs for programs only included in bee
730 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext}
732 # Storage-ctl packaged in shstore rpm
733 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
734 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
736 # fixme - make installs the mysql scripts for sqlite build
738 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
739 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
740 rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges
743 # fixme - make installs the mysql scripts for postgresql build
745 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
746 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
749 # install the init scripts
752 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
753 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
754 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
757 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
758 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
759 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
761 %if ! %{suse} && ! %{mdk}
762 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
763 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
764 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
765 %endif # !suse && !mdk
766 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
767 %endif # ! usesystemd
770 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
771 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
772 rm -f $RPM_BUILD_ROOT%{script_dir}/breload
773 rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl
774 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-dir.service
775 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-sd.service
780 cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3
781 cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h
782 cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a
786 # install the logrotate file
787 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
789 # install the updatedb scripts
790 cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/
792 # install specific scripts
794 # install special upgrade script, except for sqlite3
799 # install the sample-query.sql file
800 cp -p examples/sample-query.sql $RPM_BUILD_ROOT%{script_dir}/sample-query.sql
802 # install the logwatch scripts
803 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
804 cp -p scripts/logwatch/applybaculadate $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
805 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
806 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
807 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
808 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
809 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
810 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
813 # now clean up permissions that are left broken by the install
814 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
816 # fix me - building enable-client-only installs files not included in bacula-client package
818 # Program docs not installed on client
819 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext}
820 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext}
821 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext}
822 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext}
823 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext}
824 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext}
825 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext}
826 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext}
827 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bregex.8.%{manpage_ext}
828 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bwild.8.%{manpage_ext}
829 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext}
830 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
831 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
832 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
833 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
834 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
835 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
836 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
837 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
838 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
839 rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb
840 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
841 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
842 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
847 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
849 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-1.txt
851 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
856 # MySQL specific files
858 %defattr(-, root, root)
859 %attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database
860 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database
861 %attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables
862 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables
863 %attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables
864 %attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
865 %{_libdir}/libbaccats*
866 %{_libdir}/libbacsql*
871 %defattr(-,root,root)
872 %attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database
873 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database
874 %attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges
875 %attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables
876 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables
877 %attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables
878 %{sqlite_bindir}/libsqlite3.a
879 %{sqlite_bindir}/sqlite3.h
880 %{sqlite_bindir}/sqlite3
881 %{_libdir}/libbaccats*
882 %{_libdir}/libbacsql*
889 %defattr(-,root,root)
890 %attr(755, root, %{daemon_group}) %{script_dir}/create_postgresql_database
891 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_database
892 %attr(755, root, %{daemon_group}) %{script_dir}/make_postgresql_tables
893 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables
894 %attr(755, root, %{daemon_group}) %{script_dir}/update_postgresql_tables
895 %attr(755, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
896 %{_libdir}/libbaccats*
897 %{_libdir}/libbacsql*
900 # The rest is DB backend independent
903 %attr(-, root, %{daemon_group}) %dir %{script_dir}
904 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
905 #%attr(-, %{director_daemon_user}, %{daemon_group}) %dir %{log_dir}
906 %attr(-, root, %{daemon_group}) %{script_dir}/bacula
907 %attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
908 %attr(-, root, %{daemon_group}) %{script_dir}/bconsole
909 %attr(755, root, %{daemon_group}) %{script_dir}/create_bacula_database
910 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_database
911 %attr(755, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges
912 %attr(755, root, %{daemon_group}) %{script_dir}/make_bacula_tables
913 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_tables
914 %attr(755, root, %{daemon_group}) %{script_dir}/update_bacula_tables
915 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup
916 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup.pl
917 %attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup
918 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
919 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
920 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
921 %attr(-, root, %{daemon_group}) %{script_dir}/disk-changer
922 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
923 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
924 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
925 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
926 #%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
927 #%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
928 %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
929 %attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler
930 #%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
931 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
932 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf
935 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-dir.service
936 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
937 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-sd.service
939 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
940 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
941 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
944 /etc/logrotate.d/bacula
945 %{logwatch_dir}/scripts/services/bacula
946 %{logwatch_dir}/scripts/shared/applybaculadate
947 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf
948 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
949 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf
950 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
951 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
952 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
953 %attr(-, root, %{daemon_group}) %{script_dir}/sample-query.sql
955 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
957 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-dir
958 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-sd
959 %attr(-, root, %{daemon_group}) %{_sbindir}/btraceback
960 %attr(-, root, %{daemon_group}) %{_sbindir}/bconsole
961 %attr(-, root, %{daemon_group}) %{_sbindir}/bsmtp
962 %attr(-, root, %{daemon_group}) %{_sbindir}/bscan
963 %attr(-, root, %{daemon_group}) %{_sbindir}/btape
965 %attr(755, root, root) %{_sbindir}/bsnapshot
967 %{_sbindir}/bacula-fd
974 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
975 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
976 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
977 %{_mandir}/man8/bacula.8.%{manpage_ext}
978 %{_mandir}/man8/bconsole.8.%{manpage_ext}
979 %{_mandir}/man8/bcopy.8.%{manpage_ext}
980 %{_mandir}/man8/bextract.8.%{manpage_ext}
981 %{_mandir}/man8/bls.8.%{manpage_ext}
982 %{_mandir}/man8/bscan.8.%{manpage_ext}
983 %{_mandir}/man8/btape.8.%{manpage_ext}
984 %{_mandir}/man8/btraceback.8.%{manpage_ext}
985 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
986 %{_mandir}/man8/bregex.8.%{manpage_ext}
987 %{_mandir}/man8/bwild.8.%{manpage_ext}
988 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
989 %{_mandir}/man1/bat.1.%{manpage_ext}
993 # opensuse build service changes the release itself
995 %doc ../Release_Notes-%{version}-1.txt
997 %doc ../Release_Notes-%{version}-%{release}.txt
1003 # test for bacula database older than version 13
1004 # note: this ASSUMES no password has been set for bacula database
1005 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1010 # are we upgrading from sqlite to sqlite3?
1011 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
1012 echo "This version of bacula-sqlite involves an upgrade to sqlite3."
1013 echo "Your catalog database file is not compatible with sqlite3, thus"
1014 echo "you will need to dump the data, delete the old file, and re-run"
1015 echo "this rpm upgrade."
1017 echo "Backing up your current database..."
1018 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql
1019 mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old
1020 echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your"
1021 echo "catalog file has been renamed %{working_dir}/bacula.db.old."
1023 echo "Please re-run this rpm package upgrade."
1024 echo "After the upgrade is complete, restore your catalog"
1025 echo "with the following commands:"
1026 echo "%{script_dir}/drop_sqlite3_tables"
1027 echo "cd %{working_dir}"
1028 echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql"
1029 echo "chown bacula.bacula bacula.db"
1032 # test for bacula database older than version 12 and sqlite3
1033 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then
1034 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1039 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1042 %if ! %{client_only}
1043 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "12" ]; then
1044 echo "This bacula upgrade will update a bacula database from version 12 to 1014."
1045 echo "You appear to be running database version $DB_VER. You must first update"
1046 echo "your database to version 12 and then install this upgrade. The alternative"
1047 echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current"
1048 echo "catalog information, then do the upgrade. Information on updating a"
1049 echo "database older than version 12 can be found in the release notes."
1058 %if ! %{client_only}
1059 # check for and copy %{sysconf_dir}/console.conf to bconsole.conf
1060 if [ -s %{sysconf_dir}/console.conf ];then
1061 cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf
1064 # create the daemon users and groups
1065 # first create the groups if they don't exist
1066 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1067 if [ -z "$HAVE_BACULA" ]; then
1068 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1069 echo "The group %{daemon_group} has been added to %{group_file}."
1070 echo "See the manual chapter \"Running Bacula\" for details."
1072 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
1073 if [ -z "$HAVE_BACULA" ]; then
1074 %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
1075 echo "The group %{storage_daemon_group} has been added to %{group_file}."
1076 echo "See the manual chapter \"Running Bacula\" for details."
1078 # now create the users if they do not exist
1079 # we do not use the -g option allowing the primary group to be set to system default
1080 # this will be a unique group on redhat type systems or the group users on some systems
1081 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1082 if [ -z "$HAVE_BACULA" ]; then
1083 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1084 echo "The user %{storage_daemon_user} has been added to %{user_file}."
1085 echo "See the manual chapter \"Running Bacula\" for details."
1087 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1088 if [ -z "$HAVE_BACULA" ]; then
1089 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1090 echo "The user %{director_daemon_user} has been added to %{user_file}."
1091 echo "See the manual chapter \"Running Bacula\" for details."
1093 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1094 if [ -z "$HAVE_BACULA" ]; then
1095 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1096 echo "The user %{file_daemon_user} has been added to %{user_file}."
1097 echo "See the manual chapter \"Running Bacula\" for details."
1099 # now we add the supplementary groups, this is ok to call even if the users already exist
1100 # we only do this if the user is NOT root
1101 IS_ROOT=%{director_daemon_user}
1102 if [ "$IS_ROOT" != "root" ]; then
1103 %{usermod} -G %{daemon_group} %{director_daemon_user}
1105 IS_ROOT=%{storage_daemon_user}
1106 if [ "$IS_ROOT" != "root" ]; then
1107 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1109 IS_ROOT=%{file_daemon_user}
1110 if [ "$IS_ROOT" != "root" ]; then
1111 %{usermod} -G %{daemon_group} %{file_daemon_user}
1124 %if ! %{client_only}
1126 if [ "$1" -ge 1 ] ; then
1127 %if %{suse} && %{mysql}
1128 %{service_enable} mysql
1130 %if %{suse} && %{postgresql}
1131 %{service_enable} postgresql
1133 %{service_enable} bacula-dir
1134 %{service_enable} bacula-fd
1135 %{service_enable} bacula-sd
1139 if [ -d %{sysconf_dir} ]; then
1141 if [ ! -f .rpm.sed ]; then
1143 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1144 echo "# match between configuration files" >> .rpm.sed
1146 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
1147 pass=`openssl rand -base64 33`
1148 echo "s@${string}@${pass}@g" >> .rpm.sed
1152 if [ "$host" = "" ]; then
1155 for file in *.conf; do
1156 sed -f .rpm.sed $file > $file.new
1157 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1165 #check, if mysql can be called successfully at all
1166 if mysql 2>/dev/null bacula -e 'select * from Version;' ; then
1168 # test for an existing database
1169 # note: this ASSUMES no password has been set for bacula database
1170 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1172 # grant privileges and create tables if they do not exist
1173 if [ -z "$DB_VER" ]; then
1174 echo "Hmm, it doesn't look like you have an existing database."
1175 echo "Granting privileges for MySQL user bacula..."
1176 %{script_dir}/grant_mysql_privileges
1177 echo "Creating MySQL bacula database..."
1178 %{script_dir}/create_mysql_database
1179 echo "Creating bacula tables..."
1180 %{script_dir}/make_mysql_tables
1182 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1183 echo "This release requires an upgrade to your bacula database."
1184 echo "Backing up your current database..."
1185 mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1186 echo "Upgrading bacula database ..."
1187 %{script_dir}/update_mysql_tables
1188 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1195 # test for an existing database
1196 if [ -s %{working_dir}/bacula.db ]; then
1197 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1198 # check to see if we need to upgrade a 3.x database
1199 if [ "$DB_VER" -le "13" ] && [ "$DB_VER" -ge "12" ]; then
1200 echo "This release requires an upgrade to your bacula database."
1201 echo "Backing up your current database..."
1202 echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1203 echo "Upgrading bacula database ..."
1204 %{script_dir}/update_sqlite3_tables
1205 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1208 # create the database and tables
1209 echo "Hmm, doesn't look like you have an existing database."
1210 echo "Creating SQLite database..."
1211 %{script_dir}/create_sqlite3_database
1212 echo "Creating the SQLite tables..."
1213 %{script_dir}/make_sqlite3_tables
1214 chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db
1219 # check if psql can be called successfully at all
1220 if echo 'select * from Version;' | su - postgres -c 'psql bacula' 2>/dev/null; then
1222 # test for an existing database
1223 # note: this ASSUMES no password has been set for bacula database
1224 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1226 # grant privileges and create tables if they do not exist
1227 if [ -z "$DB_VER" ]; then
1228 echo "Hmm, doesn't look like you have an existing database."
1229 echo "Creating PostgreSQL bacula database..."
1230 su - postgres -c %{script_dir}/create_postgresql_database
1231 echo "Creating bacula tables..."
1232 su - postgres -c %{script_dir}/make_postgresql_tables
1233 echo "Granting privileges for PostgreSQL user bacula..."
1234 su - postgres -c %{script_dir}/grant_postgresql_privileges
1236 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1237 echo "This release requires an upgrade to your bacula database."
1238 echo "Backing up your current database..."
1239 su - postgres -c 'pg_dump bacula' | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1240 echo "Upgrading bacula database ..."
1241 su - postgres -c %{script_dir}/update_postgresql_tables
1242 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1243 echo "Granting privileges for PostgreSQL user bacula..."
1244 su - postgres -c %{script_dir}/grant_postgresql_privileges
1250 %if ! %{client_only}
1251 if [ -d %{sysconf_dir} ]; then
1253 if [ ! -f .rpm.sed ]; then
1255 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1256 echo "# match between configuration files" >> .rpm.sed
1258 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
1259 pass=`openssl rand -base64 33`
1260 echo "s@${string}@${pass}@g" >> .rpm.sed
1264 if [ "$host" = "" ]; then
1267 for file in *.conf; do
1268 sed -f .rpm.sed $file > $file.new
1269 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1286 %if ! %{client_only}
1289 %{service_disable} bacula-dir
1290 %{service_disable} bacula-fd
1291 %{service_disable} bacula-sd
1296 %defattr(-,root,root)
1297 %attr(-, root, %{daemon_group}) %dir %{script_dir}
1298 %attr(-, root, %{daemon_group}) %dir %{plugin_dir}
1299 #%attr(-, root, %{daemon_group}) %dir %{log_dir}
1300 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
1302 # SD/DIR might write here
1303 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir}
1304 #%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
1307 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
1309 %{script_dir}/bacula-ctl-fd
1310 /etc/init.d/bacula-fd
1313 /etc/logrotate.d/bacula
1315 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1316 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1317 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1319 %{_sbindir}/bacula-fd
1320 %{_sbindir}/btraceback
1321 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1322 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
1323 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
1324 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
1325 %{_sbindir}/bconsole
1326 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1327 %{_mandir}/man8/bacula.8.%{manpage_ext}
1328 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1329 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1330 %{_mandir}/man1/bat.1.%{manpage_ext}
1331 %_prefix/share/doc/*
1334 # create the daemon group and user
1335 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1336 if [ -z "$HAVE_BACULA" ]; then
1337 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1338 echo "The group %{daemon_group} has been added to %{group_file}."
1339 echo "See the manual chapter \"Running Bacula\" for details."
1341 # we do not use the -g option allowing the primary group to be set to system default
1342 # this will be a unique group on redhat type systems or the group users on some systems
1343 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1344 if [ -z "$HAVE_BACULA" ]; then
1345 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1346 echo "The user %{file_daemon_user} has been added to %{user_file}."
1347 echo "See the manual chapter \"Running Bacula\" for details."
1349 # now we add the supplementary group, this is ok to call even if the user already exists
1350 # we only do this if the user is NOT root
1351 IS_ROOT=%{file_daemon_user}
1352 if [ "$IS_ROOT" != "root" ]; then
1353 %{usermod} -G %{daemon_group} %{file_daemon_user}
1358 if [ "$1" -ge 1 ] ; then
1359 %{service_enable} bacula-fd
1362 if [ -d %{sysconf_dir} ]; then
1364 if [ ! -f .rpm.sed ]; then
1366 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1367 echo "# match between configuration files" >> .rpm.sed
1369 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
1370 pass=`openssl rand -base64 33`
1371 echo "s@${string}@${pass}@g" >> .rpm.sed
1375 if [ "$host" = "" ]; then
1378 for file in *.conf; do
1379 sed -f .rpm.sed $file > $file.new
1380 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1388 %{service_disable} bacula-fd
1392 %defattr(-,root,root)
1395 %{_libdir}/libbaccfg*
1396 %{_libdir}/libbacfind*
1406 %if ! %{client_only}
1408 %defattr(-,root,%{daemon_group})
1409 %{script_dir}/updatedb/*
1410 #oensuse_bs: directories not owned by any package
1411 #%{script_dir}/updatedb
1414 # create the daemon group
1415 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1416 if [ -z "$HAVE_BACULA" ]; then
1417 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1418 echo "The group %{daemon_group} has been added to %{group_file}."
1419 echo "See the manual chapter \"Running Bacula\" for details."
1423 echo "The database update scripts were installed to %{script_dir}/updatedb"