#!/bin/bash set -e SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") function retry_command { # Package servers tend to be unreliable at times.. # Retry a bunch of times. local RETRIES=10 for i in $(seq 1 "$RETRIES"); do "$@" && break if [ "$i" == "$RETRIES" ]; then echo "Command \"$@\" failed after ${RETRIES} retries." exit 1 fi done } ARCH=x86_64 KDE_BRANCH=6.5 BRANCH=22.08 FLAT_MANAGER_CLIENT_DIR="$HOME/.local/bin" # Build packages. Mostly needed for flat-manager-client. declare -a BUILD_PACKAGES=( "flatpak" "flatpak-builder" "appstream-util" "python3-aiohttp" "python3-tenacity" "python3-gi" "gobject-introspection" "libappstream-glib8" "libappstream-glib-dev" "libappstream-dev" "gir1.2-ostree-1.0" ) # Flatpak runtimes and SDKs. declare -a FLATPAK_PACKAGES=( "org.kde.Platform/${ARCH}/${KDE_BRANCH}" "org.kde.Sdk/${ARCH}/${KDE_BRANCH}" "org.freedesktop.Sdk.Extension.llvm16/${ARCH}/${BRANCH}" "org.freedesktop.appstream-glib/${ARCH}/stable" ) retry_command sudo apt-get -qq update # Install packages needed for building echo "Will install the following packages for building - ${BUILD_PACKAGES[*]}" retry_command sudo apt-get -y install "${BUILD_PACKAGES[@]}" sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # Install packages needed for building echo "Will install the following packages for building - ${FLATPAK_PACKAGES[*]}" retry_command sudo flatpak -y install "${FLATPAK_PACKAGES[@]}" echo "Downloading flat-manager-client" mkdir -p "$FLAT_MANAGER_CLIENT_DIR" pushd "$FLAT_MANAGER_CLIENT_DIR" aria2c -Z "https://raw.githubusercontent.com/flatpak/flat-manager/9401efbdc0d6bd489507d8401c567ba219d735d5/flat-manager-client" chmod +x flat-manager-client echo "$FLAT_MANAGER_CLIENT_DIR" >> $GITHUB_PATH popd