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