BrandingForDerivatives

Differences between revisions 1 and 30 (spanning 29 versions)
Revision 1 as of 2005-04-04 18:05:11
Size: 1074
Editor: ca-studio-bsr1o-251
Comment:
Revision 30 as of 2005-04-26 09:15:28
Size: 4942
Editor: intern146
Comment: DraftSpecification -> DraftSpec
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= People = ## page was renamed from DerivativeBranding
## page was renamed from UbuntuBranding
## page was renamed from UbuntuDevel/Branding
## page was renamed from UbuntuDownUnder/BOFs/UbuntuDevelopment/Branding
= Branding =
Line 3: Line 7:
 * ColinWatson == Status ==
Line 5: Line 9:
= Goal =  * People: ColinWatsonLead, MartinPittSecond
 * Contributors:
 * Interested: MarkShuttleworth, MattZimmerman, JuanjeOjeda, AndrewFitzsimon
 * Status: DraftSpec, DistroSpecification, UduBof, HighPriority
 * Branch: n/a
 * Pending: MarkShuttleworthQueue -- braindump needed.
 * UduSessions: 1
Line 7: Line 17:
Implement a mechanism to allow simple, centralized branding for Ubuntu derivatives == Introduction ==
Line 9: Line 19:
= Requirements = This specification describes our strategies to allow for the effective branding of Ubuntu and derivatives. Some branding can be attained without affecting packages, other branding initiatives will require derivatives to rebuild or even modify and rebuild packages. We will also refer to aspects of Rosetta that should affect distro branding.

== Rationale ==

== Scope and Use Cases ==
Line 12: Line 26:
  * Installer   * CD
Line 15: Line 29:
  * Installer
Line 17: Line 32:
   * Help texts
   * Dialogs
  * Express Installer (UbuntuExpress)
   * Artwork (Logos, images..)
   * Help texts
   * Dialogs
Line 26: Line 47:
  * Desktop    * Grub menu entry
   * Grub theme
  * Application defaults
Line 30: Line 53:
   * Default browser homepage
   * Default browser bookmarks
   * Gnome/Kde theme
   * Menu
   * Apps on "Add/Remove programs"
   * Icons on panel and desktop
   * "About Ubuntu..." (System Menu)
  * Others
   * Debootstrap script
Line 31: Line 63:
= Agenda = == Implementation Plan ==

 * We have discussed several approaches to branding, and in which cases they are useful:
   * The Rosetta team has done some initial work to mark branded strings
  1. Neutralizing strings
   * The simplest case to handle, and requires no effort to re-brand for each derivative
   * We should apply this technique wherever possible
  1. Runtime substitution
   * Appropriate for simple circumstances (e.g., Apache version string, Mozilla version string)
   * Can use lsb_release, and have a reasonable chance of having the code passed upstream
   * Add liblsb to provide the functionality of `lsb_release` as a library and use it for identification strings.
  1. Refactoring
   * Collect brand data into central locations
   * Works well for artwork
   * Works well for gconf configuration data
  1. Build-time branding
   * There are hard problems to be solved in the packaging system and in Launchpad before we can manage a separate build for every derivative
   * This isn't achievable for Breezy, so for the near term we must avoid it entirely
  1. Branding human-readable strings
   * Upstream software hardly uses distro-specific branding, so we can deal with that on a by-case basis.
   * Most branding applies to debconf templates, debian-installer is the only package that really needs branding (other packages should be neutralized).
   * Most of the installer branding can be neutralized.
   * For the remaining cases, we have two (nonexclusive) options:
    * Translate the remaining few cases manually to properly catch Linguistic issues (plurals, genders, tenses, etc.). This would require additional complexity and effort in order to avoid duplicating work across distributions which target the same languages.
    * Try to catch the most common cases with a global macro (debconf already supports per-package macro substitution).
    * Use special-case macros, but since they have to be maintained somehow, this could create more problems than it solves.
   * Human-readable strings must be translated, so retranslation is required after branding them
   * Try to neutralize where possible instead

== Outstanding Issues ==

 * /etc/lsb-release
  * Needs to be different in every derivative
  * Used by tools such as reportbug (don't fall back to Debian!)
 * Possibility to create a tool to derivate distros: [http://software-libre.org/moin/Meta/en/BrandingSystem Branding System] (not checked translation from [http://metadistros.hispalinux.es Metadistros] subproject)

== UDU BOF Agenda ==
Line 42: Line 110:
= Pre-Work = == UDU Pre-Work ==
Line 44: Line 112:
 * Review DistributionDefaultsAndBranding against the above  * Review [http://www.ubuntu.com/wiki/DistributionDefaultsAndBranding DistributionDefaultsAndBranding] against the above

Branding

Status

Introduction

This specification describes our strategies to allow for the effective branding of Ubuntu and derivatives. Some branding can be attained without affecting packages, other branding initiatives will require derivatives to rebuild or even modify and rebuild packages. We will also refer to aspects of Rosetta that should affect distro branding.

Rationale

Scope and Use Cases

  • Provide for branding or neutralization, as appropriate, of the following components:
    • CD
      • Boot loader splash image
      • Boot loader text
    • Installer
      • Debconf templates
      • Package selection
      • Help texts
      • Dialogs
    • Express Installer (UbuntuExpress)

      • Artwork (Logos, images..)
      • Help texts
      • Dialogs
    • Live CD
      • "Starting Ubuntu..."
    • Base
      • Archive keyring?
      • Debconf templates?
      • lsb-release? (hard)
    • Boot
      • USplash image
      • "Starting Ubuntu..."
      • Grub menu entry
      • Grub theme
    • Application defaults
      • GDM theme
      • Splash graphic
      • Default wallpaper
      • Default browser homepage
      • Default browser bookmarks
      • Gnome/Kde theme
      • Menu
      • Apps on "Add/Remove programs"
      • Icons on panel and desktop
      • "About Ubuntu..." (System Menu)
    • Others
      • Debootstrap script

Implementation Plan

  • We have discussed several approaches to branding, and in which cases they are useful:
    • The Rosetta team has done some initial work to mark branded strings
    1. Neutralizing strings
      • The simplest case to handle, and requires no effort to re-brand for each derivative
      • We should apply this technique wherever possible
    2. Runtime substitution
      • Appropriate for simple circumstances (e.g., Apache version string, Mozilla version string)
      • Can use lsb_release, and have a reasonable chance of having the code passed upstream
      • Add liblsb to provide the functionality of lsb_release as a library and use it for identification strings.

    3. Refactoring
      • Collect brand data into central locations
      • Works well for artwork
      • Works well for gconf configuration data
    4. Build-time branding
      • There are hard problems to be solved in the packaging system and in Launchpad before we can manage a separate build for every derivative
      • This isn't achievable for Breezy, so for the near term we must avoid it entirely
    5. Branding human-readable strings
      • Upstream software hardly uses distro-specific branding, so we can deal with that on a by-case basis.
      • Most branding applies to debconf templates, debian-installer is the only package that really needs branding (other packages should be neutralized).
      • Most of the installer branding can be neutralized.
      • For the remaining cases, we have two (nonexclusive) options:
        • Translate the remaining few cases manually to properly catch Linguistic issues (plurals, genders, tenses, etc.). This would require additional complexity and effort in order to avoid duplicating work across distributions which target the same languages.
        • Try to catch the most common cases with a global macro (debconf already supports per-package macro substitution).
        • Use special-case macros, but since they have to be maintained somehow, this could create more problems than it solves.
      • Human-readable strings must be translated, so retranslation is required after branding them
      • Try to neutralize where possible instead

Outstanding Issues

UDU BOF Agenda

  • Runtime branding, build-time branding and package-selection branding
    • Which approach is most suitable for each requirement?
    • Can we avoid build-time branding entirely? It causes big infrastructure problems
  • Branded CD builds
  • Debconf branding
  • Refactoring desktop branding
    • gconf schemas, etc. (<dist>-branding)

    • artwork (<dist>-artwork)

UDU Pre-Work

UbuntuDownUnder/BOFs/BrandingForDerivatives (last edited 2008-08-06 16:23:24 by localhost)