Jump to: navigation, search

Difference between revisions of "Packaging/Ubuntu"

(Added link to Swift's packaging guide)
 
(15 intermediate revisions by 8 users not shown)
Line 1: Line 1:
__NOTOC__
 
Ubuntu is the reference platform for OpenStack. We follow the Ubuntu release cycle very closely, and do most of our QA on Ubuntu.
 
  
If you want to run OpenStack on Ubuntu, there are a few options, depending on your stability requirements and which version of Ubuntu you're running.
+
= Ubuntu packaging =
{| border="1" cellpadding="2" cellspacing="0"
 
| Ubuntu version
 
| Only what is in Ubuntu
 
| Only stable releases
 
|-
 
| 10.04 LTS (Lucid)
 
| N/A
 
| [[#Release_PPA|Release PPA]]
 
|-
 
| 10.10 (Maverick)
 
| Pre-Austin snapshot
 
| [[#Release_PPA|Release PPA]]
 
|-
 
| 11.04 (Natty)
 
| Frequent snapshots.<<BR>>Cactus expected in final release
 
| [[#Release_PPA|Release PPA]]
 
|}
 
  
= Trunk PPA =
+
OpenStack packages for Ubuntu are published in Ubuntu ''main'' repository and maintained by Ubuntu core developers.
A PPA<<[[FootNote]](Personal Package Archive: an extra apt repository you can add to your sources.list to get access to software not in Ubuntu.)>> where we will upload a new version for every single commit on trunk.
 
  
Information and instructions for use can be found on [https://launchpad.net/~nova-core/+archive/trunk Launchpad] for Nova, and similarly for [https://launchpad.net/~swift-core/+archive/trunk Swift] and [https://launchpad.net/~glance-core/+archive/trunk Glance]. Swift has documented the process for building and deploying custom Debian packages at http://swift.openstack.org/debian_package_guide.html.
+
See [http://www.ubuntu.com/download/cloud/install-ubuntu-cloud Installing Ubuntu Cloud] for official Ubuntu documentation on how to install OpenStack from packages.
  
The packages are built by grabbing the latest tarball from http://nova.openstack.org/tarballs/ -- add 'debian' directory from [https://code.launchpad.net/~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu lp:~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu] (nova) or [https://code.launchpad.net/~openstack-ubuntu-packagers/ubuntu/natty/swift/ubuntu lp:~openstack-ubuntu-packagers/ubuntu/natty/swift/ubuntu] (swift) on top of it. Now add a changelog entry (dch -i -n). Make packages by running ./builddeb.sh.
+
== Cloud Archive ==
  
= Release PPA =
+
Canonical’s Ubuntu Cloud archive allows users the ability to install newer releases of [[OpenStack]] on Ubuntu Server 12.04 LTS (and the dependencies) as they become available up through the next Ubuntu LTS release (presumably 14.04).  
Information and instructions for use can be found on [https://launchpad.net/~nova-core/+archive/release Launchpad] for Nova, and similarly for [https://launchpad.net/~swift-core/+archive/release Swift] and [https://launchpad.net/~glance-core/+archive/release Glance]..
 
  
A PPA<<[[FootNote]](Personal Package Archive: an extra apt repository you can add to your sources.list to get access to software not in Ubuntu.)>> where we will upload only final releases.
+
See https://wiki.ubuntu.com/ServerTeam/CloudArchive for more details.
  
= Generating packages manually =
+
Report any bugs that you find in packages from the Cloud Archive to https://bugs.launchpad.net/cloud-archive/+filebug
  
== Prerequisites ==
+
In terms of communication around the Cloud Archive, general announcements about milestone and release availability will be made on
You'll need to install some packages on the build machine. Some of them are in the [https://launchpad.net/~nova-core/+archive/ppa nova-core PPA], so add it as a repository:
+
ubuntu-cloud-anounce@lists.ubuntu.com: https://lists.ubuntu.com/mailman/listinfo/ubuntu-cloud-announce
  
 +
Canonical has also set-up a new mailing list which will be higher volume, per upload notifications as new and updated packages land in the Cloud Archive: https://lists.ubuntu.com/mailman/listinfo/cloud-archive-changes
  
<pre><nowiki>
+
== Package pages ==
sudo add-apt-repository ppa:nova-core/ppa
 
sudo apt-get update
 
</nowiki></pre>
 
  
 +
* https://launchpad.net/ubuntu/+source/ceilometer
 +
* https://launchpad.net/ubuntu/+source/python-ceilometerclient
 +
* https://launchpad.net/ubuntu/+source/cinder
 +
* https://launchpad.net/ubuntu/+source/python-cinderclient
 +
* https://launchpad.net/ubuntu/+source/glance
 +
* https://launchpad.net/ubuntu/+source/python-glanceclient
 +
* https://launchpad.net/ubuntu/+source/heat
 +
* https://launchpad.net/ubuntu/+source/python-heatclient
 +
* https://launchpad.net/ubuntu/+source/horizon
 +
* https://launchpad.net/ubuntu/+source/keystone
 +
* https://launchpad.net/ubuntu/+source/python-keystoneclient
 +
* https://launchpad.net/ubuntu/+source/neutron
 +
* https://launchpad.net/ubuntu/+source/python-neutronclient
 +
* https://launchpad.net/ubuntu/+source/nova
 +
* https://launchpad.net/ubuntu/+source/python-novaclient
 +
* https://launchpad.net/ubuntu/+source/swift
 +
* https://launchpad.net/ubuntu/+source/python-swiftclient
  
During the build process, you will be informed about which packages are missing from your system, but there are some additional packages that are required for building the documentation:
+
== Packaging branches ==
  
 +
Packaging branches are maintained in bzr under Launchpad. Click on "Code" on the above pages.
  
<pre><nowiki>
+
== Packaging bugs ==
sudo apt-get install python-greenlet python-rrdtool
 
</nowiki></pre>
 
  
You'll need Sphinx 1.0 or greater for doing the build or the documentation generation will fail and the build will abort. You can check what version of Sphinx is being used by your version of Python by doing:
+
Packaging bugs are tracked using Launchpad. Click on "Bugs" on the above pages.
  
 +
== PPAs ==
  
<pre><nowiki>
+
Various PPAs with bleeding edge packages are maintained by the [https://launchpad.net/~openstack-ubuntu-testing OpenStack Ubuntu Testers] team. See [[PPAs]] for details. The Jenkins server can be found at https://jenkins.qa.ubuntu.com/view/Openstack_Testing
python -c "import sphinx; print sphinx.__version__"
 
</nowiki></pre>
 
  
 +
== Cloud Archive Source Packages ==
  
Finally, you'll need the following packages on your system to be able to generate the packages:
 
  
<pre><nowiki>
+
The cloud-archive repository is actually just a backport of an
sudo apt-get install dpkg-dev quilt debhelper
+
associated Ubuntu release, so the primary source is actually in
</nowiki></pre>
+
Ubuntu.  The source package branches are all owned by the
 +
ubuntu-server-dev team - for example if you wanted to checkout the
 +
Nova package for Juno, which was released alongside Ubuntu 14.10:
  
 +
    bzr branch lp:~ubuntu-server-dev/nova/juno nova-juno
  
== Generating binary packages ==
+
or for kilo:
Combine the main nova code with the packaging scripts:
 
  
 +
    bzr branch lp:~ubuntu-server-dev/nova/kilo nova-kilo
  
<pre><nowiki>
+
you can then build a source package by using:
bzr export nova lp:nova
 
bzr export nova-packaging lp:~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu
 
mv nova-packaging/debian nova
 
</nowiki></pre>
 
  
Edit the changelog entry. The following commands will specify a Lucid package with version "2011.1-0ubuntu2-local1" and a changelog entry "Local build for internal testing"
+
    bzr bd -S
  
 +
(that's part of the bzr-builddeb plugin).
  
<pre><nowiki>
+
These branches are where the Ubuntu Server team drives all of its
cd nova
+
packaging efforts from including our branch package builds - so you
dch -v 2011.1-0ubuntu2-local1 -D lucid "Local build for internal testing"
+
may find some unreleased changes from time-to-time.
</nowiki></pre>
 
  
 +
Hopefully that gives you a good pointer - there are more details at
 +
https://wiki.ubuntu.com/ServerTeam/OpenStack - if you have a change that is useful, please just proposed your
 +
changes back against those branches:
  
If you're building for Lucid, you need to issue the following command to apply the debian/patches/nova-manage_flagfile_location.patch patch file before building the packages.
+
    bzr push lp:~mylpid/nova/my-great-update
 +
    bzr lp-propose
  
 
+
This will generate a merge proposal on launchpad that the team will review.
<pre><nowiki>
 
QUILT_PATCHES=debian/patches quilt push -a
 
</nowiki></pre>
 
 
 
 
 
Generate the packages:
 
 
 
 
 
<pre><nowiki>
 
./builddeb.sh
 
</nowiki></pre>
 
 
 
The packages will appear in the parent of the nova directory.
 
 
 
== Uploading custom packages to PPA ==
 
 
 
Create a PPA with the following PPA dependencies:
 
* nova-core/build-depends
 
* nova-core/release
 
 
 
Then issue the following commands from the root of your nova directory.
 
 
 
 
 
<pre><nowiki>
 
GPGKEY=... # Your registered OpenGPG key
 
LPNAME=... # Your Launchpad username
 
DIST="lucid" # The Ubuntu distribution you are targetting
 
VERSTRING="2011.3-my-custom-build-0ubuntu1" # Custom version string here
 
dch  -v "$VERSTRING" -D $DIST "Your changelog comment here"
 
 
 
# If building for Lucid, apply the patch manually, otherwise skip this step
 
QUILT_PATCHES=debian/patches quilt push -a
 
 
 
dpkg-buildpackage -S -sa -rfakeroot -tc -D -k$GPGKEY
 
cd ..
 
# Upload the packages
 
dput ppa:${LPNAME}/ppa nova_${VERSTRING}_source.changes
 
</nowiki></pre>
 

Latest revision as of 04:23, 10 February 2015

Ubuntu packaging

OpenStack packages for Ubuntu are published in Ubuntu main repository and maintained by Ubuntu core developers.

See Installing Ubuntu Cloud for official Ubuntu documentation on how to install OpenStack from packages.

Cloud Archive

Canonical’s Ubuntu Cloud archive allows users the ability to install newer releases of OpenStack on Ubuntu Server 12.04 LTS (and the dependencies) as they become available up through the next Ubuntu LTS release (presumably 14.04).

See https://wiki.ubuntu.com/ServerTeam/CloudArchive for more details.

Report any bugs that you find in packages from the Cloud Archive to https://bugs.launchpad.net/cloud-archive/+filebug

In terms of communication around the Cloud Archive, general announcements about milestone and release availability will be made on ubuntu-cloud-anounce@lists.ubuntu.com: https://lists.ubuntu.com/mailman/listinfo/ubuntu-cloud-announce

Canonical has also set-up a new mailing list which will be higher volume, per upload notifications as new and updated packages land in the Cloud Archive: https://lists.ubuntu.com/mailman/listinfo/cloud-archive-changes

Package pages

Packaging branches

Packaging branches are maintained in bzr under Launchpad. Click on "Code" on the above pages.

Packaging bugs

Packaging bugs are tracked using Launchpad. Click on "Bugs" on the above pages.

PPAs

Various PPAs with bleeding edge packages are maintained by the OpenStack Ubuntu Testers team. See PPAs for details. The Jenkins server can be found at https://jenkins.qa.ubuntu.com/view/Openstack_Testing

Cloud Archive Source Packages

The cloud-archive repository is actually just a backport of an associated Ubuntu release, so the primary source is actually in Ubuntu. The source package branches are all owned by the ubuntu-server-dev team - for example if you wanted to checkout the Nova package for Juno, which was released alongside Ubuntu 14.10:

   bzr branch lp:~ubuntu-server-dev/nova/juno nova-juno

or for kilo:

   bzr branch lp:~ubuntu-server-dev/nova/kilo nova-kilo

you can then build a source package by using:

   bzr bd -S

(that's part of the bzr-builddeb plugin).

These branches are where the Ubuntu Server team drives all of its packaging efforts from including our branch package builds - so you may find some unreleased changes from time-to-time.

Hopefully that gives you a good pointer - there are more details at https://wiki.ubuntu.com/ServerTeam/OpenStack - if you have a change that is useful, please just proposed your changes back against those branches:

   bzr push lp:~mylpid/nova/my-great-update
   bzr lp-propose

This will generate a merge proposal on launchpad that the team will review.