gpo.zugaina.org

Search Portage & Overlays:

sci-ml/llama-swap

Model-swapping proxy for llama.cpp, vLLM and OpenAI-compatible servers

Screenshots

  • llama-swap-260
    ~amd64 ~arm64
    systemd ui

    View      Download      Browse     License: MIT Apache-2.0 BSD BSD-2 ISC   
    Overlay: bentoo

ChangeLog

commit 8def768d6922b143d0462fa3a25c8f54fc0bb4a8
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Sep 26 13:10:27 2026 -0300

add(metadata/{md5-cache/app-editors/zed-1.23.0_pre20260926, md5-cache/dev-util/claude-agent-acp-plus-0.20.2, md5-cache/dev-util/claude-agent-acp-tui-0.14.2, md5-cache/dev-util/codex-0.157.1, md5-cache/dev-util/codex-bin-0.157.1, md5-cache/dev-util/codex-desktop-bin-26.924.22138, md5-cache/dev-util/mesa_clc-26.3.0_pre20260926, md5-cache/dev-util/openchamber-bin-2.0.2, md5-cache/dev-util/qwen-code-0.24.6, md5-cache/media-libs/mesa-26.3.0_pre20260926, md5-cache/media-libs/vulkan-layers-1.4.363_p20260926, md5-cache/net-vpn/obscura-1.180_p20260926, md5-cache/sci-ml/ik_llama-cpp-0_pre20260926, md5-cache/sci-ml/koboldcpp-1.122, md5-cache/sci-ml/llama-swap-260}), mod(.autoupdate/packages.toml), up(app-editors/zed-1.23.0_pre20260925-r1 -> 1.23.0_pre20260926, dev-util/codex{,-bin}-0.157.0 -> 0.157.1, media-libs/{mesa-26.3.0_pre20260925 -> 26.3.0_pre20260926, vulkan-layers-1.4.363_p20260925 -> 1.4.363_p20260926}, net-vpn/obscura-1.180_p20260924 -> 1.180_p20260926, sci-ml/{ik_llama-cpp-0_pre20260925 -> 0_pre20260926, koboldcpp-1.121 -> 1.122, llama-swap-258 -> 260})

commit ba64ef5c3603ce4bd3de5a7a94d6847b22debf02
Author: lucascouts <lucascs@protonmail.com>
Date: Fri Sep 25 07:27:59 2026 -0300

bump 10 packages from the 2026-09-25 autoupdate sweep

- app-admin/awscli2: 2.37.2 -> 2.37.3
- app-editors/zed: 1.23.0_pre20260924 -> 1.23.0_pre20260925 (a84858ac);
patch series refreshed, yawc moved from GIT_CRATES to CRATES
- app-editors/cursor: 3.21.18 -> 3.22.7
- dev-util/codex{,-bin}: 0.156.1 -> 0.157.0 (crossterm GIT_CRATES rev bumped)
- dev-util/vulkan-utility-libraries: 1.4.363_p20260925 -> 1.4.364_p20260925
(v1.4.364 tags the commit already carried; keeps the _p scheme of its siblings)
- media-libs/vulkan-layers: 1.4.363_p20260924 -> 1.4.363_p20260925 (fd8605f9);
glslang, vulkan-headers and vulkan-utility-libraries floors raised per known_good.json
- net-misc/postman-bin: 12.29.2 -> 12.29.4
- sci-ml/ik_llama-cpp: 0_pre20260924 -> 0_pre20260925 (6475e58b)
- sci-ml/llama-swap: 257 -> 258

media-libs/tlottie is left at 0.1.0_pre20260911: tdesktop 7.2.9 still pins
31f1b542, so the proposed 1.0.6_pre20260917 is main-branch drift the hold blocks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

commit dbaf7632833390261afc4315f907f5573e3440d0
Author: lucascouts <lucascs@protonmail.com>
Date: Tue Sep 22 10:06:37 2026 -0300

add(metadata/{md5-cache/app-admin/doctl-1.170.0, md5-cache/dev-db/sqlitebrowser-3.13.99_p20260922, md5-cache/dev-python/openai-3.17.0, md5-cache/dev-util/cline-bin-3.0.64, md5-cache/dev-util/kilocode-bin-7.7.7, md5-cache/dev-util/kimi-cli-bin-1.52.0, md5-cache/dev-util/mesa_clc-26.3.0_pre20260922, md5-cache/media-libs/mesa-26.3.0_pre20260922, md5-cache/media-libs/vulkan-layers-1.4.363_p20260922, md5-cache/net-libs/nodejs-26.10.0, md5-cache/net-misc/postman-bin-12.29.1, md5-cache/sci-ml/ik_llama-cpp-0_pre20260922, md5-cache/sci-ml/llama-swap-257, md5-cache/sys-apps/flatpak-1.18.3}), mod(.autoupdate/packages.toml), up(app-admin/doctl-1.169.0 -> 1.170.0, dev-db/sqlitebrowser-3.13.99_p20260921 -> 3.13.99_p20260922, dev-python/openai-3.16.2 -> 3.17.0, dev-util/{cline-bin-3.0.62 -> 3.0.64, kilocode-bin-7.7.6 -> 7.7.7, kimi-cli-bin-1.51.0 -> 1.52.0, mesa_clc-26.3.0_pre20260921 -> 26.3.0_pre20260922}, media-libs/{mesa-26.3.0_pre20260921 -> 26.3.0_pre20260922, vulkan-layers-1.4.363_p20260921 -> 1.4.363_p20260922}, net-libs/nodejs-26.9.0 -> 26.10.0, net-misc/postman-bin-12.28.6 -> 12.29.1, sci-ml/{ik_llama-cpp-0_pre20260921 -> 0_pre20260922, llama-swap-256 -> 257}, sys-apps/flatpak-1.18.2 -> 1.18.3)

commit cc5bb86636f61f6b58a0b053e599e5f7c6793cbb
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Sep 17 22:25:23 2026 -0300

bump 24 packages; fix the tlottie/telegram-desktop static-link pin

Batch autoupdate sweep, plus three things the applier could not have done
on its own.

tlottie/telegram-desktop -- the proposed bump was wrong.
The autoupdate offered tlottie 0.1.0_pre20260908. Telegram v7.2.9's
prepare.py pins commit 31f1b542f8, dated 2026-09-11, and v7.2.9 newly
applies tlottie.patch from desktop-app/patches (pinned there at
519aaa0846). tlottie is linked STATICALLY into the Telegram binary, so a
wrong pin is an ABI mismatch with no soname to catch it. Bumped to
0.1.0_pre20260911 with files/tlottie-tdesktop-compat.patch (six hunks over
three files; verified with both `git apply --check` and eapply's own flag
set against a real checkout of the pinned commit), and revbumped
telegram-desktop to 7.2.9-r1 with the matching floor.

check-tlottie-pin.sh had a false negative.
Its detector anchored the category right after leading whitespace, so any
version-range prefix made the atom invisible and it reported "declares no
dependency on media-libs/tlottie". Widened the detector rather than
dropping the floor: the floor is the only thing that forces a rebuild on
someone who already has the old archive installed, precisely because the
linkage is static. Self-test grew 17 -> 23 assertions covering bare,
floored and slotted atoms as matches, and comment, blocker and
prefix-lookalike as non-matches.

uutils-coreutils-bin 0.12.0 changed its documentation source.
Upstream dropped the architecture-independent docs.tar.zst and now ships a
`uudoc` binary beside the payload. The ebuild derives the applet list from
`coreutils --list` and renders man pages and completions through uudoc,
which means the build host must be able to execute the target binary --
src_install dies with an explicit message when it cannot. Verified by
running the payload: all 106 applets render a man page and bash, zsh and
fish completions with no failure, and the completion sed anchors still
match.

dev-db/redis returns as an ahead-of-::gentoo mirror.
It was removed on 2026-09-07 because the ::gentoo ebuild had gained a zstd
USE flag this copy lacked. That is no longer true: the ebuild here is
byte-identical to ::gentoo's 8.10.1, zstd included, one release ahead at
8.10.2. The record carries the condition that closes it again -- drop it
once ::gentoo ships >=8.10.2.

Carried forward deliberately, not re-derived from a stale base:
mt7927-dkms -r1 (MT6639 BT firmware ungated from USE=btmtk, needed because
the kernel's own btmtk wants it) and nvidia-cuda-toolkit -r1 (GCC_MAX 15
-> 16, CLANG_MAX 21 -> 22, two targets/ globs fixed to ${narch} for
arm64/sbsa).

Verification, all local:
- pkgcheck on the 20 touched packages: no finding that is not also present
on the previous version.
- check-tlottie-pin.sh exits 0 (was 1); check-slot-naming-contract.sh and
check-autoupdate-damage.sh exit 0.
- gentoo-parity.sh: 0 ALIGN, 0 packages behind ::gentoo, [missing] 0,
[digest] 0, [orphans] 4 (the documented floor), and [cache] back from 14
to 0 -- the stale entries were the killed applier's leftovers.
- md5-cache _md5_ matches the ebuild md5sum for all 25 new ebuilds.

Nothing was merged or compiled: this host has no sudo and Portage reads
/var/db/repos/bentoo, not the checkout. The evidence above is fetch-and-
hash, static analysis and running the uutils payload -- not a build.

Pre-existing and left alone, outside this batch's scope:
sys-power/upower-1.91.4 installs a systemd unit with no OpenRC counterpart
(check-openrc-coverage.sh FAIL, from commit 43e3f0617), and
mail-client/thunderbird{,-l10n}-156.0 account for the sweep's remaining
2 UNDOCUMENTED and 1 REDUNDANT rows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 05f4ca215509767ab07d44cb897fb088fc75e07b
Author: lucascouts <lucascs@protonmail.com>
Date: Mon Sep 7 18:10:50 2026 -0300

mod(sci-ml/llama-swap): re-run the vendored-licence survey at v255, four bumps overdue

The ebuild told its next reader to redo this at every bump. v251, v252, v253 and
v255 all landed as autoupdate PV swaps, which do not, so the comment described
v250 while the tree shipped v255.

Redone the same way -- `go mod vendor`, every licence file classified: 131 files
across 125 modules (66 MIT, 35 BSD, 19 Apache-2.0, 7 BSD-2, 2 ISC), plus two
files that are not licences at all. modernc.org/memory/LICENSE-LOGO is a
Wikimedia URL for a logo, already known; tailscale.com/licenses/licenses.go is
Go source whose name merely begins with "licens". Both modules carry their real
LICENSE separately.

LICENSE IS UNCHANGED AND WAS ALREADY CORRECT -- 45 modules arrived across four
releases without adding one new licence, and no GPL, LGPL or MPL appeared. The
counts moved a lot though (BSD-2 15 -> 7, BSD 6 -> 35), so a survey that only
compared totals would have looked stable while the classification shifted. That
is why the comment now records the shift and not just the set.

Also, both found by scanning the package while it was open:

- BadDescription: 88 chars against a limit of 80.
- UnknownRestrict on RESTRICT="network-sandbox" is a pkgcheck limitation, not a
defect, and is now documented in place. The token is a Portage extension
rather than a PMS one -- doebuild.py grants the network when it appears in
PORTAGE_RESTRICT, for every phase but depend -- and ::gentoo has no ebuild
using it, so nothing in the tree contradicts the warning. Deleting the line to
silence pkgcheck would leave `ego mod download` without a network.

The distfile was verified against the Manifest before the survey ran: the
survey is only worth its conclusion if it read the bytes the ebuild ships.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit d203c5705a88fadaa2821f29e986a0d27179ec80
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 6 15:17:27 2026 -0300

add(metadata/{md5-cache/app-editors/cursor-3.19.13, md5-cache/dev-util/claude-code-2.1.263, md5-cache/dev-util/codex-desktop-bin-26.901.51231, md5-cache/dev-util/mesa_clc-26.3.0_pre20260906, md5-cache/media-libs/mesa-26.3.0_pre20260906, md5-cache/media-libs/vulkan-layers-1.4.362_p20260906, md5-cache/sci-ml/llama-swap-255, md5-cache/sys-apps/pnpm-12.3.4, md5-cache/www-client/librewolf-bin-155.0.1_p1}), mod(.autoupdate/packages.toml), up(app-editors/cursor-3.19.7 -> 3.19.13, dev-util/{claude-code-2.1.261 -> 2.1.263, codex-desktop-bin-26.901.41600 -> 26.901.51231, mesa_clc-26.3.0_pre20260905 -> 26.3.0_pre20260906}, media-libs/{mesa-26.3.0_pre20260905 -> 26.3.0_pre20260906, vulkan-layers-1.4.362_p20260905 -> 1.4.362_p20260906}, sci-ml/llama-swap-253 -> 255, sys-apps/pnpm-11.25.0 -> 12.3.4, www-client/librewolf-bin-155.0_p1 -> 155.0.1_p1)

commit 182b8dc3440db98aa6abd01ee3b0a43d6d9696bf
Author: lucascouts <lucascs@protonmail.com>
Date: Fri Sep 4 11:04:18 2026 -0300

add(metadata/{md5-cache/app-editors/zed-1.20.0_pre20260904, md5-cache/app-misc/claude-desktop-bin-1.46388.1, md5-cache/dev-util/codex-desktop-bin-26.901.31953, md5-cache/dev-util/vulkan-tools-1.4.362_p20260904, md5-cache/dev-util/vulkan-utility-libraries-1.4.362, md5-cache/media-gfx/pixieditor-bin-2.1.2.4, md5-cache/media-libs/vulkan-layers-1.4.362_p20260904, md5-cache/media-libs/vulkan-loader-1.4.362_p20260904, md5-cache/net-libs/bun-bin-1.4.1, md5-cache/net-misc/postman-bin-12.26.5, md5-cache/sci-ml/llama-swap-253}), mod(.autoupdate/packages.toml), up(app-editors/zed-1.20.0_pre20260903 -> 1.20.0_pre20260904, app-misc/claude-desktop-bin-1.44121.4 -> 1.46388.1, dev-util/{codex-desktop-bin-26.901.20858 -> 26.901.31953, vulkan-tools-1.4.361_p20260828 -> 1.4.362_p20260904, vulkan-utility-libraries-1.4.361 -> 1.4.362}, media-gfx/pixieditor-bin-2.1.2.3 -> 2.1.2.4, media-libs/{vulkan-layers-1.4.361_p20260903 -> 1.4.362_p20260904, vulkan-loader-1.4.361_p20260831 -> 1.4.362_p20260904}, net-libs/bun-bin-1.4.0 -> 1.4.1, net-misc/postman-bin-12.26.4 -> 12.26.5, sci-ml/llama-swap-252 -> 253)

commit a628ffe08db2ab07e73746f83b77900c8b87a705
Author: lucascouts <lucascs@protonmail.com>
Date: Mon Aug 31 22:57:38 2026 -0300

add(metadata/{md5-cache/app-admin/awscli2-2.36.36, md5-cache/app-editors/kiro-1.0.411, md5-cache/dev-python/uv-bin-0.12.8, md5-cache/dev-util/claude-code-2.1.252, md5-cache/dev-util/mesa_clc-26.3.0_pre20260901, md5-cache/media-libs/mesa-26.3.0_pre20260901, md5-cache/media-libs/vulkan-layers-1.4.361_p20260901, md5-cache/media-libs/vulkan-loader-1.4.361_p20260831, md5-cache/sci-ml/ik_llama-cpp-0_pre20260831, md5-cache/sci-ml/llama-swap-252, md5-cache/sys-apps/pnpm-11.25.0, md5-cache/sys-apps/uutils-coreutils-bin-0.11.0}), mod(.autoupdate/packages.toml), up(app-admin/awscli2-2.36.34 -> 2.36.36, app-editors/kiro-1.0.395 -> 1.0.411, dev-python/uv-bin-0.12.7 -> 0.12.8, dev-util/{claude-code-2.1.251 -> 2.1.252, mesa_clc-26.3.0_pre20260831 -> 26.3.0_pre20260901}, media-libs/{mesa-26.3.0_pre20260831 -> 26.3.0_pre20260901, vulkan-layers-1.4.361_p20260831 -> 1.4.361_p20260901, vulkan-loader-1.4.361_p20260829 -> 1.4.361_p20260831}, sci-ml/{ik_llama-cpp-0_pre20260828 -> 0_pre20260831, llama-swap-251 -> 252}, sys-apps/{pnpm-11.24.0 -> 11.25.0, uutils-coreutils-bin-0.10.0 -> 0.11.0})

commit db9a6ef3fee2e1698b775cb5892f15ac7abeb892
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 23 10:02:13 2026 -0300

add(metadata/{md5-cache/media-gfx/pixieditor-bin-2.1.2.2, md5-cache/sci-ml/llama-swap-251}), mod(.autoupdate/packages.toml), up(media-gfx/pixieditor-bin-2.1.2.1 -> 2.1.2.2, sci-ml/llama-swap-250-r1 -> 251)

commit 3dcadfed6620bb769ad4c3ce2cc7f2de6cb46d32
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 16 10:20:06 2026 -0300

fix(sci-ml/{sherpa-onnx-1.13.5-r1, llama-swap-250-r1}): strip build paths from binaries

Both packages baked the portage sandbox path into what they install: 113
occurrences in sherpa-onnx, 305 in llama-swap. In sherpa-onnx it was not merely
debug metadata -- upstream uses __FILE__ in its message macros, so
`sherpa-onnx --help` opened by printing
/var/tmp/portage/sci-ml/sherpa-onnx-1.13.5/work/.../parse-options.cc:415
straight at the user.

sherpa-onnx: append -ffile-prefix-map over $, not $ -- the vendored
dependencies configure under $_build/_deps and leak their own paths, so
remapping the source tree alone would have cleared about half of them.
-ffile-prefix-map rather than -fdebug-prefix-map because the latter leaves the
user-visible strings untouched, and those are the ones that matter here. The
target path follows Gentoo's split-debug convention so a debugger still
resolves sources under FEATURES=splitdebug.

llama-swap: -trimpath on go build.

Verified rather than assumed:
- the mechanism, on gcc 16.2.0: a test file's __FILE__ is rewritten and the
original path disappears from the compiled binary
- llama-swap rebuilt with the flag: 305 occurrences -> 0, and it still runs
- sherpa-onnx configure: -ffile-prefix-map lands in CMAKE_CXX_FLAGS and
CMAKE_C_FLAGS. Its full rebuild costs hours and is left to the gate, so
113 -> 0 is expected but NOT yet observed. Do not record it as proven
until the gate says so.

Revbumped because the installed binary changes; without it, anyone who already
merged these keeps the leaking build forever. Both gates must be re-run.

This is an improvement on ::gentoo's baseline rather than a rule being
enforced: docker ships 1327 such paths and podman 2759.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 06a03d69edb17f05008b3bdf89763c4ce7714be6
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 16 07:17:00 2026 -0300

fix(sci-ml/llama-swap-250): survey LICENSE instead of inheriting trivy's list

The LICENSE set was copied from dev-util/trivy without checking, on the
assumption that one Go package's vendored license set resembles another's. It
does not: the list carried MPL-2.0, and no module vendored here is under it.

Surveyed properly by running `go mod vendor` at v250 and classifying all 85
license files across the 80 vendored modules: 50 MIT, 15 BSD-2, 12 Apache-2.0,
6 BSD (3-clause), 1 ISC. The single unclassified file,
modernc.org/memory/LICENSE-LOGO, is a Wikimedia URL for a logo rather than a
code license; that module ships its real LICENSE separately.

This matters more than a tidy-up: Go links statically, so every one of these
licenses ships inside the installed binary, and a wrong set misstates what the
user is actually receiving. The procedure is recorded in the ebuild so the
survey is re-run at each bump rather than the list being carried forward.

All five licenses exist in ::gentoo/licenses. pkgcheck unchanged: the only
findings remain the amd64/x32 nodejs profile artifact and UnknownRestrict on
network-sandbox, neither of which this ebuild can fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

commit 494447b3a9e9c2b9a276dfcfc7f8346b92fa186d
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Aug 16 07:14:48 2026 -0300

add(sci-ml/{koboldcpp-1.118.1, sherpa-onnx-1.13.5, llama-swap-250}), mod(.autoupdate/packages.toml)

Story 003 Tasks 1, 3 and 4. NOT MERGED ANYWHERE: authoring and pkgcheck only.
No emerge has been run against any of the three, which is why this sits on a
branch instead of master. Story 002 recorded what skipping that gate costs --
six defects shipped, two of them invisible to pkgcheck until resolution was
attempted. The gate commands are in each task in .epic/stories/003-*/tasks.md.

koboldcpp -- adapted from istitov/stuff sci-misc/koboldcpp.
LLAMA_PORTABLE=1 keeps the Makefile off -march=native; cpu_flags_x86_* wired
to its three tiers via LLAMA_NOAVX1/LLAMA_NOAVX2. cuda and rocm each get
their own emake run: a single invocation defines ggml-cuda.o twice and the
HIP recipes silently override the CUDA ones, so USE="cuda rocm" would have
produced a "cuBLAS" library built by hipcc. GPU_TARGETS is set explicitly
because upstream's default appends $(shell amdgpu-arch), sizing the package
by the build host's GPU. Five prebuilt blobs beyond the documented glslc
pair are removed. pkgcheck: zero findings.

sherpa-onnx -- adapted from istitov/stuff, links sci-libs/onnxruntime rather
than bundling. 17 distfiles pre-staged so CMake FetchContent resolves
locally; the .zip pins stay .zip because the cmake modules match those
filenames literally and fall through to the network otherwise (verified in
the 1.13.5 sources; pkgcheck's TarballAvailable is a false positive here and
says so inline). Dropped QA_PREBUILT, which claimed to cover prebuilt
libraries that this ebuild in fact compiles. Fixed a doubled Prefix in the
site-packages relocation: python_get_sitedir already carries EPREFIX and was
being passed to dodir and concatenated with ED. No -bin, deliberately.

llama-swap -- SRC_URI is now solely the upstream tarball; the adopted ebuild
took even the main source from a third party's personal account. Adds
-tags embed_ui, without which USE=ui ran the whole npm build and shipped a
binary with no UI. The systemd unit could never have worked: it used %i and
User=%i but installed as llama-swap.service, and systemd only expands %i for
a name containing '@' -- now installed via systemd_newunit as
llama-swap@.service, with the EnvironmentFile it expects shipped as an
example. Keeps ~arm64, unlike the ggml family: this is pure Go with no cgo
and no arch-specific path, and upstream builds linux-arm64 itself.

Uses ego mod download under RESTRICT="network-sandbox", matching
dev-util/trivy and dev-util/act. This is a KNOWING divergence from story 003
R4.1, which asked for a sandbox-clean default: upstream ships no vendor/
directory, so the alternative commits the overlay to hosting a generated
tarball on distfiles.obentoo.org and to hold = true forever after. The
alternative implementation is preserved and documented; the choice between
them should be made once, for this package and sci-ml/localai together.

All three records download-validate against upstream and pass the bentoo
checker. KEYWORDS is ~amd64 for the two C++ packages, consistent with the
decision taken across the ggml family: an unvalidated keyword is worse than
none.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>