Diff for "PPA"

Not logged in - Log In / Register

Differences between revisions 3 and 16 (spanning 13 versions)
Revision 3 as of 2008-07-04 16:17:35
Size: 7444
Editor: 92-237-59-186
Comment:
Revision 16 as of 2008-09-02 11:29:17
Size: 25
Editor: 92-237-59-186
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
'''DRAFT: this page is a work in progress. Please [[Feedback|seek further help]] or check the [[TitleIndex|wiki index]] for a complete page on this topic.'''

||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>||

= Overview =

With Launchpad's Personal Package Archives (PPA), you can build and publish binary Ubuntu packages for multiple architectures simply by uploading an Ubuntu source package to Launchpad. Every individual and team in Launchpad gets their own PPA.

Your PPA gives you:

 * An APT repository of up to 1 gigabyte for material licensed in accordance with the [[PPATermsofUse|PPA Terms of Use]].
 * Binary packages built for x86, AMD64 and lpia architectures against Ubuntu.
 * A web front-end where Launchpad users can browse and search for your packages.

Before you create your PPA, you need to:

 * [[https://wiki.ubuntu.com/PackagingGuide|learn Ubuntu packaging]]
 * [[BecomingAnUbuntero|become an Ubuntero]] (i.e. you must sign the Ubuntu Community Code of Conduct)
 * have [[ImportingYourOpenPGPKey|imported your PGP key]] to your Launchpad account.

Installing and uninstalling software from a PPA is just as easy as installing software Ubuntu's primary archive. This makes it an ideal way to distribute beta versions, daily builds and other versions of your software for testing, without having to ask your testers to compile your software from source.

== Activating a PPA ==

Before you can start using a PPA, whether it's your own or it belongs to a team, you need to activate it. Visit your Launchpad [[https://launchpad.net/people/+me/|profile page]] or the team's overview page.

You can only activate your PPA if you have [[BecomingAnUbuntero|signed]] the Ubuntu code of conduct.

= Installing software from a PPA =

PPAs work just like normal Ubuntu archives. You can install software in the usual way - for example, through ```apt-get``` or ```synaptic``` - and whenever there's an update Ubuntu will prompt you to install it.

/!\ '''Important:''' when you install software from a PPA, Ubuntu will warn you that it is unsigned. PPA packages are unsigned because they are not official Ubuntu packages. You should make sure that you're confident in the PPA owner's abilities before you install their packages.

== Adding a PPA to your Ubuntu repositories ==

To install packages from a PPA, you need to tell Ubuntu where to find it. You do this by giving Ubuntu the PPA's URL, which you can find on the PPA's Launchpad page.

Let's take a look at the [[https://launchpad.net/~awn-testing/+archive|AWN Testing team's PPA]] as an example. If you're using the most recent '''development''' version of Ubuntu, all you need do is copy these lines in the ```apt sources.list entries``` section of the page. For example:

{{{
deb http://ppa.launchpad.net/awn-testing/ubuntu intrepid main
deb-src http://ppa.launchpad.net/awn-testing/ubuntu intrepid main
}}}

If, like most people, you're using another version of Ubuntu - such as the most recent stable version - then you need to select it from the drop-down box. That'll automatically update the URLs you need to copy.

Take a look at the [[https://help.ubuntu.com/8.04/add-applications/C/extra-repositories-adding.html|Ubuntu guide to adding extra software repositories]] to find out how to add those URLs to your local Ubuntu system.

= Building your source package =

Before you start using your PPA to distribute software, you need to be familiar with building .deb source packages for Ubuntu. The best place to learn how to package for Ubuntu is the [[https://wiki.ubuntu.com/PackagingGuide|Ubuntu packaging guide]].

When you're ready to create a package for your PPA, there are a couple of things that work slightly differently to standard Ubuntu packages:'''versioning''' and '''dependencies'''.

Let's take a look at each in detail.

<<Anchor(versioning)>>
== Versioning ==

Ubuntu package names are suffixed by the version number of the package. This allows Ubuntu to distinguish newer packages from older ones and so remain up to date.

If you're creating an alternative version of a package already available in Ubuntu's repositories, you should ensure that:

 * your package supersedes the official Ubuntu version
 * future Ubuntu versions will supersede your package.
 
To do this, increase the Ubuntu version number and add a suffix of ~ppa`''`n`'' (where ''`n`'' is your package's revision number).

For example: you're creating an experimental version of the ``myapp_1.0.1`` package. Your PPA package would be named ``myapp_1.0.2~ppa1```.

Here, the tilde knocks the precedence of the package down to below whatever is in front of it. So, for now this package counts as being a higher version number than ``myapp_1.0.1`` but when Ubuntu releases ``myapp_1.0.2``, it will supersede your PPA version.

== Dependencies ==

Launchpad satisfies your package's {{{Build-Depends}}} using:

 * the most recent versions of the packages in the PPA you're uploading to
 * all sections of the primary Ubuntu archive - i.e. main, restricted, universe and multiverse
 * '''optionally:''' other PPAs in Launchpad.
 
{i} '''Note:''' If you're already familiar with uploading to the Ubuntu primary archive, you should note that PPA builds do not have any build dependency restrictions, unlike a build in the primary Ubuntu archive. If you want to build the same package in the primary Ubuntu archive at a later point you may need to revise the package's component and/or pocket.

=== Depending on other PPAs ===

If you want Launchpad to satisfy your package dependencies using one or more other PPAs, follow the ```Edit dependencies``` link on [[https://launchpad.net/people/+me/+archive|your PPA]] or the team's overview page.

== Building ==

Which ```debuild``` options you use depends on whether or not you're creating an alternative version of a package already in the Ubuntu repositories.

 * '''Alternative version:''' ```debuild -S -sd```
 * '''New package with no orig.tar.gz in Ubuntu's repositories:''' ```debuild -S -sa```

{i} '''Note:''' If you get the error ```clearsign failed: secret key not available``` when signing the changes file, use an additional option ```-k[key_id]``` when calling debuild. Use ```gpg --list-keys``` to get the key ID. Look for a line like "```pub 12345/12ABCDEF```"; the part after the slash is the key ID.

== Uploading ==

```Dput``` is the tool you use to upload your source package to Launchpad.

First, you need to tell ``dput`` where to send your package and by what method. To do that, edit ```~/.dput.cf``` to look like this:

{{{
[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~your-launchpad-id/ubuntu/
login = anonymous
allow_unsigned_uploads = 0
}}}

Change the first line to whatever name you want to use to refer to the source package, while retaining the square brackets.

If you're uploading to a team PPA, change the ```~your-launchpad-id``` to your team's Launchpad name. As you might expect, you must be a member of the team before you can upload to its PPA.

Next, open a terminal and enter the following:

{{{
$ dput my-ppa P_V_source.changes
}}}

Replace ```P`` with the package name and ```V``` with the [[PPA#versioning|version]] number.













#redirect Packaging/PPA

PPA (last edited 2008-09-02 11:29:17 by 92-237-59-186)