Plugins

A short write up of ubuntu specifics for plugin packages.

Build-Dependencies

usually you need a build dependency on xulrunner-dev

Building/Compiling

plugins should be linked using the dependent glue shipped by the xulrunner sdk (in xulrunner-dev). Examples:

 MOZILLA_GLUE_CFLAGS=`pkg-config --cflags libxul`
 MOZILLA_GLUE_LIBS=`pkg-config --libs libxul`

Installation/Deployment

Places where to put your plugin .so are

 /usr/lib/xulrunner-addons/plugins/  # install for all xulrunner 1.9 based applications
 /usr/lib/mozilla/plugins/           # directory for seamonkey/iceape and legacy dir for xulrunner
 /usr/lib/firefox-addons/plugins/    # directory for firefox only >= 3
 /usr/lib/ubufox/plugins/            # alternative directory for firefox (with ubufox)

Note: the ubufox directory should be used by plugins that use the update-alternatives system (see java plugins or gnash/swfdec). If you use update-alternatives, also install your plugin to the ubufox plugins directory without using an alternative. This is needed so that ubufox can switch plugins used for mime-types on-the-fly.

Also remember to touch /usr/lib/firefox-3*/.autoreg in .postinst if you install your plugin to the ubufox location.

Plugin Finder Service

In order to enable your plugin for the ubuntu plugin finder service, you need to add additional meta data to your debian/control file; this will allow your package to be properly added to the plugin finder database. The following meta data is required (example taken from gnash; adjust to your needs):

Xb-Npp-Applications: ec8030f7-c20a-464f-9b0e-13a3a9e97384,92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a,aa5ca914-c309-495d-91cf-3141bbb04115
Xb-Npp-MimeType: application/x-shockwave-flash
Xb-Npp-Name: Gnash SWF Player
Xb-Npp-Description: The GNU SWF Player (http://www.gnu.org/software/gnash/)
Xb-Npp-File: libgnashplugin.so

Xb-Npp-Applications

Example: ec8030f7-c20a-464f-9b0e-13a3a9e97384,92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a,aa5ca914-c309-495d-91cf-3141bbb04115

Comma separated list of mozilla application ids supported by your package. Chose the applications for which your package installs the plugin. Application ids for the most important apps are:

 ec8030f7-c20a-464f-9b0e-13a3a9e97384 - Firefox/Iceweasel
 3550f703-e582-4d05-9a08-453d09bdfdc6 - Thunderbird/Icedove
 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a - Seamonkey/Iceape
 aa5ca914-c309-495d-91cf-3141bbb04115 - Midbrowser (from moblin.org)
 toolkit@mozilla.org                  - Generic Xulrunner

More application ids can be found here: https://addons.mozilla.org/en-US/firefox/pages/appversions

Xb-Npp-MimeType

Example: application/x-shockwave-flash

Comma separated list of supported mime-types for your plugin. A good source for the complete list is about:plugins; just add all mime-types shown for your plugin there.

Xb-Npp-Name

Example: Gnash SWF Player

A human readable short name for your plugin. This name will appear in the plugin finder and alternative wizard

Xb-Npp-Description

Example: The GNU SWF Player (http://www.gnu.org/software/gnash/)

A human readable one-line description for your plugin. This line will appear below the Name in the results for the plugin finder service; also it will appear when hovering the alternatives in the plugin alternative switcher combo box.

Xb-Npp-File

Example: libgnashplugin.so

Filename hint required, so that the plugin alternative switcher can identify the plugin-package association for used and installed plugins; this string has to be a substring of the plugin filename as seen by the plugin manager. You can see this filename in about:plugins. Usually its the full basename of the plugin with just a few exceptions (flashplugin-nonfree has different filenames for with and without nspluginwrapper installs).

MozillaTeam/Plugins (last edited 2009-01-08 13:14:45 by asac)