summaryrefslogtreecommitdiff
path: root/client
Commit message (Collapse)AuthorAgeFilesLines
* Namespace the dependencies variablesEmmanuele Bassi2018-08-111-0/+5
| | | | | | | | | | | | | The build currently, unintentionally, depends on side effects, namely: that a variable defined in a meson.build file will be valid for any other included meson.build file, until it gets re-defined. We use the same `deps` variable in many places, and we end up depending on the inclusion order when we get to the client library, which depends on the gsettings backend defining the `deps` variable. Reviewed-by: nobody Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
* Use the correct Meson argument for linkingEmmanuele Bassi2018-08-111-1/+1
| | | | | | | | | | | | | Some of the internal static libraries in dconf implement public symbols. This means that they must be linked using `link_whole`, to prevent the linker from hiding unused symbols in there when building the shared libdconf.so. This fixes the build of projects using the dconf API directly, like dconf-editor, in GNOME Continuous. Reviewed-by: nobody Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
* build: Simplified pkg-config file generationIñigo Martínez2018-08-111-4/+1
| | | | | | | | | | Since meson's 0.46 version, the `pkg-config` file generation has been simplified[0]. This new improvements has been used to generate the same `pkg-config` file by using less parameters. meson version has also been bumped accordingly to 0.46. [0] http://mesonbuild.com/Release-notes-for-0-46-0.html#improvements-to-pkgconfig-module
* build: Add trailing commas where necessaryIñigo Martínez2018-08-111-8/+8
| | | | | | Having trailing commas in place means that if another source file or parameter is added to the end of the list or function, there won't be noise when adding the comma to the line above.
* build: Do not make heavy use of project_nameIñigo Martínez2018-08-111-14/+14
| | | | | | | | | The current meson build files make heavy use of meson's `project_name` function. However this makes difficult for any developer to find for given program/library/file names. The project name is also never going to change. Due to this reason these calls have been changed for `dconf` itself.
* build: Use vapi dir from pkg-config fileIñigo Martínez2018-08-111-1/+1
| | | | | | | | The `vapigen` pkg-config file provides a variable with the location of the vapi files. This variable is checked to set the installation directory of the vapi file provided by dconf.
* build: Fix pkg-config exec_prefix variableIñigo Martínez2018-08-111-1/+1
| | | | | | | The `exec_prefix` variable in the pkg-config file should point to `prefix` but it is pointing to `libexecdir`. This has been updated to point to `${prefix}`.
* build: Remove unnecessary variablesIñigo Martínez2018-08-111-5/+3
| | | | | | | | | There are some defined variables that are not used. Some of these variables are also used as install directories, that are equal to default installation directories. These all unnecessary variables and default installation directories have been removed.
* build: Fix internal dependenciesIñigo Martínez2018-08-111-16/+14
| | | | | | | | | meson is able to generate internal dependencies for handling built libraries. These internal dependencies depend on other dependencies as well, based on the includes exposed by their headers. This have been fixed by using proper internal dependencies for these libraries.
* build: Avoid building libraries twiceIñigo Martínez2018-08-111-5/+5
| | | | | | | | | | | dconf builts a number of internal static libraries which in some cases are duplicated. This duplication comes from autotools that used to built two libraries for each library, one with PIC enabled and the other one without it. This has been changed to build only one library for each library to be built, except `libdconf-common-hidden` which hides some symbols for the GIO module to be built.
* client: Fix a minor typo in some documentationPhilip Withnall2018-08-081-1/+1
| | | | Signed-off-by: Philip Withnall <withnall@endlessm.com>
* Add some transfer annotationsXavier Claessens2018-08-081-9/+11
| | | | | | | (Expanded by Philip Withnall <withnall@endlessm.com> to add more annotations and fix prior review comments.) https://bugzilla.gnome.org/show_bug.cgi?id=758903
* Remove .gitignore filesIñigo Martínez2017-10-221-4/+0
| | | | | | | | | | meson does not allow to build source code inside the source code tree, for this reason there is no need for .gitignore files to ignore built files. This patch removes .gitignore files which are no longer needed. https://bugzilla.gnome.org/show_bug.cgi?id=784910
* build: Remove autotoolsIñigo Martínez2017-10-172-57/+0
| | | | | | | To avoid the burden of maintaining multiple build systems, this patch removes autotools support. https://bugzilla.gnome.org/show_bug.cgi?id=784910
* build: Port to meson build systemIñigo Martínez2017-10-172-1/+71
| | | | | | | | meson is a build system focused on speed an ease of use, which helps speeding up the software development. This patch adds meson support along autotools. https://bugzilla.gnome.org/show_bug.cgi?id=784910
* DConfClient: Add "writability-changed" signalXavier Claessens2015-12-161-0/+27
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=759128
* client: restrict list_locks to work on dirsAllison Ryan Lortie2015-12-162-4/+4
| | | | | | | This was always the intention, and is even documented that way in the gtk-doc block above. I'm not sure why I used paths. In any case, this API has never been released, so the change is safe.
* docs: add new APIsAllison Ryan Lortie2015-12-161-0/+17
| | | | ...and other various cleanups.
* client: replace _read_default() with _read_full()Allison Ryan Lortie2015-12-163-12/+46
| | | | | | | | | This API has never appeared in a released version of dconf (even unstable). Replace it with a more generally-useful form. Update the test cases, dconf commandline tool and vapi accordingly. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* engine: add DCONF_READ_DEFAULT_VALUE flagAllison Ryan Lortie2015-12-161-29/+1
| | | | | | | | Add a flag that allows checking the default value without constructing a read_through queue. Make use of this new flag to simplify code in a couple of places. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* engine: merge _read and _read_user_value()Allison Ryan Lortie2015-12-161-2/+2
| | | | | | | Delete the separate dconf_engine_read_user_value() and merge its functionality into dconf_engine_read() by adding a flags field. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* common: rename dconf-error.h to dconf-enums.hAllison Ryan Lortie2015-12-161-1/+1
| | | | | | This will soon contain an extra enum. https://bugzilla.gnome.org/show_bug.cgi?id=759128
* Modernise the headers of dconf-clientAllison Ryan Lortie2015-11-302-8/+5
| | | | | | | Add support for g_autoptr() on DConfClient and DConfChangeset. Switch to using G_DECLARE_FINAL_TYPE in the declaration of DConfClient. https://bugzilla.gnome.org/show_bug.cgi?id=758871
* dconf-client: include dconf-paths headerAllison Ryan Lortie2015-11-301-0/+1
| | | | | We should have this included since we use the functions in it in our precondition checks.
* vapi: add new API read_default() to vapiAllison Ryan Lortie2015-11-301-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=758864
* engine, client: add list_locks() operationAllison Ryan Lortie2015-11-303-0/+31
| | | | | | | Add an API to dconf-engine (and exposed via DConfClient) for getting a list of locks that are present in a given dconf profile. https://bugzilla.gnome.org/show_bug.cgi?id=758864
* DConfClient: add read_default() APIAllison Ryan Lortie2015-11-302-0/+57
| | | | | | | | Add an API to read the default value of a key. Add a testcase. https://bugzilla.gnome.org/show_bug.cgi?id=758860
* Updated FSF's addressDaniel Mustieles2014-01-313-9/+3
|
* engine: add support for WritabilityNotifyRyan Lortie2013-11-261-0/+1
| | | | | Wire through WritabilityNotify signals from the engine. This has been unimplemented for a very long time...
* engine: add 'profile' argument to constructorRyan Lortie2013-11-261-1/+1
| | | | | | | Allow specifying a profile when calling dconf_engine_new(). This will allow us to avoid setting/unsetting the DCONF_PROFILE environment in testcases from contexts where other threads may be reading from the environment.
* Add DCONF_ERROR error domainRyan Lortie2013-11-251-0/+1
| | | | | | | | | Add a DCONF_ERROR error domain with associated DConfError enum type. Use this instead of the adhoc approach that we've been taking up to this point. https://bugzilla.gnome.org/show_bug.cgi?id=704638
* Add missing "config.h" include everywhereRyan Lortie2013-11-241-0/+2
| | | | We ought to be including this from each .c file.
* Use G_LOG_DOMAIN in all library componentsRyan Lortie2013-02-211-1/+1
|
* engine, gsettings: prevent empty changesetsRyan Lortie2013-02-111-1/+2
| | | | | | | | We should not send empty changesets to the service so just ignore them when we get them. This now means that an empty 'dconf load' will not send any D-Bus messages (and will not cause D-Bus activation).
* docs/comments: make some corrections/updatesRyan Lortie2013-02-111-3/+3
| | | | | Many fixes for typos but also some adjustments for the recent refactoring (particularly updating HACKING).
* engine: bring back origin_tag logicRyan Lortie2012-07-151-2/+3
| | | | | | | | | The GSettings backend still wants to use this and it does us no harm to have it on the engine API (which is only visible internally). Adjust the various consumers of the engine to the new API. Thanks to Rui Matos for reminding me about this...
* tweak public header installationRyan Lortie2012-07-152-6/+6
| | | | | Colin noticed that this was totally broken (from an ostree build). Fix it up.
* Fix up the "changed" signal for ValaRyan Lortie2012-07-101-1/+1
| | | | | | | | | | Fix the vapi file to properly describe the changed signal (including the possibility of NULL tag). Change the dconf tool's implementation of the signal handler (and simplify it due to the changed semantics of the signal). Do the same for the editor.
* Update the editor and cli to use the new sonameRyan Lortie2012-07-101-2/+2
| | | | And fit the .gitignore over the same issue, as well.
* Reimplement sync() functionalityRyan Lortie2012-07-102-2/+26
| | | | | | | | | Add dconf_engine_sync() that does the same thing as the code in the GSettings backend used to do, in a cleaner way. Update the GSettings backend to use the new call. Add a new call to DConfClient wrapping the engine call as well.
* client/: bump the soname of libdconf to 1Ryan Lortie2012-07-101-12/+12
| | | | Since there have been incompatible API changes...
* big docs cleanupRyan Lortie2012-07-102-89/+276
| | | | We're now back at 100% docs coverage with no warnings.
* massive Makefile reorganisationRyan Lortie2012-07-084-10/+15
| | | | | | | | | | Clean up the Makefiles and make them as similar as possible. Move CFLAGS to a common point of definition and stop using -I so much. Replace the 'dbus stub' with libdconf-mock.a in tests/. Fill in some stubs for future mock code for shm and gvdb (just to get things compiling for now).
* clean up and factor out the 'shm' codeRyan Lortie2012-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the shm code from the engine and the service and put it in a separate convenience library in shm/. Remove the vestigial shmdir weirdness from the service (since shmdir is now always relative to XDG_RUNTIME_DIR and has been for some time). The purpose of this is so that dconf-engine can be properly unit-tested. dconf-engine now has five points of contact with the world (excluding the users of the engine themselves): - the DCONF_PROFILE environment variable - fopen() of profile files - shm - gvdb - dbus The environment variable is quite easily controlled. fopen() is intercepted in the engine testcase with a interpose of the libc symbol. With this commit now each of dbus, gvdb and shm are implemented in separate utility modules that can be mocked from the testcases.
* fix various 'make distcheck' issuesRyan Lortie2012-07-061-2/+2
|
* client: also build libdconf-client static libraryRyan Lortie2012-07-062-0/+4
| | | | | | | | | This will allow DConfClient to be included in testcases without pulling in everything else (allowing us to mock in things like the dbus backend). Reorder the toplevel Makefile so that this library gets built before we try to build tests/.
* add gtester supportRyan Lortie2012-07-061-0/+2
|
* Implement change signalsRyan Lortie2012-07-021-4/+22
| | | | | | | | | | | | | | | | Support receiving and properly exposing change notifications. This required some changes to improve the thread-safety of destroying a DConfEngine. It is possible that a signal would be arriving (in the worker thread) at the exact instant that a DConfEngine was being destroyed (from the finalize of the DConfClient or DConfSettingsBackend). This could lead to the object being accessed after it was finalized. We can avoid this by using weak references and by being more careful about when the DConfEngine is freed (by taking a ref to it in the signal handler and releasing it when done).
* Massively reorganise the client-sideRyan Lortie2012-07-027-539/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit represents a rather complete rethinking of DConfEngine. - the different kinds of sources are now properly abstracted. This will make landing NFS support substantially easier. - there is now substantially more internal documentation - DConfEngineMessage is gone and replaced with ordinary function calls to be implemented by the D-Bus glue code - the GDBus glue has been factored out and is now shared between the client library and GSettings - the "outstanding" queue logic from the GSettings backend is now in the engine - all changes now go through a single API that accepts a (new) DConfChangeset object. Currently this only supports the current operations (ie: setting and resetting). In the future this object will also support the directory operations required by GSettingsList and will be the basis for the new approach to implementing the 'delayed' GSettingsBackend (which will be the method by which those two concepts can co-exist). The (internal) API of the engine changed substantially. This caused the following: - the libdconf client library has been rewritten in C. Most of the complicated aspects of it (that made it more convenience to use Vala) are now gone. - during the rewrite of libdconf, the DConfClient API changed a bit to look more like a proper GObject. It now makes GIO-style use of thread-default main contexts and uses GObject signals for notifications (instead of hand-rolled callbacks). - the GSettings backend has been substantially simplified (the "outstanding" logic is gone). No externally-visible changes. - the dbus-1 backend has taken a copy of the old engine code for now until it can be ported to the new engine and sufficiently tested. No externally-visible changes. - the dconf commandline tool and dconf-editor required minor changes to adjust to the DConfClient API changes There is a substantial amount of cleaning up and finishing of work to be done. There are many stubs remaining. There are likely still a large number of bugs.
* Add a HACKINGRyan Lortie2012-07-012-4/+264
|