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
2026-02-22 19:06:33 -08:00
2026-02-22 21:39:17 -08:00
2026-02-22 19:06:33 -08:00
2026-02-22 21:19:16 -08:00
2026-02-23 21:46:40 -08:00
2026-02-22 19:45:10 -08:00
2026-02-23 10:18:33 -08:00
2026-02-22 21:34:30 -08:00
2026-02-22 19:06:33 -08:00
2026-02-22 15:36:30 -08:00

dependencies

a central repo for managing and vendoring third party dependencies for all comma projects.

since all our projects are Python, we wrap each vendored dependency as a pip package. git clone and uv sync is all you need.

motivations for this approach

  • apt-get is slow
  • apt-get updates its packages on a schedule we don't control
  • apt-get package versions don't match brew versions
  • apt-get doesn't come with Arch Linux
  • apt-get doesn't always have the exact package we need
  • apt-get packages are often bloated

uv, as opposed to apt-get, brew, and friends, is fast and already used in our projects.

we target the following platforms:

  • Linux x86_64
  • Linux aarch64
  • Darwin aarch64 (Apple Silicon)

contributions welcome for other platforms!

packages

package description
gcc-arm-none-eabi builds panda firmware for STM32 MCUs
capnproto message serialization for openpilot
ffmpeg video encode and decode for openpilot
git-lfs for tracking large files in openpilot
zeromq bridging the openpilot IPC between different hosts

usage

dependencies = [
  "capnproto @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=capnproto",
  "ffmpeg @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=ffmpeg",
]

workflow

to add a new package:

  • start a new top-level directory as a new package
  • ./test.sh tests the building of all packages
  • on pushes to master, wheels are built for our target platforms and pushed to a GitHub release
  • the releases branch contains shim packages that allow pointing to a git branch and always getting the appropriate wheel for your platform
Description
No description provided
Readme 7 MiB
2026-03-14 16:06:40 -05:00
Languages
Python 60%
Shell 40%