[4.0] aarch64 repo publishes noarch sub-packages from ExclusiveArch: x86_64 SRPMs (uninstallable: syslinux-nonlinux, rocm-rpm-macros-modules, python3-tensile-devel)
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- linux
調査の方向性
Start with the referenced specs/s/syslinux/syslinux.spec, specs/r/rocm-rpm-macros/rocm-rpm-macros.spec, and specs/p/python-tensile/python-tensile.spec; reproduce the issue with dnf repoclosure against the aarch64 repository. Then trace the external publishing pipeline's handling of noarch RPMs and SRPM ExclusiveArch/ExcludeArch metadata. Done means the affected packages are absent from ineligible architecture repositories and repoclosure passes.
索引モデルが issue の本文から書いたものです。
説明
Environment
- Azure Linux version and/or image name:
4.0preview repo —https://packages.microsoft.com/azurelinux/4/preview/base/aarch64 - Kernel version: n/a (repository metadata issue)
- Architecture: aarch64
- Affected package(s) and version(s), if applicable:
syslinux-nonlinux-6.04-0.34.azl4,syslinux-extlinux-nonlinux-6.04-0.34.azl4,rocm-rpm-macros-modules-6.4.2-4.azl4,python3-tensile-devel-6.4.4-4.azl4(allnoarch) - Custom image or package modifications, if applicable: none
Deployment / platform
- Other (please describe): published package repository, checked with
dnf repoclosure
Describe the bug
The aarch64 base repo publishes noarch sub-packages whose SRPM is ExclusiveArch: x86_64. Their dependencies only exist on x86_64, so they cannot be installed on aarch64.
The specs are correct — they mark these sub-packages BuildArch: noarch + ExclusiveArch: x86_64 (e.g. specs/s/syslinux/syslinux.spec, specs/r/rocm-rpm-macros/rocm-rpm-macros.spec, specs/p/python-tensile/python-tensile.spec), and the published SRPMs carry the ExclusiveArch tag. But rpm does not store ExclusiveArch in binary headers (the published noarch RPMs have it empty), so a compose step that copies noarch RPMs into every arch repo without consulting the SRPM ignores the restriction. Fedora's pungi uses the SRPM's ExclusiveArch/ExcludeArch for exactly this; the Azure Linux publishing pipeline appears not to.
Steps to reproduce
- Create
azl.repo:[azl-base] name=azl-base baseurl=https://packages.microsoft.com/azurelinux/4/preview/base/aarch64 gpgcheck=0 dnf repoclosure --setopt=reposdir=. --repo azl-base --forcearch aarch64 --arch aarch64 --arch noarch --newest
Expected behavior
noarch packages built from an ExclusiveArch: x86_64 SRPM are published only to the x86_64 repo, as in Fedora.
Actual behavior
package: python3-tensile-devel-6.4.4-4.azl4.noarch from azl-base
unresolved deps (2):
hipcc
rocminfo
package: rocm-rpm-macros-modules-6.4.2-4.azl4.noarch from azl-base
unresolved deps (1):
rocm-llvm-filesystem
package: syslinux-extlinux-nonlinux-6.04-0.34.azl4.noarch from azl-base
unresolved deps (1):
syslinux
package: syslinux-nonlinux-6.04-0.34.azl4.noarch from azl-base
unresolved deps (1):
syslinux
SRPM vs binary headers from the same repo:
$ rpm -qp --qf '[%{EXCLUSIVEARCH} ]' syslinux-6.04-0.34.azl4.src.rpm
i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 ...
$ rpm -qp --qf '[%{EXCLUSIVEARCH} ]' rocm-rpm-macros-6.4.2-4.azl4.src.rpm
x86_64
$ rpm -qp --qf '[%{EXCLUSIVEARCH} ]' python-tensile-6.4.4-4.azl4.src.rpm
x86_64
$ rpm -qp --qf '[%{EXCLUSIVEARCH} ]|%{ARCH}' syslinux-nonlinux-6.04-0.34.azl4.noarch.rpm
|noarch
Additional context
- The same scan on the aarch64 and x86_64 repos also reports
dpkg-perlandrpmlint(deps published only to sdk) — fixed separately in #18984 — andrubygem-rdoc-doc(inherited from Fedora 43). - The publishing pipeline is not in this repository, so I couldn't propose a fix as a PR. A generic fix is to drop, per arch, any
noarchRPM whose source SRPM has anExclusiveArchthat excludes that arch (or anExcludeArchthat includes it).
- 主要言語
- Python
- スター
- 5.4k
- フォーク
- 710
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 495
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/azurelinux のほかの issue
-
3.0 AKS
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
microsoft/azurelinux#19651 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
3.0
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
microsoft/azurelinux#19417 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
[4.0] Offline installer does not handle HTTP URLs in inst.ks kernel parameter対応中かも @sonarbhavarth が 108 日前に担当しました。 オープン4.0 enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
microsoft/azurelinux#17915 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[4.0] Live installer initrd missing NFS dracut module preventing NFS based PXE deployment対応中かも @IzanVil が 57 日前に担当しました。 オープン4.0 enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
microsoft/azurelinux#17913 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
3.0 documentation
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
microsoft/azurelinux#19419 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
microsoft/azurelinux の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
WLAN-Pi/wlanpi-profiler#341 ·
メンテナーはふだん 1 日以内に返信
-
Memory leak: the shared `validation_aborted_error` keeps every traceback it is raised through対応中かも @Fire162 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
graphql-python/graphql-core#287 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
roman-corgi/ctc-dip#160 ·
メンテナーはふだん 1 日以内に返信
-
type-bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
render_findings.py reads and writes in the host's default encoding, so findings.html breaks on a cp1252 Windows host対応中かも @Aaqibhafeezkhan が今日担当しました。 オープンbug good first issue mentored python size: XS up-for-grabs
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
dheerajjha/mcp-migrate#366 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信