[gnome-software] Use AppStream files for the popular, featured and extra category data
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Use AppStream files for the popular, featured and extra category data
- Date: Mon, 28 Mar 2016 15:47:53 +0000 (UTC)
commit 8084ddadf8122bf7416428f5f498a7e55e92b949
Author: Richard Hughes <richard hughsie com>
Date: Sun Mar 27 20:25:42 2016 +0100
Use AppStream files for the popular, featured and extra category data
This avoids having two more parsers and plugins for this functionality.
Makefile.am | 1 +
configure.ac | 13 +-
contrib/gnome-software.spec.in | 6 +-
data/Makefile.am | 24 +-
data/featured.ini.in | 70 ----
data/modulesets/Makefile.am | 8 -
data/modulesets/core.xml | 6 -
data/modulesets/featured.xml | 90 -----
data/modulesets/popular.xml | 18 -
data/modulesets/system.xml | 21 --
data/org.gnome.Software-categories.xml | 528 ++++++++++++++++++++++++++++
data/org.gnome.Software-featured.xml | 124 +++++++
data/org.gnome.Software-popular.xml | 96 +++++
src/Makefile.am | 3 +-
src/gs-feature-tile.c | 8 +-
src/gs-plugin-loader.c | 45 ++-
src/gs-self-test.c | 16 -
src/plugins/Makefile.am | 33 --
src/plugins/gs-appstream.c | 27 +-
src/plugins/gs-moduleset.c | 430 ----------------------
src/plugins/gs-moduleset.h | 65 ----
src/plugins/gs-plugin-appstream.c | 74 ++++-
src/plugins/gs-plugin-hardcoded-featured.c | 108 ------
src/plugins/gs-plugin-moduleset.c | 354 -------------------
src/plugins/gs-self-test.c | 83 -----
src/plugins/moduleset-test.xml | 4 -
26 files changed, 899 insertions(+), 1356 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index cb21860..eeff83f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@ EXTRA_DIST = \
README
DISTCHECK_CONFIGURE_FLAGS = \
+ --disable-tests \
--disable-dogtail
distclean-local:
diff --git a/configure.ac b/configure.ac
index 24ad5b3..d9387cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -61,7 +61,7 @@ dnl ---------------------------------------------------------------------------
dnl - Check library dependencies
dnl ---------------------------------------------------------------------------
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.18.2 gio-unix-2.0 gtkspell3-3.0)
-PKG_CHECK_MODULES(APPSTREAM, appstream-glib >= 0.5.11)
+PKG_CHECK_MODULES(APPSTREAM, appstream-glib >= 0.5.12)
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= 2.31.5)
PKG_CHECK_MODULES(JSON_GLIB, json-glib-1.0 >= 1.1.1)
PKG_CHECK_MODULES(SQLITE, sqlite3)
@@ -90,6 +90,12 @@ AC_ARG_ENABLE(dogtail,
enable_dogtail=yes)
AM_CONDITIONAL(ENABLE_DOGTAIL, test "$enable_dogtail" != no)
+AC_ARG_ENABLE(tests,
+ [AS_HELP_STRING([--enable-tests],
+ [test using tests [default=yes]])],,
+ enable_tests=yes)
+AM_CONDITIONAL(ENABLE_TESTS, test "$enable_tests" != no)
+
# PackageKit
AC_ARG_ENABLE(packagekit,
[AS_HELP_STRING([--enable-packagekit],
@@ -282,7 +288,7 @@ AC_DEFINE(HAVE_UBUNTU_REVIEWS,1,[Build Ubuntu reviews])
# this refers to the gnome-software plugin API version
# this is not in any way related to a package or soname version
-GS_PLUGIN_API_VERSION=9
+GS_PLUGIN_API_VERSION=10
AC_SUBST(GS_PLUGIN_API_VERSION)
AC_DEFINE_UNQUOTED([GS_PLUGIN_API_VERSION], "$GS_PLUGIN_API_VERSION", [the plugin API version])
@@ -295,9 +301,7 @@ AC_CONFIG_FILES([
Makefile
po/Makefile.in
data/appdata/Makefile
-data/featured.ini
data/Makefile
-data/modulesets/Makefile
data/icons/Makefile
data/icons/hicolor/Makefile
data/icons/hicolor/16x16/Makefile
@@ -324,6 +328,7 @@ echo "
cflags: ${CFLAGS}
cppflags: ${CPPFLAGS}
Dogtail: ${enable_dogtail}
+ Self tests: ${enable_tests}
PackageKit support: ${have_packagekit}
PolicyKit support: ${have_polkit}
Firmware support: ${have_firmware}
diff --git a/contrib/gnome-software.spec.in b/contrib/gnome-software.spec.in
index 03e98b1..89e1ced 100644
--- a/contrib/gnome-software.spec.in
+++ b/contrib/gnome-software.spec.in
@@ -35,7 +35,7 @@ BuildRequires: json-glib-devel
BuildRequires: rpm-devel
# this is not a library version
-%define gs_plugin_version 9
+%define gs_plugin_version 10
%description
gnome-software is an application that makes it easy to add, remove
@@ -91,9 +91,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%dir %{_datadir}/gnome-software
%{_datadir}/gnome-software/*.png
%{_datadir}/appdata/*.appdata.xml
+%{_datadir}/app-info/xmls/*.xml.gz
%{_mandir}/man1/gnome-software.1.gz
%{_datadir}/icons/hicolor/*/apps/*
-%{_datadir}/gnome-software/featured.ini
%{_datadir}/gnome-software/featured-*.svg
%{_datadir}/gnome-software/featured-*.jpg
%dir %{_libdir}/gs-plugins-%{gs_plugin_version}
@@ -104,8 +104,6 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/gnome-shell/search-providers/org.gnome.Software-search-provider.ini
%{_datadir}/glib-2.0/schemas/org.gnome.software.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.software-fedora.gschema.override
-%dir %{_datadir}/gnome-software/modulesets.d
-%{_datadir}/gnome-software/modulesets.d/*.xml
%changelog
* #LONGDATE# Richard Hughes <richard hughsie com> #VERSION#-0.#BUILD##ALPHATAG#
diff --git a/data/Makefile.am b/data/Makefile.am
index cd2902f..e5a45f1 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,8 +1,17 @@
SUBDIRS = \
appdata \
- modulesets \
icons
+appstreamdir = $(datadir)/app-info/xmls
+appstream_DATA = org.gnome.Software.xml.gz
+appstream_files = \
+ org.gnome.Software-categories.xml \
+ org.gnome.Software-featured.xml \
+ org.gnome.Software-popular.xml
+org.gnome.Software.xml.gz: $(appstream_files)
+ $(AM_V_GEN) appstream-util merge-appstream $@ \
+ $(srcdir)/org.gnome.Software-*.xml
+
resourcesdir = $(datadir)/gnome-software
dist_resources_DATA = \
featured-ardour.png \
@@ -21,8 +30,7 @@ dist_resources_DATA = \
featured-polari.svg \
featured-transmission.png \
featured-weather.png \
- featured-weather-bg.png \
- featured.ini
+ featured-weather-bg.png
@GSETTINGS_RULES@
gsettings_SCHEMAS = org.gnome.software.gschema.xml
@@ -39,9 +47,15 @@ install-sample-data:
rm fedora-20-icons.tar.gz; \
cd -
+BUILT_SOURCES = \
+ org.gnome.Software.xml.gz
+
+CLEANFILES = \
+ $(BUILT_SOURCES)
+
EXTRA_DIST = \
- $(gsettings_SCHEMAS) \
- featured.ini.in
+ $(appstream_files) \
+ $(gsettings_SCHEMAS)
MAINTAINERCLEANFILES = \
*~ \
diff --git a/data/org.gnome.Software-categories.xml b/data/org.gnome.Software-categories.xml
new file mode 100644
index 0000000..f9916f1
--- /dev/null
+++ b/data/org.gnome.Software-categories.xml
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components version="0.9" origin="gnome-software">
+
+ <!-- Apps that show up as featured in their respective categories -->
+ <component type="desktop">
+ <id>amarok.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>ardour4.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>audacity.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>banshee.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>brasero.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>easytag.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-music.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>rhythmbox.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>rosegarden.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>sound-juicer.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>anjuta.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>devassistant.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>devhelp.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>d-feet.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>eclipse.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gitg.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>glade.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>monodevelop.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.gedit.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>celestia.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>0ad.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>btanks.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>frozen-bubble.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-chess.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-mahjongg.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-mines.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-sudoku.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-tetravex.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>iagno.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>lightsoff.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>neverball.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>openarena.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>quadrapassel.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>redeclipse.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>sol.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>supertuxkart.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>swell-foop.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>tremulous.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>wesnoth.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>xonotic.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>blender.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>darktable.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gimp.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>inkscape.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>libreoffice-draw.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>mypaint.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.font-viewer.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>scribus.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>shotwell.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>simple-scan.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>chromium-browser.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>epiphany.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>firefox.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>geary.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>mozilla-thunderbird.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Polari.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>pidgin.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>transmission-gtk.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>vinagre.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>abiword.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>evolution.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>geary.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnucash.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnumeric.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gramps.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>libreoffice-calc.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>libreoffice-impress.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>libreoffice-writer.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>lyx.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>octave.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>saoimage.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>stellarium.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gnome-disks.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>gparted.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Boxes.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>virt-manager.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>bijiben.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.clocks.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Documents.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Photos.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>workrave.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>openshot.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Cheese.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Totem.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>pitivi.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>vlc.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Builder.desktop</id>
+ <categories>
+ <category>featured</category>
+ </categories>
+ </component>
+
+</components>
diff --git a/data/org.gnome.Software-featured.xml b/data/org.gnome.Software-featured.xml
new file mode 100644
index 0000000..7fe9fe1
--- /dev/null
+++ b/data/org.gnome.Software-featured.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components version="0.9" origin="gnome-software">
+
+ <!-- spotlighted applications -->
+ <component type="desktop">
+ <id>ardour2.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-ardour.png')
30% 49% / 33% no-repeat, url('@datadir@/gnome-software/featured-ardour-bg.png') center center / 100% auto
no-repeat, linear-gradient(to bottom, #373936, #60625e)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#333333</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>blender.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-blender.png')
10% 40% / 50% auto no-repeat, -gtk-gradient (radial, center bottom, 0, center center, 1, from(#fcbf83),
to(#c06105))</value>
+ <value key="GnomeSoftware::featured-stroke-color">#783d03</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>gnome-chess.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-chess.png') 10%
center / 40% auto no-repeat, linear-gradient(to bottom, #555753, #888a85)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#2e3436</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>firefox.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-firefox.png')
10% center / 40% auto no-repeat, linear-gradient(to bottom, #d3d7cf, #eeeeec)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#babdb6</value>
+ <value key="GnomeSoftware::featured-text-color">#888a85</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(255,255,255,0.7)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>gimp.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-gimp.png') left
50% / 50% auto no-repeat, linear-gradient(to bottom, #8ac674, #cbddc3)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#2a6c10</value>
+ <value key="GnomeSoftware::featured-text-color">#333</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(255,255,255,0.7)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>inkscape.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-inkscape.png')
20% / 60% auto no-repeat, linear-gradient(to bottom, #ccd6c3, #a7b797)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#819a6b</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 3px rgba(0,0,0,0.9),0 1px 2px
rgba(0,0,0,0.7)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>mypaint.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-mypaint.png')
left 67% / 50% auto no-repeat, linear-gradient(to bottom, #8fa5d9, #d8e0ef)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#4c52aa</value>
+ <value key="GnomeSoftware::featured-text-color">#362d89</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>org.gnome.Polari.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-polari.svg')
70% 80% / 120% auto no-repeat, #43a570</value>
+ <value key="GnomeSoftware::featured-stroke-color">#4e9a06</value>
+ <value key="GnomeSoftware::featured-text-color">#a8c74f</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 2px #418e64</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>org.gnome.Weather.Application.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-weather.png')
left 80% / 50% auto no-repeat, url('@datadir@/gnome-software/featured-weather-bg.png'), linear-gradient(to
bottom, #25486d, #6693ce)</value>
+ <value key="GnomeSoftware::featured-stroke-color">#d8e0ef</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>transmission-gtk.desktop</id>
+ <metadata>
+ <value
key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-transmission.png') 10% 20% /
427px auto no-repeat, -gtk-gradient (radial, center bottom, 0, center center, 0.8, from(#ffc124),
to(#b75200))</value>
+ <value key="GnomeSoftware::featured-stroke-color">#a40000</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>org.gnome.Builder.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-builder.png')
left center / 100% auto no-repeat, url('@datadir@/gnome-software/featured-builder-bg.jpg') center / cover
no-repeat</value>
+ <value key="GnomeSoftware::featured-stroke-color">#000000</value>
+ <value key="GnomeSoftware::featured-text-color">#ffffff</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(0,0,0,0.5)</value>
+ </metadata>
+ </component>
+
+ <component type="desktop">
+ <id>org.gnome.Maps.desktop</id>
+ <metadata>
+ <value key="GnomeSoftware::featured-background">url('@datadir@/gnome-software/featured-maps.png') left
-10px / 352px auto no-repeat, url('@datadir@/gnome-software/featured-maps-bg.png') bottom center / contain
no-repeat</value>
+ <value key="GnomeSoftware::featured-stroke-color">#ff0000</value>
+ <value key="GnomeSoftware::featured-text-color">#000000</value>
+ <value key="GnomeSoftware::featured-text-shadow">0 1px 1px rgba(255,255,255,0.5)</value>
+ </metadata>
+ </component>
+
+</components>
diff --git a/data/org.gnome.Software-popular.xml b/data/org.gnome.Software-popular.xml
new file mode 100644
index 0000000..ca80015
--- /dev/null
+++ b/data/org.gnome.Software-popular.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components version="0.9" origin="gnome-software">
+
+ <!-- Apps for the "Editor's Picks" list -->
+ <component type="desktop">
+ <id>bijiben.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>calibre-gui.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>geary.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>gnucash.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>gtg.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>inkscape.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>mozilla-thunderbird.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>musique.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>org.gnome.Maps.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>pdfmod.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>scribus.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>shutter.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>simple-scan.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>stellarium.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component type="desktop">
+ <id>transmission-gtk.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+
+</components>
diff --git a/src/Makefile.am b/src/Makefile.am
index 8b8e127..d18bc7b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,7 +11,6 @@ AM_CPPFLAGS = \
$(POLKIT_CFLAGS) \
-DG_LOG_DOMAIN=\"Gs\" \
-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE \
- -DGS_MODULESETDIR=\"$(datadir)/gnome-software/modulesets.d\" \
-DLIBDIR=\"$(libdir)\" \
-DBINDIR=\"$(bindir)\" \
-DDATADIR=\"$(datadir)\" \
@@ -279,6 +278,7 @@ TESTS_ENVIRONMENT = \
--leak-check=full \
--show-possibly-lost=no
+if ENABLE_TESTS
check_PROGRAMS = \
gs-self-test
@@ -304,6 +304,7 @@ gs_self_test_LDADD = \
gs_self_test_CFLAGS = $(WARN_CFLAGS)
TESTS = gs-self-test
+endif
EXTRA_DIST = \
shell-search-provider-dbus-interfaces.xml \
diff --git a/src/gs-feature-tile.c b/src/gs-feature-tile.c
index 96f7120..3ea7254 100644
--- a/src/gs-feature-tile.c
+++ b/src/gs-feature-tile.c
@@ -117,7 +117,7 @@ gs_feature_tile_set_app (GsFeatureTile *tile, GsApp *app)
gtk_label_set_label (GTK_LABEL (tile->subtitle), gs_app_get_summary (app));
/* check the app has the featured data */
- text_color = gs_app_get_metadata_item (app, "Featured::text-color");
+ text_color = gs_app_get_metadata_item (app, "GnomeSoftware::featured-text-color");
if (text_color == NULL) {
g_autofree gchar *tmp = NULL;
tmp = gs_app_to_string (app);
@@ -125,9 +125,9 @@ gs_feature_tile_set_app (GsFeatureTile *tile, GsApp *app)
gs_app_get_id (app), tmp);
return;
}
- background = gs_app_get_metadata_item (app, "Featured::background");
- stroke_color = gs_app_get_metadata_item (app, "Featured::stroke-color");
- text_shadow = gs_app_get_metadata_item (app, "Featured::text-shadow");
+ background = gs_app_get_metadata_item (app, "GnomeSoftware::featured-background");
+ stroke_color = gs_app_get_metadata_item (app, "GnomeSoftware::featured-stroke-color");
+ text_shadow = gs_app_get_metadata_item (app, "GnomeSoftware::featured-text-shadow");
data = g_string_sized_new (1024);
g_string_append (data, ".featured-tile {\n");
diff --git a/src/gs-plugin-loader.c b/src/gs-plugin-loader.c
index 4176e10..c7ec345 100644
--- a/src/gs-plugin-loader.c
+++ b/src/gs-plugin-loader.c
@@ -1183,17 +1183,35 @@ gs_plugin_loader_get_popular_thread_cb (GTask *task,
{
GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (object);
GsPluginLoaderAsyncState *state = (GsPluginLoaderAsyncState *) task_data;
+ GsPluginLoaderPrivate *priv = gs_plugin_loader_get_instance_private (plugin_loader);
GError *error = NULL;
-
- /* do things that would block */
- state->list = gs_plugin_loader_run_results (plugin_loader,
- "gs_plugin_add_popular",
- state->flags,
- cancellable,
- &error);
- if (error != NULL) {
- g_task_return_error (task, error);
- return;
+ g_auto(GStrv) apps = NULL;
+
+ /* debugging only */
+ if (g_getenv ("GNOME_SOFTWARE_POPULAR"))
+ apps = g_strsplit (g_getenv ("GNOME_SOFTWARE_POPULAR"), ",", 0);
+
+ /* are we using a corporate build */
+ if (apps == NULL)
+ apps = g_settings_get_strv (priv->settings, "popular-overrides");
+ if (apps != NULL && g_strv_length (apps) > 0) {
+ guint i;
+ for (i = 0; apps[i] != NULL; i++) {
+ g_autoptr(GsApp) app = gs_app_new (apps[i]);
+ gs_app_add_quirk (app, AS_APP_QUIRK_MATCH_ANY_PREFIX);
+ gs_plugin_add_app (&state->list, app);
+ }
+ } else {
+ /* do things that would block */
+ state->list = gs_plugin_loader_run_results (plugin_loader,
+ "gs_plugin_add_popular",
+ state->flags,
+ cancellable,
+ &error);
+ if (error != NULL) {
+ g_task_return_error (task, error);
+ return;
+ }
}
/* filter package list */
@@ -1997,6 +2015,13 @@ gs_plugin_loader_get_categories_thread_cb (GTask *task,
/* this is probably valid... */
gs_category_set_size (child, gs_category_get_size (parent));
}
+ if (gs_category_find_child (parent, "featured") == NULL) {
+ g_autoptr(GsCategory) child = NULL;
+ child = gs_category_new (parent, "featured", NULL);
+ gs_category_add_subcategory (parent, child);
+ /* this is probably valid... */
+ gs_category_set_size (child, 5);
+ }
}
/* sort by name */
diff --git a/src/gs-self-test.c b/src/gs-self-test.c
index 41ec61b..a246c94 100644
--- a/src/gs-self-test.c
+++ b/src/gs-self-test.c
@@ -334,10 +334,6 @@ gs_plugin_loader_func (void)
GsApp *app;
g_autoptr(GsPluginLoader) loader = NULL;
- /* not avaiable in make distcheck */
- if (!g_file_test (GS_MODULESETDIR, G_FILE_TEST_EXISTS))
- return;
-
loader = gs_plugin_loader_new ();
g_assert (GS_IS_PLUGIN_LOADER (loader));
g_signal_connect (loader, "status-changed",
@@ -476,10 +472,6 @@ gs_plugin_loader_refine_func (void)
g_autoptr(GsApp) app = NULL;
g_autoptr(GsPluginLoader) loader = NULL;
- /* not avaiable in make distcheck */
- if (!g_file_test (GS_MODULESETDIR, G_FILE_TEST_EXISTS))
- return;
-
/* load the plugins */
loader = gs_plugin_loader_new ();
gs_plugin_loader_set_location (loader, "./plugins/.libs");
@@ -525,10 +517,6 @@ gs_plugin_loader_empty_func (void)
g_autoptr(GsAppList) list = NULL;
g_autoptr(GsPluginLoader) loader = NULL;
- /* not avaiable in make distcheck */
- if (!g_file_test (GS_MODULESETDIR, G_FILE_TEST_EXISTS))
- return;
-
/* load the plugins */
loader = gs_plugin_loader_new ();
gs_plugin_loader_set_location (loader, "./plugins/.libs");
@@ -607,10 +595,6 @@ gs_plugin_loader_webapps_func (void)
g_autoptr(GsApp) app = NULL;
g_autoptr(GsPluginLoader) loader = NULL;
- /* not avaiable in make distcheck */
- if (!g_file_test (GS_MODULESETDIR, G_FILE_TEST_EXISTS))
- return;
-
/* load the plugins */
loader = gs_plugin_loader_new ();
gs_plugin_loader_set_location (loader, "./plugins/.libs");
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index d5b63b5..32d2605 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -17,7 +17,6 @@ AM_CPPFLAGS = \
$(RPM_CFLAGS) \
-DBINDIR=\"$(bindir)\" \
-DDATADIR=\"$(datadir)\" \
- -DGS_MODULESETDIR=\"$(datadir)/gnome-software/modulesets.d\" \
-DG_LOG_DOMAIN=\"GsPlugin\" \
-DLIBDIR=\""$(libdir)"\" \
-DLOCALSTATEDIR=\""$(localstatedir)"\" \
@@ -33,9 +32,7 @@ plugindir = $(libdir)/gs-plugins-${GS_PLUGIN_API_VERSION}
plugin_LTLIBRARIES = \
libgs_plugin_appstream.la \
libgs_plugin_dummy.la \
- libgs_plugin_hardcoded-featured.la \
libgs_plugin_hardcoded-blacklist.la \
- libgs_plugin_moduleset.la \
libgs_plugin_menu-spec-categories.la \
libgs_plugin_menu-spec-refine.la \
libgs_plugin_fedora_distro_upgrades.la \
@@ -184,14 +181,6 @@ libgs_plugin_steam_la_LDFLAGS = -module -avoid-version
libgs_plugin_steam_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
endif
-libgs_plugin_moduleset_la_SOURCES = \
- gs-moduleset.c \
- gs-moduleset.h \
- gs-plugin-moduleset.c
-libgs_plugin_moduleset_la_LIBADD = $(GS_PLUGIN_LIBS)
-libgs_plugin_moduleset_la_LDFLAGS = -module -avoid-version
-libgs_plugin_moduleset_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
-
libgs_plugin_menu_spec_categories_la_SOURCES = \
gs-plugin-menu-spec-categories.c \
menu-spec-common.c \
@@ -208,11 +197,6 @@ libgs_plugin_menu_spec_refine_la_LIBADD = $(GS_PLUGIN_LIBS)
libgs_plugin_menu_spec_refine_la_LDFLAGS = -module -avoid-version
libgs_plugin_menu_spec_refine_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
-libgs_plugin_hardcoded_featured_la_SOURCES = gs-plugin-hardcoded-featured.c
-libgs_plugin_hardcoded_featured_la_LIBADD = $(GS_PLUGIN_LIBS)
-libgs_plugin_hardcoded_featured_la_LDFLAGS = -module -avoid-version
-libgs_plugin_hardcoded_featured_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
-
libgs_plugin_hardcoded_blacklist_la_SOURCES = gs-plugin-hardcoded-blacklist.c
libgs_plugin_hardcoded_blacklist_la_LIBADD = $(GS_PLUGIN_LIBS)
libgs_plugin_hardcoded_blacklist_la_LDFLAGS = -module -avoid-version
@@ -282,21 +266,4 @@ libgs_plugin_packagekit_proxy_la_LIBADD = $(GS_PLUGIN_LIBS)
libgs_plugin_packagekit_proxy_la_LDFLAGS = -module -avoid-version
libgs_plugin_packagekit_proxy_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
-check_PROGRAMS = \
- gs-self-test
-
-gs_self_test_SOURCES = \
- gs-moduleset.c \
- gs-self-test.c
-
-gs_self_test_LDADD = \
- $(GLIB_LIBS) \
- $(GTK_LIBS)
-
-gs_self_test_CFLAGS = $(WARN_CFLAGS)
-
-TESTS = gs-self-test
-
-EXTRA_DIST = moduleset-test.xml
-
-include $(top_srcdir)/git.mk
diff --git a/src/plugins/gs-appstream.c b/src/plugins/gs-appstream.c
index 146b819..05fca84 100644
--- a/src/plugins/gs-appstream.c
+++ b/src/plugins/gs-appstream.c
@@ -29,25 +29,6 @@
#define GS_APPSTREAM_MAX_SCREENSHOTS 5
/**
- * _as_app_has_compulsory_for_desktop:
- */
-static gboolean
-_as_app_has_compulsory_for_desktop (AsApp *app, const gchar *compulsory_for_desktop)
-{
- GPtrArray *compulsory_for_desktops;
- const gchar *tmp;
- guint i;
-
- compulsory_for_desktops = as_app_get_compulsory_for_desktops (app);
- for (i = 0; i < compulsory_for_desktops->len; i++) {
- tmp = g_ptr_array_index (compulsory_for_desktops, i);
- if (g_strcmp0 (tmp, compulsory_for_desktop) == 0)
- return TRUE;
- }
- return FALSE;
-}
-
-/**
* gs_refine_item_pixbuf:
*/
static void
@@ -489,7 +470,7 @@ gs_appstream_refine_app (GsPlugin *plugin,
gs_app_set_project_group (app, as_app_get_project_group (item));
/* this is a core application for the desktop and cannot be removed */
- if (_as_app_has_compulsory_for_desktop (item, "GNOME") &&
+ if (as_app_has_compulsory_for_desktop (item, "GNOME") &&
gs_app_get_kind (app) == AS_APP_KIND_DESKTOP)
gs_app_add_quirk (app, AS_APP_QUIRK_COMPULSORY);
@@ -523,6 +504,12 @@ gs_appstream_refine_app (GsPlugin *plugin,
if (as_app_get_language (item, plugin->locale) > 50)
gs_app_add_kudo (app, GS_APP_KUDO_MY_LANGUAGE);
+ /* add a kudo to featured and popular apps */
+ if (as_app_has_kudo (item, "GnomeSoftware::popular"))
+ gs_app_add_kudo (app, GS_APP_KUDO_FEATURED_RECOMMENDED);
+ if (as_app_has_category (item, "featured"))
+ gs_app_add_kudo (app, GS_APP_KUDO_FEATURED_RECOMMENDED);
+
/* add new-style kudos */
kudos = as_app_get_kudos (item);
for (i = 0; i < kudos->len; i++) {
diff --git a/src/plugins/gs-plugin-appstream.c b/src/plugins/gs-plugin-appstream.c
index c287986..ea90dd0 100644
--- a/src/plugins/gs-plugin-appstream.c
+++ b/src/plugins/gs-plugin-appstream.c
@@ -265,14 +265,12 @@ gs_plugin_refine_from_id (GsPlugin *plugin,
if (id == NULL)
return TRUE;
item = as_store_get_app_by_id (plugin->priv->store, id);
-#if AS_CHECK_VERSION(0,5,12)
if (item == NULL &&
gs_app_has_quirk (app, AS_APP_QUIRK_MATCH_ANY_PREFIX)) {
item = as_store_get_app_by_id_ignore_prefix (plugin->priv->store, id);
if (item != NULL)
g_debug ("found %s for wildcard %s", as_app_get_id (item), id);
}
-#endif
if (item == NULL)
return TRUE;
@@ -630,3 +628,75 @@ gs_plugin_add_categories (GsPlugin *plugin,
}
return TRUE;
}
+
+/**
+ * gs_plugin_add_popular:
+ */
+gboolean
+gs_plugin_add_popular (GsPlugin *plugin,
+ GList **list,
+ GCancellable *cancellable,
+ GError **error)
+{
+ AsApp *item;
+ GPtrArray *array;
+ guint i;
+ g_autoptr(AsProfileTask) ptask = NULL;
+ g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&plugin->priv->store_mutex);
+
+ /* load XML files */
+ if (!gs_plugin_appstream_startup (plugin, error))
+ return FALSE;
+
+ /* find out how many packages are in each category */
+ ptask = as_profile_start_literal (plugin->profile, "appstream::add-popular");
+ array = as_store_get_apps (plugin->priv->store);
+ for (i = 0; i < array->len; i++) {
+ g_autoptr(GsApp) app = NULL;
+ item = g_ptr_array_index (array, i);
+ if (as_app_get_id (item) == NULL)
+ continue;
+ if (!as_app_has_kudo (item, "GnomeSoftware::popular"))
+ continue;
+ app = gs_app_new (as_app_get_id_no_prefix (item));
+ gs_app_add_quirk (app, AS_APP_QUIRK_MATCH_ANY_PREFIX);
+ gs_plugin_add_app (list, app);
+ }
+ return TRUE;
+}
+
+/**
+ * gs_plugin_add_featured:
+ */
+gboolean
+gs_plugin_add_featured (GsPlugin *plugin,
+ GList **list,
+ GCancellable *cancellable,
+ GError **error)
+{
+ AsApp *item;
+ GPtrArray *array;
+ guint i;
+ g_autoptr(AsProfileTask) ptask = NULL;
+ g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&plugin->priv->store_mutex);
+
+ /* load XML files */
+ if (!gs_plugin_appstream_startup (plugin, error))
+ return FALSE;
+
+ /* find out how many packages are in each category */
+ ptask = as_profile_start_literal (plugin->profile, "appstream::add-featured");
+ array = as_store_get_apps (plugin->priv->store);
+ for (i = 0; i < array->len; i++) {
+ g_autoptr(GsApp) app = NULL;
+ item = g_ptr_array_index (array, i);
+ if (as_app_get_id (item) == NULL)
+ continue;
+ if (as_app_get_metadata_item (item, "GnomeSoftware::featured-background") == NULL)
+ continue;
+ app = gs_app_new (as_app_get_id_no_prefix (item));
+ gs_app_add_quirk (app, AS_APP_QUIRK_MATCH_ANY_PREFIX);
+ gs_plugin_add_app (list, app);
+ }
+ return TRUE;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]