Compare commits

...

49 Commits

Author SHA1 Message Date
97083db78d fix: allow overwriting and add caching 2025-08-03 15:59:35 +10:00
ef2153611e fix: use full shared object library (ldd) 2025-08-03 15:49:12 +10:00
48ccf638ce fix: final issues with github pipeline 2025-08-03 15:33:29 +10:00
4361798661 fix: final fixes 2025-08-03 15:21:24 +10:00
732df1ddb9 fix: various ci fixes 2025-08-03 15:03:20 +10:00
4389d8beb8 fix: add fix for aarch64 build and start working on github upload 2025-08-03 14:47:29 +10:00
38dd6a2c64 fix: if statement 2025-08-03 14:32:53 +10:00
6038509a0c fix: add fuse dependency 2025-08-03 14:23:08 +10:00
919148c6c2 fix: only use first library result 2025-08-03 14:13:02 +10:00
b3f73d6d1e fix: add permission fixes 2025-08-03 14:02:37 +10:00
41d23730cc fix: use ldconfig to find libraries 2025-08-03 13:50:55 +10:00
d19c5b8e97 fix: fixes to pipeline, script, and .gitignorey 2025-08-03 13:20:26 +10:00
c78079e4be bump version to 0.3.1-appimage 2025-08-03 12:58:04 +10:00
92e42262c1 Merge branch 'develop' of https://github.com/Beethoven-n/drop-app into Beethoven-n-develop 2025-08-03 12:55:27 +10:00
106c229c8f (build/appimage/drop-app.d/drop-oss-app.desktop) add drop link handling 2025-08-02 21:39:10 -05:00
527476e7c1 (build_appimage.sh) don't use sudo for this u don't need it 2025-08-02 21:39:10 -05:00
81d324a026 (build_appimage.sh) wrong variable. whoops! 2025-08-02 21:39:09 -05:00
3d5de9bec8 (build/appimage/appimagetool) these don't belong here! woops! 2025-08-02 21:39:09 -05:00
380084bb95 (build/appimage/drop-oss-app.d/) 2025-08-02 21:39:09 -05:00
50d76bb76f (build/appimage/appimagetool) 2025-08-02 21:39:09 -05:00
de3be25914 (build_appimage.sh) 2025-08-02 21:39:09 -05:00
95fc7d9605 (.github/workflows/release.yml) add --nobuild flag 2025-08-02 21:39:08 -05:00
f9c45053cc (build/appimage/drop-app.d/AppRun) change program name 2025-08-02 21:39:08 -05:00
683e3ac7f2 (build/appimage/drop-app.d/) rename AppDir
lol woops this caused a typo that cascaded into an appimage that failed
to find the executable
2025-08-02 21:39:08 -05:00
fe586be658 (build_appimage.sh) install libs by UID and GID
installing by $USER caused issues when i did it so i've fixed it
also added $PWD because ./ was lazy
2025-08-02 21:39:08 -05:00
aa034c21a9 (build_appimage.sh) add basic arch detection 2025-08-02 21:39:08 -05:00
50f7955734 (.github/workflows/release.yml) add build_appimage.sh to workflow 2025-08-02 21:39:07 -05:00
73608ab85b (build_appimage.sh) add build script
this should build the appimage without tauri's involvement
2025-08-02 21:39:07 -05:00
1ed29aaa12 (src-tauri/tauri.conf.json) remove appimage target from tauri
tauri was overcomplicating this. let's make the appimage independent of
that
2025-08-02 21:39:07 -05:00
849dc26677 (build/) add build directory for non-tauri builds 2025-08-02 21:39:07 -05:00
7db2e42006 (appimage/build_appimage.sh) 2025-08-02 21:39:07 -05:00
61fa43dd86 (appimage/) add manual appimage
the existing one is broken, and i think it might be tauri's fault.
2025-08-02 21:39:06 -05:00
301152a69f (build_appimage.sh) don't use sudo for this u don't need it 2025-08-02 20:54:08 -05:00
5e945734c7 (build_appimage.sh) wrong variable. whoops! 2025-08-02 20:53:49 -05:00
53211e94fe (build/appimage/appimagetool) these don't belong here! woops! 2025-08-02 20:52:51 -05:00
af49a6751f (build/appimage/drop-oss-app.d/) 2025-08-02 20:27:46 -05:00
9e93ec688c (build/appimage/appimagetool) 2025-08-02 20:27:46 -05:00
a70c2c64e4 (build_appimage.sh) 2025-08-02 20:27:46 -05:00
d63d6efa3e (.github/workflows/release.yml) add --nobuild flag 2025-08-02 20:18:02 -05:00
51555e43ee (build/appimage/drop-app.d/AppRun) change program name 2025-08-02 20:17:13 -05:00
cb7c297443 (build/appimage/drop-app.d/) rename AppDir
lol woops this caused a typo that cascaded into an appimage that failed
to find the executable
2025-08-02 20:16:37 -05:00
4484de0507 (build_appimage.sh) install libs by UID and GID
installing by $USER caused issues when i did it so i've fixed it
also added $PWD because ./ was lazy
2025-08-02 20:15:03 -05:00
4599e5713c (build_appimage.sh) add basic arch detection 2025-08-02 18:05:53 -05:00
263cceb17f (.github/workflows/release.yml) add build_appimage.sh to workflow 2025-08-02 18:05:25 -05:00
0249a3248f (build_appimage.sh) add build script
this should build the appimage without tauri's involvement
2025-08-02 16:45:55 -05:00
bf4b2e0ad6 (src-tauri/tauri.conf.json) remove appimage target from tauri
tauri was overcomplicating this. let's make the appimage independent of
that
2025-08-02 16:45:24 -05:00
7555cc3cdf (build/) add build directory for non-tauri builds 2025-08-02 16:45:24 -05:00
6f30d248eb (appimage/build_appimage.sh) 2025-08-02 14:42:36 -05:00
cc562662f0 (appimage/) add manual appimage
the existing one is broken, and i think it might be tauri's fault.
2025-08-02 14:42:36 -05:00
13 changed files with 100 additions and 10 deletions

View File

@ -25,7 +25,7 @@ jobs:
- platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04.
args: ''
- platform: 'ubuntu-22.04-arm'
args: '--target aarch64-unknown-linux-gnu'
args: ''
- platform: 'windows-latest'
args: ''
@ -40,6 +40,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn'
- name: install Rust nightly
uses: dtolnay/rust-toolchain@nightly
@ -51,7 +52,7 @@ jobs:
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf binutils fuse
# webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2.
@ -85,19 +86,40 @@ jobs:
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
echo "Certificate imported. Using identity: $CERT_ID"
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: install frontend dependencies
run: yarn install # change this to npm, pnpm or bun depending on which one you use.
- uses: tauri-apps/tauri-action@v0
- id: build
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
with:
tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
tagName: v__VERSION__ # update the below "upload artifacts to GitHub" if this gets updated
releaseName: 'Auto-release v__VERSION__'
releaseBody: 'See the assets to download this version and install. This release was created automatically.'
releaseDraft: false
prerelease: true
args: ${{ matrix.args }}
- name: Bundle AppImage
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm'
run: |
./build_appimage.sh --nobuild
- name: Upload binaries to release
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/appimage/*.AppImage
file_glob: true
release_id: ${{ steps.build.outputs.releaseId }}
overwrite: true

11
.gitignore vendored
View File

@ -26,4 +26,13 @@ dist-ssr
.output
src-tauri/flamegraph.svg
src-tauri/perf*
src-tauri/perf*
build/appimage/*
!build/appimage/drop-app.d
build/appimage/drop-app.d/usr/bin/*
!build/appimage/drop-app.d/usr/bin/.gitkeep
build/appimage/drop-app.d/usr/lib/*
!build/appimage/drop-app.d/usr/lib/.gitkeep

View File

@ -0,0 +1 @@
drop-oss-app.png

View File

@ -0,0 +1,8 @@
#!/bin/sh
program="drop-app"
# point to libraries and run
LD_LIBRARY_PATH=$APPDIR/usr/lib:/usr/local/lib:/usr/lib $APPDIR/usr/bin/$program $@
# vim:ft=sh

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=Drop Desktop App
Comment=The client application for the open-source, self-hosted game distribution platform Drop.
Exec=AppRun
Icon=drop-oss-app
Type=Application
Categories=Game;Network
MimeType=x-scheme-handler/drop

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

42
build_appimage.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
set -e
# run this from the root of the git repo to make this work
arch="$(uname -m)"
git_dir="$PWD"
target_dir="$git_dir/src-tauri/target"
appimage_dir="$git_dir/build/appimage"
appdir="$appimage_dir/drop-app.d"
build() {
# set up the repo
git submodule init
git submodule update --recursive
# set up yarn and build
yarn
yarn tauri build
}
rm -f $appdir/usr/bin/* $appdir/usr/lib/*
if [[ ! "$1" == "--nobuild" ]]; then
build
fi
# install binaries in the appdir, then the libraries
cp $target_dir/release/drop-app $appdir/usr/bin
for lib_name in $(ldd "$target_dir/release/drop-app" | grep '=>' | awk '{ print $(NF-1) }');
do
echo $lib_name
sudo install -g 1000 -o 1000 -Dm755 "$(ls -L1 $lib_name)" $appdir/usr/lib
done
wget -O $appimage_dir/appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$arch.AppImage
cd $appimage_dir
chmod u+x appimagetool
./appimagetool $appdir
ls "$appimage_dir/"

View File

@ -1,7 +1,7 @@
{
"name": "drop-app",
"private": true,
"version": "0.3.1",
"version": "0.3.1-appimage",
"type": "module",
"scripts": {
"build": "nuxt build",

2
src-tauri/Cargo.lock generated
View File

@ -1284,7 +1284,7 @@ dependencies = [
[[package]]
name = "drop-app"
version = "0.3.1"
version = "0.3.1-appimage"
dependencies = [
"atomic-instant-full",
"bitcode",

View File

@ -1,6 +1,6 @@
[package]
name = "drop-app"
version = "0.3.1"
version = "0.3.1-appimage"
description = "The client application for the open-source, self-hosted game distribution platform Drop"
authors = ["Drop OSS"]
edition = "2024"

View File

@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2.0.0",
"productName": "Drop Desktop Client",
"version": "0.3.1",
"version": "0.3.1-appimage",
"identifier": "dev.drop.app",
"build": {
"beforeDevCommand": "yarn dev --port 1432",
@ -27,7 +27,7 @@
},
"bundle": {
"active": true,
"targets": ["nsis", "deb", "rpm", "dmg", "appimage"],
"targets": ["nsis", "deb", "rpm", "dmg"],
"windows": {
"nsis": {
"installMode": "both"