]> git.pld-linux.org Git - packages/bacula.git/blob - bacula.spec
Version: 9.2.2
[packages/bacula.git] / bacula.spec
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
23 Summary:        Bacula - The Network Backup Solution
24 Summary(pl.UTF-8):      Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
25 Name:           bacula
26 Version:        9.2.2
27 Release:        1
28 License:        AGPL v3
29 Group:          Networking/Utilities
30 Source0:        http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
31 # Source0-md5:  4655f47bc0e5529186abc407ee9480a5
32 Source10:       %{name}-dir.init
33 Source11:       %{name}-fd.init
34 Source12:       %{name}-sd.init
35 Source13:       %{name}.logrotate
36 Source14:       %{name}-dir.sysconfig
37 Source15:       %{name}-fd.sysconfig
38 Source16:       %{name}-sd.sysconfig
39 Source17:       %{name}-dir.service
40 Source18:       %{name}-fd.service
41 Source19:       %{name}-sd.service
42 Patch0:         %{name}-mtx-changer.patch
43 Patch1:         %{name}-branding.patch
44 Patch2:         %{name}-desktop.patch
45 Patch3:         make_catalog_backup-setup-home.patch
46 Patch4:         %{name}-no_lockmgr.patch
47 Patch5:         x32.patch
48 URL:            http://www.bacula.org/
49 BuildRequires:  acl-devel
50 BuildRequires:  autoconf >= 2.61
51 BuildRequires:  automake
52 BuildRequires:  gettext-tools
53 BuildRequires:  libcap-devel
54 BuildRequires:  libtool >= 2:2.2
55 BuildRequires:  libwrap-devel
56 BuildRequires:  ncurses-devel
57 BuildRequires:  openssl-devel
58 BuildRequires:  pkgconfig
59 BuildRequires:  python
60 BuildRequires:  python-modules
61 %if %{with qt}
62 BuildRequires:  QtCore-devel
63 BuildRequires:  QtGui-devel
64 BuildRequires:  qt4-build >= %{qtver}
65 BuildRequires:  qt4-qmake >= %{qtver}
66 %endif
67 %{?with_mysql:BuildRequires:    mysql-devel}
68 %{?with_pgsql:BuildRequires:    postgresql-devel}
69 BuildRequires:  readline-devel
70 BuildRequires:  rpm >= 4.4.9-56
71 BuildRequires:  rpm-pythonprov
72 BuildRequires:  rpmbuild(macros) >= 1.644
73 BuildRequires:  sed >= 4.0
74 %{?with_sqlite3:BuildRequires:  sqlite3-devel}
75 BuildRequires:  which
76 BuildRequires:  zlib-devel
77 Requires:       systemd-units >= 38
78 BuildRoot:      %{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
94 Bacula - It comes by night and sucks the vital essence from your
95 computers.
96
97 Bacula is a set of computer programs that permit you (or the system
98 administrator) to manage backup, recovery, and verification of
99 computer data across a network of computers of different kinds. In
100 technical terms, it is a network client/server based backup program.
101 Bacula is relatively easy to use and efficient, while offering many
102 advanced storage management features that make it easy to find and
103 recover lost or damaged files.
104
105 %description -l pl.UTF-8
106 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
107
108 Bacula to zbiór programów umożliwiających administratorowi na
109 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
110 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
111 program do kopii zapasowych pracujący w architekturze klient-serwer.
112 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
113 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
114 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
115 plików.
116
117 %package common
118 Summary:        Common files for bacula package
119 Summary(pl.UTF-8):      Pliki wspólne dla pakietu bacula
120 Group:          Networking/Utilities
121 Requires(post): openssl-tools
122 Requires(post): sed >= 4.0
123 Requires(post,preun):   /sbin/chkconfig
124 Requires(postun):       /usr/sbin/groupdel
125 Requires(postun):       /usr/sbin/userdel
126 Requires(pre):  /usr/sbin/groupadd
127 Requires(pre):  /usr/sbin/useradd
128 Conflicts:      bacula-console < 0:1.34.6
129 Conflicts:      bacula-dir < 0:1.34.6
130 Conflicts:      bacula-fd < 0:1.34.6
131 Conflicts:      bacula-sd < 0:1.34.6
132 Conflicts:      logrotate < 3.8.0
133
134 %description common
135 Bacula - It comes by night and sucks the vital essence from your
136 computers.
137
138 Bacula is a set of computer programs that permit you (or the system
139 administrator) to manage backup, recovery, and verification of
140 computer data across a network of computers of different kinds. In
141 technical terms, it is a network client/server based backup program.
142 Bacula is relatively easy to use and efficient, while offering many
143 advanced storage management features that make it easy to find and
144 recover lost or damaged files.
145
146 %description common -l pl.UTF-8
147 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
148
149 Bacula to zbiór programów umożliwiających administratorowi na
150 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
151 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
152 program do kopii zapasowych pracujący w architekturze klient-serwer.
153 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
154 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
155 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
156 plików.
157
158 %package dir
159 Summary:        Bacula Director and Catalog services
160 Summary(pl.UTF-8):      Usługi Bacula Director i Catalog
161 Group:          Networking/Utilities
162 Requires(post): sed >= 4.0
163 Requires:       %{name}-common = %{version}-%{release}
164 Requires:       bacula(db) = %{version}-%{release}
165 Requires:       systemd-units >= 38
166 Obsoletes:      bacula-updatedb
167
168 %description dir
169 Bacula - It comes by night and sucks the vital essence from your
170 computers.
171
172 Bacula Director is the program that supervises all the backup,
173 restore, verify and archive operations. The system administrator uses
174 the Bacula Director to schedule backups and to recover files. Catalog
175 services are comprised of the software programs responsible for
176 maintaining the file indexes and volume databases for all files backed
177 up. The Catalog services permit the System Administrator or user to
178 quickly locate and restore any desired file, since it maintains a
179 record of all Volumes used, all Jobs run, and all Files saved.
180
181 %description dir -l pl.UTF-8
182 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
183
184 Bacula Director to program nadzorujący wszystkie operacje wykonywania
185 kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania.
186 Administrator używa Bacula Directora do szeregowania kopii zapasowych
187 oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są
188 używane przez programy odpowiedzialne za zarządzanie indeksami plików
189 i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi
190 katalogowe umożliwiają administratorowi lub użytkownikowi szybko
191 zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze
192 wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi
193 plikami.
194
195 %package console
196 Summary:        Bacula Console
197 Summary(pl.UTF-8):      Konsola Baculi
198 Group:          Networking/Utilities
199 Requires(post): sed >= 4.0
200 Requires:       %{name}-common = %{version}-%{release}
201
202 %description console
203 Bacula - It comes by night and sucks the vital essence from your
204 computers.
205
206 Bacula Console is the program that allows the administrator or user to
207 communicate with the Bacula Director. This is the text only console
208 interface.
209
210 %description console -l pl.UTF-8
211 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
212
213 Bacula Console to program umożliwiający administratorowi lub
214 użytkownikowi komunikowanie się z programem Bacula Director. To jest
215 interfejs czysto tekstowy.
216
217 %package console-qt
218 Summary:        bat – The Bacula Administration Tool
219 Summary(pl.UTF-8):      bat – narzędzie administratora Baculi
220 Group:          Networking/Utilities
221 Requires(post): sed >= 4.0
222 Requires:       %{name}-common = %{version}-%{release}
223 Requires:       QtCore >= %{qtver}
224 Obsoletes:      bacula-console-qt4 < 5.2.13-1
225
226 %description console-qt
227 Bacula - It comes by night and sucks the vital essence from your
228 computers.
229
230 bat is short for Bacula Administration Tool. It is a GUI form of
231 bconsole, but with many additional features.
232
233 %description console-qt -l pl.UTF-8
234 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
235
236 bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem
237 bconsole, z wieloma dodatkowymi funkcjami.
238
239 %package tray-monitor
240 Summary:        Bacula Tray Monitor
241 Group:          Networking/Utilities
242 Requires(post): sed >= 4.0
243 Requires:       %{name}-common = %{version}-%{release}
244
245 %description tray-monitor
246 Bacula - It comes by night and sucks the vital essence from your
247 computers.
248
249 The Monitor program is typically an icon in the system tray. However,
250 once the icon is expanded into a full window, the administrator or
251 user can obtain status information about the Director or the backup
252 status on the local workstation or any other Bacula daemon that is
253 configured.
254
255 %package fd
256 Summary:        Bacula File services (Client)
257 Summary(pl.UTF-8):      Usługi Bacula File (klient)
258 Group:          Networking/Utilities
259 Requires(post): sed >= 4.0
260 Requires:       %{name}-common = %{version}-%{release}
261 Requires:       systemd-units >= 38
262
263 %description fd
264 Bacula - It comes by night and sucks the vital essence from your
265 computers.
266
267 Bacula File services (or Client program) is the software program that
268 is installed on the machine to be backed up. It is specific to the
269 operating system on which it runs and is responsible for providing the
270 file attributes and data when requested by the Director. The File
271 services are also responsible for the file system dependent part of
272 restoring the file attributes and data during a recovery operation.
273 This program runs as a daemon on the machine to be backed up, and in
274 some of the documentation, the File daemon is referred to as the
275 Client (for example in Bacula configuration file).
276
277 %description fd -l pl.UTF-8
278 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
279
280 Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które
281 instaluje się na maszynach, z których mają być wykonywane kopie
282 zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym
283 działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych
284 plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za
285 zależną od systemu plików część odzyskiwania atrybutów i danych plików
286 podczas operacji odzyskiwania danych. Program działa jako demon na
287 maszynie, która ma być backupowana i w części dokumentacji demon ten
288 (File) jest nazywany klientem (na przykład w pliku konfiguracyjnym
289 Baculi).
290
291 %package sd
292 Summary:        Bacula Storage services
293 Summary(pl.UTF-8):      Usługi Bacula Storage
294 Group:          Networking/Utilities
295 Requires(post): sed >= 4.0
296 Requires:       %{name}-common = %{version}-%{release}
297 Requires:       systemd-units >= 38
298 Suggests:       mtx
299 Conflicts:      dvd+rw-tools <= 5.21.4.10.8-1
300
301 %description sd
302 Bacula - It comes by night and sucks the vital essence from your
303 computers.
304
305 Bacula Storage services consist of the software programs that perform
306 the storage and recovery of the file attributes and data to the
307 physical backup media or volumes. In other words, the Storage daemon
308 is responsible for reading and writing your tapes (or other storage
309 media, e.g. files). The Storage services runs as a daemon on the
310 machine that has the backup device (usually a tape drive).
311
312 %description sd -l pl.UTF-8
313 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
314
315 Usługi Bacula Storage składają się z programów obsługujących
316 przechowywanie danych oraz odzyskiwanie atrybutów i danych na
317 fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest
318 odpowiedzialny za odczyt i zapis taśm (lub innych nośników do
319 przechowywania danych, np. plików). Usługi Storage działają jako demon
320 na maszynie, która zawiera urządzenie backupowe (zwykle napęd
321 taśmowy).
322
323 %package db-postgresql
324 Summary:        PostgreSQL database driver for Bacula
325 Summary(pl.UTF-8):      Sterownik bazy PostgreSQL dla Baculi
326 Group:          Networking/Utilities
327 Requires(post): /sbin/ldconfig
328 Requires:       %{name}-common = %{version}-%{release}
329 Provides:       bacula(db) = %{version}-%{release}
330 Obsoletes:      bacula(db)
331
332 %description db-postgresql
333 PostgreSQL database driver for Bacula.
334
335 %description db-postgresql -l pl.UTF-8
336 Sterownik bazy PostgreSQL dla Baculi.
337
338 %package db-mysql
339 Summary:        MySQL database driver for Bacula
340 Summary(pl.UTF-8):      Sterownik bazy MySQL dla Baculi
341 Group:          Networking/Utilities
342 Requires(post): /sbin/ldconfig
343 Requires:       %{name}-common = %{version}-%{release}
344 Provides:       bacula(db) = %{version}-%{release}
345 Obsoletes:      bacula(db)
346
347 %description db-mysql
348 MySQL database driver for Bacula.
349
350 %description db-mysql -l pl.UTF-8
351 Sterownik bazy MySQL dla Baculi.
352
353 %package db-sqlite3
354 Summary:        SQLite database driver for Bacula
355 Summary(pl.UTF-8):      Sterownik bazy SQLite dla Baculi
356 Group:          Networking/Utilities
357 Requires(post): /sbin/ldconfig
358 Requires:       %{name}-common = %{version}-%{release}
359 Provides:       bacula(db) = %{version}-%{release}
360 Obsoletes:      bacula(db)
361
362 %description db-sqlite3
363 SQLite database driver for Bacula.
364
365 %description db-sqlite3 -l pl.UTF-8
366 Sterownik bazy SQLite dla Baculi.
367
368 %package -n nagios-plugin-check_bacula
369 Summary:        Nagios plugin to check bacula
370 Group:          Networking
371 Requires:       nagios-common
372
373 %description -n nagios-plugin-check_bacula
374 Nagios 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
390 sed -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_*
393 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
394 sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in
395
396 %build
397 cd autoconf
398 %{__aclocal} -I bacula-macros -I gettext-macros -I libtool
399 ## $BUILD_DIR not seen by libtoolize, export it
400 #BUILD_DIR=.. %%{__libtoolize}
401 cd ..
402 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
403
404 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
405
406 QMAKE=%{_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}
436 cd src/qt-console
437 qmake-qt4 bat.pro
438 cd ../..
439 %endif
440
441 %{__make} 2>&1 | tee log
442 # check for build errors
443 grep "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
451 rm -rf $RPM_BUILD_ROOT
452 install -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)
461 for 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
466 done
467 :> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup
468
469 # we use db dependant (at compile time) shell script only
470 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl
471
472 ## replace with empty file, replaced by ldconfig from each db-* package on intsall
473 rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
474 touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so
475
476 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
477 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
478 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
479 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
480 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
481 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
482 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
483 cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service
484 cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service
485 cp -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
489 rm -f $RPM_BUILD_ROOT%{_sbindir}/bat
490 libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir}
491 cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
492 cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
493 %endif
494
495 touch $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
500 install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
501 install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name}
502
503 # place for site passwords
504 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
505 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
506
507 mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf
508
509 # some file changes
510 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
511
512 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
513 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
514 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
515 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
516 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
517 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
518
519 # startup scripts, those in /etc/rc.d/init.d are better
520 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
521 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
522
523 # unsupported
524 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb
525
526 # rename to avoid possible conflicts
527 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
528 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
529
530 # no -devel files packaged, so this is also useless
531 rm $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}
538 install -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
545 rm -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 \
552 echo "Updating bacula passwords and names..." | %banner -a %{name} \
553 cd %{_sysconfdir} \
554 for 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 \
562 done \
563 for cf in *.conf *.conf.rpmnew; do \
564         [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
565 done
566
567 %post common
568 /sbin/ldconfig
569 %update_configs
570
571 %postun common
572 /sbin/ldconfig
573 if [ "$1" = "0" ]; then
574         %userremove bacula
575         %groupremove bacula
576 fi
577
578 %triggerpostun dir -- %{name}-dir < %{version}-0
579 %banner bacula-dir -t3 <<EOF
580 You have upgraded from an older version of Bacula director.
581
582 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
583 script to upgrade the database.
584
585 Ensure you database partition has enough free space before you run the upgrade,
586 i.e check that there is enough room to rebuild 'File' table (it is the largest
587 in bacula db).
588
589 EOF
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
598 if [ "$1" = "0" ]; then
599         %service bacula-dir stop
600         /sbin/chkconfig --del bacula-dir
601 fi
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
614 if [ "$1" = "0" ]; then
615         %service bacula-fd stop
616         /sbin/chkconfig --del bacula-fd
617 fi
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
630 if [ "$1" = "0" ]; then
631         %service bacula-sd stop
632         /sbin/chkconfig --del bacula-sd
633 fi
634 %systemd_preun bacula-sd.service
635
636 %postun sd
637 %systemd_reload
638
639 %pre console
640 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
641         mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
642 fi
643
644 %post console
645 %update_configs
646
647 %triggerpostun common -- %{name}-common < 5.0.1-2
648 find %{_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 \
658 for 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}" || : \
662 done \
663 ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \
664 ln -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-9*.so
691 %attr(755,root,root) %{_libdir}/libbacsd-9*.so
692 %attr(755,root,root) %{_libdir}/libbaccfg-9*.so
693 %attr(755,root,root) %{_libdir}/libbacfind-9*.so
694 %attr(755,root,root) %{_libdir}/libbacsql-9*.so
695 %{_mandir}/man8/bacula.8*
696 %{_mandir}/man1/bsmtp.1*
697 %{_mandir}/man8/btraceback.8*
698 %dir %{_libexecdir}/%{name}
699 %{_libexecdir}/%{name}/btraceback.dbx
700 %{_libexecdir}/%{name}/btraceback.gdb
701 %{_libexecdir}/%{name}/bacula_config
702 %attr(770,root,bacula) %dir %{_localstatedir}
703 %attr(750,bacula,logs) %dir /var/log/bacula
704 %attr(640,bacula,logs) %ghost /var/log/bacula/log
705 %attr(750,bacula,logs) %dir /var/log/archive/bacula
706
707 %files dir
708 %defattr(644,root,root,755)
709 %doc ChangeLog ReleaseNotes LICENSE
710 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
711 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
712 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
713 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
714 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
715 %{systemdunitdir}/bacula-dir.service
716 %attr(755,root,root) %{_sbindir}/bacula-dir
717 %attr(755,root,root) %{_sbindir}/bdirjson
718 %attr(755,root,root) %{_sbindir}/bregex
719 %attr(755,root,root) %{_sbindir}/bwild
720 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
721 %{_mandir}/man8/bacula-dir.8*
722 %{_mandir}/man8/bacula-dbcheck.8*
723 %{_mandir}/man8/bregex.8*
724 %{_mandir}/man8/bwild.8*
725 %{_libexecdir}/%{name}/query.sql
726 %attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
727
728 %if %{with pgsql}
729 %files db-postgresql
730 %defattr(644,root,root,755)
731 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
732 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
733 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
734 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
735 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
736 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
737 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup
738 %attr(755,root,root) %{_libdir}/libbaccats-postgresql-9*.so
739
740 %ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
741 %ghost %{_libexecdir}/%{name}/create_bacula_database
742 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
743 %ghost %{_libexecdir}/%{name}/drop_bacula_database
744 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
745 %ghost %{_libexecdir}/%{name}/make_bacula_tables
746 %ghost %{_libexecdir}/%{name}/update_bacula_tables
747 %ghost %{_libexecdir}/%{name}/make_catalog_backup
748 %endif
749
750 %if %{with mysql}
751 %files db-mysql
752 %defattr(644,root,root,755)
753 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
754 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
755 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
756 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
757 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
758 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
759 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup
760 %attr(755,root,root) %{_libdir}/libbaccats-mysql-9*.so
761
762 %ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
763 %ghost %{_libexecdir}/%{name}/create_bacula_database
764 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
765 %ghost %{_libexecdir}/%{name}/drop_bacula_database
766 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
767 %ghost %{_libexecdir}/%{name}/make_bacula_tables
768 %ghost %{_libexecdir}/%{name}/update_bacula_tables
769 %ghost %{_libexecdir}/%{name}/make_catalog_backup
770 %endif
771
772 %if %{with sqlite3}
773 %files db-sqlite3
774 %defattr(644,root,root,755)
775 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
776 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
777 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
778 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
779 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
780 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
781 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup
782 %attr(755,root,root) %{_libdir}/libbaccats-sqlite3-9*.so
783
784 %ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so
785 %ghost %{_libexecdir}/%{name}/create_bacula_database
786 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
787 %ghost %{_libexecdir}/%{name}/drop_bacula_database
788 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
789 %ghost %{_libexecdir}/%{name}/make_bacula_tables
790 %ghost %{_libexecdir}/%{name}/update_bacula_tables
791 %ghost %{_libexecdir}/%{name}/make_catalog_backup
792 %endif
793
794 %files fd
795 %defattr(644,root,root,755)
796 %doc LICENSE
797 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
798 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
799 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
800 %{systemdunitdir}/bacula-fd.service
801 %attr(755,root,root) %{_sbindir}/bacula-fd
802 %attr(755,root,root) %{_sbindir}/bfdjson
803 %attr(755,root,root) %{_libdir}/bpipe-fd.so
804 %{_mandir}/man8/bacula-fd.8*
805
806 %files sd
807 %defattr(644,root,root,755)
808 %doc LICENSE
809 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
810 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
811 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
812 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
813 %{systemdunitdir}/bacula-sd.service
814 %attr(755,root,root) %{_sbindir}/bacula-sd
815 %attr(755,root,root) %{_sbindir}/bcopy
816 %attr(755,root,root) %{_sbindir}/bextract
817 %attr(755,root,root) %{_sbindir}/bls
818 %attr(755,root,root) %{_sbindir}/bscan
819 %attr(755,root,root) %{_sbindir}/bsdjson
820 %attr(755,root,root) %{_sbindir}/btape
821 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
822 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
823 %attr(755,root,root) %{_libexecdir}/%{name}/tapealert
824 %{_mandir}/man8/bacula-sd.8*
825 %{_mandir}/man8/bcopy.8*
826 %{_mandir}/man8/bextract.8*
827 %{_mandir}/man8/bls.8*
828 %{_mandir}/man8/bscan.8*
829 %{_mandir}/man8/btape.8*
830
831 %files console
832 %defattr(644,root,root,755)
833 %doc LICENSE
834 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
835 %attr(755,root,root) %{_sbindir}/bconsole
836 %attr(755,root,root) %{_sbindir}/bbconsjson
837 %{_mandir}/man8/bconsole.8*
838
839 %if %{with qt}
840 %files console-qt
841 %defattr(644,root,root,755)
842 %doc LICENSE
843 %{_pixmapsdir}/%{name}.png
844 %{_desktopdir}/bat.desktop
845 # Do not make this file world-readable or any user will get full access to the
846 # backup system
847 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
848 %attr(755,root,root) %{_bindir}/bat
849 %{_mandir}/man1/bat.1*
850 %{_docdir}/%{name}
851 %endif
852
853 %if %{with nagios}
854 %files -n nagios-plugin-check_bacula
855 %defattr(644,root,root,755)
856 %attr(755,root,root) %{nagiosplugindir}/check_bacula
857 %endif
This page took 0.076729 seconds and 3 git commands to generate.