summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-07-29 09:33:08 +0100
committerRichard Hughes <richard@hughsie.com>2016-07-29 10:30:27 +0100
commit2ca0db0bd06d7d3823005eb5aefd6423f8d48c99 (patch)
tree51d5d639f0805a589822b8386702ae4bb70ac35a
parent285fdc7e51ba51d7ff09748f3adeddc0a061a412 (diff)
downloadappstream-glib-2ca0db0bd06d7d3823005eb5aefd6423f8d48c99.tar.gz
Remove specific support for flatpak
It's expected something will create the required symlinks at user-runtime.
-rw-r--r--libappstream-glib/as-store.c232
-rw-r--r--libappstream-glib/as-store.h4
2 files changed, 4 insertions, 232 deletions
diff --git a/libappstream-glib/as-store.c b/libappstream-glib/as-store.c
index 7926ad2..c15744d 100644
--- a/libappstream-glib/as-store.c
+++ b/libappstream-glib/as-store.c
@@ -69,7 +69,6 @@ typedef struct
AsMonitor *monitor;
GHashTable *metadata_indexes; /* GHashTable{key} */
GHashTable *appinfo_dirs; /* GHashTable{path:AsStorePathData} */
- GHashTable *flatpak_dirs; /* GHashTable{path:id_prefix} */
AsStoreAddFlags add_flags;
AsStoreWatchFlags watch_flags;
AsStoreProblems problems;
@@ -104,12 +103,6 @@ static guint signals [SIGNAL_LAST] = { 0 };
**/
G_DEFINE_QUARK (as-store-error-quark, as_store_error)
-static gboolean as_store_search_flatpaks (AsStore *store,
- AsStoreLoadFlags flags,
- const gchar *id_prefix,
- const gchar *path,
- GCancellable *cancellable,
- GError **error);
static gboolean as_store_from_file_internal (AsStore *store,
GFile *file,
const gchar *id_prefix,
@@ -133,7 +126,6 @@ as_store_finalize (GObject *object)
g_hash_table_unref (priv->hash_pkgname);
g_hash_table_unref (priv->metadata_indexes);
g_hash_table_unref (priv->appinfo_dirs);
- g_hash_table_unref (priv->flatpak_dirs);
G_OBJECT_CLASS (as_store_parent_class)->finalize (object);
}
@@ -950,16 +942,6 @@ as_store_match_addons (AsStore *store)
}
}
-static gchar *
-as_store_get_origin_for_flatpak (const gchar *fn)
-{
- g_auto(GStrv) split = g_strsplit (fn, "/", -1);
- guint chunks = g_strv_length (split);
- if (chunks < 5)
- return NULL;
- return g_strdup (split[chunks - 4]);
-}
-
/**
* as_store_fixup_id_prefix:
*
@@ -1080,14 +1062,6 @@ as_store_from_root (AsStore *store,
}
}
- /* FIXME: we can remove this helper when nuking FLATPAK */
- if (origin_app == NULL &&
- source_filename != NULL &&
- g_strcmp0 (priv->origin, "flatpak") == 0) {
- id_prefix_app = g_strdup (id_prefix);
- origin_app = as_store_get_origin_for_flatpak (source_filename);
- }
-
/* fallback */
if (origin_app == NULL) {
id_prefix_app = g_strdup (id_prefix);
@@ -1269,31 +1243,6 @@ as_store_load_yaml_file (AsStore *store,
}
static void
-as_store_rescan_flatpak_dir (AsStore *store, const gchar *filename)
-{
- AsStorePrivate *priv = GET_PRIVATE (store);
- const gchar *id_prefix;
- g_autofree gchar *dest = NULL;
- g_autoptr(GError) error = NULL;
-
- /* we helpfully saved this */
- id_prefix = g_hash_table_lookup (priv->flatpak_dirs, filename);
-
- g_debug ("rescanning flatpak dir %s", filename);
- dest = g_build_filename (priv->destdir ? priv->destdir : "/", filename, NULL);
- if (!g_file_test (dest, G_FILE_TEST_EXISTS))
- return;
- if (!as_store_search_flatpaks (store,
- AS_STORE_LOAD_FLAG_IGNORE_INVALID,
- id_prefix,
- dest,
- NULL,
- &error)) {
- g_warning ("Can't load app info: %s", error->message);
- }
-}
-
-static void
as_store_remove_by_source_file (AsStore *store, const gchar *filename)
{
AsApp *app;
@@ -1377,11 +1326,8 @@ as_store_monitor_changed_cb (AsMonitor *monitor,
/* reload, or emit a signal */
tok = as_store_changed_inhibit (store);
- if (priv->watch_flags & AS_STORE_WATCH_FLAG_ADDED) {
+ if (priv->watch_flags & AS_STORE_WATCH_FLAG_ADDED)
as_store_watch_source_changed (store, filename);
- if (g_hash_table_contains (priv->flatpak_dirs, filename))
- as_store_rescan_flatpak_dir (store, filename);
- }
as_store_changed_uninhibit (&tok);
as_store_perhaps_emit_changed (store, "file changed");
}
@@ -1396,11 +1342,8 @@ as_store_monitor_added_cb (AsMonitor *monitor,
/* reload, or emit a signal */
tok = as_store_changed_inhibit (store);
- if (priv->watch_flags & AS_STORE_WATCH_FLAG_ADDED) {
+ if (priv->watch_flags & AS_STORE_WATCH_FLAG_ADDED)
as_store_watch_source_added (store, filename);
- if (g_hash_table_contains (priv->flatpak_dirs, filename))
- as_store_rescan_flatpak_dir (store, filename);
- }
as_store_changed_uninhibit (&tok);
as_store_perhaps_emit_changed (store, "file added");
}
@@ -2460,79 +2403,6 @@ as_store_search_app_info (AsStore *store,
return TRUE;
}
-static void
-as_store_monitor_flatpak_dir (AsStore *store,
- const gchar *path,
- const gchar *id_prefix)
-{
- AsStorePrivate *priv = GET_PRIVATE (store);
- g_autoptr(GError) error = NULL;
-
- /* mark and monitor directory so we can pick up later added remotes */
- g_hash_table_insert (priv->flatpak_dirs, g_strdup (path), g_strdup (id_prefix));
- as_store_add_path_data (store, path, id_prefix, NULL);
- if (!as_monitor_add_file (priv->monitor,
- path, NULL, &error)) {
- g_warning ("Can't monitor dir %s: %s",
- path, error->message);
- }
-}
-
-static gboolean
-as_store_search_flatpak_arch (AsStore *store,
- AsStoreLoadFlags flags,
- const gchar *id_prefix,
- const gchar *path,
- GCancellable *cancellable,
- GError **error)
-{
- const gchar *fn;
- g_autoptr(GDir) dir = NULL;
-
- dir = g_dir_open (path, 0, NULL);
- if (dir == NULL)
- return TRUE;
- while ((fn = g_dir_read_name (dir)) != NULL) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (path, fn, "active", NULL);
- g_debug ("searching path %s", dest);
- if (!g_file_test (dest, G_FILE_TEST_EXISTS))
- continue;
- if (!as_store_load_app_info (store, id_prefix, dest, fn,
- flags | AS_STORE_LOAD_FLAG_IGNORE_INVALID,
- cancellable, error))
- return FALSE;
- }
- return TRUE;
-}
-
-static gboolean
-as_store_search_flatpaks (AsStore *store,
- AsStoreLoadFlags flags,
- const gchar *id_prefix,
- const gchar *path,
- GCancellable *cancellable,
- GError **error)
-{
- const gchar *fn;
- g_autoptr(GDir) dir = NULL;
-
- dir = g_dir_open (path, 0, NULL);
- if (dir == NULL)
- return TRUE;
- while ((fn = g_dir_read_name (dir)) != NULL) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (path, fn, NULL);
- g_debug ("searching path for architectures: %s", dest);
- if (!g_file_test (dest, G_FILE_TEST_EXISTS))
- continue;
- if (!as_store_search_flatpak_arch (store, flags, id_prefix,
- dest, cancellable, error))
- return FALSE;
- }
- return TRUE;
-}
-
static gboolean
as_store_search_per_system (AsStore *store,
AsStoreLoadFlags flags,
@@ -2547,53 +2417,6 @@ as_store_search_per_system (AsStore *store,
/* profile */
ptask = as_profile_start_literal (priv->profile, "AsStore:load{per-system}");
- /* flatpak */
- if ((flags & AS_STORE_LOAD_FLAG_FLATPAK_SYSTEM) > 0) {
- if ((flags & AS_STORE_LOAD_FLAG_APPDATA) > 0) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (LOCALSTATEDIR,
- "flatpak",
- "exports",
- "share",
- "applications",
- NULL);
- if (!as_store_search_installed (store, flags, "flatpak",
- dest, cancellable, error))
- return FALSE;
- }
- if ((flags & AS_STORE_LOAD_FLAG_DESKTOP) > 0) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (LOCALSTATEDIR,
- "flatpak",
- "exports",
- "share",
- "appdata",
- NULL);
- if (!as_store_search_installed (store, flags, "flatpak",
- dest, cancellable, error))
- return FALSE;
- }
- if (TRUE) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (LOCALSTATEDIR,
- "lib",
- "flatpak",
- "appstream",
- NULL);
- if (!as_store_search_flatpaks (store, flags, "flatpak",
- dest, cancellable, error))
- return FALSE;
- as_store_monitor_flatpak_dir (store, dest, "flatpak");
- }
- if (g_strcmp0 (LOCALSTATEDIR, "/var") != 0) {
- const gchar *dest = "/var/lib/flatpak/appstream";
- if (!as_store_search_flatpaks (store, flags, "flatpak",
- dest, cancellable, error))
- return FALSE;
- as_store_monitor_flatpak_dir (store, dest, "flatpak");
- }
- }
-
/* datadir AppStream, AppData and desktop */
data_dirs = g_get_system_data_dirs ();
for (i = 0; data_dirs[i] != NULL; i++) {
@@ -2673,53 +2496,6 @@ as_store_search_per_user (AsStore *store,
/* profile */
ptask = as_profile_start_literal (priv->profile, "AsStore:load{per-user}");
- /* flatpak */
- if ((flags & AS_STORE_LOAD_FLAG_FLATPAK_USER) > 0) {
-
- /* installed AppData and desktop */
- if ((flags & AS_STORE_LOAD_FLAG_APPDATA) > 0) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (g_get_user_data_dir (),
- "flatpak",
- "exports",
- "share",
- "applications",
- NULL);
- if (!as_store_search_installed (store, flags, "user-flatpak",
- dest, cancellable, error))
- return FALSE;
- }
- if ((flags & AS_STORE_LOAD_FLAG_DESKTOP) > 0) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (g_get_user_data_dir (),
- "flatpak",
- "exports",
- "share",
- "appdata",
- NULL);
- if (!as_store_search_installed (store, flags, "user-flatpak",
- dest, cancellable, error))
- return FALSE;
- }
-
- /* If we're running INSIDE the flatpak environment we'll have the
- * env var XDG_DATA_HOME set to "~/.var/app/org.gnome.Software/data"
- * so specify the path manually to get the real data */
- if (TRUE) {
- g_autofree gchar *dest = NULL;
- dest = g_build_filename (g_get_home_dir (),
- ".local",
- "share",
- "flatpak",
- "appstream",
- NULL);
- if (!as_store_search_flatpaks (store, flags, "user-flatpak",
- dest, cancellable, error))
- return FALSE;
- as_store_monitor_flatpak_dir (store, dest, "user-flatpak");
- }
- }
-
/* AppStream */
if ((flags & AS_STORE_LOAD_FLAG_APP_INFO_USER) > 0) {
g_autofree gchar *dest = NULL;
@@ -3115,10 +2891,6 @@ as_store_init (AsStore *store)
g_str_equal,
g_free,
(GDestroyNotify) as_store_path_data_free);
- priv->flatpak_dirs = g_hash_table_new_full (g_str_hash,
- g_str_equal,
- g_free,
- g_free);
priv->monitor = as_monitor_new ();
g_signal_connect (priv->monitor, "changed",
G_CALLBACK (as_store_monitor_changed_cb),
diff --git a/libappstream-glib/as-store.h b/libappstream-glib/as-store.h
index d69f254..efb1b1b 100644
--- a/libappstream-glib/as-store.h
+++ b/libappstream-glib/as-store.h
@@ -60,8 +60,8 @@ struct _AsStoreClass
* @AS_STORE_LOAD_FLAG_APPDATA: The installed AppData files
* @AS_STORE_LOAD_FLAG_DESKTOP: The installed desktop files
* @AS_STORE_LOAD_FLAG_ALLOW_VETO: Add vetoed applications
- * @AS_STORE_LOAD_FLAG_FLATPAK_USER: Add flatpak user applications
- * @AS_STORE_LOAD_FLAG_FLATPAK_SYSTEM: Add flatpak system applications
+ * @AS_STORE_LOAD_FLAG_FLATPAK_USER: Add flatpak user applications (obsolete)
+ * @AS_STORE_LOAD_FLAG_FLATPAK_SYSTEM: Add flatpak system applications (obsolete)
* @AS_STORE_LOAD_FLAG_IGNORE_INVALID: Ignore invalid files
*
* The flags to use when loading the store.