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.
Don't try to use G_IS_OBJECT() to see if an object was finalized
as this segfaults in corner cases, even with our crafty check
for a pointer within our memory space.
https://bugzilla.gnome.org/show_bug.cgi?id=705202
Much like g_dbus_connection_call() we now pass our return_type value
when starting the async operation. This unbreaks vala and various
other bindings that make assumptions about the form of xxx_finish()
async calls.
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.
The previous way of setting collection_gtype and item_gtype
on SecretServiceClass was not very bindings friendly. Instead
allow per instance virtual functions to return the GTypes.
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.
Passwords and other secrets are allowed to be empty strings, therefore
the check for length != 0 is wrong.
Add tests for empty SecretValue contents.
https://bugzilla.gnome.org/show_bug.cgi?id=694787
Attributes table that are built by the library itself contain
the xdg:schema meta-attribute. Additionally,
secrets with a SECRET_SCHEMA_COMPAT_NETWORK schema might also have
libgnomekeyring specific meta-attributes (prefixed 'gkr'). During
validation, ensure that the former is consistent with the name
of the schema and ignore the latter.
Add tests for these changes
https://bugzilla.gnome.org/show_bug.cgi?id=694107
* This is necessary because sometimes we don't want to complain,
for expected errors, when running nested operations.
* The fact that we have to do this is silly, and soon there
will be a solution in glib itself.
https://bugzilla.gnome.org/show_bug.cgi?id=688165
* If the default keyring does not exist when storing a secret
try and create it.
* We handle both secrets that correctly return NoSuchObject
and ones that just return the silly DBus UnknownMethod error.
https://bugzilla.gnome.org/show_bug.cgi?id=688165
* When passing NULL for a string vararg attribute print
a critical warning.
* Make all attribute warnings critical
* Add tests for the various critical warnings
https://bugzilla.gnome.org/show_bug.cgi?id=686015
The regex for exported symbols was keeping the predefined
schemas from being available to outside users of the library.
This was showing up as a link error for seahorse, which is
trying to use SECRET_SCHEMA_NOTE.
https://bugzilla.gnome.org/show_bug.cgi?id=681255
* License libsecret under LGPL2.1+. We can do this because the
files that make up the library are either LGPL2.0+ or LGPL2.1+
* Correctly include a file which contains the full texts of the
various licenses used in the tests.
* Include license headers in some files that contained no license
headers.
https://bugzilla.gnome.org/show_bug.cgi?id=680781
* 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().
Don't set PKG_CONFIG_PATH, this breaks jhbuild; instead, use
--include-uninstalled to tell the scanner where to find internal
libraries.
Don't set _PACKAGES = gio-2.0; we already pick that up from the
Gio-2.0.gir.
https://bugzilla.gnome.org/show_bug.cgi?id=679852
* We want to settle on 1 after first stable release
* Since we're going to start patching projects we want this to have
the pkg-config file be libsecret-1
* C callers need to use libsecret-0 pkg-config file for stable and
libsecret-unstable for unstable stuff.
* Vala callers need to '--pkg libsecret-unstable' for unstable
* GObject Introspection callers need to use the SecretUnstable package
* 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.