diff options
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/python-debugpy-unbundle-pydevd.patch | 185 |
1 files changed, 92 insertions, 93 deletions
diff --git a/gnu/packages/patches/python-debugpy-unbundle-pydevd.patch b/gnu/packages/patches/python-debugpy-unbundle-pydevd.patch index 7a6ad54489..a0ce43b6e5 100644 --- a/gnu/packages/patches/python-debugpy-unbundle-pydevd.patch +++ b/gnu/packages/patches/python-debugpy-unbundle-pydevd.patch @@ -1,10 +1,9 @@ Allow using pydevd as a regular dependency. Submitted upstream at: https://github.com/microsoft/debugpy/pull/902 -diff --git a/setup.py b/setup.py -index 5fc40070..3a530a29 100644 ---- a/setup.py -+++ b/setup.py +diff -rup a/setup.py b/setup.py +--- a/setup.py 2024-11-29 23:38:58.549980612 +0100 ++++ b/setup.py 2024-11-30 00:04:14.281540335 +0100 @@ -11,6 +11,9 @@ import subprocess import sys @@ -33,7 +32,7 @@ index 5fc40070..3a530a29 100644 DEBUGBY_ROOT = os.path.dirname(os.path.abspath(debugpy.__file__)) -@@ -67,7 +73,7 @@ def iter_vendored_files(): +@@ -46,7 +52,7 @@ def get_buildplatform(): # relevant setuptools versions. class ExtModules(list): def __bool__(self): @@ -42,15 +41,19 @@ index 5fc40070..3a530a29 100644 def override_build(cmds): -@@ -133,9 +139,24 @@ with open("DESCRIPTION.md", "r") as fh: +@@ -72,6 +78,8 @@ def override_build_py(cmds): + # in data files for binary builds. + def finalize_options(self): + original(self) ++ if DEBUGPY_BUNDLING_DISABLED: ++ return True + # Ensure that pydevd extensions are present for inclusion into data_files. + self.announce( +@@ -140,6 +148,20 @@ with open("DESCRIPTION.md", "r") as fh: - if __name__ == "__main__": -- if not os.getenv("SKIP_CYTHON_BUILD"): -+ if not (os.getenv("SKIP_CYTHON_BUILD") or DEBUGPY_BUNDLING_DISABLED): - cython_build() -+ # Etch bundling status in the source. + if __name__ == "__main__": + if debugpy.__bundling_disabled__ != DEBUGPY_BUNDLING_DISABLED: + + with open(os.path.join(DEBUGBY_ROOT, '__init__.py'), 'r') as f: @@ -68,7 +71,7 @@ index 5fc40070..3a530a29 100644 extras = {} platforms = get_buildplatform() if platforms is not None: -@@ -145,6 +166,18 @@ if __name__ == "__main__": +@@ -149,6 +171,18 @@ if __name__ == "__main__": override_build(cmds) override_build_py(cmds) @@ -87,7 +90,7 @@ index 5fc40070..3a530a29 100644 setuptools.setup( name="debugpy", version=versioneer.get_version(), -@@ -173,20 +206,10 @@ if __name__ == "__main__": +@@ -177,23 +211,10 @@ if __name__ == "__main__": "License :: OSI Approved :: MIT License", ], package_dir={"": "src"}, @@ -101,7 +104,10 @@ index 5fc40070..3a530a29 100644 - ], - package_data={ - "debugpy": ["ThirdPartyNotices.txt"], -- "debugpy._vendored": list(iter_vendored_files()), +- "debugpy._vendored": [ +- # pydevd extensions must be built before this list can be computed properly, +- # so it is populated in the overridden build_py.finalize_options(). +- ], - }, + packages=packages, + package_data=data, @@ -109,28 +115,78 @@ index 5fc40070..3a530a29 100644 - has_ext_modules=lambda: True, + has_ext_modules=lambda: not DEBUGPY_BUNDLING_DISABLED, cmdclass=cmds, - **extras - ) -diff --git a/src/debugpy/__init__.py b/src/debugpy/__init__.py -index baa5a7c5..7b7a29aa 100644 ---- a/src/debugpy/__init__.py -+++ b/src/debugpy/__init__.py -@@ -206,6 +206,8 @@ def trace_this_thread(should_trace): + # allow the user to call "debugpy" instead of "python -m debugpy" + entry_points={"console_scripts": ["debugpy = debugpy.server.cli:main"]}, +diff -rup a/src/debugpy/__init__.py b/src/debugpy/__init__.py +--- a/src/debugpy/__init__.py 2024-11-29 23:38:58.553980600 +0100 ++++ b/src/debugpy/__init__.py 2024-11-29 23:49:38.776095806 +0100 +@@ -34,5 +34,6 @@ assert sys.version_info >= (3, 7), ( + # SyntaxError on Python 2 and preventing the above version check from executing. + from debugpy.public_api import * # noqa + from debugpy.public_api import __version__ ++__bundling_disabled__ = False - __version__ = _version.get_versions()["version"] + del sys +diff -rup a/src/debugpy/server/attach_pid_injected.py b/src/debugpy/server/attach_pid_injected.py +--- a/src/debugpy/server/attach_pid_injected.py 2024-11-29 23:38:58.553980600 +0100 ++++ b/src/debugpy/server/attach_pid_injected.py 2024-11-29 23:39:48.933831730 +0100 +@@ -6,6 +6,7 @@ + + import os + ++import debugpy -+__bundling_disabled__ = False -+ - # Force absolute path on Python 2. __file__ = os.path.abspath(__file__) + _debugpy_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) +@@ -28,25 +29,29 @@ def attach(setup): + def on_critical(msg): + print(msg, file=sys.stderr) -diff --git a/src/debugpy/server/__init__.py b/src/debugpy/server/__init__.py -index e6a1ad66..5f29a87a 100644 ---- a/src/debugpy/server/__init__.py -+++ b/src/debugpy/server/__init__.py -@@ -4,6 +4,50 @@ +- pydevd_attach_to_process_path = os.path.join( +- _debugpy_dir, +- "debugpy", +- "_vendored", +- "pydevd", +- "pydevd_attach_to_process", +- ) +- assert os.path.exists(pydevd_attach_to_process_path) +- sys.path.insert(0, pydevd_attach_to_process_path) ++ if debugpy.__bundling_disabled__: ++ from pydevd_attach_to_process import attach_script ++ else: ++ pydevd_attach_to_process_path = os.path.join( ++ _debugpy_dir, ++ "debugpy", ++ "_vendored", ++ "pydevd", ++ "pydevd_attach_to_process", ++ ) ++ assert os.path.exists(pydevd_attach_to_process_path) ++ sys.path.insert(0, pydevd_attach_to_process_path) + +- # NOTE: that it's not a part of the pydevd PYTHONPATH +- import attach_script ++ # NOTE: that it's not a part of the pydevd PYTHONPATH ++ import attach_script + + attach_script.fix_main_thread_id( + on_warn=on_warn, on_exception=on_exception, on_critical=on_critical + ) + +- # NOTE: At this point it should be safe to remove this. +- sys.path.remove(pydevd_attach_to_process_path) ++ if not debugpy.__bundling_disabled__: ++ # NOTE: At this point it should be safe to remove this. ++ sys.path.remove(pydevd_attach_to_process_path) + except: + import traceback - from __future__ import absolute_import, division, print_function, unicode_literals +diff -rup a/src/debugpy/server/__init__.py b/src/debugpy/server/__init__.py +--- a/src/debugpy/server/__init__.py 2024-11-29 23:38:58.553980600 +0100 ++++ b/src/debugpy/server/__init__.py 2024-11-29 23:39:48.933831730 +0100 +@@ -2,6 +2,50 @@ + # Licensed under the MIT License. See LICENSE in the project root + # for license information. +from importlib import import_module +import os @@ -180,67 +236,13 @@ index e6a1ad66..5f29a87a 100644 + pydevd_defaults.PydevdCustomization.DEFAULT_PROTOCOL = pydevd_constants.HTTP_JSON_PROTOCOL +else: + import debugpy._vendored.force_pydevd # noqa -diff --git a/src/debugpy/server/attach_pid_injected.py b/src/debugpy/server/attach_pid_injected.py -index e6345996..87cfdd53 100644 ---- a/src/debugpy/server/attach_pid_injected.py -+++ b/src/debugpy/server/attach_pid_injected.py -@@ -8,6 +8,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera - - import os +diff -rup a/tests/tests/test_vendoring.py b/tests/tests/test_vendoring.py +--- a/tests/tests/test_vendoring.py 2024-11-29 23:38:58.549980612 +0100 ++++ b/tests/tests/test_vendoring.py 2024-11-29 23:50:22.879966500 +0100 +@@ -3,6 +3,11 @@ + # for license information. -+import debugpy - __file__ = os.path.abspath(__file__) - _debugpy_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) -@@ -30,25 +31,29 @@ def attach(setup): - def on_critical(msg): - print(msg, file=sys.stderr) - -- pydevd_attach_to_process_path = os.path.join( -- _debugpy_dir, -- "debugpy", -- "_vendored", -- "pydevd", -- "pydevd_attach_to_process", -- ) -- assert os.path.exists(pydevd_attach_to_process_path) -- sys.path.insert(0, pydevd_attach_to_process_path) -- -- # NOTE: that it's not a part of the pydevd PYTHONPATH -- import attach_script -+ if debugpy.__bundling_disabled__: -+ from pydevd_attach_to_process import attach_script -+ else: -+ pydevd_attach_to_process_path = os.path.join( -+ _debugpy_dir, -+ "debugpy", -+ "_vendored", -+ "pydevd", -+ "pydevd_attach_to_process", -+ ) -+ assert os.path.exists(pydevd_attach_to_process_path) -+ sys.path.insert(0, pydevd_attach_to_process_path) -+ -+ # NOTE: that it's not a part of the pydevd PYTHONPATH -+ import attach_script - - attach_script.fix_main_thread_id( - on_warn=on_warn, on_exception=on_exception, on_critical=on_critical - ) - -- # NOTE: At this point it should be safe to remove this. -- sys.path.remove(pydevd_attach_to_process_path) -+ if not debugpy.__bundling_disabled__: -+ # NOTE: At this point it should be safe to remove this. -+ sys.path.remove(pydevd_attach_to_process_path) - except: - import traceback - -diff --git a/tests/tests/test_vendoring.py b/tests/tests/test_vendoring.py -index dd6c4269..28c03702 100644 ---- a/tests/tests/test_vendoring.py -+++ b/tests/tests/test_vendoring.py -@@ -1,3 +1,8 @@ +import pytest + +import debugpy @@ -249,6 +251,3 @@ index dd6c4269..28c03702 100644 def test_vendoring(pyfile): @pyfile def import_debugpy(): --- -2.34.0 - |