diff options
author | Richard Hughes <richard@hughsie.com> | 2018-05-10 10:04:23 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2018-06-12 08:27:42 +0100 |
commit | d301f0cc4e467bdd7d2988056820fafbe3c6cfbf (patch) | |
tree | cfb17550db02b245ca3e859bafa50697926b56a1 /libappstream-builder | |
parent | 8e1b6174f1f975df38667be09e71d1060bf0ec28 (diff) | |
download | appstream-glib-d301f0cc4e467bdd7d2988056820fafbe3c6cfbf.tar.gz |
Do not parse firmware files
Firmware should now be distributed using the LVFS and consumed by fwupd.
Diffstat (limited to 'libappstream-builder')
-rw-r--r-- | libappstream-builder/asb-package-cab.c | 86 | ||||
-rw-r--r-- | libappstream-builder/asb-self-test.c | 160 | ||||
-rw-r--r-- | libappstream-builder/meson.build | 7 |
3 files changed, 14 insertions, 239 deletions
diff --git a/libappstream-builder/asb-package-cab.c b/libappstream-builder/asb-package-cab.c index 815fa67..81860fa 100644 --- a/libappstream-builder/asb-package-cab.c +++ b/libappstream-builder/asb-package-cab.c @@ -41,73 +41,13 @@ asb_package_cab_init (AsbPackageCab *pkg) } static gboolean -asb_package_cab_ensure_simple (AsbPackage *pkg, GError **error) -{ - g_autofree gchar *basename = NULL; - gchar *tmp; - - /* get basename minus the .cab extension */ - basename = g_path_get_basename (asb_package_get_filename (pkg)); - tmp = g_strrstr (basename, ".cab"); - if (tmp != NULL) - *tmp = '\0'; - - /* maybe get a version too */ - tmp = g_strrstr (basename, "-"); - if (tmp == NULL) { - asb_package_set_name (pkg, basename); - asb_package_set_version (pkg, "unknown"); - asb_package_set_release (pkg, "unknown"); - } else { - *tmp = '\0'; - asb_package_set_name (pkg, basename); - asb_package_set_version (pkg, tmp + 1); - asb_package_set_release (pkg, "unknown"); - } - return TRUE; -} - -static gboolean -asb_package_cab_ensure_filelists (AsbPackage *pkg, GError **error) -{ - const gchar *argv[4] = { "gcab", "--list", "fn", NULL }; - guint i; - g_autofree gchar *output = NULL; - g_autoptr(GPtrArray) files = NULL; - g_auto(GStrv) lines = NULL; - - /* spawn sync */ - argv[2] = asb_package_get_filename (pkg); - if (!g_spawn_sync (NULL, (gchar **) argv, NULL, - G_SPAWN_SEARCH_PATH, - NULL, NULL, - &output, NULL, NULL, error)) - return FALSE; - - /* parse output */ - files = g_ptr_array_new_with_free_func (g_free); - lines = g_strsplit (output, "\n", -1); - for (i = 0; lines[i] != NULL; i++) { - if (lines[i][0] == '\0') - continue; - g_ptr_array_add (files, g_strdup (lines[i])); - } - - /* save */ - g_ptr_array_add (files, NULL); - asb_package_set_filelist (pkg, (gchar **) files->pdata); - return TRUE; -} - -static gboolean asb_package_cab_open (AsbPackage *pkg, const gchar *filename, GError **error) { - /* read package stuff */ - if (!asb_package_cab_ensure_simple (pkg, error)) - return FALSE; - if (!asb_package_cab_ensure_filelists (pkg, error)) - return FALSE; - return TRUE; + g_set_error (error, + AS_STORE_ERROR, + AS_STORE_ERROR_FAILED, + "Loading firmware is no longer suported, see fwupd"); + return FALSE; } static gboolean @@ -115,17 +55,11 @@ asb_package_cab_ensure (AsbPackage *pkg, AsbPackageEnsureFlags flags, GError **error) { - if ((flags & ASB_PACKAGE_ENSURE_NEVRA) > 0) { - if (!asb_package_cab_ensure_simple (pkg, error)) - return FALSE; - } - - if ((flags & ASB_PACKAGE_ENSURE_FILES) > 0) { - if (!asb_package_cab_ensure_filelists (pkg, error)) - return FALSE; - } - - return TRUE; + g_set_error (error, + AS_STORE_ERROR, + AS_STORE_ERROR_FAILED, + "Loading firmware is no longer suported, see fwupd"); + return FALSE; } static void diff --git a/libappstream-builder/asb-self-test.c b/libappstream-builder/asb-self-test.c index 9e42433..7e5a5d2 100644 --- a/libappstream-builder/asb-self-test.c +++ b/libappstream-builder/asb-self-test.c @@ -342,7 +342,6 @@ asb_test_context_func (void) "font-1-1.fc21.noarch.rpm", /* font */ "font-serif-1-1.fc21.noarch.rpm", /* font that extends */ #endif - "colorhug-als-2.0.2.cab", /* firmware */ NULL}; /* remove icons */ @@ -389,9 +388,9 @@ asb_test_context_func (void) /* verify queue size */ #ifdef HAVE_FONTS - g_assert_cmpint (asb_context_get_packages(ctx)->len, ==, 10); + g_assert_cmpint (asb_context_get_packages(ctx)->len, ==, 9); #else - g_assert_cmpint (asb_context_get_packages(ctx)->len, ==, 8); + g_assert_cmpint (asb_context_get_packages(ctx)->len, ==, 7); #endif /* run the plugins */ @@ -415,9 +414,9 @@ asb_test_context_func (void) g_assert_no_error (error); g_assert (ret); #ifdef HAVE_FONTS -// g_assert_cmpint (as_store_get_size (store), ==, 6); +// g_assert_cmpint (as_store_get_size (store), ==, 5); #else - g_assert_cmpint (as_store_get_size (store), ==, 5); + g_assert_cmpint (as_store_get_size (store), ==, 4); #endif app = as_store_get_app_by_pkgname (store, "app"); g_assert (app != NULL); @@ -522,34 +521,6 @@ asb_test_context_func (void) "<lang percentage=\"33\">ru</lang>\n" "</languages>\n" "</component>\n" -#ifdef HAVE_GCAB - "<component type=\"firmware\">\n" - "<id>com.hughski.ColorHug2.firmware</id>\n" - "<name>ColorHug Firmware</name>\n" - "<summary>Firmware for the ColorHug Colorimeter</summary>\n" - "<developer_name>Hughski Limited</developer_name>\n" - "<description><p>Updating the firmware on your ColorHug device " - "improves performance and adds new features.</p></description>\n" - "<project_license>GPL-2.0+</project_license>\n" - "<url type=\"homepage\">http://www.hughski.com/</url>\n" - "<releases>\n" - "<release timestamp=\"1424116753\" version=\"2.0.2\">\n" - "<location>http://www.hughski.com/downloads/colorhug2/firmware/colorhug-2.0.2.cab</location>\n" - "<checksum type=\"sha1\" filename=\"colorhug-als-2.0.2.cab\" target=\"container\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<checksum type=\"sha1\" filename=\"firmware.bin\" target=\"content\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<description><p>This unstable release adds the following features:</p>" - "<ul><li>Add TakeReadingArray to enable panel latency measurements</li>" - "<li>Speed up the auto-scaled measurements considerably, using 256ms " - "as the smallest sample duration</li></ul></description>\n" - "<size type=\"installed\">14</size>\n" - "<size type=\"download\">2015</size>\n" - "</release>\n" - "</releases>\n" - "<provides>\n" - "<firmware type=\"flashed\">84f40464-9272-4ef7-9399-cd95f12da696</firmware>\n" - "</provides>\n" - "</component>\n" -#endif "<component type=\"driver\">\n" "<id>driver</id>\n" "<pkgname>driver</pkgname>\n" @@ -674,128 +645,6 @@ asb_test_context_func (void) #endif } -static void -asb_test_firmware_func (void) -{ -#ifdef HAVE_GCAB - AsApp *app; - AsbPluginLoader *loader; - const gchar *expected_xml; - gboolean ret; - guint i; - g_autoptr(GError) error = NULL; - g_autoptr(AsbContext) ctx = NULL; - g_autoptr(AsStore) store = NULL; - g_autoptr(GFile) file = NULL; - g_autoptr(GString) xml = NULL; - const gchar *filenames[] = { - "colorhug-als-2.0.1.cab", - "colorhug-als-2.0.0.cab", - "colorhug-als-2.0.2.cab", - NULL}; - - /* set up the context */ - ctx = asb_context_new (); - asb_context_set_max_threads (ctx, 1); - asb_context_set_api_version (ctx, 0.9); - asb_context_set_flags (ctx, ASB_CONTEXT_FLAG_NO_NETWORK); - asb_context_set_basename (ctx, "appstream"); - asb_context_set_origin (ctx, "asb-self-test"); - asb_context_set_cache_dir (ctx, "/tmp/asbuilder/cache"); - asb_context_set_output_dir (ctx, "/tmp/asbuilder/output"); - asb_context_set_temp_dir (ctx, "/tmp/asbuilder/temp"); - asb_context_set_icons_dir (ctx, "/tmp/asbuilder/temp/icons"); - loader = asb_context_get_plugin_loader (ctx); - asb_plugin_loader_set_dir (loader, TESTPLUGINDIR); - ret = asb_context_setup (ctx, &error); - g_assert_no_error (error); - g_assert (ret); - - /* add packages */ - for (i = 0; filenames[i] != NULL; i++) { - g_autofree gchar *filename = NULL; - filename = asb_test_get_filename (filenames[i]); - if (filename == NULL) - g_warning ("%s not found", filenames[i]); - g_assert (filename != NULL); - ret = asb_context_add_filename (ctx, filename, &error); - g_assert_no_error (error); - g_assert (ret); - } - - /* verify queue size */ - g_assert_cmpint (asb_context_get_packages(ctx)->len, ==, 3); - - /* run the plugins */ - ret = asb_context_process (ctx, &error); - g_assert_no_error (error); - g_assert (ret); - - /* check files created */ - g_assert (g_file_test ("/tmp/asbuilder/output/appstream.xml.gz", G_FILE_TEST_EXISTS)); - - /* load AppStream metadata */ - file = g_file_new_for_path ("/tmp/asbuilder/output/appstream.xml.gz"); - store = as_store_new (); - ret = as_store_from_file (store, file, NULL, NULL, &error); - g_assert_no_error (error); - g_assert (ret); - g_assert_cmpint (as_store_get_size (store), ==, 1); - app = as_store_get_app_by_id (store, "com.hughski.ColorHug2.firmware"); - g_assert (app != NULL); - - /* check it matches what we expect */ - xml = as_store_to_xml (store, AS_NODE_TO_XML_FLAG_FORMAT_MULTILINE); - expected_xml = - "<components origin=\"asb-self-test\" version=\"0.9\">\n" - "<component type=\"firmware\">\n" - "<id>com.hughski.ColorHug2.firmware</id>\n" - "<name>ColorHug Firmware</name>\n" - "<summary>Firmware for the ColorHug Colorimeter</summary>\n" - "<developer_name>Hughski Limited</developer_name>\n" - "<description><p>Updating the firmware on your ColorHug device " - "improves performance and adds new features.</p></description>\n" - "<project_license>GPL-2.0+</project_license>\n" - "<url type=\"homepage\">http://www.hughski.com/</url>\n" - "<releases>\n" - "<release timestamp=\"1424116753\" version=\"2.0.2\">\n" - "<location>http://www.hughski.com/downloads/colorhug2/firmware/colorhug-2.0.2.cab</location>\n" - "<checksum type=\"sha1\" filename=\"colorhug-als-2.0.2.cab\" target=\"container\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<checksum type=\"sha1\" filename=\"firmware.bin\" target=\"content\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<description><p>This unstable release adds the following features:</p>" - "<ul><li>Add TakeReadingArray to enable panel latency measurements</li>" - "<li>Speed up the auto-scaled measurements considerably, using 256ms " - "as the smallest sample duration</li></ul></description>\n" - "<size type=\"installed\">14</size>\n" - "<size type=\"download\">2015</size>\n" - "</release>\n" - "<release timestamp=\"1424116753\" version=\"2.0.1\">\n" - "<location>http://www.hughski.com/downloads/colorhug2/firmware/colorhug-2.0.1.cab</location>\n" - "<checksum type=\"sha1\" filename=\"colorhug-als-2.0.1.cab\" target=\"container\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<checksum type=\"sha1\" filename=\"firmware.bin\" target=\"content\">" AS_TEST_WILDCARD_SHA1 "</checksum>\n" - "<description><p>This unstable release adds the following features:</p>" - "<ul><li>Use TakeReadings() to do a quick non-adaptive measurement</li>" - "<li>Scale XYZ measurement with a constant factor to make the CCMX more " - "sane</li></ul></description>\n" - "<size type=\"installed\">14</size>\n" - "<size type=\"download\">1951</size>\n" - "</release>\n" - "</releases>\n" - "<provides>\n" - "<firmware type=\"flashed\">84f40464-9272-4ef7-9399-cd95f12da696</firmware>\n" - "</provides>\n" - "</component>\n" - "</components>\n"; - ret = asb_test_compare_lines (xml->str, expected_xml, &error); - g_assert_no_error (error); - g_assert (ret); - - ret = asb_utils_rmtree ("/tmp/asbuilder", &error); - g_assert_no_error (error); - g_assert (ret); -#endif -} - int main (int argc, char **argv) { @@ -812,7 +661,6 @@ main (int argc, char **argv) g_test_add_func ("/AppStreamBuilder/package{guess-fn}", asb_test_package_guess_from_fn_func); g_test_add_func ("/AppStreamBuilder/utils{glob}", asb_test_utils_glob_func); g_test_add_func ("/AppStreamBuilder/plugin-loader", asb_test_plugin_loader_func); - g_test_add_func ("/AppStreamBuilder/firmware", asb_test_firmware_func); g_test_add_func ("/AppStreamBuilder/context", asb_test_context_func); #ifdef HAVE_RPM g_test_add_func ("/AppStreamBuilder/package{rpm}", asb_test_package_rpm_func); diff --git a/libappstream-builder/meson.build b/libappstream-builder/meson.build index b59cc56..fe74cf3 100644 --- a/libappstream-builder/meson.build +++ b/libappstream-builder/meson.build @@ -89,15 +89,8 @@ pkgg.generate( subdirs : 'libappstream-builder' ) -deps = [ - firmware200, - firmware201, - firmware202, -] - asb_self_test = executable( 'asb-self-test', - deps, 'asb-self-test.c', include_directories : [ include_directories('..'), |