fix(default-flatpaks): Allow usage of Fedora flatpak remote (#359)
* fix(default-flatpaks): Allow usage of Fedora flatpak remote * docs(default-flatpaks): Some further clarifications for retaining Fedora flatpak remote
This commit is contained in:
parent
d58fa1e26d
commit
1d7243782a
3 changed files with 76 additions and 46 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# `default-flatpaks`
|
||||
|
||||
The `default-flatpaks` module can be used to install or uninstall Flatpaks from a configurable remote on every boot. It skips that operation if no changes are detected. This module first removes the Fedora Flatpaks remote and Flatpaks that come pre-installed in Fedora. A Flatpak remote is configured the first time the module is used, but it can be re-configured in subsequent usages of the module. If no Flatpak remote is specified, the module will default to using Flathub.
|
||||
The `default-flatpaks` module can be used to install or uninstall Flatpaks from a configurable remote on every boot. It skips that operation if no changes are detected. This module, first removes the Fedora Flatpaks remote and Flatpaks that come pre-installed in Fedora (unless Fedora remote is strictly specified in recipe). A Flatpak remote is configured the first time the module is used, but it can be re-configured in subsequent usages of the module. If no Flatpak remote is specified, the module will default to using Flathub.
|
||||
|
||||
Flatpaks can either be installed system-wide or per-user. Per-user Flatpaks will be installed separately for every user on a system. Previously-installed flatpaks can also be removed.
|
||||
|
||||
|
|
@ -20,6 +20,8 @@ This module stores the Flatpak remote configuration and Flatpak install/remove l
|
|||
|
||||
This module also supports disabling & enabling notifications. If not specified in the recipe, notifications are disabled by default.
|
||||
|
||||
If you wish to continue the use of Fedora flatpak remote & it's installed apps on booted system, you just need to specify the remote in the recipe (`repo-name` + `repo-url`) & remote + all apps won't be removed (note that only `fedora` remote is supported, while `fedora-testing` isn't). When you do that, you can further customize flatpaks you want to install or remove from Fedora flatpak remote.
|
||||
|
||||
## Local modification
|
||||
|
||||
If a local user is not satisfied with default Flatpak installations and removals in the image, it is possible for them to make modifications to the default configuration through the configuration files located within this directory:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@ check_internet_connection() {
|
|||
return 1
|
||||
}
|
||||
|
||||
REPO_INFO="/usr/share/bluebuild/default-flatpaks/system/repo-info.yml"
|
||||
REPO_URL=$(yq '.repo-url' $REPO_INFO)
|
||||
REPO_NAME=$(yq '.repo-name' $REPO_INFO)
|
||||
REPO_TITLE=$(yq '.repo-title' $REPO_INFO)
|
||||
|
||||
# Opt out of and remove Fedora's system flatpak repos
|
||||
FLATPAK_SYSTEM_REMOTES=($(flatpak --system remotes))
|
||||
|
||||
|
|
@ -48,12 +53,18 @@ else
|
|||
echo "ERROR: Cannot opt-out from Fedora third-party repos, because fedora-third-party package is not installed"
|
||||
fi
|
||||
|
||||
if "${fedora_system}"; then
|
||||
echo "Removing system flatpak remote 'fedora'"
|
||||
flatpak remote-delete --system fedora --force
|
||||
# Remove fedora system remote, unless fedora remote is strictly specified
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
if "${fedora_system}"; then
|
||||
echo "Removing system flatpak remote 'fedora'"
|
||||
flatpak remote-delete --system fedora --force
|
||||
else
|
||||
echo "System flatpak remote 'fedora' is already removed"
|
||||
fi
|
||||
else
|
||||
echo "System flatpak remote 'fedora' is already removed"
|
||||
echo "Not removing the system flatpak remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
if "${fedora_testing_system}"; then
|
||||
echo "Removing system flatpak remote 'fedora-testing'"
|
||||
flatpak remote-delete --system fedora-testing --force
|
||||
|
|
@ -61,23 +72,31 @@ else
|
|||
echo "System flatpak remote 'fedora-testing' is already removed"
|
||||
fi
|
||||
|
||||
# Remove flatpak apps from system origin fedora
|
||||
FEDORA_FLATPAKS_APP=($(flatpak list --system --app --columns=application,origin | awk '$2 == "fedora" {print $1}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_APP[@]} -gt 0 ]]; then
|
||||
echo "Removing system flatpak apps from 'fedora' remote"
|
||||
flatpak remove --system --noninteractive "${FEDORA_FLATPAKS_APP[@]}"
|
||||
# Remove flatpak apps from system origin fedora, unless fedora remote is strictly specified
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
FEDORA_FLATPAKS_APP=($(flatpak list --system --app --columns=application,origin | awk '$2 == "fedora" {print $1}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_APP[@]} -gt 0 ]]; then
|
||||
echo "Removing system flatpak apps from 'fedora' remote"
|
||||
flatpak remove --system --noninteractive "${FEDORA_FLATPAKS_APP[@]}"
|
||||
else
|
||||
echo "System flatpak apps from 'fedora' remote are already removed"
|
||||
fi
|
||||
else
|
||||
echo "System flatpak apps from 'fedora' remote are already removed"
|
||||
fi
|
||||
echo "Not automatically removing all flatpak apps from system remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
# Remove flatpak runtimes from system origin fedora
|
||||
FEDORA_FLATPAKS_RUNTIME=($(flatpak list --system --runtime --columns=application,arch,branch,origin | awk '$4 == "fedora" {print $1"/"$2"/"$3}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_RUNTIME[@]} -gt 0 ]]; then
|
||||
echo "Removing system flatpak runtimes from 'fedora' remote"
|
||||
flatpak remove --system --noninteractive "${FEDORA_FLATPAKS_RUNTIME[@]}"
|
||||
# Remove flatpak runtimes from system origin fedora, unless fedora remote is strictly specified
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
FEDORA_FLATPAKS_RUNTIME=($(flatpak list --system --runtime --columns=application,arch,branch,origin | awk '$4 == "fedora" {print $1"/"$2"/"$3}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_RUNTIME[@]} -gt 0 ]]; then
|
||||
echo "Removing system flatpak runtimes from 'fedora' remote"
|
||||
flatpak remove --system --noninteractive "${FEDORA_FLATPAKS_RUNTIME[@]}"
|
||||
else
|
||||
echo "System flatpak runtimes from 'fedora' remote are already removed"
|
||||
fi
|
||||
else
|
||||
echo "System flatpak runtimes from 'fedora' remote are already removed"
|
||||
fi
|
||||
echo "Not automatically removing all flatpak runtimes from system remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
# Remove flatpak apps from system origin fedora-testing
|
||||
FEDORA_TESTING_FLATPAKS_APP=($(flatpak list --system --app --columns=application,origin | awk '$2 == "fedora-testing" {print $1}'))
|
||||
|
|
@ -97,11 +116,6 @@ else
|
|||
echo "System flatpak runtimes from 'fedora-testing' remote are already removed"
|
||||
fi
|
||||
|
||||
REPO_INFO="/usr/share/bluebuild/default-flatpaks/system/repo-info.yml"
|
||||
REPO_URL=$(yq '.repo-url' $REPO_INFO)
|
||||
REPO_NAME=$(yq '.repo-name' $REPO_INFO)
|
||||
REPO_TITLE=$(yq '.repo-title' $REPO_INFO)
|
||||
|
||||
# General conditions for not running the unnecessary flatpak setup
|
||||
# Currently, we don't modify remote title if it's already modified
|
||||
# Flatpak add remote is ran for some reason, even with --if-not-exists flag, apparently, it modifies the URL
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@ check_internet_connection() {
|
|||
return 1
|
||||
}
|
||||
|
||||
REPO_INFO="/usr/share/bluebuild/default-flatpaks/user/repo-info.yml"
|
||||
REPO_URL=$(yq '.repo-url' $REPO_INFO)
|
||||
REPO_NAME=$(yq '.repo-name' $REPO_INFO)
|
||||
REPO_TITLE=$(yq '.repo-title' $REPO_INFO)
|
||||
|
||||
# Remove Fedora's flatpak user repos, if they exist
|
||||
FLATPAK_USER_REMOTES=($(flatpak --user remotes))
|
||||
|
||||
|
|
@ -35,12 +40,18 @@ for user_remote in "${FLATPAK_USER_REMOTES[@]}"; do
|
|||
fi
|
||||
done
|
||||
|
||||
if "${fedora_user}"; then
|
||||
echo "Removing user flatpak remote 'fedora'"
|
||||
flatpak remote-delete --user fedora --force
|
||||
# Remove fedora user remote, unless fedora remote is strictly specified
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
if "${fedora_user}"; then
|
||||
echo "Removing user flatpak remote 'fedora'"
|
||||
flatpak remote-delete --user fedora --force
|
||||
else
|
||||
echo "User flatpak remote 'fedora' is already removed"
|
||||
fi
|
||||
else
|
||||
echo "User flatpak remote 'fedora' is already removed"
|
||||
echo "Not removing the user flatpak remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
if "${fedora_testing_user}"; then
|
||||
echo "Removing user flatpak remote 'fedora-testing'"
|
||||
flatpak remote-delete --user fedora-testing --force
|
||||
|
|
@ -49,22 +60,30 @@ else
|
|||
fi
|
||||
|
||||
# Remove flatpak apps from user origin fedora
|
||||
FEDORA_FLATPAKS_APP=($(flatpak list --user --app --columns=application,origin | awk '$2 == "fedora" {print $1}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_APP[@]} -gt 0 ]]; then
|
||||
echo "Removing user flatpak apps from 'fedora' remote"
|
||||
flatpak remove --user --noninteractive "${FEDORA_FLATPAKS_APP[@]}"
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
FEDORA_FLATPAKS_APP=($(flatpak list --user --app --columns=application,origin | awk '$2 == "fedora" {print $1}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_APP[@]} -gt 0 ]]; then
|
||||
echo "Removing user flatpak apps from 'fedora' remote"
|
||||
flatpak remove --user --noninteractive "${FEDORA_FLATPAKS_APP[@]}"
|
||||
else
|
||||
echo "User flatpak apps from 'fedora' remote are already removed"
|
||||
fi
|
||||
else
|
||||
echo "User flatpak apps from 'fedora' remote are already removed"
|
||||
fi
|
||||
echo "Not automatically removing all flatpak apps from user remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
# Remove flatpak runtimes from user origin fedora
|
||||
FEDORA_FLATPAKS_RUNTIME=($(flatpak list --user --runtime --columns=application,arch,branch,origin | awk '$4 == "fedora" {print $1"/"$2"/"$3}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_RUNTIME[@]} -gt 0 ]]; then
|
||||
echo "Removing user flatpak runtimes from 'fedora' remote"
|
||||
flatpak remove --user --noninteractive "${FEDORA_FLATPAKS_RUNTIME[@]}"
|
||||
# Remove flatpak runtimes from user origin fedora, unless fedora remote is strictly specified
|
||||
if [[ ! "${REPO_URL}" == "oci+https://registry.fedoraproject.org" ]]; then
|
||||
FEDORA_FLATPAKS_RUNTIME=($(flatpak list --user --runtime --columns=application,arch,branch,origin | awk '$4 == "fedora" {print $1"/"$2"/"$3}'))
|
||||
if [[ ${#FEDORA_FLATPAKS_RUNTIME[@]} -gt 0 ]]; then
|
||||
echo "Removing user flatpak runtimes from 'fedora' remote"
|
||||
flatpak remove --user --noninteractive "${FEDORA_FLATPAKS_RUNTIME[@]}"
|
||||
else
|
||||
echo "User flatpak runtimes from 'fedora' remote are already removed"
|
||||
fi
|
||||
else
|
||||
echo "User flatpak runtimes from 'fedora' remote are already removed"
|
||||
fi
|
||||
echo "Not automatically removing all flatpak runtimes from user remote 'fedora', as it's specified for use in config"
|
||||
fi
|
||||
|
||||
# Remove flatpak apps from origin user origin fedora-testing
|
||||
FEDORA_TESTING_FLATPAKS_APP=($(flatpak list --user --app --columns=application,origin | awk '$2 == "fedora-testing" {print $1}'))
|
||||
|
|
@ -84,11 +103,6 @@ else
|
|||
echo "User flatpak runtimes from 'fedora-testing' remote are already removed"
|
||||
fi
|
||||
|
||||
REPO_INFO="/usr/share/bluebuild/default-flatpaks/user/repo-info.yml"
|
||||
REPO_URL=$(yq '.repo-url' $REPO_INFO)
|
||||
REPO_NAME=$(yq '.repo-name' $REPO_INFO)
|
||||
REPO_TITLE=$(yq '.repo-title' $REPO_INFO)
|
||||
|
||||
# General conditions for not running the unnecessary flatpak setup
|
||||
# Currently, we don't modify remote title if it's already modified
|
||||
# Flatpak add remote is ran for some reason, even with --if-not-exists flag, apparently, it modifies the URL
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue