Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
    
Is it released under an OSI-approved license? –  Nathan Osman Jul 28 '10 at 21:58
    
Yes. I'm not sure which yet, but either the GPL or the LGPL. –  snostorm Jul 28 '10 at 23:09
2  
Check that carefully, because both Debian and Ubuntu are strict about debian/copyright files being accurate. –  Umang Jul 29 '10 at 6:20
    
possible duplicate of How do I put a package into the Ubuntu repositories? –  Nathan Osman Nov 1 '11 at 20:29
    
@GeorgeEdison Merge instead? –  jrg Nov 1 '11 at 20:30

8 Answers 8

up vote 51 down vote accepted

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.

share|improve this answer

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.

share|improve this answer
    
This is the easiest way of making it available to Ubuntu users. –  Ross Jul 28 '10 at 22:09
    
This page can help get you started and This page can help with some common upload errors. –  duanedesign Aug 2 '10 at 19:21
    
Quickly is really helpful for setting and maintaining a python program in a PPA. –  Javier Rivera Aug 3 '10 at 16:21

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.

share|improve this answer
2  
Unless your package does something specially for Ubuntu that Debian can't benefit from, please go through the debian route. You're more likely to get a sponsor from #debian-python than #debian-mentors, however you should follow both's policies, etc. –  Umang Jul 29 '10 at 6:18

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 .changes

You might have used .dsc file with pbuilder-dist to create the deb file, so now all you need to do is to publish it to a PPA for now. Use

dput ppa:yourlaunchpadusername/ppaname foo.changes

You 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 getting requestsync working you need to run manage-credentials to login to Launchpad

Both of these tools are in package ubuntu-dev-tools

share|improve this answer

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.

share|improve this answer

The process for getting your own new package included in Ubuntu is described here: https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages

share|improve this answer

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.

share|improve this answer

With the coming release (10.10) we'll hopefully have a new workflow which will allow developers to make their apps available quite easily.

share|improve this answer
2  
This is now indeed the case. –  Nathan Osman Nov 1 '11 at 20:29

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.