Commit c366f555 authored by Marco Trevisan (Treviño)'s avatar Marco Trevisan (Treviño) Committed by Marco Trevisan (Treviño)
Browse files

Import Upstream version 3.29.1

parent 8c6f59d9
Version 3.29.1
~~~~~~~~~~~~~~
Released: 2018-03-05
This is an unstable release in the 3.27 development series, with the following
improvements:
* Show a better notification when a local file or URI is not supported
* snap: Use ODRS for reviews
This release also updates translations.
Version 3.28.2
~~~~~~~~~~~~~~
Released: 2018-05-09
......
......@@ -2,14 +2,14 @@ GNOME Software Release Notes
Write release entries:
git log --format="%s" --cherry-pick --right-only 3.28.1... | grep -i -v trivial | grep -v Merge | sort | uniq
git log --format="%s" --cherry-pick --right-only 3.28.2... | grep -i -v trivial | grep -v Merge | sort | uniq
Add any user visible changes into data/appdata/org.gnome.Software.appdata.xml.in
Generate NEWS file:
appstream-util appdata-to-news data/appdata/org.gnome.Software.appdata.xml.in > NEWS
git commit -a -m "Release version 3.28.2"
git tag -s 3.28.2 -m "==== Version 3.28.2 ===="
git commit -a -m "Release version 3.29.1"
git tag -s 3.29.1 -m "==== Version 3.29.1 ===="
<enter password>
ninja-build dist
......
......@@ -46,6 +46,19 @@
Validate with `appstream-util validate *.appdata.xml`
-->
<releases>
<release date="2018-03-05" version="3.29.1">
<description>
<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">
<description>
<p>
......
project('gnome-software', 'c',
version : '3.28.2',
version : '3.29.1',
license : 'GPL-2.0+',
default_options : ['warning_level=1', 'c_std=c99'],
meson_version : '>=0.37.0'
......
......@@ -279,23 +279,27 @@ static GsApp *
snap_to_app (GsPlugin *plugin, SnapdSnap *snap)
{
GsPluginData *priv = gs_plugin_get_data (plugin);
g_autofree gchar *appstream_id = NULL;
g_autofree gchar *unique_id = NULL;
GsApp *cached_app;
g_autoptr(GsApp) app = NULL;
SnapdConfinement confinement;
/* generate an AppStream ID for this snap - when Snaps support an AppStream field we can override this */
appstream_id = g_strdup_printf ("io.snapcraft.%s-%s", snapd_snap_get_name (snap), snapd_snap_get_id (snap));
switch (snapd_snap_get_snap_type (snap)) {
case SNAPD_SNAP_TYPE_APP:
unique_id = g_strdup_printf ("system/snap/*/desktop/%s/*", snapd_snap_get_name (snap));
unique_id = g_strdup_printf ("system/snap/*/desktop/%s/*", appstream_id);
break;
case SNAPD_SNAP_TYPE_KERNEL:
case SNAPD_SNAP_TYPE_GADGET:
case SNAPD_SNAP_TYPE_OS:
unique_id = g_strdup_printf ("system/snap/*/runtime/%s/*", snapd_snap_get_name (snap));
unique_id = g_strdup_printf ("system/snap/*/runtime/%s/*", appstream_id);
break;
default:
case SNAPD_SNAP_TYPE_UNKNOWN:
unique_id = g_strdup_printf ("system/snap/*/*/%s/*", snapd_snap_get_name (snap));
unique_id = g_strdup_printf ("system/snap/*/*/%s/*", appstream_id);
break;
}
......@@ -303,13 +307,13 @@ snap_to_app (GsPlugin *plugin, SnapdSnap *snap)
if (cached_app == NULL) {
app = gs_app_new (NULL);
gs_app_set_from_unique_id (app, unique_id);
gs_app_set_metadata (app, "snap::name", snapd_snap_get_name (snap));
gs_plugin_cache_add (plugin, unique_id, app);
}
else
app = g_object_ref (cached_app);
gs_app_set_management_plugin (app, "snap");
gs_app_add_quirk (app, AS_APP_QUIRK_NOT_REVIEWABLE);
if (gs_app_get_kind (app) != AS_APP_KIND_DESKTOP)
gs_app_add_quirk (app, AS_APP_QUIRK_NOT_LAUNCHABLE);
if (gs_plugin_check_distro_id (plugin, "ubuntu"))
......@@ -627,7 +631,7 @@ load_snap_icon (GsApp *app, SnapdClient *client, SnapdSnap *snap, GCancellable *
if (icon_url == NULL || strcmp (icon_url, "") == 0)
return FALSE;
icon = snapd_client_get_icon_sync (client, snapd_snap_get_name (snap), cancellable, &error);
icon = snapd_client_get_icon_sync (client, gs_app_get_metadata_item (app, "snap::name"), cancellable, &error);
if (icon == NULL) {
g_warning ("Failed to load snap icon: %s", error->message);
return FALSE;
......@@ -758,7 +762,7 @@ load_icon (GsPlugin *plugin, SnapdClient *client, GsApp *app, const gchar *id, S
}
if (store_snap == NULL)
store_snap = get_store_snap (plugin, id, cancellable, NULL);
store_snap = get_store_snap (plugin, gs_app_get_metadata_item (app, "snap::name"), cancellable, NULL);
if (store_snap != NULL)
return load_store_icon (app, store_snap);
......@@ -783,7 +787,7 @@ gs_plugin_refine_app (GsPlugin *plugin,
{
GsPluginData *priv = gs_plugin_get_data (plugin);
g_autoptr(SnapdClient) client = NULL;
const gchar *id, *name;
const gchar *name;
g_autoptr(SnapdSnap) local_snap = NULL;
g_autoptr(SnapdSnap) store_snap = NULL;
SnapdSnap *snap;
......@@ -797,16 +801,10 @@ gs_plugin_refine_app (GsPlugin *plugin,
if (client == NULL)
return FALSE;
id = gs_app_get_id (app);
if (id == NULL)
id = gs_app_get_source_default (app);
if (id == NULL)
return TRUE;
/* get information from local snaps and store */
local_snap = snapd_client_list_one_sync (client, id, cancellable, NULL);
local_snap = snapd_client_list_one_sync (client, gs_app_get_metadata_item (app, "snap::name"), cancellable, NULL);
if (local_snap == NULL || (flags & GS_PLUGIN_REFINE_FLAGS_REQUIRE_SCREENSHOTS) != 0)
store_snap = get_store_snap (plugin, id, cancellable, NULL);
store_snap = get_store_snap (plugin, gs_app_get_metadata_item (app, "snap::name"), cancellable, NULL);
if (local_snap == NULL && store_snap == NULL)
return TRUE;
......@@ -885,7 +883,7 @@ gs_plugin_refine_app (GsPlugin *plugin,
/* load icon if requested */
if (flags & GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON && gs_app_get_pixbuf (app) == NULL)
load_icon (plugin, client, app, id, local_snap, store_snap, cancellable);
load_icon (plugin, client, app, gs_app_get_metadata_item (app, "snap::name"), local_snap, store_snap, cancellable);
return TRUE;
}
......@@ -928,7 +926,7 @@ gs_plugin_app_install (GsPlugin *plugin,
gs_app_set_state (app, AS_APP_STATE_INSTALLING);
if (g_strcmp0 (gs_app_get_metadata_item (app, "snap::confinement"), "classic") == 0)
flags |= SNAPD_INSTALL_FLAGS_CLASSIC;
if (!snapd_client_install2_sync (client, flags, gs_app_get_id (app), NULL, NULL, progress_cb, app, cancellable, error)) {
if (!snapd_client_install2_sync (client, flags, gs_app_get_metadata_item (app, "snap::name"), NULL, NULL, progress_cb, app, cancellable, error)) {
gs_app_set_state_recover (app);
snapd_error_convert (error);
return FALSE;
......@@ -962,7 +960,7 @@ is_graphical (GsPlugin *plugin, GsApp *app, GCancellable *cancellable)
const gchar *interface;
// Only looks at the plugs for this snap
if (g_strcmp0 (snapd_plug_get_snap (plug), gs_app_get_id (app)) != 0)
if (g_strcmp0 (snapd_plug_get_snap (plug), gs_app_get_metadata_item (app, "snap::name")) != 0)
continue;
interface = snapd_plug_get_interface (plug);
......@@ -1001,10 +999,10 @@ gs_plugin_launch (GsPlugin *plugin,
g_autofree gchar *commandline = NULL;
GAppInfoCreateFlags flags = G_APP_INFO_CREATE_NONE;
if (g_strcmp0 (launch_name, gs_app_get_id (app)) == 0)
if (g_strcmp0 (launch_name, gs_app_get_metadata_item (app, "snap::name")) == 0)
commandline = g_strdup_printf ("snap run %s", launch_name);
else
commandline = g_strdup_printf ("snap run %s.%s", gs_app_get_id (app), launch_name);
commandline = g_strdup_printf ("snap run %s.%s", gs_app_get_metadata_item (app, "snap::name"), launch_name);
if (!is_graphical (plugin, app, cancellable))
flags |= G_APP_INFO_CREATE_NEEDS_TERMINAL;
......@@ -1034,7 +1032,7 @@ gs_plugin_app_remove (GsPlugin *plugin,
return FALSE;
gs_app_set_state (app, AS_APP_STATE_REMOVING);
if (!snapd_client_remove_sync (client, gs_app_get_id (app), progress_cb, app, cancellable, error)) {
if (!snapd_client_remove_sync (client, gs_app_get_metadata_item (app, "snap::name"), progress_cb, app, cancellable, error)) {
gs_app_set_state_recover (app);
snapd_error_convert (error);
return FALSE;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-software master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-software/issues\n"
"POT-Creation-Date: 2018-04-10 13:41+0000\n"
"PO-Revision-Date: 2018-04-12 17:55+0200\n"
"POT-Creation-Date: 2018-04-22 16:44+0000\n"
"PO-Revision-Date: 2018-04-23 22:15+0200\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenščina <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n"
......@@ -533,7 +533,7 @@ msgstr "Posodobi"
#. TRANSLATORS: this is button text to remove the application
#. TRANSLATORS: this is button text to remove the repo
#: src/gs-app-row.c:202 src/gs-app-row.c:211 src/gs-page.c:746
#: src/gs-repos-dialog.c:272
#: src/gs-repos-dialog.c:336
msgid "Remove"
msgstr "Odstrani"
......@@ -712,7 +712,7 @@ msgid "Install Third-Party Software?"
msgstr "Ali naj bo nameščena programska oprema tretjih virov?"
#. TRANSLATORS: window title
#: src/gs-common.c:214
#: src/gs-common.c:214 src/gs-repos-dialog.c:247
msgid "Enable Third-Party Software Repository?"
msgstr "Ali naj bodo omogočeni tudi programski viri tretjih oseb?"
......@@ -1906,7 +1906,7 @@ msgstr ""
#. TRANSLATORS: this is when we know about an application or
#. * addon, but it can't be listed for some reason
#: src/gs-extras-page.c:394 lib/gs-plugin-loader.c:1480
#: src/gs-extras-page.c:394 lib/gs-plugin-loader.c:1510
#, c-format
msgid "No addon codecs are available for the %s format."
msgstr "Za zapis %s ni na voljo dodatnih kodekov."
......@@ -2159,12 +2159,12 @@ msgid "Recommended Productivity Applications"
msgstr "Priporočeni pisarniški programi"
#. TRANSLATORS: this is the third party repositories info bar.
#: src/gs-overview-page.c:889 src/gs-repos-dialog.c:776
#: src/gs-overview-page.c:889 src/gs-repos-dialog.c:840
msgid "Access additional software from selected third party sources."
msgstr "Dostop do dodatne programske opreme prek izbranih virov tretjih oseb."
#. TRANSLATORS: this is the third party repositories info bar.
#: src/gs-overview-page.c:893 src/gs-repos-dialog.c:780
#: src/gs-overview-page.c:893 src/gs-repos-dialog.c:844
msgid ""
"Some of this software is proprietary and therefore has restrictions on use, "
"sharing, and access to source code."
......@@ -2174,12 +2174,13 @@ msgstr ""
#. TRANSLATORS: this is the clickable
#. * link on the third party repositories info bar
#: src/gs-overview-page.c:898 src/gs-repos-dialog.c:785
#: src/gs-overview-page.c:898 src/gs-repos-dialog.c:849
msgid "Find out more…"
msgstr "Več o tem …"
#. TRANSLATORS: button to turn on third party software repositories
#: src/gs-overview-page.c:906
#. TRANSLATORS: button to accept the agreement
#: src/gs-overview-page.c:906 src/gs-repos-dialog.c:252
msgid "Enable"
msgstr "Omogoči"
......@@ -2269,7 +2270,7 @@ msgid "%s will be removed, and you will have to install it to use it again."
msgstr ""
"Program %s bo odstranjen. Za ponovno uporabo ga bo treba znova namestiti."
#: lib/gs-plugin-loader.c:1483
#: lib/gs-plugin-loader.c:1513
#, c-format
msgid ""
"Information about %s, as well as options for how to get a codec that can "
......@@ -2422,20 +2423,20 @@ msgstr[3] "Nameščeno: %s in %s"
#. TRANSLATORS: this is a prompt message, and '%s' is a
#. * repository name, e.g. 'GNOME Nightly'
#: src/gs-repos-dialog.c:248
#: src/gs-repos-dialog.c:312
#, c-format
msgid "Remove “%s”?"
msgstr "Ali želite odstraniti »%s«?"
#. TRANSLATORS: this is a prompt message, and '%s' is a
#. * repository name, e.g. 'GNOME Nightly'
#: src/gs-repos-dialog.c:253
#: src/gs-repos-dialog.c:317
#, c-format
msgid "Disable “%s”?"
msgstr "Ali želite onemogočiti »%s«?"
#. TRANSLATORS: longer dialog text
#: src/gs-repos-dialog.c:257
#: src/gs-repos-dialog.c:321
msgid ""
"Software that has been installed from this repository will no longer receive "
"updates, including security fixes."
......@@ -2444,25 +2445,25 @@ msgstr ""
"niti nujnih varnostnih popravkov."
#. TRANSLATORS: this is button text to remove the repo
#: src/gs-repos-dialog.c:275
#: src/gs-repos-dialog.c:339
msgid "Disable"
msgstr "Onemogoči"
#. TRANSLATORS: this is the fallback text we use if we can't
#. figure out the name of the operating system
#: src/gs-repos-dialog.c:686
#: src/gs-repos-dialog.c:750
msgid "the operating system"
msgstr "operacijski sistem"
#. TRANSLATORS: This is the description text displayed in the Software Repositories dialog.
#. %s gets replaced by the name of the actual distro, e.g. Fedora.
#: src/gs-repos-dialog.c:755 src/gs-repos-dialog.c:791
#: src/gs-repos-dialog.c:819 src/gs-repos-dialog.c:855
#, c-format
msgid "These repositories supplement the default software provided by %s."
msgstr "Ta skladišča so dodatek v privzeti programski opremi sistema %s."
#. TRANSLATORS: info bar title in the software repositories dialog
#: src/gs-repos-dialog.c:773
#: src/gs-repos-dialog.c:837
msgid "Third Party Repositories"
msgstr "Skladišča tretjih virov"
......@@ -3130,42 +3131,59 @@ msgid "Unable to launch %s: %s is not installed"
msgstr "Ni mogoče zagnati %s: %s ni nameščen"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1513 src/gs-shell.c:1561 src/gs-shell.c:1609
#: src/gs-shell.c:1513 src/gs-shell.c:1564 src/gs-shell.c:1605
#: src/gs-shell.c:1653
msgid "Not enough disk space — free up some space and try again"
msgstr "Ni dovolj prostora na disku. Sprostite ga in poskusite znova."
#. TRANSLATORS: we failed to get a proper error code
#: src/gs-shell.c:1521 src/gs-shell.c:1569 src/gs-shell.c:1636
#: src/gs-shell.c:1521 src/gs-shell.c:1572 src/gs-shell.c:1613
#: src/gs-shell.c:1680
msgid "Sorry, something went wrong"
msgstr "Opravila ni bilo mogoče izvesti!"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1556
msgid "Failed to install file: not supported"
msgstr "Namestitev datoteke je spodletela: vrsta ni podprta"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1560
msgid "Failed to install file: authentication failed"
msgstr "Namestitev paketa je prekinjena: overitev je spodletela"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1597
msgid "Failed to install: not supported"
msgstr "Namestitev je spodletela: opravilo ni podprto"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1601
msgid "Failed to install: authentication failed"
msgstr "Namestitev je spodletela: ni mogoče izvesti overitve"
#. TRANSLATORS: failure text for the in-app notification,
#. * the %s is the origin, e.g. "Fedora" or
#. * "Fedora Project [fedoraproject.org]"
#: src/gs-shell.c:1603
#: src/gs-shell.c:1647
#, c-format
msgid "Unable to contact %s"
msgstr "Povezava s spletiščem %s ni mogoča."
#. TRANSLATORS: failure text for the in-app notification,
#. * where the %s is the application name (e.g. "GIMP")
#: src/gs-shell.c:1618
#: src/gs-shell.c:1662
#, c-format
msgid "%s needs to be restarted to use new plugins."
msgstr "Program %s je treba pred uporabo novih vstavkov ponovno zagnati"
#. TRANSLATORS: failure text for the in-app notification
#: src/gs-shell.c:1623
#: src/gs-shell.c:1667
msgid "This application needs to be restarted to use new plugins."
msgstr "Program je treba pred uporabo novih vstavkov ponovno zagnati."
#. TRANSLATORS: need to be connected to the AC power
#: src/gs-shell.c:1630
#: src/gs-shell.c:1674
msgid "AC power is required"
msgstr "Zahtevan je priklop napajanja iz omrežja"
......
......@@ -1551,10 +1551,13 @@ gs_shell_show_event_file_to_app (GsShell *shell, GsPluginEvent *event)
g_autoptr(GString) str = g_string_new (NULL);
switch (error->code) {
case GS_PLUGIN_ERROR_NOT_SUPPORTED:
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Failed to install file: not supported"));
break;
case GS_PLUGIN_ERROR_NO_SECURITY:
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Failed to install file: "
"authentication failed"));
g_string_append (str, _("Failed to install file: authentication failed"));
break;
case GS_PLUGIN_ERROR_NO_SPACE:
/* TRANSLATORS: failure text for the in-app notification */
......@@ -1581,6 +1584,47 @@ gs_shell_show_event_file_to_app (GsShell *shell, GsPluginEvent *event)
return TRUE;
}
static gboolean
gs_shell_show_event_url_to_app (GsShell *shell, GsPluginEvent *event)
{
GsShellEventButtons buttons = GS_SHELL_EVENT_BUTTON_NONE;
const GError *error = gs_plugin_event_get_error (event);
g_autoptr(GString) str = g_string_new (NULL);
switch (error->code) {
case GS_PLUGIN_ERROR_NOT_SUPPORTED:
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Failed to install: not supported"));
break;
case GS_PLUGIN_ERROR_NO_SECURITY:
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Failed to install: authentication failed"));
break;
case GS_PLUGIN_ERROR_NO_SPACE:
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Not enough disk space — free up some space "
"and try again"));
buttons |= GS_SHELL_EVENT_BUTTON_NO_SPACE;
break;
case GS_PLUGIN_ERROR_CANCELLED:
break;
default:
/* TRANSLATORS: we failed to get a proper error code */
g_string_append (str, _("Sorry, something went wrong"));
break;
}
if (str->len == 0)
return FALSE;
/* add extra debugging for debug builds */
if (gs_shell_show_detailed_error (shell, error))
g_string_append_printf (str, "\n%s", error->message);
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
}
static gboolean
gs_shell_show_event_fallback (GsShell *shell, GsPluginEvent *event)
{
......@@ -1694,8 +1738,9 @@ gs_shell_show_event (GsShell *shell, GsPluginEvent *event)
case GS_PLUGIN_ACTION_LAUNCH:
return gs_shell_show_event_launch (shell, event);
case GS_PLUGIN_ACTION_FILE_TO_APP:
case GS_PLUGIN_ACTION_URL_TO_APP:
return gs_shell_show_event_file_to_app (shell, event);
case GS_PLUGIN_ACTION_URL_TO_APP:
return gs_shell_show_event_url_to_app (shell, event);
default:
break;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment