Hello community, here is the log from the commit of package appstream-glib for openSUSE:Factory checked in at 2017-04-29 10:50:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/appstream-glib (Old) and /work/SRC/openSUSE:Factory/.appstream-glib.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "appstream-glib" Sat Apr 29 10:50:15 2017 rev:44 rq:490920 version:0.6.12 Changes: -------- --- /work/SRC/openSUSE:Factory/appstream-glib/appstream-glib.changes 2017-03-22 23:14:03.559653788 +0100 +++ /work/SRC/openSUSE:Factory/.appstream-glib.new/appstream-glib.changes 2017-04-29 10:50:18.239523918 +0200 @@ -1,0 +2,10 @@ +Mon Apr 24 10:51:33 UTC 2017 - [email protected] + +- Update to version 0.6.12: + + Copy hash table keys from AsApp to avoid them being used after + they've been freed. + + Validate kudos in AppData and AppStream files. + + Fix the predicate comparison when using globs in metainfo + files. + +------------------------------------------------------------------- Old: ---- appstream-glib-0.6.11.tar.xz New: ---- appstream-glib-0.6.12.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ appstream-glib.spec ++++++ --- /var/tmp/diff_new_pack.sMozGT/_old 2017-04-29 10:50:19.379362891 +0200 +++ /var/tmp/diff_new_pack.sMozGT/_new 2017-04-29 10:50:19.383362326 +0200 @@ -20,7 +20,7 @@ %define _build_from_vcs 1 Name: appstream-glib -Version: 0.6.11 +Version: 0.6.12 Release: 0 Summary: AppStream Abstraction Library License: LGPL-2.1+ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.sMozGT/_old 2017-04-29 10:50:19.423356676 +0200 +++ /var/tmp/diff_new_pack.sMozGT/_new 2017-04-29 10:50:19.427356110 +0200 @@ -2,9 +2,9 @@ <service name="tar_scm" mode="disabled"> <param name="url">https://github.com/hughsie/appstream-glib.git</param> <param name="scm">git</param> - <param name="versionformat">0.6.11</param> + <param name="versionformat">0.6.12</param> <param name="changesgenerate">enable</param> - <param name="revision">refs/tags/appstream_glib_0_6_11</param> + <param name="revision">refs/tags/appstream_glib_0_6_12</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.sMozGT/_old 2017-04-29 10:50:19.451352721 +0200 +++ /var/tmp/diff_new_pack.sMozGT/_new 2017-04-29 10:50:19.455352156 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/hughsie/appstream-glib.git</param> - <param name="changesrevision">093f296a9f8d8c58f5ea8ff2d117dd1efe19a9be</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">ab7b5a089ce01fd90ac53bf100d143eacca73c9c</param></service></servicedata> \ No newline at end of file ++++++ appstream-glib-0.6.11.tar.xz -> appstream-glib-0.6.12.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/NEWS new/appstream-glib-0.6.12/NEWS --- old/appstream-glib-0.6.11/NEWS 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/NEWS 2017-04-12 10:01:28.000000000 +0200 @@ -1,3 +1,14 @@ +Version 0.6.12 +~~~~~~~~~~~~~~ +Released: 2017-04-12 + +New Features: + - Validate kudos in AppData and AppStream files (Richard Hughes) + +Bugfixes: + - Copy hash table keys to avoid a common crash on Ubuntu (Robert Ancell) + - Fix the predicate comparison when using globs in metainfo files (Richard Hughes) + Version 0.6.11 ~~~~~~~~~~~~~~ Released: 2017-03-20 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/RELEASE new/appstream-glib-0.6.12/RELEASE --- old/appstream-glib-0.6.11/RELEASE 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/RELEASE 2017-04-12 10:01:28.000000000 +0200 @@ -2,10 +2,10 @@ 1. Write NEWS entries for appstream_glib in the same format as usual. -git shortlog appstream_glib_0_6_10.. | grep -i -v trivial | grep -v Merge > NEWS.new +git shortlog appstream_glib_0_6_11.. | grep -i -v trivial | grep -v Merge > NEWS.new -------------------------------------------------------------------------------- -Version 0.6.11 +Version 0.6.12 ~~~~~~~~~~~~~~ Released: 2017-xx-xx @@ -27,8 +27,8 @@ 4. Commit changes in git: -git commit -a -m "Release version 0.6.11" -git tag -s -f -m "Release 0.6.11" appstream_glib_0_6_11 +git commit -a -m "Release version 0.6.12" +git tag -s -f -m "Release 0.6.12" appstream_glib_0_6_12 <gpg password> git push --tags git push diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/configure.ac new/appstream-glib-0.6.12/configure.ac --- old/appstream-glib-0.6.11/configure.ac 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/configure.ac 2017-04-12 10:01:28.000000000 +0200 @@ -2,7 +2,7 @@ m4_define([as_major_version], [0]) m4_define([as_minor_version], [6]) -m4_define([as_micro_version], [11]) +m4_define([as_micro_version], [12]) m4_define([as_version], [as_major_version.as_minor_version.as_micro_version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/libappstream-glib/as-app-validate.c new/appstream-glib-0.6.12/libappstream-glib/as-app-validate.c --- old/appstream-glib-0.6.11/libappstream-glib/as-app-validate.c 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/libappstream-glib/as-app-validate.c 2017-04-12 10:01:28.000000000 +0200 @@ -879,6 +879,29 @@ } static gboolean +as_app_validate_kudos (AsApp *app, AsAppValidateHelper *helper, GError **error) +{ + GPtrArray *kudos = as_app_get_kudos (app); + for (guint i = 0; i < kudos->len; i++) { + const gchar *kudo = g_ptr_array_index (kudos, i); + const gchar *valid[] = { "AppMenu", + "HiDpiIcon", + "HighContrast", + "ModernToolkit", + "Notifications", + "SearchProvider", + "UserDocs", + NULL }; + if (!g_strv_contains (valid, kudo)) { + ai_app_validate_add (helper, + AS_PROBLEM_KIND_ATTRIBUTE_INVALID, + "<kudo> is invalid [%s]", kudo); + } + } + return TRUE; +} + +static gboolean as_app_validate_releases (AsApp *app, AsAppValidateHelper *helper, GError **error) { GPtrArray *releases; @@ -1438,6 +1461,10 @@ if (!as_app_validate_releases (app, helper, error)) return NULL; + /* kudos */ + if (!as_app_validate_kudos (app, helper, error)) + return NULL; + /* name */ name = as_app_get_name (app, "C"); if (name != NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/libappstream-glib/as-require.c new/appstream-glib-0.6.12/libappstream-glib/as-require.c --- old/appstream-glib-0.6.11/libappstream-glib/as-require.c 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/libappstream-glib/as-require.c 2017-04-12 10:01:28.000000000 +0200 @@ -339,36 +339,54 @@ { AsRequirePrivate *priv = GET_PRIVATE (require); gboolean ret = FALSE; + gint rc = 0; switch (priv->compare) { case AS_REQUIRE_COMPARE_EQ: - ret = as_utils_vercmp (version, priv->version) == 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc == 0; break; case AS_REQUIRE_COMPARE_NE: - ret = as_utils_vercmp (version, priv->version) != 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc != 0; break; case AS_REQUIRE_COMPARE_LT: - ret = as_utils_vercmp (version, priv->version) < 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc < 0; break; case AS_REQUIRE_COMPARE_GT: - ret = as_utils_vercmp (version, priv->version) > 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc > 0; break; case AS_REQUIRE_COMPARE_LE: - ret = as_utils_vercmp (version, priv->version) <= 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc <= 0; break; case AS_REQUIRE_COMPARE_GE: - ret = as_utils_vercmp (version, priv->version) >= 0; + rc = as_utils_vercmp (version, priv->version); + ret = rc >= 0; break; case AS_REQUIRE_COMPARE_GLOB: - ret = fnmatch (version, priv->version, 0) == 0; + ret = fnmatch (priv->version, version, 0) == 0; break; case AS_REQUIRE_COMPARE_REGEX: - ret = g_regex_match_simple (version, priv->version, 0, 0); + ret = g_regex_match_simple (priv->version, version, 0, 0); break; default: break; } + /* could not compare */ + if (rc == G_MAXINT) { + g_set_error (error, + AS_UTILS_ERROR, + AS_UTILS_ERROR_FAILED, + "failed to compare [%s] and [%s]", + priv->version, + version); + return FALSE; + } + /* set error */ if (!ret && error != NULL) { g_set_error (error, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/libappstream-glib/as-self-test.c new/appstream-glib-0.6.12/libappstream-glib/as-self-test.c --- old/appstream-glib-0.6.11/libappstream-glib/as-self-test.c 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/libappstream-glib/as-self-test.c 2017-04-12 10:01:28.000000000 +0200 @@ -1308,15 +1308,29 @@ require = as_require_new (); as_require_set_version (require, "0.1.2"); as_require_set_compare (require, AS_REQUIRE_COMPARE_EQ); - g_assert (as_require_version_compare (require, "0.1.2", NULL)); + ret = as_require_version_compare (require, "0.1.2", &error); + g_assert_no_error (error); + g_assert (ret); as_require_set_compare (require, AS_REQUIRE_COMPARE_LT); - g_assert (as_require_version_compare (require, "0.1.1", NULL)); + ret = as_require_version_compare (require, "0.1.1", &error); + g_assert_no_error (error); + g_assert (ret); as_require_set_compare (require, AS_REQUIRE_COMPARE_LE); - g_assert (as_require_version_compare (require, "0.1.2", NULL)); + ret = as_require_version_compare (require, "0.1.2", &error); + g_assert_no_error (error); + g_assert (ret); + + as_require_set_version (require, "0.1.?"); as_require_set_compare (require, AS_REQUIRE_COMPARE_GLOB); - g_assert (as_require_version_compare (require, "0.?.*", NULL)); + ret = as_require_version_compare (require, "0.1.9", &error); + g_assert_no_error (error); + g_assert (ret); + + as_require_set_version (require, "0.1.[0-9]"); as_require_set_compare (require, AS_REQUIRE_COMPARE_REGEX); - g_assert (as_require_version_compare (require, "0.1.[0-9]", NULL)); + ret = as_require_version_compare (require, "0.1.9", &error); + g_assert_no_error (error); + g_assert (ret); } static void @@ -4789,6 +4803,7 @@ { /* same */ g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.3"), ==, 0); + g_assert_cmpint (as_utils_vercmp ("001.002.003", "001.002.003"), ==, 0); /* same, not dotted decimal */ g_assert_cmpint (as_utils_vercmp ("1.2.3", "0x1020003"), ==, 0); @@ -4796,7 +4811,9 @@ /* upgrade and downgrade */ g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.4"), <, 0); + g_assert_cmpint (as_utils_vercmp ("001.002.000", "001.002.009"), <, 0); g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.2"), >, 0); + g_assert_cmpint (as_utils_vercmp ("001.002.009", "001.002.000"), >, 0); /* unequal depth */ g_assert_cmpint (as_utils_vercmp ("1.2.3", "1.2.3.1"), <, 0); @@ -5126,6 +5143,43 @@ g_assert (!as_app_has_category (app2, "Family")); } +static void +as_test_store_merge_then_replace_func (void) +{ + g_autoptr (AsApp) app1 = NULL; + g_autoptr (AsApp) app2 = NULL; + g_autoptr (AsApp) app3 = NULL; + g_autoptr (AsStore) store = NULL; + + store = as_store_new (); + + /* this test case checks that a memory error using app names as keys is fixed */ + + /* add app */ + app1 = as_app_new (); + as_app_set_id (app1, "org.gnome.Software.desktop"); + _as_app_add_format_kind (app1, AS_FORMAT_KIND_DESKTOP); + as_app_set_priority (app1, 0); + as_store_add_app (store, app1); + g_clear_object (&app1); + + /* add app that merges with the first */ + app2 = as_app_new (); + as_app_set_id (app2, "org.gnome.Software.desktop"); + _as_app_add_format_kind (app2, AS_FORMAT_KIND_DESKTOP); + as_app_set_priority (app2, 0); + as_store_add_app (store, app2); + g_clear_object (&app2); + + /* add app that replaces the second */ + app3 = as_app_new (); + as_app_set_id (app3, "org.gnome.Software.desktop"); + _as_app_add_format_kind (app3, AS_FORMAT_KIND_DESKTOP); + as_app_set_priority (app3, 1); + as_store_add_app (store, app3); + g_clear_object (&app3); +} + /* shows the unique-id globbing functions at work */ static void as_test_utils_unique_id_hash_func (void) @@ -5197,7 +5251,7 @@ /* add to hash table using the unique ID as a key */ hash = g_hash_table_new ((GHashFunc) as_utils_unique_id_hash, (GEqualFunc) as_utils_unique_id_equal); - g_hash_table_insert (hash, "dave", app); + g_hash_table_insert (hash, (gpointer) "dave", app); /* get with exact key */ found = g_hash_table_lookup (hash, "dave"); @@ -5313,6 +5367,7 @@ g_test_add_func ("/AppStream/store{unique}", as_test_store_unique_func); g_test_add_func ("/AppStream/store{merge}", as_test_store_merge_func); g_test_add_func ("/AppStream/store{merge-replace}", as_test_store_merge_replace_func); + g_test_add_func ("/AppStream/store{merge-then-replace}", as_test_store_merge_then_replace_func); g_test_add_func ("/AppStream/store{empty}", as_test_store_empty_func); if (g_test_slow ()) { g_test_add_func ("/AppStream/store{auto-reload-dir}", as_test_store_auto_reload_dir_func); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/libappstream-glib/as-store.c new/appstream-glib-0.6.12/libappstream-glib/as-store.c --- old/appstream-glib-0.6.11/libappstream-glib/as-store.c 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/libappstream-glib/as-store.c 2017-04-12 10:01:28.000000000 +0200 @@ -1078,7 +1078,7 @@ if (apps == NULL) { apps = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); g_hash_table_insert (priv->hash_merge_id, - (gpointer) as_app_get_id (app), + g_strdup (as_app_get_id (app)), apps); } g_debug ("added %s merge component: %s", @@ -1260,7 +1260,7 @@ if (apps == NULL) { apps = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); g_hash_table_insert (priv->hash_id, - (gpointer) as_app_get_id (app), + g_strdup (as_app_get_id (app)), apps); } g_ptr_array_add (apps, g_object_ref (app)); @@ -1268,7 +1268,7 @@ /* success, add to array */ g_ptr_array_add (priv->array, g_object_ref (app)); g_hash_table_insert (priv->hash_unique_id, - (gpointer) as_app_get_unique_id (app), + g_strdup (as_app_get_unique_id (app)), g_object_ref (app)); pkgnames = as_app_get_pkgnames (app); for (i = 0; i < pkgnames->len; i++) { @@ -3472,15 +3472,15 @@ NULL); priv->hash_id = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, + g_free, (GDestroyNotify) g_ptr_array_unref); priv->hash_merge_id = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, + g_free, (GDestroyNotify) g_ptr_array_unref); priv->hash_unique_id = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, + g_free, g_object_unref); priv->hash_pkgname = g_hash_table_new_full (g_str_hash, g_str_equal, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/po/cs.po new/appstream-glib-0.6.12/po/cs.po --- old/appstream-glib-0.6.11/po/cs.po 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/po/cs.po 2017-04-12 10:01:28.000000000 +0200 @@ -7,6 +7,8 @@ # Marek Černocký <[email protected]>, 2016 # Richard Hughes <[email protected]>, 2016. #zanata # Zdenek <[email protected]>, 2016. #zanata +# Daniel Rusek <[email protected]>, 2017. #zanata +# Zdenek <[email protected]>, 2017. #zanata msgid "" msgstr "" "Project-Id-Version: appstream-glib 0.6.7\n" @@ -15,8 +17,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-09-15 06:01-0400\n" -"Last-Translator: Zdenek <[email protected]>\n" +"PO-Revision-Date: 2017-04-09 06:58-0400\n" +"Last-Translator: Daniel Rusek <[email protected]>\n" "Language-Team: Czech (http://www.transifex.com/freedesktop/appstream-glib/" "language/cs/)\n" "Language: cs\n" @@ -56,32 +58,32 @@ #. TRANSLATORS: command line option #: client/as-builder.c:108 msgid "Set the logging directory" -msgstr "Nastavit složku pro záznam" +msgstr "Nastavit adresář pro záznam" #. TRANSLATORS: command line option #: client/as-builder.c:111 msgid "Set the packages directory" -msgstr "Nastavit složku pro balíčky" +msgstr "Nastavit adresář pro balíčky" #. TRANSLATORS: command line option #: client/as-builder.c:114 msgid "Set the temporary directory" -msgstr "Nastavit složku pro dočasné soubory" +msgstr "Nastavit adresář pro dočasné soubory" #. TRANSLATORS: command line option #: client/as-builder.c:117 client/as-compose.c:346 msgid "Set the output directory" -msgstr "Nastavit výstupní složku" +msgstr "Nastavit výstupní adresář" #. TRANSLATORS: command line option #: client/as-builder.c:120 client/as-compose.c:349 msgid "Set the icons directory" -msgstr "Nastavit složku s ikonami" +msgstr "Nastavit adresář s ikonami" #. TRANSLATORS: command line option #: client/as-builder.c:123 msgid "Set the cache directory" -msgstr "Nastavit složku pro mezipaměť" +msgstr "Nastavit adresář pro mezipaměť" #. TRANSLATORS: command line option #: client/as-builder.c:126 client/as-compose.c:358 @@ -200,7 +202,7 @@ #. * not be created #: client/as-compose.c:482 msgid "Error creating output directory" -msgstr "Chyba při vytváření výstupní složky" +msgstr "Chyba při vytváření výstupního adresáře" #. TRANSLATORS: we've saving the XML file to disk #: client/as-compose.c:491 @@ -301,7 +303,7 @@ #. TRANSLATORS: this is when a device ctrl+c's a watch #: client/as-util.c:4141 msgid "Cancelled" -msgstr "" +msgstr "Zrušeno" #. TRANSLATORS: this is the --nonet argument #: client/as-util.c:4170 @@ -436,12 +438,12 @@ #. TRANSLATORS: command description #: client/as-util.c:4347 msgid "Add a provide to a source file" -msgstr "" +msgstr "Přidání poskytovatele do zdrojového souboru" #. TRANSLATORS: command description #: client/as-util.c:4353 msgid "Add a language to a source file" -msgstr "" +msgstr "Přidání jazyka do zdrojového souboru" #. TRANSLATORS: command description #: client/as-util.c:4359 @@ -491,7 +493,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4413 msgid "Watch AppStream locations for changes" -msgstr "" +msgstr "Sledovat umístění AppStream na změny" #. TRANSLATORS: program name #: client/as-util.c:4426 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.6.11/po/fi.po new/appstream-glib-0.6.12/po/fi.po --- old/appstream-glib-0.6.11/po/fi.po 2017-03-20 21:39:52.000000000 +0100 +++ new/appstream-glib-0.6.12/po/fi.po 2017-04-12 10:01:28.000000000 +0200 @@ -6,6 +6,7 @@ # Jiri Grönroos <[email protected]>, 2014 # Ville Skyttä <[email protected]>, 2016 # Richard Hughes <[email protected]>, 2016. #zanata +# Jiri Grönroos <[email protected]>, 2017. #zanata msgid "" msgstr "" "Project-Id-Version: appstream-glib 0.6.7\n" @@ -14,8 +15,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-08-06 03:04-0400\n" -"Last-Translator: Copied by Zanata <[email protected]>\n" +"PO-Revision-Date: 2017-03-26 08:23-0400\n" +"Last-Translator: Jiri Grönroos <[email protected]>\n" "Language-Team: Finnish (http://www.transifex.com/freedesktop/appstream-glib/" "language/fi/)\n" "Language: fi\n" @@ -156,7 +157,7 @@ #. TRANSLATORS: we've saving the icon file to disk #: client/as-compose.c:124 client/as-compose.c:179 msgid "Saving icon" -msgstr "" +msgstr "Tallennetaan kuvake" #. TRANSLATORS: command line option #: client/as-compose.c:343 @@ -172,12 +173,12 @@ #. * be loaded #: client/as-compose.c:418 msgid "Error loading AppData file" -msgstr "" +msgstr "Virhe ladatessa AppData-tiedostoa" #. TRANSLATORS: the .mo files could not be parsed #: client/as-compose.c:431 msgid "Error parsing translations" -msgstr "" +msgstr "Virhe jäsentäessä kielikäännöksiä" #. TRANSLATORS: we could not auto-add the kudo #: client/as-compose.c:442 @@ -193,7 +194,7 @@ #. * be loaded #: client/as-compose.c:469 msgid "Error loading desktop file" -msgstr "" +msgstr "Virhe ladatessa desktop-tiedostoa" #. TRANSLATORS: this is when the folder could #. * not be created @@ -204,13 +205,13 @@ #. TRANSLATORS: we've saving the XML file to disk #: client/as-compose.c:491 msgid "Saving AppStream" -msgstr "" +msgstr "Tallennetaan AppStream" #. TRANSLATORS: this is when the destination file #. * cannot be saved for some reason #: client/as-compose.c:501 msgid "Error saving AppStream file" -msgstr "" +msgstr "Virhe tallentaessa AppStream-tiedostoa" #. TRANSLATORS: this is a command alias #: client/as-util.c:104 @@ -220,7 +221,7 @@ #: client/as-util.c:186 msgid "Command not found, valid commands are:" -msgstr "" +msgstr "Komentoa ei löydy, kelvolliset komennot ovat:" #. TRANSLATORS: any manual changes required? #. * also note: FIXME is a hardcoded string @@ -263,7 +264,7 @@ #. TRANSLATORS: not a recognised file type #: client/as-util.c:649 client/as-util.c:1047 client/as-util.c:1148 msgid "Format not recognised" -msgstr "" +msgstr "Muotoa ei tunnistettu" #. TRANSLATORS: probably wrong XML #: client/as-util.c:1980 @@ -281,26 +282,26 @@ #: client/as-util.c:2812 msgid "Validation failed" -msgstr "" +msgstr "Vahvistaminen epäonnistui" #: client/as-util.c:2856 msgid "Validation of files failed" -msgstr "" +msgstr "Tiedostojen vahvistaminen epäonnistui" #. TRANSLATORS: application was removed #: client/as-util.c:3879 msgid "Removed" -msgstr "" +msgstr "Poistettu" #. TRANSLATORS: application was added #: client/as-util.c:3892 msgid "Added" -msgstr "" +msgstr "Lisätty" #. TRANSLATORS: this is when a device ctrl+c's a watch #: client/as-util.c:4141 msgid "Cancelled" -msgstr "" +msgstr "Peruttu" #. TRANSLATORS: this is the --nonet argument #: client/as-util.c:4170 @@ -330,7 +331,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4221 msgid "Creates an example Appdata file from a .desktop file" -msgstr "" +msgstr "Luo tyhjän Appdata-esimerkkiteidoston .desktop-tiedostosta" #. TRANSLATORS: command description #: client/as-util.c:4227 @@ -340,7 +341,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4233 msgid "Search for AppStream applications" -msgstr "" +msgstr "Etsi AppStream-sovelluksia" #. TRANSLATORS: command description #: client/as-util.c:4239 @@ -350,7 +351,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4245 msgid "Show all installed AppStream applications" -msgstr "" +msgstr "Näytä kaikki asennetut AppStream-sovellukset" #. TRANSLATORS: command description #: client/as-util.c:4251 @@ -440,7 +441,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4353 msgid "Add a language to a source file" -msgstr "" +msgstr "Lisää kieli lähdetiedostoon" #. TRANSLATORS: command description #: client/as-util.c:4359 @@ -470,7 +471,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4389 msgid "Modify an AppData file" -msgstr "" +msgstr "Muokkaa AppData-tiedostoa" #. TRANSLATORS: command description #: client/as-util.c:4395 @@ -480,7 +481,7 @@ #. TRANSLATORS: command description #: client/as-util.c:4401 msgid "Merge several files to an AppStream file" -msgstr "" +msgstr "Yhdistä useita tiedostoja AppStream-tiedostoon" #. TRANSLATORS: command description #: client/as-util.c:4407
