Am 09.10.2013 20:25, schrieb Jacob Carlborg:

On 2013-10-09 08:00, Sönke Ludwig wrote:

There have been ideas in that direction in
#52 and
#34 and also in
some earlier discussions (need to search for those). However, there
have been strong objections from package maintainers regarding the
feasibility or hygiene of this approach in general.

I agree it's a very ambitious side project. However maybe there is
some middle ground solution where at least a customized error message
can be output in case of a missing library. In our case, external
libraries of this kind ideally should only occur for Deimos(-like)
modules, so it's not unrealistic that there will be good broad support
for this solution, even if it requires manual work.

I'm wondering how difficulty it would be to support external
dependencies. Something like:

{
"external" : {

 "curl": "1.2.3"

}
}

The tool would then just run "apt-get install curl", "port install curl"
or whatever the native package manager is for the given platform.

The problems I see with this is that Windows doesn't really have a
package manager. Mac OS X doesn't have one installed by default but I
think it's ok rely on Homebrew and MacPorts.

The other problem is package names. Different package manager might use
slightly different names for the same packages. Also MacPorts support
variants where other package managers might require a separate package.

This and things like different alternatives for the same package in some
package systems but only one in others, certain versions only available
on some systems, conflicts with other installed packages, etc.

So this would require at least a comprehensive database to intelligently
map to each system and some careful thought how to handle each source of
errors. While this may work reasonably well in the end for common
packages, there is indeed a high chance for error is such a system,
and the detached nature of the central database vs. the package
description also slightly obfuscates the source. It will also need some
community based, moderated edit scheme to work.

On the other hand it has the advantage of taking the burden of platform
specific configuration off of the developers shoulders and puts it on
the community, thus making the process more agile and less tied to
releases of a package.