[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: