[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: unblock request: dbconfig-common 1.8.31



ahoy,

On Mon, 2007-03-05 at 22:07 -0800, Steve Langasek wrote:
> 
> An upload to t-p-u for the l10n updates would be ok.  Fixing the dpkg
> order-of-operations corner case also seems like it would be ok, but I
> haven't been able to pick out which change in the package is related to this
> bug, so I can't say for sure yet. :)
> 

for your perusal, here's the significant portions changed for this
particular fix.



	sean
Index: dpkg/common
===================================================================
--- dpkg/common	(.../1.8.29)	(revision 378)
+++ dpkg/common	(.../1.8.30)	(revision 378)
@@ -844,8 +844,12 @@
 	dbc_debug "dbc_register_debconf() $@"
 
 	for f in $dbc_register_templates; do
+		# register the question, but bail if it doesn't (yet) exist
+		# failure is gracefully handled elsewhere
+		if ! db_register dbconfig-common/$f $dbc_package/$f >/dev/null 2>&1; then
+			return 1
+		fi
 		# perform some basic customizing substitutions
-		db_register dbconfig-common/$f $dbc_package/$f
 		db_subst $dbc_package/$f pkg $dbc_package
 		if [ "$dbc_dbvendor" ]; then
 			db_subst $dbc_package/$f dbvendor $dbc_dbvendor
Index: dpkg/config
===================================================================
--- dpkg/config	(.../1.8.29)	(revision 378)
+++ dpkg/config	(.../1.8.30)	(revision 378)
@@ -20,7 +20,19 @@
 	##
 	## register all the dbconfig-common questions
 	##
-	dbc_register_debconf
+	## note that this can fail in the case that dbconfig-common is being
+	## installed at the same time as the dependant package and the latter
+	## is preconfigured before we are (no way to avoid this without being
+	## in base).  in this case we gracefully exit and defer to the second
+	## time the config script is run by dpkg in the postinst.   note if that
+	## "hack" in dpkg ever goes away we can still work around the issue so
+	## i think it's fair to avoid over-complicating things in the dependency
+	## chain.
+	##
+	if ! dbc_register_debconf; then
+		dbc_debug "dbconfig-common not yet setup, deferring configuration."
+		return 0
+	fi
 	
 	# make sure debconf is up to date with on-disk configuration
 	dbc_read_package_config

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: