Callaway-to-SPDX migration for existing packages

In July 2022 Fedora adopted the use of SPDX license expressions in place of the legacy Callaway system for purposes of license approval classifications and populating spec file License: tags. As of early 2025, the migration from Callaway to SPDX was characterized by one member of the Fedora Legal team as 99.60% complete.

By this stage, certain Callaway short names have been bulk-converted to SPDX identifiers where there was adequate confidence that the Callaway name and the SPDX identifier probably referenced the same underlying operative license text ("same", that is, in an SPDX-specific sense). Remaining Callaway short names in License: tags, often involving "umbrella" Callaway short names that cover multiple licenses that are represented with distinct identifiers in SPDX (for example, "BSD"), have generally been crudely converted to valid SPDX format by prefixing them with LicenseRef-Callaway- (for example, Callaway "BSD" becomes LicenseRef-Callaway-BSD). It should be noted that these LicenseRef-Callaway- expressions are not present in Fedora License Data as valid licenses (allowed or otherwise). They are a temporary solution, for eventual replacement with SPDX license expressions corresponding to TOML files in the Fedora License Data repository.

Apart from replacement of LicenseRef-Callaway- License: tags, much ongoing work will be needed to improve the accuracy of existing SPDX-format License: tags, along with continuing review and classification of newly-encountered licenses.

Changelog entry

Package maintainers whose packages still need to migrate License: tags to SPDX should add the following line to the spec file %changelog section:

- migrated to SPDX license

or something similar using "spdx" in the changelog entry. This will help the Fedora legal team audit packages.

Updating Callaway umbrella names

The SPDX License List has an established set of matching guidelines that define what constitutes a match to a license or exception on the SPDX License List. This ensures that SPDX license identifiers mean the same thing wherever they are used and takes a somewhat conservative approach as to what is substantively different. Each identifier for a license or an exception on the SPDX License List represents a single template text for that license or exception.

As noted above, some Callaway short names are umbrella categories referring to a set of substantively different license texts that were treated as equivalent for Fedora package metadata purposes. It follows that these Callaway names may correspond to multiple (existing or future) SPDX identifiers. Review of the actual operative package license texts will, of course, be necessary to determine what SPDX identifier (or Fedora-recognized LicenseRef- expression) applies. In some cases, new licenses will need to undergo license review for inclusion in Fedora License Data.

LicenseRef-Callaway-MIT

In the Callaway system, "MIT" was used to refer to a large number of short permissive licenses having some loose textual similarity or tenuous historical connection to the SPDX MIT license (the license that, today, most people mean when they refer to "the MIT license"), and which did not resemble licenses in the historical BSD family.

The SPDX License List contains not only MIT but many other licenses that Callaway "MIT" covered, or was intended to cover.

LicenseRef-Callaway-BSD

In the Callaway system, "BSD" was used to refer to a large number of short permissive licenses bearing some textual similarity or historical connection to licenses in the BSD family.

Many of the licenses in the BSD family are included in the SPDX License List, including two of the most commonly encountered BSD-family licenses, BSD-3-Clause and BSD-2-Clause. Note that BSD itself is not an SPDX license identifier.

with-exceptions

In the Callaway system, the phrase "with exceptions" was sometimes affixed to GPL-family short names. This was normally meant to indicate that the relevant GPL-family license was coupled with a permissive exception or additional permission, though there were some historical examples of use of "with exceptions" to refer to additional restrictive terms.

SPDX has an exception list covering some of the more commonly-encountered license exceptions or additional permissions, including many of the exceptions traditionally used with GPL-family licenses. However, it is likely that new exceptions will need to be proposed to SPDX upon review of Fedora packages that historically used the "with exceptions" Callaway sub-label.

LicenseRef-Callaway-LGPLv2 and LicenseRef-Callaway-LGPLv2+

The Callaway system deliberately did not distinguish between LGPLv2 and LGPLv2.1, using "LGPLv2" to represent both. SPDX has distinct identifiers for these licenses, so LicenseRef-Callaway-LGPLv2 will likely correspond to one or more of SPDX LGPL-2.0-only and LGPL-2.1-only, and LicenseRef-Callaway-LGPLv2+ will likely correspond to one or more of LGPL-2.0-or-later and LGPL-2.1-or-later.

LicenseRef-Callaway-Public-domain

In the Callaway system, "Public domain" was used for a few distinct purposes.

Bespoke public domain dedications

Callaway "Public domain" most commonly signified the presence of a bespoke public domain dedication covering all or part of the package. (By "bespoke", we mean that the instrument releasing material into the public domain wasn’t a relatively standardized and elaborate form having some of the characteristics of public domain dedications, such as SPDX CC0-1.0 or Unlicense.) The SPDX License List does not have an identifier corresponding to this categorical public domain dedication concept.

Fedora has adopted the umbrella identifier LicenseRef-Fedora-Public-Domain to represent bespoke public domain dedications. Note that these must be reviewed and approved just like any other license. Currently we attempt to store approved public domain dedications (those that qualify for representation with LicenseRef-Fedora-Public-Domain) in the file public-domain-text.txt in the Fedora License Data repository, although we recognize there might be a more satisfactory approach. At this time it does not seem likely that SPDX will itself adopt some sort of comparable umbrella identifier.

Noncopyrightable material

In some packages, Callaway "Public domain" reflected a conclusion that substantial parts of the package were not likely not copyrightable. This is generally not recorded in the package, so the absence of any public dedication statements coupled with LicenseRef-Callaway-Public-domain may be a clue that historical "Public domain" was used for this noncopyrightable subcategory.

In the post-Callaway SPDX system, we use the Fedora-defined license expression LicenseRef-Not-Copyrightable to cover such cases. However, in spec file License: tags we only use LicenseRef-Not-Copyrightable if otherwise the License: tag would be empty. That is to say, we only use LicenseRef-Not-Copyrightable if that label would accurately cover the entire contents of the binary RPM.

Works of U.S. government employees

Some uses of Callaway "Public domain" appear to have been based on the assumption that code or content in a package was created by employees of the U.S. federal (i.e., national) government. In the United States, works of the federal government are not protectable by copyright within the U.S. (see 17 U.S.C. § 105). It is fairly clear that this statutory provision should not have any copyright implications outside the U.S. Nonetheless, in FOSS legal culture it has been commonly assumed for convenience that works that are public domain in the U.S. under 17 U.S.C. § 105 are equivalently unrestricted in other jurisdictions. There is a common-sense basis for this assumption, but it implies that the conclusion for the non-U.S. situation rests on there being an implicit public domain dedication. For at least this reason, LicenseRef-Fedora-Public-Domain is the appropriate license expression in these cases rather than LicenseRef-Not-Copyrightable. In such cases, nothing would be added to the public-domain-text.txt file unless the package used some sort of public domain dedication text.

In the Callaway system "Copyright only" was typically, but inconsistently, used for very brief bespoke or nonstandard legacy licenses whose only explicit requirement was preservation of a copyright notice.

There is no single SPDX identifier corresponding to the typical use of Callaway "Copyright only". Some of the underlying package licenses associated with this label have been added to the SPDX License List, but it is expected that many more will be identified in Fedora license reviews. We currently do not think an umbrella identifier would be suitable to represent this category of licenses.

LicenseRef-Callaway-Freely-redistributable-without-restrictions

In the Callaway system, "Freely redistributable without restrictions" was apparently a relatively old name that was deprecated some years prior to the adoption of SPDX. While it may not have been used consistently, it seems to have most commonly been used to represent brief bespoke or nonstandard permission statements that imposed no requirements, but which did not take the form of public domain dedications.

In the post-Callaway system there is a custom identifier, LicenseRef-Fedora-UltraPermissive, which is intended to serve as an umbrella representation for these kinds of permission statements. There is no equivalent identifier in the SPDX License List that corresponds to this category. We attempt to track specific permission statements qualifying for LicenseRef-Fedora-UltraPermissive in the file UltraPermissive.txt in the Fedora License Data repository.

LicenseRef-Callaway-Redistributable-no-modification-permitted

In the Callaway system, "Redistributable, no modification permitted" was mainly used to cover non-FOSS firmware licenses. Apparently there were also rare cases of non-firmware packages using this label in the License: tag.

Fedora now has a custom SPDX license expression, LicenseRef-Fedora-Firmware, which is intended to cover firmware licenses that do not meet the requirements for allowed status but which satisfy the relaxed criteria for allowed-firmware. License texts are stored in the file firmware.txt in the Fedora License Data repository.

Non-FOSS firmware licenses likely would not meet the SPDX License Inclusion Guidelines, so there is no point in submitting them to SPDX.

Small category short names

Several Callaway short names are known to correspond to two or more SPDX identifiers but it is possible that some of those identifiers are not yet included in Fedora License Data. Some of these Callaway short names are (in current LicenseRef- wrapped format):

  • LicenseRef-Callaway-MIT-with-advertising

  • LicenseRef-Callaway-BSD-with-advertising

  • LicenseRef-Callaway-MPLv1.0

  • LicenseRef-Callaway-MPLv1.1

  • LicenseRef-Callaway-CECILL

  • LicenseRef-Callaway-HSRL

  • LicenseRef-Callaway-Python

  • LicenseRef-Callaway-AFL