The software hosted in extras-devel is not ready for normal users!
PLEASE PLEASE PLEASE don't play with it unless you really know what you are doing. Be ready to file proper bug reports instead of posting complaints.

Expected problems: crashes, battery drain, poor system performance, full disk space & more - SERIOUSLY!

Don't play with Extras-devel if you haven't backed up your data or aren't prepared to re-flash your device.

Developers upload the newest version of their software to extras-devel. From there the packages go Extras-testing and finally Extras through an automatic and human Quality Assurance process. This is a repository for developers and regular contributors of specific software projects. If you want to play with extras-devel software you need to be prepared to feel some pain sooner or later.


[edit] For developers

[edit] Uploading to Extras-devel

Main article: Uploading to Extras-devel

Anyone with a Garage account can upload packages to Extras-devel in order to share new updates and start the community QA process. It is important to note that the uploader needs a Garage account: the package itself does not need to be hosted in the Garage (although it helps a lot! Particularly when explaining which package you want to upload, in the upload-permissions request).

[edit] Promoting packages to extras-testing

Developers can tinker as much as they want in the extras-devel repository. Once they think their application is ready to go public they need to promote it to extras-testing by following these steps:

1. Go to the armel version of your application in the maemo.org packages interface.

  • This will be at maemo.org > packages > Fremantle Extras-devel free armel > packagename > version

2. Check if you are listed as maintainer for the package.

  • This should correspond to your login name - you must be logged in

3. Check if there is a 'Promote package' link, if there is: click it

  • This is normally in the lower-right corner of the package description

If there are no errors shown your application will be promoted to extras-testing. This can take some time.

In case there are warning or errors on the details page of your package, please try to resolve these issues first. If the interface doesn't detect any problem, it will unlock the 'Promote package' link automatically.

You don't have to promote the i386 versions of your packages, they will be promoted automatically.

A promotion can fail because your application depends on an other 'user/*' category application. In this case you need to promote the other application first and wait until that package shows up in Extras-testing.

[edit] Promotion checks

The package interface will try to prevent promotion for packages with known issues. The following tests are in place:

  • Application is using one of the official 'user/*' sections.
  • Promoting person is maintainer for the package.
  • All specified dependencies can be found in the origin repository or neighbour repositories.
  • All specified version dependencies are met.
  • Application doesn't depend on another 'user/*' application which hasn't been promoted yet.
  • Check if all dependencies which are in origin and not in target can be promoted.
  • Check dependencies of dependencies. (Check complete tree)
  • Check if the application hasn't been promoted already

[edit] Maemian/Minimae checks after builds

Jeremiah implemented the following checks in minimae for the October Sprint:

  • Control information is UTF-8
  • Control file contains an image (Not having an image is not an error, it's just that minimae should notice if there is an image or not, its size and type. This check is only done for user/ apps since libs have no icon.)
  • XB- (or XS-) Fields in control file
  • Version is consistent with what is in changelog
  • Use of trademarked names in package (not in version string.) i.e. A package cannot be called MaemoCamera or MaemoMusic since that is use of a registered trademark.
  • Make sure the name of the binary package that gets built is the same as the package name. i.e. a package called foo should build a binary called foo, not bar.
  • Each package has to have a copyright file
  • Copyright file cannot be compressed, i.e. zipped
  • Remove helper files from copyright, check for properly assigned copyright
  • Make sure the Architecture field is correct according to debian specifications. I.e. all, any, or a specific arch - multiple arches not allowed.

[edit] Policy

Main article: Task:Consolidation of Extras

The Extras policies are still in the process of being defined and refined. See Extras repository process definition and Diablo Extras repository proposal for details and discussion.

See also the Extras/3rd Party Package Policy being tested in Fremantle.

[edit] Downloads OBSOLETE FIXME

Main article: Task:Providing changes since last version of a package

You can create an entry for your application in the maemo.org downloads section. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.

There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.

[edit] How to activate Extras-devel

In the Application Manager:

  1. Navigate to the application menu (tap the title bar)
  2. Select ‘Application catalogs’
  3. Select ‘New’
  4. Enter a catalog name of ‘Maemo extras-devel’
  5. Enter a web address of http://repository.maemo.org/extras-devel/
  6. Enter a distribution of ‘fremantle’ (‘fremantle-1.2’ and ‘fremantle-1.3’ now have the same content)
  7. Enter components of ‘free non-free’
  8. Select ‘Save’

[edit] Limiting the damage

To keep from unintentionally upgrading to an extras-testing or extras-devel software version, it is possible to tell apt to always prefer stable packages over these other repositories via apt-pinning.

Note: If you use Faster Application Manager (you really shouldn't, SpeedyHAM is way better than fapman and 40 times faster than original HAM), then the following will cause errors, so don't do it and just be careful with what repos you enable.

Create the file /etc/apt/preferences with the following content:

Package: *
Pin: release l=Extras
Pin-Priority: 1001

Then run

rm /var/cache/apt/*.bin
apt-get update

In order to install versions of software from extras-testing or extras-devel when there is a copy available in extras, you now must tell apt exactly what version of software to install. Run

apt-cache showpkg <package>

At the bottom there will be a listing of versions under "Provides:" . To install a particular version use

apt-get install <package>=<version>

In the application manager, if you look in install/details/summary, there is a line "Catalog." Applications being installed from extras have the catalog "maemo.org", applications from extras-testing have "Maemo extras testing", and applications from devel have "devel".