Commit Graph

62 Commits

Author SHA1 Message Date
Adeeb Shihadeh
5457e99bb7 ffmpeg: add hardware-accelerated video decoders (#62) 2026-03-22 14:28:34 -07:00
Adeeb Shihadeh
0f28906d50 fix shim release 2026-03-21 10:53:26 -07:00
Adeeb Shihadeh
8b6c712f60 fix imgui 2026-03-21 10:39:33 -07:00
Adeeb Shihadeh
6ad06e2173 qt is always a mistake :( 2026-03-21 10:27:17 -07:00
Adeeb Shihadeh
577b731299 imgui: build static lib 2026-03-21 10:11:22 -07:00
Adeeb Shihadeh
6692e3d936 imgui: add libGL 2026-03-21 09:56:26 -07:00
Adeeb Shihadeh
6bc1fe9a9a split shim releases into per-package branches (#59) 2026-03-14 14:42:00 -07:00
Adeeb Shihadeh
14d916d054 Add libusb package (#56) libusb/v1.0.29 2026-03-14 14:06:40 -07:00
Adeeb Shihadeh
62afc9ea71 qt5: minimize build and wheel size (#57) 2026-03-14 14:04:16 -07:00
Adeeb Shihadeh
c55046f7f0 add qt5 package (#55)
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>
2026-03-13 21:43:06 -07:00
Adeeb Shihadeh
a78417ecd1 imgui: enable Wayland support in GLFW build (#54) 2026-03-13 16:57:56 -07:00
Adeeb Shihadeh
d14d45aef4 imgui: add statically linked GLFW 3.4 build (#53) 2026-03-13 16:47:36 -07:00
Adeeb Shihadeh
224cbbb783 imgui: add GLFW backend files (#52) 2026-03-13 15:23:30 -07:00
Adeeb Shihadeh
53271a60fa rm python3-dev (#51) nanosvg/v0.0.1 2026-03-13 13:49:24 -07:00
Adeeb Shihadeh
8d9b59b9d0 add nanosvg package (#50) 2026-03-13 13:40:12 -07:00
Adeeb Shihadeh
950d288e77 rm openssl3 package 2026-03-06 22:03:30 -08:00
Adeeb Shihadeh
331d94a683 Make builds incremental by preserving source/build dirs (#45) 2026-03-04 09:17:55 -08:00
Adeeb Shihadeh
2e9aed768a imgui: add OpenGL3 backend files (#43)
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>
2026-03-01 17:00:28 -08:00
Adeeb Shihadeh
65674ad817 add imgui package (#42) 2026-03-01 16:40:46 -08:00
Adeeb Shihadeh
61379f09ec shim: retry downloads on transient network errors (#41) 2026-03-01 16:26:21 -08:00
Adeeb Shihadeh
21bb9ab18e raylib: fix setup.py to also trigger offscreen variant build
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>
raylib/v5.5.0.8
2026-03-01 15:15:59 -08:00
Adeeb Shihadeh
2341b89849 raylib: fix idempotency check to include offscreen variant
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>
raylib/v5.5.0.7
2026-03-01 15:07:25 -08:00
Adeeb Shihadeh
7d158432af raylib: bump to 5.5.0.6 (re-publish with offscreen libs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
raylib/v5.5.0.6
2026-03-01 15:00:47 -08:00
Adeeb Shihadeh
c81badf4a5 raylib: install EGL/GL dev packages for offscreen variant build
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>
2026-03-01 14:54:54 -08:00
Adeeb Shihadeh
122939fdf2 raylib: add PLATFORM_OFFSCREEN support (#38)
* 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>
raylib/v5.5.0.5
2026-03-01 14:44:19 -08:00
Adeeb Shihadeh
9690fd5160 raylib: use stable ABI for CFFI extension (#37)
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>
raylib/v5.5.0.4
2026-03-01 13:07:15 -08:00
Adeeb Shihadeh
c835b206c6 release: include compiled extensions (*.so) in shim package-data (#36)
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>
2026-03-01 12:50:07 -08:00
Adeeb Shihadeh
70b6bf1c40 raylib: include pre-compiled CFFI extension in wheel (#35)
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>
raylib/v5.5.0.3
2026-03-01 12:36:30 -08:00
Adeeb Shihadeh
d67b3e906e release: copy all Python sources and deps to shim branch (#34)
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
2026-03-01 12:04:48 -08:00
Adeeb Shihadeh
408cc4b949 add json11 package (#33)
* add libyuv package

* update libyuv to upstream 1922

* add json11 package
json11/v20170411.0
2026-03-01 11:29:13 -08:00
Adeeb Shihadeh
9e9a5b56ac add raylib package (#31) (#31)
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>
raylib/v5.5.0.2
2026-03-01 11:08:58 -08:00
Adeeb Shihadeh
e46683e1fc add libyuv package (#32)
* add libyuv package

* update libyuv to upstream 1922
libyuv/v1922.0
2026-03-01 10:36:21 -08:00
Adeeb Shihadeh
db4664139a add bzip2 package (#28)
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>
bzip2/v1.0.8
2026-02-27 12:01:40 -08:00
Adeeb Shihadeh
8472bcb091 update readme 2026-02-27 11:57:01 -08:00
Adeeb Shihadeh
357d36a61d simplify building (#26) 2026-02-25 20:17:13 -08:00
Adeeb Shihadeh
ae529b6818 set more -fPIC 2026-02-24 18:57:54 -08:00
Adeeb Shihadeh
a3eeb36555 fix x264 finite-math and capnproto -fPIC (#22) 2026-02-24 18:34:16 -08:00
David
57b632b00a ffmpeg: build and include zlib to enable PNG support (#21)
* add zlib to ffmpeg

* checkout specific commit
2026-02-24 18:05:42 -08:00
David
e35ea9f690 add mjpeg to encoders (#20) 2026-02-24 18:02:33 -08:00
David
32c2a425b5 ffpmeg: add framehash muxer (#19)
* add framehash demuxer

* oops, muxer not demuxer
2026-02-24 18:02:26 -08:00
Adeeb Shihadeh
62d18088cc build linux wheels with manylinux_2_28 for wider glibc compat (#18)
* 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>
2026-02-24 17:44:07 -08:00
Adeeb Shihadeh
ec99b49198 rename openssl package to openssl3 (#17) openssl3/v3.4.1 2026-02-24 11:20:46 -08:00
Adeeb Shihadeh
31b96deac5 add openssl package (#16)
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>
openssl/v3.4.1
2026-02-24 10:53:01 -08:00
Adeeb Shihadeh
6fe17e7b31 add libjpeg-turbo package (#15)
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>
libjpeg/v3.1.0
2026-02-24 10:09:19 -08:00
Adeeb Shihadeh
2377af3f1f fix git-lfs on macOS 2026-02-23 22:59:08 -08:00
Adeeb Shihadeh
b9f89a5a5d disable LTO for zstd to fix cross-version linking on macOS
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>
2026-02-23 22:46:55 -08:00
Adeeb Shihadeh
fd4ae72793 add zstd and ncurses packages (#14) ncurses/v6.5 zstd/v1.5.6 2026-02-23 22:34:46 -08:00
Adeeb Shihadeh
dfa87aa31a add python3-dev package (#13)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
python3-dev/v3.12.8
2026-02-23 21:46:40 -08:00
Adeeb Shihadeh
71d4d1d3a1 downgrade cppcheck to 2.16.0 (#12) cppcheck/v2.16.0 2026-02-23 11:47:16 -08:00
Adeeb Shihadeh
f117a0e60d add cppcheck package (#10)
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>
cppcheck/v2.19.1
2026-02-23 10:18:33 -08:00