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
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
54 %define _sbindir %_prefix/sbin
55 %define _bindir %_prefix/bin
56 %define _subsysdir /var/lock/subsys
57 %define sqlite_bindir %_libdir/bacula/sqlite
58 %define _mandir %_prefix/share/man
59 %define sysconf_dir /etc/bacula
60 %define script_dir %_libdir/bacula
61 %define working_dir /var/lib/bacula
62 %define pid_dir /var/run
63 %define plugin_dir %_libdir/bacula/plugins
64 %define lib_dir %_libdir/bacula/lib
65 %define log_dir %_libdir/bacula/log
68 %define systemd_dir /lib/systemd/system
70 # Daemon user:group Don't change them unless you know what you are doing
71 %define director_daemon_user bacula
72 %define storage_daemon_user bacula
73 %define file_daemon_user root
74 %define daemon_group bacula
75 # group that has write access to tape devices, usually disk on Linux
76 %define storage_daemon_group disk
78 %define depkgs ../depkgs
80 # problems with mandriva build:
81 # nothing provides libbonobo2_0-devel, nothing provides libbonoboui2_0-devel
83 #--------------------------------------------------------------------------
84 # it should not be necessary to change anything below here for a release
85 # except for patch macros in the setup section
86 #--------------------------------------------------------------------------
88 %define base_package_name %{product}
90 %{?contrib_packager:%define _packager %{contrib_packager}}
92 Summary: Bacula - The Network Backup Solution
93 Name: %{base_package_name}
96 Group: System Environment/Daemons
98 BuildRoot: %{_tmppath}/%{name}-root
99 URL: http://www.bacula.org/
100 Vendor: The Bacula Team
101 Packager: %{_packager}
104 # opensuse build service changes the release itself
105 # what happens if the release is not 1? DSB
106 Source0: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
107 Source1: http://www.prdownloads.sourceforge.net/bacula/%{product}-%{version}.tar.gz
109 Source2: Release_Notes-%{version}-1.tar.gz
111 Source2: Release_Notes-%{version}-%{release}.tar.gz
114 # define the basic package description
115 %define blurb Bacula - The Leading Open Source Backup Solution.
116 %define blurb2 Bacula is a set of computer programs that permit you (or the system
117 %define blurb3 administrator) to manage backup, recovery, and verification of computer
118 %define blurb4 data across a network of computers of different kinds. In technical terms,
119 %define blurb5 it is a network client/server based backup program. Bacula is relatively
120 %define blurb6 easy to use and efficient, while offering many advanced storage management
121 %define blurb7 features that make it easy to find and recover lost or damaged files.
122 %define blurb8 Bacula source code has been released under the AGPL version 3 license.
124 %define user_file /etc/passwd
125 %define group_file /etc/group
128 %define useradd /usr/sbin/useradd
129 %define groupadd /usr/sbin/groupadd
130 %define usermod /usr/sbin/usermod
132 # platform defines - set one below or define the build_xxx on the command line
135 %{?build_rh7:%define rh7 1}
137 %{?build_rh8:%define rh8 1}
139 %{?build_rh9:%define rh9 1}
142 %{?build_fc16:%define fc16 1}
144 %{?build_fc17:%define fc17 1}
146 %{?build_fc18:%define fc18 1}
148 %{?build_fc22:%define fc22 1}
149 # Whitebox Enterprise build
151 %{?build_wb3:%define wb3 1}
152 # RedHat Enterprise builds
154 %{?build_rhel3:%define rhel3 1}
155 %{?build_rhel3:%define wb3 1}
157 %{?build_rhel4:%define rhel4 1}
158 %{?build_rhel4:%define fc3 1}
159 %{?build_el4:%define rhel4 1}
160 %{?build_el4:%define fc3 1}
162 %{?build_rhel5:%define rhel5 1}
163 %{?build_rhel5:%define fc6 1}
164 %{?build_el5:%define rhel5 1}
165 %{?build_el5:%define fc6 1}
167 %{?build_rhel6:%define rhel6 1}
168 %{?build_el6:%define rhel6 1}
170 %{?build_rhel7:%define rhel7 1}
171 %{?build_el7:%define rhel7 1}
174 %{?build_centos3:%define centos3 1}
175 %{?build_centos3:%define wb3 1}
177 %{?build_centos4:%define centos4 1}
178 %{?build_centos4:%define fc3 1}
180 %{?build_centos5:%define centos5 1}
181 %{?build_centos5:%define fc6 1}
183 %{?build_centos6:%define centos6 1}
186 %{?build_sl3:%define sl3 1}
187 %{?build_sl3:%define wb3 1}
189 %{?build_sl4:%define sl4 1}
190 %{?build_sl4:%define fc3 1}
192 %{?build_sl5:%define sl5 1}
193 %{?build_sl5:%define fc6 1}
196 %{?build_su9:%define su9 1}
198 %{?build_su10:%define su10 1}
200 %{?build_su102:%define su102 1}
202 %{?build_su103:%define su103 1}
204 %{?build_su110:%define su110 1}
206 %{?build_su111:%define su111 1}
208 %{?build_su112:%define su112 1}
210 %{?build_su113:%define su113 1}
212 %{?build_su120:%define su120 1}
214 %{?build_su131:%define su131 1}
217 %{?build_mdk:%define mdk 1}
219 %{?build_mdv:%define mdv 1}
220 %{?build_mdv:%define mdk 1}
223 %define client_only 0
224 %{?build_client_only:%define client_only 1}
226 # if the platform is using systemd
229 %if %{rhel7} || %{fc22}
233 # depending if we use systemd or not, we use chkconfig or systemctl
235 %define service_enable systemctl enable
236 %define service_disable systemctl disable
238 %define service_enable /sbin/chkconfig --add
239 %define service_disable /sbin/chkconfig --del
242 # Setup some short cuts
244 %if %{rh7} || %{rh8} || %{rh9}
248 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
252 %if %{su9} || %{su10} || %{su102} || %{su103} || %{su110} || %{su111} || %{su112} || %{su120} || %{su131}
256 %if %{rhel3} || %{rhel4} || %{rhel5} || %{rhel6} || %{rhel7} || %{centos3} || %{centos4} || %{centos5} || %{centos6}
260 %if %{sl3} || %{sl4} || %{sl5}
265 # test for a platform definition
266 %if !%{rhat} && !%{rhel} && !%{fed} && !%{wb3} && !%{suse} && !%{mdk} && !%{scil}
267 %{error: You must specify a platform. Please examine the spec file.}
271 # distribution-specific directory for logwatch
272 %if %{wb3} || %{rh7} || %{rh8} || %{rh9}
273 %define logwatch_dir /etc/log.d
275 %define logwatch_dir /etc/logwatch
279 # set for database support desired or define the build_xxx on the command line
281 %{?build_mysql:%define mysql 1}
283 %{?build_sqlite:%define sqlite 1}
285 %{?build_postgresql:%define postgresql 1}
287 # test for a database definition
288 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
289 %{error: You must specify database support, by passing one of the following to rpmbuild:}
290 %{error: --define build_postgresql=1}
291 %{error: --define build_sqlite=1}
292 %{error: --define build_mysql=1}
297 %define db_backend mysql
300 %define db_backend sqlite3
303 %define db_backend postgresql
308 %{?build_x86_64:%define x86_64 1}
310 # check what distribution we are
311 %if %{fc16} || %{fc17} || %{fc18} || %{fc22}
312 %define _dist %(grep Fedora /etc/redhat-release)
314 %if %{centos5} || %{centos4} || %{centos3}
315 %define _dist %(grep CentOS /etc/redhat-release)
317 %if %{sl5} ||%{sl4} || %{sl3}
318 %define _dist %(grep 'Scientific Linux' /etc/redhat-release)
320 %if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3}
321 %define _dist %(grep White /etc/whitebox-release)
324 %define _dist %(grep -i SuSE /etc/SuSE-release)
327 %define _dist %(grep Mand /etc/mandrake-release)
329 %if %{rhat} || %{rhel}
330 %define _dist %(grep Red /etc/redhat-release)
332 %{?DISTNAME:%define _dist %{DISTNAME}}
334 # only set Disribution if not in opensuse build service, as it sets it itself
335 %if ! 0%{?opensuse_bs}
336 Distribution: %{_dist}
339 %if 0%{?opensuse_bs} && %{mysql} && %{suse}
340 # needed in opensuse_bs, as rpm is installed during build process
341 BuildRequires: libmysqlclient-devel
342 BuildRequires: mysql-client
345 %if 0%{?opensuse_bs} && %{suse} && %{postgresql}
346 BuildRequires: %{postgres_package}
347 BuildRequires: %{postgres_server_package}
349 BuildRequires: openssl
351 %if 0%{?opensuse_bs} && %{suse}
352 BuildRequires: pwdutils
353 BuildRequires: sysconfig
356 # should we turn on python support
358 %{?build_python:%define python 0}
360 # should we enable tcp wrappers support
361 %define tcpwrappers 1
362 %{?build_tcpwrappers:%define tcpwrappers 1}
364 # do we need to patch for old postgresql version?
366 %{?build_old_pgsql:%define old_pgsql 1}
368 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
370 %define manpage_ext bz2
372 %define manpage_ext gz
375 # for client only build
382 BuildRequires: gcc, gcc-c++, make, autoconf
383 BuildRequires: glibc, glibc-devel
384 BuildRequires: ncurses-devel, readline-devel
385 BuildRequires: libstdc++-devel, zlib-devel
386 BuildRequires: openssl-devel
387 BuildRequires: libacl-devel
388 BuildRequires: pkgconfig
389 BuildRequires: bzip2-devel
391 BuildRequires: libxml2-devel
394 BuildRequires: python, python-devel
395 %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
399 BuildRequires: libxml-devel
402 BuildRequires: libstdc++-static-devel
403 BuildRequires: glibc-static-devel
406 %if %{mysql} && ! %{suse}
407 BuildRequires: mysql-devel
410 %if %{postgresql} && %{wb3}
411 BuildRequires: rh-postgresql-devel >= %{postgres_version}
414 %if %{postgresql} && ! %{wb3}
415 BuildRequires: %{postgres_devel_package} >= %{postgres_version}
439 Summary: Bacula - The Network Backup Solution
440 Group: System Environment/Daemons
441 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
442 Conflicts: bacula-client
444 Requires: ncurses, libstdc++, zlib, openssl
445 Requires: glibc, readline, %{name}-libs
455 %if %{postgresql} && %{wb3}
456 Requires: rh-postgresql >= 7
458 %if %{postgresql} && ! %{wb3}
459 Requires: postgresql >= 7
469 %description postgresql
473 Requires: python >= %{pyver}
487 This build requires MySQL to be installed separately as the catalog database.
490 This build requires PostgreSQL to be installed separately as the catalog database.
493 This build incorporates sqlite3 as the catalog database, statically compiled.
496 This build includes python scripting support.
499 This build includes tcp-wrappers support.
503 Summary: Bacula - The Network Backup Solution
504 Group: System Environment/Daemons
506 Conflicts: bacula-mysql
507 Conflicts: bacula-sqlite
508 Conflicts: bacula-postgresql
512 Provides: %{product}-libs
515 Requires: libstdc++, zlib, openssl, bzip2-libs
516 Requires: glibc, readline, %{name}-libs
519 Requires: python >= %{pyver}
533 This is the File daemon (Client) only package. It includes the command line
536 This build includes python scripting support.
539 This build includes tcp-wrappers support.
545 Summary: Bacula - The Network Backup Solution
546 Group: System Environment/Daemons
548 %description updatedb
559 This package installs scripts for updating older versions of the bacula
565 Summary: Bacula - The Network Backup Solution
566 Group: System Environment/Daemons
579 This package installs the shared libraries used by many bacula programs.
581 # Must explicitly enable debug pkg on SuSE
582 # but not in opensuse_bs
583 #%if %{suse} && ! 0%{?opensuse_bs}
588 %setup -T -b 0 -n depkgs
589 %setup -T -b 1 -n %{product}-%{version}
590 %setup -T -D -b 2 -n %{product}-%{version}
597 #export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap -L/usr/lib64/termcap"
600 # You can use a cache for depkgs
601 # tar xfz depkgs*gz -C ~/
603 # touch %{depkgs_version} # depkgs version
605 if [ -f $HOME/depkgs/%{depkgs_version} ]; then
607 ln -s $HOME/depkgs %{depkgs}
619 export LDFLAGS="${LDFLAGS} -L${PWD}/lzo/lib"
620 export CPPFLAGS="${CPPFLAGS} -I${PWD}/lzo/include"
623 # hostname is the build hostname, so use XXX_HOSTNAME_XXX for Address parameter
624 sed -i s/hostname/basename/ src/console/bconsole.conf.in src/dird/bacula-dir.conf.in src/qt-console/bat.conf.in
627 # patches for the bundled sqlite scripts
628 sed -i s:.SQLITE_BINDIR.:/opt/bacula/sqlite: src/cats/*_sqlite3_*.in
630 # patch the bacula-dir init script to remove sqlite service
632 sed -i 's/network .DB_TYPE./network/' platforms/suse/bacula-dir.in
636 # 64 bit lib location hacks
637 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
638 # reported to be fixed to properly detect lib locations.
640 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
642 %if %{mysql} && %{x86_64}
643 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
645 %if %{python} && %{x86_64}
646 export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}"
649 export BACULA="Bacula"
651 # Main Bacula configuration
653 --prefix=%{_prefix} \
654 --sbindir=%{_sbindir} \
655 --sysconfdir=%{sysconf_dir} \
656 --mandir=%{_mandir} \
657 --with-scriptdir=%{script_dir} \
658 --with-working-dir=%{working_dir} \
659 --with-plugindir=%{plugin_dir} \
660 --with-logdir=%{log_dir} \
661 --with-pid-dir=%{pid_dir} \
662 --with-subsys-dir=%{_subsysdir} \
663 --enable-smartalloc \
670 --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \
680 --enable-client-only \
682 %if %{rh7} || %{rh8} || %{rh9}
683 --disable-batch-insert \
686 --with-systemd=%{systemd_dir} \
688 --with-tcp-wrappers \
689 --with-dir-user=%{director_daemon_user} \
690 --with-dir-group=%{daemon_group} \
691 --with-sd-user=%{storage_daemon_user} \
692 --with-sd-group=%{storage_daemon_group} \
693 --with-fd-user=%{file_daemon_user} \
694 --with-fd-group=%{daemon_group} \
695 --with-basename="XXX_HOSTNAME_XXX" \
696 --with-hostname="XXX_HOSTNAME_XXX" \
697 --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
698 --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
699 --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
700 --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
701 --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
702 --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
710 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
711 mkdir -p $RPM_BUILD_ROOT/etc/init.d
712 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
713 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles
714 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/services
715 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services
716 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared
717 mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb
719 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
720 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
723 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
726 make DESTDIR=$RPM_BUILD_ROOT install
729 make DESTDIR=$RPM_BUILD_ROOT -C ../bacula-%{_version}/src/tools/ install-bsnapshot
732 make DESTDIR=$RPM_BUILD_ROOT -C platforms/systemd install-dir install-service
735 # Remove docs for programs that are depreciated
736 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext}
737 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext}
738 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
739 rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
741 # Remove docs for programs only included in bee
742 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bpluginfo.8.%{manpage_ext}
744 # Storage-ctl packaged in shstore rpm
745 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl
746 rm -f $RPM_BUILD_ROOT%{script_dir}/storage-ctl.conf
748 # fixme - make installs the mysql scripts for sqlite build
750 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
751 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
752 rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges
755 # fixme - make installs the mysql scripts for postgresql build
757 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
758 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
761 # install the init scripts
764 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
765 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
766 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
769 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
770 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
771 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
773 %if ! %{suse} && ! %{mdk}
774 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
775 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
776 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
777 %endif # !suse && !mdk
778 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
779 %endif # ! usesystemd
782 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
783 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
784 rm -f $RPM_BUILD_ROOT%{script_dir}/breload
785 rm -f $RPM_BUILD_ROOT%{script_dir}/manual_prune.pl
786 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-dir.service
787 rm -f $RPM_BUILD_ROOT%{systemd_dir}/bacula-sd.service
792 cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3
793 cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h
794 cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a
798 # install the logrotate file
799 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
801 # install the updatedb scripts
802 cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/
804 # install specific scripts
806 # install special upgrade script, except for sqlite3
811 # install the sample-query.sql file
812 cp -p examples/sample-query.sql $RPM_BUILD_ROOT%{script_dir}/sample-query.sql
814 # install the logwatch scripts
815 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
816 cp -p scripts/logwatch/applybaculadate $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
817 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
818 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
819 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
820 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
821 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
822 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
825 # now clean up permissions that are left broken by the install
826 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
828 # fix me - building enable-client-only installs files not included in bacula-client package
830 # Program docs not installed on client
831 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext}
832 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext}
833 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext}
834 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext}
835 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext}
836 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext}
837 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext}
838 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext}
839 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bregex.8.%{manpage_ext}
840 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bwild.8.%{manpage_ext}
841 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext}
842 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
843 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
844 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
845 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
846 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
847 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
848 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
849 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
850 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
851 rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb
852 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
853 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
854 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
859 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
861 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-1.txt
863 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
868 # MySQL specific files
870 %defattr(-, root, root)
871 %attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database
872 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database
873 %attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables
874 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables
875 %attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables
876 %attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
877 %{_libdir}/libbaccats*
878 %{_libdir}/libbacsql*
883 %defattr(-,root,root)
884 %attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database
885 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database
886 %attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges
887 %attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables
888 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables
889 %attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables
890 %{sqlite_bindir}/libsqlite3.a
891 %{sqlite_bindir}/sqlite3.h
892 %{sqlite_bindir}/sqlite3
893 %{_libdir}/libbaccats*
894 %{_libdir}/libbacsql*
901 %defattr(-,root,root)
902 %attr(755, root, %{daemon_group}) %{script_dir}/create_postgresql_database
903 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_database
904 %attr(755, root, %{daemon_group}) %{script_dir}/make_postgresql_tables
905 %attr(755, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables
906 %attr(755, root, %{daemon_group}) %{script_dir}/update_postgresql_tables
907 %attr(755, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
908 %{_libdir}/libbaccats*
909 %{_libdir}/libbacsql*
912 # The rest is DB backend independent
915 %attr(-, root, %{daemon_group}) %dir %{script_dir}
916 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
917 #%attr(-, %{director_daemon_user}, %{daemon_group}) %dir %{log_dir}
918 %attr(-, root, %{daemon_group}) %{script_dir}/bacula
919 %attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
920 %attr(-, root, %{daemon_group}) %{script_dir}/bconsole
921 %attr(755, root, %{daemon_group}) %{script_dir}/create_bacula_database
922 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_database
923 %attr(755, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges
924 %attr(755, root, %{daemon_group}) %{script_dir}/make_bacula_tables
925 %attr(755, root, %{daemon_group}) %{script_dir}/drop_bacula_tables
926 %attr(755, root, %{daemon_group}) %{script_dir}/update_bacula_tables
927 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup
928 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup.pl
929 %attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup
930 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
931 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
932 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
933 %attr(-, root, %{daemon_group}) %{script_dir}/disk-changer
934 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
935 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
936 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
937 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
938 #%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
939 #%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
940 %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
941 %attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler
942 #%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
943 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
944 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{script_dir}/mtx-changer.conf
947 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-dir.service
948 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
949 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-sd.service
951 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
952 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
953 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
956 /etc/logrotate.d/bacula
957 %{logwatch_dir}/scripts/services/bacula
958 %{logwatch_dir}/scripts/shared/applybaculadate
959 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf
960 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
961 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf
962 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
963 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
964 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
965 %attr(-, root, %{daemon_group}) %{script_dir}/sample-query.sql
967 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
969 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-dir
970 %attr(-, root, %{daemon_group}) %{_sbindir}/bacula-sd
971 %attr(-, root, %{daemon_group}) %{_sbindir}/btraceback
972 %attr(-, root, %{daemon_group}) %{_sbindir}/bconsole
973 %attr(-, root, %{daemon_group}) %{_sbindir}/bsmtp
974 %attr(-, root, %{daemon_group}) %{_sbindir}/bscan
975 %attr(-, root, %{daemon_group}) %{_sbindir}/btape
977 %attr(755, root, root) %{_sbindir}/bsnapshot
979 %{_sbindir}/bacula-fd
986 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
987 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
988 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
989 %{_mandir}/man8/bacula.8.%{manpage_ext}
990 %{_mandir}/man8/bconsole.8.%{manpage_ext}
991 %{_mandir}/man8/bcopy.8.%{manpage_ext}
992 %{_mandir}/man8/bextract.8.%{manpage_ext}
993 %{_mandir}/man8/bls.8.%{manpage_ext}
994 %{_mandir}/man8/bscan.8.%{manpage_ext}
995 %{_mandir}/man8/btape.8.%{manpage_ext}
996 %{_mandir}/man8/btraceback.8.%{manpage_ext}
997 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
998 %{_mandir}/man8/bregex.8.%{manpage_ext}
999 %{_mandir}/man8/bwild.8.%{manpage_ext}
1000 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
1001 %{_mandir}/man1/bat.1.%{manpage_ext}
1003 %_prefix/share/doc/*
1005 # opensuse build service changes the release itself
1006 %if 0%{?opensuse_bs}
1007 %doc ../Release_Notes-%{version}-1.txt
1009 %doc ../Release_Notes-%{version}-%{release}.txt
1015 # test for bacula database older than version 13
1016 # note: this ASSUMES no password has been set for bacula database
1017 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1022 # are we upgrading from sqlite to sqlite3?
1023 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
1024 echo "This version of bacula-sqlite involves an upgrade to sqlite3."
1025 echo "Your catalog database file is not compatible with sqlite3, thus"
1026 echo "you will need to dump the data, delete the old file, and re-run"
1027 echo "this rpm upgrade."
1029 echo "Backing up your current database..."
1030 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql
1031 mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old
1032 echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your"
1033 echo "catalog file has been renamed %{working_dir}/bacula.db.old."
1035 echo "Please re-run this rpm package upgrade."
1036 echo "After the upgrade is complete, restore your catalog"
1037 echo "with the following commands:"
1038 echo "%{script_dir}/drop_sqlite3_tables"
1039 echo "cd %{working_dir}"
1040 echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql"
1041 echo "chown bacula.bacula bacula.db"
1044 # test for bacula database older than version 12 and sqlite3
1045 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then
1046 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1051 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1054 %if ! %{client_only}
1055 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "12" ]; then
1056 echo "This bacula upgrade will update a bacula database from version 12 to 1014."
1057 echo "You appear to be running database version $DB_VER. You must first update"
1058 echo "your database to version 12 and then install this upgrade. The alternative"
1059 echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current"
1060 echo "catalog information, then do the upgrade. Information on updating a"
1061 echo "database older than version 12 can be found in the release notes."
1070 %if ! %{client_only}
1071 # check for and copy %{sysconf_dir}/console.conf to bconsole.conf
1072 if [ -s %{sysconf_dir}/console.conf ];then
1073 cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf
1076 # create the daemon users and groups
1077 # first create the groups if they don't exist
1078 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1079 if [ -z "$HAVE_BACULA" ]; then
1080 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1081 echo "The group %{daemon_group} has been added to %{group_file}."
1082 echo "See the manual chapter \"Running Bacula\" for details."
1084 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
1085 if [ -z "$HAVE_BACULA" ]; then
1086 %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
1087 echo "The group %{storage_daemon_group} has been added to %{group_file}."
1088 echo "See the manual chapter \"Running Bacula\" for details."
1090 # now create the users if they do not exist
1091 # we do not use the -g option allowing the primary group to be set to system default
1092 # this will be a unique group on redhat type systems or the group users on some systems
1093 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1094 if [ -z "$HAVE_BACULA" ]; then
1095 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1096 echo "The user %{storage_daemon_user} has been added to %{user_file}."
1097 echo "See the manual chapter \"Running Bacula\" for details."
1099 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1100 if [ -z "$HAVE_BACULA" ]; then
1101 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1102 echo "The user %{director_daemon_user} has been added to %{user_file}."
1103 echo "See the manual chapter \"Running Bacula\" for details."
1105 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1106 if [ -z "$HAVE_BACULA" ]; then
1107 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1108 echo "The user %{file_daemon_user} has been added to %{user_file}."
1109 echo "See the manual chapter \"Running Bacula\" for details."
1111 # now we add the supplementary groups, this is ok to call even if the users already exist
1112 # we only do this if the user is NOT root
1113 IS_ROOT=%{director_daemon_user}
1114 if [ "$IS_ROOT" != "root" ]; then
1115 %{usermod} -G %{daemon_group} %{director_daemon_user}
1117 IS_ROOT=%{storage_daemon_user}
1118 if [ "$IS_ROOT" != "root" ]; then
1119 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1121 IS_ROOT=%{file_daemon_user}
1122 if [ "$IS_ROOT" != "root" ]; then
1123 %{usermod} -G %{daemon_group} %{file_daemon_user}
1136 %if ! %{client_only}
1138 if [ "$1" -ge 1 ] ; then
1139 %if %{suse} && %{mysql}
1140 %{service_enable} mysql
1142 %if %{suse} && %{postgresql}
1143 %{service_enable} postgresql
1145 %{service_enable} bacula-dir
1146 %{service_enable} bacula-fd
1147 %{service_enable} bacula-sd
1151 if [ -d %{sysconf_dir} ]; then
1153 if [ ! -f .rpm.sed ]; then
1155 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1156 echo "# match between configuration files" >> .rpm.sed
1158 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
1159 pass=`openssl rand -base64 33`
1160 echo "s@${string}@${pass}@g" >> .rpm.sed
1164 if [ "$host" = "" ]; then
1167 for file in *.conf; do
1168 sed -f .rpm.sed $file > $file.new
1169 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1177 #check, if mysql can be called successfully at all
1178 if mysql 2>/dev/null bacula -e 'select * from Version;' ; then
1180 # test for an existing database
1181 # note: this ASSUMES no password has been set for bacula database
1182 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1184 # grant privileges and create tables if they do not exist
1185 if [ -z "$DB_VER" ]; then
1186 echo "Hmm, it doesn't look like you have an existing database."
1187 echo "Granting privileges for MySQL user bacula..."
1188 %{script_dir}/grant_mysql_privileges
1189 echo "Creating MySQL bacula database..."
1190 %{script_dir}/create_mysql_database
1191 echo "Creating bacula tables..."
1192 %{script_dir}/make_mysql_tables
1194 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1195 echo "This release requires an upgrade to your bacula database."
1196 echo "Backing up your current database..."
1197 mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1198 echo "Upgrading bacula database ..."
1199 %{script_dir}/update_mysql_tables
1200 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1207 # test for an existing database
1208 if [ -s %{working_dir}/bacula.db ]; then
1209 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1210 # check to see if we need to upgrade a 3.x database
1211 if [ "$DB_VER" -le "13" ] && [ "$DB_VER" -ge "12" ]; then
1212 echo "This release requires an upgrade to your bacula database."
1213 echo "Backing up your current database..."
1214 echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1215 echo "Upgrading bacula database ..."
1216 %{script_dir}/update_sqlite3_tables
1217 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1220 # create the database and tables
1221 echo "Hmm, doesn't look like you have an existing database."
1222 echo "Creating SQLite database..."
1223 %{script_dir}/create_sqlite3_database
1224 echo "Creating the SQLite tables..."
1225 %{script_dir}/make_sqlite3_tables
1226 chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db
1231 # check if psql can be called successfully at all
1232 if echo 'select * from Version;' | su - postgres -c 'psql bacula' 2>/dev/null; then
1234 # test for an existing database
1235 # note: this ASSUMES no password has been set for bacula database
1236 DB_VER=`echo 'SELECT * FROM Version LIMIT 1;' | su - postgres -c 'psql bacula' 2>/dev/null | tail -3 | head -1`
1238 # grant privileges and create tables if they do not exist
1239 if [ -z "$DB_VER" ]; then
1240 echo "Hmm, doesn't look like you have an existing database."
1241 echo "Creating PostgreSQL bacula database..."
1242 su - postgres -c %{script_dir}/create_postgresql_database
1243 echo "Creating bacula tables..."
1244 su - postgres -c %{script_dir}/make_postgresql_tables
1245 echo "Granting privileges for PostgreSQL user bacula..."
1246 su - postgres -c %{script_dir}/grant_postgresql_privileges
1248 elif [ "$DB_VER" -ge "12" -a "$DB_VER" -lt "1015" ]; then
1249 echo "This release requires an upgrade to your bacula database."
1250 echo "Backing up your current database..."
1251 su - postgres -c 'pg_dump bacula' | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1252 echo "Upgrading bacula database ..."
1253 su - postgres -c %{script_dir}/update_postgresql_tables
1254 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1255 echo "Granting privileges for PostgreSQL user bacula..."
1256 su - postgres -c %{script_dir}/grant_postgresql_privileges
1262 %if ! %{client_only}
1263 if [ -d %{sysconf_dir} ]; then
1265 if [ ! -f .rpm.sed ]; then
1267 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1268 echo "# match between configuration files" >> .rpm.sed
1270 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
1271 pass=`openssl rand -base64 33`
1272 echo "s@${string}@${pass}@g" >> .rpm.sed
1276 if [ "$host" = "" ]; then
1279 for file in *.conf; do
1280 sed -f .rpm.sed $file > $file.new
1281 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1298 %if ! %{client_only}
1301 %{service_disable} bacula-dir
1302 %{service_disable} bacula-fd
1303 %{service_disable} bacula-sd
1308 %defattr(-,root,root)
1309 %attr(-, root, %{daemon_group}) %dir %{script_dir}
1310 %attr(-, root, %{daemon_group}) %dir %{plugin_dir}
1311 #%attr(-, root, %{daemon_group}) %dir %{log_dir}
1312 %attr(-, root, %{daemon_group}) %dir %{sysconf_dir}
1314 # SD/DIR might write here
1315 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{log_dir}
1316 #%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
1319 %attr(-, root, %{daemon_group}) %{systemd_dir}/bacula-fd.service
1321 %{script_dir}/bacula-ctl-fd
1322 /etc/init.d/bacula-fd
1325 /etc/logrotate.d/bacula
1327 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1328 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1329 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1331 %{_sbindir}/bacula-fd
1332 %{_sbindir}/btraceback
1333 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1334 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
1335 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.mdb
1336 %attr(-, root, %{daemon_group}) %{plugin_dir}/bpipe-fd.so
1337 %{_sbindir}/bconsole
1338 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1339 %{_mandir}/man8/bacula.8.%{manpage_ext}
1340 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1341 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1342 %{_mandir}/man1/bat.1.%{manpage_ext}
1343 %_prefix/share/doc/*
1346 # create the daemon group and user
1347 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1348 if [ -z "$HAVE_BACULA" ]; then
1349 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1350 echo "The group %{daemon_group} has been added to %{group_file}."
1351 echo "See the manual chapter \"Running Bacula\" for details."
1353 # we do not use the -g option allowing the primary group to be set to system default
1354 # this will be a unique group on redhat type systems or the group users on some systems
1355 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1356 if [ -z "$HAVE_BACULA" ]; then
1357 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1358 echo "The user %{file_daemon_user} has been added to %{user_file}."
1359 echo "See the manual chapter \"Running Bacula\" for details."
1361 # now we add the supplementary group, this is ok to call even if the user already exists
1362 # we only do this if the user is NOT root
1363 IS_ROOT=%{file_daemon_user}
1364 if [ "$IS_ROOT" != "root" ]; then
1365 %{usermod} -G %{daemon_group} %{file_daemon_user}
1370 if [ "$1" -ge 1 ] ; then
1371 %{service_enable} bacula-fd
1374 if [ -d %{sysconf_dir} ]; then
1376 if [ ! -f .rpm.sed ]; then
1378 echo "# This file is used to ensure that all passwords will" > .rpm.sed
1379 echo "# match between configuration files" >> .rpm.sed
1381 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
1382 pass=`openssl rand -base64 33`
1383 echo "s@${string}@${pass}@g" >> .rpm.sed
1387 if [ "$host" = "" ]; then
1390 for file in *.conf; do
1391 sed -f .rpm.sed $file > $file.new
1392 sed "s@XXX_HOSTNAME_XXX@${host}@g" $file.new > $file
1400 %{service_disable} bacula-fd
1404 %defattr(-,root,root)
1407 %{_libdir}/libbaccfg*
1408 %{_libdir}/libbacfind*
1418 %if ! %{client_only}
1420 %defattr(-,root,%{daemon_group})
1421 %{script_dir}/updatedb/*
1422 #oensuse_bs: directories not owned by any package
1423 #%{script_dir}/updatedb
1426 # create the daemon group
1427 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1428 if [ -z "$HAVE_BACULA" ]; then
1429 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1430 echo "The group %{daemon_group} has been added to %{group_file}."
1431 echo "See the manual chapter \"Running Bacula\" for details."
1435 echo "The database update scripts were installed to %{script_dir}/updatedb"