Bug 2237647

Summary: noarch packages that depend on python3-rpds-py can't be installed on i386
Product: [Fedora] Fedora Reporter: Mattias Ellert <mattias.ellert>
Component: rust-rpdsAssignee: Mattia Verga <mattia.verga>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: code, mattia.verga, mhroncok, python-packagers-sig, rust-sig
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: rust-rpds-1.0.1-1.fc40 rust-rpds-1.0.1-1.fc39 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-09-07 09:46:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2237784    

Description Mattias Ellert 2023-09-06 07:32:03 UTC
See e.g.

https://koschei.fedoraproject.org/package/python-ipyparallel?collection=f40

The koschei rebuild fails with (see root.log in the koji task):

DEBUG util.py:442:  Error: 
DEBUG util.py:442:   Problem: package python3-nbsphinx-0.9.3-1.fc40.noarch from build requires python3.12dist(nbformat), but none of the providers can be installed
DEBUG util.py:442:    - package python3-nbformat-5.9.1-2.fc39.noarch from build requires python3.12dist(jsonschema) >= 2.6, but none of the providers can be installed
DEBUG util.py:442:    - conflicting requests
DEBUG util.py:442:    - nothing provides python3.12dist(rpds-py) >= 0.7.1 needed by python3-jsonschema-4.19.0-1.fc40.noarch from build
DEBUG util.py:444:  (try to add '--skip-broken' to skip uninstallable packages)
DEBUG util.py:595:  Child return code was: 1


Reproducible: Always

Steps to Reproduce:
1. Try to install e.g. python3-jsonschema-4.19.0-1.fc40.noarch on i386

Actual Results:  
Missing dependency.

Expected Results:  
No missing dependency.

Comment 1 Ben Beasley 2023-09-06 11:25:27 UTC
From the perspective of python-rpds-py, this is not a bug. The package has been ExcludeArch: %{ix86} since it was introduced to the distribution[1], which is allowed and encouraged under[2]. The same applies to rust-rpds, but that spec file notes that “Also i686 is FTB because of tests failing due to precision errors”[3].

The problem here is that python-jsonschema adding a dependency on python-rpds-py means that python-jsonschema should now be

  BuildArch:      noarch
  ExcludeArch:    %{ix86}

as in [4], but this would affect a large number of arched and noarch packages.

If there were just a few packages indirectly affected, I would suggest adding the ExcludeArch working in from the leaves. In this case, it may be better to remove the ExcludeArch in python-rpds-py and rust-rpds, even if it means skipping the tests, just to avoid adding ExcludeArch to so many packages.

The situation would be *very* different if we only needed to deal with the arched direct and indirect dependencies of python-rpds-py; see [5]. Then propagating the ExcludeArch would be much more straightforward.

[1] https://src.fedoraproject.org/rpms/python-rpds-py/blob/rawhide/f/python-rpds-py.spec#_16

[2] https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval

[3] https://src.fedoraproject.org/rpms/rust-rpds/blob/rawhide/f/rust-rpds.spec#_20

[4] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_noarch_with_unported_dependencies

[5] https://pagure.io/koji/issue/3809

Comment 2 Mattia Verga 2023-09-06 11:34:37 UTC
yeah, rust-rpds not being built for %{ix86} has become a problem now that python-jsonschema pulls it in as dependency.
Given this output:
$ fedrq wrsrc -b rawhide python-jsonschema
ansible-bender-0.10.1-3.fc39.noarch
ansible-lint-1:6.18.0-1.fc40.src
auditwheel-5.4.0-1.fc40.src
awscli2-2.13.12-1.fc40.src
borgmatic-1.8.2-1.fc40.noarch
borgmatic-1.8.2-1.fc40.src
calamares-3.2.62-4.fc40.src
cffconvert-2.0.0-7.fc39.noarch
cffconvert-2.0.0-7.fc39.src
cfn-lint-0.79.8-1.fc40.noarch
cfn-lint-0.79.8-1.fc40.src
cloud-init-23.2.1-1.fc39.noarch
cloud-init-23.2.1-1.fc39.src
docker-compose-1.29.2-10.fc39.noarch
docker-compose-1.29.2-10.fc39.src
fedora-messaging-3.4.1-3.fc39.src
fmf-1.2.1-5.fc39.src
gns3-gui-2.2.42-1.fc40.noarch
gns3-server-2.2.42-1.fc40.noarch
koji-containerbuild-1.0.1-4.fc39.noarch
koji-containerbuild-builder-1.0.1-4.fc39.noarch
koji-osbuild-hub-11-4.fc39.noarch
matrix-synapse-1.91.1-1.fc40.src
matrix-synapse-1.91.1-1.fc40.x86_64
ocaml-atd-2.12.0-3.fc39.src
opae-2.2.0-1.1.fc39.5.src
openscap-report-0.2.4-3.fc39.src
poetry-1.5.1-2.fc40.src
pungi-4.5.0-1.fc40.src
python-ansible-compat-4.1.1-3.fc39.src
python-aws-sam-translator-1.74.0-1.fc40.src
python-botocore-1.31.39-1.fc40.src
python-bravado-core-5.17.1-3.fc39.src
python-designateclient-5.2.0-3.fc39.src
python-hdmf-3.9.0-1.fc40.src
python-ipywidgets-8.1.0-1.fc40.src
python-jsonschema-spec-0.1.6-6.fc39.src
python-jupyter-events-0.6.3-4.fc39.src
python-jupyter-kernel-test-0.6.0-1.fc40.src
python-jupyterlab-server-2.24.0-1.fc39.src
python-matrix-nio-0.21.2-2.fc40.src
python-molecule-4.0.4-5.fc38.src
python-nbformat-5.9.1-2.fc39.src
python-openapi-schema-validator-0.4.3-6.fc39.src
python-openapi-spec-validator-0.5.7-4.fc39.src
python-openstacksdk-1.0.1-4.fc39.src
python-os-client-config-2.1.0-9.fc39.src
python-poetry-core-1.6.1-2.fc40.src
python-robotframework-6.1.1-1.fc39.src
python-rsd-lib-1.2.0-14.fc40.src
python-sentry-sdk-1.29.2-1.fc40.src
python-sphinxcontrib-openapi-0.7.0-9.fc39.src
python-swagger-spec-validator-3.0.3-3.fc39.src
python-taskflow-5.1.0-2.fc40.src
python-trimesh-3.23.5-2.fc40.src
python-warlock-2.0.1-3.fc39.src
python3-ansible-compat-4.1.1-3.fc39.noarch
python3-ansible-lint-1:6.18.0-1.fc40.noarch
python3-anyconfig-0.13.0-6.fc39.noarch
python3-atomic-reactor-3.14.0-5.fc39.noarch
python3-aws-sam-translator-1.74.0-1.fc40.noarch
python3-bravado-core-5.17.1-3.fc39.noarch
python3-designateclient-5.2.0-3.fc39.noarch
python3-fedora-messaging-3.4.1-3.fc39.noarch
python3-flask-restx-1.1.0-3.fc39.noarch
python3-fmf-1.2.1-5.fc39.noarch
python3-hdmf-3.9.0-1.fc40.noarch
python3-ironicclient-5.1.0-3.fc39.noarch
python3-jsonschema+format-4.17.3-5.fc39.noarch
python3-jsonschema+format-nongpl-4.17.3-5.fc39.noarch
python3-jsonschema-spec-0.1.6-6.fc39.noarch
python3-jupyter-events-0.6.3-4.fc39.noarch
python3-jupyter-kernel-test-0.6.0-1.fc40.noarch
python3-jupyterlab-server-2.24.0-1.fc39.noarch
python3-matrix-nio-0.21.2-2.fc40.noarch
python3-nbformat-5.9.1-2.fc39.noarch
python3-openapi-schema-validator-0.4.3-6.fc39.noarch
python3-openapi-spec-validator-0.5.7-4.fc39.noarch
python3-osbs-client-1.15.0-3.fc39.noarch
python3-osbuild-94-1.fc40.noarch
python3-poetry-1.5.1-2.fc40.noarch
python3-poetry-core-1.6.1-2.fc40.noarch
python3-pungi-4.5.0-1.fc40.noarch
python3-rsd-lib-1.2.0-14.fc40.noarch
python3-rsd-lib-tests-1.2.0-14.fc40.noarch
python3-sphinxcontrib-openapi-0.7.0-9.fc39.noarch
python3-sphobjinv-2.0.1-12.fc39.noarch
python3-spyder-5.3.1-8.fc39.noarch
python3-swagger-spec-validator-3.0.3-3.fc39.noarch
python3-taskflow-5.1.0-2.fc40.noarch
python3-trimesh+all-3.23.5-2.fc40.x86_64
python3-trimesh+easy-3.23.5-2.fc40.x86_64
python3-warlock-2.0.1-3.fc39.noarch
python3-webthing-0.15.0-10.fc39.noarch
python3-zaqarclient-2.5.1-3.fc39.noarch
snakemake-7.32.3-1.fc40.noarch
snakemake-7.32.3-1.fc40.src

I'll look into enabling build for %{ix86}, just let me check if it is really only a rounding problem in tests or it is really broken on i686.

Comment 3 Fedora Update System 2023-09-07 07:20:14 UTC
FEDORA-2023-c13bb1b22a has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-c13bb1b22a

Comment 4 Fedora Update System 2023-09-07 09:40:10 UTC
FEDORA-2023-1bca093e76 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-1bca093e76

Comment 5 Fedora Update System 2023-09-07 09:46:36 UTC
FEDORA-2023-c13bb1b22a has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 6 Fedora Update System 2023-09-08 01:35:13 UTC
FEDORA-2023-1bca093e76 has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-1bca093e76`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-1bca093e76

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2023-09-15 18:50:56 UTC
FEDORA-2023-1bca093e76 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.