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