summaryrefslogtreecommitdiff
path: root/gsettings
Commit message (Collapse)AuthorAgeFilesLines
* include symbols needed by GNU BFD ld in mapDaniel Playfair Cal2020-12-191-0/+2
| | | | | | | On FreeBSD using the default GNU BFD linker, the use of --version-script fails unless the symbols `__progname` and `environ` are included. This change includes them in the symbol map, which should allow the build to succeed on FreeBSD.
* build: Remove libdconf-common-hiddenIñigo Martínez2020-12-192-7/+16
| | | | | | | | | | | `libdconf-common-hidden` is built to hide symbols not necessary in the `gsettings` gio module that only needs to expose `g_io_module_[load|query|unload]` symbols. To achieve this a symbol map along with `version-script` linker flag is used. Thanks to this only the necessary symbols are exposed, building `libdconf-common-hidden` static library is not necessary anymore and the existing dependencies can be used.
* tests: factor out abicheck from gsettingsDaniel Playfair Cal2020-12-193-40/+3
| | | | This will allow it to be used for other binaries
* gsettings: Update abicheck.sh scriptDiego Escalante Urrelo2019-11-051-1/+23
| | | | | | | | | | | gcc-9 is including `mangle_path` in the symbols of gsettings/libdconfsettings.so when building with support for gcov (--coverage). This means that our ignored symbols had to be updated. Update abicheck.sh so the test suite passes again. Also include a comment to explain the above and how the test works. Fixes: https://gitlab.gnome.org/GNOME/dconf/issues/60
* build: Enable G_LOG_USE_STRUCTURED=1Philip Withnall2018-08-161-1/+1
| | | | | | | This enables structured logging for all parts of dconf, which will make it easier to check for certain log messages in the unit tests. Signed-off-by: Philip Withnall <withnall@endlessm.com>
* Engine: add g_debug statements in state changing interface functionsDaniel Playfair Cal2018-08-141-0/+1
|
* Avoid use of link_whole in the gsettings backendEmmanuele Bassi2018-08-111-3/+7
| | | | | | | | | | | | | | | | | | The GSettings backend loadable module should not expose any symbol except for the g_io_module_* ones. By using the internal dependency objects, we end up using `link_whole` on libdconf-common and libdconf-gdbus-thread, which means that we now inherit all the symbols exposed by those static libraries. We still want to use `link_whole` every time we depend on those static libraries, but for the GSettings backend module we make an exception, and use `link_with` with the build targets, instead of the internal dependencies. This fixes the `abicheck` test unit. Reviewed-by: nobody Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
* Namespace the dependencies variablesEmmanuele Bassi2018-08-111-2/+2
| | | | | | | | | | | | | 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>
* build: Add trailing commas where necessaryIñigo Martínez2018-08-111-2/+2
| | | | | | 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-4/+2
| | | | | | | | | 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: Fix internal dependenciesIñigo Martínez2018-08-111-10/+6
| | | | | | | | | 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-4/+4
| | | | | | | | | | | 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.
* build: Retrieve D-Bus and gio paths from pkg-config filesIñigo Martínez2018-08-111-1/+1
| | | | | | | | | | | | | | | D-Bus' session bus services' paths and gio's module's paths are hardcoded. However, these directories can be retrieved by checking this information from their pkgconfig files. This patch retrieves the paths for their correspondant pkgconfig files and uses those paths as installation directories. The options to set different directories for these options are not necessary anymore, so they have been removed. Finally, the post install script does not depend anymore on the existence of `gio-querymodules` and is always executed.
* tests: Set G_DEBUG and other useful environment variablesPhilip Withnall2018-08-101-1/+7
| | | | Signed-off-by: Philip Withnall <withnall@endlessm.com>
* abicheck: Use ${NM} and fall back to `nm`Marvin Schmidt2018-08-081-1/+1
| | | | | | | `nm` possibly isn't the correct nm executable, especially when cross-compiling. Allow overriding it using ${NM} https://bugzilla.gnome.org/show_bug.cgi?id=781769
* Remove .gitignore filesIñigo Martínez2017-10-221-1/+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-171-30/+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/+29
| | | | | | | | 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
* build: changed abicheck.sh scriptIñigo Martínez2017-10-172-1/+4
| | | | | | | | | | abicheck.sh script has been changed to check the libdconfsettings library from GSETTINGS_LIB environment variable. This helps when checking the library in different locations. 'shebang' has also been added. https://bugzilla.gnome.org/show_bug.cgi?id=784910
* engine: add DCONF_READ_DEFAULT_VALUE flagAllison Ryan Lortie2015-12-161-16/+3
| | | | | | | | 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-3/+3
| | | | | | | 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
* Updated FSF's addressDaniel Mustieles2014-01-311-3/+1
|
* gsettings: handle writability notificationRyan Lortie2013-11-271-0/+15
| | | | | Wire through the writability notifications from the engine to the correct signals on GSettingsBackend.
* 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 missing "config.h" include everywhereRyan Lortie2013-11-241-0/+2
| | | | We ought to be including this from each .c file.
* GSettings: implement _read_user_value()Ryan Lortie2013-10-281-0/+11
| | | | | | | | | | | | Implement g_settings_backend_read_user_value() in DConfSettingsBackend. This will help us support g_settings_get_user_value() properly. We add a new engine API to support this as well. It takes a read_through queue, even though we don't bother using that from DConfSettingsBackend. https://bugzilla.gnome.org/show_bug.cgi?id=668233
* Use G_LOG_DOMAIN in all library componentsRyan Lortie2013-02-211-1/+1
|
* engine, gsettings: prevent empty changesetsRyan Lortie2013-02-111-2/+4
| | | | | | | | 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).
* gsettings/: support correct read of default valuesRyan Lortie2012-10-021-2/+15
| | | | | | | | The existing code had a /* XXX */ for properly dealing with the case of the user requesting the default value. We should probably implement this... https://bugzilla.gnome.org/show_bug.cgi?id=685316
* engine: bring back origin_tag logicRyan Lortie2012-07-151-5/+6
| | | | | | | | | 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...
* Reimplement sync() functionalityRyan Lortie2012-07-101-1/+3
| | | | | | | | | 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.
* gsettings/: remove the dconfcontext codeRyan Lortie2012-07-104-46/+0
| | | | This is no longer needed with "fast" writes supported in the engine.
* gsettings/: add an abicheck.sh scriptRyan Lortie2012-07-082-0/+5
| | | | Make sure no unexpected symbols are leaking out.
* common/: make 'hidden' variant of libdconf-commonRyan Lortie2012-07-081-1/+1
| | | | | | Compile a version of libdconf-common.a with -fvisibility=hidden. This is included in the GSettings backend to prevent leaking the dconf client library symbols into the global namespace.
* massive Makefile reorganisationRyan Lortie2012-07-082-6/+10
| | | | | | | | | | 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.
* GSettings backend: build against dconf-commonRyan Lortie2012-07-061-1/+1
| | | | | The GSettings backend wasn't linking in libdconf-common, resulting in missing symbol errors when loading the module.
* add gtester supportRyan Lortie2012-07-061-0/+2
|
* Implement change signalsRyan Lortie2012-07-021-2/+35
| | | | | | | | | | | | | | | | 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-022-550/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* common/: create two convenience librariesRyan Lortie2012-07-011-2/+1
| | | | | | | One -fPIC and one without. This is done instead of pulling the various source files from other Makefiles.
* Stop using deprecated GLib APIsRyan Lortie2011-10-192-23/+20
|
* Remove "service func" logicRyan Lortie2011-09-111-14/+0
| | | | | | This was required to support the case where the dconf client was unable to determine the cache directory for itself. Since we now use the XDG runtime directory, this is redundant.
* GSettings: g_warning() on failure to communicateRyan Lortie2011-08-151-5/+32
| | | | | | | When we have a failure to deliver requests to the dconf backend, give a g_warning(). https://bugzilla.gnome.org/show_bug.cgi?id=641768
* Remove unused 'error' variableRyan Lortie2011-07-241-3/+2
| | | | | | | | | We never consumed the value, and then we reused it, causing warnings about uninitialised error variables. Just remove it altogether. Caught by Matthias. https://bugzilla.gnome.org/show_bug.cgi?id=655193
* client-side lockdown supportRyan Lortie2011-05-061-0/+18
| | | | | | | | | Support lockdown on the client side for GSettings. For performance reasons only lockdown of specific keys (not entire subpaths) is supported at the moment. This may change in the future if we can find a way to make large numbers of related GVDB lookups sufficiently performant.
* Don't crash on DBus connection failureRyan Lortie2011-01-311-0/+7
| | | | | When adding matches, if we can't connect to DBus, the code will presently crash. This fixes that.
* Add G_GNUC_INTERNAL to symbolsRyan Lortie2011-01-251-0/+1
| | | | We're being sloppy about symbol exports. Clean that up.
* Remove unused 'length' variable.Ryan Lortie2011-01-251-2/+0
| | | | Closes #640566.