X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bacula.spec;h=b3fbbdcd58f257f34b7843937e911ad326e114e9;hb=55b5244;hp=9ad083fdcee52abdf3942e22c1dd2795e68a4e0d;hpb=dae3a0bd1b52449a370e7a0eaf5924c35fc10317;p=packages%2Fbacula.git diff --git a/bacula.spec b/bacula.spec index 9ad083f..1a9732d 100644 --- a/bacula.spec +++ b/bacula.spec @@ -1,37 +1,34 @@ -# TODO: -# - update desktop files, think about su-wrappers for console -# - package web admin +## TODO: +# - fix libtoolize +# - update desktop files, think about su-wrappers for console (with .desktop files) # - fix log file permissions # # Conditional build: -%bcond_without console_wx # wx-console program -%bcond_without bat # bat Qt4 GUI -%bcond_without dbi # use Database Independent Abstraction Layer (libdbi) +%bcond_without qt # BAT / qt-console Qt5 GUI %bcond_without mysql # use MySQL %bcond_without pgsql # use PostgreSQL -%bcond_with python -%bcond_with rescue %bcond_without sqlite3 # use SQLite3 +%bcond_without nagios # build nagios plugin +%bcond_without s3 # Amazon S3 cloud backend %bcond_with sqlite3_sync_off # makes SQLite3 backend much faster, but less reliable -# + %if %{without sqlite3} %undefine with_sqlite3_sync_off %endif -# + +# Bacula requires this specific, custom version +%define libs3_version 20181010 + Summary: Bacula - The Network Backup Solution Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci Name: bacula -Version: 5.0.1 -Release: 0.5 -Epoch: 0 -License: extended GPL v2 +Version: 9.4.2 +Release: 1 +License: AGPL v3 Group: Networking/Utilities -Source0: http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz -# Source0-md5: beb9f8da196b3c9ffb0356f087dbdb99 -Source1: http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2 -# Source1-md5: ce2ef0dca50ab916fd6701b53b7bb4df -Source2: http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz -# Source2-md5: 349623581cfe0bcd798dd137abac959a +Source0: http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz +# Source0-md5: 376e67b16cfa7254a5717177770233b6 +Source1: https://www.bacula.org/downloads/libs3-%{libs3_version}.tar.gz Source10: %{name}-dir.init Source11: %{name}-fd.init Source12: %{name}-sd.init @@ -39,58 +36,59 @@ Source13: %{name}.logrotate Source14: %{name}-dir.sysconfig Source15: %{name}-fd.sysconfig Source16: %{name}-sd.sysconfig +Source17: %{name}-dir.service +Source18: %{name}-fd.service +Source19: %{name}-sd.service Patch0: %{name}-mtx-changer.patch -Patch1: %{name}-link.patch -Patch2: %{name}-tinfo-readline.patch -Patch3: %{name}-branding.patch -Patch4: %{name}-conf.patch -Patch5: %{name}-desktop.patch -Patch6: %{name}-64bitbuild_fix.patch -Patch7: %{name}-dbi_fixes.patch -Patch8: %{name}-dbi_dbcheck.patch -Patch9: %{name}-config_no_clean.patch +Patch1: %{name}-branding.patch +Patch2: %{name}-desktop.patch +Patch3: make_catalog_backup-setup-home.patch +Patch4: %{name}-no_lockmgr.patch +Patch5: x32.patch +Patch6: libs3-curl.patch URL: http://www.bacula.org/ BuildRequires: acl-devel -BuildRequires: autoconf +BuildRequires: autoconf >= 2.61 BuildRequires: automake -BuildRequires: gettext-devel +%{?with_s3:BuildRequires: curl-devel} +BuildRequires: gettext-tools BuildRequires: libcap-devel -%{?with_dbi:BuildRequires: libdbi-devel >= 0.8.4} -BuildRequires: libtool -%if %{with rescue} -BuildRequires: fakeroot -%endif +BuildRequires: libtool >= 2:2.2 BuildRequires: libwrap-devel -BuildRequires: mtx +%{?with_s3:BuildRequires: libxml2-devel} BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: pkgconfig -%if %{with python} -BuildRequires: python-static -%endif -%if %{with bat} -BuildRequires: QtCore-devel -BuildRequires: QtGui-devel -BuildRequires: qt4-build >= 4.3.3-3 -BuildRequires: qt4-qmake >= 4.3.3-3 -BuildRequires: qwt-devel >= 5.0.2-2 +BuildRequires: python +BuildRequires: python-modules +%if %{with qt} +BuildRequires: Qt5Core-devel +BuildRequires: Qt5Gui-devel +BuildRequires: qt5-build +BuildRequires: qt5-qmake %endif %{?with_mysql:BuildRequires: mysql-devel} %{?with_pgsql:BuildRequires: postgresql-devel} BuildRequires: readline-devel -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpm >= 4.4.9-56 +BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.644 BuildRequires: sed >= 4.0 %{?with_sqlite3:BuildRequires: sqlite3-devel} -%if %{with console_wx} -BuildRequires: wxGTK2-unicode-devel >= 2.4.0 -%endif +BuildRequires: which BuildRequires: zlib-devel +Requires: systemd-units >= 38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _sysconfdir /etc/%{name} +%define _sysconfdir /etc/%{name} %define _localstatedir /var/lib/%{name} +%define nagiosplugindir %{_libdir}/nagios/plugins -%define databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi} +# db packages contain duplicates +%define _duplicate_files_terminate_build 0 + +# from 'the worst' to 'the best' +%define databases %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql} # dependency section is broken. ccache usage is instead to makefiles %undefine with_ccache @@ -112,12 +110,12 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. Bacula to zbiór programów umożliwiających administratorowi na zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w -sieci komputerów różnego rodzaju. W terminologii technicznej jest -to program do kopii zapasowych pracujący w architekturze -klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna, -oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu -nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub -uszkodzonych plików. +sieci komputerów różnego rodzaju. W terminologii technicznej jest to +program do kopii zapasowych pracujący w architekturze klient-serwer. +Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym +wiele zaawansowanych możliwości przy zarządzaniu nośnikami, +ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych +plików. %package common Summary: Common files for bacula package @@ -134,6 +132,7 @@ Conflicts: bacula-console < 0:1.34.6 Conflicts: bacula-dir < 0:1.34.6 Conflicts: bacula-fd < 0:1.34.6 Conflicts: bacula-sd < 0:1.34.6 +Conflicts: logrotate < 3.8.0 %description common Bacula - It comes by night and sucks the vital essence from your @@ -152,20 +151,21 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. Bacula to zbiór programów umożliwiających administratorowi na zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w -sieci komputerów różnego rodzaju. W terminologii technicznej jest -to program do kopii zapasowych pracujący w architekturze -klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna, -oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu -nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub -uszkodzonych plików. +sieci komputerów różnego rodzaju. W terminologii technicznej jest to +program do kopii zapasowych pracujący w architekturze klient-serwer. +Bacula jest stosunkowo łatwa w użyciu i wydajna, oferując przy tym +wiele zaawansowanych możliwości przy zarządzaniu nośnikami, +ułatwiających znalezienie i odzyskanie utraconych lub uszkodzonych +plików. %package dir Summary: Bacula Director and Catalog services Summary(pl.UTF-8): Usługi Bacula Director i Catalog Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: bacula(db) = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: bacula(db) = %{version}-%{release} +Requires: systemd-units >= 38 Obsoletes: bacula-updatedb %description dir @@ -188,19 +188,19 @@ Bacula Director to program nadzorujący wszystkie operacje wykonywania kopii zapasowych, odzyskiwania, weryfikacji i archiwizowania. Administrator używa Bacula Directora do szeregowania kopii zapasowych oraz odzyskiwania plików. Usługi katalogowe (Catalog services) są -używane przez programy odpowiedzialne za zarządzanie indeksami -plików i bazą danych wolumenów dla wszystkich kopiowanych plików. -Usługi katalogowe umożliwiają administratorowi lub użytkownikowi -szybko zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują -rekord ze wszystkimi używanymi wolumenami, uruchomionymi zadaniami i -zapisanymi plikami. +używane przez programy odpowiedzialne za zarządzanie indeksami plików +i bazą danych wolumenów dla wszystkich kopiowanych plików. Usługi +katalogowe umożliwiają administratorowi lub użytkownikowi szybko +zlokalizować i odtworzyć dowolny plik, ponieważ utrzymują rekord ze +wszystkimi używanymi wolumenami, uruchomionymi zadaniami i zapisanymi +plikami. %package console Summary: Bacula Console Summary(pl.UTF-8): Konsola Baculi Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} %description console Bacula - It comes by night and sucks the vital essence from your @@ -217,54 +217,33 @@ Bacula Console to program umożliwiający administratorowi lub użytkownikowi komunikowanie się z programem Bacula Director. To jest interfejs czysto tekstowy. -%package console-wx -Summary: Bacula wxWidgets Console -Summary(pl.UTF-8): Konsola Baculi oparta na wxWidgets +%package console-qt +Summary: bat – The Bacula Administration Tool +Summary(pl.UTF-8): bat – narzędzie administratora Baculi Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: Qt5Core +Obsoletes: bacula-console-qt5 < 5.2.13-1 -%description console-wx +%description console-qt Bacula - It comes by night and sucks the vital essence from your computers. -Bacula Console is the program that allows the administrator or user to -communicate with the Bacula Director. This is the wxWidgets GUI -interface. +bat is short for Bacula Administration Tool. It is a GUI form of +bconsole, but with many additional features. -%description console-wx -l pl.UTF-8 +%description console-qt -l pl.UTF-8 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. -Bacula Console to program umożliwiający administratorowi lub -użytkownikowi komunikowanie się z programem Bacula Director. To jest -interfejs graficzny oparty na wxWidgets. - -%package console-qt4 -Summary: Bacula Qt4 Console -Summary(pl.UTF-8): Konsola Baculi oparta na Qt4 -Group: Networking/Utilities -Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} - -%description console-qt4 -Bacula - It comes by night and sucks the vital essence from your -computers. - -Bacula Console is the program that allows the administrator or user to -communicate with the Bacula Director. This is the Qt4 GUI interface. - -%description console-qt4 -l pl.UTF-8 -Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. - -Bacula Console to program umożliwiający administratorowi lub -użytkownikowi komunikowanie się z programem Bacula Director. To jest -interfejs graficzny oparty na Qt4. +bat, czyli Bacula Administration Tool, jest graficznym odpowiednikiem +bconsole, z wieloma dodatkowymi funkcjami. %package tray-monitor Summary: Bacula Tray Monitor Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} %description tray-monitor Bacula - It comes by night and sucks the vital essence from your @@ -281,7 +260,8 @@ Summary: Bacula File services (Client) Summary(pl.UTF-8): Usługi Bacula File (klient) Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: systemd-units >= 38 %description fd Bacula - It comes by night and sucks the vital essence from your @@ -300,23 +280,25 @@ Client (for example in Bacula configuration file). %description fd -l pl.UTF-8 Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. -Usługi Bacula File (inaczej program kliencki) to oprogramowanie, -które instaluje się na maszynach, z których mają być wykonywane -kopie zapasowe. Są one specyficzne dla systemu operacyjnego, pod -którym działa dana maszyna i odpowiadają za dostarczanie atrybutów -i danych plików na żądanie Directora. Usługi plikowe są także -odpowiedzialne za zależną od systemu plików część odzyskiwania -atrybutów i danych plików podczas operacji odzyskiwania danych. -Program działa jako demon na maszynie, która ma być backupowana i w -części dokumentacji demon ten (File) jest nazywany klientem (na -przykład w pliku konfiguracyjnym Baculi). +Usługi Bacula File (inaczej program kliencki) to oprogramowanie, które +instaluje się na maszynach, z których mają być wykonywane kopie +zapasowe. Są one specyficzne dla systemu operacyjnego, pod którym +działa dana maszyna i odpowiadają za dostarczanie atrybutów i danych +plików na żądanie Directora. Usługi plikowe są także odpowiedzialne za +zależną od systemu plików część odzyskiwania atrybutów i danych plików +podczas operacji odzyskiwania danych. Program działa jako demon na +maszynie, która ma być backupowana i w części dokumentacji demon ten +(File) jest nazywany klientem (na przykład w pliku konfiguracyjnym +Baculi). %package sd Summary: Bacula Storage services Summary(pl.UTF-8): Usługi Bacula Storage Group: Networking/Utilities Requires(post): sed >= 4.0 -Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{version}-%{release} +Requires: systemd-units >= 38 +Suggests: mtx Conflicts: dvd+rw-tools <= 5.21.4.10.8-1 %description sd @@ -335,10 +317,10 @@ Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. Usługi Bacula Storage składają się z programów obsługujących przechowywanie danych oraz odzyskiwanie atrybutów i danych na -fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage -jest odpowiedzialny za odczyt i zapis taśm (lub innych nośników do -przechowywania danych, np. plików). Usługi Storage działają jako -demon na maszynie, która zawiera urządzenie backupowe (zwykle napęd +fizycznych nośnikach lub wolumenach. Innymi słowy, demon Storage jest +odpowiedzialny za odczyt i zapis taśm (lub innych nośników do +przechowywania danych, np. plików). Usługi Storage działają jako demon +na maszynie, która zawiera urządzenie backupowe (zwykle napęd taśmowy). %package db-postgresql @@ -346,11 +328,9 @@ Summary: PostgreSQL database driver for Bacula Summary(pl.UTF-8): Sterownik bazy PostgreSQL dla Baculi Group: Networking/Utilities Requires(post): /sbin/ldconfig -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: bacula(db) = %{epoch}:%{version}-%{release} -Obsoletes: bacula-db-dbi -Obsoletes: bacula-db-mysql -Obsoletes: bacula-db-sqlite3 +Requires: %{name}-common = %{version}-%{release} +Provides: bacula(db) = %{version}-%{release} +Obsoletes: bacula(db) %description db-postgresql PostgreSQL database driver for Bacula. @@ -363,11 +343,9 @@ Summary: MySQL database driver for Bacula Summary(pl.UTF-8): Sterownik bazy MySQL dla Baculi Group: Networking/Utilities Requires(post): /sbin/ldconfig -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: bacula(db) = %{epoch}:%{version}-%{release} -Obsoletes: bacula-db-dbi -Obsoletes: bacula-db-postgresql -Obsoletes: bacula-db-sqlite3 +Requires: %{name}-common = %{version}-%{release} +Provides: bacula(db) = %{version}-%{release} +Obsoletes: bacula(db) %description db-mysql MySQL database driver for Bacula. @@ -380,11 +358,9 @@ Summary: SQLite database driver for Bacula Summary(pl.UTF-8): Sterownik bazy SQLite dla Baculi Group: Networking/Utilities Requires(post): /sbin/ldconfig -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: bacula(db) = %{epoch}:%{version}-%{release} -Obsoletes: bacula-db-dbi -Obsoletes: bacula-db-mysql -Obsoletes: bacula-db-postgresql +Requires: %{name}-common = %{version}-%{release} +Provides: bacula(db) = %{version}-%{release} +Obsoletes: bacula(db) %description db-sqlite3 SQLite database driver for Bacula. @@ -392,72 +368,16 @@ SQLite database driver for Bacula. %description db-sqlite3 -l pl.UTF-8 Sterownik bazy SQLite dla Baculi. -%package db-dbi -Summary: libdbi database driver for Bacula -Summary(pl.UTF-8): Sterownik bazy libdbi dla Baculi -Group: Networking/Utilities -Requires(post): /sbin/ldconfig -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: bacula(db) = %{epoch}:%{version}-%{release} -Obsoletes: bacula-db-mysql -Obsoletes: bacula-db-postgresql -Obsoletes: bacula-db-sqlite3 +%package -n nagios-plugin-check_bacula +Summary: Nagios plugin to check bacula +Group: Networking +Requires: nagios-common -%description db-dbi -libdbi database driver for Bacula. +%description -n nagios-plugin-check_bacula +Nagios plugin to check bacula. -%description db-dbi -l pl.UTF-8 -Sterownik baz libdbi dla Baculi. - -%package rescue -Summary: Bacula - The Network Backup Solution -Summary(pl.UTF-8): Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci -Group: Networking/Utilities -Requires: %{name}-fd = %{epoch}:%{version}-%{release} -Requires: coreutils -Requires: util-linux - -%description rescue -Bacula - It comes by night and sucks the vital essence from your -computers. - -Bacula is a set of computer programs that permit you (or the system -administrator) to manage backup, recovery, and verification of -computer data across a network of computers of different kinds. In -technical terms, it is a network client/server based backup program. -Bacula is relatively easy to use and efficient, while offering many -advanced storage management features that make it easy to find and -recover lost or damaged files. - -This package installs scripts for disaster recovery and builds rescue -floppy disk for bare metal recovery. - -To make the bacula rescue disk run "./make_rescue_disk -- --copy-static-bacula -- --copy-etc-files" from the %{_sysconfdir}/rescue directory. To - recreate the rescue information for this system run ./getdiskinfo - again. - -%description rescue -l pl.UTF-8 -Bacula - przychodzi nocą i wysysa żywotny ekstrakt z komputerów. - -Bacula to zbiór programów umożliwiających administratorowi na -zarządzanie kopiami zapasowymi, odzyskiwaniem i weryfikacją danych w -sieci komputerów różnego rodzaju. W terminologii technicznej jest -to program do kopii zapasowych pracujący w architekturze -klient-serwer. Bacula jest stosunkowo łatwa w użyciu i wydajna, -oferując przy tym wiele zaawansowanych możliwości przy zarządzaniu -nośnikami, ułatwiających znalezienie i odzyskanie utraconych lub -uszkodzonych plików. - -Ten pakiet zawiera skrypty do odtwarzania po awarii i tworzy -dyskietkę ratunkowe do odtwarzania systemu od zera. - -Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić -"./make_rescue_disk -- --copy-static-bacula - --copy-etc-files" z katalogu - %{_sysconfdir}/rescue . Aby ponownie utworzyć informacje ratunkowe - dla danego systemu, należy ponownie uruchomić ./getdiskinfo . +%define _noautoreq libbaccats-%{version}.so +# provided by various db libraries as a symlink %prep %setup -q -a 1 @@ -466,169 +386,155 @@ Aby stworzyć dyskietkę ratunkową Baculi, należy uruchomić %patch2 -p1 %patch3 -p1 %patch4 -p1 +%ifarch x32 %patch5 -p1 -#%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 - -tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue +%endif +%if %{with s3} +cd libs3-%{libs3_version} +%patch6 -p1 +cd .. +%endif sed -i -e 's#bindir=.*#bindir=%{_bindir}#g' \ src/cats/create_* src/cats/delete_* src/cats/drop_* \ src/cats/grant_* src/cats/make_* src/cats/update_* sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in - -%if %{with dbi} -for dbtype in mysql postgresql sqlite3; do - sed -i -e "s,@DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_* -done -%endif +sed -i -e 's/@basename@/--hostname--/' src/*/*.conf.in %build cd autoconf -%{__aclocal} -I bacula-macros -I gettext-macros -# $BUILD_DIR not seen by libtoolize, export it -BUILD_DIR=.. %{__libtoolize} +%{__aclocal} -I bacula-macros -I gettext-macros -I libtool +## $BUILD_DIR not seen by libtoolize, export it +#BUILD_DIR=.. %%{__libtoolize} cd .. %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure -CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline" +%if %{with s3} +cd libs3-%{libs3_version} +CFLAGS="%{rpmcflags} -Wno-stringop-overflow" make VERBOSE=1 build/lib/libs3.a +ln -s ../inc build/include +cd .. +%endif -# we wan't the 'base' build built with the first database in the list, -# to make sure it is full-featured -base_built="no" - -for database in %{databases} ; do - WXCONFIG=%{_bindir}/wx-gtk2-unicode-config \ - %configure \ - --with-scriptdir=%{_libexecdir}/%{name} \ - %{?with_bat:--enable-bat} \ - --disable-conio \ - --enable-smartalloc \ - %{?with_console_wx:--enable-bwx-console} \ - --enable-tray-monitor \ - %{?with_python:--with-python} \ - --with-readline \ - --with-tcp-wrappers \ - --with-working-dir=%{_var}/lib/%{name} \ - --with-dump-email="root@localhost" \ - --with-job-email="root@localhost" \ - --with-smtp-host=localhost \ - --with-pid-dir=/var/run \ - --with-subsys-dir=/var/lock/subsys \ - --enable-batch-insert \ - --with-$database \ - %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \ - --with-dir-password="#FAKE-dir-password#" \ - --with-fd-password="#FAKE-fd-password#" \ - --with-sd-password="#FAKE-sd-password#" \ - --with-mon-dir-password="#FAKE-mon-dir-password#" \ - --with-mon-fd-password="#FAKE-mon-fd-password#" \ - --with-mon-sd-password="#FAKE-mon-sd-password#" \ - --with-openssl - - if [ "$base_built" = "no" ] ; then - %if %{with bat} - cd src/qt-console - qmake-qt4 bat.pro - cd ../.. - %endif - - %{__make} - - base_built="yes" - else - %{__make} -C src/cats clean - %{__make} -C src/cats - fi - - # install the database library in a temporary location - install -d libbacsql/$database%{_libdir} - %{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database -done +CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline" -%if %{with rescue} -cd rescue +QMAKE=%{_bindir}/qmake-qt5 \ %configure \ - --with-bacula=../ -cd linux/cdrom -fakeroot %{__make} + DISTNAME=pld-linux \ + --with-scriptdir=%{_libexecdir}/%{name} \ + %{?with_qt:--enable-bat} \ + --disable-conio \ + --enable-smartalloc \ + --with-readline \ + --with-tcp-wrappers \ + --with-working-dir=%{_var}/lib/%{name} \ + --with-dump-email="root@localhost" \ + --with-job-email="root@localhost" \ + --with-smtp-host=localhost \ + --with-pid-dir=/var/run \ + --with-subsys-dir=/var/lock/subsys \ + --with-systemd=%{systemdunitdir} \ + --enable-batch-insert \ + %{?with_pgsql:--with-postgresql} \ + %{?with_mysql:--with-mysql} \ + %{?with_sqlite3:--with-sqlite3} \ + %{?with_sqlite3_sync_off:--enable-extra-sqlite3-init="pragma synchronous=0;"} \ + %{!?with_s3:--without-s3} \ + %{?with_s3:--with-s3=$PWD/libs3-%{libs3_version}/build} \ + --with-dir-password="#FAKE-dir-password#" \ + --with-fd-password="#FAKE-fd-password#" \ + --with-sd-password="#FAKE-sd-password#" \ + --with-mon-dir-password="#FAKE-mon-dir-password#" \ + --with-mon-fd-password="#FAKE-mon-fd-password#" \ + --with-mon-sd-password="#FAKE-mon-sd-password#" \ + --with-openssl + +%if %{with qt} +cd src/qt-console +qmake-qt5 bat.pro +cd ../.. +%endif + +%{__make} \ + %{?with_s3:S3_LIBS="$PWD/libs3-%{libs3_version}/build/lib -ls3 $(pkg-config --libs libcurl libxml2)"} \ + 2>&1 | tee log +# check for build errors +grep "Error in" log && exit 1 + +%if %{with nagios} +# nagios plugin +%{__make} -C examples/nagios/check_bacula %endif %install rm -rf $RPM_BUILD_ROOT - -install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} -install -d $RPM_BUILD_ROOT%{_sysconfdir}/rescue -install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_mandir},%{_bindir},/var/log/bacula} +install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,pam.d,sysconfig} \ + $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \ + $RPM_BUILD_ROOT{%{_mandir},%{_bindir},/var/log{,/archive}/bacula} \ + $RPM_BUILD_ROOT%{systemdunitdir} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -# install libraries for all the database backends -# ldconfig will add the soname symlinks when one of the packages is installed -for database in %{databases} ; do - for libfile in libbacsql/$database%{_libdir}/lib*-*.so ; do - orig_name=`basename $libfile` - file_prefix="${orig_name%%-*.so}" - file_suffix="${orig_name#*-}" - file_name="$file_prefix-$database-$file_suffix" - install "$libfile" "$RPM_BUILD_ROOT/%{_libdir}/$file_name" - ln -sf "$file_name" "$RPM_BUILD_ROOT/%{_libdir}/$orig_name" - done -done - -install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir -install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd -install %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd -install %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir -install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir -install %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd -install %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd - -%if %{with console_wx} -# tray-monitor is for regular users -#mv $RPM_BUILD_ROOT%{_sbindir}/bacula-tray-monitor $RPM_BUILD_ROOT%{_bindir} - -install scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png -#install src/tray-monitor/generic.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/bacula-tray-monitor.xpm -sed -e 's/gnome-console/wx-console/g;s/Console/Wx Console/g' \ - scripts/bacula.desktop.gnome2 > $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop -#sed -e 's#%{_sbindir}#%{_bindir}#' \ -# scripts/bacula-tray-monitor.desktop > $RPM_BUILD_ROOT%{_desktopdir}/bacula-tray-monitor.desktop -%endif +%{__make} -C src/stored install-aligned \ + DESTDIR=$RPM_BUILD_ROOT -%if %{with bat} -install src/qt-console/.libs/bat $RPM_BUILD_ROOT%{_sbindir} -install scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir} +%if %{with s3} +%{__make} -C src/stored install-cloud \ + DESTDIR=$RPM_BUILD_ROOT %endif -%if %{with rescue} -# install the rescue stuff, these are the rescue scripts -install rescue/linux/floppy/backup.etc.list $RPM_BUILD_ROOT%{_sysconfdir}/rescue -install rescue/linux/floppy/*_* $RPM_BUILD_ROOT%{_sysconfdir}/rescue -install rescue/linux/floppy/getdiskinfo $RPM_BUILD_ROOT%{_sysconfdir}/rescue -install rescue/linux/floppy/sfdisk.bz2 $RPM_BUILD_ROOT%{_sysconfdir}/rescue +# create copies of make_catalog_backup for specific databases; zeore default one (will be ghost) +for database in %{databases}; do + sed -e "s#default_db_type=.*#default_db_type=${database}#g" \ + $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup \ + > $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup + chmod 755 $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_${database}_catalog_backup +done +:> $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup + +# we use db dependant (at compile time) shell script only +rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/make_catalog_backup.pl + +## replace with empty file, replaced by ldconfig from each db-* package on intsall +rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so +touch $RPM_BUILD_ROOT%{_libdir}/libbaccats-%{version}.so + +install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-dir +install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-fd +install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/rc.d/init.d/bacula-sd +cp -a %{SOURCE13} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}-dir +cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/bacula-dir +cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/bacula-fd +cp -a %{SOURCE16} $RPM_BUILD_ROOT/etc/sysconfig/bacula-sd +cp -a %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-dir.service +cp -a %{SOURCE18} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-fd.service +cp -a %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/bacula-sd.service + +%if %{with qt} +# qmake somewhy does not always create install_bins target. install our own the bin +rm -f $RPM_BUILD_ROOT%{_sbindir}/bat +libtool --silent --mode=install install src/qt-console/bat $RPM_BUILD_ROOT%{_bindir} +cp -a scripts/bacula.png $RPM_BUILD_ROOT%{_pixmapsdir}/bacula.png +cp -a scripts/bat.desktop $RPM_BUILD_ROOT%{_desktopdir} %endif touch $RPM_BUILD_ROOT/var/log/bacula/log -# install the updatedb scripts -install updatedb/update_sqlite* $RPM_BUILD_ROOT%{_libexecdir}/%{name} +# install the updatedb scripts for older versions that last full release +# 2.0 -> 3.0 : 10_to_11 +# 5.0 -> 5.2 : 12_to_14 +install -p updatedb/update_*_tables_10_to_11 $RPM_BUILD_ROOT%{_libexecdir}/%{name} +install -p updatedb/update_*_tables_11_to_12 $RPM_BUILD_ROOT%{_libexecdir}/%{name} # place for site passwords touch $RPM_BUILD_ROOT%{_sysconfdir}/{dir-password,fd-password,sd-password} touch $RPM_BUILD_ROOT%{_sysconfdir}/{mon-dir-password,mon-fd-password,mon-sd-password} -mv $RPM_BUILD_ROOT%{_libdir}/bacula/mtx-changer.conf $RPM_BUILD_ROOT/etc/bacula/mtx-changer.conf +mv $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mtx-changer.conf $RPM_BUILD_ROOT%{_sysconfdir}/mtx-changer.conf # some file changes rm -f $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{gconsole,startmysql,stopmysql,bacula,bconsole,fd} -%if %{without console_wx} -rm -f $RPM_BUILD_ROOT%{_desktopdir}/bacula-wx.desktop -%endif -touch $RPM_BUILD_ROOT%{_sysconfdir}/.pw.sed rm $RPM_BUILD_ROOT%{_docdir}/bacula/ChangeLog rm $RPM_BUILD_ROOT%{_docdir}/bacula/INSTALL @@ -636,29 +542,31 @@ rm $RPM_BUILD_ROOT%{_docdir}/bacula/LICENSE rm $RPM_BUILD_ROOT%{_docdir}/bacula/README rm $RPM_BUILD_ROOT%{_docdir}/bacula/ReleaseNotes rm $RPM_BUILD_ROOT%{_docdir}/bacula/VERIFYING -rm $RPM_BUILD_ROOT%{_docdir}/bacula/technotes # startup scripts, those in /etc/rc.d/init.d are better rm $RPM_BUILD_ROOT%{_sbindir}/bacula rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-* # unsupported -rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_* +rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/btraceback.mdb # rename to avoid possible conflicts mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz # no -devel files packaged, so this is also useless -rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la} - -# placeholders for the symlinks set in %%post db-* -for f in create_bacula_database drop_bacula_database drop_bacula_tables \ - grant_bacula_privileges make_bacula_tables update_bacula_tables ; do - - ln -sf /dev/null $RPM_BUILD_ROOT%{_libexecdir}/%{name}/$f -done - +rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,sql,cats,sd}.{so,la} +rm $RPM_BUILD_ROOT%{_libdir}/bacula-sd-*-driver.so +%{?with_mysql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-mysql.{la,so}} +%{?with_pgsql:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-postgresql.{la,so}} +%{?with_sqlite3:rm $RPM_BUILD_ROOT%{_libdir}/libbaccats-sqlite3.{la,so}} + +%if %{with nagios} +install -d $RPM_BUILD_ROOT%{nagiosplugindir} +%{__make} -C examples/nagios/check_bacula install \ + sbindir=%{nagiosplugindir} \ + DESTDIR=$RPM_BUILD_ROOT +%endif %clean rm -rf $RPM_BUILD_ROOT @@ -667,22 +575,25 @@ rm -rf $RPM_BUILD_ROOT %groupadd -P %{name}-common -g 136 -r -f bacula %useradd -P %{name}-common -u 136 -r -d /var/lib/bacula -s /bin/false -c "Bacula User" -g bacula bacula +%define update_configs \ +echo "Updating bacula passwords and names..." | %banner -a %{name} \ +cd %{_sysconfdir} \ +for f in *-password; do \ + if [ ! -s $f ]; then \ + openssl rand -base64 33 > $f \ + fi \ + p=$(cat $f) \ + for cf in *.conf *.conf.rpmnew; do \ + [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : \ + done \ +done \ +for cf in *.conf *.conf.rpmnew; do \ + [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : \ +done + %post common /sbin/ldconfig -echo "Updating bacula passwords and names..." -cd /etc/bacula -for f in *-password ; do - if [ ! -s $f ] ; then - openssl rand -base64 33 > $f - fi - p=`cat $f` - for cf in *.conf *.conf.rpmnew ; do - [ -f $cf ] && sed -i -e"s:#FAKE-$f#:$p:" "$cf" || : - done -done -for cf in *.conf *.conf.rpmnew ; do - [ -f $cf ] && sed -i -e"s:--hostname--:`hostname`:" "$cf" || : -done +%update_configs %postun common /sbin/ldconfig @@ -691,98 +602,66 @@ if [ "$1" = "0" ]; then %groupremove bacula fi -%post dir -umask 077 +%triggerpostun dir -- %{name}-dir < %{version}-0 +%banner bacula-dir -t3 </dev/null` - -if [ -z "$DB_VER" ]; then -# grant privileges and create tables - %{_libexecdir}/%{name}/grant_bacula_privileges > dev/null - %{_libexecdir}/%{name}/create_bacula_database > dev/null - %{_libexecdir}/%{name}/make_bacula_tables > dev/null -else - echo "Backing up bacula tables" - echo ".dump" | sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | bzip2 > %{_localstatedir}/bacula_backup.sql.bz2 - - db_type="%{database}" - - next_ver=$(($DB_VER + 1)) - # support up to version 30; increase this if needed - for ver in $(seq $next_ver 30); do - prev_ver=$(($ver - 1)) - - if [ -x %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} ]; then - echo "Upgrading bacula database: db=${db_type} from ${prev_ver} to ${ver}..." - %{_libexecdir}/%{name}/update_${type}_tables_${prev_ver}_to_${ver} - fi - done - - %{_libexecdir}/%{name}/update_bacula_tables - echo "If bacula works correctly you can remove the backup file %{_localstatedir}/bacula_backup.sql.bz2" -fi -chown -R bacula:bacula %{_localstatedir} -chmod -R u+rX,go-rwx %{_localstatedir}/* -%endif +Ensure you database partition has enough free space before you run the upgrade, +i.e check that there is enough room to rebuild 'File' table (it is the largest +in bacula db). -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : +EOF +%post dir +%update_configs /sbin/chkconfig --add bacula-dir %service bacula-dir restart "Bacula Director daemon" +%systemd_post bacula-dir.service %preun dir if [ "$1" = "0" ]; then %service bacula-dir stop /sbin/chkconfig --del bacula-dir fi +%systemd_preun bacula-dir.service -%post fd -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : +%postun dir +%systemd_reload +%post fd +%update_configs /sbin/chkconfig --add bacula-fd %service bacula-fd restart "Bacula File daemon" +%systemd_post bacula-fd.service %preun fd if [ "$1" = "0" ]; then %service bacula-fd stop /sbin/chkconfig --del bacula-fd fi +%systemd_preun bacula-fd.service -%post sd -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : +%postun fd +%systemd_reload +%post sd +%update_configs /sbin/chkconfig --add bacula-sd %service bacula-sd restart "Bacula Storage daemon" +%systemd_post bacula-sd.service %preun sd if [ "$1" = "0" ]; then %service bacula-sd stop /sbin/chkconfig --del bacula-sd fi +%systemd_preun bacula-sd.service + +%postun sd +%systemd_reload %pre console if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then @@ -790,104 +669,42 @@ if [ -e %{_sysconfdir}/console.conf -a ! -e %{_sysconfdir}/bconsole.conf ]; then fi %post console -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : - -%post console-wx -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : - -%post console-qt4 -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : - -%post tray-monitor -echo "Updating Bacula passwords and names..." -cd /etc/bacula -for f in *-password; do - p=`cat $f` - sed -i -e"s:#FAKE-$f#:$p:" *.conf *.conf.rpmnew 2>/dev/null || : -done -sed -i -e"s:--hostname--:`hostname`:" *.conf *.conf.rpmnew 2>/dev/null || : +%update_configs -%post rescue -# link our current installed conf file to the rescue directory -ln -sf %{_sysconfdir}/bacula-fd.conf %{_sysconfdir}/rescue/bacula-fd.conf +%triggerpostun common -- %{name}-common < 5.0.1-2 +find %{_sysconfdir}/bat.conf* -perm /007 -print0 2>/dev/null | xargs -0 -r chmod 600 || : -# run getdiskinfo -echo "Creating rescue files for this system..." -cd %{_sysconfdir}/rescue -./getdiskinfo +%post console-qt +%update_configs -%preun rescue -# remove the files created after the initial rpm installation -if [ "$1" = "0" ]; then - rm -f %{_sysconfdir}/rescue/bacula-fd.conf - rm -f %{_sysconfdir}/rescue/partition.* - rm -f %{_sysconfdir}/rescue/format.* - rm -f %{_sysconfdir}/rescue/mount_drives - rm -f %{_sysconfdir}/rescue/start_network - rm -f %{_sysconfdir}/rescue/sfdisk - rm -rf %{_sysconfdir}/rescue/diskinfo/* -fi +%post tray-monitor +%update_configs %define db_post() \ /sbin/ldconfig \ -for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables" ; do \ +for name in "create database" "drop tables" "drop database" "grant privileges" "make tables" "update tables"; do \ prefix="${name%% *}" \ suffix="${name#* }" \ - ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \ + ln -sf "${prefix}_%{1}_${suffix}" %{_libexecdir}/%{name}/"${prefix}_bacula_${suffix}" || : \ done \ +ln -sf "make_%{1}_catalog_backup" %{_libexecdir}/%{name}/make_catalog_backup || : \ +ln -sf libbaccats-%{1}-%{version}.so %{_libdir}/libbaccats-%{version}.so || : \ %service bacula-dir restart "Bacula Director daemon" -%define db_postun() \ -/sbin/ldconfig \ -if [ "$1" = "0" ]; then \ - for f in %{_libexecdir}/%{name}/*_bacula_* ; do \ - if [ ! -e "$f" ] ; then \ - rm "$f" \ - fi \ - done \ -fi - %post db-postgresql %db_post postgresql -%postun db-postgresql -%db_postun postgresql +%postun db-postgresql -p /sbin/ldconfig %post db-mysql %db_post mysql -%postun db-mysql -%db_postun mysql +%postun db-mysql -p /sbin/ldconfig %post db-sqlite3 %db_post sqlite3 -%postun db-sqlite3 -%db_postun sqlite3 - -# dbi backend is different, as it is not bound with a specific db engine -%post db-dbi -/sbin/ldconfig - -%postun db-dbi -p /sbin/ldconfig +%postun db-sqlite3 -p /sbin/ldconfig %files common %defattr(644,root,root,755) @@ -897,10 +714,11 @@ fi # do not remove bsmtp from files. Fix build if it is not installed. %attr(755,root,root) %{_sbindir}/bsmtp %attr(755,root,root) %{_sbindir}/btraceback -%attr(755,root,root) %{_libdir}/libbac-%{version}.so -%attr(755,root,root) %{_libdir}/libbaccfg-%{version}.so -%attr(755,root,root) %{_libdir}/libbacfind-%{version}.so -%attr(755,root,root) %{_libdir}/libbacpy-%{version}.so +%attr(755,root,root) %{_libdir}/libbac-9*.so +%attr(755,root,root) %{_libdir}/libbacsd-9*.so +%attr(755,root,root) %{_libdir}/libbaccfg-9*.so +%attr(755,root,root) %{_libdir}/libbacfind-9*.so +%attr(755,root,root) %{_libdir}/libbacsql-9*.so %{_mandir}/man8/bacula.8* %{_mandir}/man1/bsmtp.1* %{_mandir}/man8/btraceback.8* @@ -911,26 +729,30 @@ fi %attr(770,root,bacula) %dir %{_localstatedir} %attr(750,bacula,logs) %dir /var/log/bacula %attr(640,bacula,logs) %ghost /var/log/bacula/log +%attr(750,bacula,logs) %dir /var/log/archive/bacula %files dir %defattr(644,root,root,755) -%doc ChangeLog CheckList ReleaseNotes kernstodo LICENSE +%doc ChangeLog ReleaseNotes LICENSE #%doc examples %{name}-docs-%{version}/manual/{*.pdf,bacula} %attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-dir.conf -%ghost %{_sysconfdir}/.pw.sed %attr(640,root,root) %config(noreplace) /etc/logrotate.d/bacula-dir %attr(754,root,root) /etc/rc.d/init.d/bacula-dir %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-dir +%{systemdunitdir}/bacula-dir.service %attr(755,root,root) %{_sbindir}/bacula-dir +%attr(755,root,root) %{_sbindir}/bdirjson %attr(755,root,root) %{_sbindir}/bregex %attr(755,root,root) %{_sbindir}/bwild %attr(755,root,root) %{_sbindir}/bacula-dbcheck %{_mandir}/man8/bacula-dir.8* %{_mandir}/man8/bacula-dbcheck.8* +%{_mandir}/man8/bregex.8* +%{_mandir}/man8/bwild.8* %{_libexecdir}/%{name}/query.sql -#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup -#%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup +%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup +%if %{with pgsql} %files db-postgresql %defattr(644,root,root,755) %attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database @@ -939,16 +761,20 @@ fi %attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges %attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables %attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_* -%attr(755,root,root) %{_libdir}/libbacsql-postgresql-%{version}.so +%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_catalog_backup +%attr(755,root,root) %{_libdir}/libbaccats-postgresql-9*.so -%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so +%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so %ghost %{_libexecdir}/%{name}/create_bacula_database %ghost %{_libexecdir}/%{name}/drop_bacula_tables %ghost %{_libexecdir}/%{name}/drop_bacula_database %ghost %{_libexecdir}/%{name}/grant_bacula_privileges %ghost %{_libexecdir}/%{name}/make_bacula_tables %ghost %{_libexecdir}/%{name}/update_bacula_tables +%ghost %{_libexecdir}/%{name}/make_catalog_backup +%endif +%if %{with mysql} %files db-mysql %defattr(644,root,root,755) %attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database @@ -957,16 +783,20 @@ fi %attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges %attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables %attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_* -%attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so +%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_catalog_backup +%attr(755,root,root) %{_libdir}/libbaccats-mysql-9*.so -%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so +%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so %ghost %{_libexecdir}/%{name}/create_bacula_database %ghost %{_libexecdir}/%{name}/drop_bacula_tables %ghost %{_libexecdir}/%{name}/drop_bacula_database %ghost %{_libexecdir}/%{name}/grant_bacula_privileges %ghost %{_libexecdir}/%{name}/make_bacula_tables %ghost %{_libexecdir}/%{name}/update_bacula_tables +%ghost %{_libexecdir}/%{name}/make_catalog_backup +%endif +%if %{with sqlite3} %files db-sqlite3 %defattr(644,root,root,755) %attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database @@ -975,69 +805,57 @@ fi %attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges %attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables %attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_* -%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_* -%attr(755,root,root) %{_libdir}/libbacsql-sqlite3-%{version}.so +%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_catalog_backup +%attr(755,root,root) %{_libdir}/libbaccats-sqlite3-9*.so -%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so +%ghost %attr(755,root,root) %{_libdir}/libbaccats-9*.so %ghost %{_libexecdir}/%{name}/create_bacula_database %ghost %{_libexecdir}/%{name}/drop_bacula_tables %ghost %{_libexecdir}/%{name}/drop_bacula_database %ghost %{_libexecdir}/%{name}/grant_bacula_privileges %ghost %{_libexecdir}/%{name}/make_bacula_tables %ghost %{_libexecdir}/%{name}/update_bacula_tables - -%files db-dbi -%defattr(644,root,root,755) -%attr(755,root,root) %{_libexecdir}/%{name}/create_postgresql_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_postgresql_tables -%attr(755,root,root) %{_libexecdir}/%{name}/grant_postgresql_privileges -%attr(755,root,root) %{_libexecdir}/%{name}/make_postgresql_tables -%attr(755,root,root) %{_libexecdir}/%{name}/update_postgresql_* -%attr(755,root,root) %{_libexecdir}/%{name}/create_mysql_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_mysql_tables -%attr(755,root,root) %{_libexecdir}/%{name}/grant_mysql_privileges -%attr(755,root,root) %{_libexecdir}/%{name}/make_mysql_tables -%attr(755,root,root) %{_libexecdir}/%{name}/update_mysql_* -%attr(755,root,root) %{_libexecdir}/%{name}/create_sqlite3_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_database -%attr(755,root,root) %{_libexecdir}/%{name}/drop_sqlite3_tables -%attr(755,root,root) %{_libexecdir}/%{name}/grant_sqlite3_privileges -%attr(755,root,root) %{_libexecdir}/%{name}/make_sqlite3_tables -%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite3_* -%attr(755,root,root) %{_libexecdir}/%{name}/update_sqlite_* -%attr(755,root,root) %{_libdir}/libbacsql-dbi-%{version}.so - -%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.so - +%ghost %{_libexecdir}/%{name}/make_catalog_backup +%endif %files fd %defattr(644,root,root,755) %doc LICENSE -%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf +%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-fd.conf %attr(754,root,root) /etc/rc.d/init.d/bacula-fd %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-fd +%{systemdunitdir}/bacula-fd.service %attr(755,root,root) %{_sbindir}/bacula-fd +%attr(755,root,root) %{_sbindir}/bfdjson %attr(755,root,root) %{_libdir}/bpipe-fd.so %{_mandir}/man8/bacula-fd.8* %files sd %defattr(644,root,root,755) %doc LICENSE -%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf -%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf +%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bacula-sd.conf +%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mtx-changer.conf %attr(754,root,root) /etc/rc.d/init.d/bacula-sd %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/bacula-sd +%{systemdunitdir}/bacula-sd.service %attr(755,root,root) %{_sbindir}/bacula-sd %attr(755,root,root) %{_sbindir}/bcopy %attr(755,root,root) %{_sbindir}/bextract %attr(755,root,root) %{_sbindir}/bls %attr(755,root,root) %{_sbindir}/bscan +%attr(755,root,root) %{_sbindir}/bsdjson %attr(755,root,root) %{_sbindir}/btape -%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer +%attr(755,root,root) %{_libexecdir}/%{name}/baculabackupreport +%attr(755,root,root) %{_libexecdir}/%{name}/bacula-tray-monitor.desktop %attr(755,root,root) %{_libexecdir}/%{name}/disk-changer -%attr(755,root,root) %{_libexecdir}/%{name}/dvd-handler +%attr(755,root,root) %{_libexecdir}/%{name}/isworm +%attr(755,root,root) %{_libexecdir}/%{name}/mtx-changer +%attr(755,root,root) %{_libexecdir}/%{name}/tapealert +%attr(755,root,root) %{_libdir}/bacula-sd-aligned-driver-9.*.so +%if %{with s3} +%attr(755,root,root) %{_libdir}/bacula-sd-cloud-driver-9.*.so +%endif + %{_mandir}/man8/bacula-sd.8* %{_mandir}/man8/bcopy.8* %{_mandir}/man8/bextract.8* @@ -1048,57 +866,27 @@ fi %files console %defattr(644,root,root,755) %doc LICENSE -%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf +%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bconsole.conf %attr(755,root,root) %{_sbindir}/bconsole +%attr(755,root,root) %{_sbindir}/bbconsjson %{_mandir}/man8/bconsole.8* -%if %{with console_wx} -%files console-wx -%defattr(644,root,root,755) -%doc LICENSE -%{_pixmapsdir}/%{name}.png -%{_desktopdir}/bacula-wx.desktop -%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bwx-console.conf -%attr(755,root,root) %{_sbindir}/bwx-console -%{_mandir}/man1/bacula-bwxconsole.1* -%endif - -%if %{with bat} -%files console-qt4 +%if %{with qt} +%files console-qt %defattr(644,root,root,755) %doc LICENSE %{_pixmapsdir}/%{name}.png %{_desktopdir}/bat.desktop -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf -%attr(755,root,root) %{_sbindir}/bat +# Do not make this file world-readable or any user will get full access to the +# backup system +%attr(640,root,bacula) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bat.conf +%attr(755,root,root) %{_bindir}/bat %{_mandir}/man1/bat.1* %{_docdir}/%{name} %endif -%if %{with console_wx} -%files tray-monitor +%if %{with nagios} +%files -n nagios-plugin-check_bacula %defattr(644,root,root,755) -%doc LICENSE -%attr(755,root,root) %{_sbindir}/bacula-tray-monitor -#%{_pixmapsdir}/%{name}-tray-monitor.xpm -#%{_desktopdir}/%{name}-tray-monitor.desktop -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tray-monitor.conf -%{_mandir}/man1/bacula-tray-monitor.1* -%endif - -%if %{with rescue} -%files rescue -%defattr(644,root,root,755) -%doc LICENSE -%dir %{_sysconfdir}/rescue -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/backup.etc.list -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/bacula-fd -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/format_floppy -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/getdiskinfo -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/make_rescue_disk -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_bacula -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/restore_etc -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_grub -%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/run_lilo -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rescue/sfdisk.bz2 +%attr(755,root,root) %{nagiosplugindir}/check_bacula %endif