[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
- 派生
- 714
- 平均合并
- 1 天 11 小时
- 30 天内合并 PR
- 618
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/azurelinux 的其他 Issue
-
4.0 bug
难度 2/5 1-3 小时 新手友好度 63/100
microsoft/azurelinux#19834 · 1 条评论 ·
维护者通常 1 天内回复
-
3.0 AKS
难度 2/5 1-3 小时 新手友好度 72/100
microsoft/azurelinux#19651 · 1 条评论 · 1 个 reaction ·
维护者通常 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 于 118 天前认领。 未关闭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 于 66 天前认领。 未关闭4.0 enhancement
难度 2/5 1-3 小时 新手友好度 70/100
microsoft/azurelinux#17913 · 1 条评论 ·
维护者通常 1 天内回复
查看 microsoft/azurelinux 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
pytest-dev/pyfakefs#1367 · 1 条评论 ·
维护者通常 2 天内回复
-
IFEvalG exclude_word_harder misses the keyword next to punctuation, at the start or end of the text, and in other letter case可能已有人在做 @damienen 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
allenai/open-instruct#2151 ·
维护者通常 1 天内回复
-
feat(plan): support convertorLabels and convertorAffinity in Plan resource可能已有人在做 @AmenB 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
RedHatQE/openshift-python-wrapper#2849 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 25 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
libnativeapi/nativeapi#21 ·