This is the standard mechanism to initialize a GObject introspectable
interface. If you don't do this, you get this PyGIWarning:
Secret was imported without specifying a version first. Use
gi.require_version('Secret', '1') before import to ensure that the
right version gets loaded.
Our official instructions only tell how to build with Meson, our CI is
only done with Meson and I wouldn't be surprised if most developers only
used Meson as well.
In other words, the autotools build is outdated. Let's say our goodbye
and drop it in the next stable release.
This interface provides a separation between the
frontend (secret_password*) and the backend (SecretService). That
makes it easier to replace SecretService with a custom backend
implementation.
This adds the secret_value_unref_to_password function that
unreferences and returns the stored secret in non-pageable memory.
This is supposed to be used with secret_password_lookup_binary*
functions.
This adds a set of functions that takes a SecretValue instead of a
text password when storing a secret. This is useful if the stored
password is not null-terminated.
This adds a set of functions that return a SecretValue instead of a
text password when looking up a secret. This is useful if the stored
password is not null-terminated.
This is a ground work for adding a local storage backend. As
SecretItem is derived from GDBusProxy, it cannot be simply exposed to
the application through the secret_password_search() if the item is
not backed by the DBus API. This adds an abstract interface
representing a read-only view of a secret item for that purpose.
Added macros:
* SECRET_VERSION_MAJOR
* SECRET_VERSION_MINOR
* SECRET_VERSION_MICRO
* SECRET_CHECK_VERSION
These macros are widely defined in GLib based library. For example,
GLib, GTK, poppler GLib and so on define them.
These macros are useful to detect libsecret version on build type and
from GObject Introspection based bindings.
The SECRET_SCHEMA_* extern structs are not introspectable; add a new
accessor function which takes an enum and returns a struct, which is
introspectable.
Mark the old extern structs as (skip), but don’t deprecate them because
they’re still useful from C (if unconventional).
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://bugzilla.gnome.org/show_bug.cgi?id=697681
Add secret_service_encode_dbus_secret() and
secret_service_decode_dbus_secret() functions for encoding
and decoding the Secret Service API DBus structs that carry
secrets on the wire.
These are not added to the stable or scripting APIs.
Allow parallel building and testing by using a single Makefile.am
Implement parallel testing using TAP, with various drivers and
compilers living in the build/ directory.
Fix all sorts of issues that this caused, including builddir != srcdir,
leaks in tests and so on.
It would have been nice to break out all the above into separate
commits ... blush.
The _new() suffix confuses vala and gobject introspection thinking
that it's a constructor, and there's no way to tell it otherwise. And
things really get messy because they're async functions.
So while we're still unstable, rename these functions to
secret_service_open() secret_service_open_sync() and
secret_service_open_finish().
This is an API/API break, but its to the portion of the library
marked as unstable. Only used by seahorse (in jhbuild) and updated
usage there.
* It's clearer what happens here: we try to remove as many matching
passwords as possible.
* Also rename secret_service_remove() to secret_service_clear()
* Rename secret_password_clear() which used to wipe password memory
to secret_password_wipe().
* Death by a thousand paper cuts from gir and vapi not liking
the fact that the secret.h file was not usable uninstalled
and installed in the same way.
* They all contain '_dbus_path' in their name
* Move secret_service_get_session_path() to the paths functionality
* Move the secret_collection_new() and secret_item_new() functionality
to the path based section.
* And flags to prevent loading of items when creating a
SecretCollection object
* Rename secret_service_ensure_collections() to
secret_service_load_collections()
* Turn secret_service_search() and friends into a more convenient
API, so that callers can get attributes, unlocking, and secrets
if so desired.
* Also support retrieving either one secret, or all of them.