LanguagePacksCD

Differences between revisions 16 and 18 (spanning 2 versions)
Revision 16 as of 2006-06-22 10:47:36
Size: 4683
Editor: ALagny-109-1-2-202
Comment: bzip2 usage
Revision 18 as of 2006-06-22 17:18:49
Size: 5458
Editor: ALagny-109-1-2-101
Comment: some review comments and english cleanups
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
 * Alice gets a CD from Bob with additional language packs. She is Korean and her language is not in the official CD  * Alice gets a CD from Bob with additional language packs. She is Korean and her language is not in the official CD.
Line 22: Line 22:

{{{dsilvers: these use-cases are extremely weak. They don't actually carry through the user-story to a conclusion of any kind. For example, Alice has now received her CD, and we know that she's korean and that korean is not supplied on the normal CD, but we are given no indication of how she would be expected to activate her apparent newly-acquired korean language packs.}}}
Line 32: Line 34:
Language-selector should contain an additonal button called "add language cdrom" that will ''apt-cdrom add'' the CD, re-read the cache, and update itself. That should also be available as a command line option. Language-selector should contain an additonal button called "add language cdrom" that will ''apt-cdrom add'' the CD (or rather apt.Cdrom.add()), re-read the cache, and update itself. That should also be available as a command line option.
Line 36: Line 38:
The mechanism in update-notifier that detects the inseration of an Ubuntu CD should be extended to detect language package CDs as well and offer the user to start the language selector with the updated language information. The mechanism in update-notifier that detects the insertion of an Ubuntu CD should be extended to detect language package CDs as well and offer the user  the option of starting the language selector with the updated language information.
Line 38: Line 40:
Language selector should display the available languages in both the current locale and the language name in its native form (like "German - Deutsch", like the installer is doing right now).

Once the language is selected by the user, the language packages for the softwares already installed should be installed without additional confirmations, as far as the operation doesn't do any unexpected changes.
Once a language is selected by the user, the language packages for the softwares already installed should be installed with no additional requirement for confirmation, providing that the operation doesn't make any changes which the user would not expect.
Line 46: Line 46:
The language-pack-cd should be build with debian-cd if that is possible/feasible. The list of packages for the CD can extracted with the langpack-cd script (see the Code section). Germinate should also be able to help us here. It has a mode to calculate dependency based on the assumption that a given set of packages is already installed and outputs what additional packages are required then. Debian-cd has a mode where it builds the CD based on a a list of packages. The language-pack-cd should be built with debian-cd and germinate. The list of packages for the CD can extracted with the langpack-cd script (see the Code section) or with germinate. Germinate has a mode to calculate dependency based on the assumption that a given set of packages is already installed and outputs what additional packages are required then. Debian-cd has a mode where it builds the CD based on a a list of packages.
Line 48: Line 48:
The CD should be put onto cdimage.ubuntu.com and releases.ubuntu.com (once its final). If the CD overflows we should condier adding a second one or removing "little" languages from them. {{{dsilvers: this implies that you need a language-packs seed but that's not covered by the scope above.}}}

The CD should be put onto cdimage.ubuntu.com and releases.ubuntu.com (once its final). If the CD overflows we should consider adding a second one or removing "little" languages from them. It has been discussed to split up the language-pack CD into various pieces (european, CJK, etc). But this is probably not required as long as all the stuff fits onto a single CD.

{{{dsilvers: What are 'little' languages? }}}
Line 55: Line 59:
Have 662 language packages (size: 192M)
Have 1009 packages (size: 691M) to download
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download
Line 58: Line 62:
Have 662 language packages (size: 192M)
Have 1009 packages (size: 694M) to download
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download
Line 61: Line 65:
Have 662 language packages (size: 192M)
Have 1009 packages (size: 694M) to download
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download
Line 69: Line 73:
{{{dsilvers: This is merely reiterating a point from above. Is this section needed at all? }}}
Line 73: Line 79:
{{{dsilvers: Is this a blocker, or could it be better transformed into a 'future development' ? }}}

Summary

There should be an additional (optional) language package CD that contains all the language packages that can't be shipped on the normal CD because of space constraints. It should be possible to update it even after the release.

Rationale

Not all users have broadband at home, they may want to burn the CD e.g. at university.

Use cases

  • Alice gets a CD from Bob with additional language packs. She is Korean and her language is not in the official CD.
  • OpenOffice has very large language packages, so they can't be all shipped in the release CD. John gets a language package CD and expects that the missing language packages in his system will get installed.

dsilvers: these use-cases are extremely weak. They don't actually carry through the user-story to a conclusion of any kind. For example, Alice has now received her CD, and we know that she's korean and that korean is not supplied on the normal CD, but we are given no indication of how she would be expected to activate her apparent newly-acquired korean language packs.

Scope

This spec requires additions on the cd-building infrastructure (a additonal CD has to be created) and changes to the update-notifier application to detect the langauage-pack CD.

Design

The langauge package CD should be a normal apt-cdrom-enabled CD that contains a Packages file and a Release file. The .disk/ directory should contain some information indicating that the CD is a language CD for easy identification.

Language-selector should contain an additonal button called "add language cdrom" that will apt-cdrom add the CD (or rather apt.Cdrom.add()), re-read the cache, and update itself. That should also be available as a command line option.

It must also look for updates to the currently installed language packages and offer the user the choice of updating them.

The mechanism in update-notifier that detects the insertion of an Ubuntu CD should be extended to detect language package CDs as well and offer the user the option of starting the language selector with the updated language information.

Once a language is selected by the user, the language packages for the softwares already installed should be installed with no additional requirement for confirmation, providing that the operation doesn't make any changes which the user would not expect.

Implementation

Both update-notifier and language-selector needs to be modified to deal with the language package CDs as described. Language selector adds the add-language pack cd with python-apts Cdrom.Add() code. Update-notifier already detects cd insert, it's just a matter of adding code to detect that it's a language pack cd.

The language-pack-cd should be built with debian-cd and germinate. The list of packages for the CD can extracted with the langpack-cd script (see the Code section) or with germinate. Germinate has a mode to calculate dependency based on the assumption that a given set of packages is already installed and outputs what additional packages are required then. Debian-cd has a mode where it builds the CD based on a a list of packages.

dsilvers: this implies that you need a language-packs seed but that's not covered by the scope above.

The CD should be put onto cdimage.ubuntu.com and releases.ubuntu.com (once its final). If the CD overflows we should consider adding a second one or removing "little" languages from them. It has been discussed to split up the language-pack CD into various pieces (european, CJK, etc). But this is probably not required as long as all the stuff fits onto a single CD.

dsilvers: What are 'little' languages? 

Code

There is some code on http://people.ubuntu.com/~mvo/bzr/langpack-cd that will find all available language-pack packages (with dependencies) and download them. The space requirements for all languages (exluded "en" as this is on the install-cd already) in dapper with all dependencies that are not also in the rdepends on ubuntu-base:

Working on 'i386'
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download
Working on 'amd64'
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download
Working on 'powerpc'
Have 658 language packages (size: 189M)
Have 1023 packages (size: 688M) to download

Data preservation and migration

When a CD is inserted with updated language packages it should offer the user to offer the upgradable packages.

dsilvers: This is merely reiterating a point from above. Is this section needed at all? 

Outstanding issues

It turns out the the openoffice.org-help-$lang dependency of language-support-$lang is very big. Compressing its content with bzip2 inside the deb probably saves a lot of space here. There is a bug open (https://launchpad.net/distros/ubuntu/+source/openoffice.org-l10n/+bug/50659) for this.

dsilvers: Is this a blocker, or could it be better transformed into a 'future development' ? 


CategorySpec

LanguagePacksCD (last edited 2008-08-06 16:29:02 by localhost)