packages: bacula/bacula.spec, bacula/bacula-config_no_clean.patch (REMOVED)...

jajcus jajcus at pld-linux.org
Wed Mar 17 09:50:53 CET 2010


Author: jajcus                       Date: Wed Mar 17 08:50:53 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- build the database drivers first so the whole thing is not rebuilt again and again
- update_configs macro defined and %post scripts simplified
- Release: 1

---- Files affected:
packages/bacula:
   bacula.spec (1.128 -> 1.129) , bacula-config_no_clean.patch (1.1 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: packages/bacula/bacula.spec
diff -u packages/bacula/bacula.spec:1.128 packages/bacula/bacula.spec:1.129
--- packages/bacula/bacula.spec:1.128	Tue Mar 16 16:19:09 2010
+++ packages/bacula/bacula.spec	Wed Mar 17 09:50:47 2010
@@ -23,7 +23,7 @@
 Summary(pl.UTF-8):	Bacula - rozwiązanie do wykonywania kopii zapasowych po sieci
 Name:		bacula
 Version:	5.0.1
-Release:	0.5
+Release:	1
 Epoch:		0
 License:	extended GPL v2
 Group:		Networking/Utilities
@@ -49,7 +49,6 @@
 Patch6:		%{name}-64bitbuild_fix.patch
 Patch7:		%{name}-dbi_fixes.patch
 Patch8:		%{name}-dbi_dbcheck.patch
-Patch9:		%{name}-config_no_clean.patch
 URL:		http://www.bacula.org/
 BuildRequires:	acl-devel
 BuildRequires:	autoconf
@@ -91,7 +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}
+# from 'the worst' to 'the best'
+%define	databases %{?with_dbi:dbi} %{?with_sqlite3:sqlite3} %{?with_mysql:mysql} %{?with_pgsql:postgresql}
 
 # dependency section is broken. ccache usage is instead to makefiles
 %undefine	with_ccache
@@ -451,7 +451,6 @@
 #%patch6 -p1
 %patch7 -p1
 %patch8 -p1
-%patch9 -p1
 
 tar -xf %{SOURCE2} && ln -s bacula-rescue-* rescue
 
@@ -476,10 +475,8 @@
 
 CPPFLAGS="-I/usr/include/ncurses -I%{_includedir}/readline"
 
-# we wan't the 'base' build built with the first database in the list,
+# we wan't the 'base' build built with the last 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 \
@@ -509,26 +506,23 @@
 		--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
+	# build the database library
+	%{__make} -C src/cats clean
+	%{__make} -C src/cats
 
-		# install the database library in a temporary location
+	# 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 bat}
+cd src/qt-console
+qmake-qt4 bat.pro
+cd ../..
+%endif
+
+%{__make}
+
 %if %{with rescue}
 cd rescue
 %configure \
@@ -648,22 +642,26 @@
 %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 \
+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
+
 %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
@@ -672,54 +670,16 @@
 	%groupremove bacula
 fi
 
-%post dir
-umask 077
-
-# XXX: Most of this upgrade procedure is safe for sqlite only. Other databases would require knowledge
-#      about currently used version so we can't easily support these :(
-
-%if %{with sqlite3}
-[ -s %{_localstatedir}/bacula.db ] && \
-	DB_VER=`echo "select * from Version;" | \
-	%{_bindir}/sqlite%{?with_sqlite3:3} %{_localstatedir}/bacula.db | tail -n 1 2>/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
-
-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 || :
+%triggerpostun dir -- %{name}-dir < 5.0
+%banner bacula-dir -t3 <<EOF
+You have upgraded from an older version of Bacula director.
+
+You will probably need to call %{_libexecdir}/%{name}/update_bacula_tables
+script to upgrade the database.
+EOF
 
+%post dir
+%update_configs
 /sbin/chkconfig --add bacula-dir
 %service bacula-dir restart "Bacula Director daemon"
 
@@ -730,14 +690,7 @@
 fi
 
 %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 || :
-
+%update_configs
 /sbin/chkconfig --add bacula-fd
 %service bacula-fd restart "Bacula File daemon"
 
@@ -748,14 +701,7 @@
 fi
 
 %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 || :
-
+%update_configs
 /sbin/chkconfig --add bacula-sd
 %service bacula-sd restart "Bacula Storage daemon"
 
@@ -771,40 +717,16 @@
 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 || :
+%update_configs
 
 %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 || :
+%update_configs
 
 %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 || :
+%update_configs
 
 %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
@@ -840,7 +762,7 @@
 /sbin/ldconfig \
 if [ "$1" = "0" ]; then \
 	for f in %{_libexecdir}/%{name}/*_bacula_* ; do \
-		if [ ! -e "$f" ] ; then \
+		if [ -L "$f" -a ! -e "$f" ] ; then \
 			rm "$f" \
 		fi \
 	done \
@@ -867,6 +789,7 @@
 # dbi backend is different, as it is not bound with a specific db engine
 %post db-dbi
 /sbin/ldconfig
+%service bacula-dir restart "Bacula Director daemon"
 
 %postun db-dbi -p /sbin/ldconfig
 
@@ -1090,6 +1013,11 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.129  2010/03/17 08:50:47  jajcus
+- build the database drivers first so the whole thing is not rebuilt again and again
+- update_configs macro defined and %post scripts simplified
+- Release: 1
+
 Revision 1.128  2010/03/16 15:19:09  glen
 - obsolete also virtual (should work and is cleaner)
 - adapterize with utf8 locale / updated adapter
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/bacula/bacula.spec?r1=1.128&r2=1.129&f=u



More information about the pld-cvs-commit mailing list