From 69f68acb21aa50448bd47c7e7bb4c81dcad1a9a7 Mon Sep 17 00:00:00 2001 From: steadytao Date: Fri, 3 Apr 2026 16:09:08 +1000 Subject: [PATCH] Stage the Python license file during builds Copy the repo-root LICENSE into the Python package directory for the duration of setup() so license_files = LICENSE remains valid without using deprecated parent-directory paths. Remove the staged copy after the build completes. --- python/setup.py | 77 +++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/python/setup.py b/python/setup.py index e36da518a1..06299e15a6 100644 --- a/python/setup.py +++ b/python/setup.py @@ -12,33 +12,54 @@ # See the License for the specific language governing permissions and # limitations under the License. +from pathlib import Path +import shutil + from setuptools import setup -setup( - name='flatbuffers', - version='25.12.19', - license='Apache 2.0', - author='Derek Bailey', - author_email='derekbailey@google.com', - url='https://google.github.io/flatbuffers/', - long_description=( - 'Python runtime library for use with the ' - '`Flatbuffers `_ ' - 'serialization format.' - ), - packages=['flatbuffers'], - include_package_data=True, - requires=[], - description='The FlatBuffers serialization format for Python', - classifiers=[ - 'Intended Audience :: Developers', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Topic :: Software Development :: Libraries :: Python Modules', - ], - project_urls={ - 'Documentation': 'https://google.github.io/flatbuffers/', - 'Source': 'https://github.com/google/flatbuffers', - }, -) + +_THIS_DIR = Path(__file__).resolve().parent +_ROOT_LICENSE = _THIS_DIR.parent / 'LICENSE' +_LOCAL_LICENSE = _THIS_DIR / 'LICENSE' + + +def _stage_license_file(): + if _LOCAL_LICENSE.exists() or not _ROOT_LICENSE.exists(): + return False + shutil.copyfile(_ROOT_LICENSE, _LOCAL_LICENSE) + return True + +_remove_staged_license = _stage_license_file() + +try: + setup( + name='flatbuffers', + version='25.12.19', + license='Apache 2.0', + author='Derek Bailey', + author_email='derekbailey@google.com', + url='https://google.github.io/flatbuffers/', + long_description=( + 'Python runtime library for use with the ' + '`Flatbuffers `_ ' + 'serialization format.' + ), + packages=['flatbuffers'], + include_package_data=True, + requires=[], + description='The FlatBuffers serialization format for Python', + classifiers=[ + 'Intended Audience :: Developers', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Topic :: Software Development :: Libraries :: Python Modules', + ], + project_urls={ + 'Documentation': 'https://google.github.io/flatbuffers/', + 'Source': 'https://github.com/google/flatbuffers', + }, + ) +finally: + if _remove_staged_license and _LOCAL_LICENSE.exists(): + _LOCAL_LICENSE.unlink()