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

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: