{"id":"PythonLicense20","title":"Python License-2.0","reviewed_on":"2026-09-15","reviewer":"Giray Havur","text_source":"https://raw.githubusercontent.com/spdx/license-list-data/main/text/Python-2.0.txt","text_retrieved":true,"verdict":"corrected","summary":"The Python Software Foundation license grants the right to prepare derivative works and requires only that the license and the copyright notice be retained and that changes be summarised. The record prohibited derivative works, which reverses clause 2, and its warranty field held the liability clause. Both were corrected and the SPDX id and source were added. Five further prohibitions have no support in the text.","findings":[{"rubric":3,"severity":"major","field":"odrl:prohibition","description":"Clause 2 grants \"a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version\". The record prohibited odrl:derive and cc:DerivativeWorks. Removed both and added the permissions with the duties of clauses 2 and 3.","action":"applied","change":"# removed the odrl:derive and cc:DerivativeWorks prohibitions; added\nodrl:permission [ a odrl:Permission ;\n        odrl:action odrl:derive ;\n        odrl:duty [ a odrl:Duty ;\n                odrl:action cc:Attribution ],\n            [ a odrl:Duty ;\n                odrl:action cc:Notice ],\n            [ a odrl:Duty ;\n                odrl:action dalicc:modificationNotice ] ],\n    [ a odrl:Permission ;\n        odrl:action cc:DerivativeWorks ] ;\n"},{"rubric":5,"severity":"major","field":"odrl:duty","description":"Clause 2 requires that \"PSF's License Agreement and PSF's notice of copyright ... are retained in Python alone or in any derivative version\". The distribute permission carried cc:Attribution but not cc:Notice. Added.","action":"applied","change":"odrl:duty [ a odrl:Duty ;\n        odrl:action cc:Notice ] ;\n"},{"rubric":6,"severity":"minor","field":"dalicc:WarrantyDisclaimer","description":"dalicc:WarrantyDisclaimer held clause 5, the liability clause, and there was no dalicc:LiabilityLimitation. Moved clause 5 to the liability field and put clause 4, the warranty disclaimer, in the warranty field.","action":"applied","change":"dalicc:WarrantyDisclaimer \"PSF is making Python available to Licensee on an \\\"AS IS\\\" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES ...\" ;\ndalicc:LiabilityLimitation \"PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON ...\" ;\n"},{"rubric":1,"severity":"minor","field":"spdx:licenseId","description":"Added Python-2.0 and the missing dct:source.","action":"applied","change":"spdx:licenseId \"Python-2.0\" ;\ndct:source osl:Python-2.0 ;\n"},{"rubric":3,"severity":"major","field":"odrl:prohibition","description":"dalicc:chargeDistributionFee is prohibited although nothing in the eight clauses forbids charging for a copy; \"royalty-free\" describes what the Foundation charges the licensee, not what the licensee may charge. cc:ShareAlike, dalicc:addLimitation, dalicc:addStatement and odrl:grantUse are prohibited on the same empty basis. Removing five prohibitions at once changes the compatibility profile of a widely used record, so it is left open for the association's decision.","action":"proposed","change":"# remove the dalicc:chargeDistributionFee, cc:ShareAlike, dalicc:addLimitation,\n# dalicc:addStatement and odrl:grantUse prohibitions\n"},{"rubric":4,"severity":"info","field":"odrl:prohibition","description":"dalicc:promote is prohibited and clause 7 supports it: \"This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\"","action":"none"},{"rubric":1,"severity":"minor","field":"dct:alternative","description":"Only \"Python License\" is listed. \"Python-2.0\", \"PSF License\" and \"Python Software Foundation License Version 2\" would all be searched for.","action":"proposed","change":"dct:alternative \"PSF License\", \"Python-2.0\" ;\n"},{"rubric":1,"severity":"info","field":"dct:title","description":"The document on file is a stack of four agreements (the Foundation license, the BeOpen license, the CNRI license and the CWI copyright). The record models the Foundation license, which is what SPDX calls Python-2.0.","action":"none"},{"rubric":10,"severity":"major","field":"record","description":"Standard-license addition of 2026-09-15, decision 9: the record was corrected against its new siblings and versioned. The review's finding on family consistency: the record prohibited odrl:grantUse, cc:ShareAlike, dalicc:addLimitation, dalicc:addStatement and dalicc:chargeDistributionFee, none of which the PSF License Agreement version 2 states. Clause 2 grants the right 'to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version' and says nothing about fees, so the distribution fee is permitted as it is on the other permissive records.","action":"applied"}],"family":"Other OSI approved licenses (corporate, academic, weak copyleft)","port_of":null,"variant_kind":null,"notes":"The derivative-works prohibition was the single most consequential error in the review group after the Common Public Attribution record."}