Bug#546199: libsoprano4: soprano-daemon must depend on libsoprano
> The facts are that:
> 1) libsoprano4 needs soprano-daemon for the library to be useful at
> runtime; 2) soprano-daemon is not supposed to be installed or directly
> used by users. I guess you are annoyed that soprano-daemon is not removed
> when you remove libsoprano4. But that's what apt autoremove is for.
> > However there's the problem with the circular dependency. Since
> > soprano-daemon must depend on libsoprano4, you can only delete the
> > opposite dependecy, from libsoprano4 to soprano-daemon.
> > If libsoprano4 also depends on soprano-daemon, then there's no reason to
> > build two separate packages in the first place and you merge them into
> > one package.
> One of the reasons is debian policy which claims that support binaries for
> libraries should be shipped in the packages of their own.
Debian Policy, 3.5:
"For example, a dependency entry must be provided for any shared libraries
required by a dynamically-linked executable binary in a package."
% dpkg -S /usr/bin/sopranod
% ldd /usr/bin/sopranod | grep libsoprano
libsoprano.so.4 => /usr/lib/libsoprano.so.4
libsopranoserver.so.1 => /usr/lib/libsopranoserver.so.1
For me, the policy together with these two commands make it cristal clear that
there is no other posibility then: soprano-daemon MUST depend on libsoprano4.
It's irrelevant which package is useful or not or what any kind of user may
want or know. If I install a binary, then this binary must depend on all the
libraries it needs to run.
I did see, that many applications depend on libsoprano4 and that it's therefor
very unlikely, that anybody would ever install soprano-daemon without having
libsoprano4 already installed. - But this is irrelevant. I must be possible to
install any random package in Debian and have it work without relying on
packages that are not in the dependency tree of this single package.
Thomas Koch, http://www.koch.ro