From 696b35eb6f16751ca55acfe9f1f4048ff2aafea7 Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Sun, 4 Oct 2026 17:01:03 +0000 Subject: [PATCH] CI fixes: patchelf dev dep for auditwheel, absolute paths in setup.py - Linux runner lacks patchelf; add the patchelf PyPI package (linux only) to dev deps so uv run puts it on PATH for auditwheel repair. - setup.py anchored all libaegis paths to __file__: newer setuptools invoke the compiler from a temp build dir, breaking CWD-relative -Ilibaegis/src/include on Windows (C1083 aegis.h not found). --- pyproject.toml | 1 + setup.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0028712..04f64e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ Repository = "https://github.com/LeoVasanko/aegis-python" [dependency-groups] dev = [ "auditwheel>=6.8.2", + "patchelf>=0.17; sys_platform == 'linux'", "pytest>=9.1.1", "ruff>=0.16.10", "setuptools>=84.0.0", diff --git a/setup.py b/setup.py index 98583c9..214efd8 100644 --- a/setup.py +++ b/setup.py @@ -7,12 +7,14 @@ from pathlib import Path from cffi import FFI from setuptools import setup -libaegis_static = Path("libaegis/zig-out/lib") / ( +ROOT = Path(__file__).parent.resolve() + +libaegis_static = ROOT / "libaegis/zig-out/lib" / ( "aegis.lib" if sys.platform == "win32" else "libaegis.a" ) ffibuilder = FFI() -ffibuilder.cdef((Path(__file__).parent / "src/aeg/aegis_cdef.h").read_text()) +ffibuilder.cdef((ROOT / "src/aeg/aegis_cdef.h").read_text()) # Free-threaded Python does not support Limited API (abi3) is_free_threaded = sysconfig.get_config_var("Py_GIL_DISABLED") @@ -28,8 +30,8 @@ ffibuilder.set_source( #include "aegis256x2.h" #include "aegis256x4.h" """, - include_dirs=["libaegis/src/include"], - extra_objects=[str(libaegis_static.resolve())], + include_dirs=[str(ROOT / "libaegis/src/include")], + extra_objects=[str(libaegis_static)], py_limited_api=not is_free_threaded, )