Putting packages up for adoption

Yaakov Selkowitz yselkowitz@cygwin.com
Thu Mar 26 07:19:27 GMT 2020


On Thu, 2020-03-26 at 06:54 +0100, Marco Atzeri via Cygwin-apps wrote:
> Am 20.03.2020 um 04:47 schrieb Yaakov Selkowitz:
> > To that end, in the best interest of the community, please consider my
> > packages up for adoption.  I don't expect that any one person will take
> > all of them; some are obsolete and due for removal anyway, some should
> > be picked up as soon as possible, and others might just end up
> > bitrotting if nobody is interested in them.  However, in whatever there
> > is interest (or need), hopefully what is there now will serve as a
> > strong foundation to on which to continue to build.
> 
> I am considering to take over python, and I am building 2.7.17 and 3.8.2
> to see how complicate it is.
> 
> One question on the cygport
> 
>          # see PEP 394
>          dosym python${slot}.exe /usr/bin/python
>          dosym python${slot}.exe /usr/bin/python2
> 
> do you see any problem to use alternatives for the same scope ?

The reason I avoided using alternatives for this was consistency. 
Since we don't build our packages in a clean (ch)root, if a maintainer
had such created such symlinks themselves, and they were to be picked
up during a build (very likely), or simply relied upon by scripts which
typically hardcode a generic version (very common), it would lead to a
package which would not run identically, or possibly not at all, on
other users' systems.  I would discourage using alternatives here.

Of course, in the meantime, the Python world has moved very strongly to
3.x, to the point that upstream has dropped it, Fedora has mostly
deprecated it, and /usr/bin/python is now a symlink to python3 provided
by a separate package.  However wrt Python 2, the only version we care
about at this point is 2.7, and while it's lifespan is limited, it is
still needed.

I would suggest the following:

* python2-2.7.z continues to provide all '2' symlinks.

* python38 be updated to 3.8.2, and 3.8 be designated the next default
'python3' version (with the '3' symlinks continued to be kept
separate), and adjust python-wheel.cygclass accordingly.

* Similarly, a separate package (in Fedora it's called 'python-
unversioned-command') provide unversioned symlinks, pointing to 2.7 for
now (for compatibility).

* Anything currently dependent on 'python' or 'python2' should either
be dropped if no longer needed, switched to 3 is possible, otherwise
rebuilt.

* Drop 2.7 from the "default" version set in python-wheel.cygclass, and
only build those modules that are actually needed by other things by
specifying "all".

* Once that's done, look at what's still depending on /usr/bin/python
('python-unversioned-command'), and based on that decide when that can
be changed to point to python3.

HTH,

--
Yaakov




More information about the Cygwin-apps mailing list