From bca4c9a6aad9438e716d5f86e29075fbe360a2b8 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Wed, 28 Oct 2026 18:16:46 -0400 Subject: [PATCH 1/2] Load libxml2.so.16 on Linux libxml2 2.14 bumped the soname to 16 and Ubuntu 26.04 ships only that, so the native failed to load there. The suite passes against 2.15.2. --- deps.edn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deps.edn b/deps.edn index a13e399..fdf30dc 100644 --- a/deps.edn +++ b/deps.edn @@ -19,13 +19,14 @@ ;; libxml2 backs the javax.xml.stream pull parser. Declared :jolt/native so jolt ;; loads it before this namespace, where the foreign-fn bindings resolve at load. - ;; Present on macOS (dyld shared cache) and ubiquitous on Linux. Windows has no + ;; Present on macOS (dyld shared cache) and ubiquitous on Linux, where 2.14+ is + ;; soname 16 (Ubuntu 26.04 ships only libxml2.so.16). Windows has no ;; system copy, and jolt reads only the running platform's key, so the names ;; below are MSYS2's current and older builds and the official one; the DLL has ;; to be on PATH or next to the program. :jolt/native [{:name "xml2" :darwin ["libxml2.2.dylib" "/usr/lib/libxml2.2.dylib"] - :linux ["libxml2.so.2" "libxml2.so"] + :linux ["libxml2.so.2" "libxml2.so.16" "libxml2.so"] :windows ["libxml2-16.dll" "libxml2-2.dll" "libxml2.dll"]}] :aliases {:test {:extra-paths ["test"] From f8f25e41a9728c473bfe9d1c972f9c185ea41869 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Wed, 28 Oct 2026 18:19:11 -0400 Subject: [PATCH 2/2] Install libxml2-16 in CI; ubuntu-latest is 26.04 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 907065a..20e5e0f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,7 +9,7 @@ jobs: run: | set -euo pipefail sudo apt-get update - sudo apt-get install -y liblz4-1 zlib1g libtinfo6 libxml2 + sudo apt-get install -y liblz4-1 zlib1g libtinfo6 libxml2-16 # Install through jolt's own install script rather than resolving the # release asset here: it owns the archive and binary naming (which # changed in v0.5.0, when the CLI was renamed from joltc to jolt) and