Skip to content

Read the IGC version compute-runtime pins, instead of taking the newest - #43

Merged
MickLesk merged 1 commit into
mainfrom
fix/igc-pin
Sep 16, 2026
Merged

MickLesk merged 1 commit into
mainfrom
fix/igc-pin

Conversation

@MickLesk

@MickLesk MickLesk commented Sep 16, 2026

Copy link
Copy Markdown
Member

✍️ Description

intel-opencl-icd depends on one exact intel-igc-opencl-2, and _resolve_igc_tag was meant to read that version from compute-runtime's release notes. It never did: TOOLS_GH_REL_JSON holds a list when the release was fetched as latest, jq cannot index an array with .body, and the error was swallowed — so the tag silently stayed latest.

That matched by luck until IGC 2.41.5 appeared on 10 September while 26.31.39395.13 still pins 2.40.13:

intel-opencl-icd : Depends: intel-igc-opencl-2 (< 2.40.13+~) but 2.41.5 is to be installed

Unresolved now means empty, and the caller skips OpenCL with a warning rather than installing a pair dpkg will reject. VA-API is unaffected.

🔗 Related Issue

Fixes # Discord

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected (Proxmox VE and/or Incus, as applicable).
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
  • API.txt regenerated – If a function signature or behavior changed, API.txt was updated to match.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing behavior in a way that may require updates in every downstream script.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, docs/, CONTRIBUTING.md, or other docs.

intel-opencl-icd depends on one exact intel-igc-opencl-2, and the tag was
meant to come from the release notes. It never did: TOOLS_GH_REL_JSON
holds a list when the release was fetched as "latest", jq cannot index an
array with .body, and the error was swallowed. The tag silently stayed
"latest".

That matched by luck until IGC 2.41.5 appeared on 10 September while
26.31.39395.13 still pins 2.40.13, and dpkg started refusing the package.

Unresolved now means empty, and the caller skips OpenCL with a warning
rather than installing a pair dpkg will reject. VA-API is unaffected.
@github-actions

Copy link
Copy Markdown
Contributor

Try this branch

The engine and the scripts resolve independently, so a production script can
be run against the engine from this PR by setting one variable:

COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/community-scripts/core/fix/igc-pin \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/ct/debian.sh)"

Swap ct/debian.sh for whatever exercises the change.

Run a script from a fork as well
curl -fsSL https://raw.githubusercontent.com/community-scripts/core/fix/igc-pin/tools/run.sh |
  bash -s -- https://raw.githubusercontent.com/YOU/ProxmoxVED/your-branch ct/debian.sh \
             https://raw.githubusercontent.com/community-scripts/core/fix/igc-pin

Note that run.sh is reached through a pipe, so the script it starts inherits
an exhausted stdin. Whiptail is fine — it opens /dev/tty — but a plain read
would see EOF. The single-variable form above does not have that problem.

Useful flags while testing

dev_mode=net logs every engine fetch with status and duration, which is the
quickest way to confirm the branch is really being used. dev_mode=keep stops a
failed build from deleting the container along with the evidence.

@MickLesk
MickLesk merged commit e31a546 into main Sep 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant