Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Packages that `replace` another circumvent dependency checks on installation

未关闭
#569 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
c
领域
cli, tooling

调研方向

Reproduce the transaction using the listed sagemath and Cython package versions, then inspect the dependency checks performed during installation and replacement handling. Done means installing python3-Cython is rejected when it would remove the version required by sagemath, while the transaction remains consistent and xbps-pkgdb -a reports no unsatisfied dependency.

由索引模型根据 Issue 内容生成。

描述

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:

  1. [Optional] Install sagemath<=10.1_1, which depends on python3-Cython. Both packages are installed.
  2. 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.
  3. 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.
    
  4. Install python3-Cython>=3.0.2_1. This will succeed, removing python3-Cython0.29.
  5. Running xbps-pkgdb -a reports an unsatisfied dependency for sagemath:
    ERROR: sagemath: dependency not satisfied: python3-Cython0.29>=0
    
  6. 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.

主要语言
C
星标
1.2k
派生
152
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

void-linux/xbps 的其他 Issue

查看 void-linux/xbps 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。