Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#18,985 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
linux

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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).
Lingua principale
Python
Stelle
5.3k
Fork
708
Merge medio
3g 11h
PR unite (30g)
208

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/azurelinux

Tutte le issue di microsoft/azurelinux

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.