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