3 # Copyright (C) 2000-2009 Free Software Foundation Europe e.V.
5 # Platform Build Configuration
7 # basic defines for every build
10 %define _packager D. Scott Barninger <barninger@fairfieldcomputers.com>
11 %define depkgs_version 18Dec09
14 %{?single_dir_install:%define single_dir 1}
16 # Installation Directory locations
18 %define _prefix /opt/bacula
19 %define _sbindir /opt/bacula/bin
20 %define _bindir /opt/bacula/bin
21 %define _subsysdir /opt/bacula/working
22 %define sqlite_bindir /opt/bacula/sqlite
23 %define _mandir /usr/share/man
24 %define sysconf_dir /opt/bacula/etc
25 %define script_dir /opt/bacula/scripts
26 %define working_dir /opt/bacula/working
27 %define pid_dir /opt/bacula/working
28 %define plugin_dir /opt/bacula/plugins
29 %define lib_dir /opt/bacula/lib
32 %define _sbindir %_prefix/sbin
33 %define _bindir %_prefix/bin
34 %define _subsysdir /var/lock/subsys
35 %define sqlite_bindir %_libdir/bacula/sqlite
36 %define _mandir %_prefix/share/man
37 %define sysconf_dir /etc/bacula
38 %define script_dir %_libdir/bacula
39 %define working_dir /var/lib/bacula
40 %define pid_dir /var/run
41 %define plugin_dir %_libdir/bacula/plugins
42 %define lib_dir %_libdir/bacula/lib
45 # Daemon user:group Don't change them unless you know what you are doing
46 %define director_daemon_user bacula
47 %define storage_daemon_user bacula
48 %define file_daemon_user root
49 %define daemon_group bacula
50 # group that has write access to tape devices, usually disk on Linux
51 %define storage_daemon_group disk
53 %define depkgs ../depkgs
55 # probems with mandriva build:
56 # nothing provides libbonobo2_0-devel, nothing provides libbonoboui2_0-devel
58 # set Macros by opensuse_bs, see http://en.opensuse.org/Build_Service/cross_distribution_package_how_to
59 #openSUSE 11.1 %if 0%{?suse_version} == 1110
60 #openSUSE 11.0 %if 0%{?suse_version} == 1100
61 #openSUSE 10.3 %if 0%{?suse_version} == 1030
62 #openSUSE 10.2 %if 0%{?suse_version} == 1020
63 #SUSE Linux 10.1 %if 0%{?suse_version} == 1010
64 #SUSE Linux 10.0 %if 0%{?suse_version} == 1000
65 #SUSE Linux 9.3 %if 0%{?suse_version} == 930
66 #SLES 9 %if 0%{?sles_version} == 9 also set: %if 0%{?suse_version} == 910
67 #SLE 10 %if 0%{?sles_version} == 10 also set: %if 0%{?suse_version} == 1010
68 #SLE 11 %if 0%{?sles_version} == 11 also set: %if 0%{?suse_version} == 1110
69 #CentOS 5 %if 0%{?centos_version} == 501
70 #RHEL 4 %if 0%{?rhel_version} == 406
71 #RHEL 5 %if 0%{?rhel_version} == 501
72 #Fedora 6 with Extras %if 0%{?fedora_version} == 6
73 #Fedora 7 with Extras %if 0%{?fedora_version} == 7
74 #Fedora 8 with Extras %if 0%{?fedora_version} == 8
75 #Fedora 9 with Extras %if 0%{?fedora_version} == 9
76 #Fedora 10 with Extras %if 0%{?fedora_version} == 10
77 #Mandriva 2006 %if 0%{?mandriva_version} == 2006
78 #Mandriva 2007 %if 0%{?mandriva_version} == 2007
79 #Mandriva 2008 %if 0%{?mandriva_version} == 2008
83 # am I running in opensuse build service?
84 # TODO: seems to make problems
86 # choose database backend here
87 # postgres, mysql, sqlite
90 # Build Service: Determine Distribution
93 %define build_x86_64 1
97 %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version}
98 BuildRequires: GConf2-devel
99 BuildRequires: freetype-devel
100 BuildRequires: libtermcap-devel
101 BuildRequires: shadow-utils
105 %if 0%{?mandriva_version} == 2007
107 %define _dist "Mandriva 2007"
110 %if 0%{?fedora_version} == 8
112 %define _dist "Fedora Core 8"
113 BuildRequires: redhat-release
116 %if 0%{?fedora_version} == 9
118 %define _dist "Fedora Core 9"
119 BuildRequires: redhat-release
123 %if 0%{?fedora_version} == 10
125 %define _dist "Fedora Core 10"
126 BuildRequires: PolicyKit-gnome
127 BuildRequires: fedora-release
130 %if 0%{?fedora_version} == 11
132 %define _dist "Fedora Core 11"
133 BuildRequires: PolicyKit-gnome
134 BuildRequires: fedora-release
137 %if 0%{?rhel_version} == 501
138 %define build_rhel5 1
139 %define _dist "Red Hat Enterprise Linux Server release 5"
140 BuildRequires: redhat-release
143 %if 0%{?rhel_version} == 406
144 %define build_rhel4 1
145 %define _dist "Red Hat Enterprise Linux Server release 4"
146 BuildRequires: redhat-release
150 %if 0%{?centos_version} == 501
151 %define build_centos5 1
152 %define _dist "CentOS 5"
153 BuildRequires: redhat-release
157 %if 0%{?suse_version} == 1020
158 %define build_su102 1
159 %define _dist "OpenSUSE 10.2"
160 BuildRequires: suse-release
164 %if 0%{?suse_version} == 1030
165 %define build_su103 1
166 %define _dist "OpenSUSE 10.3"
167 BuildRequires: suse-release
170 %if 0%{?suse_version} == 1100
171 %define build_su110 1
172 %define _dist "SUSE 11"
173 BuildRequires: suse-release
177 %if 0%{?suse_version} == 1110
178 %define build_su111 1
179 %define _dist "SUSE 11"
182 %if 0%{?suse_version} == 1120
183 %define build_su112 1
184 %define _dist "SUSE 11"
188 %if 0%{?sles_version} == 9
190 %define _dist "SLES 9"
194 %if 0%{?sles_version} == 10
196 %define _dist "SLE 10"
200 %if 0%{?sles_version} == 11
201 %define build_su111 1
202 %define _dist "SLES 11"
209 # any patches for this release
210 # be sure to check the setup section for patch macros
212 #--------------------------------------------------------------------------
213 # it should not be necessary to change anything below here for a release
214 # except for patch macros in the setup section
215 #--------------------------------------------------------------------------
217 %{?contrib_packager:%define _packager %{contrib_packager}}
219 Summary: Bacula - The Network Backup Solution
223 Group: System Environment/Daemons
225 BuildRoot: %{_tmppath}/%{name}-root
226 URL: http://www.bacula.org/
227 Vendor: The Bacula Team
228 Packager: %{_packager}
231 Source0: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
232 # opensuse build service changes the release itself
233 # what happens if the release is not 1? DSB
235 Source1: Release_Notes-%{version}-1.tar.gz
237 Source1: Release_Notes-%{version}-%{release}.tar.gz
239 Source2: bacula-2.2.7-postgresql.patch
240 Source3: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
242 # define the basic package description
243 %define blurb Bacula - It comes by night and sucks the vital essence from your computers.
244 %define blurb2 Bacula is a set of computer programs that permit you (or the system
245 %define blurb3 administrator) to manage backup, recovery, and verification of computer
246 %define blurb4 data across a network of computers of different kinds. In technical terms,
247 %define blurb5 it is a network client/server based backup program. Bacula is relatively
248 %define blurb6 easy to use and efficient, while offering many advanced storage management
249 %define blurb7 features that make it easy to find and recover lost or damaged files.
250 %define blurb8 Bacula source code has been released under the GPL version 2 license.
252 %define user_file /etc/passwd
253 %define group_file /etc/group
256 %define useradd /usr/sbin/useradd
257 %define groupadd /usr/sbin/groupadd
258 %define usermod /usr/sbin/usermod
260 # platform defines - set one below or define the build_xxx on the command line
263 %{?build_rh7:%define rh7 1}
265 %{?build_rh8:%define rh8 1}
267 %{?build_rh9:%define rh9 1}
270 %{?build_fc1:%define fc1 1}
272 %{?build_fc3:%define fc3 1}
274 %{?build_fc4:%define fc4 1}
276 %{?build_fc5:%define fc5 1}
278 %{?build_fc6:%define fc6 1}
280 %{?build_fc7:%define fc7 1}
282 %{?build_fc8:%define fc8 1}
284 %{?build_fc9:%define fc9 1}
286 %{?build_fc10:%define fc10 1}
287 # Whitebox Enterprise build
289 %{?build_wb3:%define wb3 1}
290 # RedHat Enterprise builds
292 %{?build_rhel3:%define rhel3 1}
293 %{?build_rhel3:%define wb3 1}
295 %{?build_rhel4:%define rhel4 1}
296 %{?build_rhel4:%define fc3 1}
298 %{?build_rhel5:%define rhel5 1}
299 %{?build_rhel5:%define fc6 1}
302 %{?build_centos3:%define centos3 1}
303 %{?build_centos3:%define wb3 1}
305 %{?build_centos4:%define centos4 1}
306 %{?build_centos4:%define fc3 1}
308 %{?build_centos5:%define centos5 1}
309 %{?build_centos5:%define fc6 1}
312 %{?build_sl3:%define sl3 1}
313 %{?build_sl3:%define wb3 1}
315 %{?build_sl4:%define sl4 1}
316 %{?build_sl4:%define fc3 1}
318 %{?build_sl5:%define sl5 1}
319 %{?build_sl5:%define fc6 1}
322 %{?build_su9:%define su9 1}
324 %{?build_su10:%define su10 1}
326 %{?build_su102:%define su102 1}
328 %{?build_su103:%define su103 1}
330 %{?build_su110:%define su110 1}
332 %{?build_su111:%define su111 1}
334 %{?build_su112:%define su112 1}
337 %{?build_mdk:%define mdk 1}
339 %{?build_mdv:%define mdv 1}
340 %{?build_mdv:%define mdk 1}
343 %define client_only 0
344 %{?build_client_only:%define client_only 1}
346 # Setup some short cuts
348 %if %{rh7} || %{rh8} || %{rh9}
352 %if %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc6} || %{fc7} || %{fc8} || %{fc9} || %{fc10}
356 %if %{su9} || %{su10} || %{su102} || %{su103} || %{su110} || %{su111} || %{su112}
360 %if %{rhel3} || %{rhel4} || %{rhel5} || %{centos3} || %{centos4} || %{centos5}
364 %if %{sl3} || %{sl4} || %{sl5}
369 # test for a platform definition
370 %if !%{rhat} && !%{rhel} && !%{fed} && !%{wb3} && !%{suse} && !%{mdk} && !%{scil}
371 %{error: You must specify a platform. Please examine the spec file.}
375 # distribution-specific directory for logwatch
376 %if %{wb3} || %{rh7} || %{rh8} || %{rh9} || %{fc1} || %{fc3} || %{fc4}
377 %define logwatch_dir /etc/log.d
379 %define logwatch_dir /etc/logwatch
383 # set for database support desired or define the build_xxx on the command line
385 %{?build_mysql:%define mysql 1}
386 # if using mysql 4.x define this and mysql above
387 # currently: Mandrake 10.1, SuSE 9.x & 10.0, RHEL4 and Fedora Core 4
389 %{?build_mysql4:%define mysql4 1}
390 %{?build_mysql4:%define mysql 1}
391 # if using mysql 5.x define this and mysql above
392 # currently: SuSE 10.1 and Fedora Core 5
394 %{?build_mysql5:%define mysql5 1}
395 %{?build_mysql5:%define mysql 1}
397 %{?build_sqlite:%define sqlite 1}
399 %{?build_postgresql:%define postgresql 1}
401 # test for a database definition
402 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
403 %{error: You must specify database support. Please examine the spec file.}
408 %define db_backend mysql
411 %define db_backend sqlite3
414 %define db_backend postgresql
419 %{?build_x86_64:%define x86_64 1}
421 # check what distribution we are
422 %if %{rhat} || %{rhel}
423 %define _dist %(grep Red /etc/redhat-release)
425 %if %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc7} || %{fc8} || %{fc9} || %{fc10}
426 %define _dist %(grep Fedora /etc/redhat-release)
428 %if %{centos5} || %{centos4} || %{centos3}
429 %define _dist %(grep CentOS /etc/redhat-release)
431 %if %{sl5} ||%{sl4} || %{sl3}
432 %define _dist %(grep 'Scientific Linux' /etc/redhat-release)
434 %if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3}
435 %define _dist %(grep White /etc/whitebox-release)
438 %define _dist %(grep -i SuSE /etc/SuSE-release)
441 %define _dist %(grep Mand /etc/mandrake-release)
443 %{?DISTNAME:%define _dist %{DISTNAME}}
445 # only set Disribution if not in opensuse build service, as it sets it itself
446 %if ! 0%{?opensuse_bs}
447 Distribution: %{_dist}
450 %if 0%{?opensuse_bs} && %{mysql} && %{suse}
451 # needed in opensuse_bs, as rpm is installed during build process
452 BuildRequires: libmysqlclient-devel
453 BuildRequires: mysql-client
456 %if 0%{?opensuse_bs} && %{suse} && %{postgresql}
457 BuildRequires: postgresql
458 BuildRequires: postgresql-server
460 BuildRequires: openssl
462 %if 0%{?opensuse_bs} && %{suse}
463 BuildRequires: pwdutils
464 BuildRequires: sysconfig
467 # should we turn on python support
469 %{?build_python:%define python 1}
471 # specifically disallow build of mtx package if desired
473 %{?nobuild_mtx:%define mtx 0}
475 # do we need to patch for old postgresql version?
477 %{?build_old_pgsql:%define old_pgsql 1}
479 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
481 %define manpage_ext bz2
483 %define manpage_ext gz
486 # for client only build
495 BuildRequires: gcc, gcc-c++, make, autoconf
496 BuildRequires: glibc, glibc-devel
497 BuildRequires: ncurses-devel, perl
498 BuildRequires: libstdc++-devel, zlib-devel
499 BuildRequires: openssl-devel
500 BuildRequires: libacl-devel
501 BuildRequires: pkgconfig
503 BuildRequires: libxml2-devel
506 BuildRequires: python, python-devel
507 %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
511 BuildRequires: libtermcap-devel
512 BuildRequires: libxml-devel
515 BuildRequires: termcap
518 BuildRequires: libtermcap-devel
519 BuildRequires: libstdc++-static-devel
520 BuildRequires: glibc-static-devel
522 %if %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc7} || %{fc8}
523 BuildRequires: libtermcap-devel
526 BuildRequires: sqlite-devel
530 BuildRequires: mysql-devel
533 %if %{postgresql} && %{wb3}
534 BuildRequires: rh-postgresql-devel >= 7
537 %if %{postgresql} && ! %{wb3}
538 BuildRequires: postgresql-devel >= 7
562 Summary: Bacula - The Network Backup Solution
563 Group: System Environment/Daemons
564 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
565 Conflicts: bacula-client
567 Requires: ncurses, libstdc++, zlib, openssl
570 %if %{rhel} || %{rhat} || %{fed}
581 %if %{suse} || %{mdk}
582 Requires: mysql-client
584 Requires: mysql-server
588 %if %{postgresql} && %{wb3}
589 Requires: rh-postgresql >= 7
590 Requires: rh-postgresql-server >= 7
592 %if %{postgresql} && ! %{wb3}
593 Requires: postgresql >= 7
594 Requires: postgresql-server >= 7
604 %description postgresql
608 Requires: python >= %{pyver}
622 This build requires MySQL to be installed separately as the catalog database.
625 This build requires PostgreSQL to be installed separately as the catalog database.
628 This build incorporates sqlite3 as the catalog database, statically compiled.
631 This build includes python scripting support.
635 Summary: Bacula - The Network Backup Solution
636 Group: System Environment/Daemons
638 Conflicts: bacula-mysql
639 Conflicts: bacula-sqlite
640 Conflicts: bacula-postgresql
646 Requires: libstdc++, zlib, openssl
656 Requires: python >= %{pyver}
670 This is the File daemon (Client) only package. It includes the command line
673 This build includes python scripting support.
679 Summary: Bacula - The Network Backup Solution
680 Group: System Environment/Daemons
682 %description updatedb
693 This package installs scripts for updating older versions of the bacula
697 # Must explicitly enable debug pkg on SuSE
698 # but not in opensuse_bs
699 %if %{suse} && ! 0%{?opensuse_bs}
711 export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap"
721 %if %{wb3} || %{old_pgsql}
722 patch -p3 src/cats/postgresql.c < %SOURCE2
726 # patches for the bundled sqlite scripts
728 # patch the make_sqlite_tables script for installation bindir
729 patch src/cats/make_sqlite3_tables.in src/cats/make_sqlite3_tables.in.patch
731 # patch the create_sqlite_database script for installation bindir
732 patch src/cats/create_sqlite3_database.in src/cats/create_sqlite3_database.in.patch
734 # patch the make_catalog_backup script for installation bindir
735 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
737 # patch the update_sqlite_tables script for installation bindir
738 patch src/cats/update_sqlite3_tables.in src/cats/update_sqlite3_tables.in.patch
740 # patch the bacula-dir init script to remove sqlite service
741 %if %{sqlite} && %{suse}
742 patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
746 # 64 bit lib location hacks
747 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
748 # reported to be fixed to properly detect lib locations.
750 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
752 %if %{mysql} && %{x86_64}
753 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
755 %if %{python} && %{x86_64}
756 export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}"
759 # Main Bacula configuration
761 --prefix=%{_prefix} \
762 --sbindir=%{_sbindir} \
763 --sysconfdir=%{sysconf_dir} \
764 --mandir=%{_mandir} \
765 --with-scriptdir=%{script_dir} \
766 --with-working-dir=%{working_dir} \
767 --with-plugindir=%{script_dir} \
768 --with-pid-dir=%{pid_dir} \
769 --with-subsys-dir=%{_subsysdir} \
770 --enable-smartalloc \
772 --disable-bwx-console \
773 --disable-tray-monitor \
778 --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \
789 --enable-client-only \
791 %if %{rh7} || %{rh8} || %{rh9} || %{fc1} || %{fc3} || %{wb3}
792 --disable-batch-insert \
794 --with-dir-user=%{director_daemon_user} \
795 --with-dir-group=%{daemon_group} \
796 --with-sd-user=%{storage_daemon_user} \
797 --with-sd-group=%{storage_daemon_group} \
798 --with-fd-user=%{file_daemon_user} \
799 --with-fd-group=%{daemon_group} \
800 --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
801 --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
802 --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
803 --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
804 --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
805 --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
813 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
814 mkdir -p $RPM_BUILD_ROOT/etc/init.d
815 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
816 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles
817 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/conf/services
818 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services
819 mkdir -p $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared
820 mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb
822 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
823 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
826 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
829 make DESTDIR=$RPM_BUILD_ROOT install
832 # Program docs not installed on client
833 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext}
834 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext}
835 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext}
836 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext}
837 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext}
838 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext}
839 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext}
840 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext}
841 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext}
843 # Docs for programs that are depreciated
844 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext}
845 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext}
846 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
847 rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole
849 # fixme - make installs the mysql scripts for sqlite build
851 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
852 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
853 rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges
856 # fixme - make installs the mysql scripts for postgresql build
858 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
859 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
862 # install the init scripts
864 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
865 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
866 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
869 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
870 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
871 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
873 %if ! %{suse} && ! %{mdk}
874 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
875 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
876 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
878 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
880 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
881 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
886 cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3
887 cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h
888 cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a
892 # install the logrotate file
893 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
895 # install the updatedb scripts
896 cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/
898 # install the logwatch scripts
900 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
901 cp -p scripts/logwatch/applybaculadate $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
902 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
903 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
904 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/services/bacula
905 chmod 755 $RPM_BUILD_ROOT%{logwatch_dir}/scripts/shared/applybaculadate
906 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/logfiles/bacula.conf
907 chmod 644 $RPM_BUILD_ROOT%{logwatch_dir}/conf/services/bacula.conf
910 # now clean up permissions that are left broken by the install
911 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
913 # fix me - building enable-client-only installs files not included in bacula-client package
915 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula
916 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula_config
917 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir
918 rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd
919 rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer
920 rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler
921 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer
922 rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql
923 rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql
924 rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb
925 rm -f $RPM_BUILD_ROOT%{script_dir}/bconsole
926 rm -f $RPM_BUILD_ROOT%{script_dir}/bpipe-fd.so
927 rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer.conf
928 rm -f $RPM_BUILD_ROOT%{_sbindir}/bacula
932 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
934 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-1.txt
936 rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt
941 # MySQL specific files
943 %defattr(-, root, root)
944 %attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database
945 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database
946 %attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables
947 %attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables
948 %attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables
949 %attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges
950 %attr(-, root, %{daemon_group}) %{script_dir}/startmysql
951 %attr(-, root, %{daemon_group}) %{script_dir}/stopmysql
956 %defattr(-,root,root)
957 %attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database
958 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database
959 %attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges
960 %attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables
961 %attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables
962 %attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables
963 %{sqlite_bindir}/libsqlite3.a
964 %{sqlite_bindir}/sqlite3.h
965 %{sqlite_bindir}/sqlite3
972 %defattr(-,root,root)
973 %attr(-, root, %{daemon_group}) %{script_dir}/create_postgresql_database
974 %attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_database
975 %attr(-, root, %{daemon_group}) %{script_dir}/make_postgresql_tables
976 %attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables
977 %attr(-, root, %{daemon_group}) %{script_dir}/update_postgresql_tables
978 %attr(-, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges
979 # The rest is DB backend independent
981 # opensuse_bs: directories not owned by any package
982 %dir %attr(-, root, %{daemon_group}) %{sysconf_dir}
985 %attr(-, root, %{daemon_group}) %dir %{script_dir}
986 %attr(-, root, %{daemon_group}) %{script_dir}/bacula
987 %attr(-, root, %{daemon_group}) %{script_dir}/bacula_config
988 %attr(-, root, %{daemon_group}) %{script_dir}/bconsole
989 %attr(-, root, %{daemon_group}) %{script_dir}/create_bacula_database
990 %attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_database
991 %attr(-, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges
992 %attr(-, root, %{daemon_group}) %{script_dir}/make_bacula_tables
993 %attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_tables
994 %attr(-, root, %{daemon_group}) %{script_dir}/update_bacula_tables
995 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup
996 %attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup.pl
997 %attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup
998 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
999 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1000 %attr(-, root, %{daemon_group}) %{script_dir}/disk-changer
1001 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir
1002 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd
1003 %attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd
1004 %attr(-, root, %{daemon_group}) %{script_dir}/bpipe-fd.so
1005 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
1006 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
1007 %attr(-, root, %{daemon_group}) %{_sbindir}/dbcheck
1008 %attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler
1009 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
1010 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer
1011 %attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer.conf
1013 /etc/logrotate.d/bacula
1014 %{logwatch_dir}/scripts/services/bacula
1015 %{logwatch_dir}/scripts/shared/applybaculadate
1016 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf
1017 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1018 %attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf
1019 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1020 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/logfiles/bacula.conf
1021 %attr(-, root, %{daemon_group}) %config(noreplace) %{logwatch_dir}/conf/services/bacula.conf
1022 %attr(-, root, %{daemon_group}) %config(noreplace) %{script_dir}/query.sql
1024 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
1026 %{_sbindir}/bacula-dir
1027 %{_sbindir}/bacula-fd
1028 %{_sbindir}/bacula-sd
1031 %{_sbindir}/bextract
1035 %{_sbindir}/btraceback
1036 %{_sbindir}/bconsole
1040 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1041 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
1042 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
1043 %{_mandir}/man8/bacula.8.%{manpage_ext}
1044 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1045 %{_mandir}/man8/bcopy.8.%{manpage_ext}
1046 %{_mandir}/man8/bextract.8.%{manpage_ext}
1047 %{_mandir}/man8/bls.8.%{manpage_ext}
1048 %{_mandir}/man8/bscan.8.%{manpage_ext}
1049 %{_mandir}/man8/btape.8.%{manpage_ext}
1050 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1051 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
1052 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
1053 %{_mandir}/man1/bat.1.%{manpage_ext}
1055 %_prefix/share/doc/*
1057 # opensuse build service changes the release itself
1058 %if 0%{?opensuse_bs}
1059 %doc ../Release_Notes-%{version}-1.txt
1061 %doc ../Release_Notes-%{version}-%{release}.txt
1067 # test for bacula database older than version 12
1068 # note: this ASSUMES no password has been set for bacula database
1069 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1074 # are we upgrading from sqlite to sqlite3?
1075 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
1076 echo "This version of bacula-sqlite involves an upgrade to sqlite3."
1077 echo "Your catalog database file is not compatible with sqlite3, thus"
1078 echo "you will need to dump the data, delete the old file, and re-run"
1079 echo "this rpm upgrade."
1081 echo "Backing up your current database..."
1082 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql
1083 mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old
1084 echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your"
1085 echo "catalog file has been renamed %{working_dir}/bacula.db.old."
1087 echo "Please re-run this rpm package upgrade."
1088 echo "After the upgrade is complete, restore your catalog"
1089 echo "with the following commands:"
1090 echo "%{script_dir}/drop_sqlite3_tables"
1091 echo "cd %{working_dir}"
1092 echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql"
1093 echo "chown bacula.bacula bacula.db"
1096 # test for bacula database older than version 11 and sqlite3
1097 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then
1098 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1103 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
1106 %if ! %{client_only}
1107 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "11" ]; then
1108 echo "This bacula upgrade will update a bacula database from version 11 to 12."
1109 echo "You appear to be running database version $DB_VER. You must first update"
1110 echo "your database to version 11 and then install this upgrade. The alternative"
1111 echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current"
1112 echo "catalog information, then do the upgrade. Information on updating a"
1113 echo "database older than version 11 can be found in the release notes."
1122 %if ! %{client_only}
1123 # check for and copy %{sysconf_dir}/console.conf to bconsole.conf
1124 if [ -s %{sysconf_dir}/console.conf ];then
1125 cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf
1128 # create the daemon users and groups
1129 # first create the groups if they don't exist
1130 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1131 if [ -z "$HAVE_BACULA" ]; then
1132 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1133 echo "The group %{daemon_group} has been added to %{group_file}."
1134 echo "See the manual chapter \"Running Bacula\" for details."
1136 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
1137 if [ -z "$HAVE_BACULA" ]; then
1138 %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
1139 echo "The group %{storage_daemon_group} has been added to %{group_file}."
1140 echo "See the manual chapter \"Running Bacula\" for details."
1142 # now create the users if they do not exist
1143 # we do not use the -g option allowing the primary group to be set to system default
1144 # this will be a unique group on redhat type systems or the group users on some systems
1145 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1146 if [ -z "$HAVE_BACULA" ]; then
1147 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1148 echo "The user %{storage_daemon_user} has been added to %{user_file}."
1149 echo "See the manual chapter \"Running Bacula\" for details."
1151 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1152 if [ -z "$HAVE_BACULA" ]; then
1153 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1154 echo "The user %{director_daemon_user} has been added to %{user_file}."
1155 echo "See the manual chapter \"Running Bacula\" for details."
1157 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1158 if [ -z "$HAVE_BACULA" ]; then
1159 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1160 echo "The user %{file_daemon_user} has been added to %{user_file}."
1161 echo "See the manual chapter \"Running Bacula\" for details."
1163 # now we add the supplementary groups, this is ok to call even if the users already exist
1164 # we only do this if the user is NOT root
1165 IS_ROOT=%{director_daemon_user}
1166 if [ "$IS_ROOT" != "root" ]; then
1167 %{usermod} -G %{daemon_group} %{director_daemon_user}
1169 IS_ROOT=%{storage_daemon_user}
1170 if [ "$IS_ROOT" != "root" ]; then
1171 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1173 IS_ROOT=%{file_daemon_user}
1174 if [ "$IS_ROOT" != "root" ]; then
1175 %{usermod} -G %{daemon_group} %{file_daemon_user}
1188 %if ! %{client_only}
1190 if [ "$1" -ge 1 ] ; then
1191 %if %{suse} && %{mysql}
1192 /sbin/chkconfig --add mysql
1194 %if %{suse} && %{postgresql}
1195 /sbin/chkconfig --add postgresql
1197 /sbin/chkconfig --add bacula-dir
1198 /sbin/chkconfig --add bacula-fd
1199 /sbin/chkconfig --add bacula-sd
1205 #check, if mysql can be called successfully at all
1206 if mysql 2>/dev/null bacula -e 'select * from Version;' ; then
1208 # test for an existing database
1209 # note: this ASSUMES no password has been set for bacula database
1210 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1212 # grant privileges and create tables if they do not exist
1213 if [ -z "$DB_VER" ]; then
1214 echo "Hmm, it doesn't look like you have an existing database."
1215 echo "Granting privileges for MySQL user bacula..."
1216 %{script_dir}/grant_mysql_privileges
1217 echo "Creating MySQL bacula database..."
1218 %{script_dir}/create_mysql_database
1219 echo "Creating bacula tables..."
1220 %{script_dir}/make_mysql_tables
1222 # check to see if we need to upgrade a 3.x database
1223 elif [ "$DB_VER" -lt "12" ]; then
1224 echo "This release requires an upgrade to your bacula database."
1225 echo "Backing up your current database..."
1226 mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1227 echo "Upgrading bacula database ..."
1228 %{script_dir}/update_mysql_tables
1229 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1236 # test for an existing database
1237 if [ -s %{working_dir}/bacula.db ]; then
1238 DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1239 # check to see if we need to upgrade a 3.x database
1240 if [ "$DB_VER" -lt "12" ] && [ "$DB_VER" -ge "11" ]; then
1241 echo "This release requires an upgrade to your bacula database."
1242 echo "Backing up your current database..."
1243 echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1244 echo "Upgrading bacula database ..."
1245 %{script_dir}/update_sqlite3_tables
1246 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1249 # create the database and tables
1250 echo "Hmm, doesn't look like you have an existing database."
1251 echo "Creating SQLite database..."
1252 %{script_dir}/create_sqlite3_database
1253 chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db
1254 echo "Creating the SQLite tables..."
1255 %{script_dir}/make_sqlite3_tables
1260 # check if psql can be called successfully at all
1261 if echo 'select * from Version;' | psql bacula 2>/dev/null; then
1263 # test for an existing database
1264 # note: this ASSUMES no password has been set for bacula database
1265 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
1267 # grant privileges and create tables if they do not exist
1268 if [ -z "$DB_VER" ]; then
1269 echo "Hmm, doesn't look like you have an existing database."
1270 echo "Creating PostgreSQL bacula database..."
1271 %{script_dir}/create_postgresql_database
1272 echo "Creating bacula tables..."
1273 %{script_dir}/make_postgresql_tables
1274 echo "Granting privileges for PostgreSQL user bacula..."
1275 %{script_dir}/grant_postgresql_privileges
1277 # check to see if we need to upgrade a 3.x database
1278 elif [ "$DB_VER" -lt "12" ]; then
1279 echo "This release requires an upgrade to your bacula database."
1280 echo "Backing up your current database..."
1281 pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1282 echo "Upgrading bacula database ..."
1283 %{script_dir}/update_postgresql_tables
1284 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1290 %if ! %{client_only}
1291 if [ -d %{sysconf_dir} ]; then
1293 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
1294 pass=`openssl rand -base64 33`
1295 for file in *.conf; do
1296 sed "s@${string}@${pass}@g" $file > $file.new
1297 cp -f $file.new $file; rm -f $file.new
1300 # put actual hostname in conf file
1302 string="XXX_HOSTNAME_XXX"
1303 for file in *.conf; do
1304 sed "s@${string}@${host}@g" $file >$file.new
1305 cp -f $file.new $file; rm -f $file.new
1310 exit 0 # always exit successfull, as otherwise opensuse build service complains
1322 %if ! %{client_only}
1325 /sbin/chkconfig --del bacula-dir
1326 /sbin/chkconfig --del bacula-fd
1327 /sbin/chkconfig --del bacula-sd
1332 # added: run ldconfig in postun
1345 %defattr(-,root,root)
1346 %attr(-, root, %{daemon_group}) %dir %{script_dir}
1347 %{script_dir}/bacula-ctl-fd
1348 /etc/init.d/bacula-fd
1350 /etc/logrotate.d/bacula
1352 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf
1353 %attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf
1354 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1356 %{_sbindir}/bacula-fd
1357 %{_sbindir}/btraceback
1358 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb
1359 %attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx
1360 %{_sbindir}/bconsole
1361 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1362 %{_mandir}/man8/bacula.8.%{manpage_ext}
1363 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1364 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1365 %{_mandir}/man1/bat.1.%{manpage_ext}
1367 %{_libdir}/libbaccfg.*
1368 %{_libdir}/libbacfind.*
1369 %{_libdir}/libbacpy.*
1370 %_prefix/share/doc/*
1372 #opensuse_bs: directories not owned by any package
1373 %dir %attr(-, root, %{daemon_group}) %{sysconf_dir}
1376 # create the daemon group and user
1377 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1378 if [ -z "$HAVE_BACULA" ]; then
1379 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1380 echo "The group %{daemon_group} has been added to %{group_file}."
1381 echo "See the manual chapter \"Running Bacula\" for details."
1383 # we do not use the -g option allowing the primary group to be set to system default
1384 # this will be a unique group on redhat type systems or the group users on some systems
1385 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1386 if [ -z "$HAVE_BACULA" ]; then
1387 %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1388 echo "The user %{file_daemon_user} has been added to %{user_file}."
1389 echo "See the manual chapter \"Running Bacula\" for details."
1391 # now we add the supplementary group, this is ok to call even if the user already exists
1392 # we only do this if the user is NOT root
1393 IS_ROOT=%{file_daemon_user}
1394 if [ "$IS_ROOT" != "root" ]; then
1395 %{usermod} -G %{daemon_group} %{file_daemon_user}
1400 if [ "$1" -ge 1 ] ; then
1401 /sbin/chkconfig --add bacula-fd
1404 if [ -d %{sysconf_dir} ]; then
1406 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
1407 pass=`openssl rand -base64 33`
1408 for file in *.conf; do
1409 sed "s@${string}@${pass}@g" $file > $file.new
1410 cp -f $file.new $file; rm -f $file.new
1413 # put actual hostname in conf file
1415 string="XXX_HOSTNAME_XXX"
1416 for file in *.conf; do
1417 sed "s@${string}@${host}@g" $file >$file.new
1418 cp -f $file.new $file; rm -f $file.new
1427 /sbin/chkconfig --del bacula-fd
1433 %if ! %{client_only}
1435 %defattr(-,root,%{daemon_group})
1436 %{script_dir}/updatedb/*
1437 #oensuse_bs: directories not owned by any package
1438 #%{script_dir}/updatedb
1441 # create the daemon group
1442 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1443 if [ -z "$HAVE_BACULA" ]; then
1444 %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1445 echo "The group %{daemon_group} has been added to %{group_file}."
1446 echo "See the manual chapter \"Running Bacula\" for details."
1450 echo "The database update scripts were installed to %{script_dir}/updatedb"
1454 * Sat Feb 13 2010 D. Scott Barninger <barninger@fairfieldcomputers.com>
1455 - fix client only build
1456 * Sun Feb 07 2010 D. Scott Barninger <barninger@fairfieldcomputers.com>
1457 - fix mysql database upgrade
1458 * Fri Feb 05 2010 D. Scott Barninger <barninger@fairfieldcomputers.com>
1459 - fix permissions of dbcheck
1461 * Sat Jan 30 2010 D. Scott Barninger <barninger@fairfieldcomputers.com>
1463 - add su112 and fc10 builds, remove doc package declaration.
1464 - fix source path for logwatch files.
1465 - restore static bundled build of sqlite (who took that out?) and remove use
1466 - of system sqlite. we don't support use of sqlite2.
1467 - upgrade database from version 11 to 12.
1468 * Mon Aug 10 2009 Philipp Storz <philipp.storz@dass-it.de>
1469 - changes to work with opensuse build service
1470 * Sat Aug 1 2009 Kern Sibbald <kern@sibbald.com>
1471 - Split docs into separate bacula-docs.spec, bacula-bat.spec and bacula-mtx.spec
1472 - removed build of rescue, gnome console and wxconsole
1473 * Sat Jun 20 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1474 - Fix bat install which is now handled by make and uses shared libs
1475 * Sat May 16 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1476 - fix libxml dependency for rh7 per Pasi Kärkkäinen <pasik@iki.fi>
1477 * Mon May 04 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1478 - Fix post ldconfig problem in client only build
1479 * Sun May 03 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1480 - remove more files installed by client-only build not needed by client package
1481 - remove libbacsql files from client package
1482 * Sat May 02 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1484 - update for new docs configuration
1485 * Sat Apr 25 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1486 - add switch to pass Distribution tag
1487 * Sun Apr 5 2009 D. Scott Barninger <barninger@fairfieldcomputers.com>
1489 - database update version 10 to 11
1490 - make now installs docs so we rm from buildroot
1491 - add shared libs in %_libdir and other misc new files
1492 * Wed Dec 31 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1494 * Sat Nov 08 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1495 - set paths for QT using pkgconfig
1496 * Sat Oct 11 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1497 - release 2.4.3 update depkgs to 11Sep08 remove file nmshack from mtx package
1498 * Sun Sep 07 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1499 - adjust /opt/bacula install
1500 - add build switch to supress rescue package
1501 * Sun Aug 24 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1502 - add support for install to /opt/bacula
1503 * Sun Aug 17 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1504 - remove libtermcap dependancy for FC9
1505 * Mon Aug 04 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1506 - fix bat dependencies
1507 * Sat Jun 28 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1509 * Sat May 24 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1511 * Sun Mar 30 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1512 - FHS compatibility changes
1513 * Sat Feb 16 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1514 - remove fix for false buffer overflow detection with glibc >= 2.7
1515 * Sat Feb 09 2008 D. Scott Barninger <barninger@fairfieldcomputers.com>
1516 - fix for false buffer overflow detection with glibc >= 2.7