#1128255 Backends Not Installed By Default

Package:
libggml0
Source:
libggml0
Description:
Tensor library for machine learning - libraries
Submitter:
Dan Letzeisen
Date:
2026-03-19 06:33:01 UTC
Severity:
normal
#1128255#5
Date:
2026-02-17 03:40:52 UTC
From:
To:
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

#1128255#10
Date:
2026-03-19 06:30:38 UTC
From:
To:
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