Scratchpad
Size: 5091
Comment:
|
← Revision 46 as of 2013-05-17 01:50:29 ⇥
Size: 7485
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
||<tablestyle="width: 30%; float: right; background-color: #e1f0f4; border-radius: 10px;"><<Include(UbuntuStudio/Navigation/DevSideBar)>>|| | <<Include(UbuntuStudio/Navigation/DevSideBar)>> |
Line 8: | Line 8: |
Also, to be able to perform tasks efficiently, one needs to have easy access to information on how each tasks can be performed. | Also, to be able to perform tasks efficiently, one needs to have easy access to information on how each related development task can be performed. |
Line 12: | Line 12: |
Not all of this might be interesting to you, depending on what you like to do, but should contain all the information you need to do any task concerning Ubuntu flavor development. | Not all of this might be interesting to you, depending on what you intend to do, but should contain all of the information you need in order to develop a Ubuntu flavor distribution. |
Line 16: | Line 16: |
== What Makes Up A Ubuntu Flavor Operative System? == | = What Makes Up a Ubuntu Flavor Distribution/Operative System? = |
Line 18: | Line 18: |
Simply put, a Ubuntu [[https://wiki.ubuntu.com/UbuntuFlavors|flavor]] consists of: | '''Quick Links:''' * [[UbuntuFlavors|Ubuntu Flavors]] - Existing Ubuntu flavors * [[UbuntuDevelopers|Ubuntu Developers]] - Those who develop Ubuntu and its flavors |
Line 20: | Line 22: |
* [[https://wiki.ubuntu.com/SeedManagement|seed]] source - hosted in a bzr branch at launchpad * a [[https://help.ubuntu.com/community/MetaPackages|meta source package]], which depends on the seed source * Tools for building the ISO |
Simply put, what a Ubuntu flavor distribution consists of is: |
Line 24: | Line 24: |
=== Package Repositories === | * [[https://help.ubuntu.com/community/Repositories/Ubuntu|Package repositories]] - where all the installable Debian binary and source packages reside (shared by all flavors) * [[https://wiki.ubuntu.com/SeedManagement|Seeds]] - lists of package dependencies for the flavor, used for creating the meta source package * [[https://help.ubuntu.com/community/MetaPackages|Meta package source]] - When built, results in one or many installable meta packages, * Default settings and other custom packages * ISO installer - the ISO image, which can be used to install the actual operative system |
Line 26: | Line 30: |
All of the community maintaned flavors share the same [[https://help.ubuntu.com/community/Repositories/Ubuntu|repository]] for installable package - the Ubuntu Universe repository. While the main repository is used for official Ubuntu packages, Universe contains community maintained packages. | == Package Repositories == |
Line 28: | Line 32: |
=== The Flavor Meta === | '''Quick Links:''' * [[http://packages.ubuntu.com/|packages.ubuntu.com]] - Ubuntu package search * [[https://launchpad.net/ubuntu|launchpad.net/ubuntu]] - Source packages search under the Ubuntu project |
Line 30: | Line 36: |
The flavor meta source is a single package source, which, when built, may result in a multitude of binary debian meta packages. The metas themselves are always empty, but depends on a set of packages, which form what you could call a '''package set''' - the list of packages that make up that flavor. | All of the community maintaned flavors share the same [[https://help.ubuntu.com/community/Repositories/Ubuntu|repositories]] for installable package. The repositories for Ubuntu are currently called: |
Line 32: | Line 38: |
=== Seeds === | * '''main''' - officially supported by Canonical * '''universe''' - community maintained * '''multiverse''' - non free software * '''restricted''' - officially supported non free software The '''universe''' repository holds the flavor specific packages, but a flavor also consists of core packages from the '''main''' repository. == Seeds == '''Quick Links:''' * [[http://people.canonical.com/~ubuntu-archive/seeds/|people.canonical.com/~ubuntu-archive/seeds]] - overview of all seeds * [[https://code.launchpad.net/ubuntu-seeds|code.launchpad.net/ubuntu-seeds]] - bzr branches for all seeds at launchpad.net * [[SeedManagement|Seed Management]] - wiki page about managing seeds |
Line 36: | Line 54: |
==== Task Installs (correct term?) ==== | === Task Installs (correct term?) === |
Line 40: | Line 58: |
=== Other Flavor Packages === | == The Meta Package Source == '''Quick Links:''' * [[https://help.ubuntu.com/community/MetaPackages|Meta Packages]] - a list of various meta packages in Ubuntu The flavor meta source is a single package source, which, when built, may result in a multitude of binary debian meta packages. For example, '''ubuntustudio-meta''' is a source package, and when built will result in a number of installable binary packages, all beginning with the name '''ubuntustudio-'''. The metas themselves are always empty, but depend on a set of other packages, some of them core packages that all flavors share, and others which form what you could call a package set - a list of packages that make up that flavor. ''see all existing package sets here: [[http://people.canonical.com/~stgraber/package_sets/|people.canonical.com/~stgraber/package_sets]]'' The flavor meta packages are all installable from the Ubuntu '''Universe''' repository, which as said is shared by all the flavors. You can quickly take a look at a meta source package by getting it trough apt. For example (replace <flavor> with your flavor of choice): {{{ $ cd /tmp $ apt-get source <flavor>-meta $ cd <flavor->-meta $ cat update.cfg $ cat debian/control }}} The files that are primarily interesting to look at are probably: {{{ update.cfg - has the instructions where to find the seeds, and which to include for the build debian/control - list of meta packages that will be built }}} == Default Settings and Other Custom Packages == |
Line 46: | Line 92: |
=== The ISO === | == The ISO Installer == |
Line 52: | Line 98: |
== Where to begin? == | = Where to begin? = |
Line 54: | Line 100: |
=== Install The Development Release === | == Install The Development Release == |
Line 57: | Line 103: |
=== Set up a Launchpad Account === | == Set up a Launchpad Account == |
Line 60: | Line 106: |
=== Set up basic dev tools === Even if you are not planning on doing any packaging, at the very least you will need to set up a gpg key which you need to sign the code of conduct at Launchpad. It is also used to sign packages, when building them, which is required if you wish to upload the source package to a PPA in launchpad. |
== Set up basic dev tools == Even if you are not planning on doing any packaging, at the very least you will need to set up a gpg key with which you need to sign the code of conduct at Launchpad. The gpg key is also used to sign packages, when building them. Signing the packages is required if you wish to upload the source package to a PPA in launchpad. |
Line 63: | Line 109: |
If you're going to do any kind of uploading, or private source management on launchpad, you will need a ssh key. SSH is a protocol used to create encrypted connections to remote places. | If you're going to do any kind of private source management on launchpad, you will need a ssh key. SSH is a protocol used to create encrypted connections to remote places. |
Line 65: | Line 111: |
== Planning - Blueprints == | = Planning - Blueprints = |
Line 69: | Line 115: |
== Testing/QA - Quality Assurance == | = Testing/QA - Quality Assurance = |
Line 71: | Line 117: |
=== Testing ISOs === | == Testing ISOs == |
Line 73: | Line 119: |
=== Other Forms of Testing === | == Other Forms of Testing == |
Line 75: | Line 121: |
==== Newly Uploaded Packages - Set Up Notification ==== | === Newly Uploaded Packages - Set Up Notification === |
Line 77: | Line 123: |
==== Autopilot Testing ==== | === Autopilot Testing === |
Line 79: | Line 125: |
==== UTAH Testing ==== | === UTAH Testing === |
Line 81: | Line 127: |
== Updates == | = Updates = |
Line 85: | Line 131: |
=== Backports === | == Backports == |
Line 89: | Line 135: |
=== Stable Release Updates === | == Stable Release Updates == |
Line 93: | Line 139: |
== Bug Management == | = Bug Management = |
Line 95: | Line 141: |
=== Setting up bug notification === | == Setting up bug notification == |
Line 97: | Line 143: |
=== Fixing bugs upstream === | == Fixing bugs upstream == |
Line 99: | Line 145: |
== Packaging == | = Packaging = |
Line 103: | Line 149: |
== Feature Development Strategy == | = Feature Development Strategy = |
Line 105: | Line 151: |
== Artwork == | = Artwork = |
Line 107: | Line 153: |
== Support, PR and User Interaction == | = Support, PR and User Interaction = |
Line 117: | Line 163: |
== Information on various Development Tools == | = Information on various Development Tools = |
All About Ubuntu Flavor Development
Most of Ubuntu flavor development does not require any coding skills, as the first time reader might soon find out. But, to be able to get one foot in, one probably needs to get some sort of overview of how a Ubuntu flavor is developed.
Also, to be able to perform tasks efficiently, one needs to have easy access to information on how each related development task can be performed.
This documentation is written for those two purposes, and aims at simplifying the process of becoming a Ubuntu flavor developer, both for the unskilled newbie as the veteran developer.
Not all of this might be interesting to you, depending on what you intend to do, but should contain all of the information you need in order to develop a Ubuntu flavor distribution.
Contents
- All About Ubuntu Flavor Development
- What Makes Up a Ubuntu Flavor Distribution/Operative System?
- Where to begin?
- Planning - Blueprints
- Testing/QA - Quality Assurance
- Updates
- Bug Management
- Packaging
- Feature Development Strategy
- Artwork
- Support, PR and User Interaction
- Information on various Development Tools
What Makes Up a Ubuntu Flavor Distribution/Operative System?
Quick Links:
Ubuntu Flavors - Existing Ubuntu flavors
Ubuntu Developers - Those who develop Ubuntu and its flavors
Simply put, what a Ubuntu flavor distribution consists of is:
Package repositories - where all the installable Debian binary and source packages reside (shared by all flavors)
Seeds - lists of package dependencies for the flavor, used for creating the meta source package
Meta package source - When built, results in one or many installable meta packages,
- Default settings and other custom packages
- ISO installer - the ISO image, which can be used to install the actual operative system
Package Repositories
Quick Links:
packages.ubuntu.com - Ubuntu package search
launchpad.net/ubuntu - Source packages search under the Ubuntu project
All of the community maintaned flavors share the same repositories for installable package. The repositories for Ubuntu are currently called:
main - officially supported by Canonical
universe - community maintained
multiverse - non free software
restricted - officially supported non free software
The universe repository holds the flavor specific packages, but a flavor also consists of core packages from the main repository.
Seeds
Quick Links:
people.canonical.com/~ubuntu-archive/seeds - overview of all seeds
code.launchpad.net/ubuntu-seeds - bzr branches for all seeds at launchpad.net
Seed Management - wiki page about managing seeds
When building a meta package, it looks for the dependencies from what we call seeds. The seeds are basically a set of text files, where all the package dependencies are listed.
Task Installs (correct term?)
The seeds are also used for creating "task installs", which are selectable from a expert install medium, such as the Ubuntu netinstall.
The Meta Package Source
Quick Links:
Meta Packages - a list of various meta packages in Ubuntu
The flavor meta source is a single package source, which, when built, may result in a multitude of binary debian meta packages. For example, ubuntustudio-meta is a source package, and when built will result in a number of installable binary packages, all beginning with the name ubuntustudio-.
The metas themselves are always empty, but depend on a set of other packages, some of them core packages that all flavors share, and others which form what you could call a package set - a list of packages that make up that flavor.
see all existing package sets here: people.canonical.com/~stgraber/package_sets
The flavor meta packages are all installable from the Ubuntu Universe repository, which as said is shared by all the flavors.
You can quickly take a look at a meta source package by getting it trough apt. For example (replace <flavor> with your flavor of choice):
$ cd /tmp $ apt-get source <flavor>-meta $ cd <flavor->-meta $ cat update.cfg $ cat debian/control
The files that are primarily interesting to look at are probably:
update.cfg - has the instructions where to find the seeds, and which to include for the build debian/control - list of meta packages that will be built
Default Settings and Other Custom Packages
At the very least, each flavor will have a package called <flavor>-default-settings. This is not an empty package, and includes some specific system settings for that flavor.
Some flavors will have additional special packages, such as theming packages, or flavor specific applications.
The ISO Installer
There may be several build systems. One is for the live ISO.
Ubiquity is the Live installer, and contains instructions for each flavor.
Where to begin?
Install The Development Release
If you're planning on doing any kind of testing, the first thing you need to do is make sure you have the appropriate flavor installed, and ready to be tested.
Set up a Launchpad Account
Launchpad is the central administrative tool used, where bugs are reported, where plans are blueprinted and where packages can be uploaded to PPAs for testing, etc. So, no matter what you do, you will need a launchpad account.
Set up basic dev tools
Even if you are not planning on doing any packaging, at the very least you will need to set up a gpg key with which you need to sign the code of conduct at Launchpad. The gpg key is also used to sign packages, when building them. Signing the packages is required if you wish to upload the source package to a PPA in launchpad.
If you're going to do any kind of private source management on launchpad, you will need a ssh key. SSH is a protocol used to create encrypted connections to remote places.
Planning - Blueprints
Planning done in Launchpad, using the blueprints system, with workitems, etc
Testing/QA - Quality Assurance
Testing ISOs
Other Forms of Testing
Newly Uploaded Packages - Set Up Notification
Autopilot Testing
UTAH Testing
Updates
Two kinds of updates ..
Backports
When just wanting to add a newer version of an application to a release. This update does not fix any bugs, but may add some new features.
Stable Release Updates
When there is some sort of serious bug that causes major problems for users.
Bug Management
Setting up bug notification
Fixing bugs upstream
Packaging
Anything from fixing minor bugs, to creating packages from scratch will require some knowledge of Ubuntu and Debian packaging.
Feature Development Strategy
Artwork
Support, PR and User Interaction
So, where do we meet our users?
- ubuntuforums.org
- social channels
- mail lists
- IRC (chat)
- website
Information on various Development Tools
UbuntuStudio/DeveloperDocumentation/Scratchpad (last edited 2013-05-17 01:50:29 by h-4-180)