packages: bacula/bacula-dbi_fixes.patch, bacula/bacula.spec - build all dat...

jajcus jajcus at pld-linux.org
Tue Mar 16 15:12:41 CET 2010


Author: jajcus                       Date: Tue Mar 16 14:12:41 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- build all database backends and put each in a separate package

---- Files affected:
packages/bacula:
   bacula-dbi_fixes.patch (1.1 -> 1.2) , bacula.spec (1.125 -> 1.126) 

---- Diffs:

================================================================
Index: packages/bacula/bacula-dbi_fixes.patch
diff -u packages/bacula/bacula-dbi_fixes.patch:1.1 packages/bacula/bacula-dbi_fixes.patch:1.2
--- packages/bacula/bacula-dbi_fixes.patch:1.1	Wed Apr 22 12:42:08 2009
+++ packages/bacula/bacula-dbi_fixes.patch	Tue Mar 16 15:12:36 2010
@@ -31,12 +31,12 @@
 -	$(INSTALL_SCRIPT) drop_bacula_tables $(DESTDIR)$(scriptdir)/drop_bacula_tables
 -	$(INSTALL_SCRIPT) drop_bacula_database $(DESTDIR)$(scriptdir)/drop_bacula_database
 +	for dbtype in bdb mysql postgresql sqlite3 sqlite; do \
-+		$(INSTALL_SCRIPT) create_$${dbtype}_database $(DESTDIR)$(scriptdir)/create_$${dbtype}_database; \
-+		$(INSTALL_SCRIPT) update_$${dbtype}_tables $(DESTDIR)$(scriptdir)/update_$${dbtype}_tables; \
-+		$(INSTALL_SCRIPT) make_$${dbtype}_tables $(DESTDIR)$(scriptdir)/make_$${dbtype}_tables; \
-+		$(INSTALL_SCRIPT) grant_$${dbtype}_privileges $(DESTDIR)$(scriptdir)/grant_$${dbtype}_privileges; \
-+		$(INSTALL_SCRIPT) drop_$${dbtype}_tables $(DESTDIR)$(scriptdir)/drop_$${dbtype}_tables; \
-+		$(INSTALL_SCRIPT) drop_$${dbtype}_database $(DESTDIR)$(scriptdir)/drop_$${dbtype}_database; \
++		[ -f create_$${dbtype}_database ] && $(INSTALL_SCRIPT) create_$${dbtype}_database $(DESTDIR)$(scriptdir)/create_$${dbtype}_database; \
++		[ -f update_$${dbtype}_tables ] && $(INSTALL_SCRIPT) update_$${dbtype}_tables $(DESTDIR)$(scriptdir)/update_$${dbtype}_tables; \
++		[ -f make_$${dbtype}_tables ] && $(INSTALL_SCRIPT) make_$${dbtype}_tables $(DESTDIR)$(scriptdir)/make_$${dbtype}_tables; \
++		[ -f grant_$${dbtype}_privileges ] && $(INSTALL_SCRIPT) grant_$${dbtype}_privileges $(DESTDIR)$(scriptdir)/grant_$${dbtype}_privileges; \
++		[ -f drop_$${dbtype}_tables ] && $(INSTALL_SCRIPT) drop_$${dbtype}_tables $(DESTDIR)$(scriptdir)/drop_$${dbtype}_tables; \
++		[ -f drop_$${dbtype}_database ] && $(INSTALL_SCRIPT) drop_$${dbtype}_database $(DESTDIR)$(scriptdir)/drop_$${dbtype}_database; \
 +	done
 +
 +		$(INSTALL_SCRIPT) fix_postgresql_tables $(DESTDIR)$(scriptdir)/fix_postgresql_tables

================================================================
Index: packages/bacula/bacula.spec
diff -u packages/bacula/bacula.spec:1.125 packages/bacula/bacula.spec:1.126
--- packages/bacula/bacula.spec:1.125	Tue Mar 16 10:14:47 2010
+++ packages/bacula/bacula.spec	Tue Mar 16 15:12:36 2010
@@ -8,37 +8,13 @@
 %bcond_without	console_wx		# wx-console program
 %bcond_without	bat			# bat Qt4 GUI
 %bcond_without	dbi			# use Database Independent Abstraction Layer (libdbi)
-%bcond_with	mysql			# use MySQL
-%bcond_with	pgsql			# use PostgreSQL
+%bcond_without	mysql			# use MySQL
+%bcond_without	pgsql			# use PostgreSQL
 %bcond_with	python
 %bcond_with	rescue
-%bcond_with	sqlite3			# use SQLite3 instead of SQLite 2
+%bcond_without	sqlite3			# use SQLite3
 %bcond_with	sqlite3_sync_off	# makes SQLite3 backend much faster, but less reliable
-
-%if %{with dbi}
-%define		database	dbi
-%undefine       with_mysql
-%undefine       with_pgsql
-%undefine       with_sqlite3
-%endif
-%if %{with sqlite3}
-%define		database	sqlite3
-%undefine       with_dbi
-%undefine       with_mysql
-%undefine       with_pgsql
-%endif
-%if %{with pgsql}
-%define		database	postgresql
-%undefine       with_dbi
-%undefine       with_mysql
-%undefine       with_sqlite3
-%endif
-%if %{with mysql}
-%define		database	mysql
-%undefine       with_dbi
-%undefine       with_pgsql
-%undefine       with_sqlite3
-%endif
+#
 %if %{without sqlite3}
 %undefine       with_sqlite3_sync_off
 %endif
@@ -51,11 +27,11 @@
 Epoch:		0
 License:	extended GPL v2
 Group:		Networking/Utilities
-Source0:	http://downloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
+Source0:	http://dl.sourceforge.net/bacula/%{name}-%{version}.tar.gz
 # Source0-md5:	beb9f8da196b3c9ffb0356f087dbdb99
-Source1:	http://downloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
+Source1:	http://dl.sourceforge.net/bacula/%{name}-docs-%{version}.tar.bz2
 # Source1-md5:	ce2ef0dca50ab916fd6701b53b7bb4df
-Source2:	http://downloads.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
+Source2:	http://dl.sourceforge.net/bacula/%{name}-rescue-5.0.0.tar.gz
 # Source2-md5:	349623581cfe0bcd798dd137abac959a
 Source10:	%{name}-dir.init
 Source11:	%{name}-fd.init
@@ -114,6 +90,8 @@
 %define		_sysconfdir	/etc/%{name}
 %define		_localstatedir	/var/lib/%{name}
 
+%define	databases %{?with_pgsql:postgresql} %{?with_mysql:mysql} %{?with_sqlite3:sqlite3} %{?with_dbi:dbi}
+
 # dependency section is broken. ccache usage is instead to makefiles
 %undefine	with_ccache
 
@@ -134,12 +112,12 @@
 
 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
@@ -174,12 +152,12 @@
 
 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
@@ -187,6 +165,7 @@
 Group:		Networking/Utilities
 Requires(post):	sed >= 4.0
 Requires:	%{name}-common = %{epoch}:%{version}-%{release}
+Requires:	bacula(db) = %{epoch}:%{version}-%{release}
 Obsoletes:	bacula-updatedb
 
 %description dir
@@ -209,12 +188,12 @@
 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
@@ -321,16 +300,16 @@
 %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
@@ -356,12 +335,80 @@
 
 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
+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
+
+%description db-postgresql
+PostgreSQL database driver for Bacula.
+
+%description db-postgresql -l pl.UTF-8
+Sterownik bazy PostgreSQL dla Baculi.
+
+%package db-mysql
+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
+
+%description db-mysql
+MySQL database driver for Bacula.
+
+%description db-mysql -l pl.UTF-8
+Sterownik bazy MySQL dla Baculi.
+
+%package db-sqlite3
+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
+
+%description db-sqlite3
+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
+
+%description db-dbi
+libdbi database driver for 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
@@ -386,7 +433,7 @@
 floppy disk for bare metal recovery.
 
 To make the bacula rescue disk run "./make_rescue_disk
---copy-static-bacula
+- --copy-static-bacula
 - --copy-etc-files" from the %{_sysconfdir}/rescue directory. To
   recreate the rescue information for this system run ./getdiskinfo
   again.
@@ -396,20 +443,21 @@
 
 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 .
+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 .
 
 %prep
 %setup -q -a 1
@@ -431,7 +479,7 @@
 sed -i -e 's/@hostname@/--hostname--/' src/*/*.conf.in
 
 %if %{with dbi}
-for dbtype in bdb mysql postgresql sqlite3; do
+for dbtype in mysql postgresql sqlite3; do
 	sed -i -e "s, at DB_TYPE@,$dbtype,g" src/cats/*_${dbtype}_*
 done
 %endif
@@ -444,42 +492,57 @@
 cd ..
 %{__autoconf} --prepend-include=$(pwd)/autoconf autoconf/configure.in > configure
 
-CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
-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 at localhost" \
-	--with-job-email="root at 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
+base_built="no"
 
-%if %{with bat}
-cd src/qt-console
-qmake-qt4 bat.pro
-cd ../..
-%endif
+for database in %{databases} ; do
+	CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
+	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 at localhost" \
+		--with-job-email="root at 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
 
-%{__make}
+		# install the database library in a temporary location
+	install -d libbacsql/$database%{_libdir}
+	%{__make} -C src/cats libtool-install DESTDIR=$PWD/libbacsql/$database
+done
 
 %if %{with rescue}
 cd rescue
@@ -499,6 +562,19 @@
 %{__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
@@ -562,6 +638,9 @@
 rm $RPM_BUILD_ROOT%{_sbindir}/bacula
 rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/bacula-ctl-*
 
+# unsupported
+rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/*_bdb_*
+
 # rename to avoid possible conflicts
 mv $RPM_BUILD_ROOT%{_sbindir}/{,bacula-}dbcheck
 mv $RPM_BUILD_ROOT%{_mandir}/man8/{,bacula-}dbcheck.8.gz
@@ -569,8 +648,12 @@
 # no -devel files packaged, so this is also useless
 rm $RPM_BUILD_ROOT%{_libdir}/libbac{,cfg,find,py,sql}.{so,la}
 
-# sqlite is not supported
-rm $RPM_BUILD_ROOT%{_libexecdir}/%{name}/update_sqlite_*
+# 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
 
 
 %clean
@@ -759,6 +842,26 @@
 	rm -rf %{_sysconfdir}/rescue/diskinfo/*
 fi
 
+%define db_post() \
+/sbin/ldconfig \
+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}" || :  \
+done
+
+%post db-postgresql
+%db_post postgresql
+
+%post db-mysql
+%db_post mysql
+
+%post db-sqlite3
+%db_post sqlite3
+
+%post db-dbi
+/sbin/ldconfig
+
 %files common
 %defattr(644,root,root,755)
 %doc LICENSE
@@ -771,7 +874,6 @@
 %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}/libbacsql-%{version}.so
 %{_mandir}/man8/bacula.8*
 %{_mandir}/man1/bsmtp.1*
 %{_mandir}/man8/btraceback.8*
@@ -799,48 +901,89 @@
 %{_mandir}/man8/bacula-dir.8*
 %{_mandir}/man8/bacula-dbcheck.8*
 %{_libexecdir}/%{name}/query.sql
-%if %{with bdb} || %{with dbi}
-%attr(755,root,root) %{_libexecdir}/%{name}/create_bdb_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bdb_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_bdb_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_bdb_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_bdb_*
-%endif
-%if %{with sqlite3} || %{with dbi}
-%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_*
-%endif
-%if %{with mysql} || %{with dbi}
+#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
+#%attr(755,root,root) %{_libexecdir}/%{name}/delete_catalog_backup
+
+%files db-postgresql
+%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) %{_libdir}/libbacsql-postgresql-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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-mysql
+%defattr(644,root,root,755)
 %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_*
-%endif
-%if %{with pgsql} || %{with dbi}
+%attr(755,root,root) %{_libdir}/libbacsql-mysql-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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-sqlite3
+%defattr(644,root,root,755)
+%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-sqlite3-%{version}.so
+
+%ghost %attr(755,root,root) %{_libdir}/libbacsql-%{version}.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_*
-%endif
-%if %{without dbi}
-%attr(755,root,root) %{_libexecdir}/%{name}/create_bacula_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_database
-%attr(755,root,root) %{_libexecdir}/%{name}/drop_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/grant_bacula_privileges
-%attr(755,root,root) %{_libexecdir}/%{name}/make_bacula_tables
-%attr(755,root,root) %{_libexecdir}/%{name}/update_bacula_tables
-%endif
-#%attr(755,root,root) %{_libexecdir}/%{name}/make_catalog_backup
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/bacula/bacula-dbi_fixes.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/bacula/bacula.spec?r1=1.125&r2=1.126&f=u



More information about the pld-cvs-commit mailing list