Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[4.0] aarch64 repo publishes noarch sub-packages from ExclusiveArch: x86_64 SRPMs (uninstallable: syslinux-nonlinux, rocm-rpm-macros-modules, python3-tensile-devel)

オープン
#18,985 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@UditDewan がすでに取り組んでいます。

2026年10月13日 から。

  • #19278 @UditDewan による — オープン

評価

難易度
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 の本文から書いたものです。

説明

4.0

Environment

  • Azure Linux version and/or image name: 4.0 preview 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 (all noarch)
  • 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

  1. Create azl.repo:
    [azl-base]
    name=azl-base
    baseurl=https://packages.microsoft.com/azurelinux/4/preview/base/aarch64
    gpgcheck=0
    
  2. 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-perl and rpmlint (deps published only to sdk) — fixed separately in #18984 — and rubygem-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 noarch RPM whose source SRPM has an ExclusiveArch that excludes that arch (or an ExcludeArch that includes it).
主要言語
Python
スター
5.4k
フォーク
710
平均マージ
1日 8時間
マージ済み PR(30日)
495

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/azurelinux のほかの issue

microsoft/azurelinux の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。