From 3f76f4aa7018ca7e7fe0726abfdcca8c6c840481 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 8 May 2023 18:18:42 +0200 Subject: [PATCH] dist: Strip out delvewheel patch from packaged Python code Fixes #1492 --- direct/src/dist/FreezeTool.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/direct/src/dist/FreezeTool.py b/direct/src/dist/FreezeTool.py index 04dad43c7d..2361c7f16d 100644 --- a/direct/src/dist/FreezeTool.py +++ b/direct/src/dist/FreezeTool.py @@ -2495,6 +2495,21 @@ class PandaModuleFinder(modulefinder.ModuleFinder): else: code = fp.read() + # Strip out delvewheel patch (see GitHub issue #1492) + if isinstance(code, bytes): + # Don't look for \n at the end, it may also be \r\n + start_marker = b'# start delvewheel patch' + end_marker = b'# end delvewheel patch' + else: + start_marker = '# start delvewheel patch' + end_marker = '# end delvewheel patch' + + start = code.find(start_marker) + while start >= 0: + end = code.find(end_marker, start) + len(end_marker) + code = code[:start] + code[end:] + start = code.find(start_marker) + code += b'\n' if isinstance(code, bytes) else '\n' if sys.version_info >= (3, 2): co = compile(code, pathname, 'exec', optimize=self.optimize)