Qt 5.15.18-lts-lgpl (QtBase + QtCharts) built from source as shared
libraries. Provides headers, shared libs, and tools (moc, rcc, uic)
for building cabana in openpilot without system Qt5 packages.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Include imgui_impl_opengl3.h, imgui_impl_opengl3.cpp, and
imgui_impl_opengl3_loader.h from the imgui backends/ directory.
These are needed for cabana's Qt/OpenGL-based ImGui integration.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
setup.py had its own cache check that only looked for libraylib.a,
skipping build.sh entirely when the cache had the desktop variant.
Now also checks for libraylib_offscreen.a on x86_64.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The build cache had desktop-only libraylib.a, causing build.sh to skip
the offscreen variant entirely. Now requires libraylib_offscreen.a on
x86_64 before considering the build complete.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The manylinux container doesn't have Mesa packages pre-installed.
Install them before building the offscreen variant and bundling GLVND.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* raylib: add PLATFORM_OFFSCREEN support for headless CI rendering
- build.sh: use commaai/raylib platform-offscreen commit, build offscreen
variant (libraylib_offscreen.a) alongside desktop for x86_64, bundle
GLVND dispatchers (libEGL, libOpenGL, libGLdispatch) in install/lib/mesa/
- build.py: add PLATFORM_OFFSCREEN elif — uses offscreen lib + bundled
GLVND with RPATH, links -lOpenGL -lEGL instead of -lGL -lX11
- __init__.py: auto-rebuild CFFI when RAYLIB_PLATFORM env changes
(tracks built platform in .raylib_platform marker file)
- Bump version to 5.5.0.5
This lets openpilot CI render headlessly via EGL surfaceless + Mesa
llvmpipe without needing xvfb or any additional apt packages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* raylib: auto-detect CI and use PLATFORM_OFFSCREEN
__init__.py now auto-detects CI on Linux x86_64 and uses
PLATFORM_OFFSCREEN + LIBGL_ALWAYS_SOFTWARE=1 automatically.
No env vars needed in the consuming CI workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The CFFI extension was built with py_limited_api=False, producing
version-specific .so files (e.g., cpython-312 on Linux, cpython-314
on macOS). This caused import failures when the build Python version
didn't match the runtime version.
Switch to py_limited_api=True to produce _raylib_cffi.abi3.so which
works across Python 3.x versions.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The shim setup.py extracts .so files from the wheel, but the
generated pyproject.toml didn't include them in package-data, so
they were excluded when uv built a local wheel from the source.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Build the CFFI Python extension (_raylib_cffi.so) during wheel build
instead of deferring to first import. This eliminates the need for
libgl-dev and libx11-dev on the target system.
- setup.py: run build.py after build.sh to compile CFFI extension
- pyproject.toml: include _raylib_cffi*.so in package-data, bump to 5.5.0.3
- _shim_setup.py: extract .so files from wheel alongside data directory
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The shim branch was only copying __init__.py from each package,
which dropped Python source files needed for CFFI builds (build.py,
colors.py, defines.py, enums.py, version.py) and extra packages
like pyray. It also dropped project dependencies like cffi.
- Copy all .py files from the main module, not just __init__.py
- Copy extra packages listed in packages.find.include
- Preserve project dependencies in generated pyproject.toml
Vendor raylib C library + pyray Python bindings (CFFI) from commaai's
raylib and raylib-python-cffi forks.
Supports PLATFORM_DESKTOP (X11/GL) and PLATFORM_COMMA (DRM/EGL/GLES)
backends, auto-detected via /TICI.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Static build of bzip2 1.0.8 (libbz2.a + bzlib.h) for use as a
vendored dependency in openpilot replay/cabana tools.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* build linux wheels inside manylinux_2_28 for glibc 2.28 compat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add perl-IPC-Cmd for openssl build in manylinux
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Vendors OpenSSL 3.4.1 as static libraries (libcrypto.a, libssl.a) for
openpilot, following the same pattern as other vendored packages.
Uses module name openssl3 to avoid case-insensitive filesystem conflict
with pyOpenSSL's OpenSSL module on macOS.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Vendors libjpeg-turbo 3.1.0 as a static library for openpilot, following
the same pattern as zstd/ncurses/zeromq.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
LTO bitcode is compiler-version-specific. The wheel built with
clang 17 produces bitcode that clang 16 (used in openpilot CI)
cannot read. Disable IPO to produce standard object files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cppcheck 2.19.1 static analysis tool, built from source. Includes
the MISRA C addon, cfg files, and platform definitions for opendbc
and panda safety analysis.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>