You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The package python3-Cython0.29 was created to provide a pre-3.0 version of Cython because half the dependants of python3-Cython will not build with 3.0 or later. The packages python3-Cython0.29 and python3-Cython conflict. This is usually not an issue because Cython is generally only a build-time dependency, so a package can hostmakedepend on one or the other as needed.
However, both urh and sagemath have run-time dependencies on python3-Cython0.29 (now; before the update to 3.0, they depended on python3-Cython). To smooth update paths for users, python3-Cython0.29 was marked replaces="python3-Cython>=0" while python3-Cython was marked replaces="python3-Cython0.29>=0" so that installing one will remove the other. Neither package provides the other because Cython 3 introduces breaking changes.
Installing or updating sagemath will cause python3-Cython0.29 to be installed as a dependency. Subsequently installing python3-Cython will succeed (removing python3-Cython0.29 in the process), although sagemath will now be broken because it is missing python3-Cython0.29
Steps to reproduce:
[Optional] Install sagemath<=10.1_1, which depends on python3-Cython. Both packages are installed.
Install (or update to) sagemath>=10.1_2, which depends on python3-Cython0.29. Both packages will be installed, removing an existing python3-Cython package if previously installed.
Try removing python3-Cython0.29:
python3-Cython0.29-0.29.36_2 in transaction breaks installed pkg `sagemath-10.1_2'
Transaction aborted due to unresolved dependencies.
Install python3-Cython>=3.0.2_1. This will succeed, removing python3-Cython0.29.
Running xbps-pkgdb -a reports an unsatisfied dependency for sagemath:
ERROR: sagemath: dependency not satisfied: python3-Cython0.29>=0
Updating (or force-reinstalling) sagemath will install python3-Cython0.29 and remove python3-Cython.
Expected behavior:
Step 4 should detect the unresolved dependency in the transaction, preventing the installation of python3-Cython.
The text was updated successfully, but these errors were encountered:
It seems that the revdep check explicitly ignores removed packages that are being replaced. This seems like the wrong check. If a package is being removed but replaced by another, the replacement should probably be required to provide a virtual matching the removed dependency before the removal is ignored. I don't yet have enough of this logic in my head to consider this more sophisticated test and any possible complications resulting from it.
The package
python3-Cython0.29
was created to provide a pre-3.0 version of Cython because half the dependants ofpython3-Cython
will not build with 3.0 or later. The packagespython3-Cython0.29
andpython3-Cython
conflict. This is usually not an issue because Cython is generally only a build-time dependency, so a package canhostmakedepend
on one or the other as needed.However, both
urh
andsagemath
have run-time dependencies onpython3-Cython0.29
(now; before the update to 3.0, they depended onpython3-Cython
). To smooth update paths for users,python3-Cython0.29
was markedreplaces="python3-Cython>=0"
whilepython3-Cython
was markedreplaces="python3-Cython0.29>=0"
so that installing one will remove the other. Neither packageprovides
the other because Cython 3 introduces breaking changes.Installing or updating
sagemath
will causepython3-Cython0.29
to be installed as a dependency. Subsequently installingpython3-Cython
will succeed (removingpython3-Cython0.29
in the process), althoughsagemath
will now be broken because it is missingpython3-Cython0.29
Steps to reproduce:
sagemath<=10.1_1
, which depends onpython3-Cython
. Both packages are installed.sagemath>=10.1_2
, which depends onpython3-Cython0.29
. Both packages will be installed, removing an existingpython3-Cython
package if previously installed.python3-Cython0.29
:python3-Cython>=3.0.2_1
. This will succeed, removingpython3-Cython0.29
.xbps-pkgdb -a
reports an unsatisfied dependency forsagemath
:sagemath
will installpython3-Cython0.29
and removepython3-Cython
.Expected behavior:
Step 4 should detect the unresolved dependency in the transaction, preventing the installation of
python3-Cython
.The text was updated successfully, but these errors were encountered: