The completion of David's internship work on the Free Software Directory
For context, see the previous blog post, David's internship work on the Free Software Directory, part 2
One of the main projects of my internship has been importing information about free software extensions for Mozilla-based browsers on the Free Software Directory based on data from addons.mozilla.org. I call this project FreeAMO (AMO stands for addons.mozilla.org) and it exists as part of the directory package on Savannah. After many weeks of work, it generates usable directory entries. In the same project is a script to import entries from the Debian package repository. I also fixed bugs in that script, and got it to a usable state. However, before importing entries to the Directory, we want to solve one remaining issue: making it so we can import the data automatically on a regular basis, but also allow users to edit parts of the imported entry. I hope to complete this work sometime after my internship is done.
One of the issues I encountered when developing FreeAMO is that license names in the AMO package metadata are not the same as in the Directory. There is an effort to standardize license names called SPDX. I decided to take on the task of getting the Directory to adopt the latest SPDX license names. I created the Free Software Directory SPDX Group to coordinate this project. There are over 200 licenses and 16,000 packages on the Directory. Each package can have multiple licenses. I clearly needed to automate the renaming process. I used the Replace Text MediaWiki extension. After some trial and error and work to improve its performance, I finally renamed most of the licenses.
There are still packages with nonstandard license names that need to be evaluated one by one. One common issue is explained in the article For Clarity's Sake, Please Don't Say “Licensed under GNU GPL 2”! When people tell you a program is released “under GNU GPL version 2,” they are leaving the licensing of the program unclear. Is it released under GPL-2.0-only, or GPL-2.0-or-later? Can you merge the code with packages released under GPL-3.0-or-later?
Unfortunately, Mozilla is contributing to this problem because when someone uploads an addon package to addons.mozilla.org, they are asked to specify which license the package is under by selecting from a drop-down list of licenses. Then that name is displayed on addons.mozilla.org. However, the GPL license options are ambiguous and don't specify "only" and "or-later." To accurately specify the license, uploaders should choose "Custom License" and then mention the correct license in the description field. We hope Mozilla will change this, but since the Directory only lists free addons, and anyone can improve the Directory, we encourage people to use it instead of addons.mozilla.org.
I learned a great deal from my internship and from working with the FSF staff: Ian Kelling, Andrew Engelbrecht, and Donald Robertson. After taking some time off, I hope to continue contributing to the Directory.