As a developer of free software, I want to get my application into Ubuntu.
Should I provide a source tarball and ask for packaging? Or should I create a package myself? Should I target Ubuntu directly, or should I try to get into Debian and then into Ubuntu automatically?
There are a number of paths that a package can take to enter Ubuntu. The overview of Ubuntu development targeted at "upstream" developers like yourself might be a useful place to start, but I'll try to give you some pointers as well.
Through Debian
Generally, if you are publishing free and open source software going through Debian first is the best path. This way ensures that your package will have a dedicated maintainer. It also will reach the largest number of users as it will be available in not just Debian and Ubuntu but all of their derivatives as well. Some useful links for requesting/providing new packages in Debian:
Work-Needing and Prospective Packages - Information on how to file "Intent to Package" and "Request for Package" bugs as well as list of open ITPs and RFPs.
Debian Mentors FAQ - debian-mentors is for the mentoring of new and prospective Debian Developers. It is where you can find a sponsor to upload your package to the archive.
Debian Developer's Reference - Debian Developer's Reference's section on new packages. The entire document is invaluable for both Ubuntu and Debian packagers.
Directly into Ubuntu
In some cases, it might make sense to go directly into Ubuntu first. Some helpful links:
The Ubuntu App Developer site - for lightweight desktop applications, you can submit them directly on the My Apps section of developer.ubuntu.com, the App Review Board will review them and they will be published in the Software Center.
Packaging Guide - an introduction to how to package for Ubuntu.
REVU - a web-based tool to which Ubuntu contributors can upload new packages for review by Ubuntu Developers for inclusion into Ubuntu.
Sponsorship Process - After entering Ubuntu, you can maintain your package through the sponsorship process.
Personal Package Archives
Beyond the official Ubuntu and Debian channels, Launchpad offers you the ability to distribute Debian packages directly to your users through its Personal Package Archives or PPAs for short. One particularly useful aspect of a PPA is that you can provide daily builds of your software for testing purposes.
https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages details the normal process for including packages into Ubuntu.
There are often a lot of packages awaiting review on the REVU site, which is a reason why we suggest that packages are uploaded to Debian, where they can benefit even more people. https://wiki.ubuntu.com/Debian/ForUbuntuDevelopers#Getting_new_software_in_Debian explains how this can be done.
For Ubuntu, you can ask people for reviews on #ubuntu-motu on irc.ubuntu.com, and for Debian there is a #debian-mentors channel on irc.oftc.net.
Alternatively, there is a developer.ubuntu.com page which details a separate process of getting applications reviewed & published for stable releases.
Background
Ubuntu doesn't allow upload of binary packages, but only source packages which are build by build servers.
Getting your packages directly in Ubuntu repositories is not so easy. It is recommended to have it first in Debian and get it synced from there. So for now you can put it there in your PPA. You can create a PPA with your Launchpad account.
Uploading to PPA
If you used
debuild
to build the package, then your work is a bit more easier.debuild
generates many files including .dsc and .changesYou might have used
.dsc
file withpbuilder-dist
to create the deb file, so now all you need to do is to publish it to a PPA for now. UseYou will need to sign the package before upload with the same key as you have uploaded in your Launchpad Account
Pushing in Debian/Ubuntu
The pushing of your package in Ubuntu/Debian repositories includes a review from the maintainer and the ftp masters at Debian. The license has to be very clear with no ambiguity. You might need a sponsor for uploading to Debian
Filing an ITP
You might need to file an ITP (Intend to package) to get it packaged in Debian. This is just a formal procedure.
When the package is available in experimental/unstable then you can use
requestsync
tool to file a sync request on LP. For gettingrequestsync
working you need to runmanage-credentials
to login to LaunchpadBoth of these tools are in package
ubuntu-dev-tools
Well, first I would suggest that you put the source into a Launchpad repository.
Then you can put the package in your PPA and distribute it.
As for getting it included in the official repository... it really depends on the app.
Per duanedesign's comment, this page can help get you started and this page can help with some common upload errors.
While getting into the default Ubuntu repositories is hard and might not be right for your project (At least yet), you can set up a project in Launchpad and set up a PPA there so they can install it via PPA. More on that in the Launchpad help sections, particularly here.
You can wait for some time because the Ubuntu devs have set up a new repository for Ubuntu 10.10 called extras.ubuntu.com for application developers to submit packages.The app will have to pass through application review first though.