Skip to content

Commit 079660c

Browse files
authored
Merge pull request #95 from afbjorklund/linux-desktop
Make AppDir and AppImage the default for linux
2 parents 69a793c + 701732b commit 079660c

File tree

6 files changed

+128
-4
lines changed

6 files changed

+128
-4
lines changed

.github/workflows/linux.yml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,40 @@ on:
77
- main
88
jobs:
99
build-linux:
10-
runs-on: ubuntu-latest
10+
# AppImage requires ubuntu focal
11+
runs-on: ubuntu-20.04
1112
steps:
1213
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
1314
- uses: jurplel/install-qt-action@b3ea5275e37b734d027040e2c7fe7a10ea2ef946
1415
with:
1516
cache: true
17+
- name: cache linuxdeployqt
18+
id: cache-appimage
19+
uses: actions/cache@v3
20+
with:
21+
path: linuxdeployqt-continuous-x86_64.AppImage
22+
key: linuxdeployqt-x86_64
23+
- if: ${{ steps.cache-appimage.outputs.cache-hit != 'true' }}
24+
name: download linuxdeployqt
25+
run: |
26+
curl -LO https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
27+
- name: install linuxdeployqt
28+
run: |
29+
chmod +x linuxdeployqt-continuous-x86_64.AppImage
30+
./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract
31+
sudo cp -pr squashfs-root/usr/bin/* /usr/bin/
32+
sudo cp -pr squashfs-root/usr/lib/* /usr/lib/
33+
rm -rf squashfs-root
34+
chmod -x linuxdeployqt-continuous-x86_64.AppImage
35+
- name: cache adwaita-qt
36+
uses: actions/cache@v3
37+
with:
38+
path: adwaita-qt-1.4.2.tar.gz
39+
key: adwaita-qt-1.4.2.tar.gz
1640
- name: build
1741
run: |
1842
make build-linux
1943
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
2044
with:
2145
name: minikube-gui-linux
22-
path: ./minikube-gui-linux.tar.gz
46+
path: ./minikube-gui-linux.AppImage

.github/workflows/tag-and-release.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,46 @@ jobs:
1212
git tag "v$VERSION"
1313
git push origin "v$VERSION"
1414
build-linux-release:
15-
runs-on: ubuntu-latest
15+
# AppImage requires ubuntu focal
16+
runs-on: ubuntu-20.04
1617
steps:
1718
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
1819
- uses: jurplel/install-qt-action@b3ea5275e37b734d027040e2c7fe7a10ea2ef946
1920
with:
2021
cache: true
22+
- name: cache linuxdeployqt
23+
id: cache-appimage
24+
uses: actions/cache@v3
25+
with:
26+
path: linuxdeployqt-continuous-x86_64.AppImage
27+
key: linuxdeployqt-x86_64
28+
- if: ${{ steps.cache-appimage.outputs.cache-hit != 'true' }}
29+
name: download linuxdeployqt
30+
run: |
31+
curl -LO https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
32+
- name: install linuxdeployqt
33+
run: |
34+
chmod +x linuxdeployqt-continuous-x86_64.AppImage
35+
./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract
36+
sudo cp -pr squashfs-root/usr/bin/* /usr/bin/
37+
sudo cp -pr squashfs-root/usr/lib/* /usr/lib/
38+
rm -rf squashfs-root
39+
chmod -x linuxdeployqt-continuous-x86_64.AppImage
40+
- name: cache adwaita-qt
41+
uses: actions/cache@v3
42+
with:
43+
path: adwaita-qt-1.4.2.tar.gz
44+
key: adwaita-qt-1.4.2.tar.gz
2145
- name: build
2246
run: |
2347
make build-linux
2448
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
2549
with:
2650
name: minikube-gui-linux-release
51+
path: ./minikube-gui-linux.AppImage
52+
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
53+
with:
54+
name: minikube-gui-linux-tar-release
2755
path: ./minikube-gui-linux.tar.gz
2856
build-macos-release:
2957
runs-on: macos-latest

GNUmakefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@
1616
build-linux: ## Build minikube-gui for Linux
1717
qmake
1818
make -f Makefile
19-
tar -czvf minikube-gui-linux.tar.gz -C ./bin ./minikube-gui
19+
scripts/build-linux.sh
20+
scripts/build-adwaita.sh
21+
export VERSION=$(subst v,,$(VERSION)) && \
22+
(cd ./bin && linuxdeployqt usr/share/applications/minikube-gui.desktop -verbose=1 -appimage -executable=usr/plugins/styles/adwaita.so)
23+
mv ./bin/*.AppImage ./minikube-gui-linux.AppImage
24+
tar -czvf minikube-gui-linux.tar.gz -C ./bin .
2025

2126
.PHONY: build-macos
2227
build-macos: ## Build minikube-gui for macOS

resources/minikube-gui.desktop

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=Minikube
4+
Exec=minikube-gui
5+
Icon=minikube
6+
Categories=Development;

scripts/build-adwaita.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/sh
2+
ADWAITAQT_VERSION=1.4.2
3+
4+
sudo -n apt-get update ||:
5+
sudo -n apt-get install -y cmake make pkg-config libx11-dev xcb libx11-xcb-dev libxkbcommon-dev sassc ||:
6+
7+
test -r adwaita-qt-${ADWAITAQT_VERSION}.tar.gz || \
8+
curl -RLOJ https://github.com/FedoraQt/adwaita-qt/archive/refs/tags/${ADWAITAQT_VERSION}.tar.gz
9+
mkdir -p bin
10+
cd bin
11+
tar xzf ../adwaita-qt-${ADWAITAQT_VERSION}.tar.gz
12+
cd adwaita-qt-${ADWAITAQT_VERSION}
13+
patch -p1 <<EOF
14+
diff --git a/CMakeLists.txt b/CMakeLists.txt
15+
index de9249e..9558d77 100644
16+
--- a/CMakeLists.txt
17+
+++ b/CMakeLists.txt
18+
@@ -1,6 +1,6 @@
19+
project(Adwaita)
20+
21+
-cmake_minimum_required(VERSION 3.17)
22+
+cmake_minimum_required(VERSION 3.16)
23+
24+
set(ADWAITAQT_VERSION_MAJOR 1)
25+
set(ADWAITAQT_VERSION "1.4.2")
26+
@@ -13,7 +13,7 @@ if (USE_QT6)
27+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
28+
set(ADWAITAQT_SUFFIX "6")
29+
else()
30+
- set(QT_MIN_VERSION "5.15.2")
31+
+ set(QT_MIN_VERSION "5.12.8")
32+
set(CMAKE_CXX_STANDARD 11)
33+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
34+
set(ADWAITAQT_SUFFIX "")
35+
EOF
36+
mkdir -p build
37+
cd build
38+
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DQT_PLUGINS_DIR=/usr/plugins -DCMAKE_BUILD_TYPE=RelWithDebInfo
39+
make -j2 VERBOSE=1
40+
cd ..
41+
mkdir dest
42+
make -C build -s install DESTDIR=$PWD/dest
43+
make -C build -s clean
44+
cd ..
45+
set -x
46+
mkdir -p usr/lib
47+
cp adwaita-qt-${ADWAITAQT_VERSION}/dest/usr/lib/*/libadwaitaqt.so.1 usr/lib
48+
cp adwaita-qt-${ADWAITAQT_VERSION}/dest/usr/lib/*/libadwaitaqtpriv.so.1 usr/lib
49+
mkdir -p usr/plugins/styles
50+
cp adwaita-qt-${ADWAITAQT_VERSION}/dest/usr/plugins/styles/adwaita.so usr/plugins/styles
51+
set +x
52+
rm -r adwaita-qt-${ADWAITAQT_VERSION}
53+
cd ..

scripts/build-linux.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/sh
2+
set -x
3+
mkdir -p ./bin/usr/bin
4+
cp bin/minikube-gui ./bin/usr/bin
5+
mkdir -p ./bin/usr/share/applications
6+
cp resources/minikube-gui.desktop ./bin/usr/share/applications
7+
mkdir -p ./bin/usr/share/icons/hicolor/512x512/apps
8+
cp resources/images/minikube.png ./bin/usr/share/icons/hicolor/512x512/apps

0 commit comments

Comments
 (0)