- Our focus is on lightweight apps. To give you a general idea, we're looking for the kind of apps that could be reviewed for functionality and security in about an hour reading through the code. We'll also do a licensing and packaging review.
- Submissions should be applications, not stand-alone documentation or media (image bundles, fonts, movies).
- Apps should not be forks or updates of existing applications in the Ubuntu archive (main/universe/etc).
- Apps should be well integrated into the desktop, working well with the Dash and Launcher. The ARB reviews graphical apps, not command-line apps.
- Content must be suitable under the terms of the Ubuntu Code Of Conduct
Applications must be Free/Libre/Open Source software. We follow the Ubuntu Licensing Policy.
- Apps should be useful or interesting to a general audience.
- You can include any libraries that are part of your app. For example, if you're writing a Python game, and you've written a Python library to store character data, it's fine to include that with your app.
- If your app depends on external libraries, please make sure that your app runs on the current versions shipped in Ubuntu. (We're open to considering dependencies on backported libraries, on a case-by-case basis, but only if the backport is a new library and not an updated version of an existing library.)
- No other software can depend on the application being submitted (e.g. development libraries should be submitted to main/universe or upstream to Debian instead).
Applications must be able to be built with tools & libraries in the Ubuntu archive. Apps may bundle additional libraries they depend on, but may not include new versions of already packaged libraries.
- Applications are allowed to write to an app-specific directory in the user's home directory and can use gconf/gsettings to affect desktop settings if that's the result of a user's direct action in the UI and is revertable.
Unity Lenses should follow the guidelines at Unity Lens Guidelines
We greatly prefer source tarballs with a standard versioning scheme, such as foobar-1.2.3.tar.gz or foobar_1.2.3.orig.tar.gz, that unpacks into a directory named foobar-1.2.3. See Debian's Upstream Guide for more details.
The version for your package in debian/changelog should use the format <upstream>-0extras<ubunturelease>.<packagerev> where packagerev starts at 1 with the first upload. Example: 1.2.3-0extras11.10.1 for the first upload of a package with the upstream version 1.2.3. [Note: This is different from the standard requirements for Debian/Ubuntu packages, and will produce a lintian warnings 'binary-nmu-debian-revision-in-source' or 'binary-nmu-uses-old-version-style', which you can ignore.] You can add ~ppa1 to the end of the version for test package uploads to your own PPA.
- Don't include the full package history in debian/changelog, just one entry for each version that's published to Extras. (You might have made several versions of the package in between, just merge those changes into one entry.)
- Make sure the target distro in debian/changelog is the current release of Ubuntu, not an older version, or the development version that hasn't been released yet.
Your package should install most files in /opt/extras.ubuntu.com/<packagename>. This includes all libraries, binaries, and configuration files. [Note: This is different from the standard requirements for Debian/Ubuntu packages, and will produce several lintian warnings for 'dir-or-file-in-opt', which you can ignore.] There are several exceptions to this general rule:
The standard files in /usr/share/doc/<packagename> are permitted, such as copyright, changelog, and examples.
- The .desktop file is installed in the standard location /usr/share/applications, but must have the prefix 'extras-' added to its name. Example: extras-foobar.desktop for a package named foobar.
- Lenses and scopes are installed in the standard locations, but must have the prefix 'extras-' added to their names. Example: extras-unity-lens-foobar.lens for a package named unity-lens-foobar.
- Apparmor profiles under /etc/apparmor.d, the name should match the path under /opt (opt.extras.ubuntu...)
- Use a debhelper and debian/compat version of 8 (this is the currently recommended version in Oneiric).
- Use a Standards-Version of
- 3.9.2 for oneiric (11.10)
- 3.9.3 for precise (12.04)
For Python packages, python-support and python-central are deprecated. Please use dh_python2 instead. See the Debian transition guide for more details.