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
signature.asc
Description: Digital signature