This cfx installation
has been deprecated, jpm should now be used instead.
For more information see JPM replaces CFX for Firefox 38.
Prerequisites
To develop add-ons using the current Add-on SDK, you'll need:
- Python 2.5, 2.6 or 2.7. Note that versions 3.x of Python are not supported on any platform. Make sure that Python is in your path.
- Firefox.
- The SDK itself: you can obtain the latest stable version of the SDK as a tarball or a zip file.
Work is under way on a native JavaScript SDK (lookin' at you, Nightlies).
Installation
Installation on OS X, FreeBSD, Linux
Extract the file contents wherever you choose, and navigate to the root directory of the SDK with a shell/command prompt. For example:
tar -xf addon-sdk.tar.gz cd addon-sdk
Then, if you're a Bash user, run:
source bin/activate
If you're a non-Bash user, you should run:
bash bin/activate
Your command prompt should now have a new prefix containing the name of the SDK's root directory:
(addon-sdk)~/mozilla/addon-sdk >
The activate
command sets some environment variables that are needed for the SDK. It sets the variables for the current command prompt only. If you open a new command prompt, the SDK will not be active in the new prompt until you type activate
again. If you want permanent activation, see Making activate permanent below.
Installation on OS X using Homebrew
If you're a Mac user, you can instead choose to use Homebrew to install the SDK, using the following command:
brew install mozilla-addon-sdk
Once this has completed successfully, you can use the cfx
program at your command line at any time: you don't need to run bin/activate.
Installation on Windows
Extract the file contents wherever you choose, and navigate to the root directory of the SDK with a shell/command prompt. For example:
7z.exe x addon-sdk.zip cd addon-sdk
Then run:
bin\activate
Your command prompt should now have a new prefix containing the full path to the SDK's root directory:
(C:\Users\mozilla\sdk\addon-sdk) C:\Users\Work\sdk\addon-sdk>
The activate
command sets some environment variables that are needed for the SDK. It sets the variables for the current command prompt only. If you open a new command prompt, the SDK will not be active in the new prompt until you type activate
again. If you want permanent activation, see Making activate permanent below.
Sanity check
Run this at your shell prompt:
cfx
It should produce output whose first line looks something like this, followed by many lines of usage information:
Usage: cfx [options] [command]
This is the cfx
command-line program. It's your primary interface to the Add-on SDK. You use it to launch Firefox and test your add-on, package your add-on for distribution, view documentation, and run unit tests.
If you don't see this, try the Troubleshooting page.
Next Steps
Next, take a look at the Getting Started With cfx tutorial, which explains how to create add-ons using the cfx
tool.
Advanced topics
Using the SDK from Git
The SDK is developed in GitHub. Rather than use the zipped releases, you can check it out from GitHub repository: with this you can use the latest development version rather than an official release.
If you use the latest development version, you must use it with the Nightly version of Firefox, and you won't be able to submit any add-ons you develop to addons.mozilla.org (AMO), because AMO requires that you use an official release.
Building add-ons for AMO from Git
If you do want to build add-ons for submission to AMO using the Git checkout, then you must:
- use the latest git release tag of the addon-sdk sources
- run the
git archive
command to expand some git attribute placeholders in a git clone working directory
git checkout 1.17 git archive 1.17 python-lib/cuddlefish/_version.py | tar -xvf -
Making activate
permanent
The activate
command sets some environment variables that are needed for the SDK. It sets the variables for the current command prompt only. If you open a new command prompt, the SDK will not be active in the new prompt until you type activate
again.
This means that you can have multiple copies of the SDK in different locations on disk and switch between them, or even have them both activated in different command prompts at the same time.
By setting these variables permanently in your environment so every new command prompt reads them, you can make activation permanent. Then you don't need to type activate
every time you open up a new command prompt.
Because the exact set of variables may change with new releases of the SDK, it's best to refer to the activation scripts to determine which variables need to be set. Activation uses different scripts and sets different variables for bash environments (Linux and OS X) and for Windows environments.
Windows
On Windows, bin\activate
uses activate.bat
, and you can make activation permanent using the command line setx
tool or the Control Panel.
Steps for settings permanent:
Step 0. Open Control Panel > System > Advanced > Environment Variables.
Step 1. Add the Python directory and your SDK\bin directory to the Path System Variable.
Path=...;C:\PYTHON26\;C:\Users\Omid\Documents\FirefoxAddons\addon-sdk-1.15\bin
Step 2. Add a User variable called CUDDLEFISH_ROOT and set its value to "C:\Users\Omid\Documents\FirefoxAddons\addon-sdk-1.15"
Step 3. Add a User variable called PYTHONPATH and set its value to "C:\Users\Omid\Documents\FirefoxAddons\addon-sdk-1.15\python-lib"
Step 4. Add a User variable called VIRTUAL_ENV and set its value to "C:\Users\Omid\Documents\FirefoxAddons\addon-sdk-1.15"
Linux / OS X
On Linux and OS X, source bin/activate
uses the activate
bash script, and you can make activation permanent using your ~/.bashrc
(on Linux) or ~/.bashprofile
(on OS X). In order to do that, open the file:
sudo gedit ~/.bashrc
And add it the following lines at the end of its content:
#making variables of Firefox addon SDK permanent cd $HOME/DevTools/addon-sdk-1.17/ source ./bin/activate
Then reload the barshrc file:
source ~/.bashrc
As an alternative to this, you can create a symbolic link to the cfx
program in your ~/bin
directory:
ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx
If you used Homebrew to install the SDK, the environment variables are already set permanently for you.