blob: cf8e60163511119f40dd531b0ae2ee1c2a2d9845 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..11} )
inherit distutils-r1 multiprocessing toolchain-funcs
TAG="pydev_debugger_${PV//./_}"
MY_P="PyDev.Debugger-${TAG}"
DESCRIPTION="PyDev.Debugger (used in PyDev, PyCharm and VSCode Python)"
HOMEPAGE="
https://github.com/fabioz/PyDev.Debugger/
https://pypi.org/project/pydevd/
"
SRC_URI="
https://github.com/fabioz/PyDev.Debugger/archive/${TAG}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="EPL-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
sys-devel/gdb
"
BDEPEND="
test? (
dev-python/untangle[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
python_prepare_all() {
distutils-r1_python_prepare_all
# Drop -O3 and -flto compiler args
sed -i \
-e 's/extra_link_args = extra_compile_args\[\:\]/pass/g' \
-e '/extra_compile_args/d' \
setup.py || die
# Disable tests incompatible with new package versions
sed -e '/TEST_\(DJANGO\|FLASK\)/s:True:False:' \
-i tests_python/debug_constants.py || die
# Clean up some prebuilt files
rm -r third_party || die
cd pydevd_attach_to_process || die
# Remove these Windows files
rm attach_{amd64,x86}.dll || die
rm inject_dll_{amd64,x86}.exe || die
rm run_code_on_dllmain_{amd64,x86}.dll || die
rm -r windows winappdbg || die
# Remove these MacOS files
rm attach_x86_64.dylib || die
# Remove these prebuilt linux files
rm attach_linux_{amd64,x86}.so || die
cd linux_and_mac || die
rm compile_mac.sh || die
}
src_compile() {
pushd pydevd_attach_to_process/linux_and_mac || die
# recompile removed file (extracted from compile_linux.sh)
$(tc-getBUILD_CXX) ${CXXFLAGS} ${CPPFLAGS} \
-o "../attach_linux_${ARCH}.so" \
${LDFLAGS} -nostartfiles attach.cpp -ldl || die
popd || die
distutils-r1_src_compile
rm -r _pydevd_bundle || die
}
python_test() {
local EPYTEST_DESELECT=(
# TODO
# NB: upstream seems to run tests via runfiles.py but that script
# is a horror and it seems broken for us anyway
tests_python/test_debugger.py::test_attach_to_pid_halted
tests_python/test_debugger.py::test_attach_to_pid_no_threads
'tests_python/test_debugger.py::test_path_translation[False]'
tests_python/test_debugger.py::test_remote_debugger_threads
tests_python/test_debugger_json.py::test_attach_to_pid
tests_python/test_debugger_json.py::test_evaluate_exception_trace
tests_python/test_debugger_json.py::test_gui_event_loop_custom
tests_python/test_debugger_json.py::test_path_translation_and_source_reference
tests_python/test_utilities.py::test_tracing_basic
tests_python/test_utilities.py::test_tracing_other_threads
# incompatible version?
tests_python/test_debugger_json.py::test_pandas
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
# this is only used to compare against getpid() to detect that xdist
# is being used
local -x PYDEV_MAIN_PID=1
epytest -p xdist -n "$(makeopts_jobs)" --dist=worksteal
}
python_install_all() {
distutils-r1_python_install_all
# Remove this duplicate that is installed directly to /usr/
# These files are also correctly installed to the python site-packages dir
rm -r "${ED}/usr/pydevd_attach_to_process" || die
}
|