[Debconf-devel] Bug#695592: unblock: debconf/1.5.48

Colin Watson cjwatson at debian.org
Mon Dec 10 14:02:24 UTC 2012


Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock

I've just uploaded debconf 1.5.48, which fixes two regressions I
introduced several months ago (#686071 and #690755).  I regret not
noticing these sooner.  Both affect only dpkg-reconfigure: the first is
weird collateral damage to triggered packages which I can easily forgive
anyone but debconf hackers being completely stumped by, and the second
is just embarrassing because it breaks any use of dpkg-reconfigure on
more than one package.  I can easily imagine at least the former being
the root cause of release-critical bugs elsewhere.

The other non-documentation change here is a change to debconf's GTK
frontend to do some additional sanity-check probing.  This arises from a
bug that confused us for months during Ubuntu upgrade testing, where GTK
was temporarily unusable at some critical points during upgrade; this
kind of thing is far from uncommon regardless of the exact cause, so I
feel that extra checks in debconf are worthwhile for wheezy.

diff -Nru debconf-1.5.46/Debconf/FrontEnd/Gnome.pm debconf-1.5.48/Debconf/FrontEnd/Gnome.pm
--- debconf-1.5.46/Debconf/FrontEnd/Gnome.pm	2011-06-22 22:48:56.000000000 +0100
+++ debconf-1.5.48/Debconf/FrontEnd/Gnome.pm	2012-12-10 12:31:39.000000000 +0000
@@ -14,13 +14,6 @@
 use Debconf::Encoding qw(to_Unicode);
 use base qw{Debconf::FrontEnd};
 
-# Catch this so as not to confuse the poor users if Gtk or Gnome are not
-# installed.
-eval q{
-	use Gtk2;
-};
-die "Unable to load Gtk -- is libgtk2-perl installed?\n" if $@;
-
 =head1 DESCRIPTION
 
 This FrontEnd is a Gnome UI for Debconf.
@@ -121,11 +114,35 @@
 		}
 	}
 	else {
+		# Catch scenario where Gtk/Gnome are not installed.
+		use Gtk2;
+
 		@ARGV=@ARGV_for_gnome; # temporary change at first
 		Gtk2->init;
+
+		# Create a window, but don't show it.
+		#
+		# This has the effect of exercising gtk a bit in an
+		# attempt to force an error either in the gtk bindings
+		# themselves, but hopefully also in
+		# gtk/glib/gsettings/etc. There is no guarantee that
+		# this alone will provoke an error, but it's a
+		# relatively safe and reasonable operation to perform
+		# and further reduces the chance of the parent debconf
+		# process ending up in an unrecoverable state.
+		my $window = Gtk2::Window->new('toplevel');
+
 		exit(0); # success
 	}
 	
+	# Only load Gtk after the child has successfully proved it can do
+	# the same. This avoids the problem where a module calls into a
+	# native library and causes the perl interpreter to crash. When
+	# we get to here, we know that the child didn't crash, so it
+	# should be safe for us to attempt it.
+	eval q{use Gtk2;};
+	die "Unable to load Gtk -- is libgtk2-perl installed?\n" if $@;
+
 	my @gnome_sucks=@ARGV;
 	@ARGV=@ARGV_for_gnome;
 	Gtk2->init;
diff -Nru debconf-1.5.46/debian/changelog debconf-1.5.48/debian/changelog
--- debconf-1.5.46/debian/changelog	2012-08-13 13:17:17.000000000 +0100
+++ debconf-1.5.48/debian/changelog	2012-12-10 13:31:42.000000000 +0000
@@ -1,3 +1,28 @@
+debconf (1.5.48) unstable; urgency=low
+
+  * dpkg-reconfigure: Fix incorrect scoping of control_path that broke
+    handling of multiple packages (closes: #690755, LP: #1076322).
+
+ -- Colin Watson <cjwatson at debian.org>  Mon, 10 Dec 2012 13:31:38 +0000
+
+debconf (1.5.47) unstable; urgency=low
+
+  [ Manpages translations ]
+  * German updated.
+
+  [ Joey Hess ]
+  * GTK frontend: Do additional probing in child process to catch cases
+    where trying to use GTK will cause an otherwise uncatchable crash.
+    Closes: #690776 Thanks, James Hunt
+  * debconf-devel.7: Mention that CAPB capabilities are separated with spaces.
+    Closes: #694626
+
+  [ Colin Watson ]
+  * dpkg-reconfigure: Fix trigger processing to cope properly if some of the
+    triggered packages use debconf (closes: #686071).
+
+ -- Colin Watson <cjwatson at debian.org>  Mon, 10 Dec 2012 13:18:46 +0000
+
 debconf (1.5.46) unstable; urgency=low
 
   [ Manpages translations ]
diff -Nru debconf-1.5.46/doc/man/debconf-devel.7 debconf-1.5.48/doc/man/debconf-devel.7
--- debconf-1.5.46/doc/man/debconf-devel.7	2011-02-02 00:08:31.000000000 +0000
+++ debconf-1.5.48/doc/man/debconf-devel.7	2012-12-10 12:31:39.000000000 +0000
@@ -251,9 +251,9 @@
 .B CAPB capabilities
 .RS
 You generally don't need to use this command. It exchanges with debconf a
-list of supported capabilities. Capabilities that both you and debconf
-support will be used, and debconf will reply with all the capabilities it
-supports.
+list of supported capabilities (separated by spaces). Capabilities that
+both you and debconf support will be used, and debconf will reply with
+all the capabilities it supports.
 .P
 If 'escape' is found among your capabilities, debconf will expect commands
 you send it to have backslashes and newlines escaped (as \e\e and \en
diff -Nru debconf-1.5.46/doc/man/po4a/add_de/addendum.man.de debconf-1.5.48/doc/man/po4a/add_de/addendum.man.de
--- debconf-1.5.46/doc/man/po4a/add_de/addendum.man.de	2011-02-02 00:08:31.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/add_de/addendum.man.de	2012-12-10 12:31:39.000000000 +0000
@@ -1,7 +1,7 @@
 PO4A-HEADER:mode=after;position=^\.TH;beginboundary=^\.SH "SIEHE AUCH"
 .SH ÃœBERSETZUNG
 Die deutsche Ãœbersetzung wurde 2008 von Florian Rehnisch
-<eixman at gmx.de> und 2008-2009 von Helge Kreutzmann <debian at helgefjell.de> 
+<eixman at gmx.de> und 2008-2009, 2012 von Helge Kreutzmann <debian at helgefjell.de> 
 angefertigt. Diese Ãœbersetzung ist Freie Dokumentation; lesen Sie die
 GNU General Public License Version 2 oder neuer für die Kopierbedingungen.
 Es gibt KEINE HAFTUNG.
diff -Nru debconf-1.5.46/doc/man/po4a/add_de/addendum.pod.de debconf-1.5.48/doc/man/po4a/add_de/addendum.pod.de
--- debconf-1.5.46/doc/man/po4a/add_de/addendum.pod.de	2011-02-02 00:08:31.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/add_de/addendum.pod.de	2012-12-10 12:31:39.000000000 +0000
@@ -2,7 +2,7 @@
 =head1 ÃœBERSETZUNG
 
 Die deutsche Ãœbersetzung wurde 2008 von Florian Rehnisch
-<eixman at gmx.de> und 2008-2009 Helge Kreutzmann <debian at helgefjell.de>
+<eixman at gmx.de> und 2008-2009, 2012 Helge Kreutzmann <debian at helgefjell.de>
 angefertigt. Diese Ãœbersetzung ist Freie Dokumentation; lesen Sie die
 GNU General Public License Version 2 oder neuer für die Kopierbedingungen.
 Es gibt KEINE HAFTUNG.
diff -Nru debconf-1.5.46/doc/man/po4a/po/da.po debconf-1.5.48/doc/man/po4a/po/da.po
--- debconf-1.5.46/doc/man/po4a/po/da.po	2012-08-13 11:44:53.000000000 +0100
+++ debconf-1.5.48/doc/man/po4a/po/da.po	2012-12-10 13:18:54.000000000 +0000
@@ -8,7 +8,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2012-03-21 10:20+0100\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish <debian-l10n-danish at lists.debian.org>\n"
@@ -227,8 +227,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -239,7 +239,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -4257,9 +4257,9 @@
 #: debconf-devel.7:257
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 
 #. type: Plain text
diff -Nru debconf-1.5.46/doc/man/po4a/po/de.po debconf-1.5.48/doc/man/po4a/po/de.po
--- debconf-1.5.46/doc/man/po4a/po/de.po	2012-01-21 02:06:06.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/po/de.po	2012-12-10 13:18:54.000000000 +0000
@@ -1,5 +1,5 @@
 # Translation of debconf manpages to German
-# Copyright (C) Helge Kreutzmann <debian at helgefjell.de>, 2008, 2009.
+# Copyright (C) Helge Kreutzmann <debian at helgefjell.de>, 2008, 2009, 2012.
 # Copyright (C) Florian 'eix' Rehnisch <eixman at gmx.de>, 2008.
 # This file is distributed under the same license as the debconf package.
 #
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: debconf\n"
 "Report-Msgid-Bugs-To: debconf at packages.debian.org\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
-"PO-Revision-Date: 2011-08-14 11:31+0200\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
+"PO-Revision-Date: 2012-12-09 15:46+0100\n"
 "Last-Translator: Florian 'eix' Rehnisch <eixman at gmx.de>\n"
 "Language-Team: de <debian-l10n-german at lists.debian.org>\n"
 "Language: de\n"
@@ -228,8 +228,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -240,7 +240,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -5318,14 +5318,14 @@
 #: debconf-devel.7:257
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 "Im Allgemeinen brauchen Sie diesen Befehl nicht zu benutzen. Er tauscht mit "
-"Debconf eine Liste unterstützter Fähigkeiten aus. Fähigkeiten, die sowohl "
-"Debconf und Sie unterstützen, werden benutzt, und Debconf antwortet mit "
-"allen Fähigkeiten, die es unterstützt."
+"Debconf eine Liste unterstützter Fähigkeiten (getrennt durch Leerzeichen) "
+"aus. Fähigkeiten, die sowohl Debconf und Sie unterstützen, werden benutzt, "
+"und Debconf antwortet mit allen Fähigkeiten, die es unterstützt."
 
 # FIXME Double space
 #. type: Plain text
diff -Nru debconf-1.5.46/doc/man/po4a/po/debconf.pot debconf-1.5.48/doc/man/po4a/po/debconf.pot
--- debconf-1.5.46/doc/man/po4a/po/debconf.pot	2012-08-13 13:17:23.000000000 +0100
+++ debconf-1.5.48/doc/man/po4a/po/debconf.pot	2012-12-10 13:31:48.000000000 +0000
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -170,13 +170,13 @@
 msgstr ""
 
 #. type: SH
-#: ../../debconf:116 ../../Debconf/Client/ConfModule.pm:158 ../../debconf-escape:71 ../../debconf-communicate:73 ../../debconf-copydb:175 ../../debconf-getlang:255 ../../debconf-get-selections:74 ../../debconf-loadtemplate:47 ../../debconf-mergetemplate:180 ../../debconf-set-selections:227 ../../debconf-show:154 ../../dpkg-preconfigure:243 ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382 debconf-devel.7:968
+#: ../../debconf:116 ../../Debconf/Client/ConfModule.pm:158 ../../debconf-escape:71 ../../debconf-communicate:73 ../../debconf-copydb:175 ../../debconf-getlang:255 ../../debconf-get-selections:74 ../../debconf-loadtemplate:47 ../../debconf-mergetemplate:180 ../../debconf-set-selections:227 ../../debconf-show:154 ../../dpkg-preconfigure:244 ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382 debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
 msgstr ""
 
 #. type: textblock
-#: ../../debconf:118 ../../Debconf/Client/ConfModule.pm:160 ../../debconf-apt-progress:666 ../../debconf-communicate:75 ../../debconf-copydb:177 ../../debconf-getlang:257 ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182 ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../debconf:118 ../../Debconf/Client/ConfModule.pm:160 ../../debconf-apt-progress:666 ../../debconf-communicate:75 ../../debconf-copydb:177 ../../debconf-getlang:257 ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182 ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr ""
 
@@ -4003,9 +4003,9 @@
 #: debconf-devel.7:257
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 
 #. type: Plain text
diff -Nru debconf-1.5.46/doc/man/po4a/po/es.po debconf-1.5.48/doc/man/po4a/po/es.po
--- debconf-1.5.46/doc/man/po4a/po/es.po	2012-01-21 02:06:06.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/po/es.po	2012-12-10 13:18:55.000000000 +0000
@@ -30,7 +30,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf 1.5.41\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2011-08-02 11:03+0200\n"
 "Last-Translator: Omar Campagne <ocampagne at gmail.com>\n"
 "Language-Team: Debian l10n Spanish <debian-l10n-spanish at lists.debian.org>\n"
@@ -254,8 +254,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -266,7 +266,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -5295,11 +5295,17 @@
 
 #. type: Plain text
 #: debconf-devel.7:257
+#, fuzzy
+#| msgid ""
+#| "You generally don't need to use this command. It exchanges with debconf a "
+#| "list of supported capabilities. Capabilities that both you and debconf "
+#| "support will be used, and debconf will reply with all the capabilities it "
+#| "supports."
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 "Generalmente no tendrá que usar esta orden. Intercambia con debconf una "
 "lista de funcionalidades aceptadas. Se usarán la funcionalidades que el "
diff -Nru debconf-1.5.46/doc/man/po4a/po/fr.po debconf-1.5.48/doc/man/po4a/po/fr.po
--- debconf-1.5.46/doc/man/po4a/po/fr.po	2012-08-13 11:44:53.000000000 +0100
+++ debconf-1.5.48/doc/man/po4a/po/fr.po	2012-12-10 13:18:55.000000000 +0000
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2010-10-17 21:04+0200\n"
 "Last-Translator: Florentin Duneau <fduneau at gmail.com>\n"
 "Language-Team: French <debian-l10n-french at lists.debian.org>\n"
@@ -255,8 +255,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -268,7 +268,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -5815,11 +5815,17 @@
 # type: Plain text
 #. type: Plain text
 #: debconf-devel.7:257
+#, fuzzy
+#| msgid ""
+#| "You generally don't need to use this command. It exchanges with debconf a "
+#| "list of supported capabilities. Capabilities that both you and debconf "
+#| "support will be used, and debconf will reply with all the capabilities it "
+#| "supports."
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 "Vous n'aurez, en général, pas besoin d'utiliser cette commande. Elle échange "
 "avec debconf une liste des fonctionnalités reconnues. Des fonctionnalités "
diff -Nru debconf-1.5.46/doc/man/po4a/po/pt.po debconf-1.5.48/doc/man/po4a/po/pt.po
--- debconf-1.5.46/doc/man/po4a/po/pt.po	2012-03-14 09:13:58.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/po/pt.po	2012-12-10 13:18:55.000000000 +0000
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2012-01-15 19:49+0000\n"
 "Last-Translator: Américo Monteiro <a_monteiro at netcabo.pt>\n"
 "Language-Team: Portuguese <traduz at debianpt.org>\n"
@@ -226,8 +226,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -238,7 +238,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -5213,11 +5213,17 @@
 
 #. type: Plain text
 #: debconf-devel.7:257
+#, fuzzy
+#| msgid ""
+#| "You generally don't need to use this command. It exchanges with debconf a "
+#| "list of supported capabilities. Capabilities that both you and debconf "
+#| "support will be used, and debconf will reply with all the capabilities it "
+#| "supports."
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 "Geralmente você não precisa de usar este comando. Ele troca com o debconf "
 "uma lista das capacidades suportadas. As capacidades que ambos você e o "
diff -Nru debconf-1.5.46/doc/man/po4a/po/pt_BR.po debconf-1.5.48/doc/man/po4a/po/pt_BR.po
--- debconf-1.5.46/doc/man/po4a/po/pt_BR.po	2011-07-29 17:26:31.000000000 +0100
+++ debconf-1.5.48/doc/man/po4a/po/pt_BR.po	2012-12-10 13:18:55.000000000 +0000
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2001-12-01 19:04:00-0200\n"
 "Last-Translator: André Luís Lopes <andrelop at debian.org>\n"
 "Language-Team: Debian-BR Project <debian-l10n-portuguese at lists.debian.org>\n"
@@ -233,8 +233,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -246,7 +246,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 #, fuzzy
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess E<lt>joeyh at debian.orgE<gt>"
@@ -5259,14 +5259,13 @@
 msgid "B<CAPB capabilities>"
 msgstr ""
 
-# type: Plain text
 #. type: Plain text
 #: debconf-devel.7:257
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 
 # type: Plain text
diff -Nru debconf-1.5.46/doc/man/po4a/po/ru.po debconf-1.5.48/doc/man/po4a/po/ru.po
--- debconf-1.5.46/doc/man/po4a/po/ru.po	2012-01-21 02:06:06.000000000 +0000
+++ debconf-1.5.48/doc/man/po4a/po/ru.po	2012-12-10 13:18:55.000000000 +0000
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: debconf 1.5.41\n"
-"POT-Creation-Date: 2011-07-29 12:37+0300\n"
+"POT-Creation-Date: 2012-12-10 13:18+0000\n"
 "PO-Revision-Date: 2012-01-16 20:27+0400\n"
 "Last-Translator: Yuri Kozlov <yuray at komyakino.ru>\n"
 "Language-Team: Russian <debian-l10n-russian at lists.debian.org>\n"
@@ -253,8 +253,8 @@
 #: ../../debconf-copydb:175 ../../debconf-getlang:255
 #: ../../debconf-get-selections:74 ../../debconf-loadtemplate:47
 #: ../../debconf-mergetemplate:180 ../../debconf-set-selections:227
-#: ../../debconf-show:154 ../../dpkg-preconfigure:243
-#: ../../dpkg-reconfigure:268 debconf.conf.5:539 confmodule.3:42 debconf.7:382
+#: ../../debconf-show:154 ../../dpkg-preconfigure:244
+#: ../../dpkg-reconfigure:326 debconf.conf.5:539 confmodule.3:42 debconf.7:382
 #: debconf-devel.7:968
 #, no-wrap
 msgid "AUTHOR"
@@ -266,7 +266,7 @@
 #: ../../debconf-apt-progress:666 ../../debconf-communicate:75
 #: ../../debconf-copydb:177 ../../debconf-getlang:257
 #: ../../debconf-loadtemplate:49 ../../debconf-mergetemplate:182
-#: ../../dpkg-preconfigure:245 ../../dpkg-reconfigure:270
+#: ../../dpkg-preconfigure:246 ../../dpkg-reconfigure:328
 msgid "Joey Hess <joeyh at debian.org>"
 msgstr "Joey Hess <joeyh at debian.org>"
 
@@ -5707,11 +5707,17 @@
 # type: Plain text
 #. type: Plain text
 #: debconf-devel.7:257
+#, fuzzy
+#| msgid ""
+#| "You generally don't need to use this command. It exchanges with debconf a "
+#| "list of supported capabilities. Capabilities that both you and debconf "
+#| "support will be used, and debconf will reply with all the capabilities it "
+#| "supports."
 msgid ""
 "You generally don't need to use this command. It exchanges with debconf a "
-"list of supported capabilities. Capabilities that both you and debconf "
-"support will be used, and debconf will reply with all the capabilities it "
-"supports."
+"list of supported capabilities (separated by spaces). Capabilities that both "
+"you and debconf support will be used, and debconf will reply with all the "
+"capabilities it supports."
 msgstr ""
 "Обычно не нужно использовать эту команду. Она позволяет договориться с "
 "debconf о списке поддерживаемыÑ
 возможностей. Будут использованы "
diff -Nru debconf-1.5.46/dpkg-reconfigure debconf-1.5.48/dpkg-reconfigure
--- debconf-1.5.46/dpkg-reconfigure	2012-07-02 15:50:33.000000000 +0100
+++ debconf-1.5.48/dpkg-reconfigure	2012-12-10 13:28:21.000000000 +0000
@@ -185,16 +185,16 @@
 	
 	my @control_paths=`dpkg-query --control-path $pkg`;
 	map chomp, @control_paths;
-	sub control_path {
+	my $control_path = sub {
 		my $file = shift;
 		my $path = (grep /\.\Q$file\E$/, @control_paths)[0];
 		chomp($path) if defined $path;
 		return $path;
-	}
+	};
 
 	if ($reload) {
 		# Load up templates just in case they aren't already.
-		my $templates=control_path('templates');
+		my $templates=$control_path->('templates');
 		if ($templates and -e $templates) {
 			Debconf::Template->load($templates, $pkg);
 		}
@@ -209,7 +209,7 @@
 		          ['config',   'reconfigure', $version],
 			  ['postinst', 'configure',   $version]) {
 		my $script=shift @$info;
-		my $path_script=control_path($script);
+		my $path_script=$control_path->($script);
 
 		next unless $path_script and -x $path_script;
 
@@ -247,19 +247,7 @@
 		}
 		else {
 			# Not a confmodule, so run it as a normal script.
-			# Since it might run other programs that do use
-			# debconf, checkpoint the current database state
-			# and re-initialize it when the script finishes.
-			Debconf::Db->save;
-			
-			delete $ENV{DEBIAN_HAS_FRONTEND};
-			my $ret=system($path_script, @$info);
-			if (int($ret / 256) != 0) {
-				exit int($ret / 256);
-			}
-			$ENV{DEBIAN_HAS_FRONTEND}=1;
-			
-			Debconf::Db->load;
+			run_external($path_script, @$info);
 		}
 	}
 }
@@ -274,10 +262,7 @@
 			if not exists $initial_triggers{$trigpend};
 	}
 	if (@new_triggers) {
-		my $ret=system("dpkg", "--configure", @new_triggers);
-		if (int($ret / 256) != 0) {
-			exit int($ret / 256);
-		}
+		run_external("dpkg", "--configure", @new_triggers);
 	}
 } while (@new_triggers);
 
@@ -301,6 +286,22 @@
 	return sort @ret;
 }
 
+# Run an external program that does not itself use debconf, but that may run
+# other programs that do use debconf.  To do this safely, checkpoint the
+# current database state and re-initialize it when the program finishes.
+sub run_external {
+	Debconf::Db->save;
+	
+	delete $ENV{DEBIAN_HAS_FRONTEND};
+	my $ret=system(@_);
+	if (int($ret / 256) != 0) {
+		exit int($ret / 256);
+	}
+	$ENV{DEBIAN_HAS_FRONTEND}=1;
+	
+	Debconf::Db->load;
+}
+
 # Returns a list of all packages with pending triggers.
 sub triggers_pending {
 	my @ret;

Thanks,

-- 
Colin Watson                                       [cjwatson at debian.org]



More information about the Debconf-devel mailing list