Repository navigation
Conversation
f240cd9 to
78062f7
Compare
Test run: Ubuntu 26.04 LTS, aarch64 (Parallels VM, Wayland, virgl GL 4.0 / Mesa 26.0.3)Tested at
Notes:
|
RPi CI failure: apothecary GLFW built without X11/WaylandBoth CauseChecked the
In apothecary if [[ "$PLATFORM" =~ ^arm64$ ]] && [ "$TYPE" = "linux" ]; then
GLFW_WAYLAND=1; GLFW_X11=1
else # <- aarch64, armv6l, armv7l all land here
DEFINES="$DEFINES -DGLFW_USE_EGL=1 -DGLFW_CLIENT_LIBRARY=glesv2"
GLFW_WAYLAND=0; GLFW_X11=0
fiThe RPi workflow ( Proposed fix (apothecary)Build all Linux ARM targets with X11 and Wayland on. GLFW 3.4 still creates EGL/GLES contexts on either backend: if [[ "$PLATFORM" =~ ^(arm64|aarch64|armv6l|armv7l|armv8)$ ]]; then
export GLFW_WAYLAND=1
export GLFW_X11=1
elseThen rebuild the RPi A stopgap would be to guard the X11/Wayland/GLX native calls in |
|
Apothecary fixed for raspberry Pi GLFW builds now. This is looking good. |
|
== source contracts == == MSYS2 ABI library paths expand without recursion == == find_platform_lib_path (new wins, old is fallback) == == PLATFORM_LEGACY_LIB_SUBPATHS aliases in config.shared.mk == Passed: 30 Failed: 0 |
…rather than let continue to code compiltion errors emscripten memory64 renamed 64 as internals are em32 and em64
makefiles fixed remove i386
…es with makefiles
Detect Raspberry Pi so aarch64 stays the Pi 64-bit package, not generic arm64. Request the GCC 10 baseline for all official Linux targets, extract archives as-is, and keep lib/linux/<arch> instead of flattening back to linux64/linuxarmv6l.
OF_DIR was unset so compileOF/PG/examples resolved the repo root wrong. compileOF now maps 64/arm64/aarch64/armv6l/armv7l/jetson to lib/linux/<arch>. RPi CI looks at scripts/ci/linux/rpi/raspbian.
scripts/ci/linux/rpi is one directory deeper than the old linuxrpi path, so OF_ROOT resolved to scripts/ and the armv7l template copy failed. Walk up four levels. Do not cancel sibling RPi slices on one failure.
CI is not a Pi, so RPI_DETECTED is no and armv6l/armv7l fell through
to a tab-prefixed $(error) ("recipe commences before first target").
aarch64 was remapped to generic arm64 and looked in lib/linux/arm64.
Treat armv6l/armv7l/aarch64, RPI_DETECTED, and RPI_ROOT as RPi so
libs resolve under lib/linux/<arch>. Keep generic ARM desktop on
linux/arm64. Resolve third-party and addon libs via canonical then
legacy subpaths. Official Linux archives are GCC 10 only.
Skip the RPi example build until latest includes glm/tess2. Drop the
22.04 apt cache that used 24.04 package names.
Run a dedicated workflow on push and pull_request that extracts find_platform_lib_path and checks each official arch: new nested folder wins, pre-0.13 flat folder still resolves, missing stays empty.
linux/64/run_tests.sh copied a host Makefile into every tests/* folder and executed the binary. android / emscripten / ios / tvOS are not headless Linux unit tests (GLFW needs DISPLAY). Use the linux64 templates to match build.sh.
Latest msys2 clang64/mingw64/ucrt64 packages embed both a GNU and an MSVC symbol index in kiss/tess2/videoInput .a files. MinGW ld then treats the archive as a linker script; lld reports unknown file type. Rebuild those archives with ar/ranlib after extract. Prefer lib/msys2/x86_64 when apothecary nests an arch folder.
Add scripts/ci/check_deployed_libs.sh and run it after download_libs on linux, RPi, and msys2. Fail if tess2/kiss/zlib (or msys2 videoInput) are missing or not GNU ar. RPi still allows the zlib-only smoke-test archive. The Linux lib-paths workflow also downloads linux_64 and checks real files.
reindexMsys2StaticLibs extracted each archive with "ar x" into one
directory and repacked it with "ar rcs". Same-named members overwrite
each other on extraction, so the repacked libopencv_world.a lost 17 of
its 512 objects (13 duplicate names, incl. core/src/parallel.cpp.o and
core/src/tables.cpp.o) and the msys2 allAddonsExample link failed with
undefined cv::parallel_for_ / cv::g_Saturate8u - even though the
apothecary package itself is correct.
Archives with duplicate member names now only get their symbol index
rebuilt in place ("ar s" + ranlib), as apothecary does since openframeworks#606.
Linux 2026
Draft for the makefile / download path split that matches current apothecary Linux artifacts.
Companion: openframeworks/apothecary#585 (Raspberry Pi aarch64 / armv7l / armv6l QEMU + GCC 10, all platforms green).
Lib paths (makefile + apothecary)
ARCH64lib/linux/64arm64lib/linux/arm64aarch64lib/linux/aarch64armv7llib/linux/armv7larmv6llib/linux/armv6lLegacy flat folders (
linux64,linuxarmv6l, …) stay as addon fallbacks.Official archives (GCC 10 baseline)
openFrameworksLibs_<tag>_linux_<ARCH>_gcc10.tar.bz2download_libs.shnow:aarch64(does not pull genericlinux_arm64)_gcc10for the five official Linux targets--strip-components=1)lib/linux/<arch>Status
master(2026-10-10): no merge commits; apothecary submodule at master'saac2679(Linux modular library builds, xcode projects are gone from master branch? #593)