Skip to content

ElementalWarrior wine-10.18-winmd#123

Closed
mrshmllow wants to merge 1 commit into
mainfrom
marshmallow/p-lyowtsqpyoqv
Closed

ElementalWarrior wine-10.18-winmd#123
mrshmllow wants to merge 1 commit into
mainfrom
marshmallow/p-lyowtsqpyoqv

Conversation

@mrshmllow
Copy link
Copy Markdown
Owner

@mrshmllow mrshmllow commented Apr 10, 2026

Todo:

  • Fix v2

@mrshmllow mrshmllow force-pushed the marshmallow/p-lyowtsqpyoqv branch from b29c93c to 6d91eb1 Compare April 10, 2026 06:48
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 10, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6622c817-5dad-4edf-9300-acf1808e5809

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Updated Wine source and version; removed direct wineboot wrappers and invoke wineboot via the wine binary; adjusted prefix initialization and maintenance flow (revision bump, added remove_mono, limited Mono/.winmd actions to v2 prefixes, added cleanup for older v2 prefixes).

Changes

Cohort / File(s) Summary
Flake input
flake.nix
Changed inputs.elemental-wine-source.url revision from affinity-photo3-wine9.13-part3 to wine-10.18-winmd.
Wine package
packages/wine/default.nix
Bumped wineUnstable.version from 9.13-part3 to 10.18; added patch; removed wineboot from exported wine-stuff wrappers for v2 and v3.
Prefix/init and checks
packages/common.nix
Incremented latestRevision (8 → 9); added remove_mono verb; prefix init now runs wine wineboot --update; Mono MSI installation and *.winmd copying restricted to type == "v2" when prefixRevision <= 3; for prefixRevision <= 8 && type == "v2" delete Windows.Services.winmd and Windows.System.winmd (ignore errors); run wineserver -k after update.
Unified scripts
packages/unified/scripts.nix
Removed wineboot from inherited package set; changed wineboot command to exec ${lib.getExe wine} wineboot "$@" (invoke via wine) — other command branches unchanged.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Script as createScript
participant WineBin as wine binary
participant Prefix as Wine Prefix (fs)
participant Server as wineserver
Script->>WineBin: exec wine wineboot --update
WineBin->>Prefix: initialize prefix, create files
alt type == "v2" and prefixRevision <= 3
WineBin->>Prefix: install Mono MSI & copy *.winmd
end
alt prefixRevision <= 8 and type == "v2"
Script->>Prefix: remove Windows.Services.winmd & Windows.System.winmd
end
Script->>Server: run wineserver -k

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through commits with whiskers bright,
Swapped the Wine branch to ten by moonlight,
Boot now hops through wine, prefixes pruned,
Mono kept snug in v2, old bits exhumed,
I munch on diffs and snuggle up at night 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'ElementalWarrior wine-10.18-winmd' is vague and does not clearly convey the main purpose of the changeset. It appears to reference component names without explaining what was actually changed or why. Consider using a more descriptive title that explains the primary change, such as 'Update Wine source to version 10.18-winmd and remove wineboot wrapping' or 'Upgrade Wine to 10.18-winmd and refactor wineboot invocation'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch marshmallow/p-lyowtsqpyoqv

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/wine/default.nix`:
- Line 21: The version attribute in packages/wine/default.nix is missing the
build-ref suffix; update the version = "10.18" string to include the ref suffix
used elsewhere (e.g., change version to "10.18-winmd") so it matches the ref
`wine-10.18-winmd` and preserves the existing versioning pattern.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a1ef42a6-ea06-411e-b586-ee224389ae63

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa96ec and 6d91eb1.

⛔ Files ignored due to path filters (1)
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • flake.nix
  • packages/wine/default.nix

Comment thread packages/wine/default.nix Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/common.nix`:
- Around line 70-72: The hardcoded MSI name in the Wine prefix setup (inside the
if [[ "$type" == "v2" ]] block that calls ${lib.getExe wine} msiexec /i
"${wineUnwrapped}/share/wine/mono/wine-mono-9.3.0-x86.msi") must be replaced
with a glob or lookup to find the actual mono MSI shipped with the Wine version
(e.g., wine-mono-10*.msi); update the invocation to resolve the MSI path
dynamically (using shell globbing or a small find/ls fallback) from
"${wineUnwrapped}/share/wine/mono/" and pass that resolved filename to
${lib.getExe wine} msiexec /i so the code uses the real
wine-mono-<version>-x86.msi instead of the hardcoded 9.3.0 filename.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f6b21428-c9fd-4624-b357-989dd348dc41

📥 Commits

Reviewing files that changed from the base of the PR and between 6d91eb1 and 38e4858.

📒 Files selected for processing (3)
  • packages/common.nix
  • packages/unified/scripts.nix
  • packages/wine/default.nix

Comment thread packages/common.nix Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
packages/common.nix (1)

68-72: ⚠️ Potential issue | 🟠 Major

Hardcoded Wine Mono MSI filename is brittle and likely wrong for Wine 10.18.

Line 71 still pins wine-mono-9.3.0-x86.msi; this can break prefix initialization when the bundled Mono version differs. Resolve the MSI path dynamically from ${wineUnwrapped}/share/wine/mono/.

Suggested fix
-                    if [[ "$type" == "v2" ]]; then
-                        ${lib.getExe wine} msiexec /i "${wineUnwrapped}/share/wine/mono/wine-mono-9.3.0-x86.msi"
-                    fi
+                    if [[ "$type" == "v2" ]]; then
+                        mono_candidates=( "${wineUnwrapped}"/share/wine/mono/wine-mono-*-x86.msi )
+                        if [[ ! -f "${mono_candidates[0]}" ]]; then
+                            echo "affinity-nix: Could not find wine-mono MSI in ${wineUnwrapped}/share/wine/mono"
+                            exit 1
+                        fi
+                        ${lib.getExe wine} msiexec /i "${mono_candidates[0]}"
+                    fi
For nixpkgs `wineWow64Packages.full` at Wine 10.18, what exact filename is shipped under `share/wine/mono/` and should be passed to `wine msiexec /i`?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/common.nix` around lines 68 - 72, The code hardcodes
"wine-mono-9.3.0-x86.msi" which can mismatch bundled mono; change the msiexec
invocation to discover the MSI under ${wineUnwrapped}/share/wine/mono/ at
runtime and pass that resolved filename to ${lib.getExe wine} msiexec /i instead
of the literal string — locate the MSI by globbing or listing files in
${wineUnwrapped}/share/wine/mono/ (reference variables/functions: wineUnwrapped,
${lib.getExe wine}, msiexec) and use the discovered path in place of the
hardcoded "wine-mono-9.3.0-x86.msi".
🧹 Nitpick comments (1)
packages/common.nix (1)

133-139: Prefer rm -f over rm ... || true here.

This keeps logs cleaner and expresses intent more directly.

Suggested cleanup
-                   rm "${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.Services.winmd" || true
-                   rm "${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.System.winmd" || true
+                   rm -f "${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.Services.winmd"
+                   rm -f "${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.System.winmd"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/common.nix` around lines 133 - 139, The two deletion lines inside
the conditional that currently use "rm ... || true" (the rm calls operating on
"${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.Services.winmd"
and ".../Windows.System.winmd") should be changed to use "rm -f" instead; update
those two rm invocations in the block guarded by the prefixRevision/type check
(the code referencing variables prefixRevision, type and affinityPath) so they
use the -f flag to suppress errors rather than appending "|| true", keeping
intent clear and logs cleaner.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@packages/common.nix`:
- Around line 68-72: The code hardcodes "wine-mono-9.3.0-x86.msi" which can
mismatch bundled mono; change the msiexec invocation to discover the MSI under
${wineUnwrapped}/share/wine/mono/ at runtime and pass that resolved filename to
${lib.getExe wine} msiexec /i instead of the literal string — locate the MSI by
globbing or listing files in ${wineUnwrapped}/share/wine/mono/ (reference
variables/functions: wineUnwrapped, ${lib.getExe wine}, msiexec) and use the
discovered path in place of the hardcoded "wine-mono-9.3.0-x86.msi".

---

Nitpick comments:
In `@packages/common.nix`:
- Around line 133-139: The two deletion lines inside the conditional that
currently use "rm ... || true" (the rm calls operating on
"${affinityPath}/drive_c/windows/system32/WinMetadata/Windows.Services.winmd"
and ".../Windows.System.winmd") should be changed to use "rm -f" instead; update
those two rm invocations in the block guarded by the prefixRevision/type check
(the code referencing variables prefixRevision, type and affinityPath) so they
use the -f flag to suppress errors rather than appending "|| true", keeping
intent clear and logs cleaner.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: db75b61a-4483-4d91-a1f8-264370dd8265

📥 Commits

Reviewing files that changed from the base of the PR and between efd985a and 88b10e1.

📒 Files selected for processing (1)
  • packages/common.nix

@mrshmllow mrshmllow marked this pull request as draft April 11, 2026 11:09
@mrshmllow mrshmllow force-pushed the marshmallow/p-lyowtsqpyoqv branch 4 times, most recently from 34ca9b2 to 65f5a76 Compare April 16, 2026 10:02
@mrshmllow mrshmllow force-pushed the marshmallow/p-lyowtsqpyoqv branch from 65f5a76 to 4bfaa10 Compare April 17, 2026 12:52
@mrshmllow mrshmllow closed this May 23, 2026
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