tech-pkg archive

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

Re: state of the art in python/alternatives



On Tue, Apr 6, 2010 at 6:58 PM, Greg Troxel <gdt%ir.bbn.com@localhost> wrote:
>
> I realize why it's wrong of people to expect 'python' to exist, because
> it's not stable (interface wise) and programs that use python really
> have to bind to a particular version at build time.  But there are lots
> of things out there that either don't understand or don't believe this.
>
> By default, pkgsrc seems not to create /usr/pkg/bin/python, but I
> understand there is some ALTERNATIVES thing that can be made to do it.
> If that is done, what is the plan for managing dependencies so that as
> python changes from 2.5 to 2.6 that packages properly appear stale (and
> unsafe_depends).

ALTERNATIVES is something targeted to the *user*, not for the packages
to rely on.  I.e. no package should rely on a specific alternative
being selected (because as you say in this case, choosing one version
or another is not a user preference: it is a preference of the
package, which needs a specific interface).  The packages themselves
should explicitly call a particular pythonX.Y executable.

> As an another way around this, what about having a python-bare package
> that is at version 2.6 that depends on python2.6 explicitly.  Then
> people that need to accomodate programs that demand "#!/usr/bin/env
> python" works can install it.  (Of course, we should still fix such
> python-using programs in pkgsrc, and send the fixes upstream.)

That's what ALTERNATIVES are for.  In this case, we are assuming you
are running a Python script that is not packaged, right?  Then, this
script may pick up the /usr/pkg/bin/python symlink, but that's not
something a package should do.  (Once this software is packaged, then
the calls to Python get fixed to point to the correct version, and
that information is hardcoded in the built package.)

-- 
Julio Merino


Home | Main Index | Thread Index | Old Index