microsoft / microsoft/azure-linux-dev-tools

[Bug]: Macro overlay source files can collide with real sources

Open
#235 0 comments 0 reactions 1 assignee View on GitHub

@liunan-ms is already working on this.

Since Aug 20, 2026.

bug GA blocker
Dominant language
Go
Stars
18
Forks
27
Avg merge
4d 33m
Merged PRs (30d)
24

Description

Bug Description
The macro overlay hardcodes its source to 9999 (synthesizeMacroLoadOverlays()), which can collide (see texlive.spec](https://raw.githubusercontent.com/microsoft/azurelinux/refs/heads/4.0/specs/t/texlive/texlive.spec)

Reproduction Steps

  1. Move textlive to its own *.comp.toml file
  2. Add
    [components.texlive]
    [components.texlive.build]
    defines = { azl_poc_macro = "1" }
    
  3. Run azldev comp render -p texlive

Expected behavior
Should add the macro file in a smart way that doesn't cause errors.

Actual behavior

17:09:41 INF Finishing rendered output count=1
17:09:41 ERR Failed to finish rendering component component=texlive error="mock processing failed for `texlive`:\nspectool failed: error: source 9999 defined multiple times"
17:09:41 ERR Some components failed to render errorCount=1 cancelledCount=0

Logs / Output

azldev comp render -p texlive 2>&1 | tee base/build/work/scratch/texlive-render.log | tail -40
17:08:02 INF Mock processor available mockConfig=/home/damcilva/repos/temp/azurelinux/distro/mock/azl4/stage2/azurelinux-4.0-x86_64.cfg
17:08:02 INF Preparing component sources count=1
17:08:02 INF   Preparing component sources component=texlive
17:08:02 INF Getting component from git repo component=texlive upstreamComponent=texlive branch=f43 upstreamCommit=f5f486ecd487e3c34a8e747c0fc561fa1eaff9fe snapshot=2026-02-24T00:00:00-08:00
17:08:02 INF     Cloning git repo repoURL=https://src.fedoraproject.org/rpms/texlive.git
17:09:23 INF Using explicit upstream commit hash commitHash=f5f486ecd487e3c34a8e747c0fc561fa1eaff9fe
17:09:23 INF     Checking out git commit commitHash=f5f486ecd487e3c34a8e747c0fc561fa1eaff9fe
17:09:23 INF     Applying overlays component=texlive
17:09:24 INF Current fingerprint differs from HEAD lock file; adding dirty entry lockFile=locks/texlive.lock
17:09:25 INF Bumping static release component=texlive oldRelease=80%{?dist} newRelease=82%{?dist} commitCount=2
17:09:25 INF Creating synthetic commit commit=1 total=2 projectHash=5d461a2449294d42c9b47ed04ad3d5935d8ce244 upstreamCommit=f5f486ecd487e3c34a8e747c0fc561fa1eaff9fe isLast=false
17:09:25 INF Creating synthetic commit commit=2 total=2 projectHash=dirty upstreamCommit=f5f486ecd487e3c34a8e747c0fc561fa1eaff9fe isLast=true
17:09:25 INF Interleaved synthetic history complete syntheticCommits=2 totalCommits=3
17:09:25 INF Initializing mock chroot for rendering
17:09:37 INF Mock chroot ready for rendering
17:09:37 INF Batch processing components in mock chroot count=1
17:09:37 INF Processing specs in mock chroot count=1
17:09:41 INF Finishing rendered output count=1
17:09:41 ERR Failed to finish rendering component component=texlive error="mock processing failed for `texlive`:\nspectool failed: error: source 9999 defined multiple times"
17:09:41 ERR Some components failed to render errorCount=1 cancelledCount=0
╭───────────┬──────────────────────────────────────────────────────┬────────┬────────────────────────────────────────────────────────────┬─────────╮
│ COMPONENT │ OUTPUT                                               │ STATUS │ ERROR                                                      │ CHANGED │
├───────────┼──────────────────────────────────────────────────────┼────────┼────────────────────────────────────────────────────────────┼─────────┤
│ texlive   │ /home/damcilva/repos/temp/azurelinux/specs/t/texlive │ error  │ mock processing failed for `texlive`:                      │ false   │
│           │                                                      │        │ spectool failed: error: source 9999 defined multiple times │         │
╰───────────┴──────────────────────────────────────────────────────┴────────┴────────────────────────────────────────────────────────────┴─────────╯

azldev version

╭────────────┬──────────────────────────────────────╮
│ version    │ v0.1.1-0.20260520162735-44f81cce609a │
│ gitCommit  │ N/A                                  │
│ goVersion  │ go1.26.3                             │
│ platform   │ linux/amd64                          │
│ compiler   │ gc                                   │
│ buildDate  │ N/A                                  │
│ commitDate │ N/A                                  │
│ dirtyBuild │ false                                │
╰────────────┴──────────────────────────────────────╯

Environment

  • azl3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.