LanguagePacksCD

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. She gets the ubuntu language-pack CD from the local linux user group and inserts it into her computer. The language-selector comes up and offers to install additonal languages (including korean). This makes her happy.
  • 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. This happens as soon as he inserts the CD and language-selector comes up and offers him to install the missing language-pack stuff.

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 (specified on the command line rather than in a seed) is already installed and outputs what additional packages are required then. Debian-cd has a mode where it builds the CD based on a list of packages.

The CD should be put onto cdimage.ubuntu.com and releases.ubuntu.com (once it's final). If the CD overflows we should consider splitting it up into various CDs based on the rough geographic region (european, CJK, etc). This is not required as long as all the packages fit onto a single CD.

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

Future development

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. This does not block the current development and is merely a "nice-to-have".


CategorySpec

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