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