Skip to content

Commit b85cf15

Browse files
committed
Switch from not working AppImage build to Flatpak build
1 parent c9f7960 commit b85cf15

File tree

3 files changed

+53
-101
lines changed

3 files changed

+53
-101
lines changed

.github/workflows/linux.yml

Lines changed: 13 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ jobs:
1313
runs-on: ubuntu-22.04
1414

1515
steps:
16-
- name: Install Qt
17-
uses: jurplel/install-qt-action@v4
18-
with:
19-
version: '6.8.0'
20-
modules: 'qtcharts qtmultimedia qt5compat qtshadertools'
2116
- name: Checkout
2217
uses: actions/checkout@v4
2318

@@ -27,84 +22,38 @@ jobs:
2722
run: |
2823
echo "DATE=`date +%Y%m%d`" >> $GITHUB_ENV
2924
echo "GIT_HASH=`git rev-parse --short HEAD`" >> $GITHUB_ENV
30-
#echo "QTDIR=$QT_ROOT_DIR" >> $GITHUB_ENV
3125
cat $GITHUB_ENV
3226
3327
- name: Display environment variables
3428
run: env | sort
3529

36-
- name: Install build dependencies
30+
- name: Prepare flatpak build
3731
run: |
3832
set -x
3933
4034
# Install build dependencies
41-
sudo apt-get -y install build-essential libfaad-dev libmpg123-dev libfftw3-dev \
42-
librtlsdr-dev libusb-1.0-0-dev mesa-common-dev libglu1-mesa-dev libpulse-dev \
43-
libsoapysdr-dev libairspy-dev libmp3lame-dev libflac++-dev libegl-dev
44-
45-
# Install sharun dependencies
46-
sudo apt install file binutils patchelf findutils grep sed coreutils strace
47-
48-
# Install virtual graphic display to run welle.io without an display
49-
sudo apt install xvfb
35+
sudo apt-get -y install flatpak-builder
36+
sudo flatpak -y remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
5037
5138
- name: Build
5239
id: build
5340
run: |
54-
mkdir build
55-
cd build
56-
qmake PREFIX=/usr ..
57-
make -j4
58-
cd ..
59-
echo $PWD
60-
61-
- name: Prepare welle-io AppImage
62-
id: prepare_app_image
63-
run: |
64-
find build/
65-
mkdir -p ./appdir/usr/share/applications
66-
cp welle-io.desktop ./appdir/usr/share/applications
67-
mkdir -p ./appdir/usr/bin
68-
cp build/src/welle-gui/welle-io ./appdir/usr/bin
69-
mkdir -p ./appdir/usr/lib
70-
mkdir -p ./appdir/usr/share/icons/hicolor/256x256/apps/
71-
cp src/welle-gui/icons/icon.png ./appdir/usr/share/icons/hicolor/256x256/apps/welle-io.png
72-
find appdir/
73-
74-
- name: Create AppImage
75-
id: create_appimage
76-
run: |
77-
# Get appimagetool
78-
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep "appimagetool-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
79-
#wget https://welle-io-nightlies.albrechtloh.de/appimagetool-843-x86_64.AppImage # just for testing
80-
chmod +x appimagetool-*.AppImage
81-
82-
# Get lib4bin (sharun)
83-
wget https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin -O ./lib4bin
84-
chmod +x ./lib4bin
85-
86-
# Collect remaining libraries
87-
./appimagetool-*.AppImage -s deploy ./appdir/usr/share/applications/*.desktop # Bundle EVERYTHING
88-
89-
# Dummy run welle in a virtual display to collect graphic libraries with sharun
90-
xvfb-run -- ./lib4bin -p -v -r -e ./appdir/usr/bin/welle-io
91-
cp shared/lib/l* appdir/usr/lib/x86_64-linux-gnu/
92-
93-
find appdir/
94-
95-
# Create AppImage
96-
VERSION=1.0 ./appimagetool-*.AppImage ./appdir # turn AppDir into AppImage
97-
98-
# Preapre publish
99-
mkdir publish
100-
mv welle.io-1.0-x86_64.AppImage publish/"$DATE"_"$GIT_HASH"_Linux_welle-io-x86_64.AppImage
41+
# Create welle-gui Flatpak
42+
flatpak-builder --repo=wellerepo --install-deps-from=flathub --force-clean fp_build io.welle.welle_gui.json
43+
flatpak --user remote-add --no-gpg-verify welle-repo wellerepo
44+
flatpak --user install welle-repo io.welle.welle_gui
45+
flatpak build-bundle wellerepo welle-io.flatpak io.welle.welle-gui
46+
47+
# Prepare publish
48+
mkdir publish
49+
mv welle-io.flatpak publish/"$DATE"_"$GIT_HASH"_Linux_welle-io-x86_64.flatpak
10150
10251
- name: Archive artifacts (welle.io AppImage)
10352
if: always() && steps.create_appimage.outcome == 'success'
10453
uses: actions/upload-artifact@v4
10554
with:
10655
name: welle.io AppImage
107-
path: publish/*welle-io-x86_64.AppImage
56+
path: publish/*.flatpak
10857
if-no-files-found: error
10958

11059
- name: Upload to nightly server

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
/.idea/
33
/cmake-build-debug/
44
build/
5+
builddir/
6+
.flatpak-builder/
7+
repo/
58
Makefile
69
welle-io
710
*.o

io.welle.welle_io.json

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
11
{
22
"app-id": "io.welle.welle_io",
33
"runtime": "org.kde.Platform",
4-
"runtime-version": "5.15",
4+
"runtime-version": "6.8",
55
"sdk": "org.kde.Sdk",
66
"command": "welle-io",
77
"finish-args": [
88
"--share=network",
99
"--filesystem=host",
1010
"--socket=pulseaudio",
1111
"--socket=wayland",
12-
"--socket=x11",
12+
"--socket=fallback-x11",
1313
"--device=dri"
1414
],
1515
"modules": [
1616
{
17-
"name": "fftw",
18-
"buildsystem": "autotools",
19-
"config-opts": ["--enable-float","--enable-sse"],
20-
"sources": [ {"type": "archive", "url": "http://fftw.org/fftw-3.3.9.tar.gz", "md5":"50145bb68a8510b5d77605f11cadf8dc" } ]
17+
"name": "fftw",
18+
"buildsystem": "autotools",
19+
"config-opts": ["--enable-float","--enable-sse"],
20+
"sources": [ {"type": "archive", "url": "http://fftw.org/fftw-3.3.10.tar.gz", "md5":"8ccbf6a5ea78a16dbc3e1306e234cc5c" } ]
2121
},
2222
{
23-
"name": "libfaad",
24-
"buildsystem": "autotools",
25-
"sources": [ {"type": "git", "url": "https://salsa.debian.org/multimedia-team/faad2.git" } ]
23+
"name": "libfaad",
24+
"buildsystem": "cmake",
25+
"sources": [ {"type": "git", "url": "https://salsa.debian.org/multimedia-team/faad2.git" } ]
2626
},
27-
{
28-
"name": "libusb",
29-
"buildsystem": "autotools",
30-
"sources": [ {"type": "git", "url": "https://github.com/libusb/libusb.git" } ]
31-
},
32-
{
33-
"name": "librtlsdr",
34-
"buildsystem": "cmake",
35-
"sources": [ {"type": "git", "url": "git://git.osmocom.org/rtl-sdr.git" } ]
36-
},
37-
{
38-
"name": "libairspy",
39-
"buildsystem": "cmake",
40-
"sources": [ {"type": "git", "url": "https://github.com/airspy/airspyone_host.git" } ]
41-
},
42-
{
43-
"name": "SoapySDR",
44-
"buildsystem": "cmake",
45-
"config-opts": ["-DCMAKE_BUILD_TYPE=Release"],
46-
"sources": [ {"type": "git", "url": "https://github.com/pothosware/SoapySDR.git" } ]
47-
},
48-
{
49-
"name": "welle.io",
50-
"buildsystem": "qmake",
51-
"build-commands" : ["cp src/welle-gui/welle-io /app/bin"],
52-
"config-opts": [ "LIBS+=-L/app/lib"],
53-
"sources": [ {"type": "dir", "path": "."} ]
54-
}
27+
{
28+
"name": "libusb",
29+
"buildsystem": "autotools",
30+
"sources": [ {"type": "git", "url": "https://github.com/libusb/libusb.git" } ]
31+
},
32+
{
33+
"name": "librtlsdr",
34+
"buildsystem": "cmake",
35+
"sources": [ {"type": "git", "url": "git://git.osmocom.org/rtl-sdr.git" } ]
36+
},
37+
{
38+
"name": "libairspy",
39+
"buildsystem": "cmake",
40+
"sources": [ {"type": "git", "url": "https://github.com/airspy/airspyone_host.git" } ]
41+
},
42+
{
43+
"name": "SoapySDR",
44+
"buildsystem": "cmake",
45+
"config-opts": ["-DCMAKE_BUILD_TYPE=Release"],
46+
"sources": [ {"type": "git", "url": "https://github.com/pothosware/SoapySDR.git" } ]
47+
},
48+
{
49+
"name": "welle.io",
50+
"buildsystem": "qmake",
51+
"build-commands" : ["cp src/welle-gui/welle-io /app/bin"],
52+
"config-opts": [ "LIBS+=-L/app/lib", "LIBS+=-L/app/lib64", "QMAKE_LFLAGS+=-Wl,-rpath,/app/lib64"],
53+
"sources": [ {"type": "dir", "path": "."} ]
54+
}
5555
]
5656
}
5757

0 commit comments

Comments
 (0)