aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/python-debugpy-unbundle-pydevd.patch185
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
-