Diff for "Packaging/PPA/Uploading"

Not logged in - Log In / Register

Differences between revisions 1 and 34 (spanning 33 versions)
Revision 1 as of 2009-06-17 22:37:30
Size: 35
Editor: generaluser
Comment:
Revision 34 as of 2018-05-24 19:12:53
Size: 6378
Editor: cjwatson
Comment: PPATermsofUse merged into Legal
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#REDIRECT Packaging/PPA#Uploading ~- [[FrontPage|Launchpad Help]] > [[Packaging]] > [[PPA|PPAs]] > Uploading a package to a PPA -~

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

= Uploading a package to a PPA =

How you upload a source package to a PPA depends on two things:

 * whether you're using a recent version of Ubuntu (Ubuntu 9.10 and newer)
 * whether you want to use FTP or SFTP.
 
Once you've [[Packaging/PPA/BuildingASourcePackage|built your source package]], you need to upload it to Launchpad using the ''dput'' tool.

'''Note:''' We ask that people include useful changelogs for each package so that users and other developers can understand what new features they are exploring in their work. Read the [[Legal#Personal_Package_Archive_eligibility|PPA Terms of Use]] for more information.
 
== The easy way: FTP in Ubuntu 9.10 and newer ==

If you're running Ubuntu 9.10 (Karmic) or newer and you're happy to upload your source package using FTP, uploading is simple.

Visit your PPA's overview page and follow the instructions in the ''Uploading packages to this PPA'' section. This will look something like:

{{{
dput ppa:your-lp-id/ppa <source.changes>
}}}

The source .changes file is usually generated by `debuild`. If you're not sure what this means, you should [[http://packaging.ubuntu.com/html/|familiarise yourself with creating packages for Ubuntu]].

Note that Launchpad builds the packages onsite, and does not accept deb files. The correct command for creating the Debian package source is 'debuild -S'.

== SFTP and older versions of Ubuntu ==

If you want to use SFTP to upload your source package, or you're using FTP with an older version of Ubuntu, you'll need to do a little more work to upload your package.

Dput uploads the following files:

 * ```.dsc```
 * ```.changes```
 * ```.diff.gz``` or ```.debian.tar.gz```
 * and optionally the ```.orig.tar.gz``` (if you used ```debuild -S -sa``` to build your package)

=== FTP ===

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/<ppa_name>/
login = anonymous
allow_unsigned_uploads = 0
}}}


You'll need to:

 * Change the first line to whatever name you want to use to refer to your PPA, while retaining the square brackets. Do not use just "ppa" as the name here: that conflicts with an entry in /etc/dput.cf and will cause confusing failures (`Could not find person or team named ''.`).
 * If you're uploading to a team PPA, change the ```~<your-launchpad-id>``` to your team's Launchpad name (maintaining the tilde). As you might expect, you must be a member of the team before you can upload to its PPA.
 * Set the correct ```<ppa-name>```, the default PPA name is ''ppa'', use the specific name for other PPA in the same context. Don't confuse the PPA name with the display name you have configured for your PPA in Launchpad, for most users creating their first PPA the PPA name will be literally just the string ''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 [[Packaging/PPA/BuildingASourcePackage#versioning|version]] number.

'''Find out about [[Packaging/UploadErrors|possible upload errors]]'''.

=== Uploading with SFTP ===

Follow the instructions for uploading with FTP but ensure your ```dput.cf``` includes the following:

{{{
method = sftp
login = <your Launchpad account name>
}}}

You should check the [[SSHFingerprints|fingerprint]] of ppa.launchpad.net when prompted to do so by SSH.

== Using packages from other distributions ==

You may be able to use your PPA to build sources from other distributions that use ```.deb``` packages. This depends on whether the dependencies can be resolved in Ubuntu.

Create a new dput configuration section using ```incoming = ~<lp_name>/ubuntu/<ppa_name>/<an ubuntu suite>``` and the suite you specify will override the suite named in the upload changelog when you upload it using the new configuration:

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

You can upload a source from any Debian-compatible distribution straight to your PPA with no changes required and it will be built and published in the targeted Ubuntu suite.

'''Important:''' Although Launchpad will attempt to build the package, it may not be able to meet all of the dependencies of a source created for another a distribution.

'''Important:''' Version numbers must be unique. This has implications if you want to provide packages for multiple Ubuntu series at once:

If your package can be used on different versions of Ubuntu ''without being recompiled'' you can copy the existing binaries from the older series to the new series; see [[Packaging/PPA/Copying|Copying packages]].

If your package ''does'' need to be recompiled to support multiple Ubuntu series, then you should add a suffix of the series version to the version number. So a package for Ubuntu 17.04 could be named ``myapp_1.0-2~ppa1~ubuntu17.04.1`` and for Ubuntu 16.04 ``myapp_1.0-2~ppa1~ubuntu16.04.1``. (The exact spelling of the suffix is not very important, but it should be based on the series version rather than the series name, since series names aren't guaranteed to sort lexicographically.) If you need to release an updated package, increment the ~ppa''n'' suffix. Specifying the series version here doesn't change the series that you are targetting; this must still be set correctly as described in the Ubuntu packaging guide's section on the [[http://packaging.ubuntu.com/html/debian-dir-overview.html#the-changelog|changelog file]].



= Next steps =

If there's a problem with your source package, or its upload, Launchpad will give you an error. Find out more about [[Packaging/UploadErrors|what the upload errors mean]].

You can also read how to [[Packaging/PPA/Deleting|delete packages from a PPA]].

||<tablestyle="border: 0; width: 100%;"> ~-[[Packaging/PPA/BuildingASourcePackage|< Building a source package]] -~ ||<style="text-align: right;"> ~-[[Packaging/PPA/Copying|Copying packages >]] -~||

Launchpad Help > Packaging > PPAs > Uploading a package to a PPA

Uploading a package to a PPA

How you upload a source package to a PPA depends on two things:

  • whether you're using a recent version of Ubuntu (Ubuntu 9.10 and newer)
  • whether you want to use FTP or SFTP.

Once you've built your source package, you need to upload it to Launchpad using the dput tool.

Note: We ask that people include useful changelogs for each package so that users and other developers can understand what new features they are exploring in their work. Read the PPA Terms of Use for more information.

The easy way: FTP in Ubuntu 9.10 and newer

If you're running Ubuntu 9.10 (Karmic) or newer and you're happy to upload your source package using FTP, uploading is simple.

Visit your PPA's overview page and follow the instructions in the Uploading packages to this PPA section. This will look something like:

dput ppa:your-lp-id/ppa <source.changes>

The source .changes file is usually generated by debuild. If you're not sure what this means, you should familiarise yourself with creating packages for Ubuntu.

Note that Launchpad builds the packages onsite, and does not accept deb files. The correct command for creating the Debian package source is 'debuild -S'.

SFTP and older versions of Ubuntu

If you want to use SFTP to upload your source package, or you're using FTP with an older version of Ubuntu, you'll need to do a little more work to upload your package.

Dput uploads the following files:

  • .dsc

  • .changes

  • .diff.gz or .debian.tar.gz

  • and optionally the .orig.tar.gz (if you used debuild -S -sa to build your package)

FTP

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/<ppa_name>/
login = anonymous
allow_unsigned_uploads = 0

You'll need to:

  • Change the first line to whatever name you want to use to refer to your PPA, while retaining the square brackets. Do not use just "ppa" as the name here: that conflicts with an entry in /etc/dput.cf and will cause confusing failures (Could not find person or team named ''.).

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

  • Set the correct <ppa-name>, the default PPA name is ppa, use the specific name for other PPA in the same context. Don't confuse the PPA name with the display name you have configured for your PPA in Launchpad, for most users creating their first PPA the PPA name will be literally just the string 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 version number.

Find out about possible upload errors.

Uploading with SFTP

Follow the instructions for uploading with FTP but ensure your dput.cf includes the following:

method = sftp
login = <your Launchpad account name>

You should check the fingerprint of ppa.launchpad.net when prompted to do so by SSH.

Using packages from other distributions

You may be able to use your PPA to build sources from other distributions that use .deb packages. This depends on whether the dependencies can be resolved in Ubuntu.

Create a new dput configuration section using incoming = ~<lp_name>/ubuntu/<ppa_name>/<an ubuntu suite> and the suite you specify will override the suite named in the upload changelog when you upload it using the new configuration:

$ dput my-ppa-force-hardy  P_V_source.changes

You can upload a source from any Debian-compatible distribution straight to your PPA with no changes required and it will be built and published in the targeted Ubuntu suite.

Important: Although Launchpad will attempt to build the package, it may not be able to meet all of the dependencies of a source created for another a distribution.

Important: Version numbers must be unique. This has implications if you want to provide packages for multiple Ubuntu series at once:

If your package can be used on different versions of Ubuntu without being recompiled you can copy the existing binaries from the older series to the new series; see Copying packages.

If your package does need to be recompiled to support multiple Ubuntu series, then you should add a suffix of the series version to the version number. So a package for Ubuntu 17.04 could be named myapp_1.0-2~ppa1~ubuntu17.04.1 and for Ubuntu 16.04 myapp_1.0-2~ppa1~ubuntu16.04.1. (The exact spelling of the suffix is not very important, but it should be based on the series version rather than the series name, since series names aren't guaranteed to sort lexicographically.) If you need to release an updated package, increment the ~ppan suffix. Specifying the series version here doesn't change the series that you are targetting; this must still be set correctly as described in the Ubuntu packaging guide's section on the changelog file.

Next steps

If there's a problem with your source package, or its upload, Launchpad will give you an error. Find out more about what the upload errors mean.

You can also read how to delete packages from a PPA.

< Building a source package

Copying packages >

Packaging/PPA/Uploading (last edited 2018-05-24 19:12:53 by cjwatson)