diff --git a/CHANGES.md b/CHANGES.md index 924a331965..c555106206 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,6 +18,7 @@ As of build 305, installation .exe files have been deprecated; see Coming in build 312, as yet unreleased -------------------------------------- +* Added many missing license and copyright notice files (mhammond#2590, [@Avasam][Avasam]) * Fixed missing version stamp on built `.dll` and `.exe` files (mhammond#2647, [@Avasam][Avasam]) * Removed considerations for Windows 95/98/ME (mhammond#2400, [@Avasam][Avasam]) This removes the following constants: diff --git a/Pythonwin/pywin/idle/LICENSE.txt b/Pythonwin/pywin/idle/LICENSE.txt new file mode 100644 index 0000000000..f7c8691240 --- /dev/null +++ b/Pythonwin/pywin/idle/LICENSE.txt @@ -0,0 +1,246 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations (see +http://www.digicool.com). In 2001, the Python Software Foundation +(PSF, see http://www.python.org/psf/) was formed, a non-profit +organization created specifically to own Python-related Intellectual +Property. Digital Creations is a sponsoring member of the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI no + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.2 2.1.1 2001 PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PSF LICENSE AGREEMENT FOR PYTHON 2.2 +------------------------------------ + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using Python 2.2 software in source or binary form and its +associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 2.2 +alone or in any derivative version, provided, however, that PSF's +License Agreement and PSF's notice of copyright, i.e., "Copyright (c) +2001 Python Software Foundation; All Rights Reserved" are retained in +Python 2.2 alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 2.2 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 2.2. + +4. PSF is making Python 2.2 available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.2 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +2.2 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.2, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. 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. + +8. By copying, installing or otherwise using Python 2.2, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/SWIG/swig_lib/Copyright b/SWIG/swig_lib/Copyright new file mode 100644 index 0000000000..894b78db32 --- /dev/null +++ b/SWIG/swig_lib/Copyright @@ -0,0 +1,41 @@ + +/******************************************************************************* + * Simplified Wrapper and Interface Generator (SWIG) + * + * Dave Beazley + * + * Department of Computer Science Theoretical Division (T-11) + * University of Utah Los Alamos National Laboratory + * Salt Lake City, Utah 84112 Los Alamos, New Mexico 87545 + * beazley@cs.utah.edu beazley@lanl.gov + * + * Copyright (c) 1995-1998 + * The University of Utah and the Regents of the University of California + * All Rights Reserved + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that + * (1) The above copyright notice and the following two paragraphs + * appear in all copies of the source code and (2) redistributions + * including binaries reproduces these notices in the supporting + * documentation. Substantial modifications to this software may be + * copyrighted by their authors and need not follow the licensing terms + * described here, provided that the new terms are clearly indicated in + * all files where they apply. + * + * IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE + * UNIVERSITY OF UTAH OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, + * EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH + * SPECIFICALLY DISCLAIM ANY WARRANTIES,INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND + * THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, + * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + *******************************************************************************/ diff --git a/com/win32comext/mapi/NOTICE.md b/com/win32comext/mapi/NOTICE.md new file mode 100644 index 0000000000..0d21ee7add --- /dev/null +++ b/com/win32comext/mapi/NOTICE.md @@ -0,0 +1,6 @@ +# Licensing + +This distributed package contains components under multiple licenses: + +- `mapi.pyd` and `exchange.pyd` include compiled code licensed under the MIT License. See [com/win32comext/mapi/src/MAPIStubLibrary/LICENSE](https://github.com/mhammond/pywin32/blob/main/com/win32comext/mapi/src/MAPIStubLibrary/LICENSE) for details. +- For all other distributed files in this package, see the included [License.txt](../../License.txt) and Project License from Metadatas diff --git a/com/win32comext/mapi/src/MAPIStubLibrary/README.md b/com/win32comext/mapi/src/MAPIStubLibrary/README.md index 2f43e5ed87..1fa949fca3 100644 --- a/com/win32comext/mapi/src/MAPIStubLibrary/README.md +++ b/com/win32comext/mapi/src/MAPIStubLibrary/README.md @@ -7,4 +7,4 @@ The MAPI Stub Library is a drop in replacement for mapi32.lib which supports bui --- -These MAPI headers were downloaded from and enable us to build the MAPI extension. +These MAPI headers were downloaded from and enable us to build the MAPI extension. diff --git a/setup.py b/setup.py index a45dbc7e56..5bbc7087d3 100644 --- a/setup.py +++ b/setup.py @@ -30,12 +30,12 @@ import os import platform import re +import shutil import sys import winreg from collections.abc import MutableSequence from pathlib import Path from setuptools import Extension, setup -from setuptools._distutils import ccompiler from setuptools.command.build import build from setuptools.modified import newer_group from tempfile import gettempdir @@ -88,6 +88,10 @@ def my_new_compiler(**kw): if os.path.dirname(this_file): os.chdir(os.path.dirname(this_file)) +version_file_path = Path(gettempdir(), "pywin32.version.txt") +scintilla_licence_path = Path(gettempdir(), "Scintilla-License.txt") +mapi_stubs_licence_path = Path(gettempdir(), "MAPIStubLibrary-License.txt") + # Start address we assign base addresses from. See comment re # dll_base_address later in this file... dll_base_address = 0x1E200000 @@ -362,18 +366,14 @@ def get_pywin32_dir(self): # Extensions to the distutils commands. -# 'build' command class my_build(build): - def run(self): - build.run(self) - # write a pywin32.version.txt. - ver_fname = os.path.join(gettempdir(), "pywin32.version.txt") - try: - f = open(ver_fname, "w") - f.write("%s\n" % build_id) - f.close() - except OSError as why: - print(f"Failed to open '{ver_fname}': {why}") + def run(self) -> None: + super().run() + version_file_path.write_text(f"{build_id}\n") + shutil.copyfile("Pythonwin/Scintilla/License.txt", scintilla_licence_path) + shutil.copyfile( + "com/win32comext/mapi/src/MAPIStubLibrary/LICENSE", mapi_stubs_licence_path + ) class my_build_ext(build_ext): @@ -2019,6 +2019,11 @@ def convert_optional_data_files(files): "Mailing List": "https://mail.python.org/mailman/listinfo/python-win32", }, license="PSF", + license_files=( + "**/[Ll]icense.txt", + "**/LICENSE*", + "isapi/README.txt", + ), classifiers=classifiers, cmdclass=cmdclass, # This adds the scripts under Python3XX/Scripts, but doesn't actually do much @@ -2041,12 +2046,7 @@ def convert_optional_data_files(files): }, packages=packages, py_modules=py_modules, - data_files=[("", (os.path.join(gettempdir(), "pywin32.version.txt"),))] - + convert_optional_data_files( - [ - "PyWin32.chm", - ] - ) + data_files=convert_optional_data_files(["PyWin32.chm"]) + convert_data_files( [ "Pythonwin/start_pythonwin.pyw", @@ -2054,8 +2054,6 @@ def convert_optional_data_files(files): "pythonwin/pywin/Demos/*.py", "pythonwin/pywin/Demos/app/*.py", "pythonwin/pywin/Demos/ocx/*.py", - "pythonwin/license.txt", - "win32/license.txt", "win32/scripts/*.py", "win32/test/*.py", "win32/test/win32rcparser/test.rc", @@ -2065,6 +2063,11 @@ def convert_optional_data_files(files): "win32/Demos/*.py", "win32/Demos/images/*.bmp", "com/win32com/readme.html", + # Licenses + "com/win32comext/mapi/NOTICE.md", + "pythonwin/License.txt", + "pythonwin/pywin/idle/*.txt", + "win32/License.txt", # win32com test utility files. "com/win32com/test/*.idl", "com/win32com/test/*.js", @@ -2093,20 +2096,21 @@ def convert_optional_data_files(files): "com/win32comext/ifilter/demo/*.py", "com/win32comext/authorization/demos/*.py", "com/win32comext/bits/test/*.py", + # ISAPI "isapi/*.txt", "isapi/samples/*.py", "isapi/samples/*.txt", "isapi/doc/*.html", "isapi/test/*.py", "isapi/test/*.txt", + # adodbapi "adodbapi/*.txt", "adodbapi/test/*.py", "adodbapi/examples/*.py", ] ) - + # The headers and .lib files - [ + + [ ("win32/include", ("win32/src/PyWinTypes.h",)), ( "win32com/include", @@ -2117,10 +2121,13 @@ def convert_optional_data_files(files): ), ), ] - + # And data files convert_data_files can't handle. - [ + + [ + ("", (str(version_file_path),)), + ("pythonwin", (str(scintilla_licence_path),)), + ("win32comext/mapi", (str(mapi_stubs_licence_path),)), ("win32com", ("com/License.txt",)), + ("win32comext", ("com/License.txt",)), # pythoncom.py doesn't quite fit anywhere else. # Note we don't get an auto .pyc - but who cares? ("", ("com/pythoncom.py",)),