THE SPDX WIKI IS NO LONGER ACTIVE. ALL CONTENT HAS BEEN MOVED TO https://github.com/spdx
Legal Team/License Expression Review 1
Overview
The SPDX Legal group will be holding a special break out session to review a number of software examples where the SPDX licensing syntax (i.e., license list + AND/OR operators) may not be sufficient to represent the licensing terms of the software generally. For instance the group will be looking at the various kinds of special exception terms, the use of the ‘+’ in license names and programs derived from multiple source and library files, where each is potentially under a different license. The group will report back to the Legal and Tech working groups with its findings.
The Problem
SPDX data creators utilize an informally defined mechanism to represent the licensing of various different copyrightable software items such as source files, programs, libraries, packages, images, fonts, documentation and so forth. The current mechanism informally consists of:
- a license list with standard short names (e.g., constants GPL-2.0, )
- a simple collection of boolean expression operators (e.g., AND and OR). Potential others may be needed (e.g., WITH-EXCEPTION, +)
- Use of parenthesis to establish order of precedence - e.g., (MIT AND (GPL-2.0 OR BSD-2-Clause))
Some of these components are define in the SPDX spec (e.g. operators AND and OR) while others are maintained in a separate license list (e.g., constants GPL-2.0, BSD-2-Clause). What is missing is:
- A formal description of a well thought out license expression language with a more rigorous consideration (and presentation) of how these operators and operands work together to represent the licensing terms of most software items (e.g., programs, images, ...). For example, the creation of a single document that presents a holistic overview of the licensing expression mechanism with many insightful examples of source files, libraries and packages.
- A disciplined formal process to test the current constructs of the expression language to ensure they are sufficiently expressive to represent most software licensing situations.