Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libsecret for openSUSE:Factory checked in at 2023-09-26 22:00:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsecret (Old) and /work/SRC/openSUSE:Factory/.libsecret.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsecret" Tue Sep 26 22:00:51 2023 rev:32 rq:1113450 version:0.21.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libsecret/libsecret.changes 2023-09-20 13:21:33.966258433 +0200 +++ /work/SRC/openSUSE:Factory/.libsecret.new.1770/libsecret.changes 2023-09-26 22:02:42.238644133 +0200 @@ -1,0 +2,9 @@ +Tue Sep 19 23:38:29 UTC 2023 - Luciano Santos <luc1...@opensuse.org> + +- Update to version 0.21.1: + + Fix updating credentials by another process in the same Flatpak + sandbox. + + Migrate to g_memdup2. + + Updated translations. + +------------------------------------------------------------------- @@ -4 +13 @@ -- Update to version 0.20.6: +- Update to version 0.21.0: Old: ---- libsecret-0.21.0.tar.xz New: ---- libsecret-0.21.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsecret.spec ++++++ --- /var/tmp/diff_new_pack.7iORVF/_old 2023-09-26 22:02:43.326683423 +0200 +++ /var/tmp/diff_new_pack.7iORVF/_new 2023-09-26 22:02:43.326683423 +0200 @@ -18,7 +18,7 @@ %define have_lang 1 Name: libsecret -Version: 0.21.0 +Version: 0.21.1 Release: 0 Summary: Library for accessing the Secret Service API License: LGPL-2.1-or-later ++++++ libsecret-0.21.0.tar.xz -> libsecret-0.21.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/.gitlab-ci.yml new/libsecret-0.21.1/.gitlab-ci.yml --- old/libsecret-0.21.0/.gitlab-ci.yml 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/.gitlab-ci.yml 2023-09-19 23:11:26.000000000 +0200 @@ -15,7 +15,7 @@ - meson _build -Dwerror=true -Dc_args=-Wno-error=deprecated-declarations -Dgtk_doc=false - meson compile -C _build - eval `dbus-launch --sh-syntax` - - meson test -C _build + - meson test -C _build --print-errorlogs artifacts: when: on_failure paths: @@ -29,7 +29,7 @@ - meson _build -Db_sanitize=address -Dgtk_doc=false -Dintrospection=false - meson compile -C _build - eval `dbus-launch --sh-syntax` - - meson test -C _build + - meson test -C _build --print-errorlogs allow_failure: true artifacts: when: on_failure @@ -44,7 +44,7 @@ - meson _build -Db_sanitize=undefined -Dgtk_doc=false - meson compile -C _build - eval `dbus-launch --sh-syntax` - - meson test -C _build + - meson test -C _build --print-errorlogs artifacts: when: on_failure paths: @@ -78,7 +78,7 @@ - swtpm socket --tpm2 --tpmstate dir=$XDG_CONFIG_HOME/mytpm1 --flags startup-clear --ctrl type=tcp,port=2322 --server type=tcp,port=2321 --daemon - 'tpm2-abrmd --logger=stdout --tcti=swtpm: --session --allow-root --flush-all &' - 'export TCTI=tabrmd:bus_type=session' - - meson test -C _build + - meson test -C _build --print-errorlogs - ninja coverage-html -C _build coverage: '/^\s+lines.+:\s+([\d.]+\%)\s+/' artifacts: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/NEWS new/libsecret-0.21.1/NEWS --- old/libsecret-0.21.0/NEWS 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/NEWS 2023-09-19 23:11:26.000000000 +0200 @@ -1,3 +1,9 @@ +0.21.1 + * Fix updating credentials by another process in the same Flatpak sandbox [#62, !99] + * Migrate to g_memdup2 [!121] + * Print error logs in CI [!125] + * Updated translations + 0.21.0 * Unlock the keyring before getting secret attributes [!105] * file-backend: avoid deadlock when portal op is canceled [!118, !120] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/egg/egg-tpm2.c new/libsecret-0.21.1/egg/egg-tpm2.c --- old/libsecret-0.21.0/egg/egg-tpm2.c 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/egg/egg-tpm2.c 2023-09-19 23:11:26.000000000 +0200 @@ -407,7 +407,7 @@ data = g_variant_get_fixed_array(out_private_variant, &count, sizeof(guint8)); - guint8 *marshaled_out_private = g_memdup(data, count); + guint8 *marshaled_out_private = g_memdup2(data, count); count = 0; TPM2B_PRIVATE out_private = { @@ -434,7 +434,7 @@ data = g_variant_get_fixed_array(out_public_variant, &count, sizeof(guint8)); - guint8 *marshaled_out_public = g_memdup(data, count); + guint8 *marshaled_out_public = g_memdup2(data, count); TPM2B_PUBLIC out_public = { .size = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/libsecret/secret-file-collection.c new/libsecret-0.21.1/libsecret/secret-file-collection.c --- old/libsecret-0.21.0/libsecret/secret-file-collection.c 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/libsecret/secret-file-collection.c 2023-09-19 23:11:26.000000000 +0200 @@ -54,6 +54,7 @@ guint64 usage_count; GBytes *key; GVariant *items; + guint64 file_last_modified; }; static void secret_file_collection_async_initable_iface (GAsyncInitableIface *iface); @@ -68,6 +69,22 @@ PROP_PASSWORD }; +static guint64 +get_file_last_modified (SecretFileCollection *self) +{ + GFileInfo *info; + guint64 res; + + info = g_file_query_info (self->file, G_FILE_ATTRIBUTE_TIME_MODIFIED, G_FILE_QUERY_INFO_NONE, NULL, NULL); + if (info == NULL) + return 0; + + res = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED); + g_object_unref (info); + + return res; +} + static gboolean do_derive_key (SecretFileCollection *self) { @@ -296,17 +313,13 @@ egg_libgcrypt_initialize (); } -static void -on_load_contents (GObject *source_object, - GAsyncResult *result, - gpointer user_data) +static gboolean +load_contents (SecretFileCollection *self, + gchar *contents, /* takes ownership */ + gsize length, + GError **error) { - GFile *file = G_FILE (source_object); - GTask *task = G_TASK (user_data); - SecretFileCollection *self = g_task_get_source_object (task); - gchar *contents; gchar *p; - gsize length; GVariant *variant; GVariant *salt_array; guint32 salt_size; @@ -315,70 +328,25 @@ guint64 usage_count; gconstpointer data; gsize n_data; - GError *error = NULL; - gboolean ret; - - ret = g_file_load_contents_finish (file, result, - &contents, &length, - &self->etag, - &error); - - if (!ret) { - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) { - GVariantBuilder builder; - guint8 salt[SALT_SIZE]; - - g_clear_error (&error); - - gcry_create_nonce (salt, sizeof(salt)); - self->salt = g_bytes_new (salt, sizeof(salt)); - self->iteration_count = ITERATION_COUNT; - self->modified = g_date_time_new_now_utc (); - self->usage_count = 0; - - if (!do_derive_key (self)) { - g_task_return_new_error (task, - SECRET_ERROR, - SECRET_ERROR_PROTOCOL, - "couldn't derive key"); - g_object_unref (task); - return; - } - - g_variant_builder_init (&builder, - G_VARIANT_TYPE ("a(a{say}ay)")); - self->items = g_variant_builder_end (&builder); - g_variant_ref_sink (self->items); - g_task_return_boolean (task, TRUE); - g_object_unref (task); - return; - } - - g_task_return_error (task, error); - g_object_unref (task); - return; - } p = contents; if (length < KEYRING_FILE_HEADER_LEN || memcmp (p, KEYRING_FILE_HEADER, KEYRING_FILE_HEADER_LEN) != 0) { - g_task_return_new_error (task, - SECRET_ERROR, - SECRET_ERROR_INVALID_FILE_FORMAT, - "file header mismatch"); - g_object_unref (task); - return; + g_set_error_literal (error, + SECRET_ERROR, + SECRET_ERROR_INVALID_FILE_FORMAT, + "file header mismatch"); + return FALSE; } p += KEYRING_FILE_HEADER_LEN; length -= KEYRING_FILE_HEADER_LEN; if (length < 2 || *p != MAJOR_VERSION || *(p + 1) != MINOR_VERSION) { - g_task_return_new_error (task, - SECRET_ERROR, - SECRET_ERROR_INVALID_FILE_FORMAT, - "version mismatch"); - g_object_unref (task); - return; + g_set_error_literal (error, + SECRET_ERROR, + SECRET_ERROR_INVALID_FILE_FORMAT, + "version mismatch"); + return FALSE; } p += 2; length -= 2; @@ -407,19 +375,125 @@ g_assert (n_data == salt_size); self->salt = g_bytes_new (data, n_data); + + g_variant_unref (salt_array); + g_variant_unref (variant); + if (!do_derive_key (self)) { - g_task_return_new_error (task, - SECRET_ERROR, - SECRET_ERROR_PROTOCOL, - "couldn't derive key"); - goto out; + g_set_error_literal (error, + SECRET_ERROR, + SECRET_ERROR_PROTOCOL, + "couldn't derive key"); + return FALSE; } - g_task_return_boolean (task, TRUE); + return TRUE; +} + +static gboolean +init_empty_file (SecretFileCollection *self, + GError **error) +{ + GVariantBuilder builder; + guint8 salt[SALT_SIZE]; + + gcry_create_nonce (salt, sizeof(salt)); + self->salt = g_bytes_new (salt, sizeof(salt)); + self->iteration_count = ITERATION_COUNT; + self->modified = g_date_time_new_now_utc (); + self->usage_count = 0; + + if (!do_derive_key (self)) { + g_set_error_literal (error, + SECRET_ERROR, + SECRET_ERROR_PROTOCOL, + "couldn't derive key"); + return FALSE; + } + + g_variant_builder_init (&builder, + G_VARIANT_TYPE ("a(a{say}ay)")); + self->items = g_variant_builder_end (&builder); + g_variant_ref_sink (self->items); + + return TRUE; +} + +static void +ensure_up_to_date (SecretFileCollection *self) +{ + guint64 last_modified; + + last_modified = get_file_last_modified (self); + if (last_modified != self->file_last_modified) { + gchar *contents = NULL; + gsize length = 0; + gboolean success; + GError *error = NULL; + + self->file_last_modified = last_modified; + g_clear_pointer (&self->etag, g_free); + + success = g_file_load_contents (self->file, NULL, &contents, &length, &self->etag, &error); + + if (!success && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) { + g_clear_error (&error); + + success = init_empty_file (self, &error); + } + + if (success) + success = load_contents (self, contents, length, &error); + + if (!success) + g_debug ("Failed to load file contents: %s", error ? error->message : "Unknown error"); + + g_clear_error (&error); + } +} + +static void +on_load_contents (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + GFile *file = G_FILE (source_object); + GTask *task = G_TASK (user_data); + SecretFileCollection *self = g_task_get_source_object (task); + gchar *contents; + gsize length; + GError *error = NULL; + gboolean ret; + + self->file_last_modified = get_file_last_modified (self); + + ret = g_file_load_contents_finish (file, result, + &contents, &length, + &self->etag, + &error); + + if (!ret) { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) { + g_clear_error (&error); + + if (init_empty_file (self, &error)) { + g_task_return_boolean (task, TRUE); + g_object_unref (task); + return; + } + } + + g_task_return_error (task, error); + g_object_unref (task); + return; + } + + ret = load_contents (self, contents, length, &error); + if (ret) + g_task_return_boolean (task, ret); + else + g_task_return_error (task, error); - out: - g_variant_unref (salt_array); - g_variant_unref (variant); g_object_unref (task); } @@ -546,6 +620,8 @@ GDateTime *created = NULL; GDateTime *modified; + ensure_up_to_date (self); + hashed_attributes = hash_attributes (self, attributes); if (!hashed_attributes) { g_set_error (error, @@ -657,6 +733,8 @@ GVariant *child; GList *result = NULL; + ensure_up_to_date (self); + g_variant_iter_init (&iter, self->items); while ((child = g_variant_iter_next_value (&iter)) != NULL) { GVariant *hashed_attributes; @@ -750,6 +828,8 @@ GVariant *child; gboolean removed = FALSE; + ensure_up_to_date (self); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(a{say}ay)")); g_variant_iter_init (&items, self->items); while ((child = g_variant_iter_next_value (&items)) != NULL) { @@ -791,6 +871,8 @@ return; } + self->file_last_modified = get_file_last_modified (self); + g_task_return_boolean (task, TRUE); g_object_unref (task); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/meson.build new/libsecret-0.21.1/meson.build --- old/libsecret-0.21.0/meson.build 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/meson.build 2023-09-19 23:11:26.000000000 +0200 @@ -1,5 +1,5 @@ project('libsecret', 'c', - version: '0.21.0', + version: '0.21.1', license: 'GPL2+', meson_version: '>= 0.50', ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/po/el.po new/libsecret-0.21.1/po/el.po --- old/libsecret-0.21.0/po/el.po 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/po/el.po 2023-09-19 23:11:26.000000000 +0200 @@ -6,53 +6,56 @@ msgid "" msgstr "" "Project-Id-Version: libsecret master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=libsecret&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-12-19 15:14+0000\n" -"PO-Revision-Date: 2014-07-09 14:50+0200\n" -"Last-Translator: Tom Tryfonidis <tomt...@gmail.com>\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libsecret/issues\n" +"POT-Creation-Date: 2022-07-26 08:24+0000\n" +"PO-Revision-Date: 2023-09-09 02:21+0300\n" +"Last-Translator: Efstathios Iosifidis <eiosifi...@gnome.org>\n" "Language-Team: t...@lists.gnome.gr\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.6.5\n" +"X-Generator: Poedit 3.3.2\n" "X-Project-Style: gnome\n" -#: ../libsecret/secret-item.c:1161 +#: libsecret/secret-item.c:1130 #, c-format msgid "Received invalid secret from the secret storage" msgstr "ÎήÏη μη ÎÎ³ÎºÏ ÏÎ¿Ï Î¼Ï ÏÏÎ¹ÎºÎ¿Ï Î±ÏÏ Ïη Î¼Ï ÏÏική ÏοÏοθεÏία αÏÎ¿Î¸Î®ÎºÎµÏ ÏηÏ" -#: ../libsecret/secret-methods.c:1055 +#: libsecret/secret-methods.c:1060 msgid "Default keyring" msgstr "Î ÏοεÏιλεγμÎνη κλειδοθήκη" -#: ../libsecret/secret-session.c:244 ../libsecret/secret-session.c:281 +#: libsecret/secret-session.c:243 libsecret/secret-session.c:279 msgid "Couldnât communicate with the secret storage" msgstr "ÎδÏναÏη η εÏικοινÏνία με Ïη Î¼Ï ÏÏική ÏοÏοθεÏία αÏÎ¿Î¸Î®ÎºÎµÏ ÏηÏ" -#: ../tool/secret-tool.c:39 +#: tool/secret-tool.c:42 msgid "the label for the new stored item" msgstr "η εÏικÎÏα για Ïο νεοαÏÎ¿Î¸Î·ÎºÎµÏ Î¼Îνο ÏÏοιÏείο" -#: ../tool/secret-tool.c:41 +#: tool/secret-tool.c:44 msgid "the collection in which to place the stored item" msgstr "η ÏÏ Î»Î»Î¿Î³Î® ÏÏην οÏοία θα ÏοÏοθεÏηθεί Ïο αÏÎ¿Î¸Î·ÎºÎµÏ Î¼Îνο ÏÏοιÏείο" -#: ../tool/secret-tool.c:43 ../tool/secret-tool.c:50 ../tool/secret-tool.c:437 +#: tool/secret-tool.c:46 tool/secret-tool.c:53 tool/secret-tool.c:458 msgid "attribute value pairs of item to lookup" msgstr "ιδιÏÏηÏα Î¶ÎµÏ Î³Ïν ÏιμÏν ÏÎ¿Ï ÏÏοιÏÎµÎ¯Î¿Ï ÏÏÎ¿Ï Î±Î½Î±Î¶Î®ÏηÏη" -#: ../tool/secret-tool.c:57 +#: tool/secret-tool.c:60 msgid "attribute value pairs which match items to clear" msgstr "ιδιÏÏηÏα Î¶ÎµÏ Î³Ïν ÏιμÏν ÏÎ¿Ï ÏαιÏιάζει με Ïα ÏÏοιÏεία ÏÏÎ¿Ï ÎµÎºÎºÎ±Î¸Î¬ÏιÏη" -#: ../tool/secret-tool.c:433 +#: tool/secret-tool.c:67 +msgid "collection in which to lock" +msgstr "ÏÏ Î»Î»Î¿Î³Î® ÏÏην οÏοία να κλειδÏθεί" + +#: tool/secret-tool.c:454 msgid "return all results, instead of just first one" msgstr "εÏιÏÏÏοÏή ÏλÏν ÏÏν αÏοÏελεÏμάÏÏν, ανÏί να εÏιÏÏÏÎÏεÏαι μÏνο Ïο ÏÏÏÏο" -#: ../tool/secret-tool.c:435 +#: tool/secret-tool.c:456 msgid "unlock item results if necessary" msgstr "ξεκλείδÏμα ÏÏν αÏοÏελεÏμάÏÏν ÏÏοιÏÎµÎ¯Î¿Ï , αν αÏαιÏείÏαι" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/po/pa.po new/libsecret-0.21.1/po/pa.po --- old/libsecret-0.21.0/po/pa.po 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/po/pa.po 2023-09-19 23:11:26.000000000 +0200 @@ -2,57 +2,60 @@ # Copyright (C) 2013 libsecret's COPYRIGHT HOLDER # This file is distributed under the same license as the libsecret package. # -# A S Alam <aa...@users.sf.net>, 2013. +# A S Alam <aa...@users.sf.net>, 2013, 2023. msgid "" msgstr "" "Project-Id-Version: libsecret master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=libsecret&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-08-20 17:35+0000\n" -"PO-Revision-Date: 2013-09-17 21:54-0500\n" -"Last-Translator: A S Alam <aa...@users.sf.net>\n" -"Language-Team: Punjabi/Panjabi <punjabi-us...@lists.sf.net>\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libsecret/issues\n" +"POT-Creation-Date: 2022-07-26 08:24+0000\n" +"PO-Revision-Date: 2023-08-30 19:04-0700\n" +"Last-Translator: A S Alam <aa...@satluj.org>\n" +"Language-Team: Punjabi <kde-i18n-...@kde.org>\n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 23.04.3\n" -#: ../libsecret/secret-item.c:1164 +#: libsecret/secret-item.c:1130 #, c-format msgid "Received invalid secret from the secret storage" msgstr "à¨à©à¨ªà¨¤ ਸà¨à©à¨°à©à© ਤà©à¨ à¨à¨²à¨¤ à¨à©à¨¦ ਮਿਲਿà¨" -#: ../libsecret/secret-methods.c:1055 +#: libsecret/secret-methods.c:1060 msgid "Default keyring" msgstr "ਮà©à¨² à¨à©à¨°à¨¿à©°à¨" -#: ../libsecret/secret-session.c:244 ../libsecret/secret-session.c:281 +#: libsecret/secret-session.c:243 libsecret/secret-session.c:279 msgid "Couldnât communicate with the secret storage" msgstr "à¨à©à¨ªà¨¤ ਸà¨à©à¨°à©à© ਨਾਲ ਸੰà¨à¨¾à¨° ਨਹà©à¨ ਹ੠ਸà¨à¨¿à¨" -#: ../tool/secret-tool.c:39 +#: tool/secret-tool.c:42 msgid "the label for the new stored item" msgstr "ਨਵà©à¨ ਸà¨à©à¨° à¨à©à¨¤à© à¨à¨à¨à¨® ਲਠਲà©à¨¬à¨²" -#: ../tool/secret-tool.c:41 +#: tool/secret-tool.c:44 msgid "the collection in which to place the stored item" msgstr "à¨à©°à¨¡à¨¾à¨°, à¨à¨¿à¨¸ ਵਿੱਠਸà¨à©à¨° à¨à©à¨¤à© à¨à¨à¨à¨® ਨà©à©° ਰੱà¨à¨£à¨¾ ਹà©" -#: ../tool/secret-tool.c:43 ../tool/secret-tool.c:50 ../tool/secret-tool.c:437 +#: tool/secret-tool.c:46 tool/secret-tool.c:53 tool/secret-tool.c:458 msgid "attribute value pairs of item to lookup" msgstr "à¨à©à¨à¨£ ਵਾਲ੠à¨à¨à¨à¨® ਦਾ à¨à©à¨£ ਮà©à©±à¨² à¨à©à©à¨¾" -#: ../tool/secret-tool.c:57 +#: tool/secret-tool.c:60 msgid "attribute value pairs which match items to clear" msgstr "à¨à©à¨£ ਮà©à©±à¨² à¨à©à©à©, à¨à© ਸਾਫ਼ à¨à©à¨¤à©à¨à¨ à¨à¨¾à¨£ ਵਾਲà©à¨à¨ à¨à¨à¨à¨®à¨¾à¨ ਨਾਲ ਮਿਲਦ੠ਹਨ" -#: ../tool/secret-tool.c:433 +#: tool/secret-tool.c:67 +#| msgid "the collection in which to place the stored item" +msgid "collection in which to lock" +msgstr "à¨à©°à¨¡à¨¾à¨°, à¨à¨¿à¨¸ ਵਿੱਠਲਾਠà¨à¨°à¨¨à¨¾ ਹà©" + +#: tool/secret-tool.c:454 msgid "return all results, instead of just first one" -msgstr "à¨à©à¨µà¨² à¨à©±à¨ ਦ੠ਬà¨à¨¾à¨ ਸਠਨਤà©à¨à© ਦਿà¨" +msgstr "à¨à©à¨µà¨² à¨à©±à¨ ਦ੠ਬà¨à¨¾à¨ ਸਠਨਤà©à¨à© ਦਿà¨" -#: ../tool/secret-tool.c:435 +#: tool/secret-tool.c:456 msgid "unlock item results if necessary" msgstr "à¨à© ਲà©à© ਹà©à¨µà© ਤਾਠà¨à¨à¨à¨® ਨਤà©à¨à© ਠਣ-ਲਾà¨" - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsecret-0.21.0/po/sv.po new/libsecret-0.21.1/po/sv.po --- old/libsecret-0.21.0/po/sv.po 2023-08-10 14:05:27.000000000 +0200 +++ new/libsecret-0.21.1/po/sv.po 2023-09-19 23:11:26.000000000 +0200 @@ -1,15 +1,15 @@ # Swedish translation for libsecret. -# Copyright © 2014-2021 Free Software Foundation, Inc. +# Copyright © 2014-2023 Free Software Foundation, Inc. # This file is distributed under the same license as the libsecret package. # Mattias Eriksson <snag...@gmail.com>, 2014. -# Anders Jonsson <anders.jons...@norsjovallen.se>, 2021. +# Anders Jonsson <anders.jons...@norsjovallen.se>, 2021, 2023. # msgid "" msgstr "" "Project-Id-Version: libsecret master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libsecret/issues\n" -"POT-Creation-Date: 2021-06-24 11:59+0000\n" -"PO-Revision-Date: 2021-06-24 14:25+0200\n" +"POT-Creation-Date: 2022-07-26 08:24+0000\n" +"PO-Revision-Date: 2023-08-17 14:04+0200\n" "Last-Translator: Anders Jonsson <anders.jons...@norsjovallen.se>\n" "Language-Team: Swedish <tp...@listor.tp-sv.se>\n" "Language: sv\n" @@ -17,13 +17,14 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.3.2\n" -#: libsecret/secret-item.c:1104 +#: libsecret/secret-item.c:1130 +#, c-format msgid "Received invalid secret from the secret storage" msgstr "Mottog en ogiltig hemlighet frÃ¥n hemlighetsförrÃ¥det" -#: libsecret/secret-methods.c:1055 +#: libsecret/secret-methods.c:1060 msgid "Default keyring" msgstr "Standardnyckelring" @@ -49,11 +50,11 @@ #: tool/secret-tool.c:67 msgid "collection in which to lock" -msgstr "samlingen i vilken lÃ¥sning ska se" +msgstr "samlingen i vilken lÃ¥sning ska ske" #: tool/secret-tool.c:454 msgid "return all results, instead of just first one" -msgstr "returnera alla resultat, istället för bara det första" +msgstr "returnera alla resultat, i stället för bara det första" #: tool/secret-tool.c:456 msgid "unlock item results if necessary"