Subject: Re: depend on python
To: Jeremy C. Reed <reed@reedmedia.net>
From: Greg Troxel <gdt@ir.bbn.com>
List: pkgsrc-users
Date: 08/25/2006 08:01:22
--=-=-=
Content-Transfer-Encoding: quoted-printable


"Jeremy C. Reed" <reed@reedmedia.net> writes:

I am trying to figure this out for GNU Radio right now.


> Is there a way to make a package depend on python without any versioning?

So this would depend on /usr/pkg/bin/python, and run scripts, but not
invoke any modules that need shlibs?  It seemst that's the only case
where this works.

> As far as I can tell our python packages do not install bin/python.

That's how it is for me.

> I do know we have ALTERNATIVES -- can we depend on that?
>
> I am hoping to do this for the lyx packages. The binary and many scripts=
=20
> have hard-coded "python" usage. I have been told by lyx developers that=20
> several versions of python should work fine.
>
> As it is now, lyx from lyx-qt packages has several errors due to missing=
=20
> "python" but it still works but is incomplete.

I think it might make sense to have a "python-select" package that
just has a symlink and points to /usr/pkg/bin/python{$PYVERSION}.

The problem with this is that scripts that find this at configure time
will use it, and if they also need pyXY-foo which has a shlib in
/usr/pkg/lib/pythonX.Y/site-packges, then they'll break if someone
updates 'python-select' without rebuilding the depending package to
pick up the new pyXZ-foo packages.

As I see it, there are only two safe ways to go:

1) only allow one python version and call it /usr/pkg/bin/python, or
   have a symlink.  When updated, everything has to be rebuilt.

2) disallow /usr/pkg/bin/python.  Allow multiple versions.    Bind to
   the actual version at pkg build time (patch scripts, binaries,
   etc.)

So perhaps if there is a python-select package, and things depend on
that, then if one updates that, it should trigger a rebuild.   The
point is that the dependency on the selection of which python has to
be a first-class dependency so that if it is updated a rebuild is in
order.  Unlike doing a 'make replace' on most packages, which is
usually ok if the ABI hasn't changed "too much", changing
python-select will be unsafe for any package which does anything more
than run pure python scripts.

=2D-=20
    Greg Troxel <gdt@ir.bbn.com>

--=-=-=
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (NetBSD)

iD8DBQFE7uaV+vesoDJhHiURAjWFAKCHD2WuJ2cMrF2cLsVF/jkwWW/ZvQCcDG5V
kbMrZWHwVtx+87LAEeUd4aE=
=kqG1
-----END PGP SIGNATURE-----
--=-=-=--