summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Do not trigger an inotity event when the AppStream XML data is unchangedwip/hughsie/save-writesRichard Hughes2019-07-171-16/+46
| | | | | | Do not modify the ctime or mtime in as_utils_install_xml() if the SHA1 checksums are identical. This means gnome-software starts without triggering an XbSilo rebuild if we refresh the repos with PackageKit as dnf is so keen to do.
* Do not allow forward or backwards slashes in <id> valuesRichard Hughes2019-06-101-0/+5
|
* Do not require <translation> for validation unless strictKalev Lember2019-05-172-8/+4
| | | | | | Flathub is already patching appstream-glib to remove this check. Fixes https://github.com/hughsie/appstream-glib/issues/302
* Do not require <update_contact> for validation unless strictRichard Hughes2019-05-142-8/+4
| | | | Fixes some of https://github.com/hughsie/appstream-glib/issues/302
* add UPL short name to SPDX conversionSalman Siddiqui2019-04-091-0/+1
|
* Update the SPDX license list to v3.5Richard Hughes2019-04-091-25/+44
|
* as-compose: Remove relative path from icon namesDavid Hewitt2019-04-091-8/+4
|
* Allow non-desktop components to be extendedRichard Hughes2019-04-091-2/+0
| | | | There's no obvious reason why we should restrict this in the generator.
* trivial: Fix some typos spotted using codespellRichard Hughes2019-04-0818-28/+28
|
* Only require <release> for validate, but not validate-relaxKalev Lember2019-03-291-4/+7
| | | | | | The plan was to require <release> for validate, so that we would be able to require a version number for flathub, but it accidentally got enabled for validate-relax as well.
* Allow building on WindowsJehan2019-03-2613-36/+140
| | | | Signed-off-by: Richard Hughes <richard@hughsie.com>
* Modernize the validation requirementsRichard Hughes2019-03-205-48/+165
| | | | | | | | | | | | | | | * Require <content_rating> for any desktop or console application * Make <release> mandatory when validating * Further relax style requirements * Require description for desktop an console apps This changes a lot of things that are now best practice for all apps, and required to be included in Flathub. Use `appstream-util validate-relax` to ignore some new failures and use `appstream-util validate-strict` to bring them back. Fixes: https://github.com/hughsie/appstream-glib/issues/263
* trivial: post release version bumpRichard Hughes2019-02-283-4/+5
|
* Release version 0.7.15appstream_glib_0_7_15Richard Hughes2019-02-2830-229/+431
|
* trivial: Remove unused .map file from the builderRichard Hughes2019-02-281-6/+0
|
* Fix the Meson checks for rpmRichard Hughes2019-02-271-4/+6
| | | | | | This fixes the case where we do -Dbuilder=false -Drpm=true. Many thanks to Mathieu Bridon for help identifying the problem.
* Appdata to AppDatascootergrisen2019-02-111-1/+1
|
* Fix build of libappstream-glib clientsJürg Billeter2019-02-1031-31/+31
| | | | | | | | | | | With '#pragma once', __APPSTREAM_GLIB_H is never defined. In file included from /usr/include/libappstream-glib/appstream-glib.h:35: /usr/include/libappstream-glib/as-utils.h:11:2: error: #error "Only <appstream-glib.h> can be included directly." #error "Only <appstream-glib.h> can be included directly." ^~~~~ Fixes: 87b7483e ("Use '#pragma once' to avoid a lot of boilerplate")
* Use '#pragma once' to avoid a lot of boilerplateRichard Hughes2019-02-0965-316/+114
|
* Use the SPDX-License-Identifier in all source filesRichard Hughes2019-02-09127-1887/+127
|
* Do not overwrite the project group using heuristics if already setRichard Hughes2019-02-061-8/+14
| | | | Fixes https://github.com/hughsie/appstream-glib/issues/236
* Recognise uncompressed Arch packagesRichard Hughes2019-02-061-1/+2
| | | | Fixes https://github.com/hughsie/appstream-glib/issues/264
* Do not install the libappstream-builder shared libraryRichard Hughes2019-02-063-78/+2
| | | | Nothing uses it, and it's not API or ABI stable.
* Use rpmvercmp instead of internal vercmp when built with rpm supportKalev Lember2019-02-062-0/+12
| | | | | | | | This should help make sure that the version comparison algorithm matches exactly with Fedora's when built on Fedora and supports caret, tilde, and plus characters that all have special semantics in Fedora packages. https://github.com/hughsie/appstream-glib/issues/270
* utils: trivial: Split out an internal functionKalev Lember2019-02-061-33/+40
|
* libappstream-glib/meson.build: pass -DAS_COMPILATION to gir compilermaxice82019-02-041-0/+3
| | | | | | | | | | | This fixes cross building of gir using Yocto Project/Buildroot method. This is also done on: atk with -DATK_COMPILATION, gdk-pixbuf with -DGDK_PIXBUF_COMPILATION, libgusb with -DGUSB_COMPILATION.
* Add support for CONTACT URLsRobert Ancell2019-01-312-0/+6
|
* tests: Add test for OARS → CSM mappingsPhilip Withnall2019-01-231-0/+36
| | | | | | Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Add a helper function to get OARS IDsPhilip Withnall2019-01-232-0/+25
| | | | | | | | | This just exposes the list of valid OARS IDs, so callers don’t have to keep a copy themselves. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Move OARS → CSM mappings into static spacePhilip Withnall2019-01-231-51/+51
| | | | | | | | | | This means they can be reused in another upcoming function. This introduces no functional changes. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Make as_content_rating_attribute_to_csm_age() publicPhilip Withnall2019-01-232-6/+9
| | | | | | | | This will allow it to be tested in a unit test. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Restructure OARS → CSM mapping tablePhilip Withnall2019-01-231-123/+68
| | | | | | | | | | Make it more compact in lines of code and in memory. This introduces no functional changes (all the mappings should be the same), but it should make it harder to make typos when editing the table in future. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Add missing OARS → CSM mappingsPhilip Withnall2019-01-231-0/+11
| | | | | | | | | | | | | | | | These mappings were missing from the table, which could result in as_content_rating_id_value_to_csm_age() returning 0 for some #AsContentRatingValues even though it would return >0 for a less-intense #AsContentRatingValue for the same ID. Fix that by adding additional mappings. There’s no child psychology knowledge behind the choices: they’re simply copies of the next age for the same ID, chosen to avoid exposing young children to content which the mappings didn’t already explicitly expose them to. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Fix a typo in an OARS → CSM mappingPhilip Withnall2019-01-231-1/+1
| | | | | | | | | | | | | While I cannot be 100% sure, this looks like a typo because: • There is already a social-chat/moderate mapping higher up in the table. • social-chat is not an OARS v1.1 addition. • It’s right below a money-purchasing/mild mapping, and there is no money-purchasing/moderate mapping. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* as-content-rating: Add missing OARS → CSM mappings to fix round tripsPhilip Withnall2019-01-231-0/+2
| | | | | | | | | | | | | | | Currently, it’s not possible to do a round trip from a CSM age to a set of OARS ratings and back to a CSM age without the age changing; this is because there are no mappings for ages 16 and 17. Fix that by adding them. There is no child psychology knowledge behind the choices of ages here: they were chosen purely to fit in with the existing ratings and to fix round trips. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://github.com/hughsie/appstream-glib/issues/280
* Add support for SOURCE URLsRichard Hughes2019-01-222-0/+6
| | | | These could be specified per-release or per-component as required.
* Add support for per-release URLsRichard Hughes2019-01-225-1/+92
|
* CI: Update Fedora from 25 to 29, and Debian from Stretch to BusterKalev Lember2019-01-093-8/+7
| | | | | | This gets us new meson for https://github.com/hughsie/appstream-glib/pull/281, and also makes it possible to enable -Ddep11=true for Debian as it's no longer blocked by too old meson in Stretch.
* app: Add locking to unique id buildingKalev Lember2019-01-041-0/+7
| | | | | | | | | | This fixes crashes in gnome-software when concurrently calling as_app_get_unique_id() from multiple threads. https://bugzilla.redhat.com/show_bug.cgi?id=1655775 https://bugzilla.redhat.com/show_bug.cgi?id=1643702 https://bugzilla.redhat.com/show_bug.cgi?id=1640446 https://bugzilla.redhat.com/show_bug.cgi?id=1530719
* Use as_utils_vercmp_full internallyKalev Lember2019-01-045-11/+11
| | | | | | | | | This fixes, among other things, appdata validation when the version goes from 9.5 to 10, or 0.9 to 1. This partially fixes https://github.com/hughsie/appstream-glib/issues/270 We're still failing to correctly compare "Build 9.5" to "Build 10".
* Add tests for as_util_vercmp_full()Kalev Lember2019-01-041-0/+8
| | | | https://github.com/hughsie/appstream-glib/issues/270
* store: Fix threading related crashes when creating the search cacheKalev Lember2018-12-271-2/+2
| | | | | | | | | | | | | Keep a ref on the AsApp in the worker thread to make sure it doesn't get destroyed in another thread while being processed. https://bugzilla.redhat.com/show_bug.cgi?id=1662130 https://bugzilla.redhat.com/show_bug.cgi?id=1661701 https://bugzilla.redhat.com/show_bug.cgi?id=1661382 https://bugzilla.redhat.com/show_bug.cgi?id=1658140 https://bugzilla.redhat.com/show_bug.cgi?id=1644026 https://bugzilla.redhat.com/show_bug.cgi?id=1639558 https://bugzilla.redhat.com/show_bug.cgi?id=1570096
* trivial: Add AS_CHECKSUM_TARGET_DEVICERichard Hughes2018-12-202-0/+6
|
* Merge pull request #276 from hughsie/wip/kalev/as-store-lockingKalev Lember2018-12-143-44/+229
|\ | | | | Various locking and thread safety fixes for AsStore
| * store: trivial: Fix a typo in commentwip/kalev/as-store-lockingKalev Lember2018-12-141-1/+1
| |
| * store: trivial: Fix a possibly memory leak in as_store_validateKalev Lember2018-12-141-2/+2
| | | | | | | | | | When returning early we were leaking GPtrArray *probs which never got freed. Change it to use g_autoptr to avoid that.
| * store: Add internal lockingKalev Lember2018-12-141-36/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds fine-grained locking around priv->array and various priv-stored hash table use. There are more thread safe issues in AsStore, but this should take care of those that cause frequent gnome-software crashes in F29. This may regress the perfomance a bit because it changes a few places to keep a deep copy to simplify locking, but I haven't observed any visible performance regressions in gnome-software. Also, gnome-software is in the process of switching to libxmlb anyway so it shouldn't matter a whole lot in the long run. This patch takes care to make sure that locking is fine grained enough so that we can be sure it doesn't lead into deadlocks, and also makes sure that we never invoke any callbacks (signals) while locked to prevent deadlocks when a client app calls back into AsStore code.
| * store: Return deep copy in as_store_get_apps_by_metadataKalev Lember2018-12-142-2/+2
| | | | | | | | | | | | | | | | | | | | This is strictly not necessary for making gnome-software's AsStore use thread safe as gnome-software doesn't actually use this function, but let's fix it anyway while I'm at it. This also updates tests that test the performance of the function as the deep copying makes it noticably slower (but that's fine because nothing actually uses it and it's still reasonably fast).
| * store: Add thread safe dup() functions for multithreaded clientsKalev Lember2018-12-143-3/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gnome-software spawns a new worker thread for each of its plugin operations and occasionally this leads to issues where one thread is reading from AsStore, and another one is changing it. There's also file monitor callbacks in AsStore that run in a yet another thread and can update internal data structures as well. This leads to a situation where functions returning pointers to internal data structures can't guarantee the data structure lifetime because another thread might be changing it in the background. To fix this, this commit adds new as_store_dup_apps() and as_store_dup_apps_by_id_merge() functions that return a deep copy of the internal structure, and updates existing "transfer container" as_store_get_apps_by_id() to return a deep copy, instead just returning a reffed container.
* | trivial: Do not let libsoup explode in a ball of flames for file:// mirror URLsRichard Hughes2018-12-121-0/+7
|/