Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,19 +200,37 @@ jobs:
- uses: actions/checkout@v6
- name: Setup Flutter
uses: ./.github/actions/setup-flutter
- name: Deps
- name: Install system dependencies
run: |
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev rpm patchelf
- name: Install Flutter dependencies
run: |
flutter pub get
flutter gen-l10n
- name: Build Linux
- name: Activate fastforge
run: dart pub global activate fastforge
- name: Build Linux binary
run: flutter build linux --release
- name: Build DEB package
run: fastforge package --platform linux --targets deb
- name: Build RPM package
run: fastforge package --platform linux --targets rpm
- name: Upload binary artifact
uses: actions/upload-artifact@v5
with:
name: linux
path: ./build/linux/x64/release/bundle
- name: Upload DEB package
uses: actions/upload-artifact@v5
with:
name: linux-deb
path: ./dist/**/*.deb
- name: Upload RPM package
uses: actions/upload-artifact@v5
with:
name: linux-rpm
path: ./dist/**/*.rpm

build-ios:
runs-on: macos-26
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,18 @@ jobs:
name: android-apk
path: ./artifacts/android

- name: Download Linux DEB artifact
uses: actions/download-artifact@v6
with:
name: linux-deb
path: ./artifacts/linux

- name: Download Linux RPM artifact
uses: actions/download-artifact@v6
with:
name: linux-rpm
path: ./artifacts/linux

- name: Extract changelog for current version
id: changelog
run: |
Expand Down Expand Up @@ -74,3 +86,5 @@ jobs:
./artifacts/android/wormhole-android-openSource-x86_64.apk
./artifacts/windows/wormhole.zip
./artifacts/macos/wormhole.dmg
./artifacts/linux/*.deb
./artifacts/linux/*.rpm
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,26 @@ An open source Android, iOS, macOS, and Windows App for sending/receiveing files

(feel free to add yours)

## Installation

### Linux

**Debian/Ubuntu:**
```bash
# Download the .deb package from releases, then install:
sudo apt install ./wormhole_{version}_amd64.deb
```

**Fedora/RHEL/openSUSE:**
```bash
# Download the .rpm package from releases, then install:
sudo rpm -i wormhole-{version}.x86_64.rpm
# Or on Fedora:
sudo dnf localinstall ./wormhole-{version}.x86_64.rpm
```

Download the latest packages from the [Releases](https://github.com/wormhole-app/wormhole/releases) page.

# Translation
We use [Codeberg Translate](https://translate.codeberg.org/projects/wormhole/).

Expand Down Expand Up @@ -64,6 +84,20 @@ Build APK + App Bundle:\
Dev build:\
`just linux`

Create distribution packages:\
```bash
# Activate fastforge first (one-time setup)
dart pub global activate fastforge

# Build DEB package (for Debian/Ubuntu)
fastforge package --platform linux --targets deb

# Build RPM package (for Fedora/RHEL)
fastforge package --platform linux --targets rpm
```

Packages will be created in the `dist/` directory.

#### macOS

Dev build:\
Expand Down
45 changes: 45 additions & 0 deletions distribute_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Flutter Distributor / Fastforge configuration for Wormhole
# Defines packaging jobs for Linux DEB and RPM distributions

output: dist/

releases:
# Production release (triggered by git tags in CI/CD)
- name: production
jobs:
# Debian package for Ubuntu/Debian-based distributions
- name: release-linux-deb
package:
platform: linux
target: deb
build_args:
build-name: "1.1.6"
build-number: "1"

# RPM package for Fedora/openSUSE/RHEL-based distributions
- name: release-linux-rpm
package:
platform: linux
target: rpm
build_args:
build-name: "1.1.6"
build-number: "1"

# Development release (for testing locally)
- name: dev
jobs:
- name: dev-linux-deb
package:
platform: linux
target: deb
build_args:
dart-define:
APP_ENV: dev

- name: dev-linux-rpm
package:
platform: linux
target: rpm
build_args:
dart-define:
APP_ENV: dev
11 changes: 11 additions & 0 deletions linux/packaging/deb/eu.heili.wormhole.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Name=Wormhole
Comment=Send and receive files using magic-wormhole
GenericName=File Transfer
Exec=wormhole
Icon=wormhole
Terminal=false
Type=Application
Categories=Network;FileTransfer;Utility;
Keywords=wormhole;magic-wormhole;file;transfer;send;receive;p2p;
StartupNotify=true
35 changes: 35 additions & 0 deletions linux/packaging/deb/make_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Debian package configuration for Wormhole
# Reference: https://fastforge.dev/makers/deb

display_name: Wormhole
package_name: wormhole

maintainer:
name: emmabyte
email: [email protected]

priority: optional
section: Network
installed_size: 50000

icon: assets/bitmap.png

keywords:
- wormhole
- magic-wormhole
- file
- transfer
- send
- receive
- p2p

generic_name: File Transfer
categories:
- Network
- FileTransfer
- Utility

dependencies:
- libgtk-3-0
- libblkid1
- liblzma5
11 changes: 11 additions & 0 deletions linux/packaging/rpm/eu.heili.wormhole.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Name=Wormhole
Comment=Send and receive files using magic-wormhole
GenericName=File Transfer
Exec=wormhole
Icon=wormhole
Terminal=false
Type=Application
Categories=Network;FileTransfer;Utility;
Keywords=wormhole;magic-wormhole;file;transfer;send;receive;p2p;
StartupNotify=true
35 changes: 35 additions & 0 deletions linux/packaging/rpm/make_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# RPM package configuration for Wormhole
# Reference: https://fastforge.dev/makers/rpm

display_name: Wormhole

icon: assets/bitmap.png
summary: Send and receive files using magic-wormhole
group: Applications/Internet
vendor: emmabyte
packager: emmabyte
packagerEmail: [email protected]
license: GPL-3.0
url: https://github.com/wormhole-app/wormhole

keywords:
- wormhole
- magic-wormhole
- file
- transfer
- send
- receive
- p2p

generic_name: File Transfer
categories:
- Network
- FileTransfer
- Utility

startup_notify: true

requires:
- gtk3
- libblkid
- xz-libs
Loading