summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/flatpak-builtins-build-bundle.c10
-rw-r--r--common/flatpak-dir.c8
-rw-r--r--common/flatpak-installed-ref.c12
-rw-r--r--common/flatpak-utils.c15
4 files changed, 34 insertions, 11 deletions
diff --git a/app/flatpak-builtins-build-bundle.c b/app/flatpak-builtins-build-bundle.c
index 53df7adc..49a1b968 100644
--- a/app/flatpak-builtins-build-bundle.c
+++ b/app/flatpak-builtins-build-bundle.c
@@ -127,9 +127,13 @@ get_bundle_appstream_data (GFile *root,
*result = NULL;
- xmls_dir = g_file_resolve_relative_path (root, "files/share/app-info/xmls");
- appstream_basename = g_strconcat (name, ".xml.gz", NULL);
- appstream_file = g_file_get_child (xmls_dir, appstream_basename);
+ appstream_file = g_file_resolve_relative_path (root, "files/share/swcatalog/xml/flatpak.xml.gz");
+ if (!g_file_test (g_file_get_path (appstream_file), G_FILE_TEST_EXISTS))
+ {
+ xmls_dir = g_file_resolve_relative_path (root, "files/share/app-info/xmls");
+ appstream_basename = g_strconcat (name, ".xml.gz", NULL);
+ appstream_file = g_file_get_child (xmls_dir, appstream_basename);
+ }
xml_in = (GInputStream *) g_file_read (appstream_file, cancellable, NULL);
if (xml_in)
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
index a9b711ee..927f26b6 100644
--- a/common/flatpak-dir.c
+++ b/common/flatpak-dir.c
@@ -3365,8 +3365,12 @@ read_appdata_xml_from_deploy_dir (GFile *deploy_dir, const char *id)
g_autoptr(GFileInputStream) appdata_in = NULL;
gsize size;
- appdata_name = g_strconcat (id, ".xml.gz", NULL);
- appdata_file = flatpak_build_file (deploy_dir, "files/share/app-info/xmls", appdata_name, NULL);
+ appdata_file = flatpak_build_file (deploy_dir, "files/share/swcatalog/xml/flatpak.xml.gz", NULL);
+ if (!g_file_test (g_file_get_path (appdata_file), G_FILE_TEST_EXISTS))
+ {
+ appdata_name = g_strconcat (id, ".xml.gz", NULL);
+ appdata_file = flatpak_build_file (deploy_dir, "files/share/app-info/xmls", appdata_name, NULL);
+ }
appdata_in = g_file_read (appdata_file, NULL, NULL);
if (appdata_in)
diff --git a/common/flatpak-installed-ref.c b/common/flatpak-installed-ref.c
index 367f5d6a..c3f8048c 100644
--- a/common/flatpak-installed-ref.c
+++ b/common/flatpak-installed-ref.c
@@ -526,6 +526,8 @@ flatpak_installed_ref_load_appdata (FlatpakInstalledRef *self,
gsize length;
g_autofree char *path = NULL;
g_autofree char *appdata_name = NULL;
+ g_autofree char *appinfo_path = NULL;
+ g_autofree char *swcatalog_path = NULL;
if (priv->deploy_dir == NULL)
{
@@ -535,7 +537,15 @@ flatpak_installed_ref_load_appdata (FlatpakInstalledRef *self,
}
appdata_name = g_strconcat (flatpak_ref_get_name (FLATPAK_REF (self)), ".xml.gz", NULL);
- path = g_build_filename (priv->deploy_dir, "files/share/app-info/xmls", appdata_name, NULL);
+ appinfo_path = g_build_filename (priv->deploy_dir, "files/share/app-info/xmls", appdata_name, NULL);
+ swcatalog_path = g_build_filename (priv->deploy_dir, "files/share/swcatalog/xml/flatpak.xml.gz", NULL);
+
+ if (g_file_test (appinfo_path, G_FILE_TEST_EXISTS))
+ path = appinfo_path;
+ else if (g_file_test (swcatalog_path, G_FILE_TEST_EXISTS))
+ path = swcatalog_path;
+ else
+ return NULL;
if (!g_file_get_contents (path, &data, &length, error))
return NULL;
diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c
index 70adf239..e348dcbf 100644
--- a/common/flatpak-utils.c
+++ b/common/flatpak-utils.c
@@ -5366,14 +5366,19 @@ extract_appstream (OstreeRepo *repo,
return FALSE;
}
- app_info_dir = g_file_resolve_relative_path (root, "files/share/app-info");
+ appstream_file = g_file_resolve_relative_path (root, "files/share/swcatalog/xml/flatpak.xml.gz");
+ if (g_file_test (g_file_get_path (appstream_file), G_FILE_TEST_EXISTS))
+ app_info_dir = g_file_resolve_relative_path (root, "files/share/swcatalog");
+ else
+ {
+ app_info_dir = g_file_resolve_relative_path (root, "files/share/app-info");
+ xmls_dir = g_file_resolve_relative_path (app_info_dir, "xmls");
+ appstream_basename = g_strconcat (id, ".xml.gz", NULL);
+ appstream_file = g_file_get_child (xmls_dir, appstream_basename);
+ }
- xmls_dir = g_file_resolve_relative_path (app_info_dir, "xmls");
icons_dir = g_file_resolve_relative_path (app_info_dir, "icons/flatpak");
- appstream_basename = g_strconcat (id, ".xml.gz", NULL);
- appstream_file = g_file_get_child (xmls_dir, appstream_basename);
-
in = (GInputStream *) g_file_read (appstream_file, cancellable, error);
if (!in)
return FALSE;