Correct nfpm.yaml template package dependencies.#4481
Conversation
As is, the `nfpm.yaml` template pulls in `-dev` versions of the packages the built Wails application actually relies on, in addition to `build-essential`. Which will work, but is way overkill. This PR corrects this. I have tested this on an Ubuntu 22.04 VM and a Rocky Linux 10 VM, *(which actually necessitated attaching the EPEL repository)* but I did not verify Arch beyond looking up packages. Additionally, it appears that the package name for RPM distro family is not in tune with the rest of them, referring to an earlier version of webkit2gtk, which has also been corrected. **P.S.** Could we supply our own templates or updatable build files pretty please?
WalkthroughThe dependency lists in the Linux packaging template were updated to replace development and build tool packages with their corresponding runtime libraries for Debian, Ubuntu, RPM-based, and Arch Linux distributions. No other scripts or metadata were modified. The unreleased changelog was updated to reflect these fixes. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~7 minutes Possibly related PRs
Suggested labels
Poem
Note 🔌 MCP (Model Context Protocol) integration is now available in Early Access!Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl (1)
67-67: Optional: ship a changelog in the packagesIf you keep a project changelog, enabling this helps users track changes via package managers:
-# changelog: "changelog.yaml" +changelog: "changelog.yaml"
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: semgrep-cloud-platform/scan
|
Thanks 🙏 Please could you address the points the rabbit brought up and add an entry to the changelog located at |
It did brought up that Rocky 9 still has
...but it's an |
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
v3/UNRELEASED_CHANGELOG.md (1)
29-29: Switch to dash list marker, split into two concise bullets, add PR ref/attribution, and clarify RPM ABI note
- Use "-" instead of "+" to satisfy markdownlint (MD004) and match file style.
- Prefer "overly broad" wording.
- Split into two bullets and reference the PR; remove trailing period for consistency.
-+ Fix extra-broad Linux package dependencies, fix outdated RPM dependencies. +- Fix overly broad Linux package dependencies in nfpm templates (replace -dev/build deps with runtime libs) (#4481) by @Mihara +- Fix outdated RPM WebKitGTK runtime dependency name to match built ABI (use webkit2gtk4.1 for 4.1 builds) (#4481) by @MiharaAlso confirm the expected changelog file extension/path (maintainer mentioned .mdx; repository currently uses .md) to ensure the nightly workflow picks this up.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
v3/UNRELEASED_CHANGELOG.md(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: Mihara
PR: wailsapp/wails#4481
File: v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl:29-30
Timestamp: 2025-08-08T10:25:32.396Z
Learning: For Wails v3 Linux nfpm template, Debian/Ubuntu WebKitGTK runtime package names differ: Debian 12 (Bookworm) uses libwebkit2gtk-4.1-0 while Ubuntu 22.04 (Jammy) uses libwebkit2gtk-4.0-37. Prefer an OR dependency "libwebkit2gtk-4.1-0 | libwebkit2gtk-4.0-37" in v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl to support both.
Learnt from: Mihara
PR: wailsapp/wails#4481
File: v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl:37-38
Timestamp: 2025-08-08T11:10:17.714Z
Learning: In Wails v3 nfpm templates for RPM (RHEL-family), do not use a boolean OR between webkit2gtk3 and webkit2gtk4.1. Binaries built against WebKitGTK 4.1 are not ABI-compatible with 4.0, so the dependency must be pinned to the exact ABI: use webkit2gtk4.1 for 4.1 builds (e.g., RHEL/Rocky 10) and webkit2gtk3 for 4.0 builds (RHEL/Rocky 8/9).
Learnt from: Mihara
PR: wailsapp/wails#4481
File: v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl:29-30
Timestamp: 2025-08-08T10:25:32.396Z
Learning: Ubuntu 22.04 (Jammy) official repos include both WebKitGTK runtimes: libwebkit2gtk-4.0-37 and libwebkit2gtk-4.1-0 (Universe). For nfpm templates, depend on the exact SONAME matching the built ABI (use libwebkit2gtk-4.1-0 when targeting 4.1; use libwebkit2gtk-4.0-37 when targeting 4.0) rather than an OR across ABIs.
📚 Learning: 2025-08-08T10:25:32.396Z
Learnt from: Mihara
PR: wailsapp/wails#4481
File: v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl:29-30
Timestamp: 2025-08-08T10:25:32.396Z
Learning: For Wails v3 Linux nfpm template, Debian/Ubuntu WebKitGTK runtime package names differ: Debian 12 (Bookworm) uses libwebkit2gtk-4.1-0 while Ubuntu 22.04 (Jammy) uses libwebkit2gtk-4.0-37. Prefer an OR dependency "libwebkit2gtk-4.1-0 | libwebkit2gtk-4.0-37" in v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl to support both.
Applied to files:
v3/UNRELEASED_CHANGELOG.md
📚 Learning: 2025-08-08T11:10:17.714Z
Learnt from: Mihara
PR: wailsapp/wails#4481
File: v3/internal/commands/updatable_build_assets/linux/nfpm/nfpm.yaml.tmpl:37-38
Timestamp: 2025-08-08T11:10:17.714Z
Learning: In Wails v3 nfpm templates for RPM (RHEL-family), do not use a boolean OR between webkit2gtk3 and webkit2gtk4.1. Binaries built against WebKitGTK 4.1 are not ABI-compatible with 4.0, so the dependency must be pinned to the exact ABI: use webkit2gtk4.1 for 4.1 builds (e.g., RHEL/Rocky 10) and webkit2gtk3 for 4.0 builds (RHEL/Rocky 8/9).
Applied to files:
v3/UNRELEASED_CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
v3/UNRELEASED_CHANGELOG.md
29-29: Unordered list style
Expected: dash; Actual: plus
(MD004, ul-style)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: semgrep-cloud-platform/scan
|
Thanks for this! 🙏 |
* Correct nfpm.yaml template package dependencies. As is, the `nfpm.yaml` template pulls in `-dev` versions of the packages the built Wails application actually relies on, in addition to `build-essential`. Which will work, but is way overkill. This PR corrects this. I have tested this on an Ubuntu 22.04 VM and a Rocky Linux 10 VM, *(which actually necessitated attaching the EPEL repository)* but I did not verify Arch beyond looking up packages. Additionally, it appears that the package name for RPM distro family is not in tune with the rest of them, referring to an earlier version of webkit2gtk, which has also been corrected. **P.S.** Could we supply our own templates or updatable build files pretty please? * Addressing points brought up. --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>



Description
As is, the
nfpm.yamltemplate pulls in-devversions of the packages the built Wails application actually relies on, in addition tobuild-essential. Which will work, but is way more than the package actually needs. This PR corrects this.Additionally, it appears that the package name for the RPM distro family was not in tune with the rest of them, referring to an earlier version of webkit2gtk, which has also been corrected.
P.S. Could we supply our own templates or updatable build files pretty please?
Type of change
Please select the option that is relevant.
How Has This Been Tested?
I have installed the packages obtained using the
nfpm.yamlaltered this way on a freshly installed Ubuntu 22.04 VM and a Rocky Linux 10 VM, (which actually necessitated attaching the EPEL repository) and verified that my application worked in both cases. I did not verify Arch beyond looking up correct package names and verifying they exist.Checklist:
website/src/pages/changelog.mdxwith details of this PRSummary by CodeRabbit