mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-09-11 11:45:27 +02:00
Fix Pipelines hopefully again nochmal ... :) AAAA BBBB fix Flatpack from main Flatpak again .... flatpak github packages test Flatpak? flatpakref fork-ready Install docs n fix Desktop Entries
This commit is contained in:
@@ -11,6 +11,10 @@ on:
|
|||||||
env:
|
env:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-windows-zip:
|
build-windows-zip:
|
||||||
name: Build Windows ZIP
|
name: Build Windows ZIP
|
||||||
@@ -83,8 +87,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
||||||
SHORT_SHA="${GITHUB_SHA::7}"
|
SHORT_SHA="${GITHUB_SHA::7}"
|
||||||
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
|
||||||
echo "SHORT_SHA=$SHORT_SHA" >> "$GITHUB_ENV"
|
|
||||||
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Set up Java 17
|
- name: Set up Java 17
|
||||||
@@ -153,6 +155,317 @@ jobs:
|
|||||||
path: dist/KST4Contest-*-linux-x86_64.AppImage
|
path: dist/KST4Contest-*-linux-x86_64.AppImage
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
|
|
||||||
|
build-linux-deb:
|
||||||
|
name: Build Debian package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Resolve nightly version info
|
||||||
|
run: |
|
||||||
|
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
||||||
|
SHORT_SHA="${GITHUB_SHA::7}"
|
||||||
|
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends fakeroot
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build Debian package
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type deb \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
DEB="$(ls dist/*.deb | head -n 1)"
|
||||||
|
if [ -z "$DEB" ]; then
|
||||||
|
echo "No DEB produced by jpackage" && exit 1
|
||||||
|
fi
|
||||||
|
mv "$DEB" "dist/${ASSET_BASENAME}-debian-amd64.deb"
|
||||||
|
|
||||||
|
- name: Upload Debian artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-debian
|
||||||
|
path: dist/KST4Contest-*-debian-amd64.deb
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
|
build-linux-rpm:
|
||||||
|
name: Build Fedora package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Resolve nightly version info
|
||||||
|
run: |
|
||||||
|
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
||||||
|
SHORT_SHA="${GITHUB_SHA::7}"
|
||||||
|
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends rpm
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build Fedora package
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type rpm \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
RPM="$(ls dist/*.rpm | head -n 1)"
|
||||||
|
if [ -z "$RPM" ]; then
|
||||||
|
echo "No RPM produced by jpackage" && exit 1
|
||||||
|
fi
|
||||||
|
mv "$RPM" "dist/${ASSET_BASENAME}-fedora-x86_64.rpm"
|
||||||
|
|
||||||
|
- name: Upload Fedora artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-fedora
|
||||||
|
path: dist/KST4Contest-*-fedora-x86_64.rpm
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
|
build-linux-arch:
|
||||||
|
name: Build Arch Linux package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Resolve nightly version info
|
||||||
|
run: |
|
||||||
|
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
||||||
|
SHORT_SHA="${GITHUB_SHA::7}"
|
||||||
|
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
||||||
|
echo "SHORT_SHA=$SHORT_SHA" >> "$GITHUB_ENV"
|
||||||
|
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends zstd
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build app-image with jpackage
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type app-image \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
|
||||||
|
- name: Build Arch Linux package artifact
|
||||||
|
run: |
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
PKGVER=$(printf '%s' "${VERSION}-${SHORT_SHA}" | sed 's/[^[:alnum:].+_]/_/g')
|
||||||
|
PKGROOT="target/archpkg"
|
||||||
|
rm -rf "$PKGROOT"
|
||||||
|
mkdir -p "$PKGROOT/usr/lib/KST4Contest" "$PKGROOT/usr/bin"
|
||||||
|
cp -a dist/KST4Contest/. "$PKGROOT/usr/lib/KST4Contest/"
|
||||||
|
cat > "$PKGROOT/usr/bin/KST4Contest" << 'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/lib/KST4Contest/bin/KST4Contest "$@"
|
||||||
|
EOF
|
||||||
|
chmod 755 "$PKGROOT/usr/bin/KST4Contest"
|
||||||
|
mkdir -p "$PKGROOT/usr/share/applications" "$PKGROOT/usr/share/icons/hicolor/256x256/apps"
|
||||||
|
cat > "$PKGROOT/usr/share/applications/KST4Contest.desktop" << 'EOF'
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=KST4Contest
|
||||||
|
Comment=ON4KST Chat Client for VHF/UHF contest operation
|
||||||
|
Exec=KST4Contest
|
||||||
|
Icon=KST4Contest
|
||||||
|
Categories=Network;HamRadio;
|
||||||
|
Terminal=false
|
||||||
|
EOF
|
||||||
|
if [ -f "$PKGROOT/usr/lib/KST4Contest/lib/KST4Contest.png" ]; then
|
||||||
|
cp "$PKGROOT/usr/lib/KST4Contest/lib/KST4Contest.png" "$PKGROOT/usr/share/icons/hicolor/256x256/apps/KST4Contest.png"
|
||||||
|
fi
|
||||||
|
INSTALLED_SIZE=$(du -sk "$PKGROOT" | cut -f1)
|
||||||
|
cat > "$PKGROOT/.PKGINFO" << EOF
|
||||||
|
pkgname = kst4contest
|
||||||
|
pkgbase = kst4contest
|
||||||
|
pkgver = ${PKGVER}-1
|
||||||
|
pkgdesc = KST4Contest amateur radio contest logger
|
||||||
|
url = https://github.com/${{ github.repository }}
|
||||||
|
builddate = $(date +%s)
|
||||||
|
packager = GitHub Actions
|
||||||
|
size = ${INSTALLED_SIZE}
|
||||||
|
arch = ${ARCH}
|
||||||
|
license = custom
|
||||||
|
depend = java-runtime
|
||||||
|
EOF
|
||||||
|
tar --zstd -cf "dist/${ASSET_BASENAME}-archlinux-${ARCH}.pkg.tar.zst" -C "$PKGROOT" .
|
||||||
|
|
||||||
|
- name: Upload Arch Linux artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-arch
|
||||||
|
path: dist/KST4Contest-*-archlinux-*.pkg.tar.zst
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
|
build-flatpak:
|
||||||
|
name: Build Flatpak
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Resolve nightly version info
|
||||||
|
run: |
|
||||||
|
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
|
||||||
|
SHORT_SHA="${GITHUB_SHA::7}"
|
||||||
|
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
|
||||||
|
echo "SHORT_SHA=$SHORT_SHA" >> "$GITHUB_ENV"
|
||||||
|
echo "ASSET_BASENAME=KST4Contest-${VERSION}-${SHORT_SHA}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Install Flatpak tooling
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends flatpak flatpak-builder elfutils
|
||||||
|
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
flatpak --user install -y flathub org.freedesktop.Platform//24.08 org.freedesktop.Sdk//24.08
|
||||||
|
|
||||||
|
- name: Build app-image with jpackage
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
mkdir -p target/flatpak-src
|
||||||
|
jpackage \
|
||||||
|
--type app-image \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest target/flatpak-src
|
||||||
|
|
||||||
|
- name: Create Flatpak manifest
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
cat > target/de.x08.KST4Contest.yml << 'EOF'
|
||||||
|
app-id: de.x08.KST4Contest
|
||||||
|
runtime: org.freedesktop.Platform
|
||||||
|
runtime-version: "24.08"
|
||||||
|
sdk: org.freedesktop.Sdk
|
||||||
|
command: KST4Contest
|
||||||
|
finish-args:
|
||||||
|
- --socket=wayland
|
||||||
|
- --socket=x11
|
||||||
|
- --share=network
|
||||||
|
- --share=ipc
|
||||||
|
- --device=dri
|
||||||
|
modules:
|
||||||
|
- name: kst4contest
|
||||||
|
buildsystem: simple
|
||||||
|
build-commands:
|
||||||
|
- install -d /app/lib/KST4Contest /app/bin /app/share/applications
|
||||||
|
- cp -a . /app/lib/KST4Contest/
|
||||||
|
- printf '#!/bin/sh\nexec /app/lib/KST4Contest/bin/KST4Contest "$@"\n' > /app/bin/KST4Contest
|
||||||
|
- chmod 755 /app/bin/KST4Contest
|
||||||
|
- echo '[Desktop Entry]' > /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Type=Application' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Name=KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Comment=ON4KST Chat Client for VHF/UHF contest operation' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Exec=KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Icon=de.x08.KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- printf 'Categories=Network;HamRadio;\n' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Terminal=false' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- test -f /app/lib/KST4Contest/lib/KST4Contest.png && install -Dm644 /app/lib/KST4Contest/lib/KST4Contest.png /app/share/icons/hicolor/256x256/apps/de.x08.KST4Contest.png || true
|
||||||
|
sources:
|
||||||
|
- type: dir
|
||||||
|
path: flatpak-src/KST4Contest
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Build Flatpak bundle
|
||||||
|
run: |
|
||||||
|
flatpak-builder --force-clean target/flatpak-build target/de.x08.KST4Contest.yml
|
||||||
|
flatpak build-export target/flatpak-repo target/flatpak-build
|
||||||
|
flatpak build-bundle target/flatpak-repo "dist/${ASSET_BASENAME}-linux-x86_64.flatpak" de.x08.KST4Contest
|
||||||
|
|
||||||
|
- name: Upload Flatpak artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-flatpak
|
||||||
|
path: dist/KST4Contest-*-linux-x86_64.flatpak
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
build-macos-dmg:
|
build-macos-dmg:
|
||||||
name: Build macOS DMG (${{ matrix.os }})
|
name: Build macOS DMG (${{ matrix.os }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ on:
|
|||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
env:
|
env:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||||
@@ -134,6 +135,313 @@ jobs:
|
|||||||
name: linux-appimage
|
name: linux-appimage
|
||||||
path: dist/KST4Contest-${{ github.ref_name }}-linux-x86_64.AppImage
|
path: dist/KST4Contest-${{ github.ref_name }}-linux-x86_64.AppImage
|
||||||
|
|
||||||
|
build-linux-deb:
|
||||||
|
name: Build Debian package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends fakeroot
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build Debian package
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type deb \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
DEB="$(ls dist/*.deb | head -n 1)"
|
||||||
|
if [ -z "$DEB" ]; then
|
||||||
|
echo "No DEB produced by jpackage" && exit 1
|
||||||
|
fi
|
||||||
|
mv "$DEB" "dist/KST4Contest-${{ github.ref_name }}-debian-amd64.deb"
|
||||||
|
|
||||||
|
- name: Upload Debian artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-debian
|
||||||
|
path: dist/KST4Contest-${{ github.ref_name }}-debian-amd64.deb
|
||||||
|
|
||||||
|
build-linux-rpm:
|
||||||
|
name: Build Fedora package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends rpm
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build Fedora package
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type rpm \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
RPM="$(ls dist/*.rpm | head -n 1)"
|
||||||
|
if [ -z "$RPM" ]; then
|
||||||
|
echo "No RPM produced by jpackage" && exit 1
|
||||||
|
fi
|
||||||
|
mv "$RPM" "dist/KST4Contest-${{ github.ref_name }}-fedora-x86_64.rpm"
|
||||||
|
|
||||||
|
- name: Upload Fedora artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-fedora
|
||||||
|
path: dist/KST4Contest-${{ github.ref_name }}-fedora-x86_64.rpm
|
||||||
|
|
||||||
|
build-linux-arch:
|
||||||
|
name: Build Arch Linux package
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Install packaging dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends zstd
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Build JAR and copy runtime dependencies
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
|
||||||
|
- name: Build app-image with jpackage
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
jpackage \
|
||||||
|
--type app-image \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest dist
|
||||||
|
|
||||||
|
- name: Build Arch Linux package artifact
|
||||||
|
run: |
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
PKGVER=$(printf '%s' "${{ github.ref_name }}" | sed 's/[^[:alnum:].+_]/_/g')
|
||||||
|
PKGROOT="target/archpkg"
|
||||||
|
rm -rf "$PKGROOT"
|
||||||
|
mkdir -p "$PKGROOT/usr/lib/KST4Contest" "$PKGROOT/usr/bin"
|
||||||
|
cp -a dist/KST4Contest/. "$PKGROOT/usr/lib/KST4Contest/"
|
||||||
|
cat > "$PKGROOT/usr/bin/KST4Contest" << 'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/lib/KST4Contest/bin/KST4Contest "$@"
|
||||||
|
EOF
|
||||||
|
chmod 755 "$PKGROOT/usr/bin/KST4Contest"
|
||||||
|
mkdir -p "$PKGROOT/usr/share/applications" "$PKGROOT/usr/share/icons/hicolor/256x256/apps"
|
||||||
|
cat > "$PKGROOT/usr/share/applications/KST4Contest.desktop" << 'EOF'
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=KST4Contest
|
||||||
|
Comment=ON4KST Chat Client for VHF/UHF contest operation
|
||||||
|
Exec=KST4Contest
|
||||||
|
Icon=KST4Contest
|
||||||
|
Categories=Network;HamRadio;
|
||||||
|
Terminal=false
|
||||||
|
EOF
|
||||||
|
if [ -f "$PKGROOT/usr/lib/KST4Contest/lib/KST4Contest.png" ]; then
|
||||||
|
cp "$PKGROOT/usr/lib/KST4Contest/lib/KST4Contest.png" "$PKGROOT/usr/share/icons/hicolor/256x256/apps/KST4Contest.png"
|
||||||
|
fi
|
||||||
|
INSTALLED_SIZE=$(du -sk "$PKGROOT" | cut -f1)
|
||||||
|
cat > "$PKGROOT/.PKGINFO" << EOF
|
||||||
|
pkgname = kst4contest
|
||||||
|
pkgbase = kst4contest
|
||||||
|
pkgver = ${PKGVER}-1
|
||||||
|
pkgdesc = KST4Contest amateur radio contest logger
|
||||||
|
url = https://github.com/${{ github.repository }}
|
||||||
|
builddate = $(date +%s)
|
||||||
|
packager = GitHub Actions
|
||||||
|
size = ${INSTALLED_SIZE}
|
||||||
|
arch = ${ARCH}
|
||||||
|
license = custom
|
||||||
|
depend = java-runtime
|
||||||
|
EOF
|
||||||
|
tar --zstd -cf "dist/KST4Contest-${{ github.ref_name }}-archlinux-${ARCH}.pkg.tar.zst" -C "$PKGROOT" .
|
||||||
|
|
||||||
|
- name: Upload Arch Linux artifact
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: linux-arch
|
||||||
|
path: dist/KST4Contest-${{ github.ref_name }}-archlinux-*.pkg.tar.zst
|
||||||
|
|
||||||
|
build-flatpak:
|
||||||
|
name: Build Flatpak
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.7
|
||||||
|
|
||||||
|
- name: Set up Java 17
|
||||||
|
uses: actions/setup-java@v4.1.0
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- name: Ensure mvnw is executable
|
||||||
|
run: chmod +x mvnw
|
||||||
|
|
||||||
|
- name: Install Flatpak tooling
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y --no-install-recommends flatpak flatpak-builder elfutils
|
||||||
|
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
flatpak --user install -y flathub org.freedesktop.Platform//24.08 org.freedesktop.Sdk//24.08
|
||||||
|
|
||||||
|
- name: Build app-image with jpackage
|
||||||
|
run: |
|
||||||
|
./mvnw -B -DskipTests package dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory=target/dist-libs
|
||||||
|
cp "$(ls -t target/praktiKST-*.jar | head -n 1)" target/dist-libs/app.jar
|
||||||
|
mkdir -p target/flatpak-src
|
||||||
|
jpackage \
|
||||||
|
--type app-image \
|
||||||
|
--name KST4Contest \
|
||||||
|
--input target/dist-libs \
|
||||||
|
--main-jar app.jar \
|
||||||
|
--main-class kst4contest.view.Kst4ContestApplication \
|
||||||
|
--module-path target/dist-libs \
|
||||||
|
--add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \
|
||||||
|
--dest target/flatpak-src
|
||||||
|
|
||||||
|
- name: Create Flatpak manifest
|
||||||
|
run: |
|
||||||
|
mkdir -p dist
|
||||||
|
cat > target/de.x08.KST4Contest.yml << 'EOF'
|
||||||
|
app-id: de.x08.KST4Contest
|
||||||
|
runtime: org.freedesktop.Platform
|
||||||
|
runtime-version: "24.08"
|
||||||
|
sdk: org.freedesktop.Sdk
|
||||||
|
command: KST4Contest
|
||||||
|
finish-args:
|
||||||
|
- --socket=wayland
|
||||||
|
- --socket=x11
|
||||||
|
- --share=network
|
||||||
|
- --share=ipc
|
||||||
|
- --device=dri
|
||||||
|
modules:
|
||||||
|
- name: kst4contest
|
||||||
|
buildsystem: simple
|
||||||
|
build-commands:
|
||||||
|
- install -d /app/lib/KST4Contest /app/bin /app/share/applications
|
||||||
|
- cp -a . /app/lib/KST4Contest/
|
||||||
|
- printf '#!/bin/sh\nexec /app/lib/KST4Contest/bin/KST4Contest "$@"\n' > /app/bin/KST4Contest
|
||||||
|
- chmod 755 /app/bin/KST4Contest
|
||||||
|
- echo '[Desktop Entry]' > /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Type=Application' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Name=KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Comment=ON4KST Chat Client for VHF/UHF contest operation' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Exec=KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Icon=de.x08.KST4Contest' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- printf 'Categories=Network;HamRadio;\n' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- echo 'Terminal=false' >> /app/share/applications/de.x08.KST4Contest.desktop
|
||||||
|
- test -f /app/lib/KST4Contest/lib/KST4Contest.png && install -Dm644 /app/lib/KST4Contest/lib/KST4Contest.png /app/share/icons/hicolor/256x256/apps/de.x08.KST4Contest.png || true
|
||||||
|
sources:
|
||||||
|
- type: dir
|
||||||
|
path: flatpak-src/KST4Contest
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Import Flatpak signing key
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.FLATPAK_GPG_PRIVATE_KEY }}" | gpg --batch --import
|
||||||
|
FLATPAK_GPG_KEY_ID=$(gpg --list-secret-keys --with-colons | awk -F: '/^fpr/{print $10; exit}')
|
||||||
|
echo "FLATPAK_GPG_KEY_ID=$FLATPAK_GPG_KEY_ID" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Build Flatpak repo
|
||||||
|
run: |
|
||||||
|
flatpak-builder --force-clean target/flatpak-build target/de.x08.KST4Contest.yml
|
||||||
|
flatpak build-export --gpg-sign="$FLATPAK_GPG_KEY_ID" target/flatpak-repo target/flatpak-build stable
|
||||||
|
flatpak build-update-repo --gpg-sign="$FLATPAK_GPG_KEY_ID" target/flatpak-repo
|
||||||
|
|
||||||
|
- name: Create flatpakref
|
||||||
|
run: |
|
||||||
|
REPO_NAME="${GITHUB_REPOSITORY#*/}"
|
||||||
|
PAGES_URL="https://${GITHUB_REPOSITORY_OWNER}.github.io/${REPO_NAME}/"
|
||||||
|
GPG_KEY_B64=$(gpg --export "$FLATPAK_GPG_KEY_ID" | base64 -w 0)
|
||||||
|
cat > "dist/de.x08.KST4Contest.flatpakref" << EOF
|
||||||
|
[Flatpak Ref]
|
||||||
|
Name=de.x08.KST4Contest
|
||||||
|
Branch=stable
|
||||||
|
Title=KST4Contest – ON4KST Chat Client
|
||||||
|
Url=${PAGES_URL}
|
||||||
|
RuntimeRepo=https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
GPGKey=${GPG_KEY_B64}
|
||||||
|
IsRuntime=false
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Upload flatpakref
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: flatpakref
|
||||||
|
path: dist/de.x08.KST4Contest.flatpakref
|
||||||
|
|
||||||
|
- name: Upload Flatpak OSTree repo
|
||||||
|
uses: actions/upload-artifact@v4.3.4
|
||||||
|
with:
|
||||||
|
name: flatpak-ostree-repo
|
||||||
|
path: target/flatpak-repo/
|
||||||
|
|
||||||
build-macos-dmg:
|
build-macos-dmg:
|
||||||
name: Build macOS DMG (${{ matrix.os }})
|
name: Build macOS DMG (${{ matrix.os }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
@@ -267,14 +575,47 @@ jobs:
|
|||||||
name: docs-pdf
|
name: docs-pdf
|
||||||
path: dist/KST4Contest-${{ github.ref_name }}-manual-*.pdf
|
path: dist/KST4Contest-${{ github.ref_name }}-manual-*.pdf
|
||||||
|
|
||||||
|
publish-flatpak-repo:
|
||||||
|
name: Publish Flatpak OSTree Repo to GitHub Pages
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build-flatpak
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Download OSTree repo artifact
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: flatpak-ostree-repo
|
||||||
|
path: flatpak-ostree-repo/
|
||||||
|
|
||||||
|
- name: Download flatpakref
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: flatpakref
|
||||||
|
path: flatpak-ostree-repo/
|
||||||
|
|
||||||
|
- name: Push to flatpak-repo branch
|
||||||
|
run: |
|
||||||
|
cd flatpak-ostree-repo
|
||||||
|
git init
|
||||||
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git add -A
|
||||||
|
git commit -m "Flatpak repo: ${{ github.ref_name }}"
|
||||||
|
git push --force https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git HEAD:flatpak-repo
|
||||||
|
|
||||||
release-tag:
|
release-tag:
|
||||||
name: Publish Tagged Release
|
name: Publish Tagged Release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs:
|
needs:
|
||||||
- build-windows-zip
|
- build-windows-zip
|
||||||
- build-linux-appimage
|
- build-linux-appimage
|
||||||
|
- build-linux-deb
|
||||||
|
- build-linux-rpm
|
||||||
|
- build-linux-arch
|
||||||
- build-macos-dmg
|
- build-macos-dmg
|
||||||
|
- build-flatpak
|
||||||
- build-docs-pdf
|
- build-docs-pdf
|
||||||
|
- publish-flatpak-repo
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download Windows artifact
|
- name: Download Windows artifact
|
||||||
@@ -296,6 +637,30 @@ jobs:
|
|||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
path: release-assets/macos
|
path: release-assets/macos
|
||||||
|
|
||||||
|
- name: Download Debian artifact
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: linux-debian
|
||||||
|
path: release-assets/debian
|
||||||
|
|
||||||
|
- name: Download Fedora artifact
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: linux-fedora
|
||||||
|
path: release-assets/fedora
|
||||||
|
|
||||||
|
- name: Download Arch Linux artifact
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: linux-arch
|
||||||
|
path: release-assets/archlinux
|
||||||
|
|
||||||
|
- name: Download flatpakref
|
||||||
|
uses: actions/download-artifact@v4.1.3
|
||||||
|
with:
|
||||||
|
name: flatpakref
|
||||||
|
path: release-assets/flatpakref
|
||||||
|
|
||||||
- name: Download PDF manuals
|
- name: Download PDF manuals
|
||||||
uses: actions/download-artifact@v4.1.3
|
uses: actions/download-artifact@v4.1.3
|
||||||
with:
|
with:
|
||||||
@@ -316,6 +681,10 @@ jobs:
|
|||||||
artifacts: >-
|
artifacts: >-
|
||||||
release-assets/windows/praktiKST-${{ github.ref_name }}-windows-x64.zip,
|
release-assets/windows/praktiKST-${{ github.ref_name }}-windows-x64.zip,
|
||||||
release-assets/linux/KST4Contest-${{ github.ref_name }}-linux-x86_64.AppImage,
|
release-assets/linux/KST4Contest-${{ github.ref_name }}-linux-x86_64.AppImage,
|
||||||
|
release-assets/debian/KST4Contest-${{ github.ref_name }}-debian-amd64.deb,
|
||||||
|
release-assets/fedora/KST4Contest-${{ github.ref_name }}-fedora-x86_64.rpm,
|
||||||
|
release-assets/archlinux/KST4Contest-${{ github.ref_name }}-archlinux-*.pkg.tar.zst,
|
||||||
|
release-assets/flatpakref/de.x08.KST4Contest.flatpakref,
|
||||||
release-assets/macos/KST4Contest-${{ github.ref_name }}-macos-*.dmg,
|
release-assets/macos/KST4Contest-${{ github.ref_name }}-macos-*.dmg,
|
||||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-en.pdf,
|
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-en.pdf,
|
||||||
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
release-assets/docs/KST4Contest-${{ github.ref_name }}-manual-de.pdf
|
||||||
|
|||||||
@@ -42,11 +42,19 @@ Der Dateiname hat das Format `praktiKST-v<Versionsnummer>-windows-x64.zip `.
|
|||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
Die aktuelle Version kann als AppImage heruntergeladen werden:
|
Mehrere Paketformate stehen auf der Releases-Seite zur Verfügung:
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
**https://github.com/praktimarc/kst4contest/releases/latest**
|
||||||
|
|
||||||
Der Dateiname hat das Format `KST4Contest-v<Versionsnummer>-linux-x86_64.AppImage`.
|
| Format | Dateiname | Geeignet für |
|
||||||
|
|---|---|---|
|
||||||
|
| AppImage | `KST4Contest-v<Version>-linux-x86_64.AppImage` | Alle Distributionen |
|
||||||
|
| Debian-Paket | `KST4Contest-v<Version>-debian-amd64.deb` | Debian, Ubuntu, Linux Mint, … |
|
||||||
|
| RPM-Paket | `KST4Contest-v<Version>-fedora-x86_64.rpm` | Fedora, RHEL, openSUSE, … |
|
||||||
|
| Arch-Paket | `KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst` | Arch Linux, Manjaro, … |
|
||||||
|
| Flatpak | `de.x08.KST4Contest.flatpakref` | Alle Distributionen mit Flatpak |
|
||||||
|
|
||||||
|
> **Empfehlung für Linux:** Die Flatpak-Installation ist der einfachste Weg, immer aktuell zu bleiben – `flatpak update` erledigt alle zukünftigen Updates automatisch. Das Repository ist GPG-signiert.
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
@@ -72,12 +80,47 @@ Der Dateiname hat das Format `KST4Contest-v<Versionsnummer>-macos-<Architektur>.
|
|||||||
Die Einstellungen werden unter `%USERPROFILE%\.praktikst\preferences.xml` gespeichert.
|
Die Einstellungen werden unter `%USERPROFILE%\.praktikst\preferences.xml` gespeichert.
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
1. AppImage herunterladen.
|
|
||||||
2. AppImage in gewünschten Ordner entpacken.
|
|
||||||
3. AppImage ausführbar machen (geht im Terminal mit `chmod +x KST4Contest-v<Versionsnummer>-linux-x86_64.AppImage`)
|
|
||||||
4. AppImage ausführen.
|
|
||||||
|
|
||||||
Die Einstellungen werden unter `~/.praktikst/preferences.xml` gespeichert.
|
Die Einstellungen werden immer unter `~/.praktikst/preferences.xml` gespeichert.
|
||||||
|
|
||||||
|
#### AppImage
|
||||||
|
|
||||||
|
1. AppImage herunterladen.
|
||||||
|
2. Ausführbar machen: `chmod +x KST4Contest-v<Version>-linux-x86_64.AppImage`
|
||||||
|
3. Starten.
|
||||||
|
|
||||||
|
#### Debian / Ubuntu
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
Oder die `.deb`-Datei im Dateimanager doppelklicken.
|
||||||
|
|
||||||
|
#### Fedora / RHEL
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install ./KST4Contest-v<Version>-fedora-x86_64.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Arch Linux
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Flatpak
|
||||||
|
|
||||||
|
Die Datei `de.x08.KST4Contest.flatpakref` aus dem [aktuellen Release](https://github.com/praktimarc/kst4contest/releases/latest) herunterladen und öffnen, oder:
|
||||||
|
```bash
|
||||||
|
flatpak install de.x08.KST4Contest.flatpakref
|
||||||
|
```
|
||||||
|
|
||||||
|
Oder den Remote manuell hinzufügen:
|
||||||
|
```bash
|
||||||
|
flatpak remote-add kst4contest https://praktimarc.github.io/kst4contest/
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
1. DMG-Datei für die eigene Architektur herunterladen (Apple Silicon oder Intel).
|
1. DMG-Datei für die eigene Architektur herunterladen (Apple Silicon oder Intel).
|
||||||
@@ -114,10 +157,11 @@ Die Einstellungsdatei (`preferences.xml`) bleibt erhalten, da sie im Benutzerord
|
|||||||
|
|
||||||
#### Linux
|
#### Linux
|
||||||
|
|
||||||
Derzeit folgendermaßen:
|
- **AppImage**: Neues AppImage herunterladen, ausführbar machen (`chmod +x`), altes optional löschen.
|
||||||
1. neues AppImage herunterladen
|
- **Debian/Ubuntu**: `sudo apt install ./KST4Contest-v<Version>-debian-amd64.deb`
|
||||||
2. neues AppImage ausführbar makieren
|
- **Fedora/RHEL**: `sudo dnf upgrade ./KST4Contest-v<Version>-fedora-x86_64.rpm`
|
||||||
3. (optional) altes AppImage löschen.
|
- **Arch Linux**: `sudo pacman -U KST4Contest-v<Version>-archlinux-x86_64.pkg.tar.zst`
|
||||||
|
- **Flatpak (Repository)**: `flatpak update` – aktualisiert alle Flatpak-Apps einschließlich KST4Contest.
|
||||||
|
|
||||||
#### macOS
|
#### macOS
|
||||||
|
|
||||||
|
|||||||
@@ -42,11 +42,19 @@ The filename has the format `praktiKST-v<version_number>-windows-x64.zip`.
|
|||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
The latest version can be downloaded as an AppImage:
|
Multiple package formats are available from the releases page:
|
||||||
|
|
||||||
**https://github.com/praktimarc/kst4contest/releases/latest**
|
**https://github.com/praktimarc/kst4contest/releases/latest**
|
||||||
|
|
||||||
The filename has the format `KST4Contest-v<version_number>-linux-x86_64.AppImage`.
|
| Format | Filename | Suitable for |
|
||||||
|
|---|---|---|
|
||||||
|
| AppImage | `KST4Contest-v<version>-linux-x86_64.AppImage` | All distributions |
|
||||||
|
| Debian package | `KST4Contest-v<version>-debian-amd64.deb` | Debian, Ubuntu, Linux Mint, … |
|
||||||
|
| RPM package | `KST4Contest-v<version>-fedora-x86_64.rpm` | Fedora, RHEL, openSUSE, … |
|
||||||
|
| Arch package | `KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst` | Arch Linux, Manjaro, … |
|
||||||
|
| Flatpak | `de.x08.KST4Contest.flatpakref` | All distributions with Flatpak |
|
||||||
|
|
||||||
|
> **Recommended for Linux:** The Flatpak installation is the easiest way to stay up to date — `flatpak update` handles all future updates automatically. The repository is GPG-signed for security.
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
@@ -72,12 +80,47 @@ The filename has the format `KST4Contest-v<version_number>-macos-<arch>.dmg`, wh
|
|||||||
Settings are stored at `%USERPROFILE%\.praktikst\preferences.xml`.
|
Settings are stored at `%USERPROFILE%\.praktikst\preferences.xml`.
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
1. Download the AppImage.
|
|
||||||
2. Unzip the AppImage into a folder of your choice.
|
|
||||||
3. Make the AppImage executable (in the terminal with `chmod +x KST4Contest-v<version_number>-linux-x86_64.AppImage`)
|
|
||||||
4. Run the AppImage.
|
|
||||||
|
|
||||||
Settings are stored at `~/.praktikst/preferences.xml`.
|
Settings are always stored at `~/.praktikst/preferences.xml`.
|
||||||
|
|
||||||
|
#### AppImage
|
||||||
|
|
||||||
|
1. Download the AppImage.
|
||||||
|
2. Make it executable: `chmod +x KST4Contest-v<version>-linux-x86_64.AppImage`
|
||||||
|
3. Run it.
|
||||||
|
|
||||||
|
#### Debian / Ubuntu
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install ./KST4Contest-v<version>-debian-amd64.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
Or double-click the `.deb` file in your file manager.
|
||||||
|
|
||||||
|
#### Fedora / RHEL
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install ./KST4Contest-v<version>-fedora-x86_64.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Arch Linux
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Flatpak
|
||||||
|
|
||||||
|
Download `de.x08.KST4Contest.flatpakref` from the [latest release](https://github.com/praktimarc/kst4contest/releases/latest) and open it, or run:
|
||||||
|
```bash
|
||||||
|
flatpak install de.x08.KST4Contest.flatpakref
|
||||||
|
```
|
||||||
|
|
||||||
|
Or add the remote manually:
|
||||||
|
```bash
|
||||||
|
flatpak remote-add kst4contest https://praktimarc.github.io/kst4contest/
|
||||||
|
flatpak install kst4contest de.x08.KST4Contest
|
||||||
|
```
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
1. Download the DMG file for your architecture (Apple Silicon or Intel).
|
1. Download the DMG file for your architecture (Apple Silicon or Intel).
|
||||||
@@ -114,10 +157,11 @@ The settings file (`preferences.xml`) is preserved because it is stored in the u
|
|||||||
|
|
||||||
#### Linux
|
#### Linux
|
||||||
|
|
||||||
Currently as follows:
|
- **AppImage**: Download the new AppImage, make it executable (`chmod +x`), optionally delete the old one.
|
||||||
1. Download the new AppImage
|
- **Debian/Ubuntu**: `sudo apt install ./KST4Contest-v<version>-debian-amd64.deb`
|
||||||
2. Mark the new AppImage as executable
|
- **Fedora/RHEL**: `sudo dnf upgrade ./KST4Contest-v<version>-fedora-x86_64.rpm`
|
||||||
3. (optional) Delete the old AppImage.
|
- **Arch Linux**: `sudo pacman -U KST4Contest-v<version>-archlinux-x86_64.pkg.tar.zst`
|
||||||
|
- **Flatpak (repository)**: `flatpak update` – updates all Flatpak apps including KST4Contest.
|
||||||
|
|
||||||
#### macOS
|
#### macOS
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user