Re: "Recommends" for hard dependency?
Hi
FYI: I'm not a Debian developer; just a mere user with an opinion...
On Tue, May 13, 2014 at 12:05:48PM +0530, Shriramana Sharma wrote:
> Hello people. This is about:
>
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747716
>
> Currently libqt5sql5-sqlite is given as a recommends and not a depends
> for qttools5-dev-tools
> (https://packages.debian.org/sid/qttools5-dev-tools) whereas
> /usr/lib/x86_64-linux-gnu/qt5/bin/assistant, one of the programs
> installed by the latter package, cannot even start up without
> libqt5sql5-sqlite being installed. I hence requested to change it to
> depends.
>
> The developers say "no, recommends is right in this case since only
> assistant requires it and the other tools in the package do not -- you
> should have recommends installed by default in your system in most
> cases -- if you don't, that's not a problem of the packaging".
Hm... I do not agree with that. The binaries in the package *should*
work (in their default configuration if at all possible) with only
hard dependencies present, without relying on "Recommends"...
> I pointed out that the specification at
> https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control
> says to use depends "if your program absolutely will not run ...
> unless a particular package is present."
Yes. And the verbiage for "Recommends" is (amongst other things):
Use this for packages that are not strictly necessary but are
typically used with your program
I have to admit that I can sort-of see the developer's point there.
I guess the developer(s) can have a (somewhat weak) argument here if
there is some combination of command line options or configuration
file settings (e.g. to use a different database driver?) which then
allows the program to run. Perhaps even one installed outside the
packaging system.
If this is the case, I'd hope to see a meta package
(e.g. qt5-sql-driver) which is implemented by the requisite packages -
and thus a dependency in the style of:
Package: qttools5-dev-tools
Depends: qt5-sql-driver | libqt5sql5-sqlite
(or perhaps "libqt5sql5-sqlite | qt5-sql-driver" - I'm doing this from
memory. There's a mention of meta packages dependencies somewhere in
the policy manual IIRC).
There may be such a meta package already. I haven't checked.
> IMO something that a program can't even start without should be a hard
> dependency and not just a recommends. A user may disable installation
> of recommends for whatever reason. This should not prevent the user
> from even starting up the program!
I'd agree with that sentiment :-)
Another way to resolve this could be to relegate the assistant into
it's own package (which would have hard dependencies on
libqt5sql5-sqlite and qtttools5-dev-toos), and let the main package
recommend the assistant package?
--
Karl E. Jorgensen
Reply to: