Please consider changing the -backends from Suggests to Recommends. The original reporter also has other ideas to solve the issue. https://bugs.launchpad.net/ubuntu/+source/llama.cpp/+bug/2141980 --------------------- Original Bug Report --------------------------- Right now installing llama.cpp from resolute-proposed (8064+dfsg-1) will not pull in any libggml backends. This is because all backends are Suggests for libggml0. # apt depends libggml0 libggml0 Depends: libc6 (>= 2.38) Depends: libgcc-s1 (>= 3.3.1) Depends: libgomp1 (>= 4.9) Depends: libstdc++6 (>= 11) Breaks: libggml Breaks: <libggml0-backend-cpu> Suggests: libggml0-backend-blas Suggests: libggml0-backend-cuda Suggests: libggml0-backend-hip Suggests: libggml0-backend-vulkan Replaces: libggml Replaces: <libggml0-backend-cpu> This means that someone who runs `apt install llama.cpp` will use CPU by default and might not even know there is another backend that supports their hardware for libggml0. There's a few ways to solve this I can think of: 1) llama.cpp metapackages (IE llama.cpp-rocm, llama.cpp-cuda, etc) 2) Metapackages do it (IE apt install rocm has a recommends for libggml0-backend-hip) 3) Add Recommends for all backends to llama.cpp. I personally like #3 the most, this will mean when a user runs 'apt install llama.cpp' they will have maximum compatibility across their hardware available. If a user doesn't want all backends, they can remove them because they're recommends. --------------------------------------------------------------------- Thanks
Hi,
I am not a ggml maintainer.
Your use case sounds reasonable to me. Just upgrading to Recommends
significantly increases the installation size (which may not matter when
you deal with LLMs).
Let me add another one inspired from xorg. How about adding a binary
package libggml0-backend-all that depends on all other backends. Then
have every backend provide a virtual libggml0-backend. Then have
libggml0 Recommends: libggml0-backend-all | libggml0-backend.
The effect of this will change will depend on the situation.
1. Recommends enabled:
A. No backend installed: Will install all backends
B. Some backend installed: Will not install other backends
2. Recommends disabled: Will not install any backend
In particular, this allows doing like
apt install libggml0-backend-cuda llama.cpp
and it'll install just that one backend with or without recommends, but
if you were not careful in specifying what backend you wanted, it'd just
install them all unless disabling recommends.
What do you think?
Helmut