Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix regression which made libsecret backend unusable in v23.8.0 #587

Merged
merged 2 commits into from Aug 7, 2022

Commits on Aug 7, 2022

  1. Fix regression which made libsecret backend unusable in v23.8.0

    libsecret/secret-schema.h has this enum:
    
        typedef enum {
            SECRET_SCHEMA_ATTRIBUTE_STRING = 0,
            SECRET_SCHEMA_ATTRIBUTE_INTEGER = 1,
            SECRET_SCHEMA_ATTRIBUTE_BOOLEAN = 2,
        } SecretSchemaAttributeType;
    
    Because of this, bool(Secret.SchemaAttributeType.STRING) evaluates to
    False. So when we do this in schema property, _query code ignores the
    second argument:
    
        self._query(
            Secret.SchemaAttributeType.STRING,
            Secret.SchemaAttributeType.STRING,
            application=Secret.SchemaAttributeType.STRING,
        )
    
    And it causes any use of libsecret backend to fail with this error:
    
        >>> import keyring.backends.libsecret
        >>> k = keyring.backends.libsecret.Keyring()
        >>> k.set_password('foo', 'bar', 'baz')
    
        (process:26311): libsecret-CRITICAL **: 19:22:53.299: secret_password_storev_sync: invalid username attribute for org.freedesktop.Secret.Generic schema
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
          File "/home/dmitry/upstream/keyring/keyring/backends/libsecret.py", line 98, in set_password
            raise PasswordSetError("Failed to store password!")
        keyring.errors.PasswordSetError: Failed to store password!
    mitya57 committed Aug 7, 2022
    Copy the full SHA
    52ceae8 View commit details
    Browse the repository at this point in the history
  2. Update changelog

    jaraco committed Aug 7, 2022
    Copy the full SHA
    4b2d9e5 View commit details
    Browse the repository at this point in the history