Differences between revisions 3 and 4
Revision 3 as of 2010-01-06 00:16:58
Size: 4266
Editor: ?BenjaminDrung
Comment:
Revision 4 as of 2010-01-06 00:25:13
Size: 4266
Editor: ?asac
Comment:
Deletions are marked like this. Additions are marked like this.
Line 62: Line 62:
It is not recommended, but supported to have the xpi file in the source package. You have to set MOZ_XPI_BUILD_COMMAND to null. Otherwise the xpi file will be removed in the clean target. It is not recommended, but supported to have the xpi file in the source package. You have to set MOZ_XPI_BUILD_COMMAND to NULL. Otherwise the xpi file will be removed in the clean target.
Line 66: Line 66:
MOZ_XPI_BUILD_COMMAND := $(null) MOZ_XPI_BUILD_COMMAND := $(NULL)

mozilla-devscripts makes packaging Mozilla extensions easy. It provides the file /usr/share/mozilla-devscripts/xpi.mk, which can be included by debian/rules. You only have to build a .xpi file, everything else will be done by mozilla-devscripts. It will extract the xpi file, remove extra license files, install it and set the links.

debian/control

The debian/control file will normally look like:

Source: EXTENSIONNAME
Section: web
Priority: optional
Maintainer: Debian Mozilla Extension Maintainers <pkg-mozext-maintainers@lists.alioth.debian.org>
Uploaders: Your Fullname <your@email.tld>
Build-Depends: cdbs, debhelper (>= 7), mozilla-devscripts (>= 0.16~)
Standards-Version: 3.8.3
Homepage: http://example-extension.com/
Vcs-Git: git://git.debian.org/pkg-mozext/EXTENSIONNAME.git
Vcs-Browser: http://git.debian.org/?p=pkg-mozext/EXTENSIONNAME.git;a=summary

Package: xul-ext-EXTENSIONNAME
Architecture: all
Depends: ${misc:Depends}
Recommends: ${xpi:Recommends}
Provides: ${xpi:Provides}
Enhances: ${xpi:Enhances}
Description: one line for short description
 Long descriptions can span
 multiple lines
 .
 and as above empty lines
  • We maintain the extensions in git in the pkg-mozext group.
  • EXTENSIONNAME is the name of the extension. EXTENSIONNAME should not contain mozilla, iceape, icedove, iceape, firefox, thunderbird, seamonkey in it's name. Append -extension to the source package name if EXTENSIONNAME is too generic without these name (The source package name for firefoxnotify is notify-extension and the binary package name is xul-ext-notify).
  • You need at least version 0.16~ of mozilla-devscripts for all features mentioned here.

debian/rules

building from source

You have to run one command if you build the xpi file from source. Some extensions will provide a makefile to create the xpi file and you have to run "make", some will use ant and you have to run "ant", some will provide a shell script and you have to run "sh build.sh". Your debian/rules file will look like:

#!/usr/bin/make -f

MOZ_XPI_BUILD_COMMAND = sh build.sh

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/mozilla-devscripts/xpi.mk

An example for this design is notify-extension.

using xpi file

You should use med-xpi-unpack to create the source file if you use the xpi file from upstream. Please do not drop the xpi file into your sources. Your debian/rules file will be very simple if you use med-xpi-unpack to create the source. mozilla-devscripts will pack the files for you. You do not have to set MOZ_XPI_BUILD_COMMAND.

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/mozilla-devscripts/xpi.mk

An example for this design is flashgot.

It is not recommended, but supported to have the xpi file in the source package. You have to set MOZ_XPI_BUILD_COMMAND to NULL. Otherwise the xpi file will be removed in the clean target.

#!/usr/bin/make -f

MOZ_XPI_BUILD_COMMAND := $(NULL)

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/mozilla-devscripts/xpi.mk

An example for this design is adblock-plus 1.1.1-2 (the next upstream release will use med-xpi-unpack).

plain debhelper

You can use debhelper without cdbs if you do not like cdbs. You have to call the xpi-install target to install the xpi file. With debhelper >= 7.0.50~ your debian/rules could look like:

#!/usr/bin/make -f

include /usr/share/mozilla-devscripts/xpi.mk

%:
        dh $@

override_dh_auto_build:
        # put here the commands used for building the xpi file, for example:
        xpi-pack $(CURDIR) foo.xpi

override_dh_auto_install: xpi-install

mozilla-devscripts 0.19 makes it dead simple:

#!/usr/bin/make -f

%:
        dh --with xul-ext $@

override_dh_auto_build:
        # put here the commands used for building the xpi file, for example:
        xpi-pack $(CURDIR) foo.xpi

override_dh_auto_install:
        install-xpi foo.xpi