SOFA license for the community

Tom Aldcroft edited this page May 2, 2013 · 13 revisions
Clone this wiki locally


The Astropy project and members of the astronomical community recognize the great value in the International Astronomical Union's SOFA service, which "has the task of establishing and maintaining an accessible and authoritative set of algorithms and procedures that implement standard models used in fundamental astronomy." The SOFA Software Collection provides a definitive and well-tested implementation of these algorithms and allows astronomers and software developers to rely on the C or FORTRAN libraries in their own works.

A number of open-source projects have adopted the SOFA Software Collection to provide fundamental time and coordinate manipulation functions. These projects include Astropy, PyAST, Starlink (AST, PAL), SAOImage DS9 [PLEASE FILL IN HERE].

Prompted by the package managers for popular linux distributions Debian and Fedora, the SOFA Software License has come under scrutiny and been declared "Non-free". The next section provides a detailed discussion of the rationale. The impact is that projects which use SOFA at any level cannot be included in the standard package repository for these distributions. This pathway for installing software is very common among astronomers [link to survey?] and the projects represented in this letter consider it a requirement for their project.

The current SOFA Software License therefore presents a problem in that we are unable to fully support our user community while including the SOFA Software Collection.

If the license conflict cannot be resolved then several projects will be forced to discontinue use of the SOFA library. This entirely defeats the purpose of the IAU sanctioning a reference implementation of these fundamental algorithms.

We feel that the IAU SOFA service can work under License terms that protect all their interests and copyrights while allowing the astronomy community to benefit from their work. We are petitioning the SOFA board to engage our community in a constructive discussion of how to adjust the SOFA License accordingly.

Why the SOFA license is non-free

[SOME BACKGROUND in FREE SOFTWARE LICENSES]. The exact definition of free software may change between the different groups that advocate its use (the Free Software Foundation and the Open Source Initiative being two of the most prominet), but all agree that free software allow users to run the program for any purpose, copy and modify the code and redistribute the program, either modified or in its original form.

Free software licenses can be broadly grouped in "copyleft" and "non-copyleft" licenses. Copyleft licenses (being the GNU Public License the most prominent) enforce that derived works must be licensed under the same license of the original work. Non-copyleft licenses allow redistributors to combine the licensed material with other license terms, potentially adding further restrictions to a derived work.

Free software licenses may incompatible if, when combined together in a derived work, they contain contradictory conditions. In this context, A license is said to be "compatible with the GPL" if the software can be combined with software under the GPL. The derived software must be licensed under the GPL. Some examples of "GPL compatible" licenses are: MIT, X, BSD with 2 clauses and BSD with 3 clauses. In the other hand, the original BSD license (BSD with 4 clauses) is incompatible with the GPL.

Compatibility with the GPL is important because the GPL (in its different versions) is the most used free software license. One example here is SAOImage DS9, which includes much software that is licensed under GPL. Therefore, a binary distribution of DS9 requires to release all its source code (including used third party packages) under GPL. Since DS9 also incorporates SOFA and SOFA cannot be distributed under GPL, a binary distribution (like in their download page) is formally illegal.

One specific point is the inclusion of SOFA in software distributions. Distributions are today a major way for the user to install the software. They exist for Linux (Fedora, Debian), but also for other operating systems (f.e. MacPorts for MacOS X). Many Distributions apply specific rules to the inclusion of software. Examples are the Debian Free Software Guidelines or the Fedora Packaging Licensing Guidelines.

For Fedora, the SOFA License was reviewed in the "Fedora Legal" mailing list. According to the review:

  • Clause 3c forbids the redistribution of modified copies of SOFA unless the names of the routines are modified. This clause negates the freedom to redistribute SOFA in modified form.

  • Clause 4 forbids the use of SOFA to "bring disrepute" by "inappropriate use" or "inappropriate modification". Apart that the "inappropriate" term is not clearly defined, this clause negates the freedom to use SOFA for any purpose.

The review in the debian-legal mailing list has a similar outcome. Although SOFA is now going to be part of the next Debian release, it is expected to get a major licensing ticket which may lead to its removal from Debian if the license is not immediately changed then according to the Debian rules.

It should be noted that the current license problems may lead to a situation, where someone feels forced to write an independent replacement library, using the same function names (prefixes) as SOFA. This is legal, but could misdirect problems with the replacement library to the SOFA team. So, the current license will not prevent the IAU from inappropriate disrepute, but in opposition may enforce it. [MORE TO COME]

Proposed alternative licenses

Although the critics on the current SOFA license concentrates on two major issues, we propose not to adjust the license, but use one of the existing licenses. Intellectual property and international copyright laws are very complex and contain a lot of pitfalls. A SOFA specific license also makes it harder to review its compatibility to a specific use.

The software that uses SOFA is currently licensed under BSD (Astropy), LGPL (AST, PAL), or GPL (DS9). To allow an seamless integration of SOFA software in these packages, the license should be compatible with the GPL. Choosing a GPL compatible license will also allow the inclusion in free software distributions without hassle. We, however, do not recommend to choose GPL itself as the license for SOFA, since this forbids the use in software packages that cannot be GPL (f.e. precompiled IDL packages).

Therefore, we propose to use BSD (3 clause) as the license. We think that this license protects the interests of the IAU, because [insert reasons].

An alternative license would be the LGPL.