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