[arch-dev-public] Discussion about optional dependencies

keenerd keenerd at gmail.com
Wed Jul 20 18:36:39 UTC 2016


On 7/19/16, Antonio Rojas <arojas at archlinux.org> wrote:
> In theory: +1
>
> But splitting VLC properly is a non-trivial task.

I've had a very similar problem for several years with the Gnuradio
package.  It can either be run headless (which is usually how it is
used in production) but it also has a graphical "flow language" IDE
that is used during design.  The IDE required around six optdeps.
Some were required for the IDE to even start, some parts were
optional-optional.  Some were kind of confusing, since it could use
either WX or QT.

And like VLC, there was no upstream provision for actually splitting
the headless and GUI parts.  Gnuradio is about the same size project
as VLC too.

(The GUI optdeps would add about 600MB to a headless system.  For
"appliance" installs that run from an SD card, this is not a trivial
waste.)

The cleanest workaround was to make a fake kitchen sink package.  It
has no files but depends on all the optdeps.  If I think the IDE needs
a new depend, I add it to the kitchen sink and users get it
automatically next update.  If you want to make a streamlined install,
you don't install the kitchen sink and just the optdeps you need.  If
the dangling packages are a bother for a nice clean dep tree, then it
is easy (and doesn't require rebuilding anything) to make a custom
fake pacakge to establish the dependency links.

Pros get full control over the system by ignoring the fake package.
Newbs get a zero maintainence just-works experience.  I don't have to
cut against upstream by trying to split the unsplitable.  Pretty much
everyone is happy and it has all but eliminated routine
bugs/complaints/confusion.

-Kyle


More information about the arch-dev-public mailing list