[Dbconfig-common-devel] dbconfig-common/dpkg common,1.22,1.23 config,1.17,1.18 prerm,1.7,1.8

seanius@haydn.debian.org seanius@haydn.debian.org


Update of /cvsroot/dbconfig-common/dbconfig-common/dpkg
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv5705/dpkg

Modified Files:
	common config prerm 
Log Message:
  * various fixes for postgresql remote connections
  * don't allow empty admin passwords in pgsql, since they don't work anyway.
  * don't repeat asking for the admin password.


Index: common
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/common,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- common	1 May 2005 00:03:23 -0000	1.22
+++ common	1 May 2005 06:13:05 -0000	1.23
@@ -36,7 +36,7 @@
 	dbc_mysql_templates="mysql/method remote/host remote/newhost mysql/app-pass mysql/admin-user mysql/admin-pass remote/port db/dbname db/app-user"
 
 	# templates common to postgresql database types
-	dbc_pgsql_templates="pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user"
+	dbc_pgsql_templates="pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user pgsql/no-empty-passwords"
 
 	# all dbtypes supported by dbconfig-common
 	dbc_all_supported_dbtypes="mysql pgsql"
@@ -260,6 +260,10 @@
 #	this is the name of your application's database.
 dbc_dbname="$dbc_dbname"
 
+# dbc_dbadmin: name of the administrative user
+#	this is the administrative user that is used to create all of the above
+dbc_dbadmin="$dbc_dbadmin"
+
 ##
 ## postgresql specific settings.  if you don't use postgresql,
 ## you can safely ignore all of these
@@ -313,10 +317,12 @@
 	db_input critical $dbc_package/install-error || true
 	db_go || true
 	# forget that we've seen all the debconf questions
-	set -x
 	for f in $dbc_register_templates; do
 		db_fset $dbc_package/$f seen false
 	done
+	# and blank the password
+	dbc_forget_dbadmin_password
+	dbc_forget_app_password
 	dbc_postinst_cleanup
 	exit 1
 }
@@ -354,14 +360,11 @@
 ## exactly what you'd think
 ##
 dbc_forget_dbadmin_password(){
-	db_fget $dbc_package/$dbc_dbtype/admin-pass seen || true
-	if [ "$RET" = "true" ]; then
-		echo dbconfig-common: flushing administrative password >&2
-		db_reset $dbc_package/$dbc_dbtype/admin-pass 
-		db_fset $dbc_package/$dbc_dbtype/admin-pass seen false 
-		db_reset $dbc_package/password-confirm
-		db_fset $dbc_package/password-confirm seen false 
-	fi
+	echo dbconfig-common: flushing administrative password >&2
+	db_reset $dbc_package/$dbc_dbtype/admin-pass 
+	db_fset $dbc_package/$dbc_dbtype/admin-pass seen false 
+	db_reset $dbc_package/password-confirm
+	db_fset $dbc_package/password-confirm seen false 
 }
 
 ##
@@ -381,9 +384,7 @@
 ##	usage: dbc_get_admin_pass package dbtype
 ##
 dbc_get_admin_pass(){
-	local have_admin_pass pass1 pass2 dbc_package dbc_dbtype
-	if [ "$1" ]; then dbc_package=$1; fi
-	if [ "$2" ]; then dbc_dbtype=$2; fi
+	local have_admin_pass pass1
 
 	db_fget $dbc_package/$dbc_dbtype/admin-pass seen 
 	if [ "$RET" = "true" ]; then
@@ -392,37 +393,24 @@
 
 	# make sure the passwords are the same, safely
 	while [ ! "$have_admin_pass" ]; do
-		# forget the password-confirm question first, as it's shared
-		db_reset $dbc_package/password-confirm
-		db_fset $dbc_package/password-confirm seen false
-
 		# get the administrative password
 		db_input high $dbc_package/$dbc_dbtype/admin-pass || true
-
-		# get the password again
-		db_input high $dbc_package/password-confirm || true
-
-		# actually get the passwords
 		db_go || true
 		db_get $dbc_package/$dbc_dbtype/admin-pass
 		pass1="$RET"
-		db_get $dbc_package/password-confirm
-		pass2="$RET"
 
-		# test to see if the passwords match
-		if [ "$pass1" = "$pass2" ]; then
-			have_admin_pass="yes"
-		else
-			# tell them the passwords didn't match, loop again
+		if [ "$dbc_dbtype" = "pgsql" -a ! "$pass1" ]; then
+			db_input high $dbc_package/pgsql/no-empty-passwords || true
 			db_reset $dbc_package/$dbc_dbtype/admin-pass
 			db_fset $dbc_package/$dbc_dbtype/admin-pass seen false
-			db_input high $dbc_package/passwords-do-not-match || true
 			db_go || true
+		else
+			have_admin_pass="yes"
 		fi
 	done
 
 	db_get $dbc_package/$dbc_dbtype/admin-pass
-	echo $RET;
+	dbc_dbadmpass="$RET"
 }
 
 ##

Index: config
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/config,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- config	28 Apr 2005 03:11:29 -0000	1.17
+++ config	1 May 2005 06:13:05 -0000	1.18
@@ -245,7 +245,7 @@
 		db_input low $dbc_package/$dbc_dbtype/admin-user || true
 
 		if [ "$need_adminpw" != "false" ]; then
-			dbc_dbadmpass=`dbc_get_admin_pass $dbc_package $dbc_dbtype`
+			dbc_get_admin_pass
 		fi
 
 		db_input low $dbc_package/db/app-user || true

Index: prerm
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/prerm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- prerm	1 May 2005 00:17:12 -0000	1.7
+++ prerm	1 May 2005 06:13:05 -0000	1.8
@@ -72,7 +72,7 @@
 		if [ "$dbc_purge" = "true" ]; then
 			# get the admin user password
 			if [ "$need_admin_pw" ]; then
-				dbc_dbadmpass=`dbc_get_admin_pass "$dbc_package" "$dbc_dbtype"`
+				dbc_get_admin_pass
 			fi
 
 			# dump the database into a temporary file