]> git.pld-linux.org Git - packages/bacula.git/blame - bacula.spec
- switch to libexecdir
[packages/bacula.git] / bacula.spec
CommitLineData
c0d46bda
JK
1## TODO:
2# - fix libtoolize
b0473ed3 3# - update desktop files, think about su-wrappers for console (with .desktop files)
2007449a 4# - fix log file permissions
2b68b0cb 5#
f2527d22 6# Conditional build:
12eebbf8 7%if "%{pld_release}" == "ac"
dae4f8f4 8%bcond_with qt # BAT / qt-console Qt4 GUI
12eebbf8 9%else
dae4f8f4 10%bcond_without qt # BAT / qt-console Qt4 GUI
12eebbf8 11%endif
41bc1b6e
JK
12%bcond_without mysql # use MySQL
13%bcond_without pgsql # use PostgreSQL
41bc1b6e 14%bcond_without sqlite3 # use SQLite3
819cd4b0 15%bcond_without nagios # build nagios plugin
6d11b02b 16%bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable
0eba139b 17
8ba087a4 18%if %{without sqlite3}
aeaed87e 19%undefine with_sqlite3_sync_off
20%endif
0eba139b 21
cbbef7da 22%define qtver 4.8.4
bb6e7dc5 23Summary: Bacula - The Network Backup Solution
6a00efc0 24Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
bb6e7dc5 25Name: bacula
09ca754c 26Version: 7.4.4
c10faab3 27Release: 2
ccb5f851 28License: AGPL v3
52504a6d 29Group: Networking/Utilities
71a8c088 30Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
09ca754c 31# Source0-md5: aed11c1eef1198ffc76c6fca55cea3ad
5ce18635
AM
32Source10: %{name}-dir.init
33Source11: %{name}-fd.init
34Source12: %{name}-sd.init
35Source13: %{name}.logrotate
4280e495
JK
36Source14: %{name}-dir.sysconfig
37Source15: %{name}-fd.sysconfig
38Source16: %{name}-sd.sysconfig
b6e1a6b6
JK
39Source17: %{name}-dir.service
40Source18: %{name}-fd.service
41Source19: %{name}-sd.service
0a03f92d 42Patch0: %{name}-mtx-changer.patch
53a3431c 43Patch1: %{name}-branding.patch
c0d46bda
JK
44Patch2: %{name}-desktop.patch
45Patch3: make_catalog_backup-setup-home.patch
46Patch4: %{name}-no_lockmgr.patch
61a46f05 47Patch5: x32.patch
bb6e7dc5 48URL: http://www.bacula.org/
0819f86f 49BuildRequires: acl-devel
f6b184fc 50BuildRequires: autoconf >= 2.61
f2337569 51BuildRequires: automake
1c4c1905 52BuildRequires: gettext-tools
0819f86f 53BuildRequires: libcap-devel
2ddca527 54BuildRequires: libtool >= 2:2.2
f183f7ef 55BuildRequires: libwrap-devel
cc01862b 56BuildRequires: ncurses-devel
bb6e7dc5
AM
57BuildRequires: openssl-devel
58BuildRequires: pkgconfig
c0d46bda 59BuildRequires: python
b403dd64 60BuildRequires: python-modules
dae4f8f4 61%if %{with qt}
304bb97e 62BuildRequires: QtCore-devel
e3dd858d 63BuildRequires: QtGui-devel
95ed03d9
ER
64BuildRequires: qt4-build >= %{qtver}
65BuildRequires: qt4-qmake >= %{qtver}
c19580f6 66%endif
4c7199dc
SP
67%{?with_mysql:BuildRequires: mysql-devel}
68%{?with_pgsql:BuildRequires: postgresql-devel}
bb6e7dc5 69BuildRequires: readline-devel
12eebbf8 70BuildRequires: rpm >= 4.4.9-56
b403dd64 71BuildRequires: rpm-pythonprov
b6e1a6b6 72BuildRequires: rpmbuild(macros) >= 1.644
cc01862b 73BuildRequires: sed >= 4.0
6d11b02b 74%{?with_sqlite3:BuildRequires: sqlite3-devel}
b403dd64 75BuildRequires: which
bb6e7dc5 76BuildRequires: zlib-devel
377f2efa 77Requires: systemd-units >= 38
bb6e7dc5
AM
78BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
d5e827d3 80%define _sysconfdir /etc/%{name}
1a72afd2 81%define _localstatedir /var/lib/%{name}
d5e827d3 82%define nagiosplugindir %{_libdir}/nagios/plugins
bb6e7dc5 83
9a766d73
AM
84# db packages contain duplicates
85%define _duplicate_files_terminate_build 0
86
b8003eec 87# from 'the worst' to 'the best'
53a3431c 88%define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
41bc1b6e 89
b60fe5cb
ER
90# dependency section is broken. ccache usage is instead to makefiles
91%undefine with_ccache
92
bb6e7dc5
AM
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
5ce18635 103recover lost or damaged files.
bb6e7dc5 104
192fbfcf
JR
105%description -l pl.UTF-8
106Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
cc01862b 107
192fbfcf
JR
108Bacula to zbiór programów umożliwiających administratorowi na
109zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
168306e6
ER
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.
cc01862b 116
5ce18635
AM
117%package common
118Summary: Common files for bacula package
6a00efc0 119Summary(pl.UTF-8): Pliki wspólne dla pakietu bacula
bb6e7dc5 120Group: Networking/Utilities
237bfacd
JK
121Requires(post): openssl-tools
122Requires(post): sed >= 4.0
1bd568e8 123Requires(post,preun): /sbin/chkconfig
65253ffd
JK
124Requires(postun): /usr/sbin/groupdel
125Requires(postun): /usr/sbin/userdel
1b0a2248 126Requires(pre): /usr/sbin/groupadd
127Requires(pre): /usr/sbin/useradd
abdcd1c5
JB
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
5c4729e7 132Conflicts: logrotate < 3.8.0
bb6e7dc5 133
5ce18635 134%description common
bb6e7dc5
AM
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
5ce18635 144recover lost or damaged files.
bb6e7dc5 145
192fbfcf
JR
146%description common -l pl.UTF-8
147Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
cc01862b 148
192fbfcf
JR
149Bacula to zbiór programów umożliwiających administratorowi na
150zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
168306e6
ER
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.
cc01862b 157
5ce18635
AM
158%package dir
159Summary: Bacula Director and Catalog services
6a00efc0 160Summary(pl.UTF-8): Usługi Bacula Director i Catalog
5ce18635 161Group: Networking/Utilities
237bfacd 162Requires(post): sed >= 4.0
74c2ad1c
ER
163Requires: %{name}-common = %{version}-%{release}
164Requires: bacula(db) = %{version}-%{release}
377f2efa 165Requires: systemd-units >= 38
abdcd1c5 166Obsoletes: bacula-updatedb
bb6e7dc5 167
5ce18635
AM
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
7533d19f 179record of all Volumes used, all Jobs run, and all Files saved.
5ce18635 180
192fbfcf
JR
181%description dir -l pl.UTF-8
182Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
cc01862b 183
192fbfcf 184Bacula Director to program nadzorujący wszystkie operacje wykonywania
cc01862b 185kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
192fbfcf
JR
186Administrator używa Bacula Directora do szeregowania kopii zapasowych
187oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
168306e6
ER
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.
cc01862b 194
5ce18635
AM
195%package console
196Summary: Bacula Console
6a00efc0 197Summary(pl.UTF-8): Konsola Baculi
5ce18635 198Group: Networking/Utilities
237bfacd 199Requires(post): sed >= 4.0
74c2ad1c 200Requires: %{name}-common = %{version}-%{release}
5ce18635
AM
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
192fbfcf
JR
210%description console -l pl.UTF-8
211Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
cc01862b 212
192fbfcf
JR
213Bacula Console to program umożliwiający administratorowi lub
214użytkownikowi komunikowanie się z programem Bacula Director. To jest
cc01862b
JB
215interfejs czysto tekstowy.
216
348912a8
JK
217%package console-qt
218Summary: bat – The Bacula Administration Tool
219Summary(pl.UTF-8): bat – narzędzie administratora Baculi
304bb97e
AM
220Group: Networking/Utilities
221Requires(post): sed >= 4.0
74c2ad1c 222Requires: %{name}-common = %{version}-%{release}
12eebbf8 223Requires: QtCore >= %{qtver}
30caee93 224Obsoletes: bacula-console-qt4 < 5.2.13-1
304bb97e 225
348912a8 226%description console-qt
304bb97e
AM
227Bacula - It comes by night and sucks the vital essence from your
228computers.
229
82139dcc
JK
230bat is short for Bacula Administration Tool. It is a GUI form of
231bconsole, but with many additional features.
304bb97e 232
348912a8 233%description console-qt -l pl.UTF-8
304bb97e
AM
234Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
235
348912a8
JK
236bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
237bconsole, z wieloma dodatkowymi funkcjami.
304bb97e 238
237bfacd
JK
239%package tray-monitor
240Summary: Bacula Tray Monitor
241Group: Networking/Utilities
237bfacd 242Requires(post): sed >= 4.0
74c2ad1c 243Requires: %{name}-common = %{version}-%{release}
237bfacd
JK
244
245%description tray-monitor
246Bacula - It comes by night and sucks the vital essence from your
247computers.
248
1b0a2248 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.
237bfacd 254
5ce18635
AM
255%package fd
256Summary: Bacula File services (Client)
6a00efc0 257Summary(pl.UTF-8): Usługi Bacula File (klient)
5ce18635 258Group: Networking/Utilities
237bfacd 259Requires(post): sed >= 4.0
74c2ad1c 260Requires: %{name}-common = %{version}-%{release}
377f2efa 261Requires: systemd-units >= 38
5ce18635
AM
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
192fbfcf
JR
277%description fd -l pl.UTF-8
278Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
279
168306e6
ER
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).
cc01862b 290
5ce18635
AM
291%package sd
292Summary: Bacula Storage services
6a00efc0 293Summary(pl.UTF-8): Usługi Bacula Storage
5ce18635 294Group: Networking/Utilities
237bfacd 295Requires(post): sed >= 4.0
74c2ad1c 296Requires: %{name}-common = %{version}-%{release}
377f2efa 297Requires: systemd-units >= 38
82139dcc 298Suggests: mtx
329073aa 299Conflicts: dvd+rw-tools <= 5.21.4.10.8-1
5ce18635
AM
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).
bb6e7dc5 311
192fbfcf
JR
312%description sd -l pl.UTF-8
313Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
cc01862b 314
192fbfcf
JR
315Usługi Bacula Storage składają się z programów obsługujących
316przechowywanie danych oraz odzyskiwanie atrybutów i danych na
168306e6
ER
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
192fbfcf 321taśmowy).
cc01862b 322
41bc1b6e
JK
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
74c2ad1c
ER
328Requires: %{name}-common = %{version}-%{release}
329Provides: bacula(db) = %{version}-%{release}
168306e6 330Obsoletes: bacula(db)
41bc1b6e
JK
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
74c2ad1c
ER
343Requires: %{name}-common = %{version}-%{release}
344Provides: bacula(db) = %{version}-%{release}
168306e6 345Obsoletes: bacula(db)
41bc1b6e
JK
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
74c2ad1c
ER
358Requires: %{name}-common = %{version}-%{release}
359Provides: bacula(db) = %{version}-%{release}
168306e6 360Obsoletes: bacula(db)
41bc1b6e
JK
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
b0473ed3
ER
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
77ce6669 376%define _noautoreq libbaccats-%{version}.so
82139dcc 377# provided by various db libraries as a symlink
77ce6669 378
bb6e7dc5 379%prep
c0d46bda 380%setup -q
0a03f92d 381%patch0 -p1
53a3431c 382%patch1 -p1
cf0cfe65 383%patch2 -p1
ecb9bab1 384%patch3 -p1
e740cd49 385%patch4 -p1
61a46f05 386%ifarch x32
7563ecc8 387%patch5 -p1
61a46f05 388%endif
cf50297e 389
10650249
AM
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_*
237bfacd 393sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
efb15923 394sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
bb6e7dc5
AM
395
396%build
4a39c080 397cd autoconf
c0d46bda
JK
398%{__aclocal} -I bacula-macros -I gettext-macros -I libtool
399## $BUILD_DIR not seen by libtoolize, export it
400#BUILD_DIR=.. %%{__libtoolize}
4a39c080 401cd ..
cf50297e
AM
402%{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
403
dae3a0bd
JK
404CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
405
5df0c27c 406QMAKE=%{_bindir}/qmake-qt4 \
53a3431c 407%configure \
c0d46bda 408 DISTNAME=pld-linux \
53a3431c 409 --with-scriptdir=%{_libexecdir}/%{name} \
dae4f8f4 410 %{?with_qt:--enable-bat} \
53a3431c
AM
411 --disable-conio \
412 --enable-smartalloc \
53a3431c
AM
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 \
82139dcc 421 --with-systemd=%{systemdunitdir} \
53a3431c
AM
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
bb6e7dc5 434
dae4f8f4 435%if %{with qt}
b8003eec
JK
436cd src/qt-console
437qmake-qt4 bat.pro
438cd ../..
439%endif
440
ffb67df4
AM
441%{__make} 2>&1 | tee log
442# check for build errors
443grep "Error in" log && exit 1
b8003eec 444
b0473ed3
ER
445%if %{with nagios}
446# nagios plugin
447%{__make} -C examples/nagios/check_bacula
448%endif
449
bb6e7dc5
AM
450%install
451rm -rf $RPM_BUILD_ROOT
b6e1a6b6 452install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \
b6e1a6b6 453 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
3f2aae08 454 $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \
b6e1a6b6 455 $RPM_BUILD_ROOT%{systemdunitdir}
bb6e7dc5
AM
456
457%{__make} install \
458 DESTDIR=$RPM_BUILD_ROOT
459
21838166
AM
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" \
c10faab3
JR
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
21838166 466done
c10faab3 467:> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup
21838166 468
5a48616e 469# we use db dependant (at compile time) shell script only
53a3431c 470rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
5a48616e 471
53a3431c 472## replace with empty file, replaced by ldconfig from each db-* package on intsall
21838166
AM
473rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
474touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
aa70ead8 475
8b9ffa69
ER
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
b6e1a6b6
JK
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
d907cd57 486
dae4f8f4 487%if %{with qt}
37bd6446
ER
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}
8edc54f3 491cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
b0473ed3 492cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
304bb97e
AM
493%endif
494
3c0eac7c
AM
495touch $RPM_BUILD_ROOT/var/log/bacula/log
496
2f8e46d4
ER
497# install the updatedb scripts for older versions that last full release
498# 2.0 -> 3.0 : 10_to_11
21838166 499# 5.0 -> 5.2 : 12_to_14
2f8e46d4 500install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
21838166 501install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
d907cd57 502
237bfacd
JK
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}
bb6e7dc5 506
5a48616e 507mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
0a03f92d 508
1a72afd2
AM
509# some file changes
510rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
1a72afd2 511
8ba087a4
ER
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
8ba087a4 518
7545e94f
JK
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
41bc1b6e 523# unsupported
8fb2ca23 524rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
41bc1b6e 525
7545e94f
JK
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
c0d46bda 531rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats}.{so,la}
fe739daa
JK
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}}
7545e94f 536
b0473ed3 537%if %{with nagios}
819cd4b0 538install -d $RPM_BUILD_ROOT%{nagiosplugindir}
b0473ed3
ER
539%{__make} -C examples/nagios/check_bacula install \
540 sbindir=%{nagiosplugindir} \
541 DESTDIR=$RPM_BUILD_ROOT
542%endif
7545e94f 543
f2337569
JB
544%clean
545rm -rf $RPM_BUILD_ROOT
546
5ce18635 547%pre common
fbc59152
ER
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
5ce18635 550
b8003eec 551%define update_configs \
210f992b 552echo "Updating bacula passwords and names..." | %banner -a %{name} \
5a48616e 553cd %{_sysconfdir} \
2f8e46d4
ER
554for f in *-password; do \
555 if [ ! -s $f ]; then \
b8003eec
JK
556 openssl rand -base64 33 > $f \
557 fi \
2f8e46d4
ER
558 p=$(cat $f) \
559 for cf in *.conf *.conf.rpmnew; do \
b8003eec
JK
560 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
561 done \
562done \
2f8e46d4 563for cf in *.conf *.conf.rpmnew; do \
b8003eec
JK
564 [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
565done
566
237bfacd 567%post common
0a03f92d 568/sbin/ldconfig
b8003eec 569%update_configs
237bfacd 570
5ce18635 571%postun common
0a03f92d 572/sbin/ldconfig
28c9f5d0
AM
573if [ "$1" = "0" ]; then
574 %userremove bacula
575 %groupremove bacula
576fi
5ce18635 577
e31a1707 578%triggerpostun dir -- %{name}-dir < %{version}-0
b8003eec
JK
579%banner bacula-dir -t3 <<EOF
580You have upgraded from an older version of Bacula director.
bb6e7dc5 581
b8003eec
JK
582You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
583script to upgrade the database.
f0b67fde
ER
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
b8003eec 589EOF
237bfacd 590
b8003eec
JK
591%post dir
592%update_configs
1a72afd2 593/sbin/chkconfig --add bacula-dir
52504a6d 594%service bacula-dir restart "Bacula Director daemon"
b6e1a6b6 595%systemd_post bacula-dir.service
bb6e7dc5 596
5ce18635 597%preun dir
1a72afd2 598if [ "$1" = "0" ]; then
52504a6d 599 %service bacula-dir stop
9aa69d51 600 /sbin/chkconfig --del bacula-dir
1a72afd2 601fi
b6e1a6b6
JK
602%systemd_preun bacula-dir.service
603
604%postun dir
605%systemd_reload
bb6e7dc5 606
5ce18635 607%post fd
b8003eec 608%update_configs
1a72afd2 609/sbin/chkconfig --add bacula-fd
52504a6d 610%service bacula-fd restart "Bacula File daemon"
b6e1a6b6 611%systemd_post bacula-fd.service
bb6e7dc5 612
5ce18635 613%preun fd
1a72afd2 614if [ "$1" = "0" ]; then
52504a6d 615 %service bacula-fd stop
9aa69d51 616 /sbin/chkconfig --del bacula-fd
1a72afd2 617fi
b6e1a6b6
JK
618%systemd_preun bacula-fd.service
619
620%postun fd
621%systemd_reload
5ce18635
AM
622
623%post sd
b8003eec 624%update_configs
1a72afd2 625/sbin/chkconfig --add bacula-sd
52504a6d 626%service bacula-sd restart "Bacula Storage daemon"
b6e1a6b6 627%systemd_post bacula-sd.service
bb6e7dc5 628
5ce18635 629%preun sd
1a72afd2 630if [ "$1" = "0" ]; then
52504a6d 631 %service bacula-sd stop
9aa69d51 632 /sbin/chkconfig --del bacula-sd
1a72afd2 633fi
b6e1a6b6
JK
634%systemd_preun bacula-sd.service
635
636%postun sd
637%systemd_reload
5ce18635
AM
638
639%pre console
640if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
9aa69d51 641 mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
bb6e7dc5
AM
642fi
643
237bfacd 644%post console
b8003eec 645%update_configs
237bfacd 646
827db798 647%triggerpostun common -- %{name}-common < 5.0.1-2
44069e22 648find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || :
3a5cd5d7 649
348912a8 650%post console-qt
b8003eec 651%update_configs
304bb97e 652
237bfacd 653%post tray-monitor
b8003eec 654%update_configs
bb6e7dc5 655
41bc1b6e
JK
656%define db_post() \
657/sbin/ldconfig \
b0473ed3 658for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \
41bc1b6e
JK
659 prefix="${name%% *}" \
660 suffix="${name#* }" \
b0473ed3 661 ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \
dae3a0bd 662done \
5a48616e 663ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
21838166 664ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \
dae3a0bd
JK
665%service bacula-dir restart "Bacula Director daemon"
666
41bc1b6e
JK
667%post db-postgresql
668%db_post postgresql
669
dfef965d 670%postun db-postgresql -p /sbin/ldconfig
dae3a0bd 671
41bc1b6e
JK
672%post db-mysql
673%db_post mysql
674
dfef965d 675%postun db-mysql -p /sbin/ldconfig
dae3a0bd 676
41bc1b6e
JK
677%post db-sqlite3
678%db_post sqlite3
679
dfef965d 680%postun db-sqlite3 -p /sbin/ldconfig
dae3a0bd 681
5ce18635
AM
682%files common
683%defattr(644,root,root,755)
237bfacd 684%doc LICENSE
1a72afd2 685%dir %{_sysconfdir}
1b0a2248 686%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
7545e94f
JK
687# do not remove bsmtp from files. Fix build if it is not installed.
688%attr(755,root,root) %{_sbindir}/bsmtp
7425cb9d 689%attr(755,root,root) %{_sbindir}/btraceback
c0d46bda
JK
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
c74b041d 694%{_mandir}/man8/bacula.8*
7425cb9d
JK
695%{_mandir}/man1/bsmtp.1*
696%{_mandir}/man8/btraceback.8*
5ce18635 697%dir %{_libexecdir}/%{name}
1376b552 698%{_libexecdir}/%{name}/btraceback.dbx
5ce18635 699%{_libexecdir}/%{name}/btraceback.gdb
7545e94f 700%{_libexecdir}/%{name}/bacula_config
d6dbe33c 701%attr(770,root,bacula) %dir %{_localstatedir}
3c0eac7c
AM
702%attr(750,bacula,logs) %dir /var/log/bacula
703%attr(640,bacula,logs) %ghost /var/log/bacula/log
3f2aae08 704%attr(750,bacula,logs) %dir /var/log/archive/bacula
5ce18635
AM
705
706%files dir
bb6e7dc5 707%defattr(644,root,root,755)
c0d46bda 708%doc ChangeLog ReleaseNotes LICENSE
28647453 709#%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
cc515592 710%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
28c9f5d0 711%attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
1a72afd2 712%attr(754,root,root) /etc/rc.d/init.d/bacula-dir
cd23ba7c 713%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
b6e1a6b6 714%{systemdunitdir}/bacula-dir.service
5ff0b6a3 715%attr(755,root,root) %{_sbindir}/bacula-dir
7545e94f
JK
716%attr(755,root,root) %{_sbindir}/bregex
717%attr(755,root,root) %{_sbindir}/bwild
718%attr(755,root,root) %{_sbindir}/bacula-dbcheck
79d0fef6 719%{_mandir}/man8/bacula-dir.8*
7545e94f 720%{_mandir}/man8/bacula-dbcheck.8*
3f7627bd
AM
721%{_mandir}/man8/bregex.8*
722%{_mandir}/man8/bwild.8*
79d0fef6 723%{_libexecdir}/%{name}/query.sql
5a48616e 724%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
41bc1b6e 725
722880a5 726%if %{with pgsql}
41bc1b6e
JK
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_*
21838166 735%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
c0d46bda 736%attr(755,root,root) %{_libdir}/libbaccats-postgresql-7*.so
41bc1b6e 737
c0d46bda 738%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
41bc1b6e
JK
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
21838166 745%ghost %{_libexecdir}/%{name}/make_catalog_backup
722880a5 746%endif
41bc1b6e 747
722880a5 748%if %{with mysql}
41bc1b6e
JK
749%files db-mysql
750%defattr(644,root,root,755)
aeaed87e 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_*
21838166 757%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
c0d46bda 758%attr(755,root,root) %{_libdir}/libbaccats-mysql-7*.so
41bc1b6e 759
c0d46bda 760%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
41bc1b6e
JK
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
21838166 767%ghost %{_libexecdir}/%{name}/make_catalog_backup
722880a5 768%endif
41bc1b6e 769
722880a5 770%if %{with sqlite3}
41bc1b6e
JK
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_*
21838166 779%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
c0d46bda 780%attr(755,root,root) %{_libdir}/libbaccats-sqlite3-7*.so
41bc1b6e 781
c0d46bda 782%ghost %attr(755,root,root) %{_libdir}/libbaccats-7*.so
41bc1b6e
JK
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
21838166 789%ghost %{_libexecdir}/%{name}/make_catalog_backup
722880a5 790%endif
41bc1b6e 791
5ce18635
AM
792%files fd
793%defattr(644,root,root,755)
237bfacd 794%doc LICENSE
efb15923 795%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
1a72afd2 796%attr(754,root,root) /etc/rc.d/init.d/bacula-fd
cd23ba7c 797%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
b6e1a6b6 798%{systemdunitdir}/bacula-fd.service
5ff0b6a3 799%attr(755,root,root) %{_sbindir}/bacula-fd
7545e94f 800%attr(755,root,root) %{_libdir}/bpipe-fd.so
79d0fef6 801%{_mandir}/man8/bacula-fd.8*
5ce18635
AM
802
803%files sd
804%defattr(644,root,root,755)
237bfacd 805%doc LICENSE
efb15923 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
1a72afd2 808%attr(754,root,root) /etc/rc.d/init.d/bacula-sd
cd23ba7c 809%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
b6e1a6b6 810%{systemdunitdir}/bacula-sd.service
5ff0b6a3
AM
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
329073aa 817%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
150db1c2 818%attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
329073aa 819%attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
5ce18635 820%{_mandir}/man8/bacula-sd.8*
7425cb9d
JK
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*
5ce18635
AM
826
827%files console
bb6e7dc5 828%defattr(644,root,root,755)
237bfacd 829%doc LICENSE
efb15923 830%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
1a72afd2 831%attr(755,root,root) %{_sbindir}/bconsole
7425cb9d 832%{_mandir}/man8/bconsole.8*
5ce18635 833
dae4f8f4 834%if %{with qt}
348912a8 835%files console-qt
304bb97e
AM
836%defattr(644,root,root,755)
837%doc LICENSE
838%{_pixmapsdir}/%{name}.png
839%{_desktopdir}/bat.desktop
2264d68c 840# Do not make this file world-readable or any user will get full access to the
b0473ed3 841# backup system
2264d68c
JK
842%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
843%attr(755,root,root) %{_bindir}/bat
304bb97e 844%{_mandir}/man1/bat.1*
7545e94f 845%{_docdir}/%{name}
304bb97e
AM
846%endif
847
b0473ed3
ER
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.214494 seconds and 4 git commands to generate.