+ notes: 'Draft PR #2720 opened, CI running. 6 Linux wheels upstream (abi: cp312,cp313,cp314); no riscv64 on PyPI or pypi.riseproject.dev. plain setuptools (not scikit-build-core) custom build_ext driving cmake: builds a native `sleigh` CLI binary plus a per-interpreter (no abi3) nanobind extension from the same vendored Ghidra SLEIGH C++ sources (pypcode/sleigh/, Apache-2.0) and a vendored zlib (Zlib licence); `sleigh -a` then compiles the processor .sla specs (pypcode/processors/, including a RISCV one) at build time. SLEIGH is architecture-decoding, not architecture-specific: the only `__x86_64__`/`__i386__` ifdef in vendored sources (pypcode/sleigh/types.h) is a HOST_ENDIAN convenience that already falls back to a portable runtime-union Endian class on riscv64 (little-endian, correct either way), confirmed by grepping pypcode/sleigh, pypcode/zlib and pypcode_native.cpp for SSE/AVX/inline-asm/byte-order assumptions (none beyond that one ifdef). Verified locally on x86_64 (venv with python3.12 + setuptools/nanobind/cmake installed via uv): `python -m build --wheel --no-isolation` builds cleanly in ~1-2 min, and the official upstream cp312 manylinux_x86_64 wheel from PyPI passes its own `tests/` (`python -m unittest discover -v -s tests`, the exact upstream CIBW_TEST_COMMAND) with 46/46 passed - no riscv64-specific assumptions in the test suite either (translates x86/ARM/etc. bytes, host-arch-independent). Build-from-checkout of tag v4.0.0 (no submodules), mirroring upstream build.yml (CIBW_BUILD per-interpreter cp312/cp313/cp314, no cp314t, matching upstream exactly); adds musllinux alongside manylinux since both legs resolve their build-system deps from plain PyPI with no riscv64 gaps (cmake ships manylinux_2_31_riscv64 and musllinux_1_2_riscv64 wheels, nanobind and setuptools are both py3-none-any) - no CIBW_ENVIRONMENT/registry pin needed at all, pypcode declares zero runtime [project.dependencies]. No gpl_sources job: nanobind statically links libstdc++/libgcc into the extension on musllinux only (gotcha 637 shape, same as pydemumble), and the upstream-released wheel ships only its own LICENSE.txt (BSD-2-Clause AND Apache-2.0 AND Zlib, already documents the SLEIGH/zlib provenance) with no separate nanobind licence text, so this port matches that exactly rather than adding SKBUILD_WHEEL_LICENSE_FILES (not applicable anyway: plain setuptools, no scikit-build-core). One of angr''s blocked dependencies (gotcha 503).'
0 commit comments