diff options
Diffstat (limited to 'libappstream-builder/plugins/asb-plugin-nm.c')
-rw-r--r-- | libappstream-builder/plugins/asb-plugin-nm.c | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/libappstream-builder/plugins/asb-plugin-nm.c b/libappstream-builder/plugins/asb-plugin-nm.c deleted file mode 100644 index 4f7ce14..0000000 --- a/libappstream-builder/plugins/asb-plugin-nm.c +++ /dev/null @@ -1,129 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * Copyright (C) 2014 Richard Hughes <richard@hughsie.com> - * - * Licensed under the GNU Lesser General Public License Version 2.1 - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <config.h> - -#include <asb-plugin.h> - -/** - * asb_plugin_get_name: - */ -const gchar * -asb_plugin_get_name (void) -{ - return "nm"; -} - -/** - * asb_plugin_add_globs: - */ -void -asb_plugin_add_globs (AsbPlugin *plugin, GPtrArray *globs) -{ - asb_plugin_add_glob (globs, "/usr/bin/*"); -} - -static gboolean -asb_plugin_nm_app (AsbApp *app, const gchar *filename, GError **error) -{ - gboolean ret; - g_autofree gchar *data_err = NULL; - g_autofree gchar *data_out = NULL; - const gchar *argv[] = { "/usr/bin/nm", - "--dynamic", - "--no-sort", - "--undefined-only", - filename, - NULL }; - - ret = g_spawn_sync (NULL, (gchar **) argv, NULL, -#if GLIB_CHECK_VERSION(2,40,0) - G_SPAWN_CLOEXEC_PIPES, -#else - G_SPAWN_DEFAULT, -#endif - NULL, NULL, - &data_out, - &data_err, - NULL, error); - if (!ret) - return FALSE; - if (g_strstr_len (data_out, -1, "gtk_application_new") != NULL) { - if (!as_app_has_kudo_kind (AS_APP (app), AS_KUDO_KIND_MODERN_TOOLKIT)) { - asb_package_log (asb_app_get_package (app), - ASB_PACKAGE_LOG_LEVEL_DEBUG, - "Auto-adding kudo AppMenu for %s", - as_app_get_id (AS_APP (app))); - as_app_add_kudo_kind (AS_APP (app), AS_KUDO_KIND_MODERN_TOOLKIT); - } - } - if (g_strstr_len (data_out, -1, "gtk_application_set_app_menu") != NULL || - g_strstr_len (data_out, -1, "gtk_application_get_menu_by_id") != NULL) { - if (!as_app_has_kudo_kind (AS_APP (app), AS_KUDO_KIND_APP_MENU)) { - asb_package_log (asb_app_get_package (app), - ASB_PACKAGE_LOG_LEVEL_DEBUG, - "Auto-adding kudo AppMenu for %s", - as_app_get_id (AS_APP (app))); - as_app_add_kudo_kind (AS_APP (app), AS_KUDO_KIND_APP_MENU); - } - } - return TRUE; -} - -/** - * asb_plugin_process_app: - */ -gboolean -asb_plugin_process_app (AsbPlugin *plugin, - AsbPackage *pkg, - AsbApp *app, - const gchar *tmpdir, - GError **error) -{ - gchar **filelist; - guint i; - - /* already set */ - if (as_app_has_kudo_kind (AS_APP (app), AS_KUDO_KIND_APP_MENU) && - as_app_has_kudo_kind (AS_APP (app), AS_KUDO_KIND_MODERN_TOOLKIT)) - return TRUE; - - filelist = asb_package_get_filelist (pkg); - for (i = 0; filelist[i] != NULL; i++) { - GError *error_local = NULL; - g_autofree gchar *filename = NULL; - - if (!asb_plugin_match_glob ("/usr/bin/*", filelist[i])) - continue; - if (as_app_has_kudo_kind (AS_APP (app), AS_KUDO_KIND_APP_MENU)) - break; - filename = g_build_filename (tmpdir, filelist[i], NULL); - if (!asb_plugin_nm_app (app, filename, &error_local)) { - asb_package_log (pkg, - ASB_PACKAGE_LOG_LEVEL_WARNING, - "Failed to run nm on %s: %s", - filename, - error_local->message); - g_clear_error (&error_local); - } - } - return TRUE; -} |