4266
Comment:
|
4266
|
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