]> git.pld-linux.org Git - packages/bacula.git/blob - bacula.spec
- the bat.conf-fixing trigger moved to the common-package. Insecure files may
[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  bat                     # bat Qt4 GUI
9 %bcond_without  dbi                     # use Database Independent Abstraction Layer (libdbi)
10 %bcond_without  mysql                   # use MySQL
11 %bcond_without  pgsql                   # use PostgreSQL
12 %bcond_without  sqlite3                 # use SQLite3
13 %bcond_without  python
14 %bcond_with     rescue
15 %bcond_with     sqlite3_sync_off        # makes SQLite3 backend much faster, but less reliable
16 #
17 %if %{without sqlite3}
18 %undefine       with_sqlite3_sync_off
19 %endif
20 #
21 Summary:        Bacula - The Network Backup Solution
22 Summary(pl.UTF-8):      Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
23 Name:           bacula
24 Version:        5.0.1
25 Release:        2
26 Epoch:          0
27 License:        extended GPL v2
28 Group:          Networking/Utilities
29 Source0:        http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
30 # Source0-md5:  beb9f8da196b3c9ffb0356f087dbdb99
31 Source1:        http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
32 # Source1-md5:  ce2ef0dca50ab916fd6701b53b7bb4df
33 Source2:        http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
34 # Source2-md5:  349623581cfe0bcd798dd137abac959a
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}-link.patch
44 Patch2:         %{name}-tinfo-readline.patch
45 Patch3:         %{name}-branding.patch
46 Patch4:         %{name}-conf.patch
47 Patch5:         %{name}-desktop.patch
48 Patch6:         %{name}-64bitbuild_fix.patch
49 Patch7:         %{name}-dbi_fixes.patch
50 Patch8:         %{name}-dbi_dbcheck.patch
51 URL:            http://www.bacula.org/
52 BuildRequires:  acl-devel
53 BuildRequires:  autoconf
54 BuildRequires:  automake
55 BuildRequires:  gettext-devel
56 BuildRequires:  libcap-devel
57 %{?with_dbi:BuildRequires:      libdbi-devel >= 0.8.4}
58 BuildRequires:  libtool
59 %if %{with rescue}
60 BuildRequires:  fakeroot
61 %endif
62 BuildRequires:  libwrap-devel
63 BuildRequires:  mtx
64 BuildRequires:  ncurses-devel
65 BuildRequires:  openssl-devel
66 BuildRequires:  pkgconfig
67 %if %{with python}
68 BuildRequires:  python-devel
69 %endif
70 %if %{with bat}
71 BuildRequires:  QtCore-devel
72 BuildRequires:  QtGui-devel
73 BuildRequires:  qt4-build >= 4.3.3-3
74 BuildRequires:  qt4-qmake >= 4.3.3-3
75 BuildRequires:  qwt-devel >= 5.0.2-2
76 %endif
77 %{?with_mysql:BuildRequires:    mysql-devel}
78 %{?with_pgsql:BuildRequires:    postgresql-devel}
79 BuildRequires:  readline-devel
80 BuildRequires:  rpmbuild(macros) >= 1.268
81 BuildRequires:  sed >= 4.0
82 %{?with_sqlite3:BuildRequires:  sqlite3-devel}
83 %if %{with console_wx}
84 BuildRequires:  wxGTK2-unicode-devel >= 2.4.0
85 %endif
86 BuildRequires:  zlib-devel
87 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88
89 %define         _sysconfdir     /etc/%{name}
90 %define         _localstatedir  /var/lib/%{name}
91
92 # from 'the worst' to 'the best'
93 %define databases %{?with_dbi:dbi} %{?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 = %{epoch}:%{version}-%{release}
168 Requires:       bacula(db) = %{epoch}:%{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 = %{epoch}:%{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 = %{epoch}:%{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:       %{name}-common = %{epoch}:%{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 = %{epoch}:%{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 = %{epoch}:%{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 = %{epoch}:%{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 = %{epoch}:%{version}-%{release}
350 Provides:       bacula(db) = %{epoch}:%{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 = %{epoch}:%{version}-%{release}
365 Provides:       bacula(db) = %{epoch}:%{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 = %{epoch}:%{version}-%{release}
380 Provides:       bacula(db) = %{epoch}:%{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 db-dbi
390 Summary:        libdbi database driver for Bacula
391 Summary(pl.UTF-8):      Sterownik bazy libdbi dla Baculi
392 Group:          Networking/Utilities
393 Requires(post): /sbin/ldconfig
394 Requires:       %{name}-common = %{epoch}:%{version}-%{release}
395 Provides:       bacula(db) = %{epoch}:%{version}-%{release}
396 Obsoletes:      bacula(db)
397
398 %description db-dbi
399 libdbi database driver for Bacula.
400
401 %description db-dbi -l pl.UTF-8
402 Sterownik baz libdbi dla Baculi.
403
404 %package rescue
405 Summary:        Bacula - The Network Backup Solution
406 Summary(pl.UTF-8):      Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
407 Group:          Networking/Utilities
408 Requires:       %{name}-fd = %{epoch}:%{version}-%{release}
409 Requires:       coreutils
410 Requires:       util-linux
411
412 %description rescue
413 Bacula - It comes by night and sucks the vital essence from your
414 computers.
415
416 Bacula is a set of computer programs that permit you (or the system
417 administrator) to manage backup, recovery, and verification of
418 computer data across a network of computers of different kinds. In
419 technical terms, it is a network client/server based backup program.
420 Bacula is relatively easy to use and efficient, while offering many
421 advanced storage management features that make it easy to find and
422 recover lost or damaged files.
423
424 This package installs scripts for disaster recovery and builds rescue
425 floppy disk for bare metal recovery.
426
427 %description rescue -l pl.UTF-8
428 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów.
429
430 Bacula to zbiór programów umożliwiających administratorowi na
431 zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w
432 sieci komputerów różnego rodzaju. W terminologii technicznej jest to
433 program do kopii zapasowych pracujący w architekturze klient-serwer.
434 Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym
435 wiele zaawansowanych możliwości przy zarządzaniu nośnikami,
436 ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych
437 plików.
438
439 Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy dyskietkę
440 ratunkowe do odtwarzania systemu od zera.
441
442 %prep
443 %setup -q -a 1
444 %patch0 -p1
445 %patch1 -p1
446 %patch2 -p1
447 %patch3 -p1
448 %patch4 -p1
449 %patch5 -p1
450 #%patch6 -p1
451 %patch7 -p1
452 %patch8 -p1
453
454 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
455
456 sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \
457         src/cats/create_* src/cats/delete_* src/cats/drop_* \
458         src/cats/grant_* src/cats/make_* src/cats/update_*
459 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
460
461 %if %{with dbi}
462 for dbtype in mysql postgresql sqlite3; do
463         sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
464 done
465 %endif
466
467 %build
468 cd autoconf
469 %{__aclocal} -I bacula-macros -I gettext-macros
470 # $BUILD_DIR not seen by libtoolize, export it
471 BUILD_DIR=.. %{__libtoolize}
472 cd ..
473 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
474
475 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
476
477 # we wan't the 'base' build built with the last database in the list,
478 # to make sure it is full-featured
479 for database in %{databases} ; do
480         WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \
481         %configure \
482                 --with-scriptdir=%{_libexecdir}/%{name} \
483                 %{?with_bat:--enable-bat} \
484                 --disable-conio \
485                 --enable-smartalloc \
486                 %{?with_console_wx:--enable-bwx-console} \
487                 --enable-tray-monitor \
488                 %{?with_python:--with-python} \
489                 --with-readline \
490                 --with-tcp-wrappers \
491                 --with-working-dir=%{_var}/lib/%{name} \
492                 --with-dump-email="root@localhost" \
493                 --with-job-email="root@localhost" \
494                 --with-smtp-host=localhost \
495                 --with-pid-dir=/var/run \
496                 --with-subsys-dir=/var/lock/subsys \
497                 --enable-batch-insert \
498                 --with-$database \
499                 %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \
500                 --with-dir-password="#FAKE-dir-password#" \
501                 --with-fd-password="#FAKE-fd-password#" \
502                 --with-sd-password="#FAKE-sd-password#" \
503                 --with-mon-dir-password="#FAKE-mon-dir-password#" \
504                 --with-mon-fd-password="#FAKE-mon-fd-password#" \
505                 --with-mon-sd-password="#FAKE-mon-sd-password#" \
506                 --with-openssl
507
508         # build the database library
509         %{__make} -C src/cats clean
510         %{__make} -C src/cats
511
512         # install the database library in a temporary location
513         install -d libbacsql/$database%{_libdir}
514         %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
515 done
516
517 %if %{with bat}
518 cd src/qt-console
519 qmake-qt4 bat.pro
520 cd ../..
521 %endif
522
523 %{__make}
524
525 %if %{with rescue}
526 cd rescue
527 %configure \
528         --with-bacula=../
529 cd linux/cdrom
530 fakeroot %{__make}
531 %endif
532
533 %install
534 rm -rf $RPM_BUILD_ROOT
535
536 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig}
537 install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue
538 install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula}
539
540 %{__make} install \
541         DESTDIR=$RPM_BUILD_ROOT
542
543 # install libraries for all the database backends
544 # ldconfig will add the soname symlinks when one of the packages is installed
545 for database in %{databases} ; do
546         for libfile in libbacsql/$database%{_libdir}/lib*-*.so; do
547                 orig_name=${libfile##*/}
548                 file_prefix=${orig_name%%-*.so}
549                 file_suffix=${orig_name#*-}
550                 file_name=$file_prefix-$database-$file_suffix
551                 install -p $libfile $RPM_BUILD_ROOT/%{_libdir}/$file_name
552                 touch $RPM_BUILD_ROOT/%{_libdir}/$orig_name
553         done
554 done
555
556 install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir
557 install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd
558 install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd
559 cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir
560 cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir
561 cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd
562 cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd
563
564 %if %{with console_wx}
565 # tray-monitor is for regular users
566 #mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir}
567
568 install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png
569 #install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm
570 sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \
571         scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
572 #sed -e 's#%{_sbindir}#%{_bindir}#' \
573 #       scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop
574 %endif
575
576 %if %{with bat}
577 install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_bindir}
578 install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir}
579 %endif
580
581 %if %{with rescue}
582 # install the rescue stuff, these are the rescue scripts
583 install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue
584 install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue
585 install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue
586 install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue
587 %endif
588
589 touch $RPM_BUILD_ROOT/var/log/bacula/log
590
591 # install the updatedb scripts
592 install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
593
594 # place for site passwords
595 touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password}
596 touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password}
597
598 mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf
599
600 # some file changes
601 rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd}
602 %if %{without console_wx}
603 rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop
604 %endif
605 touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed
606
607 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog
608 rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL
609 rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE
610 rm $RPM_BUILD_ROOT%{_docdir}/bacula/README
611 rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes
612 rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING
613 rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes
614
615 # startup scripts, those in /etc/rc.d/init.d are better
616 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
617 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
618
619 # unsupported
620 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
621
622 # rename to avoid possible conflicts
623 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
624 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
625
626 # no -devel files packaged, so this is also useless
627 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
628
629 # placeholders for the symlinks set in %%post db-*
630 for f in create_bacula_database drop_bacula_database drop_bacula_tables \
631         grant_bacula_privileges make_bacula_tables update_bacula_tables ; do
632
633         ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f
634 done
635
636
637 %clean
638 rm -rf $RPM_BUILD_ROOT
639
640 %pre common
641 %groupadd -P %{name}-common -g 136 -r -f bacula
642 %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula
643
644
645 %define update_configs \
646 echo "Updating bacula passwords and names..." | %banner \
647 cd /etc/bacula \
648 for f in *-password ; do \
649         if [ ! -s $f ] ; then \
650                 openssl rand -base64 33 > $f \
651         fi \
652         p=`cat $f` \
653         for cf in *.conf *.conf.rpmnew ; do \
654                 [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \
655         done \
656 done \
657 for cf in *.conf *.conf.rpmnew ; do \
658         [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \
659 done
660
661 %post common
662 /sbin/ldconfig
663 %update_configs
664
665 %postun common
666 /sbin/ldconfig
667 if [ "$1" = "0" ]; then
668         %userremove bacula
669         %groupremove bacula
670 fi
671
672 %triggerpostun dir -- %{name}-dir < 5.0
673 %banner bacula-dir -t3 <<EOF
674 You have upgraded from an older version of Bacula director.
675
676 You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
677 script to upgrade the database.
678 EOF
679
680 %post dir
681 %update_configs
682 /sbin/chkconfig --add bacula-dir
683 %service bacula-dir restart "Bacula Director daemon"
684
685 %preun dir
686 if [ "$1" = "0" ]; then
687         %service bacula-dir stop
688         /sbin/chkconfig --del bacula-dir
689 fi
690
691 %post fd
692 %update_configs
693 /sbin/chkconfig --add bacula-fd
694 %service bacula-fd restart "Bacula File daemon"
695
696 %preun fd
697 if [ "$1" = "0" ]; then
698         %service bacula-fd stop
699         /sbin/chkconfig --del bacula-fd
700 fi
701
702 %post sd
703 %update_configs
704 /sbin/chkconfig --add bacula-sd
705 %service bacula-sd restart "Bacula Storage daemon"
706
707 %preun sd
708 if [ "$1" = "0" ]; then
709         %service bacula-sd stop
710         /sbin/chkconfig --del bacula-sd
711 fi
712
713 %pre console
714 if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then
715         mv %{_sysconfdir}/console.conf %{_sysconfdir}/bconsole.conf
716 fi
717
718 %post console
719 %update_configs
720
721 %post console-wx
722 %update_configs
723
724 %triggerpostun common -- %{name}-common < 5.0.1-2
725 find /etc/bacula/bat.conf* -perm /007 -print0 | xargs -0 -r chmod 600 || :
726
727 %post console-qt4
728 %update_configs
729
730 %post tray-monitor
731 %update_configs
732
733 %post rescue
734 # link our current installed conf file to the rescue directory
735 ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf
736
737 # run getdiskinfo
738 echo "Creating rescue files for this system..."
739 cd %{_sysconfdir}/rescue
740 ./getdiskinfo
741
742 %preun rescue
743 # remove the files created after the initial rpm installation
744 if [ "$1" = "0" ]; then
745         rm -f %{_sysconfdir}/rescue/bacula-fd.conf
746         rm -f %{_sysconfdir}/rescue/partition.*
747         rm -f %{_sysconfdir}/rescue/format.*
748         rm -f %{_sysconfdir}/rescue/mount_drives
749         rm -f %{_sysconfdir}/rescue/start_network
750         rm -f %{_sysconfdir}/rescue/sfdisk
751         rm -rf %{_sysconfdir}/rescue/diskinfo/*
752 fi
753
754 %define db_post() \
755 /sbin/ldconfig \
756 for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \
757         prefix="${name%% *}" \
758         suffix="${name#* }" \
759         ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || :  \
760 done \
761 %service bacula-dir restart "Bacula Director daemon"
762
763 %define db_postun() \
764 /sbin/ldconfig \
765 if [ "$1" = "0" ]; then \
766         for f in %{_libexecdir}/%{name}/*_bacula_* ; do \
767                 if [ -L "$f" -a ! -e "$f" ] ; then \
768                         rm "$f" \
769                 fi \
770         done \
771 fi
772
773 %post db-postgresql
774 %db_post postgresql
775
776 %postun db-postgresql
777 %db_postun postgresql
778
779 %post db-mysql
780 %db_post mysql
781
782 %postun db-mysql
783 %db_postun mysql
784
785 %post db-sqlite3
786 %db_post sqlite3
787
788 %postun db-sqlite3
789 %db_postun sqlite3
790
791 # dbi backend is different, as it is not bound with a specific db engine
792 %post db-dbi
793 /sbin/ldconfig
794 %service bacula-dir restart "Bacula Director daemon"
795
796 %postun db-dbi -p /sbin/ldconfig
797
798 %files common
799 %defattr(644,root,root,755)
800 %doc LICENSE
801 %dir %{_sysconfdir}
802 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*-password
803 # do not remove bsmtp from files. Fix build if it is not installed.
804 %attr(755,root,root) %{_sbindir}/bsmtp
805 %attr(755,root,root) %{_sbindir}/btraceback
806 %attr(755,root,root) %{_libdir}/libbac-%{version}.so
807 %attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so
808 %attr(755,root,root) %{_libdir}/libbacfind-%{version}.so
809 %attr(755,root,root) %{_libdir}/libbacpy-%{version}.so
810 %{_mandir}/man8/bacula.8*
811 %{_mandir}/man1/bsmtp.1*
812 %{_mandir}/man8/btraceback.8*
813 %dir %{_libexecdir}/%{name}
814 %{_libexecdir}/%{name}/btraceback.dbx
815 %{_libexecdir}/%{name}/btraceback.gdb
816 %{_libexecdir}/%{name}/bacula_config
817 %attr(770,root,bacula) %dir %{_localstatedir}
818 %attr(750,bacula,logs) %dir /var/log/bacula
819 %attr(640,bacula,logs) %ghost /var/log/bacula/log
820
821 %files dir
822 %defattr(644,root,root,755)
823 %doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE
824 #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula}
825 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf
826 %ghost %{_sysconfdir}/.pw.sed
827 %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir
828 %attr(754,root,root) /etc/rc.d/init.d/bacula-dir
829 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir
830 %attr(755,root,root) %{_sbindir}/bacula-dir
831 %attr(755,root,root) %{_sbindir}/bregex
832 %attr(755,root,root) %{_sbindir}/bwild
833 %attr(755,root,root) %{_sbindir}/bacula-dbcheck
834 %{_mandir}/man8/bacula-dir.8*
835 %{_mandir}/man8/bacula-dbcheck.8*
836 %{_libexecdir}/%{name}/query.sql
837 #%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
838 #%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
839
840 %files db-postgresql
841 %defattr(644,root,root,755)
842 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
843 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
844 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
845 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
846 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
847 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
848 %attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so
849
850 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
851 %ghost %{_libexecdir}/%{name}/create_bacula_database
852 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
853 %ghost %{_libexecdir}/%{name}/drop_bacula_database
854 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
855 %ghost %{_libexecdir}/%{name}/make_bacula_tables
856 %ghost %{_libexecdir}/%{name}/update_bacula_tables
857
858 %files db-mysql
859 %defattr(644,root,root,755)
860 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
861 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
862 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
863 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
864 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
865 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
866 %attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
867
868 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
869 %ghost %{_libexecdir}/%{name}/create_bacula_database
870 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
871 %ghost %{_libexecdir}/%{name}/drop_bacula_database
872 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
873 %ghost %{_libexecdir}/%{name}/make_bacula_tables
874 %ghost %{_libexecdir}/%{name}/update_bacula_tables
875
876 %files db-sqlite3
877 %defattr(644,root,root,755)
878 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
879 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
880 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
881 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
882 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
883 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
884 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
885 %attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so
886
887 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
888 %ghost %{_libexecdir}/%{name}/create_bacula_database
889 %ghost %{_libexecdir}/%{name}/drop_bacula_tables
890 %ghost %{_libexecdir}/%{name}/drop_bacula_database
891 %ghost %{_libexecdir}/%{name}/grant_bacula_privileges
892 %ghost %{_libexecdir}/%{name}/make_bacula_tables
893 %ghost %{_libexecdir}/%{name}/update_bacula_tables
894
895 %files db-dbi
896 %defattr(644,root,root,755)
897 %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database
898 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database
899 %attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables
900 %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges
901 %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables
902 %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_*
903 %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database
904 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database
905 %attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables
906 %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges
907 %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables
908 %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_*
909 %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database
910 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database
911 %attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables
912 %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges
913 %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables
914 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_*
915 %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_*
916 %attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so
917
918 %ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so
919
920
921 %files fd
922 %defattr(644,root,root,755)
923 %doc LICENSE
924 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf
925 %attr(754,root,root) /etc/rc.d/init.d/bacula-fd
926 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd
927 %attr(755,root,root) %{_sbindir}/bacula-fd
928 %attr(755,root,root) %{_libdir}/bpipe-fd.so
929 %{_mandir}/man8/bacula-fd.8*
930
931 %files sd
932 %defattr(644,root,root,755)
933 %doc LICENSE
934 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf
935 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf
936 %attr(754,root,root) /etc/rc.d/init.d/bacula-sd
937 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd
938 %attr(755,root,root) %{_sbindir}/bacula-sd
939 %attr(755,root,root) %{_sbindir}/bcopy
940 %attr(755,root,root) %{_sbindir}/bextract
941 %attr(755,root,root) %{_sbindir}/bls
942 %attr(755,root,root) %{_sbindir}/bscan
943 %attr(755,root,root) %{_sbindir}/btape
944 %attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer
945 %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer
946 %attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler
947 %{_mandir}/man8/bacula-sd.8*
948 %{_mandir}/man8/bcopy.8*
949 %{_mandir}/man8/bextract.8*
950 %{_mandir}/man8/bls.8*
951 %{_mandir}/man8/bscan.8*
952 %{_mandir}/man8/btape.8*
953
954 %files console
955 %defattr(644,root,root,755)
956 %doc LICENSE
957 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf
958 %attr(755,root,root) %{_sbindir}/bconsole
959 %{_mandir}/man8/bconsole.8*
960
961 %if %{with console_wx}
962 %files console-wx
963 %defattr(644,root,root,755)
964 %doc LICENSE
965 %{_pixmapsdir}/%{name}.png
966 %{_desktopdir}/bacula-wx.desktop
967 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf
968 %attr(755,root,root) %{_sbindir}/bwx-console
969 %{_mandir}/man1/bacula-bwxconsole.1*
970 %endif
971
972 %if %{with bat}
973 %files console-qt4
974 %defattr(644,root,root,755)
975 %doc LICENSE
976 %{_pixmapsdir}/%{name}.png
977 %{_desktopdir}/bat.desktop
978 # Do not make this file world-readable or any user will get full access to the
979 # backup system 
980 %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf
981 %attr(755,root,root) %{_bindir}/bat
982 %{_mandir}/man1/bat.1*
983 %{_docdir}/%{name}
984 %endif
985
986 %if %{with console_wx}
987 %files tray-monitor
988 %defattr(644,root,root,755)
989 %doc LICENSE
990 %attr(755,root,root) %{_sbindir}/bacula-tray-monitor
991 #%{_pixmapsdir}/%{name}-tray-monitor.xpm
992 #%{_desktopdir}/%{name}-tray-monitor.desktop
993 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf
994 %{_mandir}/man1/bacula-tray-monitor.1*
995 %endif
996
997 %if %{with rescue}
998 %files rescue
999 %defattr(644,root,root,755)
1000 %doc LICENSE
1001 %dir %{_sysconfdir}/rescue
1002 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list
1003 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd
1004 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy
1005 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo
1006 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk
1007 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula
1008 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc
1009 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub
1010 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo
1011 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2
1012 %endif
This page took 0.171915 seconds and 4 git commands to generate.