summaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:57:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:57:27 +0000
commit6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18 (patch)
treed423850ae901365e582137bdf2b5cbdffd7ca266 /data
parentInitial commit. (diff)
downloadgnome-software-6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18.tar.xz
gnome-software-6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18.zip
Adding upstream version 43.5.upstream/43.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'data')
-rw-r--r--data/assets/meson.build11
-rw-r--r--data/assets/org.gnome.Software.Curated.xml121
-rw-r--r--data/assets/org.gnome.Software.Featured.xml262
-rw-r--r--data/assets/up-to-date.svg264
-rw-r--r--data/autostart/org.gnome.Software.desktop.in7
-rw-r--r--data/icons/adaptive-symbolic.svg1
-rw-r--r--data/icons/app-installed-symbolic.svg1
-rw-r--r--data/icons/chat-none-symbolic.svg1
-rw-r--r--data/icons/chat-symbolic.svg1
-rw-r--r--data/icons/cigarette-none-symbolic.svg1
-rw-r--r--data/icons/cigarette-symbolic.svg1
-rw-r--r--data/icons/community-none-symbolic.svg8
-rw-r--r--data/icons/community-symbolic.svg1
-rw-r--r--data/icons/desktop-symbolic.svg1
-rw-r--r--data/icons/emblem-synchronizing-symbolic.svg1
-rw-r--r--data/icons/explore-symbolic.svg1
-rw-r--r--data/icons/external-link-symbolic.svg1
-rw-r--r--data/icons/flag-outline-thin-symbolic.svg1
-rw-r--r--data/icons/flatpak-symbolic.svg4
-rw-r--r--data/icons/graveyard-symbolic.svg1
-rw-r--r--data/icons/hand-open-symbolic.svg2
-rw-r--r--data/icons/heart-filled-symbolic.svg1
-rw-r--r--data/icons/help-link-symbolic.svg1
-rw-r--r--data/icons/hicolor/meson.build6
-rw-r--r--data/icons/hicolor/scalable/org.gnome.Software.svg24
-rw-r--r--data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg69
-rw-r--r--data/icons/hicolor/symbolic/app-remove-symbolic.svg1
-rw-r--r--data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg5
-rw-r--r--data/icons/meson.build1
-rw-r--r--data/icons/money-none-symbolic.svg1
-rw-r--r--data/icons/money-symbolic.svg1
-rw-r--r--data/icons/nudity-none-symbolic.svg1
-rw-r--r--data/icons/nudity-symbolic.svg1
-rw-r--r--data/icons/org.gnome.Software.Create.svg70
-rw-r--r--data/icons/org.gnome.Software.Develop.svg44
-rw-r--r--data/icons/org.gnome.Software.Learn.svg10
-rw-r--r--data/icons/org.gnome.Software.Play.svg37
-rw-r--r--data/icons/org.gnome.Software.Socialize.svg23
-rw-r--r--data/icons/org.gnome.Software.Work.svg27
-rw-r--r--data/icons/package-x-generic-symbolic.svg8
-rw-r--r--data/icons/padlock-open-symbolic.svg1
-rw-r--r--data/icons/phone-symbolic.svg1
-rw-r--r--data/icons/pub-symbolic.svg1
-rw-r--r--data/icons/review-symbolic.svg8
-rw-r--r--data/icons/safety-symbolic.svg1
-rw-r--r--data/icons/sign-language-symbolic.svg1
-rw-r--r--data/icons/snap-symbolic.svg8
-rw-r--r--data/icons/strong-language-none-symbolic.svg1
-rw-r--r--data/icons/strong-language-symbolic.svg1
-rw-r--r--data/icons/system-component-addon.svg35
-rw-r--r--data/icons/system-component-application.svg25
-rw-r--r--data/icons/system-component-codecs.svg25
-rw-r--r--data/icons/system-component-driver.svg145
-rw-r--r--data/icons/system-component-firmware.svg145
-rw-r--r--data/icons/system-component-input-sources.svg36
-rw-r--r--data/icons/system-component-language.svg28
-rw-r--r--data/icons/system-component-os-updates.svg28
-rw-r--r--data/icons/system-component-runtime.svg25
-rw-r--r--data/icons/test-symbolic.svg8
-rw-r--r--data/icons/violence-none-symbolic.svg1
-rw-r--r--data/icons/violence-symbolic.svg1
-rw-r--r--data/icons/webpage-symbolic.svg1
-rw-r--r--data/meson.build42
-rw-r--r--data/metainfo/meson.build22
-rw-r--r--data/metainfo/org.gnome.Software.metainfo.xml.in2158
-rw-r--r--data/metainfo/ss-details.pngbin0 -> 85786 bytes
-rw-r--r--data/metainfo/ss-details2.pngbin0 -> 76742 bytes
-rw-r--r--data/metainfo/ss-installed.pngbin0 -> 74175 bytes
-rw-r--r--data/metainfo/ss-overview.pngbin0 -> 93300 bytes
-rw-r--r--data/metainfo/ss-up-to-date.pngbin0 -> 50167 bytes
-rw-r--r--data/metainfo/ss-updates-details.pngbin0 -> 72190 bytes
-rw-r--r--data/metainfo/ss-updates.pngbin0 -> 83230 bytes
-rw-r--r--data/org.gnome.software.external-appstream.policy.in.in20
-rw-r--r--data/org.gnome.software.gschema.xml149
-rw-r--r--data/tests/os-release16
75 files changed, 3956 insertions, 0 deletions
diff --git a/data/assets/meson.build b/data/assets/meson.build
new file mode 100644
index 0000000..ca2cfa1
--- /dev/null
+++ b/data/assets/meson.build
@@ -0,0 +1,11 @@
+if get_option('default_featured_apps')
+ install_data('org.gnome.Software.Featured.xml',
+ install_dir : join_paths(get_option('datadir'), 'swcatalog', 'xml'),
+ )
+endif
+
+if get_option('hardcoded_curated')
+ install_data('org.gnome.Software.Curated.xml',
+ install_dir : join_paths(get_option('datadir'), 'swcatalog', 'xml'),
+ )
+endif
diff --git a/data/assets/org.gnome.Software.Curated.xml b/data/assets/org.gnome.Software.Curated.xml
new file mode 100644
index 0000000..4dc828c
--- /dev/null
+++ b/data/assets/org.gnome.Software.Curated.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components>
+ <!-- Arbitrary list of popular GNOME apps. The list should be long enough
+ to show up on the overview page if it’s the only source of curated apps.
+ Distros should not ship this in production releases: they should be
+ providing their own curated list of ‘Editor’s Choice’ apps instead. -->
+ <component merge="append">
+ <id>org.gnome.Aisleriot</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Boxes.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Builder.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Calendar.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.clocks.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Contacts.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Dictionary</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Evince</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Evolution.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Geary.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Maps.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Nautilus.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>im.bernard.Nostalgia</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Notes.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Photos.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Polari.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Todo</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Totem.desktop</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Weather</id>
+ <kudos>
+ <kudo>GnomeSoftware::popular</kudo>
+ </kudos>
+ </component>
+</components>
diff --git a/data/assets/org.gnome.Software.Featured.xml b/data/assets/org.gnome.Software.Featured.xml
new file mode 100644
index 0000000..1a759a2
--- /dev/null
+++ b/data/assets/org.gnome.Software.Featured.xml
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components>
+ <!-- GNOME Circle apps (https://circle.gnome.org) -->
+ <component merge="append">
+ <id>app.drey.Dialect</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>app.drey.Warp</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.adrienplazas.Metronome</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.belmoussaoui.Authenticator</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.belmoussaoui.Decoder</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.belmoussaoui.Obfuscate</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.bitstower.Markets</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.alexhuntley.Plots</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.bleakgrey.tootle</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.geigi.cozy</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.hugolabe.Wike</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.huluti.Curtail</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.liferooter.textpieces</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.github.maoschanz.drawing</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.gitlab.newsflash</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.rafaelmardojai.Blanket</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.rafaelmardojai.SharePreview</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>com.rafaelmardojai.WebfontKitGenerator</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>de.haeckerfelix.AudioSharing</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>de.haeckerfelix.Fragments</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>de.haeckerfelix.Shortwave</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>dev.Cogitri.Health</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>dev.geopjr.Collision</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>fr.romainvigier.MetadataCleaner</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>io.bassi.Amberol</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>io.github.lainsce.Khronos</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>io.github.seadve.Kooha</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>io.github.seadve.Mousai</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gaphor.Gaphor</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.DejaDup</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.gitlab.somas.Apostrophe</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.gitlab.YaLTeR.Identity</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.gitlab.YaLTeR.VideoTrimmer</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Podcasts</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Polari</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.Solanum</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.World.Citations</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.World.PikaBackup</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gnome.World.Secrets</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>org.gustavoperedo.FontDownloader</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>re.sonny.Commit</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>re.sonny.Junction</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+ <component merge="append">
+ <id>re.sonny.Tangram</id>
+ <custom>
+ <value key="GnomeSoftware::FeatureTile">True</value>
+ </custom>
+ </component>
+</components>
diff --git a/data/assets/up-to-date.svg b/data/assets/up-to-date.svg
new file mode 100644
index 0000000..99122cd
--- /dev/null
+++ b/data/assets/up-to-date.svg
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ inkscape:version="1.1 (c68e22c387, 2021-05-23)"
+ id="svg8"
+ version="1.1"
+ viewBox="0 0 320 320"
+ height="320"
+ width="320"
+ sodipodi:docname="up-to-date.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs2">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient14556">
+ <stop
+ style="stop-color:#f9ef69;stop-opacity:1;"
+ offset="0"
+ id="stop14552" />
+ <stop
+ style="stop-color:#f5c211;stop-opacity:1"
+ offset="1"
+ id="stop14554" />
+ </linearGradient>
+ <linearGradient
+ id="a-3"
+ gradientTransform="matrix(0.707107,0.707107,0.707107,-0.707107,2,-170)"
+ gradientUnits="userSpaceOnUse"
+ x1="188.44394"
+ x2="261.09912"
+ y1="-77.78183"
+ y2="-150.43706">
+ <stop
+ offset="0"
+ stop-color="#f6d32d"
+ id="stop2-6" />
+ <stop
+ offset="1"
+ stop-color="#f5c211"
+ id="stop4-7" />
+ </linearGradient>
+ <radialGradient
+ id="b"
+ cx="280.9942"
+ cy="488.84842"
+ gradientTransform="matrix(0.347005,0,0,0.342234,-31.50647,-127.48206)"
+ gradientUnits="userSpaceOnUse"
+ r="224">
+ <stop
+ offset="0"
+ stop-color="#fdfacf"
+ id="stop7" />
+ <stop
+ offset="0.4"
+ stop-color="#f9f06b"
+ id="stop9" />
+ <stop
+ offset="1"
+ stop-color="#f6d32d"
+ id="stop11" />
+ </radialGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10519"
+ id="linearGradient10521"
+ x1="564.64844"
+ y1="486.45703"
+ x2="723.66016"
+ y2="486.45703"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1724844,0,0,1.1724844,-531.44458,-257.84982)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10519">
+ <stop
+ style="stop-color:#26a269;stop-opacity:1;"
+ offset="0"
+ id="stop10515" />
+ <stop
+ style="stop-color:#1eef8f;stop-opacity:1"
+ offset="0.28584763"
+ id="stop10685" />
+ <stop
+ style="stop-color:#165f3d;stop-opacity:1"
+ offset="1"
+ id="stop10517" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8268"
+ id="linearGradient8270"
+ x1="624.69623"
+ y1="401.86096"
+ x2="698.71875"
+ y2="288.45312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1724844,0,0,1.1724844,-531.44458,-201.41465)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8268">
+ <stop
+ style="stop-color:#26a269;stop-opacity:1"
+ offset="0"
+ id="stop8264" />
+ <stop
+ style="stop-color:#f9f06b;stop-opacity:1"
+ offset="1"
+ id="stop8266" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14556"
+ id="linearGradient14558"
+ x1="231.2832"
+ y1="145.98535"
+ x2="231.2832"
+ y2="252.41602"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ units="px"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="g960"
+ inkscape:document-units="px"
+ inkscape:cy="166.27648"
+ inkscape:cx="60.187402"
+ inkscape:zoom="2.1349983"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0"
+ borderopacity="1"
+ bordercolor="#383838"
+ pagecolor="#1f1f1f"
+ id="base"
+ inkscape:pagecheckerboard="1"
+ width="400px"
+ objecttolerance="10.0"
+ gridtolerance="10.0"
+ guidetolerance="10.0"
+ inkscape:window-width="1920"
+ inkscape:window-height="1011"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"
+ transform="translate(-40,-40)">
+ <g
+ id="g960"
+ transform="translate(-9)">
+ <g
+ style="stroke-width:0.386113"
+ transform="matrix(1.1259125,0,0,1.1259125,224.47071,55.053376)"
+ id="g862">
+ <path
+ d="m 20,20 h 88 v 88 H 20 Z m 0,0"
+ fill="#f5c211"
+ id="path856-5"
+ style="stroke-width:0.298167" />
+ <path
+ style="fill:url(#a-3);stroke-width:0.386113"
+ d="M 2,64 64,126 126,64 64,2 Z m 0,0"
+ fill="url(#a)"
+ id="path858-3" />
+ <path
+ style="fill:url(#b);stroke-width:0.386113"
+ d="M 112,64 C 112,90.507812 90.507812,112 64,112 37.492188,112 16,90.507812 16,64 16,37.492188 37.492188,16 64,16 c 26.507812,0 48,21.492188 48,48 z m 0,0"
+ fill="url(#b)"
+ id="path860-5" />
+ </g>
+ <circle
+ style="fill:url(#linearGradient10521);fill-opacity:1;stroke-width:18.7598;stop-color:#000000"
+ id="circle10463"
+ cx="209.35948"
+ cy="242.87909"
+ r="101.09472" />
+ <circle
+ style="fill:url(#linearGradient14558);fill-opacity:1;stroke-width:18.7598;stop-color:#000000"
+ id="circle11708"
+ cx="209.35948"
+ cy="236.68916"
+ r="101.09472" />
+ <circle
+ style="fill:url(#linearGradient8270);fill-opacity:1;stroke-width:18.7598;stop-color:#000000"
+ id="path2198"
+ cx="209.35948"
+ cy="238.18916"
+ r="101.09472" />
+ <g
+ id="g8228"
+ transform="matrix(0.93457387,0,0,0.93457387,-379.96735,-136.74431)">
+ <path
+ id="path2322"
+ style="display:inline;fill:#99c1f1;fill-opacity:1;stroke:none;stroke-width:32.3735;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.482318;stop-color:#000000"
+ d="m 538.64083,296.63671 a 43.839679,43.839679 0 0 0 -39.2403,24.36235 35.177858,35.177858 0 0 0 -3.3343,-0.16019 35.177858,35.177858 0 0 0 -35.1788,35.17881 35.177858,35.177858 0 0 0 0.9716,8.21352 h 147.2279 a 29.419203,29.419203 0 0 0 -26.7777,-28.00225 43.839679,43.839679 0 0 0 -43.6326,-39.59224 43.839679,43.839679 0 0 0 -0.036,0 z" />
+ <path
+ id="path889"
+ style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:32.3735;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.482318;stop-color:#000000"
+ d="m 538.64083,292.63671 a 43.839679,43.839679 0 0 0 -39.2403,24.36235 35.177858,35.177858 0 0 0 -3.3343,-0.16019 35.177858,35.177858 0 0 0 -35.1788,35.17881 35.177858,35.177858 0 0 0 0.9716,8.21352 h 147.2279 a 29.419203,29.419203 0 0 0 -26.7777,-28.00225 43.839679,43.839679 0 0 0 -43.6326,-39.59224 43.839679,43.839679 0 0 0 -0.036,0 z" />
+ </g>
+ <path
+ style="fill:none;stroke:#8ff0a4;stroke-width:27.0574;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 173.95206,242.7111 27.04994,27.04994 55.33318,-55.33316"
+ id="path7128" />
+ <g
+ id="g8232"
+ transform="matrix(0.85677501,0,0,0.85677501,-296.65379,-71.159142)">
+ <path
+ id="path2302"
+ style="display:inline;fill:#99c1f1;fill-opacity:1;stroke:none;stroke-width:48.5793;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.482318;stop-color:#000000"
+ d="m 741.32713,365.18189 c -14.26103,10e-4 -26.92647,9.11418 -31.45954,22.63558 -3.34805,-1.36908 -6.93047,-2.07375 -10.54763,-2.07475 -15.40287,-6.9e-4 -27.88955,12.48596 -27.88889,27.88883 -3.2e-4,4.76721 1.22143,9.45492 3.54859,13.61552 h 82.67972 c 10.41164,-5.88686 16.84961,-16.92128 16.85101,-28.88194 -8e-5,-18.32657 -14.85669,-33.18317 -33.18326,-33.18324 z"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ id="path903"
+ style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:48.5793;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.482318;stop-color:#000000"
+ d="m 739.32713,361.18189 c -14.26103,10e-4 -26.92647,9.11418 -31.45954,22.63558 -3.34805,-1.36908 -6.93047,-2.07375 -10.54763,-2.07475 -15.40287,-6.9e-4 -27.88955,12.48596 -27.88889,27.88883 -3.2e-4,4.76721 1.22143,9.45492 3.54859,13.61552 h 82.67972 c 10.41164,-5.88686 16.84961,-16.92128 16.85101,-28.88194 -8e-5,-18.32657 -14.85669,-33.18317 -33.18326,-33.18324 z"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/autostart/org.gnome.Software.desktop.in b/data/autostart/org.gnome.Software.desktop.in
new file mode 100644
index 0000000..6c7a77b
--- /dev/null
+++ b/data/autostart/org.gnome.Software.desktop.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=GNOME Software
+Exec=@bindir@/gnome-software --gapplication-service
+OnlyShowIn=GNOME;Unity;
+NotShowIn=Budgie
+NoDisplay=true
diff --git a/data/icons/adaptive-symbolic.svg b/data/icons/adaptive-symbolic.svg
new file mode 100644
index 0000000..f1109c8
--- /dev/null
+++ b/data/icons/adaptive-symbolic.svg
@@ -0,0 +1 @@
+<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M44.004 25c-1.662 0-3 1.338-3 3v6c0 1.662 1.338 3 3 3h12c1.662 0 3-1.338 3-3v-6c0-1.662-1.338-3-3-3h-12zm-36.5.002a2.517 2.517 0 0 0-2.5 2.5v10c0 1.368 1.132 2.5 2.5 2.5h5c1.368 0 2.5-1.132 2.5-2.5v-10c0-1.368-1.132-2.5-2.5-2.5h-5zm15 1a2.517 2.517 0 0 0-2.5 2.5V37h2v-8.5c0-.294.206-.5.5-.5h11.004c.295 0 .5.206.5.5V37h2v-8.498c0-1.367-1.132-2.5-2.5-2.5H22.504zm21.5.998h12c.554 0 1 .446 1 1v6c0 .554-.446 1-1 1h-12c-.554 0-1-.446-1-1v-6c0-.554.446-1 1-1zm-36.5.002h.5c0 .554.446 1 1 1h2c.554 0 1-.446 1-1h.5c.294 0 .5.206.5.5v10c0 .294-.206.5-.5.5h-5a.478.478 0 0 1-.5-.5v-10c0-.294.206-.5.5-.5zM18.004 38a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2h-20zm29 0a2 2 0 0 0-2 2h10a2 2 0 0 0-2-2h-6z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/app-installed-symbolic.svg b/data/icons/app-installed-symbolic.svg
new file mode 100644
index 0000000..660cab2
--- /dev/null
+++ b/data/icons/app-installed-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="color:#000;fill:#2e3436;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:26.4;-inkscape-stroke:none" d="M7.883 0a8.04 8.04 0 0 0-.963.074 7.988 7.988 0 0 0-4.604 2.291 8.014 8.014 0 0 0-1.228 9.666 8.008 8.008 0 0 0 9.016 3.686 8.004 8.004 0 0 0 5.892-7.752 1 1 0 1 0-1.998.01 5.987 5.987 0 0 1-4.42 5.812 5.995 5.995 0 0 1-6.764-2.766 5.993 5.993 0 0 1 .922-7.248 5.991 5.991 0 0 1 7.239-.984 1 1 0 1 0 .992-1.736A7.96 7.96 0 0 0 7.883 0zm7.209 2.002a1 1 0 0 0-.844.338L7.951 9.535 5.707 7.291a1 1 0 0 0-1.414 0 1 1 0 0 0 0 1.416l3 3a1 1 0 0 0 1.46-.049l7-8a1 1 0 0 0-.093-1.412 1 1 0 0 0-.568-.244z"/></svg> \ No newline at end of file
diff --git a/data/icons/chat-none-symbolic.svg b/data/icons/chat-none-symbolic.svg
new file mode 100644
index 0000000..ab473b3
--- /dev/null
+++ b/data/icons/chat-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06.802.803L11.941 13l2.53 2.53 1.06-1.061-1.521-1.522A2.49 2.49 0 0 0 16 10.5v-6A2.495 2.495 0 0 0 13.5 2H3.062L1.532.469zM.246 3.429A2.504 2.504 0 0 0 0 4.5v6C0 11.684 1.402 13 2.5 13H4v3l3.125-3h2.691L.246 3.43z"/></svg> \ No newline at end of file
diff --git a/data/icons/chat-symbolic.svg b/data/icons/chat-symbolic.svg
new file mode 100644
index 0000000..67ffbdf
--- /dev/null
+++ b/data/icons/chat-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 2A2.495 2.495 0 0 1 16 4.5v6c0 1.387-1.113 2.5-2.5 2.5H7.125L4 16v-3H2.5C1 13 0 11.684 0 10.5v-6C0 3.113 1.113 2 2.5 2zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/cigarette-none-symbolic.svg b/data/icons/cigarette-none-symbolic.svg
new file mode 100644
index 0000000..c54012f
--- /dev/null
+++ b/data/icons/cigarette-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M3 0v.5C3 2.98 5.02 5 7.5 5h3c.832 0 1.5.664 1.5 1.5V7h3v-.5C15 4.02 12.98 2 10.5 2h-3C6.664 2 6 1.332 6 .5V0Zm0 0" fill-opacity=".35" style="fill:#2e3436"/><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 14 14 1.06-1.06L13 11.938V8h-1v2.938l-1-1V8H9.062L1.532.469zM0 8v4h8.906l-4-4H0zm14 0v4h1V8h-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/cigarette-symbolic.svg b/data/icons/cigarette-symbolic.svg
new file mode 100644
index 0000000..75c42c7
--- /dev/null
+++ b/data/icons/cigarette-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M3 .012v.5c0 2.48 2.02 4.5 4.5 4.5h3c.832 0 1.5.664 1.5 1.5v.5h3v-.5c0-2.48-2.02-4.5-4.5-4.5h-3c-.836 0-1.5-.668-1.5-1.5v-.5zm0 0" fill-opacity=".35" style="fill:#2e3436"/><path style="fill:#2e3436" d="M0 8.012v4h11v-4H0zm12 0v4h1v-4h-1zm2 0v4h1v-4h-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/community-none-symbolic.svg b/data/icons/community-none-symbolic.svg
new file mode 100644
index 0000000..c0c07cb
--- /dev/null
+++ b/data/icons/community-none-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" version="1.1">
+<g id="surface25330">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:0.501961;" d="M 11 0 C 9.621094 0 8.5 1.121094 8.5 2.5 C 8.5 3.878906 9.621094 5 11 5 C 12.378906 5 13.5 3.878906 13.5 2.5 C 13.5 1.121094 12.378906 0 11 0 Z M 9 6 C 8.117188 6 6.933594 6.585938 6.230469 7.277344 L 10.953125 12 L 15 12 C 15.554688 12 16 11.554688 16 11 L 16 9 C 16 7.339844 14.660156 6 13 6 Z M 9 6 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:1;" d="M 5 4 C 4.425781 4 3.898438 4.195312 3.476562 4.523438 L 6.980469 8.027344 C 7.304688 7.601562 7.5 7.074219 7.5 6.5 C 7.5 5.121094 6.378906 4 5 4 Z M 2.609375 5.78125 C 2.539062 6.007812 2.5 6.25 2.5 6.5 C 2.5 7.878906 3.621094 9 5 9 C 5.25 9 5.492188 8.964844 5.722656 8.894531 Z M 3 10 C 1.339844 10 0 11.339844 0 13 L 0 15 C 0 15.554688 0.445312 16 1 16 L 9 16 C 9.554688 16 10 15.554688 10 15 L 10 13.171875 L 6.828125 10 Z M 3 10 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:1;" d="M 1.53125 0.457031 L 0.46875 1.519531 L 14.46875 15.519531 L 15.53125 14.457031 Z M 1.53125 0.457031 "/>
+</g>
+</svg>
diff --git a/data/icons/community-symbolic.svg b/data/icons/community-symbolic.svg
new file mode 100644
index 0000000..3716efa
--- /dev/null
+++ b/data/icons/community-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M5 2a2 2 0 0 0-2 2 2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2zm6 2a2 2 0 0 0-2 2 2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2zM4 7c-1.662 0-3 1.338-3 3v1c0 .554.446 1 1 1h4c0-1.665 1.056-3.038 2.518-3.625A2.986 2.986 0 0 0 6 7H4zm6 2c-1.662 0-3 1.338-3 3v1c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-1c0-1.662-1.338-3-3-3h-2z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/desktop-symbolic.svg b/data/icons/desktop-symbolic.svg
new file mode 100644
index 0000000..3a4031a
--- /dev/null
+++ b/data/icons/desktop-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#241f31;fill-opacity:1" d="M3 1C1.338 1 0 2.338 0 4v6c0 1.662 1.338 3 3 3h10c1.662 0 3-1.338 3-3V4c0-1.662-1.338-3-3-3H3zm0 2h10c.554 0 1 .446 1 1v6c0 .554-.446 1-1 1H3c-.554 0-1-.446-1-1V4c0-.554.446-1 1-1zm2 11a2 2 0 0 0-2 2h10a2 2 0 0 0-2-2H5z"/></svg> \ No newline at end of file
diff --git a/data/icons/emblem-synchronizing-symbolic.svg b/data/icons/emblem-synchronizing-symbolic.svg
new file mode 100644
index 0000000..db232ff
--- /dev/null
+++ b/data/icons/emblem-synchronizing-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.863 1a7.01 7.01 0 0 0-5.926 3.5 1 1 0 0 0 .368 1.365A1 1 0 0 0 3.67 5.5a4.994 4.994 0 0 1 5.2-2.424A4.99 4.99 0 0 1 12.583 6H11a1 1 0 0 0-1 1 1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1 1 1 0 0 0-1 1v1.398A7.007 7.007 0 0 0 7.863 1ZM1 8a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-1.396a7.006 7.006 0 0 0 5.39 3.369 7.004 7.004 0 0 0 6.673-3.473 1 1 0 0 0-.366-1.365 1 1 0 0 0-1.367.365 4.994 4.994 0 0 1-4.766 2.48A4.994 4.994 0 0 1 3.418 10H5a1 1 0 0 0 1-1 1 1 0 0 0-1-1Z" style="fill:#2e3436;fill-opacity:1"/></svg> \ No newline at end of file
diff --git a/data/icons/explore-symbolic.svg b/data/icons/explore-symbolic.svg
new file mode 100644
index 0000000..befab30
--- /dev/null
+++ b/data/icons/explore-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#3d3846;fill-opacity:.35;stroke-width:1" d="M2.557 2a.59.59 0 0 0-.504.828L3.16 5.32l1.56-.6.6-1.56-2.492-1.107A.583.583 0 0 0 2.557 2Zm10.875.002a.585.585 0 0 0-.26.05L10.68 3.16l.6 1.56 1.56.6 1.107-2.492a.587.587 0 0 0-.515-.826ZM3.16 10.68l-1.107 2.492a.587.587 0 0 0 .775.775L5.32 12.84l-.6-1.56Zm9.68 0-1.56.6-.6 1.56 2.492 1.107a.587.587 0 0 0 .775-.775z"/><path d="M8.002 0a.572.572 0 0 0-.535.367L5.494 5.494.367 7.467a.571.571 0 0 0 0 1.066l5.127 1.973 1.973 5.127a.571.571 0 0 0 1.066 0l1.973-5.127 5.127-1.973a.571.571 0 0 0 0-1.066l-5.127-1.973L8.533.367A.573.573 0 0 0 8.002 0ZM8 7a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/external-link-symbolic.svg b/data/icons/external-link-symbolic.svg
new file mode 100644
index 0000000..35b8681
--- /dev/null
+++ b/data/icons/external-link-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M10 0a1 1 0 0 0 0 2h2.586L7.293 7.293a1 1 0 0 0 1.414 1.414L14 3.414V6a1 1 0 1 0 2 0V0h-1ZM4 1C2.355 1 1 2.355 1 4v8c0 1.645 1.355 3 3 3h8c1.645 0 3-1.355 3-3V9c0-.554-.446-1-1-1s-1 .446-1 1v3c0 .571-.429 1-1 1H4c-.571 0-1-.429-1-1V4c0-.571.429-1 1-1h3c.554 0 1-.446 1-1s-.446-1-1-1Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/flag-outline-thin-symbolic.svg b/data/icons/flag-outline-thin-symbolic.svg
new file mode 100644
index 0000000..5a6c384
--- /dev/null
+++ b/data/icons/flag-outline-thin-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M1 0v16h2v-6h3.383l.722 1.447A1 1 0 0 0 8 12h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H9.617L8.895.553A1 1 0 0 0 8 0Zm2 2h4.383l.722 1.447A1 1 0 0 0 9 4h4v6H8.617l-.722-1.447A1 1 0 0 0 7 8H3Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/flatpak-symbolic.svg b/data/icons/flatpak-symbolic.svg
new file mode 100644
index 0000000..6b34e64
--- /dev/null
+++ b/data/icons/flatpak-symbolic.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 7.804688 0.0195312 c -0.128907 0.0273438 -0.25 0.0742188 -0.359376 0.1484378 l -6 4 c -0.277343 0.183593 -0.445312 0.496093 -0.445312 0.832031 v 6 c 0 0.335938 0.167969 0.648438 0.445312 0.832031 l 6 4 c 0.335938 0.222657 0.773438 0.222657 1.109376 0 l 6 -4 c 0.277343 -0.183593 0.445312 -0.496093 0.445312 -0.832031 v -6 c 0 -0.335938 -0.167969 -0.648438 -0.445312 -0.832031 l -6 -4 c -0.21875 -0.1484378 -0.488282 -0.199219 -0.75 -0.1484378 z m 0.195312 2.1796878 v 6.800781 l 5 -3.332031 v 4.796875 l -5 3.335937 v -4.800781 l -5 -3.332031 v -0.132813 z m 0 0" fill="#2e3436"/>
+</svg>
diff --git a/data/icons/graveyard-symbolic.svg b/data/icons/graveyard-symbolic.svg
new file mode 100644
index 0000000..fbd5c05
--- /dev/null
+++ b/data/icons/graveyard-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m11.125 1.25-.844 2.188-1.844-.75-.75 1.874 1.875.75-2.187 5.75C5.082 11.54 3.832 13.027 3 14H1.469v1.063h13V14h-.719c-.414-.988-1.914-2.605-4.219-3l1.906-4.969 2.25.907.75-1.844-2.28-.907L13 2zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/hand-open-symbolic.svg b/data/icons/hand-open-symbolic.svg
new file mode 100644
index 0000000..2e20f74
--- /dev/null
+++ b/data/icons/hand-open-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 0 c 0.554688 0 1 0.445312 1 1 v 6.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -4.5 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 8.5 c 0 0.5 0.5 0.5 0.5 0.5 l 1.792969 -1.707031 c 0.1875 -0.195313 0.445312 -0.300781 0.71875 -0.300781 c 1.082031 0.082031 1.144531 1.265624 0.695312 1.714843 l -3 3 c -0.707031 0.792969 -1.757812 1.289063 -2.707031 1.292969 h -6 c -3 0 -3 -3 -3 -3 v -8 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 3.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -6.5 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 5.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -6.5 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0" fill="#222222"/></svg>
diff --git a/data/icons/heart-filled-symbolic.svg b/data/icons/heart-filled-symbolic.svg
new file mode 100644
index 0000000..bd06edb
--- /dev/null
+++ b/data/icons/heart-filled-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M11.395 1.965a3.75 3.75 0 0 0-2.641.984L8 3.625l-.758-.676a3.738 3.738 0 0 0-3.676-.77 3.738 3.738 0 0 0-2.5 2.805 3.76 3.76 0 0 0 1.188 3.567L8 13.668l5.742-5.117a3.75 3.75 0 0 0-2.348-6.586zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/help-link-symbolic.svg b/data/icons/help-link-symbolic.svg
new file mode 100644
index 0000000..52f8fe6
--- /dev/null
+++ b/data/icons/help-link-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="color:#bebebe;fill:#2e3436;-inkscape-stroke:none" d="M8 0C3.585 0 0 3.585 0 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c.973 0 1.887.227 2.695.629L9.461 5.14A2.324 2.324 0 0 0 8.662 5H7.338c-.28 0-.55.05-.799.14L5.305 2.63A6.034 6.034 0 0 1 8 2zM2.613 5.338l2.51 1.254A2.32 2.32 0 0 0 5 7.338v1.324c0 .28.05.55.14.799L2.64 10.713A6.032 6.032 0 0 1 2 8c0-.96.222-1.862.613-2.662zm10.774 0C13.778 6.138 14 7.04 14 8c0 .98-.231 1.9-.639 2.713L10.86 9.46c.092-.25.141-.52.141-.799V7.338c0-.26-.044-.512-.123-.746l2.51-1.254zM7.337 6h1.325C9.412 6 10 6.588 10 7.338v1.324C10 9.412 9.412 10 8.662 10H7.338C6.588 10 6 9.412 6 8.662V7.338C6 6.588 6.588 6 7.338 6zm-.77 4.867c.241.085.5.133.77.133h1.325c.27 0 .53-.048.772-.133l1.254 2.508C9.88 13.775 8.97 14 8 14c-.97 0-1.881-.226-2.688-.625l1.254-2.508z"/></svg> \ No newline at end of file
diff --git a/data/icons/hicolor/meson.build b/data/icons/hicolor/meson.build
new file mode 100644
index 0000000..6f92a45
--- /dev/null
+++ b/data/icons/hicolor/meson.build
@@ -0,0 +1,6 @@
+install_data('scalable/' + application_id + '.svg',
+ install_dir : 'share/icons/hicolor/scalable/apps')
+install_data('symbolic/org.gnome.Software-symbolic.svg',
+ install_dir : 'share/icons/hicolor/symbolic/apps')
+install_data('symbolic/app-remove-symbolic.svg',
+ install_dir : 'share/icons/hicolor/scalable/actions')
diff --git a/data/icons/hicolor/scalable/org.gnome.Software.svg b/data/icons/hicolor/scalable/org.gnome.Software.svg
new file mode 100644
index 0000000..fd973d8
--- /dev/null
+++ b/data/icons/hicolor/scalable/org.gnome.Software.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="36" x2="60" y1="68" y2="68">
+ <stop offset="0" stop-color="#ed336c"/>
+ <stop offset="1" stop-color="#ffa348"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 1 -1 0 144 -32)" gradientUnits="userSpaceOnUse" x1="72" x2="96" y1="68" y2="68">
+ <stop offset="0" stop-color="#404ce6"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="68.84919" x2="95.257637" y1="84" y2="84">
+ <stop offset="0" stop-color="#33d1c6"/>
+ <stop offset="1" stop-color="#1c25d8"/>
+ </linearGradient>
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+</svg>
diff --git a/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg b/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg
new file mode 100644
index 0000000..113e867
--- /dev/null
+++ b/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="36" x2="60" y1="68" y2="68">
+ <stop offset="0" stop-color="#ed336c"/>
+ <stop offset="1" stop-color="#ffa348"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 1 -1 0 144 -32)" gradientUnits="userSpaceOnUse" x1="72" x2="96" y1="68" y2="68">
+ <stop offset="0" stop-color="#404ce6"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="68.84919" x2="95.257637" y1="84" y2="84">
+ <stop offset="0" stop-color="#33d1c6"/>
+ <stop offset="1" stop-color="#1c25d8"/>
+ </linearGradient>
+ <clipPath id="d">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <clipPath id="e">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <filter id="f" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="g">
+ <g clip-path="url(#e)" filter="url(#f)">
+ <g clip-path="url(#d)">
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+ </g>
+ </g>
+ </mask>
+ <mask id="h">
+ <g filter="url(#f)">
+ <rect fill-opacity="0.8" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="i" gradientTransform="matrix(0 0.37 -0.98462 0 295.38501 -30.360001)" gradientUnits="userSpaceOnUse" x1="300" x2="428" y1="235" y2="235">
+ <stop offset="0" stop-color="#f9f06b"/>
+ <stop offset="1" stop-color="#f5c211"/>
+ </linearGradient>
+ <clipPath id="j">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <clipPath id="k">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+ <g clip-path="url(#k)" mask="url(#g)">
+ <g clip-path="url(#j)" mask="url(#h)">
+ <path d="m 128 80.640625 v 47.359375 h -128 v -47.359375 z m 0 0" fill="url(#i)"/>
+ <path d="m 13.308594 80.640625 l 47.355468 47.359375 h 21.214844 l -47.359375 -47.359375 z m 42.421875 0 l 47.363281 47.359375 h 21.214844 l -47.363282 -47.359375 z m 42.429687 0 l 29.839844 29.839844 v -21.210938 l -8.628906 -8.628906 z m -98.160156 7.90625 v 21.214844 l 18.238281 18.238281 h 21.214844 z m 0 0"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/hicolor/symbolic/app-remove-symbolic.svg b/data/icons/hicolor/symbolic/app-remove-symbolic.svg
new file mode 100644
index 0000000..734827e
--- /dev/null
+++ b/data/icons/hicolor/symbolic/app-remove-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M13 5v9H4V5H2v9c0 2 2 2 2 2h9c2 0 2-2 2-2V5zM9 6H8v6h1zM7 6H6v6h1zm4 0h-1v6h1zm1-6c2 0 2 2 2 2h2v2H1V2h2c0-2 2-2 2-2zm0 1H5v1h7z" fill="#474747"/></svg> \ No newline at end of file
diff --git a/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg b/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg
new file mode 100644
index 0000000..8311292
--- /dev/null
+++ b/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 1 4 v 8 c 0 1.109375 0.890625 2 2 2 h 10 c 1.109375 0 2 -0.890625 2 -2 v -8 z m 7 1.75 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m -2 3 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m 4 0 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m 0 0"/>
+ <path d="m 6 1 l -1 1 v 3 h 2 v -3 h 2 v 3 h 2 v -3 l -1 -1 z m 0 0"/>
+</svg>
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 0000000..13ca713
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1 @@
+subdir('hicolor')
diff --git a/data/icons/money-none-symbolic.svg b/data/icons/money-none-symbolic.svg
new file mode 100644
index 0000000..9e74edf
--- /dev/null
+++ b/data/icons/money-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06L2.85 3.91l1.41 1.418a.985.985 0 0 1 .005-.004L5.94 7h-.003L9 10.063v-.004l.941.941h-.004l1.868 1.867h.004l2.662 2.662 1.06-1.06-2.396-2.397c.53-.537.861-1.268.861-2.076A3.01 3.01 0 0 0 11 7H9V5h4V3H9V1H7v2H5c-.281 0-.557.042-.82.117L1.53.47zM6.063 5H7v.938L6.062 5zm-3.97.277A2.99 2.99 0 0 0 5 8.992v.012h.82L2.094 5.277zM10.064 9H11a.98.98 0 0 1 .996.996.994.994 0 0 1-.26.678L10.062 9zM7 10.184V11H3v2h4v2h2v-2h.82L7 10.184z"/></svg> \ No newline at end of file
diff --git a/data/icons/money-symbolic.svg b/data/icons/money-symbolic.svg
new file mode 100644
index 0000000..0c06a39
--- /dev/null
+++ b/data/icons/money-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M7 1v2H5a2.996 2.996 0 0 0 0 5.992v.012h2v2H3v2h4v2h2v-2h2v-.012a3.01 3.01 0 0 0 2.996-2.996A3.01 3.01 0 0 0 11 7H9V5h4V3H9V1zM5.04 5H7v2H5.105a9.66 9.66 0 0 1-.109-.012.992.992 0 0 1-.863-1.492c.18-.309.504-.5.863-.5a.08.08 0 0 0 .043 0zM9 9h2c.563 0 .996.434.996.996s-.434.996-.996.996l-2 .012zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/nudity-none-symbolic.svg b/data/icons/nudity-none-symbolic.svg
new file mode 100644
index 0000000..410fbb3
--- /dev/null
+++ b/data/icons/nudity-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 2.498 2.498v.004l5.785 5.782.744.744s-.002 0-.002.002l1.473 1.472v-.004l3.502 3.502 1.06-1.06-3.111-3.112c.634-.634 1.049-1.67 1.049-2.845 0-1.933-1.117-3.5-2.5-3.5v-4h-8v.894L1.53.47zM6.97 4.512c.883 0 1.652.504 2.176 1.234.523.73.824 1.703.824 2.766 0 .128-.006.254-.016.379L8.92 7.857c-.091-.602-.304-1.132-.588-1.529-.383-.539-.86-.816-1.363-.816a.501.501 0 0 1 0-1zm-4 1.644v9.856h4v-4.45l.363-.105c.207-.059.415-.172.606-.336l-4.97-4.965zm5.586 5.582a3.042 3.042 0 0 1-.586.387v3.887h3v-1.856l-2.414-2.418z"/></svg> \ No newline at end of file
diff --git a/data/icons/nudity-symbolic.svg b/data/icons/nudity-symbolic.svg
new file mode 100644
index 0000000..6d7865c
--- /dev/null
+++ b/data/icons/nudity-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.969 1.012v15h4v-4.45l.363-.105c.84-.234 1.637-1.422 1.637-2.945 0-.871-.254-1.649-.637-2.184-.383-.539-.86-.816-1.363-.816a.501.501 0 0 1 0-1c.883 0 1.652.504 2.176 1.234.523.73.824 1.703.824 2.766 0 1.668-.809 3.023-2 3.613v3.887h3v-4c1.383 0 2.5-1.567 2.5-3.5 0-1.934-1.117-3.5-2.5-3.5v-4zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/org.gnome.Software.Create.svg b/data/icons/org.gnome.Software.Create.svg
new file mode 100644
index 0000000..234a6f7
--- /dev/null
+++ b/data/icons/org.gnome.Software.Create.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.25 0 0 0.244048 -0.499619 50.195877)" gradientUnits="userSpaceOnUse" x1="48" x2="464" y1="44" y2="44">
+ <stop offset="0" stop-color="#babdb6"/>
+ <stop offset="0.0416667" stop-color="#f6f5f4"/>
+ <stop offset="0.0833333" stop-color="#d5d3cf"/>
+ <stop offset="0.916667" stop-color="#deddda"/>
+ <stop offset="0.958333" stop-color="#f6f5f4"/>
+ <stop offset="1" stop-color="#babdb6"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(-0.471598 0 0 0.471598 569.325439 -130.366928)" gradientUnits="userSpaceOnUse" x1="953.275024" x2="944.207458" y1="350.855988" y2="359.923553">
+ <stop offset="0" stop-color="#e9b96e"/>
+ <stop offset="1" stop-color="#dc9321"/>
+ </linearGradient>
+ <linearGradient id="c" gradientTransform="matrix(-0.358336 0 0 0.358336 230.872086 1.097)" gradientUnits="userSpaceOnUse" x1="418.838409" x2="433.349823" y1="227" y2="212.868271">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="0.415508" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#deddda"/>
+ </linearGradient>
+ <radialGradient id="d" cx="450.948059" cy="225.394623" gradientTransform="matrix(-0.658592 0 0 0.658592 370.111938 -72.351868)" gradientUnits="userSpaceOnUse" r="39.999989">
+ <stop offset="0" stop-color="#5b5b5b"/>
+ <stop offset="0.634455" stop-color="#262e39"/>
+ <stop offset="1" stop-color="#113f78"/>
+ </radialGradient>
+ <filter id="e" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="f">
+ <g filter="url(#e)">
+ <rect fill-opacity="0.3" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="g">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <linearGradient id="h" gradientUnits="userSpaceOnUse" x1="19.25" x2="54.820038" y1="55.999985" y2="91.570023">
+ <stop offset="0" stop-color="#dc8add"/>
+ <stop offset="1" stop-color="#103c72"/>
+ </linearGradient>
+ <radialGradient id="i" cx="67.502945" cy="244.504639" gradientTransform="matrix(1.001091 -0.00000013 0.00000014 0.81247 -0.576645 -108.652573)" gradientUnits="userSpaceOnUse" r="11.077337">
+ <stop offset="0" stop-color="#113f78" stop-opacity="0"/>
+ <stop offset="0.786035" stop-color="#113f78" stop-opacity="0.105882"/>
+ <stop offset="1" stop-color="#103c72"/>
+ </radialGradient>
+ <mask id="j">
+ <g filter="url(#e)">
+ <rect fill-opacity="0.2" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="k">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 24 123 v 1 h 16 v -1 z m 64 0 v 1 h 16 v -1 z m 0 0" fill="#9a9996"/>
+ <path d="m 88 124 v -4 l -24 -96 v 4 z" fill="#77767b" fill-rule="evenodd"/>
+ <path d="m 40 124 v -4 l 24 -96 v 4 z" fill="#77767b" fill-rule="evenodd"/>
+ <path d="m 64 4 c -2.90625 0.003906 -5.417969 2.027344 -6.039062 4.867188 l -0.003907 -0.003907 l -33.957031 114.136719 h 16 l 24 -101 l 24 101 h 16 l -33.992188 -114.285156 l -0.007812 0.011718 c -0.671875 -2.773437 -3.148438 -4.722656 -6 -4.726562 z m 0 5 c 1.65625 0 3 1.34375 3 3 s -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 20 30 h 88 c 4.417969 0 8 3.582031 8 8 v 66 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -66 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 20 h 88 c 4.417969 0 8 3.582031 8 8 v 72 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -72 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 128 36 l -48.90625 48.910156 c -2.199219 2.285156 -5.84375 2.324219 -8.085938 0.082032 c -2.242187 -2.242188 -2.203124 -5.886719 0.082032 -8.085938 l 41.132812 -41.132812 c 4.898438 -4.203126 11.777344 -3.773438 15.777344 0.226562 z m 0 0" fill="url(#b)"/>
+ <path d="m 90.683594 59.585938 c 5.148437 0.003906 7.6875 6.257812 3.996094 9.847656 l -19.066407 21.058594 c -2.785156 2.828124 -7.339843 2.847656 -10.144531 0.039062 c -2.804688 -2.804688 -2.785156 -7.359375 0.042969 -10.140625 l 21.058593 -19.066406 c 1.078126 -1.113281 2.5625 -1.738281 4.113282 -1.738281 z m 0 0" fill="url(#c)"/>
+ <path d="m 72 68 c 8.835938 0 16 7.164062 16 16 s -7.164062 16 -16 16 h -16 v -16 c 0 -8.835938 7.164062 -16 16 -16 z m 0 0" fill="url(#d)"/>
+ <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 72.003906 95 c 0 -1.65625 1.339844 -2.996094 2.996094 -2.996094 s 2.996094 1.339844 2.996094 2.996094 s -1.339844 2.996094 -2.996094 2.996094 s -2.996094 -1.339844 -2.996094 -2.996094 z m 0 0" fill="#ffffff"/>
+ </g>
+ <path d="m 12 39.867188 v 24 c 2.003906 -1.125 4.425781 -1.488282 6.671875 -1.003907 s 4.304687 1.8125 5.667969 3.664063 c 1.761718 2.390625 2.3125 5.460937 2.457031 8.429687 c 0.144531 2.964844 -0.066406 5.957031 0.394531 8.894531 c 0.628906 3.996094 2.539063 7.792969 5.410156 10.648438 c 2.867188 2.855469 6.6875 4.753906 10.703126 5.269531 c 2.609374 0.335938 5.253906 0.203125 7.886718 0.210938 l 4.808594 0.019531 c 0 -0.441406 0 -0.886719 0 -1.328125 c 0 -0.222656 0 -0.449219 0 -0.671875 c -2.035156 -0.476562 -4.085938 -0.863281 -6.15625 -1.160156 c -1.339844 -0.191406 -2.695312 -0.34375 -3.996094 -0.734375 c -1.300781 -0.386719 -2.5625 -1.023438 -3.460937 -2.039063 c -0.757813 -0.855468 -1.226563 -1.941406 -1.429688 -3.066406 c -0.207031 -1.121094 -0.152343 -2.28125 0.046875 -3.402344 c 0.40625 -2.246094 1.390625 -4.339844 2.132813 -6.5 c 2.398437 -6.988281 2.167969 -14.796875 -0.375 -21.730468 c -2.804688 -7.644532 -8.546875 -14.3125 -16.011719 -17.5625 c -4.605469 -2.007813 -9.78125 -2.6875 -14.75 -1.9375 z m 0 0" fill="url(#h)"/>
+ <path d="m 46.90625 96.375 l 4.285156 3.605469 l 18.808594 0.019531 l -2 -3 c -3.144531 -4.714844 -9.132812 -9 -12 -9 c 0 6 -5.5625 9.097656 -9.09375 8.375 z m 0 0" fill="url(#i)"/>
+ <g clip-path="url(#k)" mask="url(#j)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 35 128 l -0.621094 2 h 16.054688 l 0.523437 -1.972656 z m 57.988281 0 l 0.5 2 h 16.132813 l -0.621094 -2 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/org.gnome.Software.Develop.svg b/data/icons/org.gnome.Software.Develop.svg
new file mode 100644
index 0000000..78792bb
--- /dev/null
+++ b/data/icons/org.gnome.Software.Develop.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="12" x2="116" y1="64" y2="64">
+ <stop offset="0" stop-color="#77767b"/>
+ <stop offset="0.05" stop-color="#c0bfbc"/>
+ <stop offset="0.1" stop-color="#9a9996"/>
+ <stop offset="0.899999" stop-color="#9a9996"/>
+ <stop offset="0.95" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#77767b"/>
+ </linearGradient>
+ <filter id="b" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="c">
+ <g filter="url(#b)">
+ <rect fill-opacity="0.05" height="128" width="128"/>
+ </g>
+ </mask>
+ <radialGradient id="d" cx="63.999996" cy="194.190475" gradientTransform="matrix(4.727273 -0.00000079 0.0000003 1.636364 -230.545471 -205.766182)" gradientUnits="userSpaceOnUse" r="44">
+ <stop offset="0" stop-color="#ffffff"/>
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0.094118"/>
+ </radialGradient>
+ <clipPath id="e">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 20 22 h 88 c 4.417969 0 8 3.582031 8 8 v 78 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -78 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 80 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -80 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 20 104 h 88 c 2.210938 0 4 -1.789062 4 -4 v -80 c 0 -2.210938 -1.789062 -4 -4 -4 h -88 c -2.210938 0 -4 1.789062 -4 4 v 80 c 0 2.210938 1.789062 4 4 4 z m 0 0" fill="#241f31"/>
+ <g clip-path="url(#e)" mask="url(#c)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 116 116 h -88 v -78 h 88 z m 0 0" fill="url(#d)"/>
+ </g>
+ <path d="m 24 28 h 28 v 4 h -28 z m 0 0" fill="#ff7800"/>
+ <path d="m 24 36 h 16 v 4 h -16 z m 0 0" fill="#deddda"/>
+ <path d="m 32 44 h 42 v 4 h -42 z m 0 0" fill="#3584e4"/>
+ <path d="m 32 52 h 22 v 4 h -22 z m 0 0" fill="#deddda"/>
+ <path d="m 40 60 h 36 v 4 h -36 z m 0 0" fill="#deddda"/>
+ <path d="m 40 68 h 20 v 4 h -20 z m 0 0" fill="#8ff0a4"/>
+ <path d="m 48 76 h 24 v 4 h -24 z m 0 0" fill="#ff7800"/>
+ <path d="m 24 84 h 32 v 4 h -32 z m 0 0" fill="#deddda"/>
+ <path d="m 24 92 h 18 v 4 h -18 z m 0 0" fill="#3584e4"/>
+ <path d="m 32 76 h 14 v 4 h -14 z m 0 0" fill="#8ff0a4"/>
+ <path d="m 62 68 h 20 v 4 h -20 z m 0 0" fill="#deddda"/>
+ <path d="m 78 60 h 18 v 4 h -18 z m 0 0" fill="#3584e4"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Learn.svg b/data/icons/org.gnome.Software.Learn.svg
new file mode 100644
index 0000000..7ad3721
--- /dev/null
+++ b/data/icons/org.gnome.Software.Learn.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 64 4 l 60 100 h -120 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 64 5.503906 v 90.496094 h 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 69.878906 72 l -5.878906 12 l 8 20 h 52 l -18.773438 -31.875 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 64 5.503906 v 90.496094 h -8 z m 0 0" fill="#deddda"/>
+ <path d="m 23.199219 72 l -19.199219 32 h 52 l 8 -20 l -5.878906 -12 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 58.121094 72 l 5.878906 12 v 44 l -8 -24 z m 0 0" fill="#deddda"/>
+ <path d="m 69.878906 72 l -5.878906 12 v 44 l 8 -24 z m 0 0" fill="#c0bfbc"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Play.svg b/data/icons/org.gnome.Software.Play.svg
new file mode 100644
index 0000000..67fe0dd
--- /dev/null
+++ b/data/icons/org.gnome.Software.Play.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="1" stop-color="#9a9996" stop-opacity="0"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 -1.333333 -1.333333 0 414.662385 134.674892)" x1="38" x2="50" xlink:href="#a" y1="248" y2="248"/>
+ <linearGradient id="c" gradientTransform="matrix(0 -1.333333 -1.333333 0 374.778504 134.674892)" x1="38" x2="50" xlink:href="#a" y1="248" y2="248"/>
+ <path d="m 89.175781 41.980469 l 6.082031 7.5625 l 22.648438 -4.671875 l 9.875 47.90625 c 1.488281 7.234375 -2.171875 14.546875 -8.851562 17.695312 c -6.679688 3.148438 -14.648438 1.316406 -19.28125 -4.433594 l -35.40625 -44 z m 0 0" fill="#deddda"/>
+ <path d="m 39.175781 41.980469 l -6.082031 7.5625 l -22.648438 -4.671875 l -9.875 47.90625 c -1.488281 7.234375 2.171876 14.546875 8.851563 17.695312 c 6.679687 3.148438 14.648437 1.316406 19.28125 -4.433594 l 35.40625 -44 z m 0 0" fill="#deddda"/>
+ <path d="m 41.113281 28.007812 h 46 v 32 h -46 z m 0 0" fill="#deddda"/>
+ <path d="m 60.445312 59.289062 l -31.984374 39.75 c -3.859376 4.78125 -10.117188 6.929688 -16.101563 5.527344 s -10.632813 -6.105468 -11.96875 -12.105468 l -0.066406 0.316406 c -1.484375 7.234375 2.171875 14.546875 8.855469 17.695312 c 6.679687 3.148438 14.648437 1.316406 19.28125 -4.433594 l 35.402343 -44 z m 7.101563 0 l -3.421875 2.75 l 35.40625 44 c 4.632812 5.75 12.601562 7.582032 19.28125 4.433594 c 6.683594 -3.148437 10.339844 -10.460937 8.851562 -17.695312 l -0.0625 -0.316406 c -1.335937 6 -5.988281 10.703124 -11.96875 12.105468 c -5.984374 1.402344 -12.242187 -0.746094 -16.101562 -5.527344 z m 0 0" fill="#5e5c64" fill-opacity="0.235294"/>
+ <g fill="#c0bfbc">
+ <path d="m 54.113281 49.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0"/>
+ <path d="m 46.113281 32.007812 h 36 v 52 h -36 z m 0 0"/>
+ <path d="m 118.113281 49.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0"/>
+ <path d="m 57.996094 80.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0"/>
+ <path d="m 97.996094 80.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0"/>
+ </g>
+ <path d="m 46.113281 32.007812 h 36 v 48 h -36 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 57.996094 78.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 97.996094 78.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 54.113281 47.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 118.113281 47.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 29.996094 36.007812 c -1.109375 0 -2 0.890626 -2 2 v 6 h -6 c -1.109375 0 -2 0.890626 -2 2 v 4 c 0 1.109376 0.890625 2 2 2 h 6 v 6 c 0 1.109376 0.890625 2 2 2 h 4 c 1.109375 0 2 -0.890624 2 -2 v -6 h 6 c 1.109375 0 2 -0.890624 2 -2 v -4 c 0 -1.109374 -0.890625 -2 -2 -2 h -6 v -6 c 0 -1.109374 -0.890625 -2 -2 -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 29.996094 34.007812 c -1.109375 0 -2 0.890626 -2 2 v 6 h -6 c -1.109375 0 -2 0.890626 -2 2 v 4 c 0 1.109376 0.890625 2 2 2 h 6 v 6 c 0 1.109376 0.890625 2 2 2 h 4 c 1.109375 0 2 -0.890624 2 -2 v -6 h 6 c 1.109375 0 2 -0.890624 2 -2 v -4 c 0 -1.109374 -0.890625 -2 -2 -2 h -6 v -6 c 0 -1.109374 -0.890625 -2 -2 -2 z m 0 0" fill="#5e5c64"/>
+ <path d="m 109.996094 50.007812 v 2 c 0 3.324219 -2.675782 6 -6 6 c -3.324219 0 -6 -2.675781 -6 -6 v -2 z m 0 0" fill="#c01c28"/>
+ <path d="m 97.996094 50.007812 c 0 3.3125 2.6875 6 6 6 s 6 -2.6875 6 -6 s -2.6875 -6 -6 -6 s -6 2.6875 -6 6 z m 0 0" fill="#ed333b"/>
+ <path d="m 93.996094 42.007812 v 2 c 0 3.324219 -2.675782 6 -6 6 c -3.324219 0 -6 -2.675781 -6 -6 v -2 z m 0 0" fill="#1a5fb4"/>
+ <path d="m 81.996094 42.007812 c 0 3.3125 2.6875 6 6 6 s 6 -2.6875 6 -6 s -2.6875 -6 -6 -6 s -6 2.6875 -6 6 z m 0 0" fill="#3584e4"/>
+ <path d="m 54.113281 78.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#241f31"/>
+ <path d="m 94.113281 78.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#241f31"/>
+ <path d="m 54.113281 76.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#3d3846"/>
+ <path d="m 94.113281 76.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#3d3846"/>
+ <path d="m 83.996094 68.007812 c -4.417969 0 -8 3.582032 -8 8 c 0 4.417969 3.582031 8 8 8 c 4.417968 0 8 -3.582031 8 -8 c 0 -4.417968 -3.582032 -8 -8 -8 z m 0 0" fill="url(#b)"/>
+ <path d="m 44.113281 68.007812 c -4.417969 0 -8 3.582032 -8 8 c 0 4.417969 3.582031 8 8 8 s 8 -3.582031 8 -8 c 0 -4.417968 -3.582031 -8 -8 -8 z m 0 0" fill="url(#c)"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Socialize.svg b/data/icons/org.gnome.Software.Socialize.svg
new file mode 100644
index 0000000..7c74f8e
--- /dev/null
+++ b/data/icons/org.gnome.Software.Socialize.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <radialGradient id="a" cx="64" cy="40" gradientUnits="userSpaceOnUse" r="60">
+ <stop offset="0" stop-color="#f8e45c"/>
+ <stop offset="1" stop-color="#f5c211"/>
+ </radialGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#f66151"/>
+ <stop offset="0.6" stop-color="#e6272f"/>
+ <stop offset="1" stop-color="#e01b24"/>
+ </linearGradient>
+ <radialGradient id="c" cx="52" cy="29.856375" gradientTransform="matrix(0.776974 0 0 0.621716 11.597331 20.590141)" r="16.084499" xlink:href="#b"/>
+ <radialGradient id="d" cx="52" cy="29.856375" gradientTransform="matrix(0.776974 0 0 0.621716 51.597511 20.590141)" r="16.084499" xlink:href="#b"/>
+ <path d="m 124 64 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 -60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0" fill="url(#a)"/>
+ <path d="m 123.824219 59.539062 c -1.871094 31.679688 -28.089844 56.421876 -59.824219 56.460938 c -31.402344 -0.003906 -57.488281 -24.222656 -59.824219 -55.539062 c -0.09375 1.175781 -0.152343 2.359374 -0.175781 3.539062 c 0 33.136719 26.863281 60 60 60 s 60 -26.863281 60 -60 c -0.003906 -1.488281 -0.0625 -2.976562 -0.175781 -4.460938 z m 0 0" fill="#e5a50a"/>
+ <path d="m 71.632812 64.992188 c 0 2.503906 -1.457031 4.816406 -3.816406 6.066406 c -2.363281 1.253906 -5.269531 1.253906 -7.632812 0 c -2.359375 -1.25 -3.816406 -3.5625 -3.816406 -6.066406" fill="none" stroke="#3d3846" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 51.910156 31.996094 c -2.082031 0.058594 -4.0625 0.929687 -5.515625 2.425781 l -2.34375 2.34375 l -2.34375 -2.34375 c -1.507812 -1.546875 -3.578125 -2.421875 -5.738281 -2.421875 c -3.257812 0 -6.1875 1.976562 -7.414062 4.992188 c -1.222657 3.019531 -0.496094 6.476562 1.839843 8.746093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 2.371094 -2.296875 3.085938 -5.8125 1.804688 -8.855469 c -1.285157 -3.039062 -4.300781 -4.980468 -7.601563 -4.886718 z m 0 0" fill="url(#c)"/>
+ <path d="m 91.914062 31.996094 c -2.085937 0.058594 -4.066406 0.929687 -5.519531 2.425781 l -2.34375 2.34375 l -2.34375 -2.34375 c -1.507812 -1.546875 -3.578125 -2.421875 -5.738281 -2.421875 c -3.257812 0 -6.1875 1.976562 -7.410156 4.992188 c -1.226563 3.019531 -0.5 6.476562 1.835937 8.746093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 2.371094 -2.296875 3.085938 -5.8125 1.804688 -8.855469 c -1.285157 -3.039062 -4.300781 -4.980468 -7.597657 -4.886718 z m 0 0" fill="url(#d)"/>
+ <g fill="#c01c28">
+ <path d="m 28.121094 38.492188 c -0.511719 2.644531 0.34375 5.367187 2.273437 7.246093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 1.933594 -1.875 2.792969 -4.597656 2.285157 -7.246093 c -0.308594 1.617187 -1.105469 3.101562 -2.285157 4.246093 l -10.824219 10.824219 c -1.5625 1.5625 -4.09375 1.5625 -5.65625 0 v 0.007812 l -10.832031 -10.832031 c -1.175781 -1.148437 -1.972656 -2.628906 -2.273437 -4.246093 z m 0 0"/>
+ <path d="m 68.121094 38.492188 c -0.511719 2.644531 0.34375 5.367187 2.273437 7.246093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 1.933594 -1.875 2.792969 -4.597656 2.285157 -7.246093 c -0.308594 1.617187 -1.105469 3.101562 -2.285157 4.246093 l -10.824219 10.824219 c -1.5625 1.5625 -4.09375 1.5625 -5.65625 0 v 0.007812 l -10.832031 -10.832031 c -1.175781 -1.148437 -1.972656 -2.628906 -2.273437 -4.246093 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/org.gnome.Software.Work.svg b/data/icons/org.gnome.Software.Work.svg
new file mode 100644
index 0000000..46433a4
--- /dev/null
+++ b/data/icons/org.gnome.Software.Work.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="20.00001801213" x2="108.00010899163" y1="88.00001906939" y2="88.00001906939">
+ <stop offset="0" stop-color="#1a5fb4"/>
+ <stop offset="0.0340909" stop-color="#1c71d8"/>
+ <stop offset="0.0681818" stop-color="#3584e4"/>
+ <stop offset="0.931818" stop-color="#3584e4"/>
+ <stop offset="0.965909" stop-color="#1c71d8"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0.272543 0 0 0.295903 1.85959 50.447067)" gradientUnits="userSpaceOnUse" x1="88.574776" x2="367.430145" y1="1.578945" y2="1.578945">
+ <stop offset="0" stop-color="#1a5fb4"/>
+ <stop offset="0.0263158" stop-color="#3584e4"/>
+ <stop offset="0.973324" stop-color="#3584e4"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <path d="m 28.722656 44 h 70.554688 c 4.816406 0 8.722656 3.90625 8.722656 8.722656 v 58.554688 c 0 4.816406 -3.90625 8.722656 -8.722656 8.722656 h -70.554688 c -4.816406 0 -8.722656 -3.90625 -8.722656 -8.722656 v -58.554688 c 0 -4.816406 3.90625 -8.722656 8.722656 -8.722656 z m 0 0" fill="url(#a)"/>
+ <path d="m 28.722656 8 h 70.554688 c 4.816406 0 8.722656 3.90625 8.722656 8.722656 v 70.554688 c 0 4.816406 -3.90625 8.722656 -8.722656 8.722656 h -70.554688 c -4.816406 0 -8.722656 -3.90625 -8.722656 -8.722656 v -70.554688 c 0 -4.816406 3.90625 -8.722656 8.722656 -8.722656 z m 0 0" fill="#62a0ea"/>
+ <path d="m 48 80 h 32 c 2.210938 0 4 1.789062 4 4 v 22 c 0 2.210938 -1.789062 4 -4 4 h -32 c -2.210938 0 -4 -1.789062 -4 -4 v -22 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#62a0ea"/>
+ <path d="m 30 14 h 68 c 2.210938 0 4 1.789062 4 4 v 68 c 0 2.210938 -1.789062 4 -4 4 h -68 c -2.210938 0 -4 -1.789062 -4 -4 v -68 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="url(#b)"/>
+ <path d="m 48 84 h 32 c 2.210938 0 4 1.789062 4 4 v 12 c 0 2.210938 -1.789062 4 -4 4 h -32 c -2.210938 0 -4 -1.789062 -4 -4 v -12 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#deddda"/>
+ <path d="m 30.203125 20 c -1.203125 0 -2.179687 1.03125 -2.179687 2.304688 l -0.0625 66.773437 s 1.039062 0.582031 2.039062 0.582031 h 14 v 6.339844 h 40 v -6.339844 h 14 c 1 0 2.011719 -0.566406 2.011719 -0.566406 l -0.066407 -66.789062 c 0 -1.273438 -0.976562 -2.304688 -2.179687 -2.304688 z m 0 0" fill="#ffffff"/>
+ <path d="m 40 68 l 6 6 l 10 -10" fill="none" stroke="#3d3846" stroke-width="4"/>
+ <path d="m 64 40 h 24 v 4 h -24 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 64 68 h 24 v 4 h -24 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 40 40 l 6 6 l 10 -10" fill="none" stroke="#3d3846" stroke-width="4"/>
+</svg>
diff --git a/data/icons/package-x-generic-symbolic.svg b/data/icons/package-x-generic-symbolic.svg
new file mode 100644
index 0000000..abe6ec5
--- /dev/null
+++ b/data/icons/package-x-generic-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3434">
+ <path d="m 4.027344 0.996094 c -1.660156 0 -3.027344 1.367187 -3.027344 3.027344 v 7.910156 c 0 1.660156 1.367188 3.027344 3.027344 3.027344 h 7.945312 c 1.660156 0 3.027344 -1.367188 3.027344 -3.027344 v -7.910156 c 0 -1.660157 -1.367188 -3.027344 -3.027344 -3.027344 z m 0 2 h 7.945312 c 0.585938 0 1.027344 0.441406 1.027344 1.027344 v 7.910156 c 0 0.585937 -0.441406 1.027344 -1.027344 1.027344 h -7.945312 c -0.589844 0 -1.027344 -0.441407 -1.027344 -1.027344 v -7.910156 c 0 -0.585938 0.4375 -1.027344 1.027344 -1.027344 z m 0 0"/>
+ <path d="m 4.027344 1 c -1.660156 0 -3.027344 1.367188 -3.027344 3.027344 v 0.945312 s 1.386719 2.03125 3.027344 2.03125 h 7.945312 c 1.46875 0 3.027344 -2.03125 3.027344 -2.03125 v -0.945312 c 0 -1.660156 -1.367188 -3.027344 -3.027344 -3.027344 z m 0 2 h 7.945312 c 0.585938 0 1.027344 0.441406 1.027344 1.027344 v 0.945312 c 0 0.585938 -0.441406 1.027344 -1.027344 1.027344 h -7.945312 c -0.589844 0 -1.027344 -0.441406 -1.027344 -1.027344 v -0.945312 c 0 -0.585938 0.4375 -1.027344 1.027344 -1.027344 z m 0 0"/>
+ <path d="m 7 0.996094 h 2 v 10.03125 l -2 -0.988282 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/padlock-open-symbolic.svg b/data/icons/padlock-open-symbolic.svg
new file mode 100644
index 0000000..31efb43
--- /dev/null
+++ b/data/icons/padlock-open-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M8 0C5.801 0 4 1.801 4 4v1a1 1 0 0 0 1 1 1 1 0 0 0 1-1V4c0-1.125.875-2 2-2s2 .875 2 2v4H4c-1.108 0-2 .892-2 2v5c0 .554.446 1 1 1h10c.554 0 1-.446 1-1v-5c0-1.108-.892-2-2-2V4c0-2.199-1.801-4-4-4Z" style="fill:#241f31"/></svg> \ No newline at end of file
diff --git a/data/icons/phone-symbolic.svg b/data/icons/phone-symbolic.svg
new file mode 100644
index 0000000..f73dab6
--- /dev/null
+++ b/data/icons/phone-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M5 0C3.355 0 2 1.355 2 3v10c0 1.645 1.355 3 3 3h6c1.645 0 3-1.355 3-3V3c0-1.645-1.355-3-3-3zm0 2h1c0 .554.446 1 1 1h2c.554 0 1-.446 1-1h1c.571 0 1 .429 1 1v9c0 .554-.446 1-1 1H5c-.554 0-1-.446-1-1V3c0-.571.429-1 1-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/pub-symbolic.svg b/data/icons/pub-symbolic.svg
new file mode 100644
index 0000000..e6ba35c
--- /dev/null
+++ b/data/icons/pub-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M7.262.996a1.982 1.982 0 0 0-1.465.692A1.99 1.99 0 0 0 4.297 1c-1.11 0-2 .89-2 2H5v4.5a.499.499 0 1 0 1 0V3h6.02c-.344-.598-.98-1-1.723-1-.414 0-.8.125-1.121.34A1.982 1.982 0 0 0 7.262.996zM3 4v7.52A2.474 2.474 0 0 0 5.48 14h4.04a2.47 2.47 0 0 0 2.43-2h.257A2.808 2.808 0 0 0 15 9.207V6.793A2.808 2.808 0 0 0 12.207 4H7v3.5C7 8.332 6.332 9 5.5 9S4 8.332 4 7.5V4H3zm9 2h.207a.77.77 0 0 1 .793.793v2.414a.77.77 0 0 1-.793.793H12V6zM1 15v1h14v-1H1z"/></svg> \ No newline at end of file
diff --git a/data/icons/review-symbolic.svg b/data/icons/review-symbolic.svg
new file mode 100644
index 0000000..3c7529b
--- /dev/null
+++ b/data/icons/review-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3436">
+ <path d="m 2.5 0 c -1.382812 0 -2.50390625 1.117188 -2.5 2.5 v 8 c 0 1.386719 1.113281 2.5 2.5 2.5 h 8.375 l 3.125 3 v -3.0625 c 1.164062 -0.230469 2 -1.253906 2 -2.4375 v -8 c 0 -1.386719 -1.113281 -2.5 -2.5 -2.5 z m 0 2 h 11 c 0.277344 0 0.5 0.222656 0.5 0.5 v 8 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -11 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -8 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0"/>
+ <path d="m 4 7 h 6 v 2 h -6 z m 0 0"/>
+ <path d="m 4 4 h 8 v 2 h -8 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/safety-symbolic.svg b/data/icons/safety-symbolic.svg
new file mode 100644
index 0000000..a01e586
--- /dev/null
+++ b/data/icons/safety-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2 1v7c0 2.072 1.498 3.695 2.832 4.889a18.66 18.66 0 0 0 2.66 1.972l.516.305.512-.31s1.32-.8 2.65-2.002C12.5 11.65 14 10.044 14 8V1H2zm2 2h8v.586l-4 4-1.793-1.793-1.414 1.414L8 10.414l4-4V8c0 .92-1 2.312-2.17 3.37-.913.824-1.477 1.154-1.836 1.386-.358-.226-.918-.543-1.828-1.358C5 10.355 4 8.98 4 8V3z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/sign-language-symbolic.svg b/data/icons/sign-language-symbolic.svg
new file mode 100644
index 0000000..f1721ab
--- /dev/null
+++ b/data/icons/sign-language-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M9 7v.5s0 .5.5.5.5-.5.5-.5V2c0-.555.445-1 1-1s1 .445 1 1v9.5c0 .5.5.5.5.5l1.793-1.707a.992.992 0 0 1 .719-.305c1.082.086 1.144 1.27.695 1.719l-3 3C12 15.5 10.949 15.997 10 16H4c-3 0-3-3-3-3V3c0-.555.445-1 1-1s1 .445 1 1v4.5s0 .5.5.5.5-.5.5-.5V7c0-.555.445-1 1-1s1 .445 1 1v.5s0 .5.5.5.5-.5.5-.5V7c0-.555.453-.992 1-1 .586-.012 1 .445 1 1zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/snap-symbolic.svg b/data/icons/snap-symbolic.svg
new file mode 100644
index 0000000..f5f93f3
--- /dev/null
+++ b/data/icons/snap-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3434">
+ <path d="m 1 0.996094 l 7.136719 10.847656 l 4.898437 -3.507812 z m 0 0"/>
+ <path d="m 5.507812 5.328125 c -0.339843 0.058594 -0.625 0.285156 -0.753906 0.597656 l -3.617187 8.652344 c -0.175781 0.414063 -0.050781 0.890625 0.296875 1.167969 c 0.351562 0.28125 0.847656 0.292968 1.210937 0.027344 l 6.929688 -4.984376 c 0.230469 -0.164062 0.382812 -0.421874 0.410156 -0.703124 c 0.03125 -0.285157 -0.058594 -0.566407 -0.25 -0.78125 l -3.316406 -3.664063 c -0.230469 -0.25 -0.574219 -0.371094 -0.910157 -0.3125 z m 0.480469 2.820313 l 1.511719 1.667968 l -3.15625 2.269532 z m 0 0"/>
+ <path d="m 6.042969 2.914062 l 9.957031 6.15625 l -0.039062 -5.066406 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/strong-language-none-symbolic.svg b/data/icons/strong-language-none-symbolic.svg
new file mode 100644
index 0000000..0d62d57
--- /dev/null
+++ b/data/icons/strong-language-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 14 14 1.06-1.06-1.035-1.035a1.5 1.5 0 0 0-1.426-1.426L12.062 11H14V2h-2v8.938l-1-1V9h-.938L9 7.937V7h2V5H9V2H7v3h-.938L5 3.937V2H3.062L1.532.469zM1 5v2h2v2H1v2h2v3h2v-3h2v3h2v-1.879L5.879 9H5v-.879L1.879 5H1z"/></svg> \ No newline at end of file
diff --git a/data/icons/strong-language-symbolic.svg b/data/icons/strong-language-symbolic.svg
new file mode 100644
index 0000000..5b22d2f
--- /dev/null
+++ b/data/icons/strong-language-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M3 2v3H1v2h2v2H1v2h2v3h2v-3h2v3h2v-3h2V9H9V7h2V5H9V2H7v3H5V2H3zm9 0v9h2V2h-2zM5 7h2v2H5V7zm8 5a1.5 1.5 0 0 0-1.5 1.5 1.5 1.5 0 0 0 3 0A1.5 1.5 0 0 0 13 12z"/></svg> \ No newline at end of file
diff --git a/data/icons/system-component-addon.svg b/data/icons/system-component-addon.svg
new file mode 100644
index 0000000..83c1b34
--- /dev/null
+++ b/data/icons/system-component-addon.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="d">
+ <path d="m 40 30 h 56 v 56 h -56 z m 0 0"/>
+ </clipPath>
+ <clipPath id="e">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g clip-path="url(#d)">
+ <g clip-path="url(#e)">
+ <path d="m 62 30 c -3.324219 0 -6 2.675781 -6 6 v 6 h -12 c -2.214844 0 -4 1.785156 -4 4 v 12 h 6 c 3.324219 0 6 2.675781 6 6 s -2.675781 6 -6 6 h -6 v 12 c 0 2.214844 1.785156 4 4 4 h 12 v -6 c 0 -3.324219 2.675781 -6 6 -6 s 6 2.675781 6 6 v 6 h 12 c 2.214844 0 4 -1.785156 4 -4 v -12 h 6 c 3.324219 0 6 -2.675781 6 -6 s -2.675781 -6 -6 -6 h -6 v -12 c 0 -2.214844 -1.785156 -4 -4 -4 h -12 v -6 c 0 -3.324219 -2.675781 -6 -6 -6 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/system-component-application.svg b/data/icons/system-component-application.svg
new file mode 100644
index 0000000..32d3195
--- /dev/null
+++ b/data/icons/system-component-application.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <path d="m 64.90625 30.5625 c -0.9375 0 -1.875 0.046875 -2.789062 0.132812 l -1.726563 8.898438 c -1.421875 0.3125 -2.816406 0.746094 -4.117187 1.328125 l -6.507813 -6.242187 c -1.652344 0.976562 -3.089844 2.183593 -4.515625 3.453124 l 3.851562 8.101563 c -0.945312 1.058594 -1.804687 2.21875 -2.523437 3.453125 l -8.898437 -1.195312 c -0.753907 1.738281 -1.3125 3.554687 -1.726563 5.445312 l 7.835937 4.25 c -0.074218 0.714844 -0.132812 1.390625 -0.132812 2.125 s 0.0625 1.410156 0.132812 2.125 l -7.835937 4.25 c 0.414063 1.890625 0.972656 3.707031 1.726563 5.445312 l 8.898437 -1.195312 c 0.71875 1.230469 1.578125 2.394531 2.523437 3.453125 l -3.851562 8.101563 c 1.425781 1.269531 2.863281 2.476562 4.515625 3.453124 l 6.507813 -6.242187 c 1.300781 0.582031 2.695312 1.015625 4.117187 1.328125 l 1.726563 8.898438 c 0.914062 0.085937 1.851562 0.132812 2.789062 0.132812 s 1.875 -0.046875 2.789062 -0.132812 l 1.726563 -8.898438 c 1.421875 -0.3125 2.816406 -0.746094 4.117187 -1.328125 l 6.507813 6.242187 c 1.652344 -0.976562 3.089844 -2.183593 4.515625 -3.453124 l -3.851562 -8.101563 c 0.945312 -1.058594 1.804687 -2.222656 2.523437 -3.453125 l 8.898437 1.195312 c 0.753907 -1.738281 1.3125 -3.554687 1.726563 -5.445312 l -7.835937 -4.25 c 0.074218 -0.714844 0.132812 -1.390625 0.132812 -2.125 s -0.058594 -1.410156 -0.132812 -2.125 l 7.835937 -4.25 c -0.414063 -1.890625 -0.972656 -3.707031 -1.726563 -5.445312 l -8.898437 1.195312 c -0.71875 -1.234375 -1.578125 -2.394531 -2.523437 -3.453125 l 3.851562 -8.101563 c -1.425781 -1.269531 -2.863281 -2.476562 -4.515625 -3.453124 l -6.507813 6.242187 c -1.300781 -0.582031 -2.695312 -1.015625 -4.117187 -1.328125 l -1.726563 -8.898438 c -0.914062 -0.085937 -1.851562 -0.132812 -2.789062 -0.132812 z m 0 17 c 7.042969 0 12.75 5.707031 12.75 12.75 s -5.707031 12.75 -12.75 12.75 s -12.75 -5.707031 -12.75 -12.75 s 5.707031 -12.75 12.75 -12.75 z m 0 0" fill="#99c1f1"/>
+</svg>
diff --git a/data/icons/system-component-codecs.svg b/data/icons/system-component-codecs.svg
new file mode 100644
index 0000000..87ca2a2
--- /dev/null
+++ b/data/icons/system-component-codecs.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <path d="m 52.1875 42 v 40 h 4 c 0.699219 0.003906 1.390625 -0.15625 2 -0.5 l 28 -16 c 1.242188 -0.6875 1.875 -2.09375 1.875 -3.5 s -0.632812 -2.8125 -1.875 -3.5 l -28 -16 c -0.609375 -0.34375 -1.300781 -0.503906 -2 -0.5 z m 0 0" fill="#99c1f1"/>
+</svg>
diff --git a/data/icons/system-component-driver.svg b/data/icons/system-component-driver.svg
new file mode 100644
index 0000000..957277a
--- /dev/null
+++ b/data/icons/system-component-driver.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="d">
+ <path d="m 18 41 h 57 v 57 h -57 z m 0 0"/>
+ </clipPath>
+ <clipPath id="e">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="f">
+ <path d="m 36 59 h 56 v 56 h -56 z m 0 0"/>
+ </clipPath>
+ <clipPath id="g">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="h">
+ <path d="m 48 47 h 56 v 56 h -56 z m 0 0"/>
+ </clipPath>
+ <clipPath id="i">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="j">
+ <path d="m 17 48 h 68 v 69 h -68 z m 0 0"/>
+ </clipPath>
+ <clipPath id="k">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="l">
+ <path d="m 68 27 h 55 v 56 h -55 z m 0 0"/>
+ </clipPath>
+ <clipPath id="m">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="n">
+ <path d="m 48 28 h 34 v 34 h -34 z m 0 0"/>
+ </clipPath>
+ <clipPath id="o">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="p">
+ <path d="m 45 44 h 21 v 21 h -21 z m 0 0"/>
+ </clipPath>
+ <clipPath id="q">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="r">
+ <path d="m 65 24 h 21 v 21 h -21 z m 0 0"/>
+ </clipPath>
+ <clipPath id="s">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="t">
+ <path d="m 51 24 h 35 v 35 h -35 z m 0 0"/>
+ </clipPath>
+ <clipPath id="u">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="v">
+ <path d="m 64 28 h 15 v 15 h -15 z m 0 0"/>
+ </clipPath>
+ <clipPath id="w">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="x">
+ <path d="m 58 34 h 10 v 9 h -10 z m 0 0"/>
+ </clipPath>
+ <clipPath id="y">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g clip-path="url(#d)">
+ <g clip-path="url(#e)">
+ <path d="m 200.630501 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.861679 -4.157014 -4.157014 c 0 -2.292573 1.861679 -4.154253 4.154252 -4.154253 c 2.295335 0.002763 4.154252 1.86168 4.157015 4.157015 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#f)">
+ <g clip-path="url(#g)">
+ <path d="m 225.556015 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.861679 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154252 c 2.292573 0 4.151491 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#h)">
+ <g clip-path="url(#i)">
+ <path d="m 225.556015 114.1646 c 0 2.292572 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.86168 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154253 c 2.292573 0 4.151491 1.858918 4.154253 4.154253 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#j)">
+ <g clip-path="url(#k)">
+ <path d="m 43.515625 234.34375 l -2.9375 2.9375 v 5.875 l 11.75 11.75 h 5.875 l 2.9375 -2.9375" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(1 0 0 1 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#l)">
+ <g clip-path="url(#m)">
+ <path d="m -80.919532 221.401762 c 0 2.292573 -1.858918 4.151491 -4.154253 4.154253 c -2.292572 0 -4.154252 -1.86168 -4.154252 -4.154253 c 0.002762 -2.295335 1.86168 -4.154252 4.154252 -4.154252 c 2.295335 -0.002762 4.157015 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 -0.707107 0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#n)">
+ <g clip-path="url(#o)">
+ <path d="m 65.546875 29.746094 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l -10.28125 10.28125 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 -4.25 0 -5.875 l 10.28125 -10.28125 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1a5fb4"/>
+ </g>
+ </g>
+ <g clip-path="url(#p)">
+ <g clip-path="url(#q)">
+ <path d="m 50.859375 44.433594 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+ <g clip-path="url(#r)">
+ <g clip-path="url(#s)">
+ <path d="m 65.546875 29.746094 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+ <g clip-path="url(#t)">
+ <g clip-path="url(#u)">
+ <path d="m 69.953125 25.339844 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l -11.75 11.75 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 -4.25 0 -5.875 l 11.75 -11.75 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1c71d8"/>
+ </g>
+ </g>
+ <g clip-path="url(#v)">
+ <g clip-path="url(#w)">
+ <path d="m 67.015625 28.277344 l 11.75 11.75 l -2.9375 2.9375 l -11.75 -11.75 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g clip-path="url(#x)">
+ <g clip-path="url(#y)">
+ <path d="m 61.140625 34.152344 l 5.875 5.875 l -2.9375 2.9375 l -5.875 -5.875 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/system-component-firmware.svg b/data/icons/system-component-firmware.svg
new file mode 100644
index 0000000..957277a
--- /dev/null
+++ b/data/icons/system-component-firmware.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="d">
+ <path d="m 18 41 h 57 v 57 h -57 z m 0 0"/>
+ </clipPath>
+ <clipPath id="e">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="f">
+ <path d="m 36 59 h 56 v 56 h -56 z m 0 0"/>
+ </clipPath>
+ <clipPath id="g">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="h">
+ <path d="m 48 47 h 56 v 56 h -56 z m 0 0"/>
+ </clipPath>
+ <clipPath id="i">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="j">
+ <path d="m 17 48 h 68 v 69 h -68 z m 0 0"/>
+ </clipPath>
+ <clipPath id="k">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="l">
+ <path d="m 68 27 h 55 v 56 h -55 z m 0 0"/>
+ </clipPath>
+ <clipPath id="m">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="n">
+ <path d="m 48 28 h 34 v 34 h -34 z m 0 0"/>
+ </clipPath>
+ <clipPath id="o">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="p">
+ <path d="m 45 44 h 21 v 21 h -21 z m 0 0"/>
+ </clipPath>
+ <clipPath id="q">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="r">
+ <path d="m 65 24 h 21 v 21 h -21 z m 0 0"/>
+ </clipPath>
+ <clipPath id="s">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="t">
+ <path d="m 51 24 h 35 v 35 h -35 z m 0 0"/>
+ </clipPath>
+ <clipPath id="u">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="v">
+ <path d="m 64 28 h 15 v 15 h -15 z m 0 0"/>
+ </clipPath>
+ <clipPath id="w">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <clipPath id="x">
+ <path d="m 58 34 h 10 v 9 h -10 z m 0 0"/>
+ </clipPath>
+ <clipPath id="y">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g clip-path="url(#d)">
+ <g clip-path="url(#e)">
+ <path d="m 200.630501 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.861679 -4.157014 -4.157014 c 0 -2.292573 1.861679 -4.154253 4.154252 -4.154253 c 2.295335 0.002763 4.154252 1.86168 4.157015 4.157015 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#f)">
+ <g clip-path="url(#g)">
+ <path d="m 225.556015 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.861679 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154252 c 2.292573 0 4.151491 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#h)">
+ <g clip-path="url(#i)">
+ <path d="m 225.556015 114.1646 c 0 2.292572 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 -0.002762 -4.154252 -1.86168 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154253 c 2.292573 0 4.151491 1.858918 4.154253 4.154253 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#j)">
+ <g clip-path="url(#k)">
+ <path d="m 43.515625 234.34375 l -2.9375 2.9375 v 5.875 l 11.75 11.75 h 5.875 l 2.9375 -2.9375" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(1 0 0 1 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#l)">
+ <g clip-path="url(#m)">
+ <path d="m -80.919532 221.401762 c 0 2.292573 -1.858918 4.151491 -4.154253 4.154253 c -2.292572 0 -4.154252 -1.86168 -4.154252 -4.154253 c 0.002762 -2.295335 1.86168 -4.154252 4.154252 -4.154252 c 2.295335 -0.002762 4.157015 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(0.707107 -0.707107 0.707107 0.707107 0 -162)"/>
+ </g>
+ </g>
+ <g clip-path="url(#n)">
+ <g clip-path="url(#o)">
+ <path d="m 65.546875 29.746094 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l -10.28125 10.28125 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 -4.25 0 -5.875 l 10.28125 -10.28125 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1a5fb4"/>
+ </g>
+ </g>
+ <g clip-path="url(#p)">
+ <g clip-path="url(#q)">
+ <path d="m 50.859375 44.433594 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+ <g clip-path="url(#r)">
+ <g clip-path="url(#s)">
+ <path d="m 65.546875 29.746094 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+ <g clip-path="url(#t)">
+ <g clip-path="url(#u)">
+ <path d="m 69.953125 25.339844 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l -11.75 11.75 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 -4.25 0 -5.875 l 11.75 -11.75 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1c71d8"/>
+ </g>
+ </g>
+ <g clip-path="url(#v)">
+ <g clip-path="url(#w)">
+ <path d="m 67.015625 28.277344 l 11.75 11.75 l -2.9375 2.9375 l -11.75 -11.75 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g clip-path="url(#x)">
+ <g clip-path="url(#y)">
+ <path d="m 61.140625 34.152344 l 5.875 5.875 l -2.9375 2.9375 l -5.875 -5.875 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/system-component-input-sources.svg b/data/icons/system-component-input-sources.svg
new file mode 100644
index 0000000..071034c
--- /dev/null
+++ b/data/icons/system-component-input-sources.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g fill="#99c1f1">
+ <path d="m 48 82 h 32 v 8 h -32 z m 0 0"/>
+ <path d="m 52 66 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 68 66 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 84 66 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 36 66 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 44 50 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 60 50 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 76 50 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 28 50 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 92 50 h 8 v 8 h -8 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/system-component-language.svg b/data/icons/system-component-language.svg
new file mode 100644
index 0000000..2c28ad7
--- /dev/null
+++ b/data/icons/system-component-language.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g fill="#99c1f1" fill-rule="evenodd">
+ <path d="m 46 34 v 56 h 8 v -56 z m 0 0"/>
+ <path d="m 50 34 c -2.210938 0 -4 1.789062 -4 4 v 24 c 0 2.210938 1.789062 4 4 4 h 13.53125 l 2.890625 5.789062 c 0.679687 1.355469 2.0625 2.210938 3.578125 2.210938 h 20 c 2.210938 0 4 -1.789062 4 -4 v -24 c 0 -2.210938 -1.789062 -4 -4 -4 h -13.523438 l -2.898437 -5.789062 c -0.679687 -1.355469 -2.0625 -2.210938 -3.578125 -2.210938 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/system-component-os-updates.svg b/data/icons/system-component-os-updates.svg
new file mode 100644
index 0000000..18ec3fd
--- /dev/null
+++ b/data/icons/system-component-os-updates.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <g fill="#99c1f1">
+ <path d="m 56 50 h 16 v 32 h -16 z m 0 0"/>
+ <path d="m 64 35.371094 l 22.628906 22.628906 h -45.257812 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/system-component-runtime.svg b/data/icons/system-component-runtime.svg
new file mode 100644
index 0000000..32d3195
--- /dev/null
+++ b/data/icons/system-component-runtime.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" y2="77.241079">
+ <stop offset="0" stop-color="#99c1f1"/>
+ <stop offset="0.0575141" stop-color="#1a5fb4"/>
+ <stop offset="0.388232" stop-color="#1a5fb4"/>
+ <stop offset="0.473021" stop-color="#2b7be0"/>
+ <stop offset="0.618795" stop-color="#154d91"/>
+ <stop offset="0.953538" stop-color="#1a5fb4"/>
+ <stop offset="1" stop-color="#2f7fe1"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+ </clipPath>
+ <clipPath id="c">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0"/>
+ </clipPath>
+ <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 -6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+ <g clip-path="url(#b)">
+ <g clip-path="url(#c)">
+ <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 -11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+ </g>
+ </g>
+ <path d="m 64.90625 30.5625 c -0.9375 0 -1.875 0.046875 -2.789062 0.132812 l -1.726563 8.898438 c -1.421875 0.3125 -2.816406 0.746094 -4.117187 1.328125 l -6.507813 -6.242187 c -1.652344 0.976562 -3.089844 2.183593 -4.515625 3.453124 l 3.851562 8.101563 c -0.945312 1.058594 -1.804687 2.21875 -2.523437 3.453125 l -8.898437 -1.195312 c -0.753907 1.738281 -1.3125 3.554687 -1.726563 5.445312 l 7.835937 4.25 c -0.074218 0.714844 -0.132812 1.390625 -0.132812 2.125 s 0.0625 1.410156 0.132812 2.125 l -7.835937 4.25 c 0.414063 1.890625 0.972656 3.707031 1.726563 5.445312 l 8.898437 -1.195312 c 0.71875 1.230469 1.578125 2.394531 2.523437 3.453125 l -3.851562 8.101563 c 1.425781 1.269531 2.863281 2.476562 4.515625 3.453124 l 6.507813 -6.242187 c 1.300781 0.582031 2.695312 1.015625 4.117187 1.328125 l 1.726563 8.898438 c 0.914062 0.085937 1.851562 0.132812 2.789062 0.132812 s 1.875 -0.046875 2.789062 -0.132812 l 1.726563 -8.898438 c 1.421875 -0.3125 2.816406 -0.746094 4.117187 -1.328125 l 6.507813 6.242187 c 1.652344 -0.976562 3.089844 -2.183593 4.515625 -3.453124 l -3.851562 -8.101563 c 0.945312 -1.058594 1.804687 -2.222656 2.523437 -3.453125 l 8.898437 1.195312 c 0.753907 -1.738281 1.3125 -3.554687 1.726563 -5.445312 l -7.835937 -4.25 c 0.074218 -0.714844 0.132812 -1.390625 0.132812 -2.125 s -0.058594 -1.410156 -0.132812 -2.125 l 7.835937 -4.25 c -0.414063 -1.890625 -0.972656 -3.707031 -1.726563 -5.445312 l -8.898437 1.195312 c -0.71875 -1.234375 -1.578125 -2.394531 -2.523437 -3.453125 l 3.851562 -8.101563 c -1.425781 -1.269531 -2.863281 -2.476562 -4.515625 -3.453124 l -6.507813 6.242187 c -1.300781 -0.582031 -2.695312 -1.015625 -4.117187 -1.328125 l -1.726563 -8.898438 c -0.914062 -0.085937 -1.851562 -0.132812 -2.789062 -0.132812 z m 0 17 c 7.042969 0 12.75 5.707031 12.75 12.75 s -5.707031 12.75 -12.75 12.75 s -12.75 -5.707031 -12.75 -12.75 s 5.707031 -12.75 12.75 -12.75 z m 0 0" fill="#99c1f1"/>
+</svg>
diff --git a/data/icons/test-symbolic.svg b/data/icons/test-symbolic.svg
new file mode 100644
index 0000000..063260d
--- /dev/null
+++ b/data/icons/test-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#222222">
+ <path d="m 8 0 c -4.40625 0 -8 3.59375 -8 8 s 3.59375 8 8 8 s 8 -3.59375 8 -8 s -3.59375 -8 -8 -8 z m 0 1.941406 c 3.359375 0 6.058594 2.699219 6.058594 6.058594 s -2.699219 6.058594 -6.058594 6.058594 s -6.058594 -2.699219 -6.058594 -6.058594 s 2.699219 -6.058594 6.058594 -6.058594 z m 0 0"/>
+ <path d="m 13 8 c 0 2.761719 -2.238281 5 -5 5 v -5 z m 0 0"/>
+ <path d="m 3 8 c 0 -2.761719 2.238281 -5 5 -5 v 5 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/violence-none-symbolic.svg b/data/icons/violence-none-symbolic.svg
new file mode 100644
index 0000000..c25c981
--- /dev/null
+++ b/data/icons/violence-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 6.154 6.155L10 11.062a25.453 25.453 0 0 0 .002-.001l4.469 4.468 1.06-1.06-4.363-4.364a25.453 25.453 0 0 0 1.395-1.293L9.027 5.277 7.686 6.623 1.53.469zm12.754.125a1.504 1.504 0 0 0-1.015.441L9.734 4.57l1.414 1.414 2.536-2.535a1.501 1.501 0 1 0 .601-2.855zM5.562 8.746l-5.019 5.02c.559.554 3.766 1.096 8.219-1.82l-3.2-3.2z"/></svg> \ No newline at end of file
diff --git a/data/icons/violence-symbolic.svg b/data/icons/violence-symbolic.svg
new file mode 100644
index 0000000..2a6d392
--- /dev/null
+++ b/data/icons/violence-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.285.594a1.504 1.504 0 0 0-1.015.441L9.734 4.57l1.414 1.414 2.536-2.535a1.501 1.501 0 1 0 .601-2.855zM9.027 5.277.543 13.766c.707.703 5.656 1.41 12.02-4.954zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/webpage-symbolic.svg b/data/icons/webpage-symbolic.svg
new file mode 100644
index 0000000..8415de5
--- /dev/null
+++ b/data/icons/webpage-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.5 0C3.37 0 0 3.37 0 7.5S3.37 15 7.5 15 15 11.63 15 7.5 11.63 0 7.5 0zm0 2c.183 0 .382.084.617.322.235.239.48.626.69 1.127.373.897.632 2.151.683 3.551H5.51c.05-1.4.31-2.654.683-3.55.21-.502.455-.889.69-1.128C7.118 2.084 7.317 2 7.5 2zm-1.857.318a5.85 5.85 0 0 0-.372.746c-.439 1.054-.71 2.422-.76 3.936H2.024a5.481 5.481 0 0 1 3.62-4.682zm3.714 0A5.481 5.481 0 0 1 12.977 7h-2.489c-.05-1.514-.32-2.882-.76-3.936a5.85 5.85 0 0 0-.37-.746zM2.023 8h2.489c.05 1.514.32 2.882.76 3.936.112.27.235.519.37.746A5.481 5.481 0 0 1 2.024 8zM5.51 8h3.98c-.05 1.4-.31 2.654-.683 3.55-.21.502-.455.889-.69 1.128-.235.238-.434.322-.617.322s-.382-.084-.617-.322c-.235-.239-.48-.626-.69-1.127C5.82 10.654 5.561 9.4 5.51 8zm4.978 0h2.489a5.481 5.481 0 0 1-3.62 4.682 5.85 5.85 0 0 0 .372-.746c.439-1.054.71-2.422.76-3.936z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000..7d0aa6d
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,42 @@
+subdir('metainfo')
+subdir('icons')
+subdir('assets')
+
+cdata = configuration_data()
+cdata.set('bindir', join_paths(get_option('prefix'),
+ get_option('bindir')))
+
+# note: the main .desktop file is in src/
+# this one is for the background service
+# replace @bindir@
+configure_file(
+ input : 'autostart/org.gnome.Software.desktop.in',
+ output : 'org.gnome.Software.desktop',
+ install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'),
+ configuration : cdata
+)
+
+compiled_schemas = gnome.compile_schemas(
+ depend_files: 'org.gnome.software.gschema.xml')
+install_data('org.gnome.software.gschema.xml',
+ install_dir : join_paths(get_option('datadir'), 'glib-2.0', 'schemas'))
+
+if get_option('external_appstream')
+ # replace @libexecdir@
+ conf_data = configuration_data()
+ conf_data.set('libexecdir', join_paths(get_option('prefix'),
+ get_option('libexecdir')))
+ out = configure_file(
+ input : 'org.gnome.software.external-appstream.policy.in.in',
+ output : 'org.gnome.software.external-appstream.policy.in',
+ install: false,
+ configuration : conf_data,
+ )
+ i18n.merge_file(
+ input : out,
+ output : 'org.gnome.software.external-appstream.policy',
+ po_dir: join_paths(meson.project_source_root(), 'po'),
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions'),
+ )
+endif
diff --git a/data/metainfo/meson.build b/data/metainfo/meson.build
new file mode 100644
index 0000000..2d056ff
--- /dev/null
+++ b/data/metainfo/meson.build
@@ -0,0 +1,22 @@
+i18n.merge_file(
+ input: 'org.gnome.Software.metainfo.xml.in',
+ output: 'org.gnome.Software.metainfo.xml',
+ type: 'xml',
+ po_dir: join_paths(meson.project_source_root(), 'po'),
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'metainfo')
+)
+
+if get_option('tests') and appstream.version().version_compare('>=0.15.5')
+ ascli_exe = find_program('appstreamcli')
+ test('gs-validate-metainfo',
+ ascli_exe,
+ args: ['validate',
+ '--pedantic',
+ '--no-net',
+ '--explain',
+ 'org.gnome.Software.metainfo.xml.in'],
+ workdir : meson.current_source_dir(),
+ suite: ['lib'],
+ )
+endif
diff --git a/data/metainfo/org.gnome.Software.metainfo.xml.in b/data/metainfo/org.gnome.Software.metainfo.xml.in
new file mode 100644
index 0000000..a43e442
--- /dev/null
+++ b/data/metainfo/org.gnome.Software.metainfo.xml.in
@@ -0,0 +1,2158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2013-2016 Richard Hughes <richard@hughsie.com> -->
+<component type="desktop-application">
+ <id>org.gnome.Software.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0+</project_license>
+ <name>Software</name>
+ <summary>Install and update apps</summary>
+ <description>
+ <p>
+ Software allows you to find and install new applications and system
+ extensions and remove existing installed applications.
+ </p>
+ <p>
+ Software showcases featured and popular applications with useful
+ descriptions and multiple screenshots per application.
+ Applications can be found either through browsing the list of categories
+ or by searching.
+ It also allows you to update your system using an offline update.
+ </p>
+ </description>
+ <screenshots>
+ <screenshot type="default">
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-overview.png</image>
+ <caption>Overview panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-details.png</image>
+ <caption>Details panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-details2.png</image>
+ <caption>Details panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-installed.png</image>
+ <caption>Installed panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-up-to-date.png</image>
+ <caption>Updates panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-updates.png</image>
+ <caption>Updates panel</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://gitlab.gnome.org/GNOME/gnome-software/raw/HEAD/data/metainfo/ss-updates-details.png</image>
+ <caption>The update details</caption>
+ </screenshot>
+ </screenshots>
+
+ <recommends>
+ <!-- Works on desktops or touchscreen devices -->
+ <control>pointing</control>
+ <control>keyboard</control>
+ <control>touch</control>
+ </recommends>
+
+ <requires>
+ <!-- Adaptive -->
+ <display_length compare="ge">360</display_length>
+ </requires>
+
+ <!--
+ Validate with `appstreamcli validate *.metainfo.xml`
+ -->
+ <releases>
+ <release date="2023-03-03" version="43.5" type="stable">
+ <description>
+ <p>This is a stable release with the following change:</p>
+ <ul>
+ <li>Fix few memory leaks</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2023-02-10" version="43.4" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Stop cancelled search in appstream data early</li>
+ <li>Lookup for appstream-provided icons in more directories</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2023-01-06" version="43.3" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Periodically expire cached app icons</li>
+ <li>Stop notifying about unprepared critical updates</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Abkhazian (Nart Tlisha)</li>
+ <li>Georgian (Ekaterine Papava)</li>
+ <li>Hebrew (Yosef Or Boczko)</li>
+ <li>Interlingue (Olga Smirnova)</li>
+ <li>Occitan (post 1500) (Quentin PAGÈS)</li>
+ <li>Persian (Danial Behzadi)</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-12-02" version="43.2" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix show of updatable app in the details page</li>
+ <li>Fix search for apps providing some feature under rpm-ostree</li>
+ <li>Fix sending of ODRS data when using libsoup3</li>
+ <li>Fix occasional crash when installing apps</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Abkhazian (Nart Tlisha)</li>
+ <li>Belarusian (Vasil Pupkin)</li>
+ <li>Czech (Daniel Rusek)</li>
+ <li>Georgian (Zurab Kargareteli)</li>
+ <li>Greek (Kosmas Martakidis)</li>
+ <li>Hebrew (Yosef Or Boczko)</li>
+ <li>Hungarian (Balázs Meskó)</li>
+ <li>Russian (Aleksandr Melman)</li>
+ <li>Turkish (Sabri Ünal)</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-10-21" version="43.1" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix searches not completing if installing or uninstalling an app at the same time</li>
+ <li>Notify of errors when running a flatpak app whose runtime is missing</li>
+ <li>Fix installing local RPM packages</li>
+ <li>Fix distribution upgrades when package conflicts are present</li>
+ <li>Fix opening web apps from their details page</li>
+ <li>Improve appearance of app ratings if ratings data cannot be downloaded</li>
+ <li>Fix crash when showing offline update errors on startup</li>
+ <li>Highlight priority of firmware updates, making security fixes more obvious</li>
+ <li>Fix installation of pending apps in some situations</li>
+ <li>Fix downloading of rpm-ostree app updates from the Updates page</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Abkhazian (Nart Tlisha)</li>
+ <li>Catalan (Jordi Mas)</li>
+ <li>Chinese (Taiwan) (Cheng-Chia Tseng)</li>
+ <li>Croatian (Goran Vidović)</li>
+ <li>French (Claude Paroz)</li>
+ <li>Friulian (Fabio Tomat)</li>
+ <li>Georgian (Zurab Kargareteli)</li>
+ <li>German (Philipp Kiemle, Jürgen Benvenuti)</li>
+ <li>Icelandic (Sveinn í Felli)</li>
+ <li>Italian (Gianvito Cavasoli)</li>
+ <li>Kazakh (Baurzhan Muftakhidinov)</li>
+ <li>Panjabi (A S Alam)</li>
+ <li>Slovenian (Matej Urbančič)</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-09-16" version="43.0" type="stable">
+ <description>
+ <p>This is a stable release with translation updates:</p>
+ <ul>
+ <li>Bulgarian</li>
+ <li>Catalan</li>
+ <li>Chinese (Taiwan)</li>
+ <li>Czech</li>
+ <li>English (United Kingdom)</li>
+ <li>Galician</li>
+ <li>Georgian</li>
+ <li>German</li>
+ <li>Hebrew</li>
+ <li>Hungarian</li>
+ <li>Icelandic</li>
+ <li>Latvian</li>
+ <li>Lithuanian</li>
+ <li>Nepali</li>
+ <li>Serbian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-09-02" version="43~rc" type="development">
+ <description>
+ <p>This is the third unstable release for GNOME 43.</p>
+ <ul>
+ <li>Supports video as a screenshot</li>
+ <li>Improvements of source picker in the details page</li>
+ <li>Fixes a bug when viewing details of a package file</li>
+ <li>Fixes a bug when reading certain .flatpakref file</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Abkhazian</li>
+ <li>Basque</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Croatian</li>
+ <li>Danish</li>
+ <li>Dutch</li>
+ <li>Finnish</li>
+ <li>Galician</li>
+ <li>Georgian</li>
+ <li>Hebrew</li>
+ <li>Icelandic</li>
+ <li>Indonesian</li>
+ <li>Korean</li>
+ <li>Lithuanian</li>
+ <li>Persian</li>
+ <li>Polish</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Spanish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-08-05" version="43~beta" type="development">
+ <description>
+ <p>This is the second unstable release for GNOME 43.</p>
+ <ul>
+ <li>Various fixes related to changed threading model</li>
+ <li>Various UI parts updated</li>
+ <li>Sources dropdown had been reworked</li>
+ <li>Fixes a rare crash when showing app details</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Abkhazian</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Dutch</li>
+ <li>Georgian</li>
+ <li>Hebrew</li>
+ <li>Indonesian</li>
+ <li>Italian</li>
+ <li>Lithuanian</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Spanish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ <li>Vietnamese</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-06-30" version="43~alpha" type="development">
+ <description>
+ <p>This is the first unstable release for GNOME 43.</p>
+ <ul>
+ <li>Various improvements to notifications</li>
+ <li>Fix several crashes when handling flatpak apps</li>
+ <li>Add ‘Other Apps by Author’ section in the app details page</li>
+ <li>Improve styling of app context lozenges</li>
+ <li>Add ‘Available for Distro’ section to the overview page (if configured by your distribution)</li>
+ <li>Show more details about file system permissions requested by flatpak apps</li>
+ <li>Show more types of URI from app metainfo</li>
+ <li>Fix a few issues when using a dark mode theme</li>
+ <li>Fix some issues with arrows in right-to-left locales</li>
+ <li>Fix language pack installation for certain locales</li>
+ <li>Improve debug output to make user bug reports more useful</li>
+ <li>Add `--uninstall=ID` command line option</li>
+ <li>Allow scrolling screenshots by clicking on next and previous screenshots</li>
+ <li>Add support for webapps</li>
+ <li>Allow swiping back in the shell using touch gestures</li>
+ <li>Improved caching of downloaded metadata</li>
+ <li>Many internal architectural changes to make the code more maintainable</li>
+ <li>
+ The <code>popular-overrides</code> GSettings key has been removed;
+ distribution vendors wishing to mark their apps as popular should
+ see `doc/vendor-customisation.md` for examples of how to do this now
+ </li>
+ <li>
+ The <code>hardcoded_popular</code> Meson option has been renamed to
+ <code>hardcoded_curated</code>.
+ </li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Bulgarian</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Chinese (Taiwan)</li>
+ <li>Croatian</li>
+ <li>Czech</li>
+ <li>Danish</li>
+ <li>Dutch</li>
+ <li>English (United Kingdom)</li>
+ <li>Finnish</li>
+ <li>French</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>Georgian</li>
+ <li>German</li>
+ <li>Hebrew</li>
+ <li>Hungarian</li>
+ <li>Indonesian</li>
+ <li>Lithuanian</li>
+ <li>Nepali</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Polish</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ <li>Vietnamese</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-03-18" version="42.0" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Various fixes related to changed threading model</li>
+ <li>Added several appstream-related fixes</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Bokmål, Norwegian</li>
+ <li>Bulgarian</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Danish</li>
+ <li>Finnish</li>
+ <li>French</li>
+ <li>German</li>
+ <li>Hebrew</li>
+ <li>Hungarian</li>
+ <li>Japanese</li>
+ <li>Kazakh</li>
+ <li>Lithuanian</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Polish</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Slovenian</li>
+ <li>Swedish</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-03-04" version="42~rc" type="development">
+ <description>
+ <p>This is the third unstable release for GNOME 42.</p>
+ <ul>
+ <li>Cancel ongoing update downloads when system power is low</li>
+ <li>Numerous small user interface fixes and tweaks</li>
+ <li>Prioritize full matches in search results</li>
+ <li>Improvements in dark mode</li>
+ <li>Fix disabling flatpak remotes from the ‘Software Repositories’ dialog</li>
+ <li>Threading and performance improvements which should reduce the number of user interface freezes</li>
+ <li>Update some icons</li>
+ <li>Check for updates when moving from a metered to a non-metered network connection</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Croatian</li>
+ <li>Czech</li>
+ <li>Danish</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>Hebrew</li>
+ <li>Indonesian</li>
+ <li>Korean</li>
+ <li>Lithuanian</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Russian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-02-10" version="42~beta" type="development">
+ <description>
+ <p>This is the second unstable release for GNOME 42.</p>
+ <ul>
+ <li>Allow <code>--verbose</code> to be enabled at runtime</li>
+ <li>Condense the rows in the age rating context dialog</li>
+ <li>Update the UI for ratings and reviews of apps</li>
+ <li>Improve the appearance of the category page loading screen</li>
+ <li>Drop the first run dialog</li>
+ <li>Improvements to dark theming</li>
+ <li>Support viewing a specific metainfo file using <code>--show-metainfo</code></li>
+ <li>Several more threading improvements</li>
+ <li>Icon updates</li>
+ <li>Drop the hardcoded-popular plugin in favour of an appstream file</li>
+ <li>The background image for upgrades is now looked for using several
+ well-known (and distribution-specific) names in
+ <code>${DATADIR}/gnome-software/backgrounds</code>,
+ and the previous Fedora-specific default background image is
+ no longer distributed. Similarly, the <code>upgrade-background-uri</code>
+ GSettings key has been removed. Distributions may need to
+ update how they ship background images.
+ See <em>doc/vendor-customisation.md</em>.</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Chinese (China)</li>
+ <li>Galician</li>
+ <li>Hebrew</li>
+ <li>Icelandic</li>
+ <li>Indonesian</li>
+ <li>Japanese</li>
+ <li>Occitan (post 1500)</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Russian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2022-01-07" version="42~alpha" type="development">
+ <description>
+ <p>This is the first unstable release for GNOME 42.</p>
+ <ul>
+ <li>Various UI parts updated</li>
+ <li>Support more markup in the application description</li>
+ <li>Ask about package signature with PackageKit on signing issue</li>
+ <li>Show better System Update progress</li>
+ <li>Remove various cultural sensitivity badges</li>
+ <li>Fix a crash when processing age ratings</li>
+ <li>Reload application details only when not installing/removing the application</li>
+ <li>Do not follow symlinks when calculating disk size usage</li>
+ <li>Fix addons section, which could show addons for different application</li>
+ <li>Fix showing a ‘transaction in progress’ error when using the rpm-ostree plugin</li>
+ <li>Don’t recommend a reboot if firmware updates fail</li>
+ <li>Fix flathub repo being considered present on Fedora 35 with filtered flathub</li>
+ <li>Allow searching for extensions</li>
+ <li>Fix translation of main button on updates page</li>
+ <li>Fix codec installation process</li>
+ <li>Add new GNOME Circle apps to the featured carousel</li>
+ <li>Improve metadata support for snaps</li>
+ <li>Fix update checks being missed across suspend/hibernation</li>
+ <li>Ensure application lists are updated when repositories are enabled/installed or disabled/removed</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Belarusian</li>
+ <li>Bulgarian</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Croatian</li>
+ <li>Dutch</li>
+ <li>English (United Kingdom)</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>German</li>
+ <li>Hebrew</li>
+ <li>Icelandic</li>
+ <li>Indonesian</li>
+ <li>Latvian</li>
+ <li>Lithuanian</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Slovak</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ <li>Vietnamese</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-09-17" version="41.0" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Instead of showing all package-based apps as "potentially unsafe", only use that language for 3rd party ones</li>
+ <li>Fix a bug where the "Show more" button on an app details page would flicker when the window is resized</li>
+ <li>Fix a bug where Software sometimes shows an Uninstall button after uninstalling something</li>
+ <li>Add GNOME Circle apps to the featured carousel</li>
+ <li>Fix a bug where Software would sometimes fail to execute an install/remove operation for PackageKit software rather than showing a PolicyKit password prompt</li>
+ <li>Fix a bug where Software would fail to upgrade the distribution via PackageKit</li>
+ <li>Fix the hiding of rows on the Updates tab after they have been updated</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Croatian</li>
+ <li>Czech</li>
+ <li>Danish</li>
+ <li>Dutch</li>
+ <li>Finnish</li>
+ <li>French</li>
+ <li>Galician</li>
+ <li>German</li>
+ <li>Hungarian</li>
+ <li>Indonesian</li>
+ <li>Korean</li>
+ <li>Lithuanian</li>
+ <li>Occitan (post 1500)</li>
+ <li>Polish</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Romanian</li>
+ <li>Russian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-09-07" version="41~rc" type="development">
+ <description>
+ <p>This is the third unstable release for GNOME 41.</p>
+ <ul>
+ <li>Tweaks to the context tiles and dialogs</li>
+ <li>Fixes to the details page for non-desktop apps</li>
+ <li>Re-add support for the add-ons categories</li>
+ <li>Sort new and updated apps by release date on the category page</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Chinese (Taiwan)</li>
+ <li>Croatian</li>
+ <li>English (United Kingdom)</li>
+ <li>Finnish</li>
+ <li>Galician</li>
+ <li>Indonesian</li>
+ <li>Kazakh</li>
+ <li>Korean</li>
+ <li>Lithuanian</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-08-13" version="41~beta" type="development">
+ <description>
+ <p>This is the second unstable release for GNOME 41.</p>
+ <ul>
+ <li>Many parts of the user interface reworked</li>
+ <li>Fix when the 'Launch' button is shown after an application install</li>
+ <li>Fix appstream:// URL handling</li>
+ <li>Fix application freeze on Flatpak application install/remove/update</li>
+ <li>Disable automatic update downloads when in power saver mode</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Belarusian</li>
+ <li>Bulgarian</li>
+ <li>Catalan</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>German</li>
+ <li>Greek, Modern (1453-)</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Slovenian</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-07-20" version="41~alpha" type="development">
+ <description>
+ <p>This is the first unstable release for GNOME 41.</p>
+ <ul>
+ <li>Many parts of the user interface reworked</li>
+ <li>Improve error reporting from flatpak when low on disk space</li>
+ <li>Fix issues with updating the UI when uninstalling apps with add-ons</li>
+ <li>Don’t keep rpm-ostreed alive forever</li>
+ <li>Prevent polkit checks showing up for background operations</li>
+ <li>Disallow submitting reviews for an app you haven’t installed</li>
+ <li>Show download size in the Updates page</li>
+ <li>Notify when restart is needed when uninstalling an app</li>
+ <li>Fix some issues with searches not running</li>
+ <li>Allow non-integer average star ratings for apps</li>
+ <li>Reduce number of categories in the UI</li>
+ <li>Improve ‘pending updates’ notifications</li>
+ <li>Refine presentation of download and installed size on details page</li>
+ <li>Remove left over gnome-online-account dependencies</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Belarusian</li>
+ <li>Bokmål, Norwegian</li>
+ <li>Catalan</li>
+ <li>Chinese (China)</li>
+ <li>Chinese (Taiwan)</li>
+ <li>Czech</li>
+ <li>Dutch</li>
+ <li>English (United Kingdom)</li>
+ <li>Finnish</li>
+ <li>Friulian</li>
+ <li>German</li>
+ <li>Greek, Modern (1453-)</li>
+ <li>Hebrew</li>
+ <li>Italian</li>
+ <li>Lithuanian</li>
+ <li>Nepali</li>
+ <li>Occitan (post 1500)</li>
+ <li>Persian</li>
+ <li>Polish</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Romanian</li>
+ <li>Russian</li>
+ <li>Serbian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-03-19" version="40" type="stable">
+ <description>
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix handling of invalid or incomplete application icons</li>
+ <li>Fix the plugin documentation to reflect reality</li>
+ <li>Fix the Snap plugin to actually load icons</li>
+ <li>Set download size to 0 after the package is downloaded</li>
+ </ul>
+ <p>Translation updates:</p>
+ <ul>
+ <li>British English</li>
+ <li>Danish</li>
+ <li>Greek</li>
+ <li>Italian</li>
+ <li>Norwegian Bokmål</li>
+ <li>Polish</li>
+ <li>Punjabi</li>
+ <li>Serbian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-03-12" version="40~rc" type="development">
+ <description>
+ <p>This is an unstable release with the following changes:</p>
+ <ul>
+ <li>Implement new featured apps carousel.</li>
+ <li>List of Flatpak repositories is updated when changed using the Flatpak command line tool.</li>
+ <li>The loading page now shows the full color icon instead of the symbolic one.</li>
+ <li>Show release date in version history for releases that use the 'date' attribute.</li>
+ <li>Improved icon handling, including with hiDPI screens.</li>
+ <li>Fixed a bug in remembering when update notifications were shown.</li>
+ <li>Build as a dynamic rather than a static library, and rearrange installation paths.</li>
+ </ul>
+ <p>Translation updates:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Catalan</li>
+ <li>Croatian</li>
+ <li>Czech</li>
+ <li>Dutch</li>
+ <li>English (United Kingdom)</li>
+ <li>Finnish</li>
+ <li>French</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>German</li>
+ <li>Hungarian</li>
+ <li>Indonesian</li>
+ <li>Kazakh</li>
+ <li>Korean</li>
+ <li>Lithuanian</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Romanian</li>
+ <li>Serbian</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-02-16" version="40~beta" type="development">
+ <description>
+ <p>This is an unstable release with the following changes:</p>
+ <ul>
+ <li>GNOME Software now uses libappstream instead of libappstream-glib to work with appstream data which provides information about apps and other components.</li>
+ <li>App details pages show version history information when it's available.</li>
+ <li>The loading page now shows the full color icon instead of the symbolic one.</li>
+ <li>UI elements for displaying app add-ons have been tweaked to more closely match the designs.</li>
+ <li>Installed icons and the badge showing the number of updates available were changed back to blue from green.</li>
+ <li>The dropdown showing the available sources of an application includes the packaging format (e.g. Flatpak vs RPM).</li>
+ <li>A bug was fixed that prevented installation of .flatpakref files</li>
+ </ul>
+ <p>Translation updates:</p>
+ <ul>
+ <li>Catalan</li>
+ <li>Czech</li>
+ <li>Galician</li>
+ <li>Indonesian</li>
+ <li>Panjabi</li>
+ <li>Portuguese</li>
+ <li>Slovenian</li>
+ <li>Spanish</li>
+ <li>Swedish</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2021-01-27" version="40~alpha" type="development">
+ <description>
+ <p>This is the first unstable release for GNOME 40.</p>
+ <ul>
+ <li>Small updates to how app descriptions and addons are presented on the details page</li>
+ <li>Fix handling of pending app installations when going online</li>
+ <li>Better support for dark themes (particularly Adwaita-Dark)</li>
+ <li>Improvements to how app screenshots are loaded and presented</li>
+ <li>Hide ‘Launch’ button if an application (for example, Wine) cannot be launched</li>
+ <li>Make the UI clearer when loading information from flatpakref files</li>
+ <li>Don’t update app metadata on start when download-updates is disabled</li>
+ <li>Fix opening the updates list when clicking on an updates notification</li>
+ <li>Fix state updates when installing flatpak apps or repos which are already installed</li>
+ <li>Add Ctrl+Q as a keyboard shortcut for closing the window</li>
+ <li>Rework timing and content of software update notifications</li>
+ <li>Prevent uninstalled local apps from appearing in the installed apps list</li>
+ <li>Support installation/uninstallation of addons for flatpak apps</li>
+ <li>Improve presentation of age ratings for apps</li>
+ <li>Fix a crash in the updates page</li>
+ <li>Fix presentation of app permissions for fully sandboxed flatpak apps</li>
+ <li>Fix deadlock on rpm-ostree systems</li>
+ <li>Fix presentation of version number changes in right-to-left locales</li>
+ <li>Error handling improvements for fwupd</li>
+ <li>Performance improvements for ODRS on startup</li>
+ <li>Improve presentation of firmware warning messages</li>
+ <li>XML parsing performance improvements</li>
+ <li>Automatically remove end-of-life flatpak runtimes</li>
+ <li>Support updating flatpaks to their new name when they are renamed</li>
+ <li>Update the GNOME Software icon</li>
+ <li>Support more search results in the snap store</li>
+ <li>Drop libgnome-desktop-3 dependency in favour of gsettings-desktop-schemas</li>
+ </ul>
+ <p>This release also updates translations:</p>
+ <ul>
+ <li>Basque</li>
+ <li>Bokmål, Norwegian</li>
+ <li>Catalan</li>
+ <li>Chinese (Taiwan)</li>
+ <li>Czech</li>
+ <li>Friulian</li>
+ <li>Galician</li>
+ <li>German</li>
+ <li>Greek, Modern (1453-)</li>
+ <li>Hebrew</li>
+ <li>Indonesian</li>
+ <li>Italian</li>
+ <li>Kabyle</li>
+ <li>Kazakh</li>
+ <li>Latvian</li>
+ <li>Lithuanian</li>
+ <li>Persian</li>
+ <li>Portuguese</li>
+ <li>Portuguese (Brazil)</li>
+ <li>Romanian</li>
+ <li>Slovak</li>
+ <li>Spanish</li>
+ <li>Turkish</li>
+ <li>Ukrainian</li>
+ <li>Vietnamese</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2020-09-01" version="3.37.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable stable release with the following changes:</p>
+ <ul>
+ <li>Add sysprof support for profiling jobs</li>
+ <li>Add webflow and basic auth support to flatpak plugin</li>
+ <li>Coalesce refresh operations where possible</li>
+ <li>Correctly mark layered rpm-ostree local packages as removable</li>
+ <li>Fix flatpak bundle installation</li>
+ <li>Handle invalid snap auth data</li>
+ <li>Improve flatpak progress reporting for transactions</li>
+ <li>Improve the heuristic for detecting old-style AppStream override files</li>
+ <li>Many performance improvements in many areas of the code</li>
+ <li>Only delete the firmware archive if we downloaded it to the cache</li>
+ <li>Show a pulsing progress bar if progress is unknown</li>
+ <li>Support loading appstream files from custom install prefix</li>
+ <li>Use the runtime fwupd version for the user agent</li>
+ </ul>
+ <p>This release also updates existing translations.</p>
+ </description>
+ </release>
+ <release date="2020-03-11" version="3.36.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.36.</p>
+ </description>
+ </release>
+ <release date="2020-03-04" version="3.35.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable stable release with the following changes:</p>
+ <ul>
+ <li>Fix crash when viewing application details</li>
+ <li>Fix “thrice daily” check running every 3 days</li>
+ <li>Improve the appearance of the front page banners</li>
+ <li>Show the correct upgrade banner contents when a reboot is requried</li>
+ </ul>
+ <p>This release also updates existing translations.</p>
+ </description>
+ </release>
+ <release date="2020-02-19" version="3.35.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable stable release with the following changes:</p>
+ <ul>
+ <li>Add an info bar about automatic updates</li>
+ <li>Avoid rpm-ostree downgrade error when doing distro upgrade</li>
+ <li>Click on stars to open review dialog in the details view</li>
+ <li>Fix loading of icons from AppStream YAML</li>
+ <li>Fix weird font sizes in the batter</li>
+ <li>Hide any in-app notifications when closing the main window</li>
+ <li>Integrate better with snapd</li>
+ <li>Only ignore flatpak estimated progress if >10%</li>
+ <li>Remove color stripes on categories in the Explore page</li>
+ <li>Remove support for Shell extensions</li>
+ <li>Remove webapp support</li>
+ <li>Reset star rating when loading an unrated app</li>
+ <li>Sort applications using locale based algorithms</li>
+ <li>Stop snaps from being automatically updated</li>
+ </ul>
+ <p>This release also adds and updates existing translations.</p>
+ </description>
+ </release>
+ <release date="2019-11-25" version="3.35.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable stable release with the following changes:</p>
+ <ul>
+ <li>Add missing OARS content rating descriptions</li>
+ <li>Add new plugin for restricting access to apps</li>
+ <li>Avoid a UI crash when switching modes</li>
+ <li>Build libmalcontent dependency on Fedora CI</li>
+ <li>Correctly distinguish empty content ratings from missing ones</li>
+ <li>Correctly set the application state if autoupdate is in progress</li>
+ <li>Do not show a crazy error when installing packages</li>
+ <li>Do not show non-applications in the installed panel</li>
+ <li>Download Flatpak updates in the correct installation</li>
+ <li>Expose snap channels as app alternates</li>
+ <li>Fix a crash on 32-bit systems</li>
+ <li>Fix langpacks autoinstall on Fedora SilverBlue</li>
+ <li>Fix manual detach when updating removable device firmware</li>
+ <li>Fix third party repo enabling not working</li>
+ <li>Hide add/remove shortcut buttons for parentally filtered apps</li>
+ <li>Improve some front page banners</li>
+ <li>Invalidate caches when adding or removing remotes</li>
+ <li>Make flatpak more thread-safe to fix some crashes</li>
+ <li>Match the exact ID when refining a wildcard</li>
+ <li>Only set the app row's buttons as destructive when they remove an app</li>
+ <li>Remove hardcoded-featured plugin</li>
+ <li>Remove the app folder functionality as this is now built-in to the shell</li>
+ <li>Remove the banner editor as this is now an app on it's own</li>
+ <li>Rework age ratings handling to avoid hard-coded list</li>
+ <li>Set the shell extension origin correctly in all cases</li>
+ <li>Show the channel for snaps</li>
+ <li>Speed up the flatpak plugin in some situations</li>
+ <li>Use plugin API to launch apps from install notification.</li>
+ </ul>
+ <p>This release also adds and updates existing translations.</p>
+ </description>
+ </release>
+ <release date="2019-09-09" version="3.34.0" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Add a link to the privacy policy in the review dialog</li>
+ <li>Add and improve many overview banners</li>
+ <li>Add support for download scheduling using Mogwai</li>
+ <li>Allow installing locale data automatically</li>
+ <li>Allow snaps to be shown by AppStream ID</li>
+ <li>Don't apply drop shadow on stock symbolic icons</li>
+ <li>Don't install queued apps when the network changes and is metered</li>
+ <li>Fix the 'localised in my language' kudo</li>
+ <li>Hide addons that are not available in repos</li>
+ <li>Localize ESRB content rating strings</li>
+ <li>Never show the installation progress bar going backwards</li>
+ <li>Notify the user when an application can escape the sandbox</li>
+ <li>Refactor screenshots and hide those unavailable when offline</li>
+ <li>Select the rating systems selected based by territory</li>
+ <li>Use smaller default size for main window when required</li>
+ </ul>
+ <p>This release also adds and updates existing translations.</p>
+ </description>
+ </release>
+ <release date="2019-07-11" version="3.32.4" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix an issue that led to some packages with multiple appdata files not correctly showing up on the updates page</li>
+ <li>Fix various problems with flatpak branch handling that were causing issues with freedesktop.org runtime updates</li>
+ <li>Fix flatpak update versions to correctly show up</li>
+ <li>Various other minor bug fixes</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2019-05-24" version="3.32.3" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Add missing XbSilo locking, hopefully fixing a large number of reported crashes</li>
+ <li>Fix a regression that caused the fonts category to go missing</li>
+ <li>Show a placeholder on the details page when we don't have the actual icon</li>
+ <li>Plug a large memory leak</li>
+ <li>Use nicer arrows for version numbers on the updates page</li>
+ <li>Fix an issue that led to screenshots not being correctly scaled on hidpi</li>
+ <li>flatpak: Fix several double-uses of GErrors</li>
+ <li>flatpak: Handle failure of a libflatpak function updating permissions</li>
+ <li>rpm-ostree: Implement what-provides decompose</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2019-05-07" version="3.32.2" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Avoid showing a review more than once</li>
+ <li>Correctly update progress bar when downloading packagekit distro upgrades</li>
+ <li>Fix a crash when closing the updates dialog before the content has loaded</li>
+ <li>Fix CTRL+F not working right in certains conditions</li>
+ <li>Set 022 umask to make sure flatpak system helper process can read the files we've written</li>
+ <li>rpm-ostree: Implement getting the repo list, and enabling and disabling repos</li>
+ <li>rpm-ostree: Implement provides search</li>
+ <li>rpm-ostree: Make layered apps not discoverable in the UI</li>
+ <li>Various other minor bug fixes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2019-04-15" version="3.32.1" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Add drop shadows to app icons</li>
+ <li>Various fixes to initial loading screen</li>
+ <li>Show a generic icon instead of empty space if we failed to load the app icon</li>
+ <li>Update featured banners for Maps and Blender</li>
+ <li>Update featured app IDs</li>
+ <li>Fix a crash due to missing locking</li>
+ <li>Fix missing back button under certain conditions</li>
+ <li>Fix loading AppSteam data from .yml.gz files</li>
+ <li>Fix an issue that caused flatpak repo to not be correctly shown when it matched an existing packagekit repo name</li>
+ <li>Hide the fwupd Vendor repo in the repos dialog</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2019-03-11" version="3.32.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.32. Notable changes compared to 3.30 include:</p>
+ <ul>
+ <li>Appstream parsing is completely rewritten and now uses the new libxmlb library, instead of appstream-glib</li>
+ <li>Improved handling for apps that are available from multiple sources, e.g. as a flatpak from Flathub, as a flatpak from Fedora, and as an RPM package</li>
+ <li>New source selection drop down on the details pages</li>
+ <li>Flatpak apps now list the permissions they need on the details pages, and also show new permissions when updating</li>
+ <li>The flatpak backend received a large number of bug fixes</li>
+ <li>The rpm-ostree backend has grown many new features and bug fixes, including support for installing layered packages and doing distro upgrades</li>
+ <li>Numerous fixes for error reporting, including making error messages more useful and avoiding showing network errors from background operations</li>
+ <li>The items in the app menu were all moved to the window menu</li>
+ <li>New redesigned icon</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2019-03-05" version="3.31.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.31 development series, marking the end of the development cycle. Next release will be 3.32.0!</p>
+ <ul>
+ <li>Add two missing description strings for flatpak permissions</li>
+ <li>Only show permissions for flatpak apps and not for e.g. fonts</li>
+ <li>Fix flatpak permissions to correctly show up for available apps</li>
+ <li>Hide various details page items that don't make sense when showing .flatpakrepo files</li>
+ <li>Fix an issue that caused descriptions to sometimes not get correctly loaded</li>
+ <li>Sort the items in the Source drop down</li>
+ <li>Don't show error notifications for background download and refresh errors</li>
+ <li>Fix an issue that could cause an explosion of "A restart is required" notifications</li>
+ <li>Various flatpak plugin fixes to make it correctly match the data when multiple flatpak repos are available</li>
+ <li>Fix the rpm-ostree plugin to correctly convert remote dbus errors</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2019-02-24" version="3.31.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.31 development series, with the following improvements:</p>
+ <ul>
+ <li>Fix showing the installed check mark on tiles</li>
+ <li>Fix crashes in the packagekit plugin due to missing locking</li>
+ <li>Add back support for appstream data in /var/{cache,lib}/app-info directories that accidentally got left out with the libxmlb rewrite</li>
+ <li>Update the featured banner for gnome-chess</li>
+ <li>Fix the details page alignment when only one screenshot is shown</li>
+ <li>Move the Update button to the right hand side on the details page</li>
+ <li>Fix enabling repos when installing codecs through the extras page</li>
+ <li>Remove the Sundry folder and sync the apps in the Utilities folder with gnome-menus 3.31.90</li>
+ <li>Improve various content rating texts</li>
+ <li>Drop workarounds for locales with codesets</li>
+ <li>Use the currently selected icon theme for stock icons</li>
+ <li>Don't hide compulsory apps in the category views</li>
+ <li>Use the SPDX-License-Identifier in all source files</li>
+ <li>Remove various useless error prefixes, making flatpak and packagekit error messages shorter and easier to read</li>
+ <li>flatpak: Show the installation type (user, system) in the Source dropdown</li>
+ <li>flatpak: Let apps control the name suffix/prefix they have and don't force (Nightly) suffix for everything on the master branch</li>
+ <li>flatpak: Various fixes for matching flatpaks to appstream entries</li>
+ <li>flatpak: Distinguish between the same app coming from multiple remotes</li>
+ <li>rpm-ostree: Correctly resolve installed appdata files to package names</li>
+ <li>rpm-ostree: Hook up percentage progress for install and remove</li>
+ <li>rpm-ostree: Implement layered package install</li>
+ <li>rpm-ostree: Implement locally downloaded rpm install</li>
+ <li>rpm-ostree: Show the source of the packages when installing layered packages</li>
+ <li>rpm-ostree: Various fixes making things more robust</li>
+ <li>snap: Use new media API</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2019-01-16" version="3.31.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.31 development series, with the following improvements:</p>
+ <ul>
+ <li>Show permissions for installed flatpaks, and new permissions for updates</li>
+ <li>Use libxmlb to parse AppStream XML, making gnome-software start up faster and use less memory</li>
+ <li>Update the app icon</li>
+ <li>Update categories for ESRA rating system</li>
+ <li>Improve various error messages to have more details</li>
+ <li>Fix an issue that caused incorrect version numbers to be shown for installed flatpaks</li>
+ <li>Fix various thread safety related crashes</li>
+ <li>Fix row unrevealing to not leave behind 2 pixels on the updates page</li>
+ <li>Make the refresh button to actually refresh packagekit cache</li>
+ <li>Fix various issues that could lead to cache refresh getting stuck</li>
+ <li>Show updates available notifications even when automatic updates are disabled</li>
+ <li>Fix counting apps in the updates applied notification</li>
+ <li>Improve packagekit update loading code, hopefully making it more robust</li>
+ <li>Fix an issue that could lead to the packagekit plugin activating on rpm-ostree based systems</li>
+ <li>Switch flatpak updates to use a single transaction, which lets us share more code (and bugs) with the command line flatpak utility</li>
+ <li>Fix various issues with transitioning from the "Download" state to "Restart &amp; Update"</li>
+ <li>Don't error out from update downloads if the ODRS server is unavailable</li>
+ <li>Fix old updates accumulating in the OS Updates item</li>
+ <li>Various flatpakref installation fixes</li>
+ <li>Fix opening the details page when clicking on "Show Details" in GNOME Shell</li>
+ <li>Fix opening shell extensions details from GNOME Tweaks</li>
+ <li>Various fixes for initial loading state</li>
+ <li>Add a separate "Download" step for packagekit offline updates, so that "Restart &amp; Update" is instant</li>
+ <li>Fix a version comparison issue that led to package updates sometimes showing as downgrades in the OS Updates section (this needs latest appstream-glib)</li>
+ <li>Show the refresh button when the updates page is in the failed state</li>
+ <li>Notify about offline updates only after they are fully downloaded</li>
+ <li>Fix a memory corruption issue on 32-bit arches that made gnome-software very crashy</li>
+ <li>Fix an issue with stuck back button on the details page after closing and reopening gnome-software</li>
+ <li>Make distro upgrades to Fedora N+2 release show up correctly</li>
+ <li>Various flatpak plugin fixes</li>
+ <li>Allow opening CAB files that include more than one update</li>
+ <li>Fix critical warnings when quickly switching between category pages</li>
+ <li>Small memory leak fixes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-10-09" version="3.31.1" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.31 development series, with the following improvements:</p>
+ <ul>
+ <li>Icon redesign</li>
+ <li>Switch to using window menus instead of app menu</li>
+ <li>Add a source selection drop down to details pages</li>
+ <li>Move the search button to the left side in the header bar</li>
+ <li>Various other minor UI tweaks</li>
+ <li>GtkBuilder UI file changes to pave the way for an eventual GTK4 port (please file issues for any UI layout regressions if you notice any!)</li>
+ <li>Various internal plugin loader fixes and cleanups</li>
+ <li>Remove the steam plugin</li>
+ <li>Simplify the details page loading</li>
+ <li>Fix an issue that caused icons to not get loaded for locally installed flatpaks</li>
+ <li>Update Fedora distro upgrades text</li>
+ <li>Avoid a critical warning in the fwupd plugin when the device vendor is not set</li>
+ <li>Show verified developers for snaps</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-10-05" version="3.30.2" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Localize the polkit policy file</li>
+ <li>Display ongoing app-installation at top of the list</li>
+ <li>Update apps in display order</li>
+ <li>Fix autoupdates triggering in a feedback loop</li>
+ <li>Tweak the prefs dialog layout</li>
+ <li>Various fixes to the flatpak plugin, making its state keeping more robust</li>
+ <li>Fix flatpak errors to show up instead of a generic "Aborted" error</li>
+ <li>Avoid triggering reboots for online updatable apps (flatpak)</li>
+ <li>Make rpm-ostree updates work again</li>
+ <li>Fix an issue that caused duplicate lines in 'OS Updates' on rpm-ostree based systems</li>
+ <li>Compiler warning fixes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-09-25" version="3.30.1" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix an issue that caused duplicate lines in 'OS Updates'</li>
+ <li>Filter the application restart notification to actual desktop apps</li>
+ <li>Fix an issue that caused automatic updates to fail during download phase</li>
+ <li>Avoid showing duplicates in the featured apps when an app is available as both flatpak and a package</li>
+ <li>Fix an issue that caused gnome-software to use 100% of CPU when doing automatic updates</li>
+ <li>Lower IO priority for gnome-software so that other apps stay responsive during flatpak installs</li>
+ <li>Various fixes and wording changes to automatic updates notifications</li>
+ <li>Only show "Examine Disk" button when baobab is available</li>
+ <li>Leak and correctness fixes in the snap plugin</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-09-04" version="3.30.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.30.</p>
+ </description>
+ </release>
+ <release date="2018-08-28" version="3.29.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>Do not go 'back' to a previous application details panel</li>
+ <li>Don't crash if when getting the fwupd locked status</li>
+ <li>Download updates automatically when required</li>
+ <li>Fix dark theme support</li>
+ <li>Hide screenshot and support widgets when no screenshots</li>
+ <li>Ignore non-interactive generic errors</li>
+ <li>Implement distro upgrade downloading when using rpm-ostree</li>
+ <li>Only update the update check timestamp when it succeeds</li>
+ <li>Open the WiFi panel when clicking the Network Settings button</li>
+ <li>Rotate featured apps on the overview page</li>
+ <li>Simplify the updates panel</li>
+ <li>Use FlatpakTransaction to install, remove and update</li>
+ <li>Use new display name for the Snap publisher</li>
+ <li>Use the full name for the ESRB ratings descripion</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-03-05" version="3.29.1" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>Show a better notification when a local file or URI is not supported</li>
+ <li>snap: Use ODRS for reviews</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-05-09" version="3.28.2" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Add a warning when enabling the LVFS remote</li>
+ <li>Show a notification when failing to open an url or a local file</li>
+ <li>Fix multiple flatpak refreshes with new libflatpak</li>
+ <li>Build fixes for FreeBSD</li>
+ <li>Icon loading fixes for snap</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-04-09" version="3.28.1" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix a regression with opening results from gnome-shell search</li>
+ <li>Show "Source: " tag in gnome-shell search when we have multiple matches</li>
+ <li>Improve unknown license tag color scheme on details page</li>
+ <li>Don't show installed icon on app tiles while still installing</li>
+ <li>Fix empty items appearing under OS Updates</li>
+ <li>Fix a regression that caused duplicate results in codec search</li>
+ <li>Fix an issue with passing username/password to packagekit proxy</li>
+ <li>Avoid crashing during first run with no network access</li>
+ <li>A number of rpm-ostree fixes, making it possible to trigger offline updates</li>
+ <li>Stop searching multiple times on search page</li>
+ <li>Update Fedora third party repositories "Find out more..." link</li>
+ <li>Fix an issue with in-app notifications failing with invalid markup errors</li>
+ <li>Improve purchase failure handling for the snap store</li>
+ <li>Fix a possible crash in snap plugin when adding screenshots</li>
+ <li>Various other crash and correctness fixes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-03-12" version="3.28.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.28, with the following improvements:</p>
+ <ul>
+ <li>Fix the build on NixOS</li>
+ <li>Fix purchasing not working after authentication</li>
+ <li>Revert a commit that led to flatpak updates failing without any feedback</li>
+ <li>Make front page featured tile corners round to match other tiles</li>
+ <li>Fix in-app notification close button alignment</li>
+ <li>Several fixes to make error notifications more useful</li>
+ <li>snap: Fix invalid metadata after cancelled refine</li>
+ <li>snap: Launch command line snaps with 'snap run'</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-03-05" version="3.27.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, marking the end of the development cycle. Next release will be 3.28.0!</p>
+ <ul>
+ <li>Removal of global plugin cache, simplifying gnome-software internals</li>
+ <li>Software Repositories dialog got another batch of improvements and UI changes</li>
+ <li>GNOME Shell Extensions repository and fwupd repositories are now shown in the Software Repositories dialog</li>
+ <li>Shell extensions handling through PackageKit was improved, fixing a long standing bug where we were unable to remove shell extension packages</li>
+ <li>Category page rewrite that landed earlier this cycle went through UI review and got a number of fixes</li>
+ <li>Package version comparison in the updates dialog was fixed and should no longer incorrectly show updates as downgrades</li>
+ <li>Distro upgrade notifications are now rate limited to once per week</li>
+ <li>Install buttons in codec install view that got lost in the 3.22 cycle are now back</li>
+ <li>Various paper cuts with distro upgrades were fixed</li>
+ <li>Various fixes to installing apps from yum repos that have enabled=0 enabled_metadata=1</li>
+ <li>Various other correctness and warning fixes</li>
+ <li>Distros: Minimum supported fwupd version is now 1.0.3</li>
+ <li>Distros: We've released PackageKit 1.1.9 that has string changes to match gnome-software 3.28</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-02-14" version="3.27.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>The Software Sources dialog was renamed to Software Repositories and rewritten</li>
+ <li>Fedora Workstation third party repository handling was rewritten and should be more robust</li>
+ <li>Improved handling of metered network connections, making sure we cancel any downloads when changing to a metered connection</li>
+ <li>Limit the number of parallel operations depending on the installed CPU</li>
+ <li>Improved handling of pending installs when there's no network connection</li>
+ <li>Unused ostree and rpm plugins were dropped</li>
+ <li>Switch from GtkSpell to gspell</li>
+ <li>Improve alignment on the updates page</li>
+ <li>Do not show missing screenshot error for fonts that have screenshots</li>
+ <li>Fix various issues on Ubuntu when purchasing apps</li>
+ <li>Fix an issue that led to duplicate categories appearing on the overview page</li>
+ <li>Various memory leak and correctness fixes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2018-01-08" version="3.27.4" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>Add missing locking to gs_plugin_cache_remove(), fixing a possible crash</li>
+ <li>Fix various memory leaks spotted by valgrind</li>
+ <li>Fix a possible crash triggered by the fwupd plugin</li>
+ <li>Do not emit critical warnings when reviewing OS Updates</li>
+ <li>fwupd: Use the custom user-agent when downloading firmware</li>
+ <li>overview page: Fix a crash when we have no featured apps</li>
+ <li>packagekit: Implement repository enabling</li>
+ <li>Fix hover CSS for "unknown" and "nonfree" license buttons</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-11-13" version="3.27.3" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>Fix crashes in the repos plugin due to missing locking</li>
+ <li>Add translated strings for the new OARS v1.1 additions</li>
+ <li>Work around Firefox deleting rpm/deb files downloaded to /tmp when closing</li>
+ <li>Log errors to console when starting from command line</li>
+ <li>Do not enable distro-upgrades when updates are disabled</li>
+ <li>Do not require the user to keep clicking 'More reviews' after each click</li>
+ <li>Fix a critical when updating (flatpak) packages live</li>
+ <li>fwupd: Do not crash when trying to list a locked device</li>
+ <li>fwupd: Prepend the vendor name to the device name if not included</li>
+ <li>Improve SPDX ID parsing when working out if it is 'free'</li>
+ <li>packagekit: Do not crash when getting an invalid ID from PackageKit</li>
+ <li>packagekit: Support apt:// URLs</li>
+ <li>Various fixes to the snap plugin</li>
+ <li>Do not crash when closing the source dialog while it is loading</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-11-13" version="3.27.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.27 development series, with the following improvements:</p>
+ <ul>
+ <li>Redesigned category view</li>
+ <li>Better notifications for completed distro upgrades</li>
+ <li>Number of test suite fixes to pave way for continuous integration tests</li>
+ <li>Improved support for running on low res displays</li>
+ <li>Various fixes to internal state handling</li>
+ <li>Allow linking to specified proprietary licenses</li>
+ <li>Don't use versioned subdirectories under ~/.cache/gnome-software</li>
+ <li>Only show in-app notifications for interactive user actions</li>
+ <li>Various fixes for flatpak, fwupd, and snap support</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-11-09" version="3.26.2" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Various fixes to cancellable handling, making it more robust to cancel install/remove operations</li>
+ <li>Fix a common crash in Fedora distro upgrades plugin</li>
+ <li>Fix showing N+2 Fedora upgrades</li>
+ <li>Fix flatpak updates inadvertently triggering a reboot</li>
+ <li>Revert plugin GType registering changes that broke app "adopting"</li>
+ <li>Various flatpak plugin fixes</li>
+ <li>Various snap plugin fixes</li>
+ <li>Bump fwupd required dep to 0.9.7 and support building with new 1.0.0 API</li>
+ <li>Avoid erroring out for operations that return more than 500 results (distro upgrades, getting gnome-shell extensions list)</li>
+ <li>Fix a few memory leaks</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-10-02" version="3.26.1" type="stable">
+ <description translatable="no">
+ <p>This is a stable release with the following changes:</p>
+ <ul>
+ <li>Fix memory leak in "external appstream" plugin</li>
+ <li>Don't translate an icon name in the Punjabi translation</li>
+ <li>Fix critical warning in the fwupd plugin if the update URI isn't set</li>
+ <li>Fix Addon categories not showing</li>
+ <li>Fix crash in PackageKit plugin if reporting progress with no current application</li>
+ <li>Revert a change in the snapd plugin which can cause operations to fail or hang in some situations</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-09-11" version="3.26.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.26, with the following improvements:</p>
+ <ul>
+ <li>Use the new fwupd API in 0.9.7 to avoid when a reboot is required</li>
+ <li>Pass the complete proxy settings to PackageKit</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not crash when emitting an uncommon error message</li>
+ <li>Do not show a critical warning with new versions of fwupd</li>
+ <li>Do not show an error for a remote-less flatpakref application</li>
+ <li>Don't refine PackageKit packages after we've been cancelled</li>
+ <li>Fix a possible crash on 32 bit systems</li>
+ <li>Fix GNOME Shell search results for snap applications</li>
+ <li>Properly disable shell-extensions when not running GNOME Shell</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-08-21" version="3.25.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a simple donation button on the details page</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Allow plugins to say that installation cannot be cancelled</li>
+ <li>Fix displaying the info bar for the Shell Extensions category</li>
+ <li>Use first featured snap as the featured app</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-08-07" version="3.25.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a simple donation button on the details page</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not crash if the child schema is invalid</li>
+ <li>Don't log a warning when clicking the the 'more results' search entry</li>
+ <li>Fixed subcategory names localization</li>
+ <li>Ensure flatpak remote names are valid</li>
+ <li>Fix critical warning with new versions of the fwupd daemon</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-07-21" version="3.25.4" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Add new rpm-ostree integration for Fedora Atomic Workstation</li>
+ <li>Install the Flatpak runtime as part of the application install phase</li>
+ <li>Split OS updates up into multiple sections and show the target version</li>
+ <li>Support compatibility IDs when getting reviews from the ODRS</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Cancel plugin jobs if they take too much time</li>
+ <li>Correctly find already installed flatpak runtimes</li>
+ <li>Do not show an error for a flatpakref when broken remotes exist</li>
+ <li>Don't show the screenshot section for runtimes</li>
+ <li>Fix authentication prompt not showing when using snapd</li>
+ <li>Make license buttons buttons actually look clickable</li>
+ <li>Make the review moderator panel easier to use</li>
+ <li>Only show snaps as sandboxed if snapd supports confinement</li>
+ <li>Respect the per-user or per-system install preferences</li>
+ <li>Return the correct installed state for user/system flatpak remotes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-06-22" version="3.25.3" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a banner designer utility</li>
+ <li>Add the initial support to support purchasable apps</li>
+ <li>Automatically install flatpak icon themes and GTK themes</li>
+ <li>Restyle the updates panel to have a separate sections</li>
+ <li>Show a notification in the updates page when the OS is end of life</li>
+ <li>Show recently updated applications on the overview page</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Add snap self tests and provide more data to the details panel</li>
+ <li>Allow compiling with newer versions of meson</li>
+ <li>Do not crash when sending progress reports while refreshing</li>
+ <li>Don't trigger systemd for every single offline update</li>
+ <li>Ensure all related flatpak applications get installed</li>
+ <li>Ensure we use the gnome-desktop support if enabled</li>
+ <li>Fix searching for codecs on Ubuntu</li>
+ <li>Show a better status messages when downloading metadata</li>
+ <li>Show a pulsing progressbar if plugins do not report progress</li>
+ <li>Show the PackageKit interactive dialog when required</li>
+ <li>Support updating metadata from multiple fwupd remotes</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-05-08" version="3.25.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Allow AppStream to be downloaded out-of-band per-user</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not initialize plugins in every instance</li>
+ <li>Fix the 'Show Details' context menu item in GNOME Shell</li>
+ <li>Use headerbar in toolbar-mode in Unity</li>
+ <li>Do not allow plugins to set the origin title in the UI</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-04-28" version="3.25.1" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.25 development series, with the following improvements:</p>
+ <ul>
+ <li>Truncate the search results if there are a large number</li>
+ <li>Use the complete source as a search keyword</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Fall back to a stock icon for hardware drivers</li>
+ <li>Fix a crash when removing an addon</li>
+ <li>Fix a critical warning in the shell search provider</li>
+ <li>Fix popular-overrides to show the correct applications</li>
+ <li>Fix various failures to read from snapd</li>
+ <li>Make offline updates work when online updates are available</li>
+ <li>Never include the size of the runtime in the installed size</li>
+ <li>Respect the install preference when for flatpakref files</li>
+ <li>Use the developer name in preference to the project group</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-03-13" version="3.23.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.23 development series, with the following bug fixes:</p>
+ <ul>
+ <li>Allow installing broken flatpakref files</li>
+ <li>Do not reload the updates list when updates are in progress</li>
+ <li>Reset the headerbar title when switching to the details page</li>
+ <li>Unconditionally show things that are in progress in the Installed page</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-02-27" version="3.23.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.23 development series, with the following improvements:</p>
+ <ul>
+ <li>Add support for RuntimeRepo in flatpakref files</li>
+ <li>Allow the user to restart the currently running gnome-software instance</li>
+ <li>Never show components without AppData files</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Initialize progress to zero right before and after processing an action</li>
+ <li>Animate the removal of live updates</li>
+ <li>Add YaST as a default folder in gnome-shell overview</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2017-02-13" version="3.23.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.23 development series, with the following improvements:</p>
+ <ul>
+ <li>Handle apt and snap URLs</li>
+ <li>Show the updates panel with sections</li>
+ <li>Sort the apps in the installed panel by kind</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Add a more detailed error message when AC power is required</li>
+ <li>Do not hardcode the gnome-software application name</li>
+ <li>Ensure firmware is downloaded when not cached</li>
+ <li>Fix a rather large memory leak when loading Steam data</li>
+ <li>Fix launching Flatpak apps after updating</li>
+ <li>Install needed Flatpak runtimes when updating an app</li>
+ <li>Only show the scary firmware warning for removable devices</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2016-12-15" version="3.23.3" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.23 development series, with the following improvements:</p>
+ <ul>
+ <li>Add an --install and --interaction CLI options</li>
+ <li>Add the installed size of the apps in the installed view</li>
+ <li>Always set a description for each notification</li>
+ <li>Show an in-app notification when installed plugins are changed</li>
+ <li>Use a set of stars to show the different star ratings</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Add a missing error check to fix a common crash on LiveDVD media</li>
+ <li>Add thread locking in GsApp to fix some common crashes</li>
+ <li>Allow upgrading to Fedora EOL releases</li>
+ <li>Don't allow review actions when offline</li>
+ <li>Ensure we actually schedule firmware updates for download</li>
+ <li>Fix the getting of PackageKit and flatpak update details</li>
+ <li>Hide some notifications when the new app is launched or the window is closed</li>
+ <li>Hide the screenshot placeholder for input methods and langpacks</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2016-11-21" version="3.23.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.23 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a setting for downloading updates on metered connections</li>
+ <li>Add content rating interface for games</li>
+ <li>Add support for pending updates that are applied on demand</li>
+ <li>Add support for the flatpak DefaultBranch feature</li>
+ <li>Allow showing an application review without a display name</li>
+ <li>Convert the modal failure dialogs to in-app notifications</li>
+ <li>Switch to using the ODRS server hosted by GNOME</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Always get the newest screenshot for GNOME Shell extensions</li>
+ <li>Avoid redownloading the same screenshots for different images</li>
+ <li>Don't download updates when low on power</li>
+ <li>Fix the growth in memory usage for every search request</li>
+ <li>Never show a 'back' button when showing search results</li>
+ <li>Show the search bar when the user does ctrl+f</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2016-11-07" version="3.22.2" type="stable">
+ <description translatable="no">
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Large number of fixes and improvements for flatpak support</li>
+ <li>Improved handling for flatpak repos with multiple branches</li>
+ <li>Initial support for installing flatpakrepo files</li>
+ <li>Fix a crash when searching for codecs</li>
+ <li>Fix a crash when de-duplicating applications</li>
+ <li>Speed improvements for loading appstream data</li>
+ <li>Refactor snapd handling code using snapd-glib</li>
+ <li>Show the search bar when the user does Ctrl+f</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2016-10-12" version="3.22.1" type="stable">
+ <description translatable="no">
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Fix several issues with flatpak bundles</li>
+ <li>Fix installing local packages</li>
+ <li>Fix a crash when failing to get an installed flatpak ref</li>
+ <li>Speed up loading the details and overview pages</li>
+ <li>Switch to using the ODRS server hosted by GNOME</li>
+ </ul>
+ <p>This release also updates translations.</p>
+ </description>
+ </release>
+ <release date="2016-09-19" version="3.22.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for GNOME 3.22 and updates several translations.</p>
+ </description>
+ </release>
+ <release date="2016-09-13" version="3.21.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a new section name in the Addons category for drivers</li>
+ <li>Add a plugin to match a hardware modalias</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not hide the origin when installing or removing an app</li>
+ <li>Do not show the screenshot fallback image for firmware or drivers</li>
+ <li>Fix launching app's details from the installed notification</li>
+ <li>Fix showing the source line in the installed panel</li>
+ <li>Unbreak the GNOME Shell search provider</li>
+ <li>Use the same padding as a GtkStackSwitcher</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-08-31" version="3.21.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Add functionality to enable non-free sources</li>
+ <li>Show the device bootloader screenshot when required</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Always return consistent results by allowing plugins to share a cache</li>
+ <li>Ensure the search text is showing when going back to search results</li>
+ <li>Only enable the firmware 'Install' button when the device is in the right mode</li>
+ <li>Remove an app from the installed view when it's uninstalled</li>
+ <li>Show percentage progress when installing firmware</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-08-15" version="3.21.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Limit the ODRS moderation queue to a specific language</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Correctly load .flatpakrepo files</li>
+ <li>Don't get the download size for installed flatpak packages</li>
+ <li>Fix showing the progress bar when installing apps</li>
+ <li>Never try to modify the application name</li>
+ <li>Only notify about upgrades once per month</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-07-18" version="3.21.4" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a cancel button and progress information to the details page</li>
+ <li>Add a dialog to confirm upgrade removals</li>
+ <li>Add support for authenticating in plugins</li>
+ <li>Add support for snaps</li>
+ <li>Enable gtk-doc generation for documentation</li>
+ <li>Show a new-style category list on the overview page</li>
+ <li>Show origin information when applications are available from multiple sources</li>
+ <li>Show sandboxing information for selected applications</li>
+ <li>Show the star ratings in more places</li>
+ <li>Support installing .flatpakrepo files</li>
+ <li>Support launching applicatins using a appstream:// URL</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Allow plugins to be enabled and disabled at runtime</li>
+ <li>Always show the 'MyLanguage' kudo when in en_US locale</li>
+ <li>Correctly trigger systemd offline updates when only processing OS updates</li>
+ <li>Disable app folders feature when run outside GNOME</li>
+ <li>Do not show buttons on the search results</li>
+ <li>Do not use deprecated CSS properties</li>
+ <li>Do not use deprecated fwupd API</li>
+ <li>Ensure reviews are shown in the correct order</li>
+ <li>Fix a crash when double clicking files</li>
+ <li>Fix several UX issues when upgrading</li>
+ <li>Show the 'More Reviews' button in the details panel</li>
+ <li>Try really hard to have two rows of important categories</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-05-23" version="3.21.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a --details-pkg option to the gnome-software binary</li>
+ <li>Add support for flatpak packages</li>
+ <li>Add a plugin to auto-add some license information</li>
+ <li>Add depends, requires and conflicts at initialize time</li>
+ <li>Add support for application key colors</li>
+ <li>Export a set of headers to allow external plugins to be built</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not crash if plugins are badly behaved</li>
+ <li>Do not directly load pixbufs in the AppStream plugin</li>
+ <li>Do not unconditionally invalidate the updates list on hardware hotplug</li>
+ <li>Find the best AppSteam component when matching any prefixes</li>
+ <li>Fix crash due to network change before app activation</li>
+ <li>Fix launching various KDE4 applications</li>
+ <li>Support getting cached content from /var/cache and /usr/share</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-04-25" version="3.21.1" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.21 development series, with the following improvements:</p>
+ <ul>
+ <li>Add an initial loading panel when there is no metadata</li>
+ <li>Add an outline ostree plugin that just adds remotes as sources</li>
+ <li>Add an unreviewable application quirk</li>
+ <li>Add initial Steam support</li>
+ <li>Add support for app shortcut addition/removal</li>
+ <li>Add support for GNOME Shell extensions</li>
+ <li>Allow free-but-unspecified SPDX tokens</li>
+ <li>Allow widgets to use custom CSS in a generic way</li>
+ <li>Do the PackageKit refresh as a background transaction</li>
+ <li>Hide "Software Sources" menu when its action is disabled</li>
+ <li>Make the distro upgrades dialog match the new mockup</li>
+ <li>Split the 'size' property into size-installed and size-download</li>
+ <li>Use a link instead of a button for history</li>
+ <li>Use AppStream files for the popular, featured and extra category data</li>
+ <li>Use dpkg-deb info to create a GsApp when double clicking on a .deb file</li>
+ <li>Use FwupdClient from fwupd 0.7.0</li>
+ <li>Use GdkPixbuf to parse icns files</li>
+ <li>Use gsettings to enable/disable the 'sources' action</li>
+ <li>Use the Fedora themed image for the upgrade banner</li>
+ <li>When there are no trusted sources mark everything as non-3rd-party</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Actually show the error dialog for an invalid file</li>
+ <li>Allow all functions called by g_module_symbol() to fail</li>
+ <li>Allow popular and featured apps to match any prefix</li>
+ <li>Do not maintain a cache of applications in the plugin loader</li>
+ <li>Do not make the ODRS plugin depend on xdg-app</li>
+ <li>Do not re-request the distro-upgrade when switching pages</li>
+ <li>Do not show ratings and reviews for some component kinds</li>
+ <li>Do not show the distro-upgrade notification if the window is open</li>
+ <li>Do not use the header bar on Unity</li>
+ <li>Fix a crash when double clicking package files</li>
+ <li>Fix live installing firmware</li>
+ <li>Get the correct icon size when installing xdg-app bundles on HiDPI</li>
+ <li>Hide the kudo details panel for non desktop components</li>
+ <li>Load screenshots directly if their URLs point to local files</li>
+ <li>Lower the limits for review text</li>
+ <li>Make all the plugins more threadsafe</li>
+ <li>Make the provenance plugin non-specific to Fedora</li>
+ <li>Move header bar button creation into individual pages</li>
+ <li>Move the Install &amp; Restart button below the upgrade banner</li>
+ <li>Never show star ratings on the category app tiles</li>
+ <li>Only show one modal dialog at a time</li>
+ <li>Only show the session manager restart if there were any non-live updates</li>
+ <li>Properly support multi-line .deb descriptions</li>
+ <li>Show a 'Install All' button when all the updates can be installed live</li>
+ <li>Show a modal dialog when downloading the distro-upgrade failed</li>
+ <li>Show the upgrades banner even if there are no updates to show</li>
+ <li>Use a cache file to respect the fedora-distro-upgrades cache-age</li>
+ <li>Use GFile instead of a filename when converting apps</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-02-29" version="3.19.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.19 development series, with the following improvements:</p>
+ <ul>
+ <li>Add an 'All' subcategory in the category shell</li>
+ <li>Add ratings and review functionality for Ubuntu</li>
+ <li>Install the xdg-app runtime as required automatically</li>
+ <li>Show a confirmation dialog before reporting a review</li>
+ <li>Show a guide label for the different star values</li>
+ <li>Support installing local xdg-app bundles</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Correctly identify local packages with sources</li>
+ <li>Do not add multiple search results for the same app</li>
+ <li>Do not show xdg-app runtimes in the installed panel</li>
+ <li>Escape markup before showing modal dialogs</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-02-15" version="3.19.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.19 development series, with the following improvements:</p>
+ <ul>
+ <li>Add end-user application review functionality</li>
+ <li>Add support for upgrading the OS from one release to another</li>
+ <li>Add support for xdg-app and Limba bundles</li>
+ <li>Add tags to applications, and explain them in the details page</li>
+ <li>Update the list of featured applications on the front page</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Add a missing tag to the software center metadata file</li>
+ <li>PackageKit support is now optional</li>
+ <li>Temporarily remove the remove button in the sources dialog</li>
+ <li>Use versioned user cache directories to pick up new screenshots</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2016-01-15" version="3.19.4" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.19 development series, with the following improvements:</p>
+ <ul>
+ <li>Add a link to Wikipedia to explain proprietary and public domain software</li>
+ <li>Allow administrators to override the default popular applications</li>
+ <li>Improve the interface for device firmware updates and some can be done live</li>
+ <li>Make sure Characters and Disks show up in Utilities</li>
+ <li>Show 3rd party applications in the search results</li>
+ <li>Show a nicer installation dialog when installing local files</li>
+ <li>Speed up the application first-start and also speed up switching pages</li>
+ <li>Try to show if an application is free software</li>
+ </ul>
+ <p>The following bugs are also fixed:</p>
+ <ul>
+ <li>Do not crash on refresh if the fwupd daemon is not available</li>
+ <li>Fix installing web applications</li>
+ <li>Rework several windows to fit better on small screens</li>
+ <li>Use the correct user agent string when downloading firmware</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-11-05" version="3.18.3" type="stable">
+ <description translatable="no">
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Use the correct user agent string when downloading firmware</li>
+ <li>Fix a crash in the limba plugin</li>
+ <li>Fix installing web applications</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-10-15" version="3.18.2" type="stable">
+ <description translatable="no">
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Fix a regression that could lead to never finding any updates</li>
+ <li>Fix an issue with getting package details for apps without AppData</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-10-13" version="3.18.1" type="stable">
+ <description translatable="no">
+ <p>This stable release fixes the following bugs:</p>
+ <ul>
+ <li>Do not force the cache refresh and delete otherwise valid packages</li>
+ <li>Fix several potential crashes when navigating and when installing</li>
+ <li>Get the new application icon for local packages after installation</li>
+ <li>Improve cold start time by only parsing AppStream data once</li>
+ <li>Make sure Characters and Disks show up in Utilities</li>
+ <li>Only download the fwupd metadata signature once per day</li>
+ <li>Show an empty space for no category results</li>
+ <li>Show applications without AppData in the installed panel</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-09-21" version="3.18.0" type="stable">
+ <description translatable="no">
+ <p>This is the first stable release for the GNOME 3.18 desktop!</p>
+ </description>
+ </release>
+ <release date="2015-09-15" version="3.17.92" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.17 development series, with the following improvements:</p>
+ <ul>
+ <li>Fix getting firmware updates by parsing the metadata correctly</li>
+ <li>Make the application menu path correct in RTL locales</li>
+ <li>Don't keep the application running forever when run as a search provider</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-09-03" version="3.17.91" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.17 development series, with the following improvements:</p>
+ <ul>
+ <li>Better theming for the category sidebar</li>
+ <li>Use standard size icon in the about dialog</li>
+ <li>Support mouse back button for going back in dialogs</li>
+ <li>Fix incorrect alignment on the front page in RTL languages</li>
+ <li>Misc other minor bugs fixed</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-08-19" version="3.17.90" type="development">
+ <description translatable="no">
+ <p>This is an unstable release with the following bugs fixed:</p>
+ <ul>
+ <li>Use CSS to style the error message details</li>
+ <li>Correctly align labels in the Add to Folder dialog</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-08-12" version="3.17.3" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.17 development series, with the following improvements:</p>
+ <ul>
+ <li>Add basic support for Limba bundles</li>
+ <li>Automatically download new firmware metadata from LVFS</li>
+ <li>Hide updates UI on managed systems</li>
+ <li>Show a new notification when security updates remain unapplied</li>
+ <li>Show installation progress when installing applications</li>
+ <li>Use some new applications to the picked category</li>
+ </ul>
+ <p>Bugs fixed in this release:</p>
+ <ul>
+ <li>Do not show applications that are not available when searching by category</li>
+ <li>Don't crash when launching an app that has no desktop ID</li>
+ <li>Don't show applications without AppData in the category view</li>
+ <li>Fix a possible race and crash when loading icons</li>
+ <li>Fix locking in the AppStream code to fix several crashes</li>
+ <li>Use better error messages on offline update failure</li>
+ <li>Withdraw the notification when prepared update gets invalidated</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-06-05" version="3.17.2" type="development">
+ <description translatable="no">
+ <p>This is an unstable release in the 3.17 development series, with the following improvements:</p>
+ <ul>
+ <li>Make fwupd dependency automagic</li>
+ </ul>
+ <p>Bugs fixed in this release:</p>
+ <ul>
+ <li>Fix a regression from the previous unstable release that made it impossible to install updates</li>
+ <li>Fix a crash in the screenshot loader</li>
+ <li>Fix a crash in the sources dialog</li>
+ <li>Fix a crash when installing rpms that lack description</li>
+ <li>Wrap long descriptions in the update dialog</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-05-25" version="3.17.1" type="development">
+ <description translatable="no">
+ <p>This is the first unstable release in the 3.17 development series, with a number of new features:</p>
+ <ul>
+ <li>Support getting firmware updates through the fwupd daemon</li>
+ <li>Use a smaller number of tiles on the front page on small monitors</li>
+ <li>Rework internal modulesets, making it easier to edit the list of featured apps</li>
+ <li>Revert back to using a hand-picked list of featured apps</li>
+ <li>Several improvements to the sources dialog</li>
+ <li>Show better human readable names when searching for font scripts</li>
+ <li>Show a spinner while loading the data for the update history dialog</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-05-11" version="3.16.2" type="stable">
+ <description translatable="no">
+ <p>This release fixes the following bugs:</p>
+ <ul>
+ <li>Remove redundant OK button from the updates installed notification</li>
+ <li>Display a better human readable title for printer drivers</li>
+ <li>Show a better UI for offline update failure dialog</li>
+ <li>Set default actions for the update done notifications</li>
+ <li>Allow searching for packages via the API without appdata</li>
+ <li>Fix showing webapps with non-local icons</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-04-14" version="3.16.1" type="stable">
+ <description translatable="no">
+ <p>This release fixes the following bugs:</p>
+ <ul>
+ <li>Correctly save HiDPI images to HiDPI directories</li>
+ <li>Scroll the contents of the error message dialog</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-03-23" version="3.16.0" type="stable">
+ <description translatable="no">
+ <p>This stable release marks the release of GNOME 3.16!</p>
+ </description>
+ </release>
+ <release date="2015-03-16" version="3.15.92" type="development">
+ <description translatable="no">
+ <p>This unstable release adds the following features:</p>
+ <ul>
+ <li>React to theme changes</li>
+ <li>Rebase the HighContrast theme</li>
+ </ul>
+ <p>This release fixes the following bug:</p>
+ <ul>
+ <li>Fix HiDPI scale factor calculation</li>
+ <li>Align section headings in all views</li>
+ <li>Fix 'installed' overlays when using the HighContrast theme</li>
+ <li>Fall back to showing the top level category when no sub category exists</li>
+ <li>Fix a crash when using the pending applications feature</li>
+ </ul>
+ <p>This release also updates translations for many languages.</p>
+ </description>
+ </release>
+ <release date="2015-03-02" version="3.15.91" type="development">
+ <description translatable="no">
+ <p>This unstable release adds the following features:</p>
+ <ul>
+ <li>Enable kinetic scrolling in updates dialog</li>
+ </ul>
+ <p>This release fixes the following bug:</p>
+ <ul>
+ <li>Always ensure that the back entry focus widget is valid</li>
+ <li>Don't show small screenshots on HiDPI hardware</li>
+ <li>Fix a crash when starting GNOME Software for the first time</li>
+ <li>Only show compatible projects when getting the featured list</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2015-02-16" version="3.15.90" type="development">
+ <description translatable="no">
+ <p>This unstable release adds the following features:</p>
+ <ul>
+ <li>Add a new panel for displaying session service results</li>
+ <li>Add a new version of the Modify interface</li>
+ <li>Require AppData for all available packages</li>
+ </ul>
+ <p>This release fixes the following bug:</p>
+ <ul>
+ <li>Use the new mockups for the 3rd party source install dialogs</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2015-01-19" version="3.15.4" type="development">
+ <description translatable="no">
+ <p>This unstable release adds the following features:</p>
+ <ul>
+ <li>Fix searching with very small search terms</li>
+ </ul>
+ <p>This release fixes the following bugs:</p>
+ <ul>
+ <li>Do case-insensitive searching of suitable keywords</li>
+ <li>Fix a crash in the screenshot loader</li>
+ <li>Fix a crash when clicking the back button</li>
+ <li>Fix searching for keyworks with special chars</li>
+ <li>Show an error message when we fail to load details about a local file</li>
+ </ul>
+ </description>
+ </release>
+ <release date="2014-11-24" version="3.15.2" type="development">
+ <description translatable="no">
+ <p>This unstable release adds the following features:</p>
+ <ul>
+ <li>Show a blurred low-resolution screenshot while loading the HiDPI one</li>
+ </ul>
+ <p>This release fixes the following bugs:</p>
+ <ul>
+ <li>Do not show a random white line above the star rating widget</li>
+ <li>Do not show empty app boxes if no popular results are available</li>
+ <li>Do not try to download local web-app icons</li>
+ <li>Use blue stars for the user-ratings rather than gold</li>
+ </ul>
+ </description>
+ </release>
+ </releases>
+ <provides>
+ <id>gnome-software.desktop</id>
+ </provides>
+ <kudos>
+ <kudo>HiDpiIcon</kudo>
+ <kudo>ModernToolkit</kudo>
+ <kudo>Notifications</kudo>
+ <kudo>SearchProvider</kudo>
+ </kudos>
+ <url type="bugtracker">https://gitlab.gnome.org/GNOME/gnome-software/-/issues/new</url>
+ <url type="donation">https://www.gnome.org/donate/</url>
+ <url type="homepage">https://wiki.gnome.org/Design/Apps/Software</url>
+ <url type="translate">https://wiki.gnome.org/TranslationProject</url>
+ <url type="vcs-browser">https://gitlab.gnome.org/GNOME/gnome-software/</url>
+ <update_contact>richard_at_hughsie.com</update_contact>
+ <compulsory_for_desktop>GNOME</compulsory_for_desktop>
+ <project_group>GNOME</project_group>
+ <translation type="gettext">gnome-software</translation>
+ <developer_name>The GNOME Project</developer_name>
+ <content_rating type="oars-1.0">
+ <content_attribute id="violence-cartoon">none</content_attribute>
+ <content_attribute id="violence-fantasy">none</content_attribute>
+ <content_attribute id="violence-realistic">none</content_attribute>
+ <content_attribute id="violence-bloodshed">none</content_attribute>
+ <content_attribute id="violence-sexual">none</content_attribute>
+ <content_attribute id="drugs-alcohol">none</content_attribute>
+ <content_attribute id="drugs-narcotics">none</content_attribute>
+ <content_attribute id="drugs-tobacco">none</content_attribute>
+ <content_attribute id="sex-nudity">none</content_attribute>
+ <content_attribute id="sex-themes">none</content_attribute>
+ <content_attribute id="language-profanity">none</content_attribute>
+ <content_attribute id="language-humor">none</content_attribute>
+ <content_attribute id="language-discrimination">none</content_attribute>
+ <content_attribute id="social-chat">moderate</content_attribute>
+ <content_attribute id="social-info">mild</content_attribute>
+ <content_attribute id="social-audio">none</content_attribute>
+ <content_attribute id="social-location">none</content_attribute>
+ <content_attribute id="social-contacts">none</content_attribute>
+ <content_attribute id="money-purchasing">none</content_attribute>
+ <content_attribute id="money-gambling">none</content_attribute>
+ </content_rating>
+ <launchable type="desktop-id">org.gnome.Software.desktop</launchable>
+</component>
diff --git a/data/metainfo/ss-details.png b/data/metainfo/ss-details.png
new file mode 100644
index 0000000..4d9ee04
--- /dev/null
+++ b/data/metainfo/ss-details.png
Binary files differ
diff --git a/data/metainfo/ss-details2.png b/data/metainfo/ss-details2.png
new file mode 100644
index 0000000..b51795c
--- /dev/null
+++ b/data/metainfo/ss-details2.png
Binary files differ
diff --git a/data/metainfo/ss-installed.png b/data/metainfo/ss-installed.png
new file mode 100644
index 0000000..05283af
--- /dev/null
+++ b/data/metainfo/ss-installed.png
Binary files differ
diff --git a/data/metainfo/ss-overview.png b/data/metainfo/ss-overview.png
new file mode 100644
index 0000000..c8f6091
--- /dev/null
+++ b/data/metainfo/ss-overview.png
Binary files differ
diff --git a/data/metainfo/ss-up-to-date.png b/data/metainfo/ss-up-to-date.png
new file mode 100644
index 0000000..8ebe00d
--- /dev/null
+++ b/data/metainfo/ss-up-to-date.png
Binary files differ
diff --git a/data/metainfo/ss-updates-details.png b/data/metainfo/ss-updates-details.png
new file mode 100644
index 0000000..9582490
--- /dev/null
+++ b/data/metainfo/ss-updates-details.png
Binary files differ
diff --git a/data/metainfo/ss-updates.png b/data/metainfo/ss-updates.png
new file mode 100644
index 0000000..62bb4d5
--- /dev/null
+++ b/data/metainfo/ss-updates.png
Binary files differ
diff --git a/data/org.gnome.software.external-appstream.policy.in.in b/data/org.gnome.software.external-appstream.policy.in.in
new file mode 100644
index 0000000..69af72a
--- /dev/null
+++ b/data/org.gnome.software.external-appstream.policy.in.in
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE policyconfig PUBLIC
+ "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
+<policyconfig>
+ <vendor>GNOME</vendor>
+ <vendor_url>https://www.gnome.org/</vendor_url>
+
+ <action id="org.gnome.software.install-appstream">
+ <description>Install an appstream file into a system location</description>
+ <message>Installing an appstream file into a system location</message>
+ <defaults>
+ <allow_any>yes</allow_any>
+ <allow_active>yes</allow_active>
+ <allow_inactive>no</allow_inactive>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gnome-software-install-appstream</annotate>
+ </action>
+</policyconfig>
diff --git a/data/org.gnome.software.gschema.xml b/data/org.gnome.software.gschema.xml
new file mode 100644
index 0000000..aa074f1
--- /dev/null
+++ b/data/org.gnome.software.gschema.xml
@@ -0,0 +1,149 @@
+<schemalist>
+ <schema id="org.gnome.software" path="/org/gnome/software/" gettext-domain="gnome-software">
+ <key name="compatible-projects" type="as">
+ <default>['GNOME', 'KDE', 'XFCE']</default>
+ <summary>A list of compatible projects</summary>
+ <description>This is a list of compatible projects we should show such as GNOME, KDE and XFCE.</description>
+ </key>
+ <key name="allow-updates" type="b">
+ <default>true</default>
+ <summary>Whether to manage updates and upgrades in GNOME Software</summary>
+ <description>If disabled, GNOME Software will hide the updates panel, not perform any automatic updates actions or prompt for upgrades.</description>
+ </key>
+ <key name="download-updates" type="b">
+ <default>true</default>
+ <summary>Automatically download and install updates</summary>
+ <description>If enabled, GNOME Software automatically downloads software updates in the background, also installing ones that do not require a reboot.</description>
+ </key>
+ <key name="download-updates-notify" type="b">
+ <default>true</default>
+ <summary>Notify the user about software updated in the background</summary>
+ <description>If enabled, GNOME Software notifies the user about updates that happened whilst the user was idle.</description>
+ </key>
+ <key name="refresh-when-metered" type="b">
+ <default>false</default>
+ <summary>Whether to automatically refresh when on a metered connection</summary>
+ <description>If enabled, GNOME Software automatically refreshes in the background even when using a metered connection (eventually downloading some metadata, checking for updates, etc., which may incur in costs for the user).</description>
+ </key>
+ <key name="first-run" type="b">
+ <default>true</default>
+ <summary>Whether it’s the very first run of GNOME Software</summary>
+ </key>
+ <key name="show-ratings" type="b">
+ <default>false</default>
+ <summary>Show star ratings next to applications</summary>
+ </key>
+ <key name="filter-default-branch" type="b">
+ <default>true</default>
+ <summary>Filter applications based on the default branch set for the remote</summary>
+ </key>
+ <key name="prompt-for-nonfree" type="b">
+ <default>true</default>
+ <summary>Non-free applications show a warning dialog before install</summary>
+ <description>When non-free applications are installed a warning dialog can be shown. This controls if that dialog is suppressed.</description>
+ </key>
+ <key name="check-timestamp" type="x">
+ <default>0</default>
+ <summary>The last update check timestamp</summary>
+ </key>
+ <key name="upgrade-notification-timestamp" type="x">
+ <default>0</default>
+ <summary>The last upgrade notification timestamp</summary>
+ </key>
+ <key name="update-notification-timestamp" type="x">
+ <default>0</default>
+ <summary>The last update notification timestamp</summary>
+ </key>
+ <key name="security-timestamp" type="x">
+ <default>0</default>
+ <summary>The timestamp of the first security update, cleared after update</summary>
+ </key>
+ <key name="install-timestamp" type="x">
+ <default>0</default>
+ <summary>The last update timestamp</summary>
+ </key>
+ <key name="online-updates-timestamp" type="x">
+ <default>0</default>
+ <summary>The last timestamp when the system was online and got any updates</summary>
+ </key>
+ <key name="screenshot-cache-age-maximum" type="u">
+ <default>2592000</default>
+ <summary>The age in seconds to verify the upstream screenshot is still valid</summary>
+ <description>
+ Choosing a larger value will mean less round-trips to the remote server
+ but updates to the screenshots may take longer to show to the user.
+ A value of 0 means to never check the server if the image already exists
+ in the cache.
+ </description>
+ </key>
+ <key name="review-server" type="s">
+ <default>'https://odrs.gnome.org/1.0/reviews/api'</default>
+ <summary>The server to use for application reviews</summary>
+ </key>
+ <key name="review-karma-required" type="i">
+ <default>0</default>
+ <summary>The minimum karma score for reviews</summary>
+ <description>Reviews with karma less than this number will not be shown.</description>
+ </key>
+ <key name="official-repos" type="as">
+ <default>[]</default>
+ <summary>A list of official repositories that should not be considered 3rd party</summary>
+ </key>
+ <key name="required-repos" type="as">
+ <default>[]</default>
+ <summary>A list of required repositories that cannot be disabled or removed</summary>
+ </key>
+ <key name="free-repos" type="as">
+ <default>[]</default>
+ <summary>A list of official repositories that should be considered free software</summary>
+ </key>
+ <key name="free-repos-url" type="s">
+ <default>''</default>
+ <summary>The licence URL to use when an application should be considered free software</summary>
+ </key>
+ <key name="install-bundles-system-wide" type="b">
+ <default>true</default>
+ <summary>Install bundled applications for all users on the system where possible</summary>
+ </key>
+ <key name="enable-repos-dialog" type="b">
+ <default>true</default>
+ <summary>Allow access to the Software Repositories dialog</summary>
+ </key>
+ <key name="show-upgrade-prerelease" type="b">
+ <default>false</default>
+ <summary>Offer upgrades for pre-releases</summary>
+ </key>
+ <key name="show-nonfree-ui" type="b">
+ <default>true</default>
+ <summary>Show some UI elements informing the user that an app is non-free</summary>
+ </key>
+ <key name="installed-page-show-size" type="b">
+ <default>true</default>
+ <summary>Show the installed size for apps in the list of installed applications</summary>
+ </key>
+ <key name="nonfree-software-uri" type="s">
+ <!-- Translators: Replace the link with a version in your language, e.g. 'https://de.wikipedia.org/wiki/Proprietäre_Software'. Remember to include ''. -->
+ <default l10n="messages">'https://en.wikipedia.org/wiki/Proprietary_software'</default>
+ <summary>The URI that explains nonfree and proprietary software</summary>
+ </key>
+ <key name="external-appstream-urls" type="as">
+ <default>[]</default>
+ <summary>A list of URLs pointing to appstream files that will be downloaded into an swcatalog folder</summary>
+ </key>
+ <key name="external-appstream-system-wide" type="b">
+ <default>false</default>
+ <summary>Install the AppStream files to a system-wide location for all users. If false, files are installed in non-standard $XDG_DATA_HOME/swcatalog/xml directory</summary>
+ </key>
+ <key name="packaging-format-preference" type="as">
+ <default>['']</default>
+ <summary>Priority order of packaging formats to prefer, with more important formats listed first. An empty array means the default order. Omitted formats are assumed to be listed last. Example packaging formats are: deb, flatpak, rpm, snap.</summary>
+ </key>
+ <child name="auth" schema="org.gnome.software.auth"/>
+ </schema>
+ <schema id="org.gnome.software.auth" gettext-domain="gnome-software">
+ <key name="account-id" type="s">
+ <default>''</default>
+ <summary>A string storing the gnome-online-account id used to login</summary>
+ </key>
+ </schema>
+</schemalist>
diff --git a/data/tests/os-release b/data/tests/os-release
new file mode 100644
index 0000000..79df6af
--- /dev/null
+++ b/data/tests/os-release
@@ -0,0 +1,16 @@
+NAME=Fedora
+VERSION="25 (Workstation Edition)"
+ID=fedora
+VERSION_ID=25
+PRETTY_NAME="Fedora 25 (Workstation Edition)"
+ANSI_COLOR="0;34"
+CPE_NAME="cpe:/o:fedoraproject:fedora:25"
+HOME_URL="https://fedoraproject.org/"
+BUG_REPORT_URL="https://bugzilla.redhat.com/"
+REDHAT_BUGZILLA_PRODUCT="Fedora"
+REDHAT_BUGZILLA_PRODUCT_VERSION=25
+REDHAT_SUPPORT_PRODUCT="Fedora"
+REDHAT_SUPPORT_PRODUCT_VERSION=25
+PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy
+VARIANT="Workstation Edition"
+VARIANT_ID=workstation