diff options
author | Richard Hughes <richard@hughsie.com> | 2018-05-10 10:04:23 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2018-06-11 19:28:10 +0100 |
commit | 748a3a33ce354945d88190d0f4c3365a68ff5f44 (patch) | |
tree | cfb17550db02b245ca3e859bafa50697926b56a1 | |
parent | 8e1b6174f1f975df38667be09e71d1060bf0ec28 (diff) | |
download | appstream-glib-wip/hughsie/nofirmware.tar.gz |
Do not parse firmware fileswip/hughsie/nofirmware
Firmware should now be distributed using the LVFS and consumed by fwupd.
24 files changed, 34 insertions, 961 deletions
@@ -25,9 +25,9 @@ To install the libappstream-glib library you either need to install the `libappstream-glib` package from your distributor, or you can build a local copy. To do the latter just do: - dnf install docbook-utils gcab gettext-devel glib-devel \ + dnf install docbook-utils gettext-devel glib-devel \ gobject-introspection-devel gperf gtk-doc gtk3-devel \ - libarchive-devel libgcab-devel libsoup-devel \ + libarchive-devel libsoup-devel \ libstemmer-devel libuuid-devel libyaml-devel \ meson rpm-devel sqlite-devel mkdir build && cd build @@ -86,9 +86,9 @@ Getting Started To run appstream-builder you either need to install the package containing the binary and data files, or you can build a local copy. To do the latter just do: - dnf install docbook-utils gcab gettext-devel glib-devel \ + dnf install docbook-utils gettext-devel glib-devel \ gobject-introspection-devel gperf gtk-doc gtk3-devel \ - libarchive-devel libgcab-devel libsoup-devel \ + libarchive-devel libsoup-devel \ libstemmer-devel libuuid-devel libyaml-devel \ meson rpm-devel sqlite-devel rpm-devel mkdir build && cd build diff --git a/client/as-util.c b/client/as-util.c index 31d1512..8c0bcde 100644 --- a/client/as-util.c +++ b/client/as-util.c @@ -3541,83 +3541,6 @@ as_util_mirror_screenshots (AsUtilPrivate *priv, gchar **values, GError **error) } static gboolean -as_util_mirror_local_firmware (AsUtilPrivate *priv, gchar **values, GError **error) -{ - AsApp *app; - GPtrArray *apps; - guint i; - guint j; - g_autoptr(AsStore) store = NULL; - g_autoptr(GFile) file = NULL; - - /* check args */ - if (g_strv_length (values) != 2) { - g_set_error_literal (error, - AS_ERROR, - AS_ERROR_INVALID_ARGUMENTS, - "Not enough arguments, expected: " - "file url"); - return FALSE; - } - - /* open file */ - store = as_store_new (); - file = g_file_new_for_path (values[0]); - if (!as_store_from_file (store, file, NULL, NULL, error)) - return FALSE; - - /* convert all the screenshots */ - apps = as_store_get_apps (store); - for (i = 0; i < apps->len; i++) { - GPtrArray *releases; - AsRelease *rel; - - /* get app */ - app = g_ptr_array_index (apps, i); - if (as_app_get_kind (app) != AS_APP_KIND_FIRMWARE) - continue; - releases = as_app_get_releases (app); - if (releases->len == 0) - continue; - for (j = 0; j < releases->len; j++) { - AsChecksum *csum; - const gchar *tmp; - g_autofree gchar *loc = NULL; - g_autofree gchar *fn = NULL; - rel = g_ptr_array_index (releases, j); - - /* get the release filename, but fall back to - * the default location basename if unset */ - csum = as_release_get_checksum_by_target (rel, AS_CHECKSUM_TARGET_CONTAINER); - if (csum != NULL) { - tmp = as_checksum_get_filename (csum); - if (tmp == NULL) - continue; - fn = g_strdup (tmp); - } else { - tmp = as_release_get_location_default (rel); - if (tmp == NULL) - continue; - fn = g_path_get_basename (tmp); - } - loc = g_build_filename (values[1], fn, NULL); - g_ptr_array_set_size (as_release_get_locations (rel), 0); - as_release_add_location (rel, loc); - } - } - - /* save file */ - if (!as_store_to_file (store, file, - AS_NODE_TO_XML_FLAG_ADD_HEADER | - AS_NODE_TO_XML_FLAG_FORMAT_INDENT | - AS_NODE_TO_XML_FLAG_FORMAT_MULTILINE, - NULL, error)) - return FALSE; - - return TRUE; -} - -static gboolean as_util_agreement_export (AsUtilPrivate *priv, gchar **values, GError **error) { AsAgreement *pp; @@ -4602,12 +4525,6 @@ main (int argc, char *argv[]) _("Mirror upstream screenshots"), as_util_mirror_screenshots); as_util_add (priv->cmd_array, - "mirror-local-firmware", - NULL, - /* TRANSLATORS: command description */ - _("Mirror local firmware files"), - as_util_mirror_local_firmware); - as_util_add (priv->cmd_array, "incorporate", NULL, /* TRANSLATORS: command description */ diff --git a/contrib/ci/Dockerfile-debian-stretch b/contrib/ci/Dockerfile-debian-stretch index e7e59f9..805edb4 100644 --- a/contrib/ci/Dockerfile-debian-stretch +++ b/contrib/ci/Dockerfile-debian-stretch @@ -2,7 +2,7 @@ FROM debian:stretch RUN echo "deb-src http://deb.debian.org/debian/ stretch main" >> /etc/apt/sources.list RUN apt-get update -qq -RUN apt-get install -yq --no-install-recommends meson gcab libstemmer-dev +RUN apt-get install -yq --no-install-recommends meson libstemmer-dev RUN apt-get build-dep -yq appstream-glib RUN mkdir /build diff --git a/contrib/ci/Dockerfile-fedora-25 b/contrib/ci/Dockerfile-fedora-25 index e42a0be..756abf9 100644 --- a/contrib/ci/Dockerfile-fedora-25 +++ b/contrib/ci/Dockerfile-fedora-25 @@ -6,7 +6,6 @@ RUN dnf -y install \ docbook-utils \ fontconfig-devel \ freetype-devel \ - gcab \ gdk-pixbuf2-devel \ gettext \ glib2-devel \ @@ -16,7 +15,6 @@ RUN dnf -y install \ gtk-doc \ json-glib-devel \ libarchive-devel \ - libgcab1-devel \ libsoup-devel \ libstemmer-devel \ libuuid-devel \ diff --git a/contrib/libappstream-glib.spec.in b/contrib/libappstream-glib.spec.in index a3e837e..4ff3996 100644 --- a/contrib/libappstream-glib.spec.in +++ b/contrib/libappstream-glib.spec.in @@ -22,7 +22,6 @@ BuildRequires: libsoup-devel >= %{libsoup_version} BuildRequires: gdk-pixbuf2-devel >= %{gdk_pixbuf_version} BuildRequires: gtk3-devel BuildRequires: gettext -BuildRequires: libgcab1-devel BuildRequires: libuuid-devel BuildRequires: libstemmer-devel BuildRequires: json-glib-devel >= %{json_glib_version} @@ -34,7 +33,6 @@ BuildRequires: freetype-devel BuildRequires: pango-devel BuildRequires: rpm-devel BuildRequires: sqlite-devel -BuildRequires: gcab # for the manpages BuildRequires: libxslt diff --git a/data/tests/firmware/2_0_0/firmware.bin b/data/tests/firmware/2_0_0/firmware.bin deleted file mode 100644 index d07b709..0000000 --- a/data/tests/firmware/2_0_0/firmware.bin +++ /dev/null @@ -1 +0,0 @@ -a binary file diff --git a/data/tests/firmware/2_0_0/firmware.inf b/data/tests/firmware/2_0_0/firmware.inf deleted file mode 100644 index bf64f8b..0000000 --- a/data/tests/firmware/2_0_0/firmware.inf +++ /dev/null @@ -1,22 +0,0 @@ -; Copyright (C) 2015 Hughski Limited - -[Version] -Class=Firmware -ClassGuid={f2e7dd72-6468-4e36-b6f1-6488f42c1b52} -DriverVer=03/01/2015,2.0.0 -Provider=%Provider% -AppstreamId=com.hughski.ColorHug2.firmware - -[Firmware_CopyFiles] -firmware.bin - -[Firmware_AddReg] -HKR,,FirmwareId,,{84f40464-9272-4ef7-9399-cd95f12da696} -HKR,,FirmwareVersion,%REG_DWORD%,0x2000000 -HKR,,FirmwareFilename,,firmware.bin - -[Strings] -Provider = "Hughski Limited" -FirmwareDesc = "ColorHug Firmware" -DiskName = "Firmware for the ColorHug Colorimeter" -REG_DWORD = 0x00010001 diff --git a/data/tests/firmware/2_0_1/firmware.bin b/data/tests/firmware/2_0_1/firmware.bin deleted file mode 100644 index d07b709..0000000 --- a/data/tests/firmware/2_0_1/firmware.bin +++ /dev/null @@ -1 +0,0 @@ -a binary file diff --git a/data/tests/firmware/2_0_1/firmware.inf b/data/tests/firmware/2_0_1/firmware.inf deleted file mode 100644 index 83b181d..0000000 --- a/data/tests/firmware/2_0_1/firmware.inf +++ /dev/null @@ -1,21 +0,0 @@ -; Copyright (C) 2015 Hughski Limited - -[Version] -Class=Firmware -ClassGuid={f2e7dd72-6468-4e36-b6f1-6488f42c1b52} -DriverVer=03/03/2015,2.0.1 -Provider=%Provider% - -[Firmware_CopyFiles] -firmware.bin - -[Firmware_AddReg] -HKR,,FirmwareId,,{84f40464-9272-4ef7-9399-cd95f12da696} -HKR,,FirmwareVersion,%REG_DWORD%,0x2000001 -HKR,,FirmwareFilename,,firmware.bin - -[Strings] -Provider = "Hughski Limited" -FirmwareDesc = "ColorHug Firmware" -DiskName = "Firmware for the ColorHug Colorimeter" -REG_DWORD = 0x00010001 diff --git a/data/tests/firmware/2_0_1/firmware.metainfo.xml b/data/tests/firmware/2_0_1/firmware.metainfo.xml deleted file mode 100644 index c92852d..0000000 --- a/data/tests/firmware/2_0_1/firmware.metainfo.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2015 Richard Hughes <richard@hughsie.com> --> -<component type="firmware"> - <id>com.hughski.ColorHug2.firmware</id> - <name>ColorHug Firmware</name> - <summary>Firmware for the ColorHug Colorimeter</summary> - <description> - <p> - Updating the firmware on your ColorHug device improves performance and - adds new features. - </p> - </description> - <provides> - <firmware type="flashed">84f40464-9272-4ef7-9399-cd95f12da696</firmware> - </provides> - <url type="homepage">http://www.hughski.com/</url> - <metadata_license>CC0-1.0</metadata_license> - <project_license>GPL-2.0+</project_license> - <updatecontact>richard_at_hughsie.com</updatecontact> - <developer_name>Hughski Limited</developer_name> - <releases> - <release version="2.0.1" timestamp="1424116753"> - <location>http://www.hughski.com/downloads/colorhug2/firmware/colorhug-2.0.1.cab</location> - <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> - </release> - </releases> -</component> diff --git a/data/tests/firmware/2_0_2/firmware.bin b/data/tests/firmware/2_0_2/firmware.bin deleted file mode 100644 index d07b709..0000000 --- a/data/tests/firmware/2_0_2/firmware.bin +++ /dev/null @@ -1 +0,0 @@ -a binary file diff --git a/data/tests/firmware/2_0_2/firmware.inf b/data/tests/firmware/2_0_2/firmware.inf deleted file mode 100644 index e5807ce..0000000 --- a/data/tests/firmware/2_0_2/firmware.inf +++ /dev/null @@ -1,21 +0,0 @@ -; Copyright (C) 2015 Hughski Limited - -[Version] -Class=Firmware -ClassGuid={f2e7dd72-6468-4e36-b6f1-6488f42c1b52} -DriverVer=03/03/2015,2.0.2 -Provider=%Provider% - -[Firmware_CopyFiles] -firmware.bin - -[Firmware_AddReg] -HKR,,FirmwareId,,{84f40464-9272-4ef7-9399-cd95f12da696} -HKR,,FirmwareVersion,%REG_DWORD%,0x02000002 -HKR,,FirmwareFilename,,firmware.bin - -[Strings] -Provider = "Hughski Limited" -FirmwareDesc = "ColorHug Firmware" -DiskName = "Firmware for the ColorHug Colorimeter" -REG_DWORD = 0x00010001 diff --git a/data/tests/firmware/2_0_2/firmware.metainfo.xml b/data/tests/firmware/2_0_2/firmware.metainfo.xml deleted file mode 100644 index 11028c9..0000000 --- a/data/tests/firmware/2_0_2/firmware.metainfo.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2015 Richard Hughes <richard@hughsie.com> --> -<component type="firmware"> - <id>com.hughski.ColorHug2.firmware</id> - <name>ColorHug Firmware </name> - <summary>Firmware for the ColorHug Colorimeter </summary> - <description> - <p> - Updating the firmware on your ColorHug device improves performance and - adds new features. - </p> - </description> - <provides> - <firmware type="flashed">84f40464-9272-4ef7-9399-cd95f12da696</firmware> - </provides> - <url type="homepage">http://www.hughski.com/</url> - <metadata_license>CC0-1.0</metadata_license> - <project_license>GPL-2.0+</project_license> - <updatecontact>richard_at_hughsie.com</updatecontact> - <developer_name>Hughski Limited</developer_name> - <releases> - <release version="2.0.2" timestamp="1424116753"> - <location>http://www.hughski.com/downloads/colorhug2/firmware/colorhug-2.0.2.cab</location> - <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> - </release> - </releases> -</component> diff --git a/data/tests/meson.build b/data/tests/meson.build index 2803c34..8b13789 100644 --- a/data/tests/meson.build +++ b/data/tests/meson.build @@ -1,30 +1 @@ -if get_option('builder') - firmware200 = custom_target('firmware-2.0.0', - output : 'colorhug-als-2.0.0.cab', - input : [ - 'firmware/2_0_0/firmware.inf', - 'firmware/2_0_0/firmware.bin' - ], - command : [gcab, '--create', '--nopath', '@OUTPUT@', '@INPUT@'], - ) - firmware201 = custom_target('firmware-2.0.1', - output : 'colorhug-als-2.0.1.cab', - input : [ - 'firmware/2_0_1/firmware.inf', - 'firmware/2_0_1/firmware.bin', - 'firmware/2_0_1/firmware.metainfo.xml' - ], - command : [gcab, '--create', '--nopath', '@OUTPUT@', '@INPUT@'], - ) - - firmware202 = custom_target('firmware-2.0.2', - output : 'colorhug-als-2.0.2.cab', - input : [ - 'firmware/2_0_2/firmware.inf', - 'firmware/2_0_2/firmware.bin', - 'firmware/2_0_2/firmware.metainfo.xml' - ], - command : [gcab, '--create', '--nopath', '@OUTPUT@', '@INPUT@'], - ) -endif 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('..'), diff --git a/libappstream-glib/appstream-glib.pc.in b/libappstream-glib/appstream-glib.pc.in index c1d7ef7..872d30d 100644 --- a/libappstream-glib/appstream-glib.pc.in +++ b/libappstream-glib/appstream-glib.pc.in @@ -6,7 +6,7 @@ includedir=@includedir@ Name: appstream-glib Description: Objects and helper methods to help reading and writing AppStream metadata Version: @VERSION@ -Requires.private: libarchive uuid @GCAB_DEPENDENCY@ +Requires.private: libarchive uuid Requires: glib-2.0, gobject-2.0, gdk-pixbuf-2.0 Libs: -L${libdir} -lappstream-glib Cflags: -I${includedir}/libappstream-glib diff --git a/libappstream-glib/as-format.c b/libappstream-glib/as-format.c index c8bd6b2..0ef29c9 100644 --- a/libappstream-glib/as-format.c +++ b/libappstream-glib/as-format.c @@ -171,10 +171,6 @@ as_format_guess_kind (const gchar *filename) return AS_FORMAT_KIND_APPSTREAM; if (g_str_has_suffix (filename, ".yml.gz")) return AS_FORMAT_KIND_APPSTREAM; -#ifdef HAVE_GCAB - if (g_str_has_suffix (filename, ".cab")) - return AS_FORMAT_KIND_APPSTREAM; -#endif if (g_str_has_suffix (filename, ".desktop")) return AS_FORMAT_KIND_DESKTOP; if (g_str_has_suffix (filename, ".desktop.in")) diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 7e61fb5..cb12db8 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -3691,65 +3691,6 @@ as_test_store_merges_local_func (void) } static void -as_test_store_cab_func (void) -{ -#ifdef HAVE_GCAB - gboolean ret; - const gchar *src; - g_autoptr(GError) error = NULL; - g_autoptr(AsStore) store = NULL; - g_autoptr(GFile) file = NULL; - g_autofree gchar *fn = NULL; - g_autoptr(GString) xml = NULL; - - /* parse a .cab file as a store */ - store = as_store_new (); - as_store_set_api_version (store, 0.9); - fn = as_test_get_filename ("colorhug-als-2.0.2.cab"); - g_assert (fn != NULL); - file = g_file_new_for_path (fn); - ret = as_store_from_file (store, file, NULL, NULL, &error); - g_assert_no_error (error); - g_assert (ret); - - /* check output */ - src = - "<components origin=\"colorhug-als-2.0.2.cab\" 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" - "</releases>\n" - "<provides>\n" - "<firmware type=\"flashed\">84f40464-9272-4ef7-9399-cd95f12da696</firmware>\n" - "</provides>\n" - "</component>\n" - "</components>\n"; - xml = as_store_to_xml (store, AS_NODE_TO_XML_FLAG_FORMAT_MULTILINE); - ret = as_test_compare_lines (xml->str, src, &error); - g_assert_no_error (error); - g_assert (ret); -#endif -} - -static void as_test_store_empty_func (void) { gboolean ret; @@ -5687,7 +5628,6 @@ main (int argc, char **argv) g_test_add_func ("/AppStream/store{prefix}", as_test_store_prefix_func); g_test_add_func ("/AppStream/store{wildcard}", as_test_store_wildcard_func); g_test_add_func ("/AppStream/store{demote}", as_test_store_demote_func); - g_test_add_func ("/AppStream/store{cab}", as_test_store_cab_func); g_test_add_func ("/AppStream/store{merges}", as_test_store_merges_func); g_test_add_func ("/AppStream/store{merges-local}", as_test_store_merges_local_func); g_test_add_func ("/AppStream/store{addons}", as_test_store_addons_func); diff --git a/libappstream-glib/as-store-cab.c b/libappstream-glib/as-store-cab.c index 9fcc317..d6e4da4 100644 --- a/libappstream-glib/as-store-cab.c +++ b/libappstream-glib/as-store-cab.c @@ -21,328 +21,11 @@ #include "config.h" -#include <libgcab.h> -#include <glib/gstdio.h> -#include <gio/gunixinputstream.h> +//#include <glib/gstdio.h> +//#include <gio/gunixinputstream.h> #include "as-store-cab.h" -#include "as-utils.h" - -#ifndef HAVE_GCAB_1_0 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(GCabCabinet, g_object_unref) -#endif - -static gboolean -as_store_cab_cb (GCabFile *file, gpointer user_data) -{ - GPtrArray *filelist = (GPtrArray *) user_data; - const gchar *fn; - gchar *tmp; - - /* strip Windows or Linux paths */ - fn = gcab_file_get_name (file); - tmp = g_strrstr (fn, "\\"); - if (tmp == NULL) - tmp = g_strrstr (fn, "/"); - if (tmp != NULL) { - g_debug ("removed path prefix for %s", fn); - fn = tmp + 1; - } - gcab_file_set_extract_name (file, fn); - - g_ptr_array_add (filelist, g_strdup (fn)); - return TRUE; -} - -static gboolean -as_store_cab_verify_checksum_cab (AsRelease *release, - GBytes *bytes, - GError **error) -{ - AsChecksum *csum_tmp; - g_autofree gchar *actual = NULL; - - /* nothing already set, so just add */ - actual = g_compute_checksum_for_bytes (G_CHECKSUM_SHA1, bytes); - csum_tmp = as_release_get_checksum_by_target (release, AS_CHECKSUM_TARGET_CONTAINER); - if (as_checksum_get_value (csum_tmp) == NULL) { - as_checksum_set_kind (csum_tmp, G_CHECKSUM_SHA1); - as_checksum_set_value (csum_tmp, actual); - return TRUE; - } - - /* check it matches */ - if (g_strcmp0 (actual, as_checksum_get_value (csum_tmp)) != 0) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "container checksum invalid, expected %s, got %s", - as_checksum_get_value (csum_tmp), actual); - return FALSE; - } - - /* success */ - return TRUE; -} - -static gboolean -as_store_cab_verify_checksum_fw (AsChecksum *checksum, - const gchar *tmp_path, - GError **error) -{ - g_autofree gchar *rel_basename = NULL; - g_autofree gchar *rel_fn = NULL; - g_autofree gchar *actual = NULL; - - /* get the firmware filename */ - rel_basename = g_path_get_basename (as_checksum_get_filename (checksum)); - rel_fn = g_build_filename (tmp_path, rel_basename, NULL); - - /* calculate checksum */ - if (g_file_test (rel_fn, G_FILE_TEST_EXISTS)) { - gsize len; - g_autofree gchar *data = NULL; - if (!g_file_get_contents (rel_fn, &data, &len, error)) - return FALSE; - actual = g_compute_checksum_for_data (G_CHECKSUM_SHA1, (guchar *)data, len); - } - - /* nothing already set, so just add */ - if (as_checksum_get_value (checksum) == NULL) { - as_checksum_set_kind (checksum, G_CHECKSUM_SHA1); - as_checksum_set_value (checksum, actual); - return TRUE; - } - - /* check it matches */ - if (g_strcmp0 (actual, as_checksum_get_value (checksum)) != 0) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "contents checksum invalid, expected %s, got %s", - as_checksum_get_value (checksum), actual); - return FALSE; - } - - /* success */ - return TRUE; -} - -static gboolean -as_store_cab_set_release_blobs (AsRelease *release, const gchar *tmp_path, GError **error) -{ - AsChecksum *csum_tmp; - g_autofree gchar *asc_basename = NULL; - g_autofree gchar *asc_fn = NULL; - g_autofree gchar *rel_basename = NULL; - g_autofree gchar *rel_fn = NULL; - g_autoptr(GError) error_local = NULL; - - /* get the firmware filename */ - csum_tmp = as_release_get_checksum_by_target (release, AS_CHECKSUM_TARGET_CONTENT); - g_assert (csum_tmp != NULL); - rel_basename = g_path_get_basename (as_checksum_get_filename (csum_tmp)); - rel_fn = g_build_filename (tmp_path, rel_basename, NULL); - - /* add this information to the release objects */ - if (g_file_test (rel_fn, G_FILE_TEST_EXISTS)) { - gchar *data = NULL; - gsize data_len = 0; - g_autoptr(GBytes) blob = NULL; - - if (!g_file_get_contents (rel_fn, &data, &data_len, &error_local)) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "failed to open %s: %s", - rel_fn, error_local->message); - return FALSE; - } - - /* this is the size of the firmware */ - if (as_release_get_size (release, AS_SIZE_KIND_INSTALLED) == 0) { - as_release_set_size (release, - AS_SIZE_KIND_INSTALLED, - data_len); - } - - /* set the data on the release object */ - blob = g_bytes_new_take (data, data_len); - as_release_set_blob (release, rel_basename, blob); - } - - /* if the signing file exists, set that too */ - asc_basename = g_strdup_printf ("%s.asc", rel_basename); - asc_fn = g_build_filename (tmp_path, asc_basename, NULL); - if (g_file_test (asc_fn, G_FILE_TEST_EXISTS)) { - gchar *data = NULL; - gsize data_len = 0; - g_autoptr(GBytes) blob = NULL; - - if (!g_file_get_contents (asc_fn, &data, &data_len, &error_local)) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "failed to open %s: %s", - asc_fn, error_local->message); - return FALSE; - } - - /* set the data on the release object */ - blob = g_bytes_new_take (data, data_len); - as_release_set_blob (release, asc_basename, blob); - } - return TRUE; -} - -static gboolean -as_store_cab_from_bytes_with_origin (AsStore *store, - GBytes *bytes, - const gchar *basename, - GCancellable *cancellable, - GError **error) -{ - g_autoptr(GCabCabinet) gcab = NULL; - g_autoptr(GError) error_local = NULL; - g_autofree gchar *tmp_path = NULL; - g_autoptr(GFile) tmp_file = NULL; - g_autoptr(GInputStream) input_stream = NULL; - g_autoptr(GPtrArray) filelist = NULL; - guint i; - - /* open the file */ - gcab = gcab_cabinet_new (); - input_stream = g_memory_input_stream_new_from_bytes (bytes); - if (!gcab_cabinet_load (gcab, input_stream, NULL, &error_local)) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "cannot load .cab file: %s", - error_local->message); - return FALSE; - } - - /* decompress to /tmp */ - tmp_path = g_dir_make_tmp ("appstream-glib-XXXXXX", &error_local); - if (tmp_path == NULL) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "failed to create temp dir: %s", - error_local->message); - return FALSE; - } - - /* extract the entire cab file */ - filelist = g_ptr_array_new_with_free_func (g_free); - tmp_file = g_file_new_for_path (tmp_path); - if (!gcab_cabinet_extract_simple (gcab, tmp_file, - as_store_cab_cb, - filelist, NULL, &error_local)) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "failed to extract .cab file: %s", - error_local->message); - return FALSE; - } - - /* loop through each file looking for components */ - for (i = 0; i < filelist->len; i++) { - AsRelease *rel; - AsChecksum *csum_tmp; - const gchar *fn; - g_autofree gchar *tmp_fn = NULL; - g_autoptr(AsApp) app = NULL; - - /* debug */ - fn = g_ptr_array_index (filelist, i); - g_debug ("found file %u\t%s", i, fn); - - /* if inf or metainfo, add */ - if (as_format_guess_kind (fn) != AS_FORMAT_KIND_METAINFO) - continue; - - tmp_fn = g_build_filename (tmp_path, fn, NULL); - app = as_app_new (); - if (!as_app_parse_file (app, tmp_fn, - AS_APP_PARSE_FLAG_NONE, &error_local)) { - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "%s could not be loaded: %s", - tmp_fn, - error_local->message); - return FALSE; - } - - /* only process the latest release */ - rel = as_app_get_release_default (app); - if (rel == NULL) { - g_set_error_literal (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "no releases in metainfo file"); - return FALSE; - } - - /* ensure we always have a container checksum */ - csum_tmp = as_release_get_checksum_by_target (rel, AS_CHECKSUM_TARGET_CONTAINER); - if (csum_tmp == NULL) { - g_autoptr(AsChecksum) csum = NULL; - csum = as_checksum_new (); - as_checksum_set_target (csum, AS_CHECKSUM_TARGET_CONTAINER); - if (basename != NULL) - as_checksum_set_filename (csum, basename); - as_release_add_checksum (rel, csum); - } - - /* set the container checksum */ - if (!as_store_cab_verify_checksum_cab (rel, bytes, error)) - return FALSE; - - /* this is the size of the cab file itself */ - if (as_release_get_size (rel, AS_SIZE_KIND_DOWNLOAD) == 0) - as_release_set_size (rel, AS_SIZE_KIND_DOWNLOAD, - g_bytes_get_size (bytes)); - - /* ensure we always have a content checksum */ - csum_tmp = as_release_get_checksum_by_target (rel, AS_CHECKSUM_TARGET_CONTENT); - if (csum_tmp == NULL) { - g_autoptr(AsChecksum) csum = NULL; - csum = as_checksum_new (); - as_checksum_set_target (csum, AS_CHECKSUM_TARGET_CONTENT); - /* if this isn't true, a firmware needs to set in - * the metainfo.xml file something like: - * <checksum target="content" filename="FLASH.ROM"/> */ - as_checksum_set_filename (csum, "firmware.bin"); - as_release_add_checksum (rel, csum); - csum_tmp = csum; - } - if (!as_store_cab_verify_checksum_fw (csum_tmp, tmp_path, error)) - return FALSE; - - /* set blobs */ - if (!as_store_cab_set_release_blobs (rel, tmp_path, error)) - return FALSE; - - /* add any component to the store */ - as_store_add_app (store, app); - } - - /* delete temp files */ - for (i = 0; i < filelist->len; i++) { - const gchar *fn; - g_autofree gchar *tmp_fn = NULL; - fn = g_ptr_array_index (filelist, i); - tmp_fn = g_build_filename (tmp_path, fn, NULL); - g_unlink (tmp_fn); - } - g_rmdir (tmp_path); - - /* success */ - return TRUE; -} +//#include "as-utils.h" gboolean as_store_cab_from_bytes (AsStore *store, @@ -350,8 +33,11 @@ as_store_cab_from_bytes (AsStore *store, GCancellable *cancellable, GError **error) { - return as_store_cab_from_bytes_with_origin (store, bytes, NULL, - cancellable, error); + g_set_error (error, + AS_STORE_ERROR, + AS_STORE_ERROR_FAILED, + "Loading firmware is no longer suported, see fwupd"); + return FALSE; } gboolean @@ -360,58 +46,9 @@ as_store_cab_from_file (AsStore *store, GCancellable *cancellable, GError **error) { - guint64 size; - g_autoptr(GBytes) bytes = NULL; - g_autoptr(GError) error_local = NULL; - g_autoptr(GFileInfo) info = NULL; - g_autoptr(GInputStream) input_stream = NULL; - g_autofree gchar *filename = NULL; - g_autofree gchar *origin = NULL; - - /* set origin */ - origin = g_file_get_basename (file); - as_store_set_origin (store, origin); - - /* open file */ - input_stream = G_INPUT_STREAM (g_file_read (file, cancellable, &error_local)); - if (input_stream == NULL) { - filename = g_file_get_path (file); - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "Failed to open %s: %s", - filename, error_local->message); - return FALSE; - } - - /* get size */ - info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_SIZE, - G_FILE_QUERY_INFO_NONE, cancellable, &error_local); - if (info == NULL) { - filename = g_file_get_path (file); - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "Failed to get info from %s: %s", - filename, error_local->message); - return FALSE; - } - - /* slurp it all */ - size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE); - bytes = g_input_stream_read_bytes (input_stream, (gsize) size, - cancellable, &error_local); - if (bytes == NULL) { - filename = g_file_get_path (file); - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "Failed to read %s: %s", - filename, error_local->message); - return FALSE; - } - - /* parse */ - return as_store_cab_from_bytes_with_origin (store, bytes, origin, - cancellable, error); + g_set_error (error, + AS_STORE_ERROR, + AS_STORE_ERROR_FAILED, + "Loading firmware is no longer suported, see fwupd"); + return FALSE; } diff --git a/libappstream-glib/as-store.c b/libappstream-glib/as-store.c index e3ab9d0..d573e07 100644 --- a/libappstream-glib/as-store.c +++ b/libappstream-glib/as-store.c @@ -46,10 +46,7 @@ #include "as-store.h" #include "as-utils-private.h" #include "as-yaml.h" - -#ifdef HAVE_GCAB #include "as-store-cab.h" -#endif #define AS_API_VERSION_NEWEST 0.8 @@ -2003,11 +2000,10 @@ as_store_from_file_internal (AsStore *store, cancellable, error); } -#ifdef HAVE_GCAB + /* a cab archive */ if (g_str_has_suffix (filename, ".cab")) return as_store_cab_from_file (store, file, cancellable, error); -#endif /* an AppStream XML file */ if (priv->add_flags & AS_STORE_ADD_FLAG_ONLY_NATIVE_LANGS) @@ -2111,15 +2107,7 @@ as_store_from_bytes (AsStore *store, /* is firmware */ if (g_strcmp0 (content_type, "application/vnd.ms-cab-compressed") == 0) { -#ifdef HAVE_GCAB return as_store_cab_from_bytes (store, bytes, cancellable, error); -#else - g_set_error (error, - AS_STORE_ERROR, - AS_STORE_ERROR_FAILED, - "not supported, compiled without gcab"); - return FALSE; -#endif } /* not sure what to do */ diff --git a/libappstream-glib/meson.build b/libappstream-glib/meson.build index 417e054..37d4747 100644 --- a/libappstream-glib/meson.build +++ b/libappstream-glib/meson.build @@ -9,7 +9,6 @@ deps = [ giounix, glib, libarchive, - libgcab, soup, uuid, ] @@ -150,7 +149,6 @@ pkgg.generate( requires_private : [ 'libarchive', 'uuid', - 'libgcab-1.0', ], name : 'appstream-glib', description : 'Objects and helper methods to help reading and writing AppStream metadata', diff --git a/meson.build b/meson.build index ee68cc6..f86e188 100644 --- a/meson.build +++ b/meson.build @@ -57,20 +57,11 @@ libarchive = dependency('libarchive') soup = dependency('libsoup-2.4', version : '>= 2.51.92') json_glib = dependency('json-glib-1.0', version : '>= 1.1.2') gdkpixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.31.5') -libgcab = dependency('libgcab-1.0', required : false) -if libgcab.version().version_compare('>= 1.0') - conf.set('HAVE_GCAB_1_0', '1') -endif - -if libgcab.found() - conf.set('HAVE_GCAB', 1) -endif # builder (default enabled) if get_option('builder') gtk = dependency('gtk+-3.0') gmodule = dependency('gmodule-2.0') - gcab = find_program('gcab') if get_option('rpm') rpm = dependency('rpm') conf.set('HAVE_RPM', 1) |