wails/docs
Lea Anthony 9f96439ba1
feat: Add distribution-specific build dependencies for Linux (#4339) (#4345)
* feat: Add distribution-specific dependencies using nfpm overrides

Implements feature #4339 by enhancing the nfpm.yaml.tmpl to use nfpm's built-in
overrides feature for different Linux distributions and package formats.

## Changes Made:

### Enhanced nfpm configuration with overrides:
- **Default**: Debian 12/Ubuntu 22.04+ with WebKit 4.1 dependencies
  - Uses libgtk-3-dev, libwebkit2gtk-4.1-dev, build-essential, pkg-config
- **RPM override**: RHEL/CentOS/AlmaLinux/Rocky Linux with WebKit 4.0 dependencies
  - Uses gtk3-devel, webkit2gtk3-devel, gcc-c++, pkg-config
- **Arch override**: Arch Linux with WebKit 4.1 dependencies
  - Uses gtk3, webkit2gtk-4.1, base-devel, pkgconf

This approach uses nfpm's native override system to automatically select
the correct dependencies based on the target package format, ensuring
that each distribution gets the appropriate WebKit version and package names.

### How it works:
- DEB packages get WebKit 4.1 dependencies (default)
- RPM packages get WebKit 4.0 dependencies (RHEL/CentOS compatibility)
- Arch packages get WebKit 4.1 dependencies with Arch-specific package names

Fixes #4339

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Enhance wails doctor with WebKit fallback support

Improves the doctor command to better detect WebKit dependencies across
different Linux distributions by adding fallback package support.

## Changes Made:

### Enhanced Package Manager Detection:
- **APT (Debian/Ubuntu)**: Added WebKit 4.1 → 4.0 fallback support
- **DNF (Fedora/RHEL)**: Added webkit2gtk4.0-devel fallback for older systems
- **Zypper (SUSE)**: Added webkit2gtk4_1-devel for modern SUSE distributions
- **Emerge (Gentoo)**: Added support for both webkit-gtk:6 and webkit-gtk:4 slots
- **Pacman (Arch)**: Added fallback from webkit2gtk-4.1 to webkit2gtk

### Improved Developer Experience:
- Doctor command now tries newer WebKit versions first, falls back gracefully
- Provides more accurate dependency detection across distributions
- Better guidance for developers on different Linux systems

### How It Works:
- Each package manager lists multiple WebKit package options in order of preference
- The dependency system tries packages in order until it finds one that's available
- Developers get appropriate installation commands for their specific distribution

This complements the nfpm overrides by ensuring developers can properly
set up their development environment regardless of distribution.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-11 21:03:33 +10:00
..
.vscode [v3] Add starlight website (#3917) 2024-12-08 12:09:13 +11:00
public Add update cli 2025-01-02 16:24:37 +11:00
src feat: Add distribution-specific build dependencies for Linux (#4339) (#4345) 2025-07-11 21:03:33 +10:00
.gitignore [v3] Add starlight website (#3917) 2024-12-08 12:09:13 +11:00
.npmrc Docs: Add community page(s) (#3941) 2024-12-10 07:53:36 +11:00
astro.config.mjs Updated tutorial. Fixed sidebar 2024-12-17 06:21:51 +11:00
CNAME Setup starlight workflow 2024-12-08 12:28:50 +11:00
package-lock.json Documentation updates. 2024-12-16 20:00:56 +11:00
package.json Fix for pipelines. New blog post 2025-07-06 22:21:09 +10:00
README.md [v3] Add starlight website (#3917) 2024-12-08 12:09:13 +11:00
Taskfile.yml Docs change 2024-12-13 22:00:25 +11:00
tsconfig.json [v3] Add starlight website (#3917) 2024-12-08 12:09:13 +11:00

Starlight Starter Kit: Basics

Built with Starlight

npm create astro@latest -- --template starlight

Open in StackBlitz Open with CodeSandbox Deploy to Netlify Deploy with Vercel

🧑‍🚀 Seasoned astronaut? Delete this file. Have fun!

🚀 Project Structure

Inside of your Astro + Starlight project, you'll see the following folders and files:

.
├── public/
├── src/
│   ├── assets/
│   ├── content/
│   │   ├── docs/
│   │   └── config.ts
│   └── env.d.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json

Starlight looks for .md or .mdx files in the src/content/docs/ directory. Each file is exposed as a route based on its file name.

Images can be added to src/assets/ and embedded in Markdown with a relative link.

Static assets, like favicons, can be placed in the public/ directory.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:4321
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

👀 Want to learn more?

Check out Starlights docs, read the Astro documentation, or jump into the Astro Discord server.