I agree with you that the best approach would be to fix ports to 
work with the newer version. 

________________________________________
发件人: Stuart Henderson <s...@spacehopper.org>
发送时间: 2024年4月16日 20:22
收件人: wen heping
抄送: ports@openbsd.org
主题: Re: shall we create new port lang/cython3 ?

On 2024/04/16 11:10, wen heping wrote:
> Hi, ports@:
>
>      Here is a patch to create new lang/cython3.
>      cython3 is not campatible with cython, many ports depends on cython
> in OpenBSD portstree could not build with cython3, but the update of some
> other port, such as astro/py-astropy, require cython3.
>      Shall we create lang/cython3 ?
>
>
> Regards,
> wen

@conflict ${MODPY_PY_PREFIX}cython-<0.29.21p1
@conflict py-cython-*
@pkgpath lang/cython

Copying these directly from the existing port is incorrect

bin/cygdb
bin/cython
bin/cythonize
lib/python${MODPY_VERSION}/site-packages/Cython/
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/COPYING.txt
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/LICENSE.txt
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/METADATA
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/RECORD
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/WHEEL
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/entry_points.txt
lib/python${MODPY_VERSION}/site-packages/Cython-${MODPY_EGG_VERSION}.dist-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/Cython/Build/
lib/python${MODPY_VERSION}/site-packages/Cython/Build/BuildExecutable.py
lib/python${MODPY_VERSION}/site-packages/Cython/Build/Cythonize.py
lib/python${MODPY_VERSION}/site-packages/Cython/Build/Dependencies.py
...

The files cannot conflict with lang/cython, it will break bulk builds of
packages. To allow both versions in parallel, binaries would need to be
renamed or moved to alternative directory, and the Python module would
need to be renamed, and ports using it would need patches to use the new
name. This is not sustainable. (If we really did need to do that, it
would be better to rename old-cython so that we don't need to patch
new things, and it eventually disappears).

The best approach would be to fix ports to work with the newer version
(or, if there are ports which are no longer useful, remove them).
This is likely to be simpler than other approaches.

There are ~40 ports using cython in the first place, and some are
already held back at old versions due to updates requiring cython >=3.
Presumably some will build with either version. So we need to know which
ports are actually broken.

Reply via email to