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