Skip to content

ci-just-in-case build blocked: llama.cpp b8250 cpp-httplib link (owner decision needed) #10

Description

@mrhegemon

The Publish container workflow on main fails at the final link. After fixing 6 real build bugs (below), the build compiles everything and dies only on llama.cpp's own HTTP downloader.

Root cause (llama.cpp, not JIC code)

libcommon.a ships common/download.cpp, which calls cpp-httplib (httplib::Client/httplib::Response) for model downloads. In tag b8250 this is unconditional — LLAMA_CURL=ON does not remove it. The bundled cpp-httplib doesn't link in JIC's fully-static build and additionally wants OpenSSL (Could NOT find OpenSSL), so the final link fails with undefined reference to httplib::Client::....

Already fixed (on main via #7 and #9)

  1. cpp-httplib download URL 404 → raw tagged single-header
  2. missing unzip in the build stage
  3. sqlite-vec amalgamation extracted nothing (--strip-components=1 on a flat tarball)
  4. SQLITE_CORE defined globally (sqlite3ext.h) — sqlite link clean
  5. OpenMP undefined refs → link libgomp
  6. --recurse-submodules on the llama.cpp clone

Recommended fix (needs a maintainer call)

JIC bundles GGUF models locally and never uses llama's downloader, so the cleanest path is one of:

  • Pin an llama.cpp tag that predates the in-tree cpp-httplib downloader (older tags use libcurl / have no in-tree HTTP). Lowest-risk, but verify the llama API JIC's server.cpp uses is unchanged.
  • Or compile cpp-httplib as a real implementation TU with CPPHTTPLIB_OPENSSL_SUPPORT and link OpenSSL.

Either removes the link error. Once a target llama tag is chosen I can finish the Docker/CMake wiring. Everything else (amd64 image, screenshot gate, GHCR publish) is in place and works.

Note: ci-just-in-case is intentionally amd64-only (cross-compiling llama.cpp under QEMU-arm64 is impractical; the fleet is x86_64).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions