Free Software Directory:IceCat WebExtensions (proposed)/Dev

From Free Software Directory
Jump to: navigation, search


  • Q: I cannot find any way to contact the author on the AMO page. How can I contact them?
  • A: Mozilla answered: "You can also leave a review, which is email to them, normally. It will be deleted, most likely, but they will get notified" However, do not give low review rating, and never offer to increase the rating in exchange for something.


Project administrators

This list should not be confused with users with admin privileges of this wiki.

Project members


  • Author of licenseutils

How to become a contributor?

  • Please read the participation guideline.
  • Add your name/register to the project members if you decide to be active in this project.
  • Decide if you are going to use IceCat: We recommend that you use the endorsed FSF distribution Trisquel GNU/Linux if you are going to evaluate add-ons for IceCat. This is not a requirement though, as you might just want to help solving license issues for which you can use any web browser. Gnu Icecat is developed by Rubén Rodriguez who work for the FSF, who is also the creator of GNU Trisquel. In case of a delayed icecat package you can always download the binary file for GNU/Linux x64 and run it out of the box.
  • Subscribe to the bug-gnuzilla mailing list (gnuzilla-dev also found there is optional).


As neither I or Mangeurdenuage speak English natively someone else has to clean up after us.

License guidelines

Verify licenses

  • Please verify license for some of the 600 unapproved add-ons. Do _not_ add new entries as we are currently overloaded.

Verifying licenses is the first point that you must look at before even adding the add-on into the list of acceptable add-ons

Places you should observe for license are the following places

  • Browse the AMO page with IceCat and look for "Released under".
  • The source code, look after a copyright file, or in the source files if you don't find such file.

The file generally has the name "COPYING" or simply "LICENSE" both a plain text you can open them with a text editor.

To download in IceCat you have to right-click on the green "Download now" button and select "Save as" (or "Copy Link Location" if you want to download with wget). You cannot simply click on the Download button: Cross-Platform Installer Module (XPI) is a ZIP file used to install packages, utilizing the XPInstall technology. XPI modules (so called "Bundles") are employed to install a wide variety of software, including Plugins, Extensions, Themes, and Thunderbird dictionaries. - Decompress the .xpi file or rename it to .zip if your file archiver require that.

Example with GNU LibreJS

 * GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript.
 * *
 * Copyright (C) 2011, 2012, 2014 Loic J. Duros
 * Copyright (C) 2014, 2015 Nik Nyby
 * This file is part of GNU LibreJS.
 * GNU LibreJS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * GNU LibreJS is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with GNU LibreJS.  If not, see <>.
  • Thus GNU LibreJS should remain approved, otherwise we would file an issue.

File license issues

  • Search "License" submitted issues on GitHub for example. If no such issue exist, then please create it and label the message "License issues".
  • For GitHub submitted issues make sure there is a separate comment with "[mylabel:AMO]" (including the square brackets but excluding the quotes) so we can it. The comment has to be new as GitHub do not re-index old comments, so you cannot edit old comments to track it.

You must copy and edit the Template before you send it to the add-on maintainer:

  • Replace (including [])
  • Delete unhelpful items

It is unhelpful to say, "has one or more of the issues listed below." If you want to succeed in motivating them to fix problems, you should always give them ALL the information THAT YOU HAVE about those problems.

So you should delete the items that are not pertinent to the case at hand.

  • Send the message to the maintainer and wait for response.
  • If a developer says, "I would install this but I don't have time to

work on this", please ask if you can you make the changes and send them to the developer, that will make for a lot more progress.


I'm working as a volunteer for the Free Software Directory. Your program
is free software so in principle it should be listed there, and I'd like to
add it.  But it has some problems in showing what its license is.
Would you please fix them, for the sake of users and other developers?

Once your version with fixed license issues is public available on [addons.mozilla.org_ENTRY] we will review it, and if it meet our requirement I will approve[WIKI_FULL_SOFTWARE_NAME]. Once approved it will be listed on the official GNU IceCat add-on list at GNU IceCat is the GNU variant of Firefox.

See if you want to study a well licensed add-on.

# Issues

## License not displayed
[addons.mozilla.org_ENTRY] do not list "Released under".

## No full license file

There are no full copy of the license file

The root directory don't have a COPYING file with a copy of the software license. A plain text version of [LICENSE LICENSE_VERSION] 
can be found here: [LICENSE_LINK]

## Lack of full license headers in each file

There are no (full) license notices in the non-trivial source files

The source files in [FULL_SOFTWARE_NAME] don't have notices saying you are the copyright
holder and/or that they are released under [LICENSE LICENSE_VERSION]. 
I'm writing to ask you to please put a notice on each nontrivial source file.

Selecting a license on a website that hosts the add-on (like, will only show it there, the source files won't be modified.

First, here's why license notices are needed.

The purpose of a license notice is to state formally that a certain
file may be used under the terms of a particular license.

The [LICENSE], like most free software licenses, applies to whatever
material is released under that license.  It does not say anything
about which programs are released that way.

Therefore, simply including a copy of the [LICENSE] with some code
does not release the code under the terms of the [LICENSE].
To do that, you need a license notice, which says, more or less,
"We the copyright holders release this code under the [LICENSE]."

The source files should be accompanied by a copyright notice, which says who
"we" copyright holders are.  That takes the form "Copyright YEAR NAME".

For the [LICENSE], there are two other reasons for a license notice: to say
which version of the [LICENSE] applies, and (for [LICENSE LICENSE_VERSION]), to say whether the
[LICENSE]'s option of GPL compatibility applies.  It is enabled by default
in [LICENSE LICENSE_VERSION], but users should have an explicit statement of where things
stand for any particular code.  The license notice is where you
specify this.

Why should the license notice be on _each_ source file?
Because doing it at the package level is error-prone.

In the free software community, it is not unusual to copy a file from
a free program into some other context.  If the source file doesn't
have its own license notice, then its licensing comes from the
original context.  In the other context, its licensing may not be
clear.  It may not be stated at all, or it could be stated wrong.  For
instance, what if the other program says, "This program is released
under Apache 2.0", or "This program is released under GNU GPL, version
3 or any later version published by the Free Software Foundation."

The result would be to misinform users about the file's licensing.

People sometimes copy part of a file, too.  If the file has a license
notice, people know to preserve that notice when copying part of the
file's code.  Otherwise, the licensing will probably get lost.

A different problem can happen if you copy code _into_ [FULL_SOFTWARE_NAME] from
some other package.  Your package-level license notice would say it is
under [LICENSE LICENSE_VERSION], but what if it actually carries some other license,
such as Apache 2.0, or GPL Version 3 or later?

Keeping a license notice in each file is the way to reliably show
users what their rights are.  Please don't let uncertainty creep in.

You've made a decision about the license -- would you please announce
it in a way that won't get forgotten?

Other people can use your work with bad intentions, even if the mistake were honestly
unintentional. That is why, unfortunately, we have to take lots of time with verifying
the legality of everything.

See for how to apply license notices.

# Licenseutils
* sudo apt-get install licenseutils
* Licenseutils [0.0.8 can edit .js]( files (see [patch]( If you use a earlier version you need to temporary rename your .js files to .cpp (Javascript comments are the same as c++) until JS have been implemented (see [fix]( and then rename them back to .js.
* Run this but with your name/copyright year/license: licensing notice -c 'Yoyodyne,\ Inc.\ 2001' -l gpl -s c -n *.cpp

# References
These issues are compatible with the policy listed in [Free Software Directory, Requirements](

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.