Localized CD image tools

Registered by Martin Pitt on 2011-05-16

Tools and a workflow to provide truly localized CD images. This goes beyond merely installing the right translations, we also want to localize e. g. default bookmarks, or provide a custom background image.

Create a set of tools for providing these as ubuntu-defaults-<name> addon packages (as declarative as possible), and build CD images with this extra customization package.

With this, concrete localization projects like UbuntuSpec:desktop-o-qin-ubuntu-china will be a lot easier to implement.

Blueprint information

Colin Watson
Martin Pitt
Martin Pitt
Series goal:
Accepted for oneiric
Milestone target:
milestone icon oneiric-alpha-3
Started by
Martin Pitt on 2011-07-22
Completed by
Martin Pitt on 2011-10-24


Work items for oneiric-alpha-1:
Figure out how Firefox distribution ini files work in general: DONE
Discuss with Chris how we can change ubufox to not stomp over browser.startup.homepage: DONE

Work items:
Change ubufox to allow setting a homepage in distribution.ini (see linked ubufox branch): DONE
create ubuntu-defaults-template script to generate skeleton source package from a template: DONE
implement dh_ubuntu_defaults for Firefox bookmarks: DONE
implement dh_ubuntu_defaults for Firefox start page: DONE
implement dh_ubuntu_defaults for default Firefox search engine (implemented, but does not currently work due to linked bug 800304): DONE
implement dh_ubuntu_defaults for Unity launchers: DONE
implement dh_ubuntu_defaults for Rhythmbox radio stations: DONE
implement support for default radio stations in banshee (see https://bugzilla.gnome.org/show_bug.cgi?id=548197): DONE
implement dh_ubuntu_defaults for Banshee radio stations: DONE
implement dh_ubuntu_defaults for language packs: DONE
implement dh_ubuntu_defaults for extra packages: DONE
implement dh_ubuntu_defaults for background image: DONE
package ubuntu-defaults-builder: DONE
implement dh_ubuntu_defaults for keyboard layout (layout or layout_variant, see /usr/share/X11/xkb/rules/xorg.lst): DONE
[cjwatson] create script to build a CD image from defaults package, with live-build: DONE
add check-language-support integration to CD build script to install necessary support for primary language: DONE
implement dh_ubuntu_defaults for unity web launchers: DONE

Work items for ubuntu-11.10-beta-1:
[cjwatson] package syslinux-themes-ubuntu so that we are able to build isos with live-build: DONE
create ubuntu-defaults-test package which exercises all customizable aspects (wrote a script to auto-generate it from the template examples): DONE
create automatic tests which ensure that ubuntu-defaults-test package has the expected structure and policy conformity: DONE
document how to test an image built with ubuntu-defaults-test to verify that all settings get applied (see "Test Plan" in wiki spec): DONE
support extra depends in unity/launchers.txt: DONE
add "custom hook script" option to CD build script: DONE
add ${distro_release_number} and ${distro_release_name} macros, for e. g. startpage.txt: DONE
add offline start page to webbrowser (startup.homepage_override_url): DONE
implement dh_ubuntu_defaults for setting default X.org session for lightdm: DONE
implement dh_ubuntu_defaults for setting default X.org session for gdm (custom.conf): DONE
allow unity/launchers.txt to replace the default launchers ("@clear" magic line): DONE
[didrocks] implement dh_ubuntu_defaults for changing preferred apps: DONE
information (created: https://wiki.ubuntu.com/OneiricOcelot/LocalizedImageContacts): DONE

Work items for ubuntu-11.10-beta-2:
[kate.stewart] create wiki page to list the localized CDs and point to the download location and contact: DONE
[kate.stewart] discuss branding implications with Peter Goodall: DONE
[kate.stewart] discuss rollout communication plans with Gerry Carr: DONE
[kate.stewart] discuss testing with pgraner/QA team - what is minimum set of manual tests that should be run after image created: DONE

Work items for ubuntu-11.10:
[chrisccoulson] provide stable path for distribution.ini so that defaults packages don't break with every update: DONE

-- Q&A ---

 - Configure home dash apps: these must be customized for some locales, particularly Qin, so this pkg should provide a means to do this. Again, specifically for unity and for unity-2d, which use different approaches.
------> pitti: current unity does not allow customization, it will just display the default browser/MUA/photo handler.

 - Can a mechanism for installing extra pkgs be devised that does not use depends? That is, we may want to add a pkg to a locale-specific image via this package. But the user may not actually want that package and may try to remove it. However, if this settings pkg *depends* on it, and if they deinstall it, then they will lose the entire set of locale settings, which would be very bad. Perhaps instead the the postinst script can loop through the pkgs listed in the depends.txt and recommends.txt files to install them, thus keeping them discrete? This is a *theoretical* issue, not a requirement of OEM.
------> pitti: you can use Recommends:, which will install it by default, but allow the user to remove it; or just add it to live-build configuration and don't use the depends mechanism here.

 - we translate as well for wubi "autorun.inf" which isn't localizable
    ------> pitti: This seems outside of what you can currently do with a mere package install; I think this needs packaging changes in wubi first? Seems like a nice idea for future development, though. Added to "Possible future improvements".

 - IIRC, we got a bug when we forced "fr" by default in the gfxboot, which made us changing the ubuntu live session (for the live cd) to set it to French (/var/cache/gdm/ubuntu/dmrc). Better to check if it's still the case or not).
    -----> pitti: thanks for pointing out, will do that when testing

 - As well, can we replace an existing package by another one? If we look at the Examples/, they are not translated at all. What we do, is to rename the folder, and get a translated copy of the examples that we (ubuntu-fr) provides on our own. Of course, we can see that issue as the "example-content" package not being localized which can be fixed that way.
  -----> pitti: I don't want to replace/remove existing packages; let's fix the actual bugs instead, like making e-c translatable

David Planella set up page: https://wiki.ubuntu.com/OneiricOcelot/LocalizedImagesRollout, to be used to gather information and make sure that translation team for a language is comfortable with it.

Contact sheet for those locos wanting to participate is: https://wiki.ubuntu.com/OneiricOcelot/LocalizedImageContacts


Work Items

Dependency tree

* Blueprints in grey have been implemented.