fix(auto-update): keep Moonlight pin interface-independent #175

Merged
nimmo merged 1 commit from fix/issue-174-moonlight-pin into main 2026-08-16 08:27:38 +01:00
Owner

Summary

Makes the temporary Moonlight FFmpeg 8 pin resilient to Nixpkgs' transient ffmpeg → ffmpeg_8 package-argument rename. The pin now replaces Moonlight' direct FFmpeg build input, and its lifecycle reverse patch and hashes are updated accordingly.

The current nixos-unstable still fails to build Moonlight 6.1.0 with FFmpeg 9, so this retains the pin rather than removing it.

Validation

  • tests/nixos-pin-lifecycle-regressions.sh
  • nix flake check
  • Evaluated Electra against both the configured Nixpkgs and rejected revision f2b17eb1b90f6a359082035b4538d4c63017aec3
  • Verified the stored reverse patch applies cleanly
  • Direct current-unstable Moonlight build reproduces the FFmpeg 9 incompatibility

Refs #174

## Summary Makes the temporary Moonlight FFmpeg 8 pin resilient to Nixpkgs' transient `ffmpeg` → `ffmpeg_8` package-argument rename. The pin now replaces Moonlight' direct FFmpeg build input, and its lifecycle reverse patch and hashes are updated accordingly. The current `nixos-unstable` still fails to build Moonlight 6.1.0 with FFmpeg 9, so this retains the pin rather than removing it. ## Validation - `tests/nixos-pin-lifecycle-regressions.sh` - `nix flake check` - Evaluated Electra against both the configured Nixpkgs and rejected revision `f2b17eb1b90f6a359082035b4538d4c63017aec3` - Verified the stored reverse patch applies cleanly - Direct current-unstable Moonlight build reproduces the FFmpeg 9 incompatibility Refs #174
nimmo self-assigned this 2026-08-16 08:24:25 +01:00
fix(auto-update): keep Moonlight pin interface-independent
All checks were successful
Build and Push Attic Cache / test (pull_request) Successful in 2m5s
Build and Push Attic Cache / build (pull_request) Has been skipped
Build and Push Attic Cache / pin-lifecycle (pull_request) Has been skipped
Build and Push Attic Cache / remediate (pull_request) Has been skipped
Build and Push Attic Cache / notify-remediation (pull_request) Has been skipped
AI pull-request review / review (pull_request) Successful in 3m0s
8f6ff1c710
Author
Owner

Automated code review

Reviewed commit: 8f6ff1c7101dddff9c6a34d13955103bc760c7a1

Verdict: Ready to merge

No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory.

Overall assessment

The PR modifies a temporary FFmpeg pin for moonlight-qt in gaming.nix to use overrideAttrs and filter buildInputs by pname, addressing nixpkgs' ffmpeg argument rename. Hashes and the removal patch are updated accordingly.

Blocking findings

None.

Important findings

None.

Suggestions

  • Verify if FFmpeg is required in nativeBuildInputs or as a named argument (modules/profiles/gaming.nix:20; medium confidence)
    buildInputs = (builtins.filter (input: (input.pname or null) != "ffmpeg") old.buildInputs) ++ [ prev.ffmpeg_8 ];
    Impact: If moonlight-qt's derivation expects FFmpeg in nativeBuildInputs or requires it as a specific override argument, filtering only buildInputs may not fully resolve the dependency, potentially causing build failures.
    Suggested fix: Check the upstream moonlight-qt derivation to confirm where FFmpeg is listed. If needed, extend the filter to nativeBuildInputs or explicitly pass { ffmpeg = prev.ffmpeg_8; } within overrideAttrs if the build system requires it as a named argument.

  • Pname filtering removes all FFmpeg versions, not just the conflicting one (modules/profiles/gaming.nix:20; high confidence)
    (input.pname or null) != "ffmpeg"
    Impact: This filter replaces every package with pname "ffmpeg" in buildInputs with ffmpeg_8. While acceptable for a temporary pin, it alters the dependency closure more broadly than strictly necessary.
    Suggested fix: For a temporary override, this is low-risk. If stricter version targeting is desired later, consider filtering by specific attribute names or versions instead of pname.

Tests and validation

  • No configured deterministic checks.

Questions

  • Does the upstream moonlight-qt derivation in nixpkgs list FFmpeg under nativeBuildInputs or require it as a named override argument?
  • Are there other profiles or hosts importing this gaming overlay that might be affected by the broader FFmpeg replacement?

Review limitations

  • Cannot evaluate Nix expressions or run nix flake check to verify build success.
  • Upstream moonlight-qt derivation in nixpkgs was not provided, so assumptions about dependency placement are based on standard patterns.

Diff coverage

  • modules/profiles/gaming.nix: reviewed — included in a context-limited batch
  • remediation/pins/aded4313f23595e6959abf2d7d74f2594509465ae5dcb51b73ae9f3cc8a8e73f.json: reviewed — included in a context-limited batch
  • remediation/pins/aded4313f23595e6959abf2d7d74f2594509465ae5dcb51b73ae9f3cc8a8e73f.remove.patch: reviewed — included in a context-limited batch
Review metadata
  • Reviewer: forgejo-ai-review v1
  • Model: qwen3.6:35b-a3b-q8_0
  • Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md
  • Commits considered: 1
  • Previous automated review: none found
  • Findings: 2
<!-- forgejo-ai-review:v1 --> ## Automated code review Reviewed commit: `8f6ff1c7101dddff9c6a34d13955103bc760c7a1` ## Verdict: Ready to merge No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory. ### Overall assessment The PR modifies a temporary FFmpeg pin for moonlight-qt in gaming.nix to use overrideAttrs and filter buildInputs by pname, addressing nixpkgs' ffmpeg argument rename. Hashes and the removal patch are updated accordingly. ### Blocking findings None. ### Important findings None. ### Suggestions - **Verify if FFmpeg is required in nativeBuildInputs or as a named argument** (modules/profiles/gaming.nix:20; medium confidence) buildInputs = (builtins.filter (input: (input.pname or null) != "ffmpeg") old.buildInputs) ++ [ prev.ffmpeg_8 ]; Impact: If moonlight-qt's derivation expects FFmpeg in nativeBuildInputs or requires it as a specific override argument, filtering only buildInputs may not fully resolve the dependency, potentially causing build failures. Suggested fix: Check the upstream moonlight-qt derivation to confirm where FFmpeg is listed. If needed, extend the filter to nativeBuildInputs or explicitly pass { ffmpeg = prev.ffmpeg_8; } within overrideAttrs if the build system requires it as a named argument. - **Pname filtering removes all FFmpeg versions, not just the conflicting one** (modules/profiles/gaming.nix:20; high confidence) (input.pname or null) != "ffmpeg" Impact: This filter replaces every package with pname "ffmpeg" in buildInputs with ffmpeg_8. While acceptable for a temporary pin, it alters the dependency closure more broadly than strictly necessary. Suggested fix: For a temporary override, this is low-risk. If stricter version targeting is desired later, consider filtering by specific attribute names or versions instead of pname. ### Tests and validation - No configured deterministic checks. ### Questions - Does the upstream moonlight-qt derivation in nixpkgs list FFmpeg under nativeBuildInputs or require it as a named override argument? - Are there other profiles or hosts importing this gaming overlay that might be affected by the broader FFmpeg replacement? ### Review limitations - Cannot evaluate Nix expressions or run nix flake check to verify build success. - Upstream moonlight-qt derivation in nixpkgs was not provided, so assumptions about dependency placement are based on standard patterns. ### Diff coverage - `modules/profiles/gaming.nix`: **reviewed** — included in a context-limited batch - `remediation/pins/aded4313f23595e6959abf2d7d74f2594509465ae5dcb51b73ae9f3cc8a8e73f.json`: **reviewed** — included in a context-limited batch - `remediation/pins/aded4313f23595e6959abf2d7d74f2594509465ae5dcb51b73ae9f3cc8a8e73f.remove.patch`: **reviewed** — included in a context-limited batch <details><summary>Review metadata</summary> - Reviewer: forgejo-ai-review v1 - Model: qwen3.6:35b-a3b-q8_0 - Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md - Commits considered: 1 - Previous automated review: none found - Findings: 2 </details>
nimmo merged commit 34b51e858d into main 2026-08-16 08:27:38 +01:00
Sign in to join this conversation.
No reviewers
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/nixos-config!175
No description provided.