temp/gnome-software: drop (MR 3577)

Alpine's version is now mostly adaptive
This commit is contained in:
Pablo Correa Gómez 2022-10-23 17:35:58 +02:00 committed by Oliver Smith
parent 766020c811
commit f4acff31f9
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
8 changed files with 0 additions and 449 deletions

View file

@ -1,39 +0,0 @@
From 715db5606279efbb5b47ae734db7ffd407b25d79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocorrea@hotmail.com>
Date: Tue, 28 Dec 2021 20:03:00 +0100
Subject: [PATCH] gs-external-appstream-utils: use
external-appstream-system-wide key
The key had been defined when it was introduced, but it was not
implemented in code. The logic that decided whether to install
the external appstream files system-wide or just to the current
user has a bug, where it read "external-appstream-urls" instead
of "external-appstream-system-wide". This is fixed in this commit.
Additionally, before the fix, the memory returned by g_settings_get_strv
was never freed, causing a memory leak. Also, as "external-appstream-urls"
must have been set for the code to reach gs_external_appstream_refresh_url,
gs_external_appstream_refresh_user was dead code. This is also fixed
in this commit
(cherry picked from commit 7e8a1978f0e297fc052456fbc5da9218a1389903)
---
lib/gs-external-appstream-utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/gs-external-appstream-utils.c b/lib/gs-external-appstream-utils.c
index 73c567443..39d71b299 100644
--- a/lib/gs-external-appstream-utils.c
+++ b/lib/gs-external-appstream-utils.c
@@ -236,7 +236,7 @@ gs_external_appstream_refresh_url (GsPlugin *plugin,
GCancellable *cancellable,
GError **error)
{
- if (g_settings_get_strv (settings, "external-appstream-urls")) {
+ if (g_settings_get_boolean (settings, "external-appstream-system-wide")) {
return gs_external_appstream_refresh_sys (plugin, url,
cache_age,
cancellable,
--
2.36.1

View file

@ -1,48 +0,0 @@
From 1cb77595a81b8a848a30948fbe5506e209b621df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocorrea@hotmail.com>
Date: Thu, 30 Dec 2021 00:24:32 +0100
Subject: [PATCH] make updates page default at startup
This is mostly to avoid having the startup of an application
show a window that looks broken. It should be reverted once
the explore page is fully adaptive and filled with beautiful
data.
Simply modifying the desktop file in phosh is not enough because
the application is dbus activated. In consequence, the Exec
in the desktop is ignored. Making the activation accept parameters
might be possible but out of scope
---
src/gs-application.c | 2 +-
src/org.gnome.Software.desktop.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gs-application.c b/src/gs-application.c
index 90487df62..d35edc1c5 100644
--- a/src/gs-application.c
+++ b/src/gs-application.c
@@ -1064,7 +1064,7 @@ gs_application_activate (GApplication *application)
GsApplication *app = GS_APPLICATION (application);
if (app->shell_loaded_handler_id == 0)
- gs_shell_set_mode (app->shell, GS_SHELL_MODE_OVERVIEW);
+ gs_shell_set_mode (app->shell, GS_SHELL_MODE_UPDATES);
gs_shell_activate (GS_APPLICATION (application)->shell);
diff --git a/src/org.gnome.Software.desktop.in b/src/org.gnome.Software.desktop.in
index 318c243af..b79666eb4 100644
--- a/src/org.gnome.Software.desktop.in
+++ b/src/org.gnome.Software.desktop.in
@@ -3,7 +3,7 @@ Name=Software
Comment=Add, remove or update software on this computer
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=@application_id@
-Exec=gnome-software %U
+Exec=gnome-software --mode=updates %U
Terminal=false
Type=Application
Categories=GNOME;GTK;System;PackageManager;
--
2.36.1

View file

@ -1,38 +0,0 @@
From 5fa86de04924801104431d09be254ee049be7d1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocorrea@hotmail.com>
Date: Mon, 17 Jan 2022 01:40:42 +0100
Subject: [PATCH] disable "Automatic Updates" options
Those can be dangerous, as applications are updated live, and
kernel or mkinitfs could be installed at any time. This includes
on very low battery or before user shuts-down the phone.
To avoid making this a hard fork of GS, discussion on steps to
solve this issue in pma#1388
---
src/gs-prefs-dialog.ui | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/gs-prefs-dialog.ui b/src/gs-prefs-dialog.ui
index 2ccde058f..3094b5c17 100644
--- a/src/gs-prefs-dialog.ui
+++ b/src/gs-prefs-dialog.ui
@@ -18,6 +18,7 @@
<property name="description" translatable="yes">To avoid charges and network caps, software updates are not automatically downloaded on mobile or metered connections.</property>
<child>
<object class="HdyActionRow">
+ <property name="sensitive">False</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Automatic Updates</property>
<property name="subtitle" translatable="yes">Downloads and installs software updates in the background, when possible.</property>
@@ -33,6 +34,7 @@
</child>
<child>
<object class="HdyActionRow">
+ <property name="sensitive">False</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Automatic Update Notifications</property>
<property name="subtitle" translatable="yes">Show notifications when updates have been automatically installed.</property>
--
2.36.1

View file

@ -1,110 +0,0 @@
From c877bd004188fbfb2a7ff5ee539614a77d89e741 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocorrea@hotmail.com>
Date: Fri, 31 Dec 2021 00:46:38 +0100
Subject: [PATCH] gs-external-appstream-utils: hash url to allow same basename
Component files generated by tools like appstream-generator all
have the same basename: Components-$(ARCH).xml.gz
In consequence, before this patch, if multiple urls are specified
in "external-appstream-urls" and have the same basename, the secondly
downloaded file will either override the first one (user installs),
or skip the download because a file with the said basename already exits
(system-wide installs). Hashing the url and adding the hash to the
basename solves this problem.
(cherry picked from commit 576d336e4994741e64b9384e7e05748b614cf981)
---
lib/gs-external-appstream-utils.c | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/lib/gs-external-appstream-utils.c b/lib/gs-external-appstream-utils.c
index 39d71b299..82c5f7001 100644
--- a/lib/gs-external-appstream-utils.c
+++ b/lib/gs-external-appstream-utils.c
@@ -87,6 +87,7 @@ gs_external_appstream_get_modification_date (const gchar *file_path)
static gboolean
gs_external_appstream_refresh_sys (GsPlugin *plugin,
const gchar *url,
+ const gchar *basename,
guint cache_age,
GCancellable *cancellable,
GError **error)
@@ -96,7 +97,6 @@ gs_external_appstream_refresh_sys (GsPlugin *plugin,
guint status_code;
gboolean file_written;
g_autofree gchar *tmp_file_path = NULL;
- g_autofree gchar *file_name = NULL;
g_autofree gchar *local_mod_date = NULL;
g_autofree gchar *target_file_path = NULL;
g_autoptr(GFileIOStream) iostream = NULL;
@@ -104,8 +104,7 @@ gs_external_appstream_refresh_sys (GsPlugin *plugin,
g_autoptr(SoupMessage) msg = NULL;
/* check age */
- file_name = g_path_get_basename (url);
- target_file_path = gs_external_appstream_utils_get_file_cache_path (file_name);
+ target_file_path = gs_external_appstream_utils_get_file_cache_path (basename);
if (!gs_external_appstream_check (target_file_path, cache_age)) {
g_debug ("skipping updating external appstream file %s: "
"cache age is older than file",
@@ -145,7 +144,7 @@ gs_external_appstream_refresh_sys (GsPlugin *plugin,
/* write the download contents into a file that will be copied into
* the system */
tmp_file_path = gs_utils_get_cache_filename ("external-appstream",
- file_name,
+ basename,
GS_UTILS_CACHE_FLAG_WRITEABLE |
GS_UTILS_CACHE_FLAG_CREATE_DIRECTORY,
error);
@@ -196,18 +195,17 @@ gs_external_appstream_refresh_sys (GsPlugin *plugin,
static gboolean
gs_external_appstream_refresh_user (GsPlugin *plugin,
const gchar *url,
+ const gchar *basename,
guint cache_age,
GCancellable *cancellable,
GError **error)
{
guint file_age;
- g_autofree gchar *basename = NULL;
g_autofree gchar *fullpath = NULL;
g_autoptr(GFile) file = NULL;
g_autoptr(GsApp) app_dl = gs_app_new (gs_plugin_get_name (plugin));
/* check age */
- basename = g_path_get_basename (url);
fullpath = g_build_filename (g_get_user_data_dir (),
"app-info",
"xmls",
@@ -236,13 +234,27 @@ gs_external_appstream_refresh_url (GsPlugin *plugin,
GCancellable *cancellable,
GError **error)
{
+ g_autofree gchar *basename = NULL;
+ g_autofree gchar *basename_url = g_path_get_basename (url);
+ /* make sure different uris with same basenames differ */
+ g_autofree gchar *hash = g_compute_checksum_for_string (G_CHECKSUM_SHA1,
+ url, -1);
+ if (hash == NULL) {
+ g_set_error (error, GS_PLUGIN_ERROR, GS_PLUGIN_ERROR_FAILED,
+ "Failed to hash url %s", url);
+ return FALSE;
+ }
+ basename = g_strdup_printf ("%s-%s", hash, basename_url);
+
if (g_settings_get_boolean (settings, "external-appstream-system-wide")) {
return gs_external_appstream_refresh_sys (plugin, url,
+ basename,
cache_age,
cancellable,
error);
}
- return gs_external_appstream_refresh_user (plugin, url, cache_age,
+ return gs_external_appstream_refresh_user (plugin, url, basename,
+ cache_age,
cancellable, error);
}
--
2.36.1

View file

@ -1,81 +0,0 @@
From d971b745734ae13219f5f66684ad4127923ab3e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= <ablocorrea@hotmail.com>
Date: Tue, 22 Feb 2022 22:26:35 +0100
Subject: [PATCH] lib: cleanup public headers and mark gs-test.h as public
Backport of https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/1192
to fix building test in the out-of-tree plugin
---
lib/gs-app-list-private.h | 1 -
lib/gs-app-list.h | 1 +
lib/gs-plugin-job.h | 2 +-
lib/gs-plugin-loader.h | 2 +-
lib/meson.build | 1 +
5 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/gs-app-list-private.h b/lib/gs-app-list-private.h
index 3bf908c16..9f540a620 100644
--- a/lib/gs-app-list-private.h
+++ b/lib/gs-app-list-private.h
@@ -33,7 +33,6 @@ typedef enum {
GS_APP_LIST_FLAG_LAST /*< skip >*/
} GsAppListFlags;
-GsAppList *gs_app_list_copy (GsAppList *list);
guint gs_app_list_get_size_peak (GsAppList *list);
void gs_app_list_filter_duplicates (GsAppList *list,
GsAppListFilterFlags flags);
diff --git a/lib/gs-app-list.h b/lib/gs-app-list.h
index 1330e8048..80e5e5976 100644
--- a/lib/gs-app-list.h
+++ b/lib/gs-app-list.h
@@ -65,6 +65,7 @@ typedef gboolean (*GsAppListFilterFunc) (GsApp *app,
gpointer user_data);
GsAppList *gs_app_list_new (void);
+GsAppList *gs_app_list_copy (GsAppList *list);
void gs_app_list_add (GsAppList *list,
GsApp *app);
void gs_app_list_add_list (GsAppList *list,
diff --git a/lib/gs-plugin-job.h b/lib/gs-plugin-job.h
index 2bd619c63..47420b4fe 100644
--- a/lib/gs-plugin-job.h
+++ b/lib/gs-plugin-job.h
@@ -10,7 +10,7 @@
#include <glib-object.h>
-#include "gs-app-list-private.h"
+#include "gs-app-list.h"
#include "gs-category.h"
#include "gs-plugin-types.h"
diff --git a/lib/gs-plugin-loader.h b/lib/gs-plugin-loader.h
index 71fd35af8..bd56bc0d4 100644
--- a/lib/gs-plugin-loader.h
+++ b/lib/gs-plugin-loader.h
@@ -16,8 +16,8 @@
#include "gs-category-manager.h"
#include "gs-odrs-provider.h"
#include "gs-plugin-event.h"
-#include "gs-plugin-private.h"
#include "gs-plugin-job.h"
+#include "gs-plugin.h"
G_BEGIN_DECLS
diff --git a/lib/meson.build b/lib/meson.build
index 3b8c92339..ceb2ea9a9 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -26,6 +26,7 @@ libgnomesoftware_public_headers = [
'gs-plugin-types.h',
'gs-plugin-vfuncs.h',
'gs-remote-icon.h',
+ 'gs-test.h',
'gs-utils.h'
]
--
2.36.1

View file

@ -1,126 +0,0 @@
# Forked from Alpine to apply adaptability patches
pkgname=gnome-software
pkgver=9999_git20211203
_pkgver=41.5
pkgrel=3
pkgdesc="Software lets you install and update applications and system extensions"
url="https://wiki.gnome.org/Apps/Software"
# s390x, mips64 and riscv64 blocked by polkit
arch="all !s390x !mips64 !riscv64"
license="GPL-2.0-or-later"
depends=""
makedepends="meson appstream-dev gdk-pixbuf-dev libxmlb-dev glib-dev gtk+3.0-dev
json-glib-dev libsoup-dev gspell-dev polkit-dev gtk-doc ostree-dev
flatpak-dev libgudev-dev libhandy1-dev gsettings-desktop-schemas-dev"
options="!check" # lots of failing tests
install="$pkgname.post-upgrade"
subpackages="$pkgname-lang $pkgname-doc $pkgname-dbg
$pkgname-dev $pkgname-lib $pkgname-plugin-flatpak:flatpak_plugin"
_purism_commit="caaad1eaa5d863ffb9b7853907af8c8342dc2d39"
_purism_patches="https://source.puri.sm/Librem5/pureos-store/-/raw/$_purism_commit/debian/patches"
# First patch-set alpine, second pmOS, third Purism
source="https://download.gnome.org/sources/gnome-software/${_pkgver%.*}/gnome-software-$_pkgver.tar.xz
0001-gs-external-appstream-utils-use-external-appstream-s.patch
0002-gs-external-appstream-utils-hash-url-to-allow-same-b.patch
0003-lib-cleanup-public-headers-and-mark-gs-test.h-as-pub.patch
0001-make-updates-page-default-at-startup.patch
0002-disable-Automatic-Updates-options.patch
$_purism_patches/ui/0001-assets-Make-the-up-to-date-picture-fit-phones.patch
$_purism_patches/ui/0002-Add-GsInfoWindow.patch
$_purism_patches/ui/0003-metered-data-dialog-Make-it-a-GsInfoWindow-and-a-Hdy.patch
$_purism_patches/ui/0004-updates-page-Move-Checking-from-the-headerbar-to-an-.patch
$_purism_patches/ui/0005-details-page-Make-the-loading-status-fit-phones.patch
$_purism_patches/ui/0006-app-details-page-Drop-the-hardcoded-label-width.patch
$_purism_patches/ui/0007-data-List-compatible-form-factors.patch
$_purism_patches/ui/0009-icon-Ensure-icon-files-exist.patch
$_purism_patches/ui/0010-app-Ensure-themed-icons-exist.patch
$_purism_patches/ui/0011-app-Be-more-strict-with-icon-scales.patch
$_purism_patches/ui/0012-style-Turn-category-tile-padding-into-child-margin.patch
$_purism_patches/ui/0013-style-Fix-the-iconless-category-tile-min-width.patch
$_purism_patches/ui/0014-moderate-page-Use-a-HdyStatusPage.patch
$_purism_patches/ui/0015-progress-button-Ellipsize-the-label.patch
$_purism_patches/ui/0016-updates-section-Ellipsize-the-button-label.patch
org.gnome.software.gschema.override"
builddir="$srcdir/$pkgname-$_pkgver"
case "$CARCH" in
x86|x86_64|aarch64|armv7) makedepends="$makedepends fwupd-dev" ;;
esac
build() {
case "$CARCH" in
x86|x86_64|aarch64|armv7) conf="-Dfwupd=true" ;;
*) conf="-Dfwupd=false" ;;
esac
abuild-meson \
-Dvalgrind=false \
-Dmalcontent=false \
-Dpackagekit=false \
-Dexternal_appstream=true \
$conf \
. output
meson compile ${JOBS:+-j ${JOBS}} -C output
}
check() {
meson test --no-rebuild -v -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
mkdir -p "$pkgdir"/usr/share/glib-2.0/schemas/
sed "s|@CARCH@|$CARCH|g" "$srcdir"/org.gnome.software.gschema.override > \
"$pkgdir"/usr/share/glib-2.0/schemas/org.gnome.software.gschema.override
}
dev() {
default_dev
amove usr/lib/gnome-software/libgnomesoftware.so
}
lib() {
pkgdesc="$pkgdesc (shared library)"
depends=""
amove usr/lib/gnome-software/libgnomesoftware.so.*
}
flatpak_plugin() {
pkgdesc="$pkgdesc (flatpak plugin)"
install_if="$pkgname=$pkgver-r$pkgrel flatpak"
depends=""
amove usr/lib/gnome-software/plugins-16/libgs_plugin_flatpak.so
amove usr/share/metainfo/org.gnome.Software.Plugin.Flatpak.metainfo.xml
}
sha512sums="
60701d50dd8e7fa01c05c8ee7823b053d40b0fa145419601ece732827527d4d7ae9af178b5b6622ac4d729d3d430c14981a2fd4b0f086dd6d05a49fd507f2cb6 gnome-software-41.5.tar.xz
52e4f99a4e1e2e688b1dcb146bcad3f3ba0e804af841d3837de5a7905f90689dc6258e625476a5fa402e8cfb5f7b814f3bdb0cf0dfab5ca8ebbf6193099e9916 0001-gs-external-appstream-utils-use-external-appstream-s.patch
467e023cc953f1d7caf83a4087f7f6311f64d20da32dafb2a97bd7488bb597e2d407d1166937c1776c0add199508ac45f361d7754687f638e518dbfaa8f80c6e 0002-gs-external-appstream-utils-hash-url-to-allow-same-b.patch
4f3248916d8d15753dc22580e71a37cbfd42bb81ee0befcc51cbbbc5ce8a6573be9dae8d049c9c10fbdcf6292b83fda0d2175d1f6554e7ee8f08024ce6bdffe9 0003-lib-cleanup-public-headers-and-mark-gs-test.h-as-pub.patch
b7c873701faba9963eafae0f2a096f783387da47b0ef04ec863dfa693c9415328238780ae2ab4f6c0910ccb1a023d8e94b1010249dec64f19c081e7a686783a3 0001-make-updates-page-default-at-startup.patch
bc1c1ca45a475be511781b2cebd59a0c8ea540b17ab9faa59bf1b0478f32b96c974db46e07b2cc56b6c13f1b590b339fd01f907a648ae0fe689522d56d89e875 0002-disable-Automatic-Updates-options.patch
ea2d4c6ee37b1fb27773d8908a98e6f6726cd2f72fcc7c41caf243a501896c991346d02ccbc36168c7194d0ba3dfd17660c7af79305a447f521617f0fbefae9e 0001-assets-Make-the-up-to-date-picture-fit-phones.patch
4e5b205134d7fc8c60af2e9fcfa70552e20300b2e9959d500a82546986d38677515af841272ef64a019ec946940c59eaca3d95d228952d8384682c7410383417 0002-Add-GsInfoWindow.patch
b67d04f6853762b7d5b26109fdeeec37d07bef40d1e35b46d95ec58e977c1088e256d0e272bc05c764d8673b2766ec82861506415ee11237ee0270a8a0732d97 0003-metered-data-dialog-Make-it-a-GsInfoWindow-and-a-Hdy.patch
d39337b8cc52d6dce308ff9842222cb163d8b1b4b000e69892937b473478e86beaed0e1c6431d3db4d63eb173c4aa827a0ecc51e7a32764b6071bf24b47f12a6 0004-updates-page-Move-Checking-from-the-headerbar-to-an-.patch
b60a94afa9b42b5a1dfc32f27ac1ba1de124b14675f4276afc49169a0b591b1439617eda85566bae135361c564ee6f6a45274b4a56324136f569ca532de26310 0005-details-page-Make-the-loading-status-fit-phones.patch
5cd87a637b6cd004212724adb619a22ea3cceb81fec4ca7db92e37f82155902813c16cf11d19e68735d07e8f52889048861edb1eb9ad956321e252536486af3a 0006-app-details-page-Drop-the-hardcoded-label-width.patch
838e7fee019f8191de2822e3ef3fd3721041d27ea0f89391ed04bb8cb446a3ea8f29ad3621e71533bd8bc50e22a8c157bcb4ff8e959d55fce9d94622e4efaeed 0007-data-List-compatible-form-factors.patch
b5b7d608518c72731120f03b603d76d64f87a840404fdae56d593a14a482c7442d8202c8c2fd812167bb601855cffdb51887fcba333705124fe65859368629dd 0009-icon-Ensure-icon-files-exist.patch
627a0fda5463f8b85b7b357a3d89a4ea37ef18f9e1a367caa3d935f327d8f9cca98d2eaafc386b7d3f6021863cba079e0be546630a999d3811ae1e3621af3d79 0010-app-Ensure-themed-icons-exist.patch
e6869f3d76da7146bc2310a4e4ef2f8e3680e1f15ec81e102779fc4d775f77c05eb4686cfde2d1eadc1ed51c4c52c90a4b7604e69bf8be32bbc2f40950b15f14 0011-app-Be-more-strict-with-icon-scales.patch
2b28f978b2e0f095d0b80064634506d646c28db309de70d90dc3dfde4facbf99a575915bfa02832e38a23d4ba118fa67c0820c5f002f76d495117622cb732b24 0012-style-Turn-category-tile-padding-into-child-margin.patch
9ecebb9ebb7b60cbd8a42f2f255b4f1feb05820c6d5ef87f72bc5904a2b43c4665e3f499db96c6a621d050fcf2b1bebb3fd828a4176b73046fbf4e3bbb186e6c 0013-style-Fix-the-iconless-category-tile-min-width.patch
51f34fce921faf926c546b23004224bd741f01d8e6040f6cd9749e8210c50f2f515588084168bc2841581736c247214c8aaf15abba9a5567d8d6f61b2c96e51a 0014-moderate-page-Use-a-HdyStatusPage.patch
16032fbfa3b18a4fff5ff43f2fceb2db20df3c76fc4799030604f7f1be452382ab00e709fd75daa766371fb445a1bb97de064b6d35bdad9755070c28e9f84836 0015-progress-button-Ellipsize-the-label.patch
fda7c405a9233e6813c8b87bcf7db4f1e6c6ab7a2c3426c6a2eba947572cfcad97e920bd3887a185f768a6a559d6d755b482f63e58fddc4b3f8b11931b287f1a 0016-updates-section-Ellipsize-the-button-label.patch
dc83eba4b5da759b6bc72d0f30ba4e9338684eb0d32d3e2b7989341ee6f8efc15b09dda88d1dc3cc6a2de0a2ae22a41c2fdbfe352b5d7c7ecff44c2d6035e17f org.gnome.software.gschema.override
"

View file

@ -1,4 +0,0 @@
#!/bin/sh
# Can be removed once GNOME 41.3 exists in all stable releases
rm -f /var/cache/app-info/xmls/org.gnome.Software-Components-*.xml.gz

View file

@ -1,3 +0,0 @@
[org.gnome.software]
external-appstream-urls=['https://appstream.alpinelinux.org/data/edge/main/Components-@CARCH@.xml.gz', 'https://appstream.alpinelinux.org/data/edge/community/Components-@CARCH@.xml.gz', 'https://appstream.alpinelinux.org/data/edge/testing/Components-@CARCH@.xml.gz']
external-appstream-system-wide=true