LanguagePacksCD

Revision 18 as of 2006-06-22 17:18:49

Clear message

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