{"id":"GPL-2.0-only-with-Universal-FOSS-exception-1.0","title":"GNU General Public License, Version 2 with Universal FOSS Exception, Version 1.0","reviewed_on":"2026-09-22","reviewer":"Giray Havur","text_source":"https://raw.githubusercontent.com/spdx/license-list-data/main/text/GPL-2.0-only.txt","text_retrieved":true,"verdict":"created","summary":"The record models GPL version 2 with the Universal FOSS exception, the combination the MySQL client libraries are distributed under. It keeps every statement of the GPL-2.0-only record and adds one permission for the interfaces that the exception lets you copy between the software and other free and open source software. The exception also states which other licences the combination may travel under, which the record records as dalicc:compatibleLicenseTest.","findings":[{"rubric":1,"severity":"info","field":"spdx:licenseId","description":"File name, record identifier, IRI local name and title agree. spdx:licenseId carries the SPDX expression \"GPL-2.0-only WITH Universal-FOSS-exception-1.0\": the base identifier, one space, WITH in capitals, one space, the exception identifier. No record in the library carried an expression before, so the SPDX mapping and the spdx route have to accept the space and the keyword.","action":"applied"},{"rubric":1,"severity":"info","field":"cc:legalcode","description":"cc:legalcode points at the text of the base licence, https://www.gnu.org/licenses/old-licenses/gpl-2.0.html, because that is the licence the record models. dct:source points at the SPDX page of the exception, https://spdx.org/licenses/Universal-FOSS-exception-1.0.html, because that is where the additional permission is published.","action":"applied"},{"rubric":2,"severity":"info","field":"odrl:target","description":"odrl:target is the one the base record carries: an odrl:AssetCollection of dct:type dcmitype:Software. The exception is about program files, so nothing changes.","action":"applied"},{"rubric":3,"severity":"major","field":"odrl:permission","description":"Paragraph (iii) reads: \"If only Interfaces and no other code is copied between the Software and the Other FOSS in either direction, the use and/or distribution of the Software with the Other FOSS shall not be deemed to require that the Other FOSS be licensed under the license of the Software, other than as to any Interfaces of the Software copied into the Other FOSS.\" The interfaces are material the share-alike condition no longer reaches, which is the permission dalicc:exceptedCombination.","action":"applied","change":"odrl:permission [ a odrl:Permission ;\n        odrl:action dalicc:exceptedCombination ] ;\n"},{"rubric":3,"severity":"info","field":"odrl:permission","description":"Every permission of GPL-2.0-only is kept, in the same place and with the same duties. An exception adds an additional permission to a licence; it never takes a granted right away.","action":"applied"},{"rubric":4,"severity":"info","field":"odrl:prohibition","description":"dalicc:ChangeLicense stays prohibited. The exception ends: \"Nothing in this additional permission grants any right to distribute any portion of the Software on terms other than those of the Software License or grants any additional permission of any kind for use or distribution of the Software in conjunction with software other than Other FOSS.\" The software itself keeps travelling under the GPL, so the prohibition is right.","action":"applied"},{"rubric":5,"severity":"info","field":"odrl:duty","description":"The licence-wide cc:ShareAlike duty stays where the base record puts it, on the odrl:Set, because GPL version 2 section 2(b) reaches the whole work. The exception narrows what counts as the whole work, and dalicc:reciprocityScope says how far.","action":"applied"},{"rubric":6,"severity":"info","field":"dalicc:additionalClauses","description":"The exception text is quoted verbatim as one literal, taken from https://raw.githubusercontent.com/spdx/license-list-data/main/text/Universal-FOSS-exception-1.0.txt. Line breaks and the indentation of the source file are collapsed to single spaces, which is how every clause literal in the library is written; the wording is untouched. The warranty disclaimer and the liability limitation are the ones the base record quotes from the base licence.","action":"applied"},{"rubric":7,"severity":"info","field":"cc:jurisdiction","description":"cc:jurisdiction stays dalicc:worldwide and dalicc:validityType stays dalicc:perpetual: the exception names no territory and no term. The termination clause of the base licence still applies, and the record says no more about it than the base record does.","action":"applied"},{"rubric":8,"severity":"gap","field":"dalicc:exceptedCombination","description":"The exception carves the combination out of the condition of the licence, not out of its grant. dalicc:exemptedMaterial says the opposite and is prohibited on OGL-UK-1.0, OGL-UK-2.0 and NLOD-2.0, where it means material the licence never granted. The vocabulary defines dalicc:exceptedCombination for this side of it since 2026-09-23, and the record carries it as a permission.","action":"applied"},{"rubric":8,"severity":"info","field":"dalicc:compatibleLicenseTest","description":"The exception defines the software it may be combined with as software \"distributed with complete corresponding source under a license that is OSI-approved and/or categorized by the FSF as free (collectively \"Other FOSS\")\". That is a test for deciding which other licences the combination may travel under, so it is recorded as dalicc:compatibleLicenseTest. It sits beside a prohibition on changing the licence rather than beside a dalicc:ChangeLicense permission, because the test governs the other work and not this one.","action":"applied","change":"dalicc:compatibleLicenseTest \"a license that is OSI-approved and/or categorized by the FSF as free\" ;\n"},{"rubric":8,"severity":"gap","field":"dalicc:additionalClauses","description":"The exception works in both directions and the vocabulary can only say it once. Paragraph (i) lets the software's interfaces be copied into the other work, paragraph (ii) lets the other work's interfaces be copied into the software, and only the first is a carve-out from this licence's condition. Proposed term: dalicc:interfaceExchangePermission, or a direction qualifier on dalicc:exceptedCombination.","action":"none"},{"rubric":9,"severity":"info","field":"record","description":"app.services.composer.consistency_check with the default dependency graph reports 0 conflicts for this record. dalicc:exceptedCombination takes part in no dependency relation, so it neither creates nor hides one.","action":"applied"},{"rubric":10,"severity":"info","field":"record","description":"The nearest sibling is GPL-2.0-only. This record differs from it in six statements: the SPDX expression, the exception text, the dalicc:exceptedCombination permission, dalicc:reciprocityScope, dalicc:compatibleLicenseTest and the variant pair. The whole-work share-alike duty, the source-code duty and the prohibition on changing the licence are unchanged.","action":"applied"},{"rubric":4,"severity":"minor","field":"odrl:prohibition","description":"dalicc:promote was prohibited and no sentence of this text supports it. The statement was the library's reading of a legal default, that a copyright licence which says nothing about endorsement grants no right to it, and it sat in 519 of 581 records as a house convention. That reading is now an adopted dalicc:DefaultRule of the core dependency graph, which supplies it to every licence that is silent about the action, so a compatibility check reaches the same answer and the record states only what the text states. Removed on 2026-09-23; see section 13 of docs/LICENSE_REVIEW.md.","action":"applied","change":"# removed\nodrl:prohibition [ a odrl:Prohibition ;\n        odrl:action dalicc:promote ] ;\n"}],"family":"GNU copyleft family (GPL, LGPL, AGPL, FDL)","port_of":null,"variant_kind":"exception","variant_of":"GPL-2.0-only","notes":"dct:publisher stays \"Free Software Foundation\", the publisher of the base licence. The exception text names no publisher of its own."}