Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package secrets for openSUSE:Factory checked in at 2024-07-22 17:17:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/secrets (Old) and /work/SRC/openSUSE:Factory/.secrets.new.17339 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "secrets" Mon Jul 22 17:17:05 2024 rev:11 rq:1188677 version:9.6 Changes: -------- --- /work/SRC/openSUSE:Factory/secrets/secrets.changes 2024-06-24 20:58:09.886965918 +0200 +++ /work/SRC/openSUSE:Factory/.secrets.new.17339/secrets.changes 2024-07-22 17:18:28.306398503 +0200 @@ -1,0 +2,7 @@ +Fri Jul 19 03:09:37 UTC 2024 - Richard Rahl <rra...@opensuse.org> + +- update to 9.6: + * Improve password generation threading + * Fix crash on changing DB password + +------------------------------------------------------------------- Old: ---- secrets-9.5.obscpio New: ---- secrets-9.6.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ secrets.spec ++++++ --- /var/tmp/diff_new_pack.Ru6ImQ/_old 2024-07-22 17:18:29.514446702 +0200 +++ /var/tmp/diff_new_pack.Ru6ImQ/_new 2024-07-22 17:18:29.514446702 +0200 @@ -23,7 +23,7 @@ %define psuffix %nil %endif Name: secrets%{psuffix} -Version: 9.5 +Version: 9.6 Release: 0 Summary: A password manager for GNOME License: GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Ru6ImQ/_old 2024-07-22 17:18:29.546447979 +0200 +++ /var/tmp/diff_new_pack.Ru6ImQ/_new 2024-07-22 17:18:29.550448138 +0200 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual" > <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/World/secrets.git</param> - <param name="revision">refs/tags/9.5</param> + <param name="revision">refs/tags/9.6</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ secrets-9.5.obscpio -> secrets-9.6.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/data/org.gnome.World.Secrets.metainfo.xml.in.in new/secrets-9.6/data/org.gnome.World.Secrets.metainfo.xml.in.in --- old/secrets-9.5/data/org.gnome.World.Secrets.metainfo.xml.in.in 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/data/org.gnome.World.Secrets.metainfo.xml.in.in 2024-07-14 10:55:00.000000000 +0200 @@ -12,6 +12,15 @@ <p>Secrets is a password manager which makes use of the KeePass v.4 format. It integrates perfectly with the GNOME desktop and provides an easy and uncluttered interface for the management of password databases.</p> </description> <releases> + <release version="9.6" date="2024-07-14"> + <description> + <p>Bugfix release.</p> + <ul> + <li>Improve password generation threading</li> + <li>Fix crash on changing DB password</li> + </ul> + </description> + </release> <release version="9.5" date="2024-06-22"> <description> <p>Bugfix release.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/gsecrets/application.py new/secrets-9.6/gsecrets/application.py --- old/secrets-9.5/gsecrets/application.py 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/gsecrets/application.py 2024-07-14 10:55:00.000000000 +0200 @@ -15,7 +15,7 @@ application_id = const.APP_ID settings = Gio.Settings.new(application_id) - def __init__(self, executor, *args, **_kwargs): + def __init__(self, *args, **_kwargs): super().__init__( *args, application_id=self.application_id, @@ -34,8 +34,6 @@ None, ) - self.executor = executor - def do_startup(self): # pylint: disable=arguments-differ Adw.Application.do_startup(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/gsecrets/main.py.in new/secrets-9.6/gsecrets/main.py.in --- old/secrets-9.5/gsecrets/main.py.in 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/gsecrets/main.py.in 2024-07-14 10:55:00.000000000 +0200 @@ -5,7 +5,6 @@ import os import locale import gettext -import concurrent.futures import gi @@ -53,10 +52,10 @@ from gsecrets.application import Application - with concurrent.futures.ProcessPoolExecutor(max_workers=1) as executor: - app = Application(executor) - exit_status = app.run(sys.argv) - sys.exit(exit_status) + app = Application() + + exit_status = app.run(sys.argv) + sys.exit(exit_status) if __name__ == "__main__": diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/gsecrets/password_generator.py new/secrets-9.6/gsecrets/password_generator.py --- old/secrets-9.5/gsecrets/password_generator.py 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/gsecrets/password_generator.py 2024-07-14 10:55:00.000000000 +0200 @@ -3,10 +3,15 @@ import secrets import string +import threading +import typing -from gi.repository import Gio +from gi.repository import GLib from zxcvbn import zxcvbn +if typing.TYPE_CHECKING: + from typing import Callable + def generate( length: int, @@ -86,10 +91,18 @@ return 0 -def strength_async(password, callback): - def cb_wrapper(future): - callback(future.result()) - - executor = Gio.Application.get_default().executor - future = executor.submit(strength, password) - future.add_done_callback(cb_wrapper) +def _threaded_compute_strenght(password: str, callback: Callable[[int], None]) -> None: + score = strength(password) + GLib.idle_add(callback, score) + + +def strength_async(password: str, callback: Callable[[int], None]) -> None: + if password: + thread = threading.Thread( + target=_threaded_compute_strenght, + args=[password, callback], + ) + thread.daemon = True + thread.start() + else: + callback(0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/gsecrets/widgets/database_settings_dialog.py new/secrets-9.6/gsecrets/widgets/database_settings_dialog.py --- old/secrets-9.5/gsecrets/widgets/database_settings_dialog.py 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/gsecrets/widgets/database_settings_dialog.py 2024-07-14 10:55:00.000000000 +0200 @@ -195,7 +195,7 @@ button.set_sensitive(False) self.window.key_providers.generate_composite_key_async( - self.database_manager.get_salt(), + self.database_manager.get_salt_as_lazy(), self._on_generate_composite_key, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/secrets-9.5/meson.build new/secrets-9.6/meson.build --- old/secrets-9.5/meson.build 2024-06-22 10:39:28.000000000 +0200 +++ new/secrets-9.6/meson.build 2024-07-14 10:55:00.000000000 +0200 @@ -1,5 +1,5 @@ project('secrets', - version: '9.5', + version: '9.6', meson_version: '>= 0.59', license: 'GPL-3.0-only' ) ++++++ secrets.obsinfo ++++++ --- /var/tmp/diff_new_pack.Ru6ImQ/_old 2024-07-22 17:18:29.742455799 +0200 +++ /var/tmp/diff_new_pack.Ru6ImQ/_new 2024-07-22 17:18:29.746455959 +0200 @@ -1,5 +1,5 @@ name: secrets -version: 9.5 -mtime: 1719045568 -commit: 7def94165df442d1fc7c46e9843db087a465aba8 +version: 9.6 +mtime: 1720947300 +commit: df133c50d8409795b57ef679e0fb7043780ec7e5