DerivativeDistroDataModel

DerivativeDistroDataModel

Status

Braindump notes

  • Standalone has no parent and is entirely it's own archive

  • Non-rebuilt has a parent, does not rebuild debs for unchanged sources

  • Rebuilt has a parent, does rebuild debs for unchanged sources (e.g. for toolchain changes etc)

  • Flavour is internal to a distrorelease, only changes seeds, may affect components, may not. Gets CDs etc of its own.

  • Overlay has a parent, is a partial distrorelease and requires a whole bunch of toolchain changes.

Introduction

One of the target functions of the Launchpad applications is that of providing for distributions which derive from others. Particularly we want to make sure that it is easy to use Launchpad to derive a distribution from Ubuntu.

Rationale

We want Ubuntu to become the basis of as much of the open source world's day-to-day use as we can. Since one distribution can never fit all use-cases (In particular we have seen Ubuntu vs Kubuntu) we want to provide for people basing their distribution on Ubuntu but still providing them with as much control as they feel they need.

Scope and Use Cases

We envisage five types of distributions in the Launchpad model. They are:

  1. Standalone -- A standalone distribution has no parent and is entirely it's own beast. It is a derivative only by virtue of uploading other people's packages to it.

  2. Non-Rebuilt -- A non-rebuilt distribution has a parent within the Launchpad and inherits as much of the source and binary packages from its parent as it can. Where sources are unchanged in the derivative the binary packages are byte-for-byte the same to enable space savings.

  3. Rebuilt -- A rebuilt derivative distribution has a parent within the Launchpad and inherits the sources of its parent (where they're unchanged in the derivative). However the derivative rebuilds every source with its own toolchain etc. This offers the opportunity for deep changes in the distribution such as SELinux or specialist toolchain hacking.

  4. Flavour -- Flavours are the lightest weight derivative option we currently consider from the point of view of the work needed to get a derivative in Launchpad. A Flavour only changes the seeds associated with a distribution and does not create a new distribution of its own.

  5. Overlay -- An overlay distribution has a parent and is a partial distribution release. Overlay derivatives will need a large amount of toolchain work and thus are out of the scope of this document.

Implementation Plan

In order to implement the derivation model in Launchpad the following will need to be done:

DistroRelease
  parentrelease FK NN REF distrorelease(id)
  derivationtype ENUM NN (Standalone, NonRebuilt, Rebuilt, Overlay)

Flavour
 ...

OfficialFlavour
 ...

(See SeedManagement for more about seeds)

Data Preservation and Migration

Packages Affected

User Interface Requirements

Outstanding Issues


CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/DerivativeDistroDataModel (last edited 2008-08-06 16:39:43 by localhost)