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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions