Source code for pimlico.core.dependencies.licenses

# This file is part of Pimlico
# Copyright (C) 2020 Mark Granroth-Wilding
# Licensed under the GNU LGPL v3.0 - https://www.gnu.org/licenses/lgpl-3.0.en.html

"""
Software licenses, for referring to in software dependency documentation.

Literals here are used to refer to the licenses that software uses.

See https://choosealicense.com/licenses/ for more details and comparison.

"""


[docs]class SoftwareLicense(object): def __init__(self, name, description=None, url=None): self.url = url self.description = description self.name = name
GNU_AGPL_V3 = SoftwareLicense( "GNU AGPLv3", description="""\ Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available. """, url="https://www.gnu.org/licenses/agpl-3.0.en.html" ) GNU_GPL_V3 = SoftwareLicense( "GNU GPLv3", description="""\ Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. """, url="https://www.gnu.org/licenses/gpl-3.0.html" ) GNU_LGPL_V3 = SoftwareLicense( "GNU LGPLv3", description="""\ Permissions of this copyleft license are conditioned on making available complete source code of licensed works and modifications under the same license or the GNU GPLv3. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work through interfaces provided by the licensed work may be distributed under different terms and without source code for the larger work. """, url="https://www.gnu.org/licenses/lgpl-3.0.html" ) GNU_LGPL_V2 = SoftwareLicense( "GNU LGPLv2", description="""\ Permissions of this copyleft license are conditioned on making available complete source code of licensed works and modifications under the same license or the GNU GPLv2. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work through interfaces provided by the licensed work may be distributed under different terms and without source code for the larger work. """, url="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html" ) MOZILLA_V2 = SoftwareLicense( "Mozilla Public License 2.0", description="""\ Permissions of this weak copyleft license are conditioned on making available source code of licensed files and modifications of those files under the same license (or in certain cases, one of the GNU licenses). Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work may be distributed under different terms and without source code for files added in the larger work. """, url="https://www.mozilla.org/en-US/MPL/" ) APACHE_V2 = SoftwareLicense( "Apache License 2.0", description="""\ A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code. """, url="https://www.apache.org/licenses/LICENSE-2.0" ) MIT = SoftwareLicense( "MIT License", description="""\ A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code. """, url="https://opensource.org/licenses/MIT" ) BOOST = SoftwareLicense( "Boost Software License 1.0", description="""\ A simple permissive license only requiring preservation of copyright and license notices for source (and not binary) distribution. Licensed works, modifications, and larger works may be distributed under different terms and without source code. """, url="https://www.boost.org/users/license.html" ) UNLICENSE = SoftwareLicense( "The Unlicense", description="""\ A license with no conditions whatsoever which dedicates works to the public domain. Unlicensed works, modifications, and larger works may be distributed under different terms and without source code. """, url="https://unlicense.org/" ) BSD = SoftwareLicense( "BSD License, 3-clause", url="https://opensource.org/licenses/BSD-3-Clause", ) BSD_2CLAUSE = SoftwareLicense( "BSD License, 2-clause", url="https://opensource.org/licenses/BSD-2-Clause" ) PSF = SoftwareLicense( "Python Software Foundation License", url="https://docs.python.org/3/license.html" ) NOT_RELEVANT = SoftwareLicense( "Not relevant for licensing", description="This is simply a placeholder to denote that it is not relevant to say what the license of " "the software in question is. For example, it might be part of some other licensed software, " "whose license is already covered elsewhere." ) # Mark this license as the one we use for Pimlico itself, for easy reference pimlico_license = GNU_LGPL_V2