Jump to: navigation, search

Difference between revisions of "Packaging/Ubuntu"

(Default location of flagfile needs to be added to code)
 
(23 intermediate revisions by 11 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
+
= Ubuntu packaging =
your stability requirements and which version of Ubuntu you're running.
 
  
{| border="1" cellpadding="2" cellspacing="0"
+
OpenStack packages for Ubuntu are published in Ubuntu ''main'' repository and maintained by Ubuntu core developers.
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 =
+
See [http://www.ubuntu.com/download/cloud/install-ubuntu-cloud Installing Ubuntu Cloud] for official Ubuntu documentation on how to install OpenStack from packages.
  
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.
+
== Cloud Archive ==
  
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].
+
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).  
  
The packages are built by grabbing the latest tarball from http://nova.openstack.org/tarballs/ and adding [https://code.launchpad.net/~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu lp:~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu] on top of it, and adding a changelog entry.
+
See https://wiki.ubuntu.com/ServerTeam/CloudArchive for more details.
  
= Release PPA =
+
Report any bugs that you find in packages from the Cloud Archive to https://bugs.launchpad.net/cloud-archive/+filebug
  
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]..
+
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
  
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.
+
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
  
= Generating packages manually =
+
== Package pages ==
  
== Prerequisites ==
+
* 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
  
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:
+
== Packaging branches ==
  
<pre><nowiki>
+
Packaging branches are maintained in bzr under Launchpad. Click on "Code" on the above pages.
sudo add-apt-repository ppa:nova-core/ppa
 
sudo apt-get update
 
</nowiki></pre>
 
  
 +
== Packaging bugs ==
  
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 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
sudo apt-get install python-greenlet python-rrdtool
 
</nowiki></pre>
 
  
 +
== Cloud Archive Source Packages ==
  
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:
 
  
 +
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:
  
<pre><nowiki>
+
    bzr branch lp:~ubuntu-server-dev/nova/juno nova-juno
python -c "import sphinx; print sphinx.__version__"
 
</nowiki></pre>
 
  
 +
or for kilo:
  
== Generating the packages ==
+
    bzr branch lp:~ubuntu-server-dev/nova/kilo nova-kilo
  
Combine the main nova code with the packaging scripts:
+
you can then build a source package by using:
  
 +
    bzr bd -S
  
<pre><nowiki>
+
(that's part of the bzr-builddeb plugin).
bzr export nova lp:nova
 
bzr export nova-packaging lp:~openstack-ubuntu-packagers/ubuntu/natty/nova/ubuntu
 
mv nova-packaging/debian nova
 
</nowiki></pre>
 
  
 +
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.
  
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"
+
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
  
<pre><nowiki>
+
This will generate a merge proposal on launchpad that the team will review.
cd nova
 
dch -v 2011.1-0ubuntu2-local1 -D lucid "Local build for internal testing"
 
</nowiki></pre>
 
 
 
 
 
Edit `bin/nova-manage` to specify the default location of the flagfile:
 
 
 
 
 
<pre><nowiki>
 
PATCH='--- nova-manage 2011-02-09 12:08:18.000000000 -0500
 
+++ nova-manage-fixed  2011-02-09 12:14:03.000000000 -0500
 
@@ -656,7 +656,7 @@
 
 
def main():
 
    """Parse options and call the appropriate class/method."""
 
-    utils.default_flagfile()
 
+    utils.default_flagfile("/etc/nova/nova.conf")
 
    argv = FLAGS(sys.argv)
 
 
    script_name = argv.pop(0)
 
'
 
 
 
echo "$PATCH" | patch bin/nova-manage
 
</nowiki></pre>
 
 
 
 
 
Generate the packages:
 
 
 
 
 
<pre><nowiki>
 
./builddeb.sh
 
</nowiki></pre>
 
 
 
 
 
The packages will appear in the parent of the nova directory.
 

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.