[patch] cygport : update to python 3.9

Marco Atzeri marco.atzeri@gmail.com
Mon Jan 3 21:42:34 GMT 2022


On 03.01.2022 18:37, Jon Turney wrote:
> On 31/12/2021 10:00, Marco Atzeri wrote:
>> Attached patch moves "default" from 3.6 to 3.9

>> Other point:
>>
>> As 3.5 was never really deployed, I think we can remove it from the 
>> distribution.
>>
>> As we have a lot of python3-* is obsoleted py python36-*
>> what is the best way to updated to python39-* when available ?
> 
> Good question.  Note the comment before this hunk:
> 
>> @@ -128,7 +128,7 @@
>>                 # and MUST NOT be updated when defaults change
>>                 case ${ver} in
>>                 2.7)    declare -g 
>> python27_${PYTHON_WHEEL_NAME//[-\.]/_}_OBSOLETES="python-${PYTHON_WHEEL_NAME} 
>> python2-${PYTHON_WHEEL_NAME}" ;;
>> -               3.6)    declare -g 
>> python36_${PYTHON_WHEEL_NAME//[-\.]/_}_OBSOLETES="python3-${PYTHON_WHEEL_NAME}" 
>> ;;
>> +               3.9)    declare -g 
>> python39_${PYTHON_WHEEL_NAME//[-\.]/_}_OBSOLETES="python3-${PYTHON_WHEEL_NAME}" 
>> ;;
>>                 esac
>>                 declare -g 
>> python${ver/.}_${PYTHON_WHEEL_NAME//[-\.]/_}_CONTENTS="usr/lib/python${ver}/site-packages/ 
>> usr/share/doc/python${ver/.}-${PYTHON_WHEEL_NAME}"
>>         done
> 
> which in full reads:
> 
> "
>          # these were 2&3 at the time of the XY-version split,
>          # and MUST NOT be updated when defaults change
> "
> 
> So it seems to me that either that hunk is wrong, or that comment needs 
> updating 
> 
> I'm not sure what the intent is here.

I guess Yaakov was thinking of python3 as the older alias of python36, 
and **only** for that. As Python2 is the older alias of python27.
In that case make sense to leave as the comment says.

Probably I should write entries in the FAQ and documentation
to clarify this scope.

Following is a sort of RFC, so let me know your opinion.

Currently we have two type of Python packages

1) Pure python that exists at max as 2.7 3.6 3.7 3.8 3.9 plus 2 and 3

    in that case 2/2.7 3/3.6 are EOL;
    I stopped last year to update the 2.7 and I am thinking to do the
    same for 3.6 now.

    I do not see the need to continue to update 3.7, it never become
    default as we jumped from 3.6 to 3.8 and it is not more
    active upstream:
    https://www.python.org/dev/peps/pep-0537/#lifespan

    We can update the 3.8 and 3.9 while preparing/testing for 3.10

    source package will continue to use the "python-*" form, while
    "python3-*" should not be used.

2) python packages derived from other packages, where the
    nomenclature is not uniform:

    Where we have all variants
     libxml2          python27-libxml2
     libxml2          python36-libxml2
     libxml2          python37-libxml2
     libxml2          python38-libxml2

   Only one as I moved from supporting 2 to supporting only 3
     postgresql       postgresql-plpython

   To hybrid version
     openbabel        python2-openbabel   (not updated anymore)
     openbabel        python38-openbabel

   I think we should stop to call derived packages "python3-*".
   Or we use the full version as python38-openbabel or
   no version at all as python-gdal

In general

   We should also stop to pull as dependency "python3"
   or "python3-devel" as build dependency.
   Use the full version for dependencies.

   Plus use "python3_fix_shebang SCRIPT" for setting the proper
   interpreter and avoid the issue seen on mercurial and dblatex
   https://cygwin.com/pipermail/cygwin/2021-December/250282.html
   I used a cruder version but python3_fix_shebang should do the work


Regards
Marco









More information about the Cygwin-apps mailing list