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