Switch Linux packaging from AppImage to deb + rpm + PKGBUILD

AppImage library bundling causes cascading compatibility failures on
rolling-release distros (Arch, mesa 26+): libwayland-egl conflicts
break EGL, removing it cascades into GLib version mismatches, and so
on. Native packages sidestep this entirely.

- tauri.conf.json: targets now ["deb","rpm","nsis","msi","dmg","updater"]
  — no AppImage
- release.yml: drop LINUXDEPLOY_EXCLUDELIST workaround (no longer needed);
  update install instructions in release body
- PKGBUILD: added for Arch/Manjaro users; builds from source via git tag;
  desktop entry sets WEBKIT_DISABLE_DMABUF_RENDERER=1 (required on Wayland)
- README: install table updated with distro-specific commands

Arch users: build from source with PKGBUILD or `npm run tauri build`.
Ubuntu/Debian/Fedora/openSUSE: install the .deb or .rpm from Releases.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jure
2026-03-10 22:43:54 +01:00
parent b1647d7a20
commit 0fba49c812
4 changed files with 91 additions and 44 deletions

View File

@@ -58,10 +58,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
# Exclude Wayland libs from AppImage — the bundled ubuntu-22.04 versions
# conflict with mesa 26+ on Arch/modern distros causing EGL_BAD_PARAMETER.
# System libs are always used instead (correct behaviour for Wayland).
LINUXDEPLOY_EXCLUDELIST: "libwayland-egl.so.1 libwayland-client.so.0 libwayland-cursor.so.0 libwayland-server.so.0"
with:
tagName: ${{ github.ref_name }}
releaseName: Wrystr ${{ github.ref_name }}
@@ -70,48 +66,45 @@ jobs:
Cross-platform Nostr desktop client — polished UI, deep Lightning integration, first-class long-form writing.
### New in 0.1.6
- **Linux packaging** — ships `.deb` (Ubuntu/Debian/Mint) and `.rpm` (Fedora/openSUSE) instead of AppImage; Arch users see PKGBUILD in the repo
### New in 0.1.5
- **Article reader** — click any `nostr:naddr1…` link or long-form article reference to open it in a clean reader with cover image, author, tags, and full markdown content; zap the author inline
- **Zap counts on notes** — ⚡ N sats shown on each note; visible to logged-out users too
- **Quoted note preview** — `nostr:note1…` and `nostr:nevent1…` references render as inline bordered cards with author and content preview; click to open thread
- **Auto-updater** — "Update & restart" banner appears when a new version is available; installs and relaunches automatically
- **Article reader** — click any `nostr:naddr1…` link to open it in a clean reader with cover image, author, tags, and full markdown; zap the author inline
- **Zap counts on notes** — ⚡ N sats shown on each note
- **Quoted note preview** — `nostr:note1…` / `nostr:nevent1…` references render as inline bordered cards; click to open thread
- **Auto-updater** — "Update & restart" banner appears when a new version is available
### New in 0.1.4
- **Sidebar** — explicit / collapse toggle always visible; collapsed state persisted across restarts; nav icons + tooltips in collapsed mode
- **Profile image upload** — "upload" button next to picture/banner fields; uploads to nostr.build, auto-fills URL
- **NIP-05 live verification** — checks your domain's /.well-known/nostr.json in real time; shows ✓ verified / ✗ mismatch / ✗ not found
- **Search improvements** — detects which relays support NIP-50 full-text; zero-results state shows relay count and one-click "Search #hashtag" fallback; tabs always shown after search
- **Sidebar** — explicit / collapse toggle, state persisted across restarts
- **Profile image upload** — uploads to nostr.build, auto-fills URL field
- **NIP-05 live verification** — real-time domain check with ✓/✗ status
- **Search improvements** — NIP-50 relay detection, hashtag fallback suggestion
### New in 0.1.3
- **OS keychain** — nsec stored securely; sessions survive restarts (macOS Keychain, Windows Credential Manager, Linux Secret Service)
- **Multi-account switcher** — save multiple identities, switch instantly from the sidebar footer
- **SQLite note + profile cache** — feed loads from local cache instantly on startup
- **Quote & Repost** (NIP-18) — one-click repost or compose a quote reply
- **Mute users** (NIP-51) — mute list synced to relays, muted accounts filtered from feed
- **NWC setup wizard** — guided wallet picker (Alby Hub, Alby Extension, Mutiny, Phoenix) with inline validation
- **System tray** — close hides to tray, "Quit" in tray menu exits
- **Zap history** — Received and Sent tabs with amounts, counterparts, comments
- **About / Support page** — in-app zap button, Lightning + Bitcoin QR codes
### All features
- Onboarding: key generation, nsec backup, plain-language UX
- Global + following feed, compose, replies, thread view
- Reactions (NIP-25) with live network counts
- Follow / unfollow (NIP-02), profile view + edit
- Long-form article editor (NIP-23) with draft auto-save
- Zaps via NWC (NIP-47 + NIP-57) with amount presets and comments
- Search: NIP-50 full-text, #hashtag, people with inline follow
- Relay management with live connection status
- Collapsible sidebar, read-only (npub) login mode
- **OS keychain** — sessions survive restarts (macOS Keychain, Windows Credential Manager, Linux Secret Service)
- **Multi-account switcher** — instant switch from sidebar footer
- **SQLite note + profile cache** — feed loads instantly on startup
- **Quote & Repost** (NIP-18), **Mute users** (NIP-51), **NWC setup wizard**
- **System tray**, **Zap history**, **About / Support page**
### Install
**Linux:** Download the `.AppImage`, make it executable (`chmod +x`), and run it.
**Linux (Ubuntu / Debian / Mint):** Download the `.deb` and run:
```
sudo dpkg -i wrystr_*.deb
```
**Linux (Fedora / openSUSE):** Download the `.rpm` and run:
```
sudo rpm -i wrystr-*.rpm # Fedora
sudo zypper install wrystr-*.rpm # openSUSE
```
**Linux (Arch / Manjaro):** See [`PKGBUILD`](https://github.com/hoornet/wrystr/blob/main/PKGBUILD) in the repo, or build from source with `npm run tauri build`.
**Windows:** Download the `.exe` installer and run it.
**macOS (Apple Silicon):** Download the `aarch64.dmg` and open it.
**macOS (Intel):** Download the `x86_64.dmg` and open it.
No dependencies required — everything is bundled.
---
⚡ Find Wrystr useful? [Zap the developer](https://github.com/hoornet/wrystr#support) or star the repo.
releaseDraft: false

53
PKGBUILD Normal file
View File

@@ -0,0 +1,53 @@
# Maintainer: hoornet <harpos@getalby.com>
pkgname=wrystr
pkgver=0.1.5
pkgrel=1
pkgdesc="Cross-platform Nostr desktop client with Lightning integration"
arch=('x86_64')
url="https://github.com/hoornet/wrystr"
license=('MIT')
depends=(
'webkit2gtk-4.1'
'gtk3'
'libayatana-appindicator'
'openssl'
)
makedepends=(
'rust'
'cargo'
'nodejs'
'npm'
)
source=("$pkgname-$pkgver::git+https://github.com/hoornet/wrystr.git#tag=v$pkgver")
sha256sums=('SKIP')
build() {
cd "$pkgname-$pkgver"
npm install
npm run tauri build -- --bundles deb
}
package() {
cd "$pkgname-$pkgver"
install -Dm755 "src-tauri/target/release/wrystr" \
"$pkgdir/usr/bin/wrystr"
install -Dm644 "src-tauri/icons/128x128.png" \
"$pkgdir/usr/share/icons/hicolor/128x128/apps/wrystr.png"
install -Dm644 /dev/stdin \
"$pkgdir/usr/share/applications/wrystr.desktop" << 'EOF'
[Desktop Entry]
Name=Wrystr
Comment=Nostr desktop client
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 /usr/bin/wrystr
Icon=wrystr
Type=Application
Categories=Network;InstantMessaging;
StartupNotify=true
EOF
install -Dm644 "LICENSE" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

View File

@@ -8,14 +8,15 @@ A cross-platform desktop Nostr client built with Tauri 2.0 + React + TypeScript.
Grab the latest release from the [Releases page](https://github.com/hoornet/wrystr/releases).
| Platform | File |
|---|---|
| Linux | `.AppImage` (make executable, then run) |
| Windows | `.exe` installer |
| macOS (Apple Silicon) | `aarch64.dmg` |
| macOS (Intel) | `x86_64.dmg` |
No dependencies required — everything is bundled.
| Platform | File | Command |
|---|---|---|
| Ubuntu / Debian / Mint | `.deb` | `sudo dpkg -i wrystr_*.deb` |
| Fedora | `.rpm` | `sudo rpm -i wrystr-*.rpm` |
| openSUSE | `.rpm` | `sudo zypper install wrystr-*.rpm` |
| Arch / Manjaro | build from source | see [`PKGBUILD`](./PKGBUILD) |
| Windows | `.exe` installer | run the installer |
| macOS (Apple Silicon) | `aarch64.dmg` | open and drag to Applications |
| macOS (Intel) | `x86_64.dmg` | open and drag to Applications |
## Features

View File

@@ -25,7 +25,7 @@
},
"bundle": {
"active": true,
"targets": "all",
"targets": ["deb", "rpm", "nsis", "msi", "dmg", "updater"],
"icon": [
"icons/32x32.png",
"icons/128x128.png",