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

Re: Debian Policy questions



On 07/11/11 at 07:19am, Sven Joachim wrote:
> On 2011-07-11 04:43 +0200, William Hopkins wrote:
> 
> > If you're curious, the issue I've been having is regarding package
> > dependencies. Some packages seem to have extraneous dependencies outside of
> > what is strictly required (package build tools will tell you what is strictly
> > required). Packages being depended on are e.g. dbus, gconf, etc.
> 
> Could you give some examples?

Absolutely! Easy to find examples with apt-cache rdepends dbus. I would posit
that nearly all packages that depend on DBUS should actually depend on
libdbus{,-c++,-java,-ruby}. Do these packages (such as rhythmbox) fail to work
if DBUS isn't running? No.. the calls are never calls required for running,
only for nifty extra features like telling your systray what song you're
listening to.

Sometimes, though, they are required for installing. Since insserv, I get
'service dbus has to be enabled to start service x' and occasionally a failure
in a postinst/preinst script calling dbus-uuidgen or something ridiculous that
shouldn't be done in the installer.

Same goes for gconf.. I don't know any packages that use it alone, most use a
config file with the option to store extra/alternate values in gconf. (e.g. pidgin)
 
> > Even with equivs I can't always manage to install packages without getting the
> > dependency because of things like preinst/postinst scripts.
> 
> If the maintainer scripts actually use the "extraneous" dependencies,
> then maybe they are not really as extraneous as you think.

Almost all dependencies should be automatically detected by the package build
process, which involves ldd inside a minimal chroot environment. Anything extra
the maintainer adds as depends and not suggests|recommends should be absolutely
required for the functioning of the program, and not just some specific
feature. The program should fail to do it's job, or crash without it for it to
be considered a 'dependency' imo. This is where I was looking for policy input.

In a binary distro like Debian, we have a lot of conveniences at the expense of
the time of the maintainers. I appreciate it. And I appreciate decisions have
to be made at the package maintainer level that would be made at the user level
in a distro like Gentoo (i.e. USE flags). So right now they've said 'it's OK
for a package to be built with DBUS|GConf|etc features'. All I ask is that they
only require the libraries, and not the system daemons. Then the feature will
not work, but the package usually continues to function.

To date I've accomplished this with pinning, equivs, and occassionally with
rebuilding a package from source with different dependencies or configure
flags. It shouldn't be that difficult. And it should never be impossible.

Please forgive my wall of text (:

-- 
Liam

Attachment: signature.asc
Description: Digital signature


Reply to: