DerivativeDistroHowto

Revision 2 as of 2007-02-28 14:40:01

Clear message

Scope

This page is unofficial guide how to create Ubuntu derivative distribution according to Ubuntu policies and common sense, so that cooperation between derivative distro and Ubuntu is maintained and both can benefit from it.

It is a collection of links to discussions, tools and useful pages, but note that even statements from Ubuntu employees are not legally binding and the final rules are set by legal documents . However, by obeying rules stated here you present good will and cooperation with the community.

Rationale

Ubuntu (and its main derivatives) are great distributions, but they do not fit all possible needs and use cases. By creating derivative distributions it is possible to spread Linux into more environments and Ubuntu itself can be improved by feedback from derivatives. It is also worth noting that [http://www.ubuntu.com/ubuntu/relationship Ubuntu itself is derivative of Debian distribution].

Ubuntu not only allows, but also encourages creation of derivative distros (if it is reasonable):

The creation of derivative distributions based on Ubuntu, where the
trademark is respected according to our policy[1], is not only allowed, it
is encouraged.  If your tool makes this process easier, then everyone is
happy.  Thanks for your concern.

[1] http://www.ubuntu.com/ubuntu/TrademarkPolicy

Source: Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2006-December/023054.html)

Derive or not?

The decision to create derivative distro should not be taken lightly. Improving Ubuntu is much easier when you work directly on Ubuntu and your changes will be much more widespread and will be for benefit of everyone, so before taking decision to create derived distro, please think carefully if it is really needed. There are many different ways to contribute to Ubuntu, so maybe you can fit your needs into main Ubuntu.

If you really think you cannot work directly on Ubuntu, consider joining one of existing Ubuntu derivatives. Splitting forces on many minor projects will not help fixing [https://launchpad.net/ubuntu/+bug/1 bug #1]. It is better to join forces.

You can see list of Ubuntu derivatives in section "Existing ubuntu derivatives".

Kinds of derivative distros

Deriving from distribution can be done on many different levels, depending what are exactly your needs and reasons for creating derivative distros. Ubuntu recognizes the following types of derivative distros:

  • Level 1 (official flavours): Ubuntu Foundation endorsed and supported derivatives, including Kubuntu and Edubuntu
  • Level 2 (unofficial flavours): includes a different selection of packages but no modification of code
  • Level 3 (binary inherited): a derivative stored in a separate archive, with no modification of code
  • Level 4 (source derivative): binaries are rebuilt, no source code changes but possible configuration changes, e.g. hardened Ubuntu
  • Level 5 (standalone derivative): includes source code changes, e.g. Guadalinex

Source: Ubuntu wiki page DerivativeDistroProcess

It is also worth to note that there are also distributions which contain many changes and take packages from different sources (for example mix Ubuntu and Debian packages).

Usage of Ubuntu servers as sources of binary packages

If your derived distro is binary compatible with Ubuntu and you cannot afford providing your own servers with packages, it is OK to use Ubuntu servers as package source:

> Say that I would fork Ubuntu, making only small changes that does not
> effect the system's packages. Would it be OK for that system to use
> Ubuntu's official package archives, or are they for Ubuntu only?

Ubuntu mirrors are open and accessible to everyone who wishes to download
the data they hold.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2006-March/016900.html)

The Ubuntu archives are a public service for anyone to use; mirror policy is
at the discretion of the operator, but these are also public as a rule.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

Of course, if your distribution grows large enough you should consider providing your own repository or at least adding (possibly partial) mirror hosted by you.

Note: this statement applies to Ubuntu mirrors maintained by Canonical and other public mirrors, other mirrors might have different policy, so it is recommended to check thoroughly mirror policy before using them.

Trademarks

Warning: The only legally binding statement about trademarks can be obtained directly from Canonical. If in doubt, please contact their legal representatives.

Ubuntu trademark policy is stated on [http://www.ubuntu.com/ubuntu/TrademarkPolicy Trademark Policy page].

Advices below are not legally binding and should be considered only outline of what is expected to do when creating derivative distro.

File /etc/lsb-release

File /etc/lsb-release contains name of distribution used by some automated tools, but the name of distro from this file is also displayed in some places. The recommended solution is to change DISTRIB_DESCRIPTION in this file, but leave DISTRIB_ID intact.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

Default user name

Default user in Ubuntu live CD is "ubuntu". It is probably not really trademark infringement to leave this name, but since it is easy to do, it should be changed. Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

TODO: way of changing default user.

Logos embedded in packages

Some packages (for example Ubiquity) contain Ubuntu/Kubuntu logos which are displayed in application. They must be removed or replaced with distro logo in derived distributions or permission to use them must be obtained from Canonical.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

Package names

Package names contain strings like "1.4.4-0ubuntu1". It is not necessary to change their names in derivative distro.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

Stating relationship of derived distro to Ubuntu

It is OK to state that your derived distro is based on Ubuntu by saying "MyDistroName, based on Ubuntu". It is not legal to state that your distro is "Something Ubuntu" or similar.

Source: Statement by Matt Zimmerman from Ubuntu (https://lists.ubuntu.com/archives/ubuntu-devel/2007-January/023107.html)

Stating that your distro is based on Ubuntu is also a way of giving credit to community which you base your work on.

Tools for building distro

Live CD

The easiest way to build your own distro is to use Ubuntu live CD and customize it to your needs. There are 2 tools which make this easy:

  • [http://reconstructor.aperantis.com/ Reconstructor] - is a tool with graphical interface, which allows customizing Ubuntu. It can change splashscreen, boot screen, wallpaper and other Gnome settings.

  • [http://uck.sourceforge.net/ Ubuntu Customization Kit] - is a tool which provides both graphical interface and possibility of automatic building of live CD using scripts. It works for Ubuntu, Kubuntu and other Ubuntu derivatives. It allows customizing main filesystem image, initrd, and ISO. GUI allows installing languages, changing default boot language and spawning package manager and console for further customizations.

If you do not want to use these tools, you can find description how to remaster live CD on [https://help.ubuntu.com/community/LiveCDCustomization/6.06 this page].

Install CD

TODO

Existing ubuntu derivatives

Other interesting links