]> git.pld-linux.org Git - packages/bacula.git/blame_incremental - bacula.spec
- switch to libexecdir
[packages/bacula.git] / bacula.spec
... / ...
CommitLineData
1## TODO:
2# - fix libtoolize
3# - update desktop files, think about su-wrappers for console (with .desktop files)
4# - fix log file permissions
5#
6# Conditional build:
7%if "%{pld_release}" == "ac"
8%bcond_with qt # BAT / qt-console Qt4 GUI
9%else
10%bcond_without qt # BAT / qt-console Qt4 GUI
11%endif
12%bcond_without mysql # use MySQL
13%bcond_without pgsql # use PostgreSQL
14%bcond_without sqlite3 # use SQLite3
15%bcond_without nagios # build nagios plugin
16%bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
17
18%if %{without sqlite3}
19%undefine with_sqlite3_sync_off
20%endif
21
22%define qtver 4.8.4
23Summary: Bacula - The Network Backup Solution
24Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
25Name: bacula
26Version: 7.4.4
27Release: 2
28License: AGPL v3
29Group: Networking/Utilities
30Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
31# Source0-md5: aed11c1eef1198ffc76c6fca55cea3ad
32Source10: %{name}-dir.init
33Source11: %{name}-fd.init
34Source12: %{name}-sd.init
35Source13: %{name}.logrotate
36Source14: %{name}-dir.sysconfig
37Source15: %{name}-fd.sysconfig
38Source16: %{name}-sd.sysconfig
39Source17: %{name}-dir.service
40Source18: %{name}-fd.service
41Source19: %{name}-sd.service
42Patch0: %{name}-mtx-changer.patch
43Patch1: %{name}-branding.patch
44Patch2: %{name}-desktop.patch
45Patch3: make_catalog_backup-setup-home.patch
46Patch4: %{name}-no_lockmgr.patch
47Patch5: x32.patch
48URL: http://www.bacula.org/
49BuildRequires: acl-devel
50BuildRequires: autoconf >= 2.61
51BuildRequires: automake
52BuildRequires: gettext-tools
53BuildRequires: libcap-devel
54BuildRequires: libtool >= 2:2.2
55BuildRequires: libwrap-devel
56BuildRequires: ncurses-devel
57BuildRequires: openssl-devel
58BuildRequires: pkgconfig
59BuildRequires: python
60BuildRequires: python-modules
61%if %{with qt}
62BuildRequires: QtCore-devel
63BuildRequires: QtGui-devel
64BuildRequires: qt4-build >= %{qtver}
65BuildRequires: qt4-qmake >= %{qtver}
66%endif
67%{?with_mysql:BuildRequires: mysql-devel}
68%{?with_pgsql:BuildRequires: postgresql-devel}
69BuildRequires: readline-devel
70BuildRequires: rpm >= 4.4.9-56
71BuildRequires: rpm-pythonprov
72BuildRequires: rpmbuild(macros) >= 1.644
73BuildRequires: sed >= 4.0
74%{?with_sqlite3:BuildRequires: sqlite3-devel}
75BuildRequires: which
76BuildRequires: zlib-devel
77Requires: systemd-units >= 38
78BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
80%define _sysconfdir /etc/%{name}
81%define _localstatedir /var/lib/%{name}
82%define nagiosplugindir %{_libdir}/nagios/plugins
83
84# db packages contain duplicates
85%define _duplicate_files_terminate_build 0
86
87# from 'the worst' to 'the best'
88%define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
89
90# dependency section is broken. ccache usage is instead to makefiles
91%undefine with_ccache
92
93%description
94Bacula - It comes by night and sucks the vital essence from your
95computers.
96
97Bacula is a set of computer programs that permit you (or the system
98administrator) to manage backup, recovery, and verification of
99computer data across a network of computers of different kinds. In
100technical terms, it is a network client/server based backup program.
101Bacula is relatively easy to use and efficient, while offering many
102advanced storage management features that make it easy to find and
103recover lost or damaged files.
104
105%description -l pl.UTF-8
106Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
107
108Bacula to zbiór programów umożliwiających administratorowi na
109zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
110sieci komputerów różnego rodzaju. W terminologii technicznej jest to
111program do kopii zapasowych pracujący w architekturze klient-serwer.
112Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
113wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
114ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
115plików.
116
117%package common
118Summary: Common files for bacula package
119Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
120Group: Networking/Utilities
121Requires(post): openssl-tools
122Requires(post): sed >= 4.0
123Requires(post,preun): /sbin/chkconfig
124Requires(postun): /usr/sbin/groupdel
125Requires(postun): /usr/sbin/userdel
126Requires(pre): /usr/sbin/groupadd
127Requires(pre): /usr/sbin/useradd
128Conflicts: bacula-console < 0:1.34.6
129Conflicts: bacula-dir < 0:1.34.6
130Conflicts: bacula-fd < 0:1.34.6
131Conflicts: bacula-sd < 0:1.34.6
132Conflicts: logrotate < 3.8.0
133
134%description common
135Bacula - It comes by night and sucks the vital essence from your
136computers.
137
138Bacula is a set of computer programs that permit you (or the system
139administrator) to manage backup, recovery, and verification of
140computer data across a network of computers of different kinds. In
141technical terms, it is a network client/server based backup program.
142Bacula is relatively easy to use and efficient, while offering many
143advanced storage management features that make it easy to find and
144recover lost or damaged files.
145
146%description common -l pl.UTF-8
147Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
148
149Bacula to zbiór programów umożliwiających administratorowi na
150zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
151sieci komputerów różnego rodzaju. W terminologii technicznej jest to
152program do kopii zapasowych pracujący w architekturze klient-serwer.
153Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
154wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
155ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
156plików.
157
158%package dir
159Summary: Bacula Director and Catalog services
160Summary(pl.UTF-8): Usługi Bacula Director i Catalog
161Group: Networking/Utilities
162Requires(post): sed >= 4.0
163Requires: %{name}-common = %{version}-%{release}
164Requires: bacula(db) = %{version}-%{release}
165Requires: systemd-units >= 38
166Obsoletes: bacula-updatedb
167
168%description dir
169Bacula - It comes by night and sucks the vital essence from your
170computers.
171
172Bacula Director is the program that supervises all the backup,
173restore, verify and archive operations. The system administrator uses
174the Bacula Director to schedule backups and to recover files. Catalog
175services are comprised of the software programs responsible for
176maintaining the file indexes and volume databases for all files backed
177up. The Catalog services permit the System Administrator or user to
178quickly locate and restore any desired file, since it maintains a
179record of all Volumes used, all Jobs run, and all Files saved.
180
181%description dir -l pl.UTF-8
182Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
183
184Bacula Director to program nadzorujący wszystkie operacje wykonywania
185kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
186Administrator używa Bacula Directora do szeregowania kopii zapasowych
187oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
188używane przez programy odpowiedzialne za zarządzanie indeksami plików
189i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
190katalogowe umożliwiają administratorowi lub użytkownikowi szybko
191zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
192wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
193plikami.
194
195%package console
196Summary: Bacula Console
197Summary(pl.UTF-8): Konsola Baculi
198Group: Networking/Utilities
199Requires(post): sed >= 4.0
200Requires: %{name}-common = %{version}-%{release}
201
202%description console
203Bacula - It comes by night and sucks the vital essence from your
204computers.
205
206Bacula Console is the program that allows the administrator or user to
207communicate with the Bacula Director. This is the text only console
208interface.
209
210%description console -l pl.UTF-8
211Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
212
213Bacula Console to program umożliwiający administratorowi lub
214użytkownikowi komunikowanie się z programem Bacula Director. To jest
215interfejs czysto tekstowy.
216
217%package console-qt
218Summary: bat – The Bacula Administration Tool
219Summary(pl.UTF-8): bat – narzędzie administratora Baculi
220Group: Networking/Utilities
221Requires(post): sed >= 4.0
222Requires: %{name}-common = %{version}-%{release}
223Requires: QtCore >= %{qtver}
224Obsoletes: bacula-console-qt4 < 5.2.13-1
225
226%description console-qt
227Bacula - It comes by night and sucks the vital essence from your
228computers.
229
230bat is short for Bacula Administration Tool. It is a GUI form of
231bconsole, but with many additional features.
232
233%description console-qt -l pl.UTF-8
234Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
235
236bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
237bconsole, z wieloma dodatkowymi funkcjami.
238
239%package tray-monitor
240Summary: Bacula Tray Monitor
241Group: Networking/Utilities
242Requires(post): sed >= 4.0
243Requires: %{name}-common = %{version}-%{release}
244
245%description tray-monitor
246Bacula - It comes by night and sucks the vital essence from your
247computers.
248
249The Monitor program is typically an icon in the system tray. However,
250once the icon is expanded into a full window, the administrator or
251user can obtain status information about the Director or the backup
252status on the local workstation or any other Bacula daemon that is
253configured.
254
255%package fd
256Summary: Bacula File services (Client)
257Summary(pl.UTF-8): Usługi Bacula File (klient)
258Group: Networking/Utilities
259Requires(post): sed >= 4.0
260Requires: %{name}-common = %{version}-%{release}
261Requires: systemd-units >= 38
262
263%description fd
264Bacula - It comes by night and sucks the vital essence from your
265computers.
266
267Bacula File services (or Client program) is the software program that
268is installed on the machine to be backed up. It is specific to the
269operating system on which it runs and is responsible for providing the
270file attributes and data when requested by the Director. The File
271services are also responsible for the file system dependent part of
272restoring the file attributes and data during a recovery operation.
273This program runs as a daemon on the machine to be backed up, and in
274some of the documentation, the File daemon is referred to as the
275Client (for example in Bacula configuration file).
276
277%description fd -l pl.UTF-8
278Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
279
280Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
281instaluje się na maszynach, z których mają być wykonywane kopie
282zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
283działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
284plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
285zależną od systemu plików część odzyskiwania atrybutów i danych plików
286podczas operacji odzyskiwania danych. Program działa jako demon na
287maszynie, która ma być backupowana i w części dokumentacji demon ten
288(File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
289Baculi).
290
291%package sd
292Summary: Bacula Storage services
293Summary(pl.UTF-8): Usługi Bacula Storage
294Group: Networking/Utilities
295Requires(post): sed >= 4.0
296Requires: %{name}-common = %{version}-%{release}
297Requires: systemd-units >= 38
298Suggests: mtx
299Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
300
301%description sd
302Bacula - It comes by night and sucks the vital essence from your
303computers.
304
305Bacula Storage services consist of the software programs that perform
306the storage and recovery of the file attributes and data to the
307physical backup media or volumes. In other words, the Storage daemon
308is responsible for reading and writing your tapes (or other storage
309media, e.g. files). The Storage services runs as a daemon on the
310machine that has the backup device (usually a tape drive).
311
312%description sd -l pl.UTF-8
313Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
314
315Usługi Bacula Storage składają się z programów obsługujących
316przechowywanie danych oraz odzyskiwanie atrybutów i danych na
317fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
318odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
319przechowywania danych, np. plików). Usługi Storage działają jako demon
320na maszynie, która zawiera urządzenie backupowe (zwykle napęd
321taśmowy).
322
323%package db-postgresql
324Summary: PostgreSQL database driver for Bacula
325Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi
326Group: Networking/Utilities
327Requires(post): /sbin/ldconfig
328Requires: %{name}-common = %{version}-%{release}
329Provides: bacula(db) = %{version}-%{release}
330Obsoletes: bacula(db)
331
332%description db-postgresql
333PostgreSQL database driver for Bacula.
334
335%description db-postgresql -l pl.UTF-8
336Sterownik bazy PostgreSQL dla Baculi.
337
338%package db-mysql
339Summary: MySQL database driver for Bacula
340Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi
341Group: Networking/Utilities
342Requires(post): /sbin/ldconfig
343Requires: %{name}-common = %{version}-%{release}
344Provides: bacula(db) = %{version}-%{release}
345Obsoletes: bacula(db)
346
347%description db-mysql
348MySQL database driver for Bacula.
349
350%description db-mysql -l pl.UTF-8
351Sterownik bazy MySQL dla Baculi.
352
353%package db-sqlite3
354Summary: SQLite database driver for Bacula
355Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi
356Group: Networking/Utilities
357Requires(post): /sbin/ldconfig
358Requires: %{name}-common = %{version}-%{release}
359Provides: bacula(db) = %{version}-%{release}
360Obsoletes: bacula(db)
361
362%description db-sqlite3
363SQLite database driver for Bacula.
364
365%description db-sqlite3 -l pl.UTF-8
366Sterownik bazy SQLite dla Baculi.
367
368%package -n nagios-plugin-check_bacula
369Summary: Nagios plugin to check bacula
370Group: Networking
371Requires: nagios-common
372
373%description -n nagios-plugin-check_bacula
374Nagios plugin to check bacula.
375
376%define _noautoreq libbaccats-%{version}.so
377# provided by various db libraries as a symlink
378
379%prep
380%setup -q
381%patch0 -p1
382%patch1 -p1
383%patch2 -p1
384%patch3 -p1
385%patch4 -p1
386%ifarch x32
387%patch5 -p1
388%endif
389
390sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
391 src/cats/create_* src/cats/delete_* src/cats/drop_* \
392 src/cats/grant_* src/cats/make_* src/cats/update_*
393sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
394sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
395
396%build
397cd autoconf
398%{__aclocal} -I bacula-macros -I gettext-macros -I libtool
399## $BUILD_DIR not seen by libtoolize, export it
400#BUILD_DIR=.. %%{__libtoolize}
401cd ..
402%{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
403
404CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
405
406QMAKE=%{_bindir}/qmake-qt4 \
407%configure \
408 DISTNAME=pld-linux \
409 --with-scriptdir=%{_libexecdir}/%{name} \
410 %{?with_qt:--enable-bat} \
411 --disable-conio \
412 --enable-smartalloc \
413 --with-readline \
414 --with-tcp-wrappers \
415 --with-working-dir=%{_var}/lib/%{name} \
416 --with-dump-email="root@localhost" \
417 --with-job-email="root@localhost" \
418 --with-smtp-host=localhost \
419 --with-pid-dir=/var/run \
420 --with-subsys-dir=/var/lock/subsys \
421 --with-systemd=%{systemdunitdir} \
422 --enable-batch-insert \
423 %{?with_pgsql:--with-postgresql} \
424 %{?with_mysql:--with-mysql} \
425 %{?with_sqlite3:--with-sqlite3} \
426 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
427 --with-dir-password="#FAKE-dir-password#" \
428 --with-fd-password="#FAKE-fd-password#" \
429 --with-sd-password="#FAKE-sd-password#" \
430 --with-mon-dir-password="#FAKE-mon-dir-password#" \
431 --with-mon-fd-password="#FAKE-mon-fd-password#" \
432 --with-mon-sd-password="#FAKE-mon-sd-password#" \
433 --with-openssl
434
435%if %{with qt}
436cd src/qt-console
437qmake-qt4 bat.pro
438cd ../..
439%endif
440
441%{__make} 2>&1 | tee log
442# check for build errors
443grep "Error in" log && exit 1
444
445%if %{with nagios}
446# nagios plugin
447%{__make} -C examples/nagios/check_bacula
448%endif
449
450%install
451rm -rf $RPM_BUILD_ROOT
452install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
453 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
454 $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \
455 $RPM_BUILD_ROOT%{systemdunitdir}
456
457%{__make} install \
458 DESTDIR=$RPM_BUILD_ROOT
459
460# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost)
461for database in %{databases}; do
462 sed -e "s#default_db_type=.*#default_db_type=${database}#g" \
463 $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup \
464 > $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup
465 chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup
466done
467:> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup
468
469# we use db dependant (at compile time) shell script only
470rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
471
472## replace with empty file, replaced by ldconfig from each db-* package on intsall
473rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
474touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
475
476install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
477install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
478install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
479cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
480cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
481cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
482cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
483cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
484cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
485cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service
486
487%if %{with qt}
488# qmake somewhy does not always create install_bins target. install our own the bin
489rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
490libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
491cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
492cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
493%endif
494
495touch $RPM_BUILD_ROOT/var/log/bacula/log
496
497# install the updatedb scripts for older versions that last full release
498# 2.0 -> 3.0 : 10_to_11
499# 5.0 -> 5.2 : 12_to_14
500install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
501install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
502
503# place for site passwords
504touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
505touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
506
507mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
508
509# some file changes
510rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
511
512rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
513rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
514rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
515rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
516rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
517rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
518
519# startup scripts, those in /etc/rc.d/init.d are better
520rm $RPM_BUILD_ROOT%{_sbindir}/bacula
521rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
522
523# unsupported
524rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
525
526# rename to avoid possible conflicts
527mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
528mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
529
530# no -devel files packaged, so this is also useless
531rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats}.{so,la}
532#rm $RPM_BUILD_ROOT%{_libdir}/libbaccats*.{so,la}
533%{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}}
534%{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}}
535%{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}}
536
537%if %{with nagios}
538install -d $RPM_BUILD_ROOT%{nagiosplugindir}
539%{__make} -C examples/nagios/check_bacula install \
540 sbindir=%{nagiosplugindir} \
541 DESTDIR=$RPM_BUILD_ROOT
542%endif
543
544%clean
545rm -rf $RPM_BUILD_ROOT
546
547%pre common
548%groupadd -P %{name}-common -g 136 -r -f bacula
549%useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
550
551%define update_configs \
552echo "Updating bacula passwords and names..." | %banner -a %{name} \
553cd %{_sysconfdir} \
554for f in *-password; do \
555 if [ ! -s $f ]; then \
556 openssl rand -base64 33 > $f \
557 fi \
558 p=$(cat $f) \
559 for cf in *.conf *.conf.rpmnew; do \
560 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
561 done \
562done \
563for cf in *.conf *.conf.rpmnew; do \
564 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
565done
566
567%post common
568/sbin/ldconfig
569%update_configs
570
571%postun common
572/sbin/ldconfig
573if [ "$1" = "0" ]; then
574 %userremove bacula
575 %groupremove bacula
576fi
577
578%triggerpostun dir -- %{name}-dir < %{version}-0
579%banner bacula-dir -t3 <<EOF
580You have upgraded from an older version of Bacula director.
581
582You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
583script to upgrade the database.
584
585Ensure you database partition has enough free space before you run the upgrade,
586i.e check that there is enough room to rebuild 'File' table (it is the largest
587in bacula db).
588
589EOF
590
591%post dir
592%update_configs
593/sbin/chkconfig --add bacula-dir
594%service bacula-dir restart "Bacula Director daemon"
595%systemd_post bacula-dir.service
596
597%preun dir
598if [ "$1" = "0" ]; then
599 %service bacula-dir stop
600 /sbin/chkconfig --del bacula-dir
601fi
602%systemd_preun bacula-dir.service
603
604%postun dir
605%systemd_reload
606
607%post fd
608%update_configs
609/sbin/chkconfig --add bacula-fd
610%service bacula-fd restart "Bacula File daemon"
611%systemd_post bacula-fd.service
612
613%preun fd
614if [ "$1" = "0" ]; then
615 %service bacula-fd stop
616 /sbin/chkconfig --del bacula-fd
617fi
618%systemd_preun bacula-fd.service
619
620%postun fd
621%systemd_reload
622
623%post sd
624%update_configs
625/sbin/chkconfig --add bacula-sd
626%service bacula-sd restart "Bacula Storage daemon"
627%systemd_post bacula-sd.service
628
629%preun sd
630if [ "$1" = "0" ]; then
631 %service bacula-sd stop
632 /sbin/chkconfig --del bacula-sd
633fi
634%systemd_preun bacula-sd.service
635
636%postun sd
637%systemd_reload
638
639%pre console
640if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
641 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
642fi
643
644%post console
645%update_configs
646
647%triggerpostun common -- %{name}-common < 5.0.1-2
648find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
649
650%post console-qt
651%update_configs
652
653%post tray-monitor
654%update_configs
655
656%define db_post() \
657/sbin/ldconfig \
658for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
659 prefix="${name%% *}" \
660 suffix="${name#* }" \
661 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
662done \
663ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
664ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
665%service bacula-dir restart "Bacula Director daemon"
666
667%post db-postgresql
668%db_post postgresql
669
670%postun db-postgresql -p /sbin/ldconfig
671
672%post db-mysql
673%db_post mysql
674
675%postun db-mysql -p /sbin/ldconfig
676
677%post db-sqlite3
678%db_post sqlite3
679
680%postun db-sqlite3 -p /sbin/ldconfig
681
682%files common
683%defattr(644,root,root,755)
684%doc LICENSE
685%dir %{_sysconfdir}
686%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
687# do not remove bsmtp from files. Fix build if it is not installed.
688%attr(755,root,root) %{_sbindir}/bsmtp
689%attr(755,root,root) %{_sbindir}/btraceback
690%attr(755,root,root) %{_libdir}/libbac-7*.so
691%attr(755,root,root) %{_libdir}/libbaccfg-7*.so
692%attr(755,root,root) %{_libdir}/libbacfind-7*.so
693%attr(755,root,root) %{_libdir}/libbacsql-7*.so
694%{_mandir}/man8/bacula.8*
695%{_mandir}/man1/bsmtp.1*
696%{_mandir}/man8/btraceback.8*
697%dir %{_libexecdir}/%{name}
698%{_libexecdir}/%{name}/btraceback.dbx
699%{_libexecdir}/%{name}/btraceback.gdb
700%{_libexecdir}/%{name}/bacula_config
701%attr(770,root,bacula) %dir %{_localstatedir}
702%attr(750,bacula,logs) %dir /var/log/bacula
703%attr(640,bacula,logs) %ghost /var/log/bacula/log
704%attr(750,bacula,logs) %dir /var/log/archive/bacula
705
706%files dir
707%defattr(644,root,root,755)
708%doc ChangeLog ReleaseNotes LICENSE
709#%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
710%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
711%attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
712%attr(754,root,root) /etc/rc.d/init.d/bacula-dir
713%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
714%{systemdunitdir}/bacula-dir.service
715%attr(755,root,root) %{_sbindir}/bacula-dir
716%attr(755,root,root) %{_sbindir}/bregex
717%attr(755,root,root) %{_sbindir}/bwild
718%attr(755,root,root) %{_sbindir}/bacula-dbcheck
719%{_mandir}/man8/bacula-dir.8*
720%{_mandir}/man8/bacula-dbcheck.8*
721%{_mandir}/man8/bregex.8*
722%{_mandir}/man8/bwild.8*
723%{_libexecdir}/%{name}/query.sql
724%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
725
726%if %{with pgsql}
727%files db-postgresql
728%defattr(644,root,root,755)
729%attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
730%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
731%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
732%attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
733%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
734%attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
735%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
736%attr(755,root,root) %{_libdir}/libbaccats-postgresql-7*.so
737
738%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
739%ghost %{_libexecdir}/%{name}/create_bacula_database
740%ghost %{_libexecdir}/%{name}/drop_bacula_tables
741%ghost %{_libexecdir}/%{name}/drop_bacula_database
742%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
743%ghost %{_libexecdir}/%{name}/make_bacula_tables
744%ghost %{_libexecdir}/%{name}/update_bacula_tables
745%ghost %{_libexecdir}/%{name}/make_catalog_backup
746%endif
747
748%if %{with mysql}
749%files db-mysql
750%defattr(644,root,root,755)
751%attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
752%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
753%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
754%attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
755%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
756%attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
757%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
758%attr(755,root,root) %{_libdir}/libbaccats-mysql-7*.so
759
760%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
761%ghost %{_libexecdir}/%{name}/create_bacula_database
762%ghost %{_libexecdir}/%{name}/drop_bacula_tables
763%ghost %{_libexecdir}/%{name}/drop_bacula_database
764%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
765%ghost %{_libexecdir}/%{name}/make_bacula_tables
766%ghost %{_libexecdir}/%{name}/update_bacula_tables
767%ghost %{_libexecdir}/%{name}/make_catalog_backup
768%endif
769
770%if %{with sqlite3}
771%files db-sqlite3
772%defattr(644,root,root,755)
773%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
774%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
775%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
776%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
777%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
778%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
779%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
780%attr(755,root,root) %{_libdir}/libbaccats-sqlite3-7*.so
781
782%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
783%ghost %{_libexecdir}/%{name}/create_bacula_database
784%ghost %{_libexecdir}/%{name}/drop_bacula_tables
785%ghost %{_libexecdir}/%{name}/drop_bacula_database
786%ghost %{_libexecdir}/%{name}/grant_bacula_privileges
787%ghost %{_libexecdir}/%{name}/make_bacula_tables
788%ghost %{_libexecdir}/%{name}/update_bacula_tables
789%ghost %{_libexecdir}/%{name}/make_catalog_backup
790%endif
791
792%files fd
793%defattr(644,root,root,755)
794%doc LICENSE
795%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
796%attr(754,root,root) /etc/rc.d/init.d/bacula-fd
797%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
798%{systemdunitdir}/bacula-fd.service
799%attr(755,root,root) %{_sbindir}/bacula-fd
800%attr(755,root,root) %{_libdir}/bpipe-fd.so
801%{_mandir}/man8/bacula-fd.8*
802
803%files sd
804%defattr(644,root,root,755)
805%doc LICENSE
806%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
807%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
808%attr(754,root,root) /etc/rc.d/init.d/bacula-sd
809%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
810%{systemdunitdir}/bacula-sd.service
811%attr(755,root,root) %{_sbindir}/bacula-sd
812%attr(755,root,root) %{_sbindir}/bcopy
813%attr(755,root,root) %{_sbindir}/bextract
814%attr(755,root,root) %{_sbindir}/bls
815%attr(755,root,root) %{_sbindir}/bscan
816%attr(755,root,root) %{_sbindir}/btape
817%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
818%attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
819%attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
820%{_mandir}/man8/bacula-sd.8*
821%{_mandir}/man8/bcopy.8*
822%{_mandir}/man8/bextract.8*
823%{_mandir}/man8/bls.8*
824%{_mandir}/man8/bscan.8*
825%{_mandir}/man8/btape.8*
826
827%files console
828%defattr(644,root,root,755)
829%doc LICENSE
830%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
831%attr(755,root,root) %{_sbindir}/bconsole
832%{_mandir}/man8/bconsole.8*
833
834%if %{with qt}
835%files console-qt
836%defattr(644,root,root,755)
837%doc LICENSE
838%{_pixmapsdir}/%{name}.png
839%{_desktopdir}/bat.desktop
840# Do not make this file world-readable or any user will get full access to the
841# backup system
842%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
843%attr(755,root,root) %{_bindir}/bat
844%{_mandir}/man1/bat.1*
845%{_docdir}/%{name}
846%endif
847
848%if %{with nagios}
849%files -n nagios-plugin-check_bacula
850%defattr(644,root,root,755)
851%attr(755,root,root) %{nagiosplugindir}/check_bacula
852%endif
This page took 0.067831 seconds and 4 git commands to generate.