Hi Helmut,

On 2026-03-19 07:30, Helmut Grohne wrote:
> 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?
In general I like this approach more over the others discussed. The
backends already provide libggml0-backend, so basically only
libggml0-backend-all would have to be added, and libggml0's dependency
updated.

There are still two downsides:

  * libggml0-backend-all would not be allowed to depend on
    libggml0-backend-cuda, which I expect to be the most popular
    backend. So this could be a bit counterintuitive (though xorg
    has a similar problem, and people seem to be able to deal with it).

  * I still need to test how cooperative the Vulkan backend is with
    the vendor-specific ones. These currently conflict because they
    require the same hardware resource, but from what Mathieu told me, I
    may have been overly cautious, as the backend selection mechanism
    seems to pick the vendor-specific one over Vulkan, rather than
    using both.

I'm preparing a 0.9.8 upload which will not address this problem yet,
but I'll look into it right after that.

Best,
Christian

Reply via email to