On Sep 11, 2014, at 4:37 AM, Paul Moore <p.f.moore@gmail.com> wrote:

On 11 September 2014 08:15, Donald Stufft <donald@stufft.io> wrote:
Perhaps the gains wouldn’t be worth the complexity though and it’d
just be easier to allow projects to have a build hint thing that gets
printed if the build fails.

Putting it in core pip sounds to me like a recipe for endless
system-specific hacks, TBH. Having a plugin system that allowed
external packages to add (and maintain!) system-specific checks might
work, but that's pretty complex.

Paul

Yes to be specific the only thing I would personally be OK with adding to the
pip core is something that added the appropiate hooks to let some other thing
provide the platform specific mechanisms. I'm still not sure it's worth the
effort over the simpler idea of just providing a build_hint metadata that
authors can use to say "Hey you need to isntall libxml2 for this thing" or
whatever.

While working on packaging Ruby and Rubygems for Fedora, we actually used a Rubygems hook to create a plugin that did precisely this, it's called gem-nice-install [1] (we did use it for some time, but I'm not sure whether it's still being actively developed and used)
We actually went a step further and implemented the *actual installation* in that plugin (sending list of packages to install to PackageKit via dbus) and it worked really nice.
I think allowing plugins is much better than providing build hint, because build hint may not give you information about *what* (different distros name some packages differently), but most importantly *how* the missing packages should be installed. And IMO upstreams shouldn't care about this (they shouldn't *need* to care), this is the work of distro packagers. So I vote for plugins.

Thanks,
Slavek

---
Donald Stufft

[1] https://github.com/voxik/gem-nice-install