live-installer important bugfix for Italian support
(Keep me on CC, I'm not on debian-boot)
Hello,
I just debugged an issue where live-installer would not work when
you opted for an Italian installation. The commit below has my explanation
of the problem and a tested fix. That said I'm not very familiar with
the internals of main-menu and this interpretation comes from my reading
of the source code, not from direct experience (main-menu's interesting
logs are commented out and since it's embedded in the initrd I couldn't
easily replace it on the live ISO used for the tests). Thus I would
appreciate a review by someone more familiar with main menu.
In particular, given my explanation of the problem, I would have expected
the problem to not be solved without changing the Italian translation but
keeping the duplicate Italian translation and reducing Installer-Menu-Item
to 6490 was enough to fix the problem.
I still fixed the Italian translation because it was the right thing to do
anyway. (Note that I fixed it in packages/po/sublevel3/it.po too...)
I believe that this fix should go into wheezy. If you want me to upload it
by myself, let me know. Otherwise I'll happily let Christian upload it.
Here's my commit:
commit 85fb0ea0b6147a62a53ec8f5c0940c8276b59145
Author: Raphaël Hertzog <hertzog@debian.org>
Date: Wed Feb 6 15:06:41 2013 +0100
Reduce Installer-Menu-Item to 6490 and fix Italian translation
The goal is to ensure that the udeb takes precedence over bootstrap-base.
This fixes installation from a live media in Italian. TTBOMK the
explanation is the following:
bootstrap-base and live-installer are pulled in the menu via the
"installed-base" virtual package that they provide. Thus the following
comment of "main-menu" applies:
/* Compile a list of providing package. The default choice will be the
* package with highest priority. If we have ties, menu items are
* preferred. If we still have ties, the default choice is arbitrary */
bootstrap-base is of priority required while live-installer is of priority
optional, but udpkg doesn't store the Priority in /var/lib/dpkg/status
thus both packages are of equal priority when main-menu compares them.
Since both packages also have Installer-Menu-Item 6500, the default choice
is supposed to be arbitrary. But even if arbitrary, the choice always
ended up selecting live-installer (as wanted) in a somewhat consistent way
across all languages, except for Italian.
As far I could understand, the reason why Italian behaves differently is
that the translation of the menu items for "bootstrap-base" and
"live-installer" are the same string "Installare il sistema base" and this
is thus confusing the debian-installer/missing-provide debconf prompt
which lets the user choose between both. Other translations have different
strings (and the underlying English strings are also different "Install
the base system" vs "Install the system").
diff --git a/debian/changelog b/debian/changelog
index 4562746..7af70a6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+live-installer (40) UNRELEASED; urgency=low
+
+ * Reduce Installer-Menu-Item to 6490 to take precedence over
+ bootstrap-base in the ordering computed by d-i's main-menu.
+ * Change Italian translation of "Install the system" to something
+ else than base-installer's Italian translation of "Install the base
+ system" (“Installare il sistema base” → “Installare il sistema”) to
+ avoid confusing debconf with a list of two identical entries.
+
+ -- Raphaël Hertzog <hertzog@debian.org> Tue, 05 Feb 2013 18:35:23 +0100
+
live-installer (39) unstable; urgency=low
[ Raphaël Hertzog ]
diff --git a/debian/control b/debian/control
index d29aacf..9854c50 100644
--- a/debian/control
+++ b/debian/control
@@ -17,5 +17,5 @@ Depends:
${shlibs:Depends}, archdetect, base-installer (>= 1.105),
busybox-udeb (>= 1:1.13.3), cdebconf-udeb, created-fstab, mounted-partitions
Provides: installed-base, kernel-installer
-XB-Installer-Menu-Item: 6500
+XB-Installer-Menu-Item: 6490
Description: Install the system
diff --git a/debian/po/it.po b/debian/po/it.po
index c228831..b9edced 100644
--- a/debian/po/it.po
+++ b/debian/po/it.po
@@ -53,14 +53,14 @@ msgstr ""
#. :sl3:
#: ../live-installer.templates:1001
msgid "Install the system"
-msgstr "Installare il sistema base"
+msgstr "Installare il sistema"
#. Type: text
#. Description
#. :sl3:
#: ../live-installer.templates:2001
msgid "Installing the system..."
-msgstr "Installazione del sistema base..."
+msgstr "Installazione del sistema..."
#. Type: text
#. Description
--
Raphaël Hertzog ◈ Debian Developer
Get the Debian Administrator's Handbook:
→ http://debian-handbook.info/get/
Reply to: