diff --git a/mkosi.extra/usr/lib/install-new-flatpaks b/mkosi.extra/usr/lib/install-new-flatpaks index 621827d..4f1c72c 100755 --- a/mkosi.extra/usr/lib/install-new-flatpaks +++ b/mkosi.extra/usr/lib/install-new-flatpaks @@ -5,15 +5,19 @@ set -eu FACTORY_DIR="/usr/share/factory/var/lib/flatpak/app" +FACTORY_RUNTIME_DIR="/usr/share/factory/var/lib/flatpak/runtime" REPO_CONFIG="/usr/share/factory/var/lib/flatpak/repo/config" DEFAULT_REMOTE="flathub" -INSTALLED_APPS=$(tr '\n' ' ' <<< $(flatpak list --app --columns=application)) +INSTALLED_APPS=$(tr '\n' ' ' <<< $(flatpak list --columns=application)) EVER_PREINSTALLED_APPS_FILE="/var/lib/kde-linux/ever-preinstalled-flatpak-apps" EVER_PREINSTALLED_APPS=$(tr '\n' ' ' < $EVER_PREINSTALLED_APPS_FILE) -echo "Looking in $FACTORY_DIR for new pre-installed apps that need installing…" +echo "Looking in $FACTORY_DIR and $FACTORY_RUNTIME_DIR for new pre-installed apps and addons that need installing…" -for APP in "$FACTORY_DIR"/*; do +APPS=$(ls $FACTORY_DIR) +ADDONS=$(find $FACTORY_RUNTIME_DIR -maxdepth 1 -type d -name "*.Addon.*" -printf "%f\n") + +for APP in $APPS $ADDONS; do # trim trailing slash APP=$(basename "$APP") @@ -35,7 +39,7 @@ for APP in "$FACTORY_DIR"/*; do # See if we have a special repo to install it from NON_RDNS_NAME="${APP#*.*.}" - SPECIAL_APP_REMOTE_NAME=$(rg "$NON_RDNS_NAME" "$REPO_CONFIG" | head -n 1 | cut -d '"' -f 2 || true) + SPECIAL_APP_REMOTE_NAME=$(rg "\[remote.*${NON_RDNS_NAME}" "$REPO_CONFIG" | head -n 1 | cut -d '"' -f 2 || true) if [[ -n "$SPECIAL_APP_REMOTE_NAME" ]]; then echo "$APP needs to be installed from a special repo: $SPECIAL_APP_REMOTE_NAME" REMOTE="$SPECIAL_APP_REMOTE_NAME" diff --git a/mkosi.extra/usr/lib/seed-preinstalled-flatpak-list b/mkosi.extra/usr/lib/seed-preinstalled-flatpak-list index 8dbf495..bca62ca 100755 --- a/mkosi.extra/usr/lib/seed-preinstalled-flatpak-list +++ b/mkosi.extra/usr/lib/seed-preinstalled-flatpak-list @@ -25,7 +25,10 @@ org.mozilla.firefox EOF else # This is a brand new system. The set of apps that have ever been preinstalled on the system - # is exactly those in /usr/share/factory/var/lib/flatpak/app + # is exactly those in /usr/share/factory/var/lib/flatpak/app. We also need to identify + # addons in /usr/share/factory/var/lib/flatpak/runtime, which we do based on naming convention. echo "New KDE Linux install: using preinstalled app list from factory directory" ls /usr/share/factory/var/lib/flatpak/app > $EVER_PREINSTALLED_APPS_FILE + find /usr/share/factory/var/lib/flatpak/runtime \ + -maxdepth 1 -type d -name "*.Addon.*" -printf "%f\n" >> $EVER_PREINSTALLED_APPS_FILE fi